VGKAMI
Advertise Get listed

Game Guides

How to Install Mods on a Terraria Server with tModLoader (1.4.4)

October 26, 2026 12 min read

To install mods on a Terraria server, run the server with tModLoader instead of the vanilla Terraria server. On a tModLoader client, save the enabled Workshop collection as a mod pack, copy that pack’s install.txt and enabled.json into the server’s Mods directory, install tModLoader and the listed mods, then start the server with a configured world and port. Every player must use the same tModLoader release and a compatible set of enabled mods, versions, dependencies, and load order.

Back up your world and player data before changing the mod list. The procedure below covers a self-hosted Linux installation, Docker, Windows launch scripts, network access, updates, rollback, and the errors that most often prevent friends from joining.

What is required to run a modded Terraria server?

A modded server uses a different runtime from vanilla Terraria. tModLoader is a separate application, so a vanilla client cannot join a tModLoader server, and a tModLoader client cannot join a vanilla server. Installing a .tmod file into a vanilla server directory does not change that requirement.

Choose a supported tModLoader release

Use the Steam version of tModLoader or a release obtained from the project’s GitHub distribution on the server. For current 1.4.4-era dedicated servers, the Dedicated Server Utils documentation is the preferred reference; an older wiki page explicitly warns that its instructions are outdated for 1.4.4 dedicated servers.

Check the host architecture

Do not assume that a single-board computer or ARM cloud instance can run the dedicated server. The official utilities documentation currently states that ARM support does not exist for tModLoader or the Dedicated Server. Verify the architecture before spending time on installation.

Gather the files and access you need

  • A machine on which you can install and run tModLoader continuously.
  • Permission to create files, run the server process, and open the Terraria port in the host firewall.
  • A tModLoader client containing the exact Workshop mods you intend to use.
  • A world file and player files, or permission for the server to create a new world.
  • A backup location that is separate from the live server directory.

SteamCMD is the documented recommended installation route for the Linux management script. GitHub installation is also available. Windows installations include a start-tModLoaderServer.bat launcher, while Docker provides an isolated deployment when Docker and volume permissions are already part of your setup.

Which tModLoader server deployment should you use?

All three approaches run the same modded server runtime. The difference is who manages the operating system, files, updates, and networking.

Axis Management script Docker Managed host
Control Direct filesystem and process control Isolated container with direct volume access Provider controls the base environment
Setup burden Highest Linux administration burden Requires Docker and UID/GID setup Lowest server administration burden
Updates Run the provided install or update commands Rebuild the container Use provider controls while pinning tModLoader and mod versions
Networking Operator handles firewall and port forwarding Operator maps or exposes the server port Provider usually supplies panel and network settings
Best fit Self-hosters who need control Operators who prefer isolation or repeatable deployment Players who want a 24/7 server without maintaining the host

The management script gives the most direct access to files and processes. Docker makes the runtime easier to reproduce but adds container, volume, and ownership rules. A managed host reduces system administration; before paying, confirm that it supports your tModLoader release, imports a mod pack, exposes the required storage path, and retains restorable backups.

How should you prepare the server folders and backups?

Keep the server’s data in a predictable tModLoader directory. A documented installation commonly contains a tModLoader directory with Mods and Worlds subdirectories; installation may also create server and steamapps directories.

Preserve world data as a pair

An existing world is selected by its .wld path. tModLoader also stores additional world data in a matching .twld file. Copy and back up both files together. Keeping only the vanilla-looking .wld can discard mod-specific world information.

Back up before changing mods

Stop the server, copy the world and player files to a dated backup location, and record the current tModLoader release and mod pack. tModLoader maintains multiple backup archives in its world and player backup folders; if a world or player later refuses to load, a dated ZIP archive can be restored. A separate manual copy protects you from deleting the live files while troubleshooting.

Use a separate server directory

Do not point the dedicated server at a client’s working directory. Separate server and client copies make it possible to test a new mod list without overwriting the world that your group currently uses.

How do you create a reproducible Workshop mod pack?

Save a mod pack on a tModLoader client rather than typing mod names into a server panel. The Workshop does not identify server mods by friendly names alone, and a name list cannot reliably reproduce IDs, local files, or the enabled state.

  1. Launch tModLoader on a client and subscribe to or download every required Workshop mod.
  2. Open Workshop > Mod Packs.
  3. Choose Save Enabled as New Mod Pack and give the pack a recognizable name.
  4. Use Open Mod Pack Folder to open that pack’s Mods directory.
  5. Copy both install.txt and enabled.json from the pack into the server’s Mods directory.

