Skip to content

Getting Started

Welcome to Rawframe — a moddable open-world sandbox engine where all gameplay comes from community-created mods. Built from scratch in C++20.


Install Rawframe

  1. Head to the Download page and grab the latest release for your platform (Windows, Linux, or macOS).
  2. Extract the archive to a folder of your choice.
  3. Run rawframe_client to launch the game client.

That’s it — no installer needed. The engine ships as a portable binary with all dependencies bundled.

System Requirements

ComponentMinimumRecommended
OSWindows 10 / Ubuntu 20.04 / macOS 12Windows 11 / Ubuntu 22.04 / macOS 14
CPUDual-core 2.0 GHzQuad-core 3.0 GHz
RAM4 GB8 GB
GPUVulkan 1.1 / Metal / DX11Vulkan 1.3 / Metal 3
Storage500 MB1 GB

Rawframe also supports Android (GLES 3.0+) and iOS (Metal, A12+).


Join a Server

  1. Launch rawframe_client.
  2. The server browser shows LAN servers automatically. For internet servers, they appear via the master server list.
  3. Click a server to connect, or use the console: connect 1.2.3.4:27015.

You can also connect directly from the command line:

./rawframe_client -connect 192.168.1.100:27015

Create Your First Mod

Rawframe mods are Luau scripts organized in folders under the mods/ directory. Let’s create a simple “Hello World” mod.

Step 1: Create the mod folder

mods/
  hello_world/
    mod.json
    scripts/
      shared/
        init.lua

Step 2: Write the manifest

Create mods/hello_world/mod.json:

{
    "name": "hello_world",
    "version": "1.0.0",
    "description": "My first Rawframe mod",
    "author": "YourName",
    "dependencies": [],
    "scripts": {
        "server": [],
        "client": [],
        "shared": ["scripts/shared/init.lua"]
    }
}

Step 3: Write a script

Create mods/hello_world/scripts/shared/init.lua:

rawframe.log("Hello from my first mod!")

-- Spawn a cube and make it orbit
local cube = entity.create("HelloCube")
entity.set_position(cube, 0, 5, 0)
entity.set_mesh(cube, "cube")

local time = 0
hook.Add("Think", "hello_orbit", function(dt)
    time = time + dt
    local x = math.cos(time) * 5
    local z = math.sin(time) * 5
    entity.set_position(cube, x, 5, z)
end)

Step 4: Run it

Launch the server and client:

./rawframe_server
./rawframe_client

You should see “Hello from my first mod!” in the console log, and a cube orbiting in 3D space.

Using the scaffold tool

For convenience, Rawframe ships with a mod scaffold tool:

bash tools/create_mod.sh my_awesome_mod "Your Name"

This creates the full directory structure, a pre-filled mod.json, and starter scripts.


Next Steps