App Store template
tModLoader icon

tModLoader

Host a modded Terraria server with Steam Workshop mods, persistent worlds, scheduled saves, and password-protected multiplayer.

Launch in your Sealos workspace.

tModLoader template preview
Template previewFull screenshot
Template deployments
15 on Sealos
Deployment
Your own instance
Category
Tools

About this template

Overview

tModLoader adds community mods to Terraria; this template hosts a password-protected tModLoader dedicated server with persistent worlds and Steam Workshop support on Sealos Cloud.

From the documentation

Media sources: in-game title logo and official Steam screenshots. This official image illustrates modded gameplay; this deployment's verification covers the server tests described below.

How to deploy tModLoader

  1. Choose Deploy now to start tModLoader in your Sealos workspace.
  2. Review workshop_mods, world_size, difficulty in the deployment form.
  3. Launch the template, then inspect the application status and resource cards in Canvas.

Resources to plan for

Start with the resources defined by the tModLoader template. Review CPU, memory, persistent storage, and network allocations for every service in Canvas. Capacity needs depend on your data and workload; monitor usage as they grow.

Template configuration and setup

Access after deployment

Use the application URL or connection details shown in Canvas. Follow the deployment guide for first-time account setup or client configuration, and keep generated credentials available for that step.

Hosting and billing

Sealos monthly plans include compute, memory, storage, and traffic. Size your plan for all deployed services. Software licenses and external AI or API services may have separate terms and charges. Confirm the applicable plan and optional charges in Cost Center.

Compare Sealos resource plans
Read full documentationCollapse documentation

For current cloud charges, refer to Sealos plan pricing. Upstream documentation may reference earlier billing models.

Deploy and Host tModLoader on Sealos

tModLoader adds community mods to Terraria; this template hosts a password-protected tModLoader dedicated server with persistent worlds and Steam Workshop support on Sealos Cloud.

Official tModLoader modded gameplay

Media sources: in-game title logo and official Steam screenshots. This official image illustrates modded gameplay; this deployment's verification covers the server tests described below.

About Hosting tModLoader

Players connect from the tModLoader game client to a shared Terraria world. The server runs the stable tModLoader v2026.7.3.0 release for Terraria 1.4.4.9, using jacobsmile/tmodloader1.4:v2026.07.3.0. Match the client version and enabled mods to the server.

Sealos provisions one server instance, a public TCP port, startup configuration, and a persistent volume for worlds and mods. The server saves automatically every 10 minutes, and its shutdown handler issues the native exit command to save before stopping. Access uses the game client's join-password prompt; administration uses the resource terminal and environment settings in Sealos.

Common Use Cases

  • Private cooperative worlds: Share a persistent world with friends and protect entry with a generated password.
  • Workshop mod sessions: Download and enable a selected set of compatible Steam Workshop mods.
  • Mod development checks: Run a dedicated server to test multiplayer compatibility and world persistence.

Dependencies for tModLoader Hosting

The template uses the upstream Docker image, which includes tModLoader, SteamCMD, and console utilities. Its startup scripts download the .NET runtime when the container starts. Players need Terraria and a matching tModLoader client.

Deployment Dependencies
Implementation Details

Architecture components:

ComponentPurpose
One StatefulSet replicaRuns the dedicated game server and owns one world
TCP NodePort Service (<app-name>-nodeport)Publishes container port 7777 through a region-specific public port
1Gi persistent volume at /dataStores worlds, enabled-mod settings, and downloaded Workshop content
ConfigMapInitializes data directories and prepares server settings without printing the join password

Configuration:

SettingDefaultBehavior
workshop_modsEmptyComma-separated numeric Workshop IDs; downloads and enables the listed mods
world_size11 = Small, 2 = Medium, 3 = Large
difficulty00 = Classic, 1 = Expert, 2 = Master, 3 = Journey
Join passwordGenerated per deploymentAvailable as TMOD_PASS in the server's environment settings
World name and seedSealosConfigured by TMOD_WORLDNAME and TMOD_WORLDSEED
Player limit8Connection limit; increase resources for additional active players
Autosave interval10 minutesConfigured by TMOD_AUTOSAVE_INTERVAL

The personal low-load baseline is 100m CPU and 1024Mi memory, with requests of 10m CPU and 102Mi memory. A fresh small world, password authentication, world-data exchange, player-list and save commands, and a stability window longer than 60 seconds were tested. The adjacent 512Mi tier failed fresh small-world generation with System.OutOfMemoryException. Recipe Browser v0.12.0.3 also passed authentication, world-data and save checks at this tier. Large worlds, content-heavy mods, and busy multiplayer sessions need additional resources.

World files are stored in /data/tModLoader/Worlds, enabled-mod settings in /data/tModLoader/Mods, and Workshop downloads in /data/steamMods. World size and difficulty affect newly generated worlds. Each existing world retains its saved settings.

License information: tModLoader and the Docker wrapper use MIT licenses for their respective code. Terraria and other bundled components retain their own licenses and usage terms.

Why Deploy tModLoader on Sealos?

