tModLoader-Web-Managed-Server

tModLoader-Web-Managed-Server

Docker app from Crosis47's Repository

Overview

Independently maintained Terraria tModLoader dedicated server with a web dashboard for worlds, Workshop mods, players, configuration, and backups. Inspired by JACOBSMILE/tmodloader1.4. First startup requires internet access to install the game runtime. Open the container logs for the one-time setup code, then open WebUI and create your administrator credential. The game waits for setup. Manage game settings in the dashboard after setup; saved dashboard settings take precedence over environment defaults. Use dedicated data and backup folders; startup repairs their ownership to UID/GID 1000:1000. Keep the dashboard on a trusted LAN or use an HTTPS reverse proxy. Wiki guides: Dashboard setup: https://github.com/Crosis47/tmodloader/wiki/Web-Dashboard#access-and-credentials Settings ownership: https://github.com/Crosis47/tmodloader/wiki/Configuration#choose-who-manages-settings Networking and proxy access: https://github.com/Crosis47/tmodloader/wiki/Networking-and-Access Storage and updates: https://github.com/Crosis47/tmodloader/wiki/Updates-and-Storage Worlds and Journey mode: https://github.com/Crosis47/tmodloader/wiki/Worlds-and-Playthroughs Mods and Workshop: https://github.com/Crosis47/tmodloader/wiki/Mods-and-Workshop Backups and recovery: https://github.com/Crosis47/tmodloader/wiki/Backups-and-Recovery Autosave and restart schedules: https://github.com/Crosis47/tmodloader/wiki/Configuration#scheduling All settings and defaults: https://github.com/Crosis47/tmodloader/wiki/Configuration#defaults-reference Troubleshooting: https://github.com/Crosis47/tmodloader/wiki/Troubleshooting

tModLoader on Unraid

Install tModLoader-Web-Managed-Server from Unraid Community Applications to run a modded Terraria dedicated server with a web dashboard for worlds, Workshop mods, players, settings, and backups.

Install and set up

  1. Open the Apps tab in Unraid, search for tModLoader, and install tModLoader-Web-Managed-Server.
  2. Review the Game port, Dashboard port, Server data, and Backup archives fields. Choose available host ports and dedicated storage folders. For a new server, start with empty folders. The default data path is /mnt/user/appdata/tmodloader-crosis47/data; the backup path is /mnt/user/appdata/tmodloader-crosis47/backups.
  3. Leave Enable Dashboard set to 1 and Manage game settings with set to web. Optional fields are available under Show more settings; the game settings can be managed in the dashboard after setup.
  4. Apply the configuration and start the container. First startup needs internet access to download and install the game runtime.
  5. Open the container's logs in Unraid and find the one-time setup code. Open WebUI from the container menu, enter the code, and create your administrator credential. The game waits until administrator setup is complete.
  6. Use the dashboard to create or select a world, choose mods, and configure your server. Set a player password if needed; it is separate from the administrator credential. The default is no player password.

Set Settings > Docker > Docker Stop Timeout to 120 seconds. The app also requests a 120-second container stop timeout so the server has time to save and exit. Increase both if your mod pack needs more time.

Connect to the server

In your tModLoader client, join using the Unraid server's IP address and the Game port selected during installation (default: 7777). Use a compatible tModLoader version and the server's mod set.

For players outside your LAN, forward the game TCP port on your router to the Unraid host. See the networking guide for connection details.

The default dashboard address is http://<Unraid-IP>:8080. The WebUI button uses your configured dashboard host port. Keep HTTP dashboard access on a trusted LAN. For a hostname, set Dashboard origin (TMOD_WEB_ORIGIN) to the exact browser origin, including the scheme and any non-default port. For remote access through an HTTPS reverse proxy, also configure Trusted proxy (TMOD_WEB_TRUSTED_PROXY) and the required forwarding headers described in the networking and proxy guide. Do not expose the HTTP dashboard directly to the internet.

Choose where to manage settings

With the default configuration, manage worlds, mods, passwords, autosave, backups, and restart schedules in the dashboard. Saved dashboard values override matching Unraid environment defaults and remain in effect when the container is recreated.

Manage game settings with controls this behavior:

Value Where to configure game settings
web (default) Use the dashboard. Unraid values provide defaults for settings that have not been saved in the dashboard.
env Use the Unraid container fields. Dashboard configuration editing is disabled. Set the intended world, mods, and password before switching.

Setting Enable Dashboard to 0 also uses environment-managed game settings and skips administrator setup. Expand Show more settings to configure the server in Unraid.

Ports, storage paths, dashboard access, and runtime update options are configured in Unraid. Change the host port mappings when needed; keep the internal container ports at 7777 for the game and 8080 for the dashboard.

See settings ownership and defaults for the full configuration reference. Individual Unraid field descriptions also include relevant wiki URLs, which you can copy into your browser.

Storage, backups, and updates

Server data stores worlds, mods, the installed runtime, dashboard credentials, settings, and logs. Backup archives stores server backups. Preserve both folders when updating or recreating the container. Do not share them with another server instance.

Startup repairs ownership of these dedicated folders to UID/GID 1000:1000, then runs the game and dashboard without root privileges. Do not add PUID/PGID variables or override the container user; this image uses 1000:1000 rather than Unraid's usual 99:100 convention.

Use the dashboard to create, schedule, verify, and restore backups. Backups briefly stop the game and disconnect players. Create a backup before major world, mod, or version changes.

Update the container through Unraid to receive dashboard and container fixes. Game runtime updates are controlled separately by Automatic runtime updates: 1 checks for runtime updates at startup, while 0 retains the installed runtime. First startup always requires a download.

See storage and updates and backups and recovery for more details.

Advanced configuration

  • Optional *_FILE settings need a matching read-only file mapping in Unraid. Entering a container path in a setting does not mount the host file.
  • Use custom server configuration requires a read-only file mapping to /terraria-server/customconfig.txt, plus env mode or a disabled dashboard. Keep the custom configuration's game port at 7777.
  • Masked password and token fields hide input in the form, but their values are still stored in Docker and the saved Unraid configuration.

Help

Check the container logs and the troubleshooting guide if setup or startup fails. The project wiki also covers worlds, Workshop mods, schedules, and dashboard use.

For issues with this container, open a project issue with the relevant logs and your configuration, removing passwords and tokens. This container is independently maintained and is not affiliated with Re-Logic or the tModLoader team.

Media gallery

Categories

Download Statistics

3,378
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/crosis47/tmodloader:latest
Last Updated2026-10-02
First Seen2026-10-11

Runtime arguments

Web UI
http://[IP]:[PORT:8080]
Network
bridge
Shell
bash
Privileged
false
Extra Params
--stop-timeout=120

Template configuration

Game portPorttcp

Host TCP port players connect to. Keep the container port at 7777.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Networking-and-Access#game-connections

Target
7777
Default
7777
Value
7777
Dashboard portPorttcp

Host dashboard port. Keep the container port at 8080; the WebUI button follows this mapping.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Networking-and-Access#change-the-dashboard-port

Target
8080
Default
8080
Value
8080
Server dataPathrw

Dedicated folder for worlds, mods, runtime, dashboard credentials, settings, and logs. Startup sets ownership to 1000:1000.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Updates-and-Storage#persistent-folders

Target
/data
Default
/mnt/user/appdata/tmodloader-crosis47/data
Value
/mnt/user/appdata/tmodloader-crosis47/data
Backup archivesPathrw

Dedicated backup folder. Preserve this and server data during updates. Startup sets ownership to 1000:1000.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Updates-and-Storage#persistent-folders

Target
/backups
Default
/mnt/user/appdata/tmodloader-crosis47/backups
Value
/mnt/user/appdata/tmodloader-crosis47/backups
Manage game settings withVariable

web: saved dashboard values override Unraid game settings; Unraid values only seed unsaved settings. env: Unraid controls game settings and dashboard configuration editing is disabled. Dashboard disabled always uses env.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#choose-who-manages-settings

Target
TMOD_CONFIG_SOURCE
Default
web|env
Value
web
Use custom server configurationVariable

Yes requires TMOD_CONFIG_SOURCE=env or dashboard disabled, plus a separately added read-only file mapping to /terraria-server/customconfig.txt. Keep its game port at 7777 for this template.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#custom-server-configuration

Target
TMOD_USECONFIGFILE
Default
No|Yes
Value
No
Dashboard originVariable

