Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
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.
Install the tModLoader server runtime, create a Workshop modpack in a client, copy its install.txt and enabled.json into the server’s Mods directory, then launch the server with a configuration that names the world, port, mod path and modpack. Every player must use the same tModLoader branch and compatible enabled-mod set. This guide covers SteamCMD, GitHub and Docker deployments, local .tmod files, headless operation and the common ways a modded server fails to start.
What you need before installing
A dedicated tModLoader server is a separate runtime from an ordinary Terraria server. It loads the tModLoader branch you select, retrieves Workshop content described by a modpack, and enables the mods listed in enabled.json. Players then connect with a tModLoader client on the same compatible branch and mod set.
- A machine running Linux, Windows or macOS for the server process. The official Dedicated Server Utils currently documents Linux and Docker management paths; Windows and macOS can launch the supplied server scripts.
- Storage for the runtime, worlds and mod files, with permission for the account or container that runs the server to read and write them.
- A Terraria/tModLoader client in which you can subscribe to and enable the desired Workshop mods.
- A world file (
.wld) or permission to create one, plus a TCP port. The documented default port is7777. - SteamCMD if you want Steam-based installation, or a GitHub release install, or Docker with Docker Compose.
Do not assume that a mod listed for the default tModLoader branch works with 1.3-legacy. Steam Workshop’s tModLoader listing is for the default branch; 1.3-legacy content is listed separately. Choose the branch first, then build the server and client mod set around it.
Choose an installation method
| Method | Best fit | How updates work | Important trade-off |
|---|---|---|---|
| Management script with SteamCMD | A Linux host where you want a repeatable command-line workflow | The script installs or updates tModLoader and can install the modpack | Requires SteamCMD and Steam authentication for the Steam install path |
| Management script with GitHub | A host where direct release downloads are preferable | The script downloads the GitHub release; the documentation says it is the same version released on Steam | You still manage the host, permissions and service process |
| Docker Compose | Repeatable, isolated deployments or several server instances | Rebuild the image with docker compose build to update the runtime and mods |
UID/GID and volume permissions must match the files on the host |
| Direct client/server scripts | Desktop testing or a manually maintained installation | You update the tModLoader files and mods yourself | Less automation and more opportunity for branch or file-set drift |
The official utilities expect a server folder containing Mods, Worlds and either the management script or the Docker files. Keep that folder as the single data location so backups and migrations include the same files the server actually loads.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.
Install tModLoader with the management script
Prepare the server folder
- Create a dedicated directory for the server and enter it.
- Make the
ModsandWorldsdirectories if they do not already exist. - Place the official
manage-tModLoaderServer.shscript in the directory and make it executable. - Install SteamCMD when using the Steam path. Use the operating system’s package or official SteamCMD distribution rather than placing a random executable in the data directory.
The resulting layout should contain the management script (or Docker files), a Mods directory, and a Worlds directory. Mod files and modpack metadata belong under Mods; world data belongs under Worlds.
Install from Steam
From the server directory, run:
./manage-tModLoaderServer.sh install-tml --username your_steam_username
Follow the SteamCMD authentication prompts. Use the Steam account that has access to the required tModLoader installation. Avoid embedding a password in shell history or a service file.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Install from GitHub
To use the direct release path, run:
./manage-tModLoaderServer.sh install-tml --github
The Dedicated Server Utils documentation states that the GitHub release is the same version released on Steam. This option avoids SteamCMD authentication, but you must still deliberately pin or update the tModLoader version when your mod set requires it.
Install the mods and start
After the runtime is installed and the modpack files are in place, install the mods:
./manage-tModLoaderServer.sh install-mods
Start the server with:
./manage-tModLoaderServer.sh start
The script’s combined install operation can install the runtime and installed mods together. Running install later updates both tModLoader and the installed mods, so use it intentionally: updating one side without checking the other can produce a client/server mismatch.
Install with Docker Compose
Get the Docker files
Download the project’s Dockerfile and Compose file into the server directory. Keep the persistent Mods and Worlds data on a host volume or bind mount so recreating a container does not erase the world or modpack.
Recommended Free Tools
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
Match file ownership
Set the container UID and GID to the user and group that own the server files. A container that can read but not write the Mods, Worlds or log directories will fail during installation or shutdown, often leaving an apparently incomplete mod update.
Pin the runtime when necessary
Set TMLVERSION when a modpack requires a particular tModLoader release. Pinning is especially useful when the default branch has moved ahead of a mod’s compatible release. Record the value beside the modpack so another administrator can reproduce the same server.
Start and update
Run:
docker compose up -d
Use a serverconfig.txt file so the container can start without interactive prompts. To update the runtime and installed mods, rebuild and then recreate the service:
docker compose build
docker compose up -d
Review the container logs after a rebuild. A successful image build does not prove that every requested Workshop item downloaded or that the enabled list matches the clients.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Create a Workshop modpack and copy it to the server
Why a modpack is required
The server utilities do not identify Workshop mods from display names. They use the modpack metadata files generated by the tModLoader client: install.txt tells the installer what to retrieve, and enabled.json tells the server what to enable. Without install.txt, no Workshop mods are installed; without enabled.json, no mods are enabled.
Save the enabled set in the client
- Open tModLoader on the client and subscribe to the required Workshop items.
- Enable the complete set that the server should load. Include libraries and dependencies required by the content mods.
- Open Workshop, then Mod Packs.
- Select Save Enabled as New Mod Pack.
- Select Open Mod Pack Folder.
The opened folder contains install.txt and enabled.json. Copy both files into the server’s Mods directory, preserving their names and JSON formatting. Do not copy only the visible mod names from the client interface.
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
Install the Workshop items on the server
For the management-script installation, run:
./manage-tModLoaderServer.sh install-mods
The installer reads install.txt and retrieves the corresponding Workshop content. Keep a copy of the two metadata files with your server backup; they are the reproducible description of the intended Workshop set.
Add local .tmod files alongside Workshop mods
Local compiled mods can coexist with Workshop mods. Place each local .tmod file in the server’s Mods directory. The important detail is that enabled.json must include every mod you want enabled, including local files. A local file that exists on disk but is absent from the enabled list remains disabled.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitches- Use local files when a mod is private, supplied outside Workshop, or must remain at a specific build.
- Distribute the same compatible local
.tmodfiles to every client; a Workshop subscription cannot supply a file that exists only on the server. - After adding or replacing a local file, update the client’s enabled set and regenerate the modpack metadata if the enabled list changed.
- Keep filenames and versions consistent across backups. Replacing a file without changing the enabled list can leave an administrator believing the old build is still active.
The documented Mods directory can therefore contain Workshop-installed files, local .tmod files, install.txt and enabled.json. Do not put world files there; worlds belong in Worlds.
Configure the world, port and mod loading
Use serverconfig.txt
Create a serverconfig.txt from the documented example and pass it to the server according to the launcher you use. A configuration file prevents a headless process or container from waiting for answers that no one can type.
| Setting | What to enter | Operational note |
|---|---|---|
world |
The full path to an existing .wld file |
Use the world file, not its companion .twld file |
autocreate |
A world-generation size when creating a new world | Use this when there is no existing .wld to load |
maxplayers |
A number from 1 through 255 | Set it to the capacity you actually intend to administer |
port |
The TCP port, with 7777 as the documented default |
Firewall and router rules must use the same value |
password |
The server password, if one is required | Give it to players through a private channel |
modpath |
The path to the server’s mod directory | Point it at the directory containing the installed and local mod files |
modpack |
The modpack to load | Use the pack that contains the intended enabled set |
Use an absolute world path when possible. If you are creating a world, specify autocreate instead of pointing world at a file that does not yet exist. Once the world has been generated, record its resulting .wld path for subsequent starts.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Launch with arguments when a config file is not suitable
The wiki documents -world for selecting the world and -nosteam for a headless launch that does not use Steam networking. A Steam lobby mode is another documented choice. Use the equivalent launch arguments exposed by your script or container, and do not combine contradictory networking modes.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
On Windows, use start-tModLoaderServer.bat. On Linux or macOS, use start-tModLoaderServer.sh. For a Linux process that must continue after you disconnect, run it inside screen or tmux so you can reconnect to the console later.
Make the server reachable
Local-network players
Players on the same local network normally connect to the server machine’s private address and configured port. Confirm that the operating-system firewall permits the server process to listen on that port.
Players outside your network
Forward the configured TCP port on the router to the server machine’s private address. If you changed port from 7777, forward the new value rather than the default. Also allow that port through the host firewall. Port forwarding is unnecessary when all players connect through a hosting network that already exposes the service, but the host’s documented connection method still applies.
Check the first start
- Watch the console for the selected world path and a listening-port message.
- Confirm that the expected mod names load without a dependency or version error.
- Connect locally before testing an external connection. This separates mod/configuration problems from router and firewall problems.
- Stop the server cleanly from its console before copying the world or replacing mod files.
Keep clients and server compatible
Every player needs the same compatible tModLoader branch and the same enabled mod set. The default-branch Workshop catalog and 1.3-legacy catalog are distinct; subscribing to an item from the wrong branch does not make it compatible with the server you installed.
Pin a branch or release
Use tmlversion.txt or the Docker TMLVERSION setting when a modpack requires a specific tModLoader release. Store that pin with the modpack files. A deliberate pin is safer than allowing a server and clients to update independently.
Update as one change
When possible, update the server runtime, Workshop files and client branch together. Have players close the game before changing the enabled set, then distribute the updated modpack or local files. If a previously working world stops loading immediately after an update, restore the last known-good runtime and mod files before making additional changes.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Understand the ARM limitation
The current official Dedicated Server Utils documentation states: “Currently ARM support does not exist for TML or the Dedicated Server.” An ARM-based VPS, single-board computer or ARM Docker host is therefore not a supported target for this workflow; choose a supported architecture instead of treating an installation failure as a missing package.
Troubleshoot the common failures
The server starts with no mods
- Verify that
enabled.jsonis in the activeModsdirectory, not only in the client’s Workshop folder. - Check that the
modpathsetting points to that directory. - Confirm that the JSON includes every intended mod, including local
.tmodfiles. - Run
install-modsafter copyinginstall.txt; the server cannot retrieve Workshop items fromenabled.jsonalone.
Workshop content is missing
Recreate the modpack from the client using Save Enabled as New Mod Pack, copy both metadata files again, and rerun the installer. A display-name list or a manually typed filename is not a substitute for install.txt.
Players receive a mod or version mismatch
Compare the tModLoader branch first, then compare the enabled list and each local .tmod build. Default-branch and 1.3-legacy content are not interchangeable. If the server is pinned with tmlversion.txt or TMLVERSION, have clients use that same release.
The server cannot write files
On a normal host, fix ownership and permissions for the server directory. In Docker, correct the container UID/GID so it matches the host files, then rerun the install or rebuild. Do not solve a permission error by making the entire filesystem writable.
The process waits forever or exits in a headless environment
Supply serverconfig.txt and an explicit world. For a headless Linux launch, use -nosteam or the intended Steam lobby mode and run the process inside screen or tmux. An interactive prompt cannot be answered by a detached container.
Local connections work but remote connections fail
Check the host firewall, router port-forwarding target and the configured port. Test with the external address only after a local connection proves that the runtime, world and mods load correctly.
Self-hosting versus a managed host
Self-hosting gives you direct control over the tModLoader branch, mod files, world backups, Docker volumes and network rules. It also makes you responsible for updates, permissions, uptime and port forwarding. A managed Terraria host can remove much of that maintenance, but you still need to supply a compatible modpack and branch and to follow the provider’s launch-command requirements. The tModLoader wiki lists several hosts known to work; availability, pricing and affiliate status change, so verify those details with the provider before committing.
One documented host-specific caveat is that GameServers requires -savedirectory ./ in its launch command, while Akliz is listed as working without that change. Treat such settings as provider-specific rather than as universal tModLoader arguments.
Quick Recap
Back up and operate the server safely
- Stop the server before copying the
.wldand.twldworld files or replacing a mod. - Back up the world directory together with
Mods/install.txt,Mods/enabled.json, local.tmodfiles and the version pin. - Keep a dated copy before a runtime or large mod update so you can restore the world and matching files as one set.
- Use a separate test world when validating a new mod combination; do not use a production world to discover whether dependencies load.
- Record the configured port, password policy, world path and tModLoader branch for anyone who may need to restart the service.
Installation checklist
- Choose the default tModLoader branch or 1.3-legacy and use it consistently.
- Choose SteamCMD, GitHub, Docker or a managed host.
- Create the server folder with
ModsandWorlds. - Install the runtime and, when needed, pin it with
tmlversion.txtorTMLVERSION. - Create the client modpack through Workshop → Mod Packs → Save Enabled as New Mod Pack → Open Mod Pack Folder.
- Copy
install.txtandenabled.jsoninto the server’sModsdirectory. - Copy any local
.tmodfiles there and ensure they are represented inenabled.json. - Run
install-modsor rebuild the Docker service. - Set
worldto the full.wldpath, or useautocreate; setport,maxplayers,password,modpathandmodpack. - Start the server, test locally, then configure firewall and router forwarding for remote players.
- Give clients the same branch, modpack and local files before they connect.
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.

