Repository navigation
Web Dashboard
The dashboard provides server status and administrative controls and is enabled by default in 3.0.0 (TMOD_WEB_ENABLED=1). First-run setup uses a one-time code from container logs, and the game waits until setup is complete. Set TMOD_WEB_ENABLED=0 to opt out. See Getting started.
The supplied Compose deployment exposes the dashboard at http://SERVER-IP:8080 on your LAN, or http://localhost:8080 on the Docker host. Use your admin token to sign in. Tokens must contain 8–256 non-whitespace ASCII characters; the container stores an Argon2id hash, by default at /data/admin/token.argon2.
TMOD_WEB_TOKEN_FILE optionally selects an existing hash file inside the container. It must contain an Argon2id hash, not a plaintext token, and requires a matching mount when supplied externally.
Remote access is covered in Networking and access.
Overview brings game health, the active world, connected players, and pending recovery or settings activity together. This October 2 screenshot shows the 3.7.5 interface, including runtime update and checkpoint controls, with demonstration server data. Select it to view full size.
Use the header's sun/moon switch for light or dark mode and Theme for Slate & Teal, Forest, Ocean, Amethyst, Copper, Solarized, Nord, or Rose Pine. The browser remembers your choices; changing appearance does not restart the server. Without a saved mode, the interface follows the system color preference.
The 3.7.5 interface in Forest light mode, captured October 2 with demonstration data. Select it to view full size.
Overview provides Save now and Restart now. Save sends a live-world save command; check console output for completion. It does not create a backup. Restart asks for confirmation, warns players with the configured countdown, saves, and restarts the game while preserving running settings and runtime. It does not apply a saved draft or check for updates.
The next restart and countdown status appear with these controls. Postpone restart and Skip once / cancel countdown require review and are available before saving starts. They adjust one occurrence; the recurring schedule stays configured. Busy operations and unhealthy game state defer scheduled work. Follow status until the game is healthy again. Configure recurring work in Configuration → Scheduling.
Since 3.7.1, Restart now also retries startup when the game is unhealthy, using current data and runtime. Inspect the logs and correct the cause first. Backups & recovery → View game controls opens these same controls. Active operations and interrupted restores remain protected. Save now requires a healthy game.
For the default credential stored in /data/admin/token.argon2, run this from an interactive terminal on the Docker host:
docker compose exec --user tml:tml tmodloader python3 /terraria-server/admin_auth.py setup
docker compose restart tmodloaderThe setup command prompts for the new token twice without displaying it and writes its hash. Run the restart only after setup reports success; restarting interrupts the game and makes the dashboard load the new credential. Sign in with the new token afterward. Do not add -T: this command requires an interactive terminal.
If TMOD_WEB_TOKEN_FILE points to an externally mounted read-only hash file, replace that hash through your host-side secret provisioning process instead. The container cannot overwrite a read-only mount. Restart after updating the credential. Do not delete the data directory to reset dashboard access.
| Section | Purpose |
|---|---|
| Overview | Read server health and pending actions; check runtime releases, review diagnostics, and restart or recover the game |
| Players | Search server/world join history, review address bans or unbans, refresh connected players, and announce messages |
| Worlds | Expand metadata and uptime, create/switch worlds, delete unused worlds, and manage Journey permissions |
| Backups & recovery | Expand archive details, inspect compatibility, prepare compatible copies, and review restores |
| Configuration | Edit server settings and password, Scheduling, and runtime/log limits in web mode; world creation and Journey controls are on Worlds |
| Workshop | Look up mods and collections and stage mod selections |
| Playthroughs | Save and load a world with its mod and world/Journey selections |
| Mod profiles | Save and load named mod selections with optional configuration snapshots |
| Mod configs | Find existing mod configs, review saves, restore the previous version, and resolve disk conflicts |
| Interactive console | Read game output and send server commands |
In 3.7.3, enabling the WebUI selects web-managed settings by default; saved values take precedence over environment values. Explicit TMOD_CONFIG_SOURCE=env retains monitoring, console, and backup controls while managing game settings through the environment. Disabling WebUI makes environment settings authoritative even if a stale source value says web. See configuration modes for the 3.7.2 compatibility setting.
- Edit a value or select a world/mod selection.
- Save or stage the changes. Unsaved edits have not yet been stored.
- Select Review saved changes to compare running and saved values, including world and Journey settings changed outside Configuration. Unsaved form edits are not included.
- Use Review & apply or the page's review-and-restart control.
- Follow progress until the game returns to a healthy state.
Applying changes restarts the game and disconnects players. Amber cards identify unsaved edits; blue cards identify saved-but-not-applied settings. The attention banner shows a saved-change reminder only when the saved values differ from the running settings. If another session changed settings, refresh and review the current draft before trying again.
The saved-change review dialog also offers Cancel Changes to discard the stored draft. Review the listed differences before cancelling; this also discards staged profile config restoration, but does not undo direct mod configuration file saves. Settings changes are unavailable during active administration or backup operations.
The header links to Wiki, Report an issue, and Request a feature. On Overview → Get help, choose Preview support report to generate a local report with container/runtime versions, enabled mods, and recent errors. Sensitive details are removed before preview; review and edit the report before copying it into the bug report template. Nothing is sent automatically. See support report instructions and log fallback.
After signing in following a container upgrade, What’s new shows release highlights and a Full release notes link. Choose Got it to dismiss it; dismissal is remembered in persistent storage. Reopen the highlights from Overview → Get help → What’s new at any time. This describes the installed container release; notices about a newer available container and tModLoader runtime updates are separate.
A repository-provided 3.8.0 release-highlight example. Select the image to view full size.
Overview provides runtime release checks, blocked-update diagnostics, a collapsed workflow guide, and confirmed game-only update/recovery actions with progress dialogs. Check for updates only refreshes release information; Restart game and apply updates disconnects players and runs the startup checks without applying saved drafts. See Updates and storage before proceeding.
When a runtime update is available, Release notes in the update panel and Read release notes in the notice link to the matching upstream tModLoader release. A newer successful check clears an earlier release-discovery warning; compatibility and recovery failures remain visible until resolved. Completed settings-apply dialogs no longer reopen on login; active operations still show progress and completion.
The optional Announce new tModLoader versions in game chat setting saves immediately without a restart and defaults to off. The administration service checks even with the dashboard closed and announces each newly detected release once while the game is healthy. Toggling the option off and on does not repeat an announcement.
Since 3.4.1: login can show a newer container-release notice with release notes and deployment guidance. Checks are cached, follow the image's stable/preview channel, and do not interrupt login on failure or displace another open dialog. This is separate from runtime updating: pull the newer image and recreate the container to update the dashboard and container components.
The 3.7.5 notification interface with simulated installed/available versions. This illustrates the notice, not a live update check. Select it to view full size.
The Players page records character names across the server and on the currently loaded world, with visit counts and first/last join dates. Search covers the full history; paging controls appear when more records are available. Tracking runs with the game even when the dashboard is closed or disabled. It begins when the feature is installed and does not reconstruct earlier visits.
Records are grouped by character name. Expand a multi-address entry to review each observed connection and its ban state. Names can be reused or changed, and addresses can be shared or change; these records do not identify verified accounts or unique people. Direct-IP connections do not provide verified account names.
Use Ban IP beside a recorded target to review and confirm blocking future connections, even after the player has left. A history ban does not disconnect an existing session; use the connected-player Kick control for that. Unban IP confirms removal of that address from the native ban list while other banned addresses remain blocked. IP bans affect everyone sharing an address and can be bypassed by changing addresses. A name without a captured connection identifier cannot be banned offline. Custom server configurations require manual ban-list management.
The server-only ContainerCharacters helper captures joins and addresses; clients do not install an extra mod. If it cannot load, English join announcements (TMOD_LANGUAGE=en-US) provide name-only history. Its build log is /data/.tmod-control/character-bridge/build.log.
World history follows the world's internal GUID across switches and file renames. A new world with the same filename has separate history; copies of the same world share its identity. Unsupported world formats retain server-wide history only. Records persist in /data/.tmod-control/player-history.sqlite3 and survive container recreation and world restores. Ordinary world backups exclude this database; see Backups and recovery.
The 3.7.5 Players interface with fictional characters and documentation-only addresses. No live player query or moderation action was performed. Select it to view full size.
Refresh Players before acting on a player. A message such as “Kick command sent” confirms delivery of the command; check subsequent activity and player state for the result.
The interactive console sends native game-server commands. A save writes the live world but does not create a backup archive. Use Backups and recovery for a recoverable archive.
Documentation for Crosis47/tmodloader. See Home for version scope and Troubleshooting for help.