Sealos is built on Kubernetes and provides a visual environment for deploying and managing applications.

  • One-click setup: Create the server, public TCP endpoint, and persistent storage from one template.
  • Resource control: Adjust CPU, memory, and storage from resource cards with pay-as-you-go pricing.
  • Persistent worlds: Keep world and mod data across ordinary container restarts.
  • Canvas and AI operations: Inspect resource status and logs, or describe configuration changes in the AI dialog after deployment.

Deployment Guide

  1. Open the tModLoader template and click Deploy Now.
  2. Choose the world size and difficulty. Enter comma-separated Workshop IDs to enable mods, or leave the field empty for a fresh unmodded world.
  3. Wait for deployment to complete, typically 2-3 minutes. You will then be redirected to Canvas. The first server startup also downloads its runtime and generates the world; network speed, selected world size, and mods can add several minutes. Wait for the server resource to become Ready and for Server started in its logs.
  4. Open the server's resource card. Copy the public TCP address and mapped port from its network settings, then read the generated TMOD_PASS value in its environment settings. The public port is allocated by Sealos and can differ from the container's 7777 port.
  5. Start a matching tModLoader v2026.7.3.0 client. Select Multiplayer → Join via IP, choose a compatible character, and enter the displayed host and public port. For example, a US West deployment uses a region host such as tcp.usw-1.sealos.app; use the port assigned to your own deployment.
  6. Enter TMOD_PASS at the game's password prompt. Complete any compatible mod synchronization requested by the client, then join the world. Share the host, port, version, mod list, and password with invited players.

Configuration

After deployment, use Canvas, its AI dialog, or the server resource card to update environment variables and resource limits.

Mods

The template maps workshop_mods to both TMOD_AUTODOWNLOAD and TMOD_ENABLEDMODS. Use numeric IDs separated by commas, such as 2619954303 for Recipe Browser. Include required dependencies and choose versions compatible with the pinned server.

An empty TMOD_ENABLEDMODS uses the saved /data/tModLoader/Mods/enabled.json, which starts empty on a new deployment. To clear all enabled mods, stop the server, back up the world, and set that file to [] while TMOD_ENABLEDMODS is empty. Removing content mods can affect existing worlds.

After the mods have downloaded, you can clear TMOD_AUTODOWNLOAD and keep TMOD_ENABLEDMODS populated to reuse the saved files on subsequent starts. Restore the download IDs when you want to update them.

Console and backups

Open the server container's terminal to run native console commands:

inject "playing"
inject "save"
inject "say Welcome to the server!"

Save the world and stop the server before copying the contents of /data for a consistent backup. Keep backups outside the deployment before deleting its persistent volume. The template allows up to 120 seconds for graceful shutdown.

Scaling

Keep one replica for each world. For more active players, larger worlds, or mod packs, open the StatefulSet resource card in Canvas and increase CPU, memory, and storage as needed. Watch server responsiveness, memory use, and save times after changes; the tested baseline covers personal low-load use.

Troubleshooting

  • Connection or password errors: Verify the public TCP host and allocated port, confirm the resource is Ready, and read the current TMOD_PASS value. Enter the hostname without an https:// prefix.
  • Version or mod mismatch: Match the pinned stable client version, mod versions, and dependencies. Coordinate server and client upgrades and back up the world first.
  • Slow startup or out-of-memory errors: Review logs for runtime or Workshop download progress. Increase memory for larger worlds or mod packs and increase CPU when world generation or gameplay is too slow.
  • Locale-dependent mods: The upstream image lacks ICU. This template uses .NET invariant globalization while allowing named cultures; formatting and collation follow invariant rules. Mods that require locale-specific behavior need an ICU-equipped runtime image.

For support, use tModLoader issues, Docker wrapper issues, or the Sealos community.

License

See the Docker wrapper license and tModLoader license. Terraria remains subject to its publisher's terms.

From launch to everyday operations

Why deploy
on Sealos

A shorter path from an app you want to an app you can run. Sealos brings deployment and ongoing operations into one place.

  1. One-click deployment

    Start with a ready-made template. Review its configuration and launch from the Sealos console.

  2. Managed Kubernetes

    Run on managed infrastructure with built-in workload scheduling and recovery.

  3. Automatic HTTPS

    Give your application a public HTTPS endpoint with certificates managed for you.

  4. Persistent storage

    Keep application data on persistent volumes across container restarts.

  5. Room to grow

    Adjust CPU, memory, and replicas from the console as your workload changes.

One template. Connected resources.

You Get the Whole Stack

Sealos provisions the resources defined by your template and brings them together in your workspace.

  • App Service

    Container workloads with configurable CPU, memory, and replicas.

  • Public HTTPS URL

    An address for your app, with managed TLS certificates.

  • Database

    A database provisioned alongside your app when the template calls for one.

  • Persistent Volume

    Storage for the files and data your application needs to keep.

  • Environment Variables

    Application settings and secrets configured in one place.

  • Logs & Metrics

    Inspect container logs and resource usage from the console.

Resources and their configuration vary by template. Review the deployment form for this app’s exact setup.

Explore more production-ready templates.

More