install.txt tells the server which Workshop content to obtain. enabled.json records which mods should be enabled, including local mods; omitting it can leave every installed mod disabled. Keep the two files from the same saved pack so the installed and enabled sets do not drift apart.

When should you copy a local .tmod file?

A manually distributed mod uses the .tmod extension. Copy that file into the server’s Mods directory and include it in enabled.json if it should load. A manually copied .tmod does not auto-update through Workshop and is marked as manually installed on a client, so distribute a new file deliberately whenever its author publishes a compatible update.

How do you install tModLoader and the mod pack with the Linux management script?

The management script is intended for a self-managed Linux server. Run it from the directory containing the script, and place the mod-pack files in the server’s expected Mods directory before installing mods.

  1. Install or download the management script and create the server’s tModLoader directory structure.
  2. Choose the documented SteamCMD route or the GitHub route for the tModLoader runtime.
  3. Copy install.txt, enabled.json, and any local .tmod files into the server’s Mods directory.
  4. Install the runtime from SteamCMD with:
    ./manage-tModLoaderServer.sh install-tml --username your_steam_username
  5. Install the mods listed by the pack with:
    ./manage-tModLoaderServer.sh install-mods
  6. For the GitHub runtime route, use:
    ./manage-tModLoaderServer.sh install-tml --github

If install.txt is missing from the expected directory, the script installs no Workshop mods. If enabled.json is missing, no mods are enabled. The enabled file must include every mod that should load, including local files.

What does a successful installation look like?

The Mods directory should contain the generated pack files and any local mod files, and the installation should have its runtime directories available. Before starting a public server, launch once in a test world, read the console for dependency or load-order errors, and confirm that the intended mods appear in the server’s enabled list.

How do you deploy the same mod pack with Docker?

Docker is useful when you want an isolated, repeatable runtime. It does not remove the need to manage the mod list or backups; it moves those files into a mapped host directory.

  1. Create the host directory that will be mapped to the container’s tModLoader directory.
  2. Place install.txt, enabled.json, local .tmod files, worlds, and serverconfig.txt in that mapped directory.
  3. Set the container UID and GID to values that can read and write the mapped files, following the image’s documented settings.
  4. Check that the mapped port matches the port in serverconfig.txt.
  5. Start the stack with:
    docker compose up -d

Back up the mapped host directory, not only the running container. When the image or tModLoader version changes, rebuild the container and verify the mod pack before reconnecting players.

How do you configure world selection and unattended startup?

Use serverconfig.txt so the server starts with the same world, player limit, port, password, and mod paths after a reboot. Copy the example configuration supplied with the installation and edit at least the world setting.

world=/path/to/your_world.wld
maxplayers=8
port=7777
password=choose-a-password
modpath=/path/to/tModLoader/Mods
modpack=/path/to/tModLoader/Mods/ModPacks/<pack>/mods/enabled.json

World keys

world= selects an existing world or the path at which a new one will be created. worldname= supplies the name for an automatically created world, and autocreate=1 enables creation when the requested world does not exist. Use an absolute path when the launch directory may vary.

Player and network keys

The documented maxplayers range is 1–255, with a default of 8. The documented default server port is 7777. Set a password for a private group and keep the value out of publicly shared configuration files.

Mod paths

modpath= points to the directory containing server mods. modpack= can point to the pack’s enabled.json so the same enabled set is selected on every unattended start. If a hosting provider uses a nonstandard working directory, adjust these paths rather than copying files into a second, ambiguous Mods folder.

How do you start the server and let remote players connect?

Start with the configured launcher

With the management script, start the server using:

./manage-tModLoaderServer.sh start

On Windows, run start-tModLoaderServer.bat. When serverconfig.txt does not provide a world or Steam support choice, the Windows launcher can prompt for those values. For unattended operation, supply them in the configuration instead of relying on prompts.

Open the port on the host and router

Players on the same local network may be able to connect without router forwarding. Players on another network need the configured Terraria port allowed by the host firewall and forwarded from the router to the server machine, or exposed through the hosting provider’s network controls. Forward the same port you placed in serverconfig.txt; forwarding a different port does not fix a mismatch.

Account for alternate save directories

Some hosts launch the server from a directory different from the one containing the files. Configure modpath explicitly and, where the host requires it, launch with -savedirectory ./ so worlds, players, and mods are read from the intended location.

Do all players need the same Terraria mods?