Leave empty for server-IP access. For a hostname or proxy, enter the exact browser origin including scheme and non-default port.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#web-dashboard

Target
TMOD_WEB_ORIGIN
Trusted proxyVariable

Optional single proxy IP or DNS name as seen by the container. Proxy must overwrite forwarding headers; see networking documentation.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#web-dashboard

Target
TMOD_WEB_TRUSTED_PROXY
Administrator hash fileVariable

WebUI only. Optional container path to an existing Argon2id credential hash file; add a matching read-only file mount. Empty uses first-run setup.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#web-dashboard

Target
TMOD_WEB_TOKEN_FILE
Workshop API key fileVariable

WebUI only. Optional container path to a Steam API key file; add a matching read-only file mount. A key saved in the dashboard takes precedence.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#web-dashboard

Target
TMOD_WORKSHOP_KEY_FILE
Game password fileVariable

Optional path inside the container; add a matching read-only file mount. Saved dashboard passwords override this in web mode.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#change-the-game-password

Target
TMOD_PASS_FILE
Automatic runtime updatesVariable

1 checks and tests runtime updates at startup. 0 retains the installed runtime. First startup always requires a download.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#startup-runtime-updates

Target
TMOD_AUTO_UPDATE
Default
1|0
Value
1
Runtime update channelVariable

Empty follows the image channel; enter stable or preview to override. Applied at container startup.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#startup-runtime-updates

Target
TMOD_UPDATE_CHANNEL
Runtime version pinVariable

Exact supported tModLoader release. Empty follows the selected channel; downgrades require a matching checkpoint.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#startup-runtime-updates

Target
TMOD_UPDATE_VERSION
Update free-space reserve (MiB)Variable

Additional free space beyond three copies of game data required for startup update staging.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#startup-runtime-updates

Target
TMOD_UPDATE_MIN_FREE_MB
Default
1024
Value
1024
Update readiness timeout (seconds)Variable

Maximum wait for the copied-world compatibility test and live startup readiness.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#startup-runtime-updates

Target
TMOD_UPDATE_TEST_TIMEOUT
Default
600
Value
600
GitHub API tokenVariable

Optional narrowly scoped token for release-discovery API rate limits. Not required for ordinary public downloads. Stored in container configuration; not a dashboard setting.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Updates-and-Storage#startup-runtime-updates

Target
TMOD_GITHUB_TOKEN
Enable DashboardVariable

Enabled (1): no need to set any game settings below; leave their defaults and configure them in the dashboard. Keep Manage game settings with set to web (default). Optional deployment settings above are configured in Unraid. Disabled (0): expand Show more settings and configure the game settings in Unraid; administrator setup is skipped.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#web-dashboard

Target
TMOD_WEB_ENABLED
Default
1|0
Value
1
Initial game passwordVariable

Optional player password, separate from the administrator credential. Empty disables it. Saved dashboard password overrides this after setup.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#change-the-game-password

Target
TMOD_PASS
Welcome messageVariable

Message displayed to players when they join the server. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#game-network-and-access

Target
TMOD_MOTD
Default
A tModLoader server powered by Docker!
Value
A tModLoader server powered by Docker!
Maximum playersVariable

Maximum simultaneous players allowed, from 1 to 255. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#game-network-and-access

Target
TMOD_MAXPLAYERS
Default
8
Value
8
Server languageVariable

Language code for server messages, such as en-US. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#game-network-and-access

Target
TMOD_LANGUAGE
Default
en-US
Value
en-US
Additional cheat protectionVariable

0 disables Terraria’s additional cheat checks; 1 enables them. This is not authentication or a firewall. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_SECURE
Default
0|1
Value
0
NPC streaming rangeVariable

Controls NPC streaming to clients, from 0 to 1000. Leave the default unless tuning network behavior. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_NPCSTREAM
Default
60
Value
60
UPnP port mappingVariable

0 disables automatic router port mapping; 1 requests it. Docker port publishing and firewall rules still need host configuration. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_UPNP
Default
0|1
Value
0
World nameVariable

Selects the world file by name. A different name may create a new world if no matching file exists. Do not include path separators. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#world-selection-and-generation

Target
TMOD_WORLDNAME
Default
Docker
Value
Docker
New world sizeVariable

Used only when creating a world: 1 small, 2 medium, 3 large. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#world-selection-and-generation

