Manual editing (SSH/SFTP)

The GUI covers everything most people need. If you’re a developer who wants to hand-edit a room’s files, here’s how — and what’s safe to touch.

You don’t need this to run a room. The dashboard editor writes the same files for you, with version history and rollback. Reach for SSH only when you want full code control.

Connect

On a paid plan, each room has its own files on the worker that hosts it. From the room page, copy your SFTP host, port, and username; your access uses your account key, not a shared password.

  1. 1
    SFTP (drag-and-drop)
    Use FileZilla or Cyberduck. Host and port from the room page, protocol SFTP. You’ll land in your room’s directory.
  2. 2
    SSH (terminal)
    Prefer a shell? Connect with ssh -p <port> <user>@<host> and edit in place with your editor of choice.

What’s in there

  • config.json — the same room config the GUI edits (name, limits, stadium, kick-rate, plugin toggles).
  • scripts/ — installed hub scripts, each pinned to a version. Drop your own .js here too.
  • maps/ — custom stadium .hbs files.
  • replays/ — saved .hbr2 matches (read-only; managed by retention).

Safe to edit by hand

  • Yes: config.json values, files under scripts/ and maps/.
  • Careful: renaming or deleting an installed script can leave a room referencing something that’s gone — disable it in the GUI first.
  • Don’t: touch anything under .haxdevs/ — that’s the agent’s state (process, token handling, supervision). Editing it can drop the session.

How the agent picks up changes

The supervising agent watches your room directory. When you save a file, it validates and hot-reloads the change into the live room within a couple of seconds — the same path the GUI uses. If an edit throws, the agent catches it, keeps the session alive, and logs the error to your room’s live log instead of dropping the room.

# tail your room's activity over SSH
tail -f .haxdevs/room.log

# a clean reload looks like:
[reload] config.json changed -> applied
[reload] scripts/afk-kicker.js changed -> applied
Hand-edits don’t create GUI version history. If you want rollback points, save through the dashboard editor — or keep your own git repo of the scripts/ folder.