What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
The reliable way to host a modded Terraria world is to run the current tModLoader Dedicated Server Utils workflow, install one exact mod set, point the server at a known .wld file, and forward the server port to the computer running it. Every player must use a compatible tModLoader build and the same enabled mods. You can run the server directly with the management script or isolate it in Docker; both approaches use the same Mods, Worlds, configuration, and networking principles.
Prefer not to run the server on your own PC? Godlike.Host offers hosted Terraria servers with free DDoS protection and up to three free backups a day.
This guide covers a home server, a headless Linux or macOS instance, and a Docker deployment. It also explains the ARM limitation, reproducible Workshop modpacks, unattended startup, router forwarding, updates, and the failures that most often prevent friends from connecting.
As an Amazon Associate I earn from qualifying purchases.
Check compatibility before installing
Confirm these prerequisites before creating a world. Fixing an architecture or version mismatch after the server is populated is considerably harder than checking it first.
- Use an x86 or x64 machine. The current official Dedicated Server Utils documentation states: “Currently ARM support does not exist for TML or the Dedicated Server.” Do not assume an ARM VPS, Raspberry Pi, or ARM single-board computer will run a tModLoader server.
- Match the tModLoader version. The server and clients need compatible builds. If you pin a particular server version, have every player use that same version rather than allowing one side to update independently.
- Match the enabled mod set. A client missing a server mod, carrying an extra enabled mod, or using a different mod build can be rejected during connection or produce world and gameplay errors.
- Reserve a stable local address. A router rule must point to the server computer. Give that computer a DHCP reservation or static address so the rule does not break after a reboot.
- Plan storage and backups. Mods, downloaded Workshop files, worlds, and logs all live on the host. Keep a copy of the Worlds directory before changing mods or tModLoader versions.
The tModLoader GitHub Wiki page that shows 11 March 2026 as its last-modified date notes that its older 1.4.4 dedicated-server walkthrough is outdated. Use the current Dedicated Server Utils workflow for installation details and treat older examples as configuration guidance only.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
Choose Docker or the management script
The official tooling supports two deployment routes. Neither route changes the requirements for compatible clients, identical mods, a configured world, or an open server port.
| Decision point | Docker | Management script |
|---|---|---|
| Isolation | Packages tModLoader in a container, keeping its runtime separate from the host. | Runs the server and its files directly on the host operating system. |
| File access | Files are exposed through the mapped project directories; container permissions must be correct. | Direct access to Mods, Worlds, logs, and configuration gives the most control. |
| Installation | Install Docker and Compose, download the project Dockerfile and compose file, set the host UID and GID, then start the stack. | Install tModLoader through SteamCMD or a GitHub release with the supplied management commands. |
| Updates | Rebuild the image and recreate the container; a no-cache build is available when a normal rebuild keeps an old layer. | Use the management workflow’s install operation for tModLoader and installed mods, or its separate operations when only one needs updating. |
| Best fit | Operators who want a repeatable, isolated service and are comfortable with Compose. | Administrators who want simple direct file editing, custom scripts, or maximum control over the host. |
| Architecture | The ARM restriction applies to both routes. Use a compatible x86 or x64 host. | |
For a public or long-running service, isolation can make upgrades and recovery cleaner. For a private server on a spare computer, direct management is often easier because you can inspect and edit every file without entering a container.
Recommended Free Tools
Create the server directory structure
Choose one top-level directory and keep the server’s mutable data there. A predictable layout makes backups, modpack transfers, and migration straightforward.
tModLoader/
├── Mods/
│ ├── install.txt
│ ├── enabled.json
│ └── local-mod.tmod
├── Worlds/
│ ├── FriendsWorld.wld
│ └── FriendsWorld.twld
├── serverconfig.txt
└── tmlversion.txt
- Mods can contain local
.tmodfiles plus the Workshop-generatedinstall.txtandenabled.json. - Worlds stores the Terraria world file (
.wld) and any matching.twlddata. - serverconfig.txt is optional but recommended for repeatable startup.
- tmlversion.txt is optional and can pin a specific or legacy tModLoader version in the management workflow.
The management workflow also creates the server and Steam Workshop directories it needs. Do not scatter Mods or Worlds across unrelated locations unless you deliberately set the corresponding paths in configuration.
Install tModLoader with the management script
Use the script when you want direct access to the host filesystem or do not want to maintain a container.
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
Install from SteamCMD
- Prepare SteamCMD and a Steam account that can download the required files.
- From the management-script directory, run
install-tml --username your_steam_username. - Complete any authentication requested by SteamCMD and wait for the installation to finish.
- Check that the expected server files and the Mods and Worlds directories exist before adding a world.
The username command is the documented SteamCMD route. Keep credentials out of shell history and service files where your operating system permits it.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Install from the GitHub release
- Run
install-tml --githubto install the latest available GitHub release through the management workflow. - If the server must stay on a particular or legacy build, place the required version in
tmlversion.txtor set the documentedTMLVERSIONvalue before installing. - Record the selected version so clients can reproduce it exactly.
Do not mix a pinned client version with an unpinned server that updates automatically. Decide whether the server or the clients are the source of truth, then keep the other side aligned.
Install with Docker and Compose
- Install Docker and Docker Compose on an x86 or x64 host.
- Download the tModLoader Dedicated Server Utils Dockerfile and Compose file from the current project documentation.
- Open
docker-compose.ymland set the container process UID and GID to values that can read and write the server directories on the host. - Place the project in the directory that will hold Mods and Worlds. The documented setup creates those directories if they do not already exist.
- Start the service with
docker compose up -d. - Inspect the container logs and confirm that the server has created or found the expected configuration and world paths before inviting players.
Keep the Compose project directory backed up. It contains the mapped data that survives container replacement; data written only inside an unmounted container layer should not be treated as a reliable backup.
Reproduce the exact mod list
Human-readable Workshop names are not enough for a dedicated server. The reproducible method is to export the enabled client set as a mod pack.
- Open tModLoader on a client that already has the intended mods.
- Go to Workshop, then Mod Packs.
- Choose Save Enabled as New Mod Pack.
- Open the resulting modpack folder and locate
Mods/install.txtandMods/enabled.json. - Copy both files into the server’s
Modsdirectory. - Run the management workflow’s
install-modsoperation so the listed Workshop mods are downloaded on the server. - Copy any private or locally built
.tmodfiles into the same server Mods directory. Every client must receive those files through the same trusted distribution method.
Keep install.txt and enabled.json together. The first identifies what the server should install; the second records what should be enabled. If you edit one without the other, the server can download the right files but start with an unexpected enabled set.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchRank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
After installation, compare the server’s mod list with the client’s list before creating a shared world. Disable experimental mods until the basic connection works, then add them in small groups so a failure has a clear cause.
Configure the world and server
Copy the supplied example serverconfig.txt and edit it rather than relying on interactive prompts. The following values are the important ones for a small friends-only server:
| Setting | Purpose | Important qualification |
|---|---|---|
worldname |
Name used when the server must autocreate a new world. | It does not replace the path to an existing world file. |
world |
Exact path to an existing or new .wld file. |
For Docker, use a container path such as /tModLoader/Worlds/FriendsWorld.wld. |
autocreate=1 |
Creates a world when the specified world does not exist. | Use a backup before allowing a typo in the path to create a different world. |
maxplayers |
Maximum number of simultaneous players allowed by the configuration. | The wiki reference gives a range of 1 to 255. A separate Official Terraria Wiki search result reports a current dedicated-server default of 16; verify the default for the exact installed build instead of assuming either figure. |
port |
Network port on which the server listens. | The walkthrough uses 7777 as the default. Any other value must also be changed in the router and firewall rules. |
password |
Requires connecting players to enter a password. | Use a unique value and share it privately. |
npcstream |
Controls the NPC streaming option documented by the server configuration reference. | Use the value appropriate to your installed build and desired server behavior. |
modpath |
Points the server at the directory containing mod files. | Keep it consistent with the host or container path layout. |
modpack |
Selects a modpack for startup. | Use the path and format shown by the current tModLoader configuration example. |
A concrete configuration can look like this:
worldname=FriendsWorld
world=/srv/tModLoader/Worlds/FriendsWorld.wld
autocreate=1
maxplayers=8
port=7777
password=riverstone42
modpath=/srv/tModLoader/Mods
The paths in that example are for a direct host. In Docker, change the world path to the path visible inside the container, such as /tModLoader/Worlds/FriendsWorld.wld, and use the matching in-container Mods path. Do not copy a host path into a container configuration unless the container actually mounts that path.
Start a dedicated or headless server
Windows
- Open the tModLoader installation directory.
- Run
start-tModLoaderServer.bat. - When using a separate configuration or world, pass
-configand-worldarguments, or put those values inserverconfig.txt. - Allow the executable through the Windows firewall for the selected server port.
Linux or macOS
- Make the launcher executable if necessary, then run
start-tModLoaderServer.sh. - Use
-worldfor the exact.wldfile and-configfor the configuration file when those are not in the default locations. - Use
-nosteamwhen you are intentionally running the non-Steam server mode supported by your installation. - Set the Steam mode explicitly for unattended operation and provide a
.wldpath so startup does not pause for an interactive world-selection prompt.
For a server reached over SSH, run the process inside screen or tmux. Detach from that session instead of closing the terminal; the server then continues after the SSH connection ends. Reattach later to read the console and issue the normal server shutdown command.
Docker
Start the container with docker compose up -d, then follow its output with the Compose logs command. A healthy startup should show the selected world and listen on the configured port. If the container repeatedly exits, inspect permissions, the in-container paths, and the image architecture before changing mods.
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
Open the server to remote players
Players on the same home network can usually connect using the server computer’s local address. Players on another network need a router rule that forwards the chosen server port to that local address. The wiki walkthrough uses port 7777, so a typical setup is:
- Reserve the server computer’s local IP address in the router.
- Create a port-forwarding rule for 7777 to that address.
- Allow the same port through the host operating system’s firewall.
- Confirm that
port=7777is still inserverconfig.txtor the startup arguments. - Give remote players the public address and port, not the private 192.168.x.x or 10.x.x.x address.
- Test from a network outside the home connection, such as a phone hotspot. Testing from inside the same LAN can give a misleading result on routers that do not support loopback.
If you select another port, change the configuration, router rule, firewall rule, and the port entered by players as one change. Opening a port on the router while the server listens elsewhere cannot work. A Docker deployment also needs the Compose configuration to publish the selected container port on the host.
Connect clients safely
Have every player perform the same compatibility check before joining:
- Update or roll back tModLoader to the server’s recorded version.
- Install the modpack files or the same Workshop mods.
- Enable exactly the mods represented by
enabled.json. - Install any local
.tmodfiles required by the server. - Use the server’s public address and configured port when outside the host’s network.
- Enter the server password if one is configured.
When a player is refused immediately, compare versions and enabled mods before changing router settings. A successful LAN connection proves that the server is running, but it does not prove that the public forwarding rule or an external firewall is correct.
Update without breaking the world
Schedule updates rather than applying them while players are connected.
Best Value
Management-script updates
The management script’s install operation updates tModLoader and the installed mods. The workflow also provides separate operations for updating only mods or only tModLoader. Use a separate operation when you need to keep one side fixed for compatibility, and record the resulting versions before restarting the server.
- Stop the server cleanly and copy the entire Worlds directory.
- Save the current
enabled.json,install.txt, configuration, and version file. - Run the required management-script update operation.
- Start the server without players and inspect the console for load errors.
- Have one client verify the world and mod behavior before opening the server publicly.
Docker updates
- Stop or recreate the Compose service according to the project’s update instructions.
- Rebuild the image and bring it back up.
- If a normal rebuild does not refresh the image, rebuild with the available no-cache option, such as
docker compose build --no-cache, then rundocker compose up -d. - Confirm that the mapped Mods and Worlds directories are still present; replacing a container must not replace your data.
Never update tModLoader, a large group of mods, and the world generator simultaneously without a backup. If a new mod version changes world data, restoring the old world and the old mod set is the fastest recovery path.
Troubleshoot the common failures
| Symptom | Likely cause | What to check |
|---|---|---|
| Server says a mod is missing or a client cannot join. | The enabled set or mod version differs. | Compare enabled.json, install.txt, local .tmod files, and the tModLoader version on both sides. |
| Workshop mods never appear on the server. | The modpack files were copied to the wrong directory or the install operation was not run. | Put both files in the server Mods directory and run install-mods; check permissions and logs. |
| A new world starts instead of the established world. | The world path is wrong, inaccessible, or points to a different filename. |
Use the exact .wld path, verify the file exists, and temporarily disable autocreation after restoring the correct file. |
| Docker cannot find the world. | A host path was used where a container path is required. | Use the in-container path, for example /tModLoader/Worlds/FriendsWorld.wld, and verify the Compose volume mapping. |
| Friends on the internet time out, but LAN players connect. | Port forwarding, host firewall, public address, or carrier-grade NAT is preventing access. | Forward the configured port to the reserved local IP, allow it through the firewall, and test from an external network. |
| The server stops when an SSH window closes. | It was not detached from the terminal. | Run it inside screen or tmux, detach, and reconnect to the session later. |
| The server will not start on the chosen VPS or board. | The machine uses ARM. | Move the deployment to a supported x86 or x64 host; current Dedicated Server Utils documentation says ARM support does not exist. |
| Players are prompted for a world or the process waits indefinitely. | Startup is interactive and lacks an explicit world or Steam mode. | Set the Steam mode required by the deployment and supply a valid .wld path through the config or startup arguments. |
| Container starts but cannot write Mods or Worlds. | The container UID or GID does not own or have permission to the mapped directories. | Set UID/GID in docker-compose.yml and correct host directory ownership before restarting. |
Home server or paid hosting?
A home machine avoids a recurring hosting bill but requires you to keep the computer powered on, maintain the operating system, configure the router, handle backups, and troubleshoot connectivity. A dedicated game-server provider charges a recurring fee in exchange for an always-on machine and some level of managed administration. The wiki describes a dedicated host as a company that provides server hosting for a fee.
| Factor | Home machine | Paid dedicated hosting |
|---|---|---|
| Up-front control | Complete control of files, operating system, mods, and backups. | Control depends on the provider’s panel and supported tModLoader build. |
| Networking | You must forward the port and deal with ISP restrictions. | The provider normally supplies a reachable address, but you still configure the server port and access policy. |
| Availability | Depends on your power, internet connection, and maintenance schedule. | Designed for continuous operation, subject to the provider’s service terms. |
| Cost | No server-provider subscription, but electricity, hardware, and bandwidth are your responsibility. | Recurring hosting charge; the actual price and included resources vary and must be verified with the provider. |
| Compatibility | You can choose the exact supported tModLoader version if the hardware meets the architecture requirement. | Confirm that the plan supports tModLoader, custom mods, Workshop installation, the required player count, and your chosen version before paying. |
Choose hosting when reliable uptime and avoiding router administration matter more than direct control. Choose home hosting when you already have a suitable x86/x64 computer and want unrestricted access to the server files. In either case, retain your own world and modpack backups so a migration does not depend on one machine or provider.
Quick Recap
Pre-launch checklist
- Host architecture is x86 or x64, not ARM.
- Server and clients use the same compatible tModLoader version.
Mods/install.txtandMods/enabled.jsoncame from the intended client mod pack.- All required local
.tmodfiles are present. - The world file is backed up and the configured path is exact.
serverconfig.txtcontains the intended world, port, player limit, password, and mod settings.- Docker volume paths and UID/GID permissions are correct if using Compose.
- The launcher starts without interactive prompts in the intended headless mode.
- The host firewall allows the configured port.
- The router forwards that same port to the server’s reserved local IP.
- At least one client has tested the server before the full group joins.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




