Godot guide
Multiplayer with no server to run and nothing to configure. Pure GDScript — no native library to build. Local mode starts a bundled host when you press Play. Nodes handle connection, input, and server-authoritative motion.
There is no Godot SDK download yet. The addon isn't published — no link on this site, no public URL anywhere else. This guide documents the SDK as it ships so you can judge the design now; the install steps below aren't something you can run today. Tell us what you're building and we'll follow up when it's out.
Quickstart
Press Play and you're multiplayer
Networked mode only. The Godot addon always talks to a host (Unity and Unreal also offer an in-process mode). Local mode still means zero terminal setup — the bundled host starts for you on Play.
Add a connection. Add a NullTickConnection node anywhere in the scene. Defaults are right:
127.0.0.1:9999, room 1, Connect On Ready. On Play it starts (or reuses) the bundled local server.Make the avatar. Under your character's
Node3D/CharacterBody3D, add:- NullTickPlayerController — Style: FPS, Third-person, Top-down, Click-to-move, or None. Finds the connection, manages a camera, auto-adds jump for FPS/third-person. If no connection is nearby it tells you what to add.
- NullTickAgent3D — moves the parent to match the server. Place the parent at the spawn point (that origin maps to the server's zero).
Press Play. WASD moves, camera works, motion is server-authoritative.
#1 gotcha — naming. Godot reserves connect / disconnect for signals. Use connect_to_server() and disconnect_from_server(). Everything else reads as you'd guess: join_room, send_chat, get_var, and signals like connected / chat_received / var_changed.
Local mode is Windows zero-setup. The bundled host is a Windows program. On other platforms, use Live against a reachable server.
Install
Enable the addon
Copy
addons/nulltick/into your project.Keep the bundled server with it: the addon looks for
nulltick_host.exeunderres://server/, next to the addon, or (exported) next to the game binary.Enable the plugin: Project > Project Settings > Plugins > enable NullTick. This adds the NullTick dock — a live status/test panel that works even while the game runs out-of-process.
The addon folder is itself an openable Godot project if you want to poke around the demos and tests.
Player
Controllers, movement & facing
The player controller turns real speeds into server input; NullTickAgent3D applies server motion (and optional local rotation when enabled). A player standing still sends no movement. Clients send rates, not coordinates — a client cannot move itself; position is the server's own integral, with no coordinate on the movement wire to forge mid-game.
Demos
See it all working first
Open the NullTick addon project and run the demo scenes:
arena.tscn— every featurelastlight.tscn— Last Light (survival)sproutvalley.tscn— Sprout Valley (farming)
Multiplayer
See a second player
Run a second instance on the same computer — both join the same local server and room. Two machines need Live mode via the dashboard, or self-hosting.
You can also use the NullTick dock as a second client from the editor: join the room, chat, refresh the lobby.
Rooms
Rooms & lobby
The connection node owns rooms and lobby: join_room, create_room, request_room_list, plus signals when the list arrives. Rooms isolate visibility; entity ids are unique within a room.
Messages
Chat, RPC & reliable events
Use send_chat and send_event for reliable, in-order messages. Listen on chat_received / event_received.
Rule of thumb: continuous values → NetVars. One-shots (muzzle flash, hit spark) → reliable events, not spawned objects.
Network variables
Health, gold & game state
Create a NullTickVarSchema resource (rows of NullTickVarDef), assign it on the connection's Var Schema field, then read with get_var("health") and the var_changed signal. Server-authoritative; unchanged values send nothing. Keep the same declaration order on every client build.
Spawned objects
Pets, mounts & projectiles
NullTickNetworkObject3D on the spawnable scene (archetype, spawn/despawn, follow-owner).
NullTickObjectSpawner next to the connection with a NullTickArchetypeTable mapping number → scene so remote objects appear automatically.
Signals object_spawned / object_despawned are available if you want custom handling.
Editor tools
The NullTick dock
Godot runs your game out-of-process, so the dock is its own live test client: join or create rooms, chat with running clients, refresh the lobby, watch counters, and use Production settings / Ping Host from edit mode.
Production
Going live
You can't provision a managed server yet. Managed online hosting isn't available, so there is nothing for Live to point at unless you run a host yourself. Local mode works today — the bundled host starts on Play — and that is where testing belongs for now. (Our own showcases, like CapTown in the demos, run on hosts we operate.)
When managed hosting lands: paste a one-time link code from app.nulltick.com into the dock's Production settings — host, App ID, and API key fill Project Settings and res://nulltick_config.tres. App ID ships in the build; API key stays managed-tier.
Unreal