Short answer
Yes, by design. A Godot 4 game that already uses ENetMultiplayerPeer can run on NetCraftGames as a Linux x86_64 headless server: you export it with Godot's dedicated server mode, pack it, declare its UDP port, and we deploy it, check it and hand out the address. ENet is UDP, so browsers cannot use it; browser clients need the WebSocket lane.
What Godot gives you
Godot's export documentation says to select the server export preset, open its Resources tab and choose "Export as dedicated server" mode, which adds the dedicated_server feature tag automatically. Since Godot 4.0 any binary also runs headless with the --headless argument. You can detect server mode in code with OS.has_feature("dedicated_server").
What you provide
- A Linux x86_64 export in dedicated server mode, packed as
.tar.gz. - A server that creates its peer on a fixed UDP port, for example
peer.create_server(8910, 32), then assigns it tomultiplayer.multiplayer_peer. - A health and join reply on the declared UDP port, and a loopback player-count endpoint if you want idle shutdown.
- The same Godot version for client and server.
Steps
- Export a dedicated serverIn Project > Export add a Linux preset, open its Resources tab, choose Export as dedicated server, and export a Linux x86_64 binary with the export templates matching your editor version.
- Create the server on a fixed UDP portIn the server path create an
ENetMultiplayerPeer, callcreate_server(port, max_clients), assign it tomultiplayer.multiplayer_peerand skip all window, audio and input setup. - Run headless and test locallyStart
./server.x86_64 --headlesson a Linux machine and join with a real client from another computer before packing. - Add health and join repliesAnswer a small UDP request on the declared port with a known string, so a join can be proven and not only a port.
- Report players and save under /gameExpose a bounded loopback player-count endpoint and write saves under
/game/savesso shutdown can checkpoint first. - Pack and declareArchive the export folder as
.tar.gzwith no links or secrets, and declare the engine as Godot ENet with its UDP port and start command.
Honest gaps
- Not certified. The exact export template version, UDP reachability from real networks and an actual join still need live evidence.
- UDP only. Players behind networks that block UDP cannot connect to an ENet server.
- Mobile. Android and iOS clients are declared intent; suspension and rejoin are not tested.
- No anti-cheat and no host migration.
Frequently asked questions
How do I export a Godot 4 dedicated server?
Add a Linux preset in Project > Export, open the Resources tab and choose Export as dedicated server, which adds the dedicated_server feature tag. Export for Linux x86_64 with matching templates. Any Godot binary can also run headless with the --headless argument, which is how a server is started on a machine without a display.
Can browsers connect to a Godot ENet server?
No. ENet runs over UDP and browsers do not expose raw UDP to web exports. A Godot game with browser players needs WebSocket or WebRTC networking instead. NetCraftGames supports an existing Godot WebSocket server behind a wss gateway, and a WebRTC signaling lane, but it cannot convert ENet traffic for browsers.
Sources
- Godot Docs: Exporting for dedicated servers, accessed October 3, 2026