Target
TMOD_WORLDSIZE
Default
3|1|2
Value
3
New world evilVariable

Random, Corruption, or Crimson. To change evil in the WebUI, choose an unused world name, stage the settings, and apply changes. Apply saves and stops the game, disconnects players, creates the new world, and restarts. Existing worlds are never converted; a matching name loads that world. Custom evil requires a name of at most 26 characters and seed of at most 39 characters. Special seeds and mods may generate both evils or alter generation. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#world-selection-and-generation

Target
TMOD_WORLDEVIL
Default
random|corruption|crimson
Value
random
New world seedVariable

Seed used when generating a new world. Changing it does not regenerate the current world. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#world-selection-and-generation

Target
TMOD_WORLDSEED
Default
Docker
Value
Docker
New world difficultyVariable

Used when creating a world: 0 Classic, 1 Expert, 2 Master, 3 Journey. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#world-selection-and-generation

Target
TMOD_DIFFICULTY
Default
1|0|2|3
Value
1
Selected Workshop entriesVariable

Comma-separated Workshop mod IDs or collection:ID entries. Removing an entry disables it on managed startup but keeps cached downloads. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#mods-and-workshop

Target
TMOD_MODS
Steam offline policyVariable

use-cache allows startup with available cached mods when Steam cannot be reached. strict fails if required update/download checks fail. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#mods-and-workshop

Target
TMOD_MOD_OFFLINE_POLICY
Default
use-cache|strict
Value
use-cache
Collection expansion limitVariable

Maximum items allowed while expanding Workshop collections, from 1 to 1000. Limits unexpectedly large collections. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#mods-and-workshop

Target
TMOD_COLLECTION_MAX_ITEMS
Default
1000
Value
1000
Download attemptsVariable

Maximum attempts for transient Steam Workshop download failures, from 1 to 20. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#mods-and-workshop

Target
TMOD_DOWNLOAD_RETRIES
Default
3
Value
3
Retry delay (seconds)Variable

Time to wait between failed download attempts, from 0 to 600 seconds. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#mods-and-workshop

Target
TMOD_DOWNLOAD_RETRY_DELAY
Default
10
Value
10
Autosave interval (minutes)Variable

Save the live world every N minutes (default: 10). 0 disables scheduled autosaves. Saves update the world in place without disconnecting players; they do not create backup archives. Save the draft, then Apply &amp; Restart to activate a changed interval. The timer resets when the game starts. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#backups-and-autosave

Target
TMOD_AUTOSAVE_INTERVAL
Default
10
Value
10
Autosave chat announcementVariable

Chat message sent before each scheduled save. Leave empty to save silently. The autosave interval controls the schedule; 0 disables scheduled saves. Save the draft and apply to activate changes. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#backups-and-autosave

Target
TMOD_AUTOSAVE_MESSAGE
Default
Scheduled world save starting.
Value
Scheduled world save starting.
Backup scheduleVariable

Choose disabled, minutes, every X days, daily, weekly, or monthly. Interval mode preserves the existing backup interval. Cold backups disconnect players, save, archive, and restart the game. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#backups-and-autosave

Target
TMOD_BACKUP_MODE
Default
interval|disabled|days|daily|weekly|monthly
Value
interval
Backup interval (minutes)Variable

0 disables scheduled backups. 1440 runs approximately every 24 hours. The interval resets on container start or after a manual backup. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#backups-and-autosave

Target
TMOD_BACKUP_INTERVAL
Default
0
Value
0
Back up every X daysVariable

Used in days mode. Each day is 24 hours. The timer resets on container startup, configuration apply, and after any backup attempt. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#backups-and-autosave

Target
TMOD_BACKUP_DAYS
Default
7
Value
7
Backup weekdayVariable

Used for weekly backups at the selected backup time and timezone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#backups-and-autosave

Target
TMOD_BACKUP_WEEKDAY
Default
sunday
Value
sunday
Backup day of monthVariable

Used for monthly backups. Choose 1 through 31; shorter months use their last day. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#backups-and-autosave

Target
TMOD_BACKUP_MONTHDAY
Default
1
Value
1
Backup timeVariable

Daily, weekly, and monthly backups use this 24-hour HH:MM time. Busy or unhealthy servers defer the backup. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#backups-and-autosave

