All apps · 0 apps
tModLoader-Web-Managed-Server
Docker app from Crosis47's Repository
Overview
Readme
View on GitHubUnraid deployment
The template was tested by the maintainer on Unraid 7.3.2 in a TrueNAS SCALE 25.10.7 VM. Community Applications submission is still pending; this is not yet a catalog listing.
Template and first run
The template is templates/tmodloader-crosis47.xml. For a manual test, copy it to
/boot/config/plugins/dockerMan/templates-user/my-tmodloader-crosis47.xml on the
test Unraid host, then select it in Docker > Add Container. Review the generated
container configuration before starting.
- Use dedicated empty data and backup folders. The defaults are under
/mnt/user/appdata/tmodloader-crosis47/. Do not reuse another container's data. - Choose available host ports. Container ports stay at 7777 and 8080; changing the host mapping does not require changing the internal listener variables.
- Leave optional game settings at their defaults when using the dashboard. Set the player password in the dashboard after setup; it is separate from the administrator credential. The template defaults to no player password.
- Start the container and read its logs for the one-time setup code.
- Open WebUI, enter the code, and create the administrator credential. The game waits for this step; first-run runtime installation needs internet access.
- Manage worlds, mods, passwords, and schedules in the dashboard. Saved dashboard values override matching environment defaults after the first save.
Startup repairs dedicated volume ownership to UID/GID 1000:1000, then runs the services without root privileges. Do not add PUID/PGID variables or override the container user; this image does not implement the usual Unraid 99:100 convention. Set Settings > Docker > Docker Stop Timeout to 120 seconds. The template also requests a 120-second container stop timeout. This allows the server to save and exit; increase both if a larger mod pack needs more time.
Use HTTP only on a trusted LAN. For a hostname set TMOD_WEB_ORIGIN to the exact browser origin. For an HTTPS reverse proxy also configure TMOD_WEB_TRUSTED_PROXY and the headers documented in the project wiki. Do not directly publish the HTTP dashboard to the internet.
Controls in the Unraid form
The main form contains only the required ports, storage paths and Enable Dashboard. All optional controls are under Show more settings, with their existing defaults preserved.
Template order places all settings that cannot be adjusted in the dashboard before Enable Dashboard: ports and storage, settings ownership/custom config, dashboard access and secret files, then runtime installation and updates. Dashboard-managed controls follow it, grouped by server access, world generation, Workshop mods, autosave, backups, scheduled restarts, runtime/logging and Journey permissions. Unraid controls how advanced fields are displayed when Show more settings is expanded.
With Enable Dashboard set to 1 and Manage game settings with left at web, there is no need to configure the game settings below the toggle. Leave their defaults and manage them in the dashboard. The template exposes 76 environment controls.
The overview includes labeled wiki URLs for setup, settings ownership, networking, storage/updates, worlds, mods, backups, schedules, defaults and troubleshooting. Each individual setting also includes a Wiki URL pointing to its relevant documentation section. In the tested Unraid form, plain-text URLs in Overview are clickable, but URLs in individual setting descriptions are not; copy those URLs into a browser. Keep URLs as plain text; explicit link markup was stripped during testing.
Literal newlines, XML newline entities, and the twice-escaped HTML break found
in published ich777 templates did not produce visible line breaks in the tested
Unraid form. Field descriptions separate the inline Wiki URL with two vertical bars (||) and
four nonbreaking spaces on each side (  entities in the XML). The spacing
and double-bar separator were confirmed by the maintainer in Unraid.
This does not force the URL onto a separate line.
Manage game settings with selects web (default) or env:
web: Unraid game values seed settings not yet saved in the dashboard. Existing dashboard values continue to win when the container is recreated.env: Unraid fields control game settings; dashboard configuration editing is disabled. Populate the intended world, mods and password before switching.- Disabling the dashboard always uses environment-managed game settings.
Dropdowns expose supported numeric values where the game expects them. World size: 1 small, 2 medium, 3 large. Difficulty: 0 Classic, 1 Expert, 2 Master, 3 Journey. Journey permissions: 0 locked, 1 host, 2 everyone.
Host port mappings remain the port controls; internal listeners stay at 7777 and
8080. TMOD_HEALTH_START_PERIOD is a Compose substitution, not a container setting;
use Docker Extra Parameters --health-start-period if an override is necessary.
The image already supplies a 60-second health-check start period.
Optional *_FILE entries require separately added read-only file mappings; setting
an environment path does not mount a host file. Custom server configuration also
requires a file mapping to /terraria-server/customconfig.txt and env mode or a
disabled dashboard. Leave these options empty/off unless deliberately configured.
Masked password/token fields conceal input visually; Docker and saved Unraid
configuration still contain their values.
The expanded controls passed local default/structure checks, and the maintainer confirmed the final form layout and separators in Unraid. The runtime checks below used the smaller template; expanded env-mode operation remains untested.
Validation
On 2026-10-08, the maintainer confirmed these checks passed on Unraid 7.3.2, virtualized on TrueNAS SCALE 25.10.7 with 4 vCPUs, 8 GiB RAM, a dedicated 64 GiB virtual disk, and a PNY USB boot device with trial activation:
- Template import and initial container installation.
- Dashboard administrator setup and game startup.
- Restart through Unraid, retained administrator access, world and settings.
- Connection from a tModLoader client.
- Manual backup creation, archive verification, restoration and client reconnection.
These are user-reported interactive results. Screenshots confirmed the Unraid version, trial activation, device assignment and template field rendering. The exact pulled image digest, installed game version, shutdown timing and volume ownership output were not captured. Local XML parsing and deployment-field checks passed separately.
Additional coverage remains for non-default host ports, Workshop mod downloads, image update/recreation persistence, and reverse-proxy access. Do not interpret the restart check as proof of container replacement or an image upgrade.
Reproducing the test VM
Use an isolated guest with the resources above and disposable worlds. Create a
single-device cache pool on the virtual data disk, format it, and start the pool
before enabling Docker. The test used a 20 GB Docker vDisk and the default
/mnt/user/system/docker/docker.img and /mnt/user/appdata/ paths.
Pass through a dedicated USB device with a unique hardware identifier for Unraid boot and licensing. Unraid does not support TPM licensing inside a VM. Use a valid trial or separate license. Keep VM autostart off during testing.
TrueNAS 25.10 browser consoles use a password-protected SPICE display; VNC does
not support browser access. If UEFI initially enters its shell, connect -r
and map -r can rescan devices; launch fs0:\EFI\boot\bootx64.efi only if FS0
is the Unraid USB filesystem. Automatic boot after a full VM restart still needs
to be checked separately.
Community Applications submission
The root ca_profile.xml describes this project's repository. The root
LICENSE contains the standard MIT license with both copyright notices.
Third-party component attribution is documented in THIRD_PARTY_NOTICES.md. The template reuses the same hosted PNG
icon as the TrueNAS submission:
https://media.sys.truenas.net/apps/tmodloader/icons/icon.png
Canonical raw URLs point to master and become available only after merging.
Publish the template, then run Validate and Scan in the submission portal and resolve its findings before review. Portal validation and catalog submission remain pending.
References:
- https://ca.unraid.net/submit/help/builders
- https://ca.unraid.net/submit/help/xml-field-reference
- https://docs.unraid.net/unraid-os/using-unraid-to/create-virtual-machines/unraid-as-a-vm/
- https://docs.unraid.net/unraid-os/troubleshooting/tpm-licensing-faq/
- https://forums.unraid.net/topic/199431-unraid-install-onto-microsoft-hyper-v/
Media gallery
Categories
Download Statistics
Related apps
Explore more like this
Explore allDetails
ghcr.io/crosis47/tmodloader:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8080]- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--stop-timeout=120
Template configuration
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 & 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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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!
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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