Yes. Every player must launch the same tModLoader release and a compatible enabled mod set. The multiplayer guidance also requires matching mod versions, dependencies, and load order. A player who has an extra content mod, an older dependency, or a different order can fail during handshake or world loading even when the server address is correct.

  1. Record the server’s tModLoader release and the name of the saved mod pack.
  2. Give each player the same pack files or the Workshop collection used to create the pack.
  3. Have everyone close the game, update or remove conflicting versions, and enable only the agreed set.
  4. Compare dependency warnings and load order before attempting a network diagnosis.

Always check the runtime first. A vanilla Terraria client cannot connect to a tModLoader server, and changing ports or passwords will not resolve that incompatibility.

How should you update mods without breaking the world?

Treat a tModLoader update and a mod-pack update as one coordinated change. Pin the known-good runtime and pack before updating a public server, then update the server and every client together.

Management-script updates

The management script’s general install or update operation can update tModLoader and installed mods together. Separate operations are available when you need to update only the mods or only tModLoader. Read the command’s current help output before running it, because command names and options can change between script revisions.

Docker updates

Rebuild the container to obtain a new image or mod set. Keep the mapped data directory and its backups intact while replacing the image, then test the world with the new runtime before allowing players back in.

Rollback procedure

  1. Stop the server and record the failing runtime and mod-pack versions.
  2. Restore the previous install.txt, enabled.json, and local .tmod files.
  3. Restore the matching tModLoader release.
  4. If the world or a player still will not load, restore the appropriate dated ZIP from tModLoader’s world or player backup folder.
  5. Start the server in a test state and confirm that the world loads before reconnecting the group.

Why can nobody join my modded Terraria server?

Work through these checks in order, starting with the runtime and mod set rather than the router.

Mods do not install

Confirm that install.txt is directly inside the server’s expected Mods directory. A file left in the parent tModLoader directory or in a client-only pack folder is not discovered by the installation command.

Mods install but remain disabled

Open enabled.json and verify that every intended mod is listed, including local .tmod files. Recopy the file from the saved pack if it was edited manually or came from a different pack.

The client reports a mod mismatch

Compare the tModLoader release first. Then compare enabled mods, exact mod versions, dependencies, and load order. Have the player disable unrelated mods rather than adding more files to the server until both sides match.

A vanilla client is being used

Install and launch tModLoader on that computer. The two server types do not interoperate, so a vanilla launch cannot be repaired by changing the mod list.

The world will not load

Check that world= points to the intended .wld file and that its matching .twld file is present. Restore a dated world backup if the failure began immediately after a mod change.

Remote players time out

Verify the port in serverconfig.txt, the host firewall rule, and router forwarding. Test from the host’s local network separately; a local success with a remote timeout usually points to forwarding or firewall configuration.

The ARM host fails during setup

The official utilities currently document ARM as unsupported. Move the server to supported hardware or use a hosting environment that explicitly provides a compatible architecture; changing the mod files will not add ARM support.

Files appear in the wrong location

Set modpath, check the process working directory, and use -savedirectory ./ where required by the host. Then confirm that the process is reading the same Mods, Worlds, and player directories you backed up.

What should you verify before inviting players?

  • The server launches tModLoader, not the vanilla Terraria executable.
  • The server architecture is supported; ARM is currently not supported by the official dedicated-server utilities.
  • install.txt and enabled.json came from the same saved mod pack.
  • Local .tmod files are present and included in the enabled list.
  • The selected .wld and matching .twld files are backed up.
  • serverconfig.txt points to the intended world and mod paths.
  • The chosen port is allowed through the host firewall and forwarded when remote access is required.
  • Every player has the same tModLoader release, mods, versions, dependencies, and load order.
  • A test launch has completed before the public server is opened.

Frequently Asked Questions

Can I use a manually downloaded .tmod file with Workshop mods?

Yes. Place the local file in the server’s Mods directory and include it in enabled.json alongside the Workshop mods. Because manually copied files do not auto-update through Workshop, distribute and version the file yourself when its author releases a compatible update.

Where can I recover a player that became unusable after a mod change?

Stop the server and look in tModLoader’s player backup folder for a dated ZIP archive. Restore the player data from a backup made before the change, then start with the previous compatible mod pack before attempting another update.

Does changing the server port change the port players enter in Terraria?

Players must use the externally reachable port that is forwarded to the server’s configured port. If a router translates one external port to another internal port, document that mapping for players and keep the serverconfig value, firewall rule, and forwarding rule consistent.

Why can a mod load on a client but fail on the dedicated server?

Some mods depend on client-only features, missing server dependencies, or a different load order. Compare the server console’s dependency and load-order errors with the saved pack, and remove or replace a mod that does not declare dedicated-server compatibility.