Target
TMOD_BACKUP_TIME
Default
03:00
Value
03:00
Backup timezoneVariable

Use UTC or an IANA timezone such as America/New_York. Missing daylight-saving times shift forward; repeated times use their first occurrence. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#backups-and-autosave

Target
TMOD_BACKUP_TIMEZONE
Default
UTC
Value
UTC
Backups to retainVariable

Number of verified backup bundles to keep for this data directory. Cleanup runs only after a successful backup and restart; recovery originals are not pruned. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#backups-and-autosave

Target
TMOD_BACKUP_KEEP
Default
7
Value
7
Minimum free space (MiB)Variable

Refuse a backup before stopping the game when /backups has less free space than this threshold. 1024 means 1 GiB. This is not an archive-size estimate; 0 disables the threshold. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#backups-and-autosave

Target
TMOD_BACKUP_MIN_FREE_MB
Default
1024
Value
1024
Restart scheduleVariable

Choose disabled (default), minutes, every X days, daily, weekly, or monthly. Save the draft and apply to activate changes. Busy or unhealthy servers defer the restart until ready. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#scheduled-restarts

Target
TMOD_RESTART_MODE
Default
disabled|interval|days|daily|weekly|monthly
Value
disabled
Restart interval (minutes)Variable

Used in interval mode only. 0 disables interval restarts; 1440 is approximately every 24 hours. The timer resets whenever the game starts, including after backups or applying settings. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#scheduled-restarts

Target
TMOD_RESTART_INTERVAL
Default
0
Value
0
Restart every X daysVariable

Used in every-X-days mode. Enter 1 through 3650; each day is exactly 24 hours. The timer resets whenever the game starts, including after backups or applying settings. It does not use the calendar time or timezone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#scheduled-restarts

Target
TMOD_RESTART_DAYS
Default
7
Value
7
Restart weekdayVariable

Used in weekly mode. Choose the weekday on which the restart warning begins, at the selected time in the selected timezone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#scheduled-restarts

Target
TMOD_RESTART_WEEKDAY
Default
sunday
Value
sunday
Restart day of monthVariable

Used in monthly mode. Choose 1 through 31. If a month has fewer days, use its last day: 31 becomes February 28 or 29, for example. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#scheduled-restarts

Target
TMOD_RESTART_MONTHDAY
Default
1
Value
1
Restart timeVariable

Used for daily, weekly, and monthly schedules. Enter HH:MM in 24-hour format, such as 04:00, in the restart timezone below. The warning starts at this time; the game stops after the warning delay. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#scheduled-restarts

Target
TMOD_RESTART_TIME
Default
04:00
Value
04:00
Restart timezoneVariable

Used for daily, weekly, and monthly schedules. Use UTC or an IANA timezone such as America/New_York. A skipped daylight-saving time shifts forward by the clock-change gap; a repeated time runs at its first occurrence only. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#scheduled-restarts

Target
TMOD_RESTART_TIMEZONE
Default
UTC
Value
UTC
Restart warning delay (seconds)Variable

Wait after the scheduled restart announcement before saving and stopping the game. Default: 60; 0 restarts immediately. This delay is separate from the Docker shutdown warning delay. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#scheduled-restarts

Target
TMOD_RESTART_DELAY
Default
60
Value
60
Restart countdown warnings (seconds)Variable

Comma-separated remaining times, such as 300,60,10. Warnings longer than the restart delay are skipped. Leave empty to disable countdown chat messages; the initial announcement is controlled separately. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#scheduled-restarts

Target
TMOD_RESTART_COUNTDOWN
Default
300,60,10
Value
300,60,10
Restart chat announcementVariable

Chat message sent when a scheduled restart becomes due, before the warning delay. Leave empty to omit the announcement. Players will still disconnect when the game restarts. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#scheduled-restarts

Target
TMOD_RESTART_MESSAGE
Default
Scheduled server restart soon. Please prepare to disconnect.
Value
Scheduled server restart soon. Please prepare to disconnect.
Shutdown announcementVariable

Chat message sent to players when Docker requests a graceful container shutdown. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_SHUTDOWN_MESSAGE
Default
Server is shutting down NOW!
Value
Server is shutting down NOW!
Shutdown warning delay (seconds)Variable

