How to Back Up and Transfer a Terraria World
Hundreds of hours of digging, building and boss fights end up in one small file. This guide shows which files make up a Terraria world, where each setup keeps them, and when it is safe to copy them, so you can back up a server, move a single-player world onto it, switch hosts or roll back a bad night without losing anything.
Vanilla uses .wld and .bak. tModLoader adds .twld. Characters are separate .plr files, and TShock accounts, regions and server-side characters live outside the world file.
The live map is held in memory. Run a save, then stop with exit before you copy or upload, otherwise disk files can lag behind or be overwritten.
The .bak file helps with the last mistake, rolling backups reach a bit further back, TShock can add short-interval backups, and an off-server copy protects against machine or host failure.
If you use TShock or mods, bring the supporting files as well: TShock data, enabled.json, and matching game and mod versions.
What a Terraria world actually is
Think of a Terraria world as a file set, not as a server state. The core save is a .wld file. Vanilla also keeps a neighbouring .bak file, which is simply the previous save. A tModLoader world adds a .twld file for modded world data, so a modded world is not complete unless the .wld and .twld travel together.
Just as important is what is not inside the world. Player characters are local .plr files on each player’s machine, not part of a normal server world. TShock accounts, groups, regions and server-side characters are stored in TShock’s own data, and your enabled mod list is separate again. If you only move the world file, the map moves; those other systems do not.
| File | What it holds | Copy it when |
|---|---|---|
MyWorld.wld | The actual world state: terrain, chests, builds, world progression and mode. | Always. This is the one file every move or backup needs. |
MyWorld.wld.bak | The previous saved version of that world. | Copy it with the live world so you have a quick rollback if the newest save is bad. |
MyWorld.twld | tModLoader’s additional modded world data. | Whenever the world is modded. Without it, modded content can be missing or broken. |
Character.plr | A local player character, not the server world. | Only when moving someone’s local character between PCs. Do not expect a world transfer to move characters. |
| TShock data folder | TShock config, logs and database for accounts, groups, regions and SSC. | When moving a TShock server or restoring TShock-specific data. |
enabled.json | The enabled tModLoader mod list. | When moving a modded server so the same world loads with the same mod set. |
A final detail that catches people out: Journey is a world and character rule, not a transfer bug. Journey characters can only enter Journey worlds, and Journey worlds can only be entered by Journey characters.
| Setup | .bak | .twld | Data | Mods | Config |
|---|---|---|---|---|---|
| Vanilla world, quick backup | Yes | No | No | No | No |
| Single-player world to a server | Yes | No | No | No | No |
| Vanilla server to a new host | Yes | No | No | No | Yes |
| tModLoader server | Yes | Yes | No | Yes | Yes |
| TShock server | Yes | No | Yes | No | Yes |
Where to find your world
The location depends on how the world was created and where the server runs. Hosted panels usually expose a Worlds folder inside the server files, but the exact panel layout varies, which is why it helps to understand game server control panels in general rather than relying on one screenshot.
| Platform or setup | Folder |
|---|---|
| Windows | %USERPROFILE%\Documents\My Games\Terraria\Worlds |
| Linux or VPS dedicated server | ~/.local/share/Terraria/Worlds |
| macOS | ~/Library/Application Support/Terraria/Worlds |
| Android | Android/data/com.and.games505.TerrariaPaid/Worlds |
| tModLoader | %USERPROFILE%\Documents\My Games\Terraria\tModLoader\Worlds |
| Steam Cloud world on Windows | C:\Program Files (x86)\Steam\userdata\<userID>\105600\remote\worlds |
| Hosted server panel | A server-side Worlds folder, often something like /saves/Worlds/ or /worlds/ |
Cloud worlds are the common “I cannot find my save” case. If a world has its Cloud toggle enabled, it is not in the normal Documents folder, so the file manager on your PC will look empty. Switch the Cloud toggle off for that world first, then Terraria will give you a normal local world file that you can upload. If new worlds keep behaving like cloud saves, the CloudSavingDefault setting exists; its default is false.
On Linux, capitals matter. MyWorld.wld and myworld.wld are different names, so a path that looks close enough on Windows can still fail on a VPS.
The golden rule: save first, stop before you upload
This is the part that explains most “my world reset” stories. The Terraria server does not constantly read and write the world file with every block change. It keeps the active world in memory and writes that state to disk on save. Auto-save happens from time to time, including at dawn in game, the server saves when the last player leaves since 1.4.5.0, and it saves on shutdown only if you use exit.
That means two things. First, a file copied from a running server is only the last saved version on disk, not necessarily the live state in memory. Second, if you upload a replacement world while the server is still running, the next save or clean exit can write the old in-memory world back to disk and wipe out your upload. Doing it properly costs you a minute of downtime. In return, the file on disk and the world your players were standing in are finally the same thing.
save exit
Use exit-nosave only if you intentionally want to stop without writing current changes. Do not close the console window with the X button, kill the process, or assume hibernation counts as stopped. When no players are online the server hibernates and time does not pass, but the process still exists and still owns that world session.
You can tell a clean save-and-stop worked by checking that the world file’s modified time advances before you copy it, and by confirming the server process is fully down before you upload anything back.
How to back up a Terraria server world
A sensible backup plan stacks quick local rollbacks with copies stored somewhere else. That way you cover simple mistakes, corruption and a machine or host problem separately. For a broader view of game server backups in general, the same principle applies here: short-term convenience and long-term safety are not the same job.
Manual off-server copy
- Run
savein the console. This forces the in-memory world to disk so your copy contains the latest state rather than the last scheduled save. - Shut the server down with
exit. That clean stop prevents the process from writing older in-memory data back over the files while you copy. - Copy the world files out of the Worlds folder to another machine or storage location:
.wld,.bak, and.twldif it is a tModLoader world. This costs bandwidth and storage space, but it protects you if the server disk or host itself is the problem. - If the server uses TShock or mods, copy the matching TShock data and mod list separately. The world file alone cannot restore regions, accounts, SSC or the enabled mod set.
Built-in Terraria backups
Every save keeps the previous version as the neighbouring .bak file, which is the fastest recovery if the latest save is bad. Terraria also supports rolling world backups through WorldRollbacksToKeep in config.json or serverconfig.txt. The default is 2. At 2 or higher, rolling backups are enabled; by default that means one additional backup on top of the previous save, and the maximum is 9. The trade-off is simple: more rollback points cost more disk space.
TShock backups
TShock adds its own timed backups, written to the tshock/backups folder. Our TShock setup guide covers the rest of the config; what matters here is how long those backups stick around. These are the defaults in the Settings block of tshock/config.json:
"BackupInterval": 10, "BackupKeepFor": 240, "AutoSave": true, "SaveWorldOnCrash": true, "SaveWorldOnLastPlayerExit": true,
With those defaults, TShock backups only reach back about 4 hours: a backup every 10 minutes, each one deleted after 240 minutes. That is brilliant for undoing griefing you spotted the same evening and useless for damage nobody noticed until the weekend. If you want TShock to cover longer gaps, raise BackupKeepFor (2880 is two days) and keep an eye on disk space.
A routine that covers most failures
- Take a manual off-server copy before game updates.
- Take one before big irreversible world-state moments such as moving into Hardmode.
- Take one before adding or changing mods.
- Keep a regular off-server copy on top of the built-in and TShock layers.
The easy way to judge whether your routine is good enough is to ask two questions: “How far back can I roll?” and “Can I still restore if this machine disappears?” If either answer is weak, add another layer.
Move a single-player or Host & Play world onto a server
Once you know where the files live, uploading a personal world is straightforward. If you are still working through the basics of setting up a Terraria dedicated server, sort the base server first, then move the world across.
Self-hosted dedicated server
- If the world is a Steam Cloud world, switch its Cloud toggle off first so you get a normal local world file to copy.
- Stop the dedicated server cleanly with
savethenexit. This matters even on a brand-new server, because a running instance can still generate or save its own world files. - Copy the world into the server’s world folder. For vanilla, bring
.wldand preferably.bak; for tModLoader, bring.wld,.bakand.twld. - Point the server at that world in
serverconfig.txt. The server loads the file named there; if the name or path is wrong andautocreateis set, it can generate a fresh world instead. - Start the server and check that the expected world name and builds are present before inviting players back in.
worldpath=/path/to/Worlds world=/path/to/Worlds/MyWorld.wld
The autocreate trap is the big one. autocreate=1|2|3 tells the server to make a new small, medium or large world if the named file is not found. So a typo, wrong folder or wrong capital letter can look like a mysterious reset when it is really the server doing exactly what that setting asked. If you launch through TShock, remember that -world expects an absolute path.
Hosted panel
- Stop the server in the panel first. Do not upload into a running world slot.
- Upload the world files into the server’s Worlds folder.
- Set the panel’s world name or save name field to the exact file name expected there.
- Start the server and check that it loads the right map, not a newly generated one.
The reason panels need both the file upload and the world-name setting is that storage and startup are separate pieces. Uploading only places the file on disk; the startup setting tells the server which file to mount on launch.
MyWorld.wld
worldpath folder
in serverconfig.txt
in the panel
.wld + .twld if modded
exact file name
the named world
generated instead
Download a server world to play it locally, or move it to a new host
Pull a server world back to your PC
- On the server, run
saveand then stop withexit. Otherwise your download may only contain the last disk save rather than the latest live state. - Download the world files: always the
.wld, ideally the.bak, and the.twldas well if the server is modded. - Place the files into your local Worlds folder. If it is a tModLoader world, use the tModLoader Worlds folder instead of the vanilla one.
- Launch the matching game client. The world appears in single player because Terraria simply scans the Worlds folder for valid world files.
If you are keeping the download as a safety copy rather than as an active local world, keep an extra copy outside the live Worlds folder too. That avoids accidental overwrites during later testing.
What to bring when moving to a new host or machine
| What to bring | Where it lives | Why it matters |
|---|---|---|
| World files | Worlds folder | The actual map. Bring .wld, .bak and .twld if modded. |
| Server settings | serverconfig.txt or panel startup settings | Password, maxplayers, motd, port and world path choices do not travel inside the world file. |
banlist.txt | Server files | Without it, moderation history is lost on the new machine. |
| TShock folder | TShock config path | Holds configs, logs and the sqlite database for accounts, groups, regions and SSC. |
enabled.json | Mods folder | Tells tModLoader which mods are enabled so the same modded world can load properly. |
Version matching matters as much as file copying. Do not start the new server until its game version matches the save’s version. For tModLoader, keep the same enabled mods and the same tModLoader version as well. If a newer server updates the world, older clients, including mobile players on a different version, can be locked out.
tModLoader and mobile specifics
tModLoader worlds
A modded world is a pair, not a single file. The .wld contains the base world, while the .twld holds extra modded data. If you copy only the .wld, the server can still start, but modded content may vanish, fail to load, or behave as if the world lost part of its state.
Bring the same tModLoader version and the same enabled mods. The active mod list is stored in enabled.json, and if you are changing or adding content, this is a good point to review the practical side of installing mods on a Terraria server. The world file is not a mod pack; it expects the same environment that created it.
tModLoader also uses separate folders from vanilla. On first launch it offers to copy vanilla players and worlds, and those vanilla saves are not modified. If that automatic copy does not work, manually copy the Worlds and Players folders from the vanilla Terraria Documents path into the tModLoader folder.
Mobile and Android
On Android, the Worlds folder is Android/data/com.and.games505.TerrariaPaid/Worlds, and the usual way to reach it is by connecting the phone to a PC with USB. The same rule applies as on desktop: copy only after a clean save, and keep versions matched between device, server and world.
If mobile players suddenly cannot join after a transfer, the cause is often version drift rather than a broken save. A world touched by a newer server may no longer suit an older client. Keep game, server and world on the same version before you let players back in.
Restore a world after corruption, griefing or a reset
Restore from the built-in .bak
- Stop the server cleanly.
- Move the broken
.wldaside instead of deleting it. - Copy
MyWorld.wld.bakand rename that copy toMyWorld.wld. - For tModLoader, restore the matching modded backup as well so the
.wldand.twldstay in step. - Start the server and check the expected rollback point.
Moving the bad file aside is safer than deleting it because you keep one more recovery option. If the .bak turns out to be too old, or the fault was somewhere else, you can still inspect or recover from the original file later.
Restore from rolling backups, TShock backups or an off-server copy
If the simple .bak is not far enough back, use the newest known-good rolling backup, then TShock backup, then your off-server archive. Newer restores give you less lost progress but a higher chance of carrying the same damage forward; older restores lose more recent changes but are often safer if corruption or griefing went unnoticed for a while.
Since 1.0.4, Terraria can prompt you to load a world backup if the current world is corrupt. Treat that as a useful hint, not as your only plan. Before accepting any restore path, keep copies of the current broken files so you do not close off another recovery route.
If the world only seems to have reset, check the startup setting before restoring anything. A wrong file name or path can make the server load or generate a different world, which looks like data loss even though your original save is still sitting on disk.
Troubleshooting a world that is gone, wrong or older than expected
Work through this as a file problem first: wrong file set, wrong path, wrong version, or wrong timing. That approach is quicker than treating every bad load as corruption.
| Symptom | Likely cause | First fix |
|---|---|---|
| Uploaded world is not loading and a new world appeared instead | The world name or path is wrong, and autocreate generated a fresh map. | Stop the server, check the exact file name and path, then correct the startup setting before restarting. |
| World reset after a restart | You uploaded while the server was still running, so its next save wrote the old in-memory world back to disk. | Stop cleanly, re-upload the known-good files, then start again only after the upload is complete. |
| Progress from the last session is missing | You copied the world from a running server, so the file was only the last save, not the live state. | Use save then exit before downloading; restore a newer backup if one exists. |
| World is missing from the local list | The file is in the wrong Worlds folder, or you put a tModLoader world into the vanilla folder. | Move it to the correct Worlds path for that client, then relaunch and check again. |
| Cloud world cannot be found in Documents | It is still a Steam Cloud save, so it is not stored in the normal local folder. | Switch the world’s Cloud toggle off first, then copy the local file that Terraria creates. |
| Modded items or tiles vanished after transfer | The .twld file was not copied, or the mods and tModLoader version do not match. | Restore the matching .twld and load the world with the same mod set and version. |
| Journey character cannot enter the world | Journey mode mismatch between the character and the world. | Use a Journey character for a Journey world, or the matching non-Journey pair. |
| Mobile players cannot join after the move | The server or world was updated to a version their client does not match. | Update every player’s game to the version the server now runs, or restore a pre-update backup onto a server on the old version. |
| TShock regions, accounts or SSC are missing on the new host | Only the world was moved; the TShock data was left behind. | Copy the whole TShock folder and database to the new machine, not just the world files. |
The restored .bak still has the damage in it | The world was saved again after the damage, so the .bak (the previous save) already includes it. | Go further back: a rolling backup, a TShock backup from before the damage, or your off-server copy. |
| Linux server says it cannot find the world file | The file name or path uses different capital letters from the real file. | Match the path and file name exactly, including capitals. |
Self-hosted or rented: who handles backups?
The answer is usually “you, at least partly”. A host can make stop/start and file access easier, but your world still matters most when you have your own clean copy off the server. If you are comparing options, start with our Terraria server hosting comparison and judge them by file access, clean stop controls, version management and how easy it is to pull your own backups.
| Situation | Best choice | Why |
|---|---|---|
| You want full control over files and timing | Self-hosted dedicated server or VPS | You decide exactly when to save, stop, copy and rotate backups. |
| You prefer easier stop/start and file management | Rented server with a web panel | The admin work is simpler, but you should still keep your own off-server copies. |
| You run TShock and care about accounts, regions and SSC | Any setup with easy access to the full TShock data folder | The world file alone is not enough for a complete migration or restore. |
| You change mods often | Any setup where you can manage Worlds and Mods together | Modded worlds depend on matching .twld, enabled.json and versions. |
| You mainly want disaster recovery | Any setup where you can keep your own layered backups | A backup plan only counts if you can retrieve and restore it yourself. |
If you are moving a long-running save to a new server, prioritise clear file access, clean stop controls and an easy way to take your own off-server copies before every major change.
Compare the best Terraria server hostsTerraria world backup FAQ
Where are Terraria server worlds saved?
On Windows they are in %USERPROFILE%\Documents\My Games\Terraria\Worlds, on Linux in ~/.local/share/Terraria/Worlds, and on macOS in ~/Library/Application Support/Terraria/Worlds. Hosted servers usually expose a server-side Worlds folder through their panel. If the world uses Steam Cloud, it will not appear in the normal Documents folder until you switch cloud saving off for that world.
How do I upload my single-player Terraria world to a server?
First make sure you have a normal local world file, not a cloud-only one. Then stop the server, upload the .wld file and any matching .bak or .twld files into the server’s Worlds folder, set the server’s world name or path to that file, and start it. The stop-first step matters because a running server can overwrite your upload on its next save.
Why did my Terraria server create a new world instead of loading mine?
The usual cause is a wrong file name, wrong path, or a capitals mismatch on Linux. If autocreate is enabled, the server makes a fresh world when it cannot find the file it was told to load. Check the startup setting first before assuming the original world is gone.
How do I restore a Terraria world from a .bak file?
Stop the server, move the broken .wld file aside, then copy the .wld.bak file and rename that copy back to .wld. For tModLoader, restore the matching modded backup as well so the world data stays aligned. Start the server only after the restored files are in place.
Do I need to move my character when I move a Terraria world?
Not for a normal server world transfer. Characters are separate local .plr files on each player’s machine, so moving the world does not move anyone’s character. The exception is TShock server-side characters, which live in TShock’s database and need the TShock data moved with the server.
More Terraria server help
The host comparison and the Terraria guides that sit alongside this one.
Folder paths, file names and settings follow the official Terraria wiki, the tModLoader wiki and the TShock documentation for Terraria 1.4.5, as of November 2026. Game updates can change defaults, and host panels name their folders and world settings in their own way, so follow your host’s current panel where it differs.