Riftfield Guide
Everything to know, from waking up in the woods of another world to running a server your friends can join around the clock.
Getting started
Open the game → Customize character → Single player to make a new world, or Play with friends to join a friend's world or a server. Every world comes from a different seed: the map, the ore, the caves and where the temple stands.
Press G for the objectives, one step at a time, and H for the guide to every system in the game. The language (Thai or English) is in Settings.
Controls
Every key can be changed in Esc → Settings · Xbox gamepads work · phones get a joystick and on-screen buttons
| Keyboard / mouse | Gamepad | |
|---|---|---|
| Walk / run | WASD / arrows · hold Shift | Left stick · LT/X |
| Use what's in hand | Space / click | A / RT |
| Pick a slot | 1–9, 0 / mouse wheel | RB, ◀ ▶, ▲ |
| Dodge / spin slash | Q / R | LB / click left stick |
| Switch weapon | V | ▲ (on the sword slot) |
| Dash slash | Run + slash | LT/X + RT |
| Aim | Mouse | Right stick |
| Craft, repair, cook | C | Y |
| Wardrobe / eat / map | E / F / M | Right stick / B / Back |
| Bounties / store in chest / pin | B / X / P | — / ▼ / — |
| Objectives / guide / chat | G / H / Enter | |
| Zoom / hide HUD | = - / F10 |
Your first days
- Chop wood, break stone, and build a workbench (C) by the Rift Gate
- Make a sword and a hoe; plant vegetables near home — food gives buffs that help in a fight
- Go down into the caves for copper and tin, build a furnace, and upgrade your sword and armour
- Be ready before a Rift Moon night, and for the raid on the gate every 7 days
- Find the ancient temple, repair the Rift Machine, then go back and rebuild Ashford
Farming
Till with the hoe (slot 2), sow with slot 3 (press it again to switch seeds) — crops grow in 3 stages, and after the sprout every stage needs water before it grows on (a blue droplet floats over a thirsty crop). Ripe crops glint.
- Water — watering cans (wood / copper / iron) from the hoe's slot, filled at water · rain waters everything · sprinklers water a 3×3 (copper) or 5×5 (iron) for you
- Rice planted beside water never needs watering · glow tulips (blue, pink, gold) light the dark when they bloom and keep monsters from spawning · rift peppers make tom yum: your hits set monsters on fire
- Seasons — crops grow faster in the rainy season, slower in winter · rice likes the rainy season, peppers summer, glow tulips winter
- Fruit trees — mango and starfruit saplings, planted with slot 9, grow each morning and bear again and again; wild ones already bear in the woods and caves
- Carry a sickle to pick ripe crops 3×3 at a time
- Crop beetles climb up in dark fields at night (from day 3) — chase them off, or keep them away with light, glow tulips or a scarecrow · once 12 are down, the Beetle Queen raids your fields
Host / join
Two ways:
- Host from the game — whoever opens the world is the server; friends can join only while they're playing. Good at home or on a LAN
- A dedicated server — runs on another machine all the time, with no host character; anyone can come and go whenever. See the next section
To join: main menu → Play with friends → enter the IP or domain, the port (24567 by default) and the password if there is one. Everyone needs the same game version as the server.
A server with Docker
You need: a Linux machine (a VPS with at least 1 vCPU / 1 GB RAM for 4–8 players), Docker with Compose, and a UDP port you can open.
mkdir riftfield && cd riftfield
curl -O https://rift-field.com/server/docker-compose.yml
curl -o .env https://rift-field.com/server/env.example
nano .env # world name, password, ...
docker compose up -d
docker compose logs -f serverDocker pulls the ready-made image ghcr.io/rennyyy/riftfield-server itself — no source code needed. It runs on x86 and ARM (e.g. Oracle Ampere, Raspberry Pi 4/5).
This line means it's ready:
[server] Riftfield 1.9.0 — world "server" (seed 1819872895) on UDP 24567, up to 8 playersServer settings
Set them in .env, or pass --key=value arguments when running it yourself; arguments win over environment variables.
| Variable | Argument | Default | Meaning |
|---|---|---|---|
RIFTFIELD_VERSION | — | latest | The image version, e.g. 1.9.0 — pin it to match the players' game |
RIFTFIELD_WORLD | --world= | server | World name = save file name; a save by that name is loaded |
RIFTFIELD_PORT | --port= | 24567 | UDP port |
RIFTFIELD_PASSWORD | --password= | (empty) | Password to join; empty = none |
RIFTFIELD_MAX_PLAYERS | --max-players= | 8 | 1–16 players |
RIFTFIELD_SEED | --seed= | (random) | Only when making a new world; a number or a word |
RIFTFIELD_DIFFICULTY | --difficulty= | normal | easy · normal · hard |
RIFTFIELD_PVP | --pvp= | false | Players can hit each other |
RIFTFIELD_GUESTS_CAN_BUILD | --guests-can-build= | true | Players can build and break things in the world |
RIFTFIELD_DAY_LENGTH | --day-length= | 600 | Length of a day in the game (seconds) |
RIFTFIELD_AUTO_UPDATE | — | false | true = move the server to the newest image on its own once nobody has been on for the time below (needs RIFTFIELD_VERSION=latest). The world is always saved first. |
RIFTFIELD_UPDATE_IDLE_MINUTES | — | 30 | Minutes the server must be empty before it updates |
RIFTFIELD_UPDATE_CHECK_MINUTES | — | 10 | How often it checks |
docker compose logs updater.Change .env, then run docker compose up -d again for the new values to take effect.
Ports and domains
- Open UDP
24567(or your port) in the VPS firewall, e.g.sudo ufw allow 24567/udp, and in your cloud provider's security group - Running it at home, forward this UDP port on the router to the server machine
- A domain works: add a DNS A record such as
play.rift-field.com → the server's IP, and have friends enterplay.rift-field.comas the address. Don't turn on Cloudflare's proxy (the orange cloud) for that record: it doesn't pass the game's UDP
Backups, updates, moving saves
Saves live in the Docker volume worlds (in the container, /home/riftfield/.local/share/godot/app_userdata/Riftfield/worlds); the game keeps 3 more backups of its own (.bak1–.bak3).
The server saves every minute someone is playing, whenever someone leaves, and on docker compose stop / down.
Back up to your machine
docker compose cp server:/home/riftfield/.local/share/godot/app_userdata/Riftfield/worlds ./backup-worldsMove a world played in the game onto the server
Local saves: Windows %APPDATA%\Godot\app_userdata\Riftfield\worlds · macOS ~/Library/Application Support/Godot/app_userdata/Riftfield/worlds · Linux ~/.local/share/godot/app_userdata/Riftfield/worlds
docker compose cp ./my-world.json server:/home/riftfield/.local/share/godot/app_userdata/Riftfield/worlds/
# then set RIFTFIELD_WORLD to the file's name (without .json)
docker compose up -dUpdating the game
docker compose pull
docker compose up -dIf RIFTFIELD_VERSION is set to a version number, change it in .env first, then run those two lines.
Build from source / without Docker
Build the image yourself from source (for the team, with access to the repo):
git clone https://github.com/Rennyyy/Riftfield.git
cd Riftfield
cp .env.example .env
docker compose up -d --buildOr run it with Godot 4.7 straight from the project folder:
godot --headless --path . -- --server --world=myworld --port=24567 --password=secretStop it by creating the file named in RIFTFIELD_STOP_FILE (the server saves and quits within a second) — killing the process loses whatever happened since the last save.
FAQ
My friends can't connect
Check the port is open as UDP (not TCP), in the machine's firewall and the provider's. Look at the log with docker compose logs server: no "joined" line means the packets aren't getting there.
"This name is already in use in this world"
Characters are tied to the player's name: what they carry and where they stand come back when you join with the same name. Change your name in the main menu.
How much does a server use?
Next to no CPU while nobody plays · with 1 player about 110 MB of RAM and under 10% of one core; more players mean more of the world loaded.
Can I change an existing world's seed?
No — a world keeps the seed it was made with. For a new map, set RIFTFIELD_WORLD to a new name.