Wait after the shutdown announcement before requesting save-and-exit when Docker stops the container. Default: 3; 0 skips the delay. Keep Docker stop_grace_period longer than this delay plus the graceful shutdown timeout and shutdown overhead. Dashboard restarts and backups use their own stop flow. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it. Keep Unraid Docker Stop Timeout and Extra Parameters --stop-timeout greater than shutdown delay + timeout + overhead (120 seconds by default).    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_SHUTDOWN_DELAY
Default
3
Value
3
Graceful shutdown timeout (seconds)Variable

How long to wait after requesting a save-and-exit before forced termination. Keep Docker’s stop_grace_period longer than this value plus shutdown overhead. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it. Keep Unraid Docker Stop Timeout and Extra Parameters --stop-timeout greater than shutdown delay + timeout + overhead (120 seconds by default).    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_SHUTDOWN_TIMEOUT
Default
90
Value
90
Console verbosityVariable

quiet reduces routine output; normal shows standard output; debug shows detailed output. Complete raw output remains in the persistent console log. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_LOG_LEVEL
Default
normal|quiet|debug
Value
normal
Crash replay linesVariable

Number of raw console lines replayed when the game fails. 0 disables crash replay; debug already shows raw output. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_CRASH_LOG_LINES
Default
200
Value
200
Console history retention (days)Variable

Remove archived console logs older than this many days. Default: 30; 0 disables age-based cleanup. The current and previous console logs and tModLoader own logs are kept. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_LOG_RETENTION_DAYS
Default
30
Value
30
Console history size limit (MiB)Variable

Remove oldest archived console logs until history fits this budget. Default: 512; 0 disables the size limit. Current and previous console logs are separate from this budget. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_LOG_HISTORY_MAX_MB
Default
512
Value
512
Console log rotation size (MiB)Variable

Rotate the current console log at this size so one long server session cannot grow it indefinitely. Default: 64. Cleanup runs at startup, rotation, and periodically while output is received. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_LOG_ROTATE_MB
Default
64
Value
64
Process priorityVariable

Server scheduling priority, from 0 (realtime) to 5 (idle). Lower values request higher priority; container permissions may limit this. Prefer the default unless diagnosing performance. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#runtime-and-diagnostics

Target
TMOD_PRIORITY
Default
1
Value
1
Freeze timeVariable

Who can control freeze time in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_SETFROZEN
Default
0|1|2
Value
0
Set time to dawnVariable

Who can control set time to dawn in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_SETDAWN
Default
0|1|2
Value
0
Set time to noonVariable

Who can control set time to noon in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_SETNOON
Default
0|1|2
Value
0
Set time to duskVariable

Who can control set time to dusk in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_SETDUSK
Default
0|1|2
Value
0
Set time to midnightVariable

Who can control set time to midnight in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_SETMIDNIGHT
Default
0|1|2
Value
0
God modeVariable

Who can control god mode in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_GODMODE
Default
0|1|2
Value
0
Wind strengthVariable

Who can control wind strength in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_WIND_STRENGTH
Default
0|1|2
Value
0
Rain strengthVariable

Who can control rain strength in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_RAIN_STRENGTH
Default
0|1|2
Value
0
Time speedVariable

Who can control time speed in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_TIME_SPEED
Default
0|1|2
Value
0
Freeze rainVariable

Who can control freeze rain in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_RAIN_FROZEN
Default
0|1|2
Value
0
Freeze windVariable

Who can control freeze wind in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_WIND_FROZEN
Default
0|1|2
Value
0
Extended placement rangeVariable

Who can control extended placement range in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_PLACEMENT_RANGE
Default
0|1|2
Value
0
Adjust difficultyVariable

Who can control adjust difficulty in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_SET_DIFFICULTY
Default
0|1|2
Value
0
Biome spreadVariable

Who can control biome spread in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_BIOME_SPREAD
Default
0|1|2
Value
0
Enemy spawn rateVariable

Who can control enemy spawn rate in a Journey world: 0 locked, 1 host only, 2 everyone. In web mode, saved dashboard settings override this value; in env mode, Unraid controls it.    ||    Wiki: https://github.com/Crosis47/tmodloader/wiki/Configuration#journey-permissions

Target
TMOD_JOURNEY_SPAWN_RATE
Default
0|1|2
Value
0