You can move a DayZ server from another host to DZSERVERS.HOST and keep your world, your players’ bases and their characters. What carries all of that is one directory: your mission folder, with its storage_* persistence inside it. The order of work is: set the matching mission under Settings → Edit Mission, rebuild the mod list in the same load order under Workshop Mods, re-enter your serverDZ.cfg values in Instance Settings, then upload the mission over SFTP while the new instance is Stopped.
Some things do not come with you, and it is cheaper to know that now than to discover it mid-cutover: bans, whitelist and priority queue have to be re-imported, your admin and RCON password is replaced, and mods run at whatever version the Steam Workshop publishes today. This runbook covers both halves.
Before you start
- File access to the old server that you still control — its panel, FTP or SFTP. Get your copy before you cancel anything; plenty of hosts delete the files the moment a service lapses.
- A provisioned instance here. It is created automatically when your order completes, so there is nothing to build — see getting started with the control panel.
- Your SFTP details from the SFTP tab: host, port
2022, the per-instance username and the SFTP password. Connecting with SFTP sets that up. - The same map on both ends. Bases and characters are stored per world, so moving from Chernarus to Livonia is a fresh start, not a migration.
- Somewhere with room to hold the download. A long-lived server’s persistence is commonly hundreds of megabytes.
1. Inventory the old server while you still have access
Write five things down first. Every later step depends on one of them, and once the old service is gone none of them can be recovered.
- The mission folder name, exactly. Something like
dayzOffline.chernarusplus. Copy the spelling and capitalisation from the folder listing, not from memory. - The mod list, in load order. The authoritative source is the old host’s startup line: the
-mod=and-servermod=arguments, read left to right. Note each mod’s numeric Steam Workshop id, because folder names are not always unique or searchable. - The slot count the old server ran, so you can tell whether your new plan matches.
- A copy of
serverDZ.cfg. You will not upload this file, but you will read values out of it in step 5. - The list files from the old server root:
ban.txt,whitelist.txtandpriority.txt, if you used them.
Careful: Do not cancel the old service on migration day. Keep it paid until the new server has booted, players have confirmed their bases and characters are intact, and it has run for a day. Overlapping billing for a week is the cheapest insurance in this process.
2. Stop both servers, then download the mission folder
Stop the old server first. Then download, from the old host, the entire mission folder — not a selection of files inside it.
Data loss risk: Never copy persistence out of a running DayZ server. The engine holds players.db open and rewrites the storage_* folder when it shuts down, so a copy taken live is a torn snapshot: characters from one moment, base state from another, and a database mid-write. Stop the old server, wait for it to fully exit, and only then start the download.
Stop your new instance too, with Stop on Overview, and leave it stopped until step 7.
This is what you are after, and roughly what it looks like:
mpmissions/
dayzOffline.chernarusplus/ <- take this whole folder
db/ globals.xml, economy.xml, types.xml, events.xml
cfgeconomycore.xml
cfgspawnabletypes.xml
cfgplayerspawnpoints.xml
cfggameplay.json
init.c
storage_1/ <- the persistence: bases, vehicles, characters
players.db
players.db-wal
players.db-shm
data/
Two files are easy to miss and matter: players.db-wal and players.db-shm are the write-ahead log and shared-memory index for players.db. Take the database without them and you can lose the most recent writes — which is to say, the last session everybody played.
Note: You do not need the old profiles folder. It holds logs and working files, none of which carries world state. Keep the .ADM logs if you want your admin history.
3. Point the new instance at the same mission
With the instance stopped, click Settings in the tab bar and scroll to Edit Mission. The Preset dropdown offers the three stock missions:
| Preset | Map |
|---|---|
dayzOffline.chernarusplus | Chernarus — also the default when the field is empty |
dayzOffline.enoch | Livonia |
dayzOffline.sakhal | Sakhal |
Picking a preset just fills the Value box, and that box is free text. So if your old host ran a custom or renamed mission, type its exact folder name in Value instead of using a preset. Click Save mission. Clear empties the field and falls back to dayzOffline.chernarusplus.
Careful: The mission value must match a folder name under mpmissions character for character. It is used verbatim to build the launch argument -mission=...\mpmissions\<value>, so dayzOffline.chernarusPlus with a capital P is simply a folder that does not exist, and the server will not load a mission.
Note: Save mission and Clear are both disabled while the server runs — the panel’s tooltip reads Stop the server to change mission. Same rule as the rest of this panel.
4. Rebuild the mod list in the same load order
Open Workshop Mods. In the Add a mod card, paste a Workshop URL or its numeric id and click Lookup & add. The Add Workshop Mod panel opens, lists any Required dependencies pre-ticked, and Add to server queues the mod and its dependencies ahead of it. Repeat for every mod on your inventory list.
Data loss risk: Copying the old server’s @ModName folders across does nothing. The panel builds -mod= and -servermod= from this table alone, so a mod that is not a row here is never loaded no matter what sits on disk. Add every mod through Workshop Mods.
Then fix the order. The arrows in the Order column set the sequence, lowest first, and it must match what the old server ran: frameworks and dependencies first, content mods next, override and tweak mods last. Reordering saves immediately. The Enabled, Server-only and Auto-update checkboxes are drafts instead — click Save on the row to commit them. Installing Steam Workshop mods covers it in detail.
Note: Rows badged Essential with a padlock come from the node template and cannot be removed, reordered or toggled. GameEventDispatcher, which feeds Live Map player positions and server FPS, is one of them — already installed, nothing to migrate.
Careful: Mods install at whatever version the Workshop currently publishes; there is no way to pin an older build, here or on any other host. If your old server ran for months without updating its mods, you are updating them all at once during the migration. That is the most common reason bases come back missing.
5. Re-enter your serverDZ.cfg values by hand
Open Settings again and work down the Instance Settings fields with the old serverDZ.cfg beside you: Host Name, Description, Max Players, Password, the time acceleration values, Disable 3rd Person, the Admin Log toggles, the network ranges. Every field maps to one real config key. Every serverDZ.cfg setting explained is the reference if a value needs interpreting. Click Save and look for Changes Saved!.
Data loss risk: Do not upload the old serverDZ.cfg over the new one. The panel keeps its own copy of every setting the editor exposes and writes them into the file whenever you save, so a hand-uploaded file is silently overwritten the next time anything changes — and the old one carries the old host’s IP, ports and slot count.
These lines belong to the panel and are rewritten on every single start, whatever the file says:
hostIp = "..."; // your instance's bind IP hostPort = ...; // your game port a2sport = ...; // your query port a2sIpAddress = "127.0.0.1"; steamQueryPort = ...; // your query port maxPlayers = ...; // clamped to the slot count you purchased passwordAdmin = "..."; // from Settings > Server & RCON Authentication
Anything the editor does not cover is yours to edit directly. Keys such as instanceId, the VoN settings, the login queue values and respawnTime are left untouched by the panel, so set them in serverDZ.cfg from the File Browser (Share → config) and they will stick.
Last, set your admin password. In Server & RCON Authentication, type a value or click Regenerate, then Save password — 4 to 10 characters, letters and digits only. The old host’s password does not come across, and this one value covers both the in-game admin login and BattlEye RCON, so update any external admin tool you use.
6. Upload the mission and persistence over SFTP
Confirm Server Status still reads Stopped, then connect with your SFTP client and open the mpmissions folder.
Data loss risk: Nothing may be written into storage_* while the instance is Running. DayZ rewrites that folder on shutdown, so an upload under a live server is either ignored or flushed away, and writing into an open players.db can corrupt every character on the server. Stopped, always.
Use SFTP, not the web File Browser, for this step: the browser caps uploads at 300 MB against 2.5 GB over SFTP, and storage_* alone usually exceeds 300 MB on any server that has been played on. Create the mission folder under its final name and upload into it, rather than uploading and renaming afterwards.
Then reconcile the storage folder number. DayZ picks which one it loads from instanceId in serverDZ.cfg: instanceId = 1 loads storage_1. If the old host used a different value your download arrives named storage_5 or similar, and the new server will ignore it and generate an empty world beside it. Either name the incoming folder to match the storage_* folder your instance already has, or set instanceId to the old number.
Careful: Keep the original download on your own disk untouched until the migration is confirmed. It is the only copy of the old world that exists, and the first attempt does not always take. Uploading over your source folder is a mistake you make exactly once.
7. Boot it once and read the RPT before telling anyone
Click Start on Overview. The first boot after a migration is slower than normal: mods install, and the engine reads a persistence set it has never seen. Open the Live Logs card, set Stream to rpt and actually read it. What you are checking for:
- The mission loads. A run that ends without reaching the mission usually means the Mission value and the folder name disagree.
- No mod load failures. Cross-check any complaint against the Workshop Mods table for a
Failedstatus or a Missing dependencies card. - No flood of unknown-type errors. Those are
types.xmlentries naming items from a mod that is not in your list — a sign the mod list is incomplete rather than that the XML is broken. Editing types.xml and the loot economy explains the file.
You are up when Server Status reads Running and Server FPS reports a number. Now verify in game rather than by inspection: copy your address with Copy next to Connect, join, and check three things — your own character arrived with its inventory, a base you know the location of is standing, and vehicles are where they were. Open the Live Map tab and confirm you show up on it.
Careful: If bases are missing, stop the server before anyone plays. Every minute a wrong world stays live is a minute of new player activity written on top of it, and that makes re-uploading your download messier.
8. Re-import your lists, rebuild your schedule, then cut over
Bans, whitelist and priority queue do not travel with the mission folder, and they are the last thing standing between you and an unmoderated server.
- Upload the old
ban.txt,whitelist.txtandpriority.txtinto theconfigshare, overwriting the empty ones already there. - Open Players and click Import existing. The confirmation is titled
Import existing lists?and explains what it reads; confirm with Import & adopt. Nothing is deleted — entries already on disk are pulled into the panel so the two agree from now on. - If you ran a whitelist, enable enforcement on the Whitelist tab. It applies at the next restart.
Note: BattlEye’s own bans.txt lives outside the four shares, so GUID and IP bans held only there cannot be uploaded. Re-add those through the Bans tab, which writes both files for you — RCON, bans, whitelist and the priority queue covers it.
Two pieces of housekeeping do not migrate either. Recreate your restart schedule in Scheduler with New task → Restart (controlled) — see automatic restarts with the Scheduler — and pick a frequency on Backups, where Daily suits most servers and everything is kept for 30 days (automatic backups and restore).
Only then cut over. Your address has changed, so update wherever players find you: your community listing, your Discord, any launcher collection, and your DNS record if you use one. Overview gives you Direct Connect and List on DZSA Launcher links to share. Announce the new ip:port clearly, and leave the old host running with a message-of-the-day pointing at it for as long as you are paying for it.
Troubleshooting
My bases are gone after the migration but my character survived
Why it happens. Characters and world objects load separately. players.db is self-contained so characters almost always survive, but built structures are stored as object classes and DayZ silently drops any object whose class the loaded mod set does not define. A missing mod, a mod present but not Enabled, or a mod republished since your old server last updated will each take every structure that mod provided with it.
How to fix it. Stop the server before players build anything new. Compare Workshop Mods against your inventory list row by row: every mod present, Enabled ticked, the same order, Server-only matching. Fix the list, re-upload storage_* from the download you kept, and start again. If it was a version change rather than a missing mod, the author’s changelog is the only thing that will tell you what was renamed.
The server starts but loads an empty world, or the wrong map
Why it happens. Three variants of one mistake. The Mission value does not match the folder name exactly; or it matches but you uploaded into a differently named folder; or the mission is right and the storage_* number does not match instanceId in serverDZ.cfg, so DayZ ignores your persistence and generates a fresh world beside it.
How to fix it. Open File Browser, set Share to mpmissions and read the folder name off the screen. Stop the instance, retype it into Value under Edit Mission, and Save mission. Then look inside the mission folder: if there are two storage_* folders, one is yours and one was generated, and the generated number is the one matching instanceId.
I uploaded my old serverDZ.cfg and my settings keep reverting
Why it happens. Instance Settings stores its values in the panel rather than reading the file, and writes them into serverDZ.cfg on save. On top of that the panel re-patches the IP, both ports, the slot cap and passwordAdmin immediately before every start. An uploaded file is overwritten by design, not by accident.
How to fix it. Open the old file as a reference and type its values into the Instance Settings fields, then Save. Keys the editor does not expose are safe to edit in the file directly — the panel only ever rewrites the keys it owns.
My old bans and whitelist are not being enforced on the new server
Why it happens. The panel maintains its own copies of the ban, whitelist and priority lists and rewrites the server files from them. Files dropped into config without telling the panel are not part of that picture yet, and a whitelist file with no enforcement enabled is inert.
How to fix it. Upload the list files into the config share, then click Import existing on Players and confirm with Import & adopt. Check the counts in the status band afterwards, then enable whitelist enforcement on the Whitelist tab and restart.
My persistence upload fails or never finishes in the File Browser
Why it happens. The web File Browser accepts single files up to 300 MB, which a mature server’s storage_* folder passes easily — and a browser upload of thousands of small files is slow and fragile besides.
How to fix it. Use SFTP, which takes single files up to 2.5 GB. Details are on the SFTP tab and in connecting with SFTP. Keep the File Browser for the small XML edits afterwards.
Frequently asked questions
Will my players keep their characters, skills and inventory?
Yes, as long as you bring players.db across with its -wal and -shm companions and load it on the same map. DayZ keys characters to a player’s Bohemia account id, which does not change between hosts, so a player who logs into the migrated world finds the character they left — position, health, inventory and all.
Can I change map at the same time as migrating?
You can, but it is not a migration. Bases, vehicles and characters are stored per world, so pointing the instance at a different mission gives you a fresh world with nothing in it. If you want both, migrate first, confirm the old world is intact, then change map later as a deliberate wipe — the old mission folder stays on disk.
Can I just copy my whole old server folder across?
No, and it would not help. You get four shares — profiles, mpmissions, config and mods — and the game binaries are outside them. Mods must be added through Workshop Mods because that table is what builds -mod=, and serverDZ.cfg is panel-owned. The only folder worth copying wholesale is your mission.
How much downtime should I plan for?
Budget two hours for a modded server and treat the transfer as the variable. Mission, mod and settings work is about fifteen minutes of clicking; moving the persistence takes as long as your own connection needs for a few hundred megabytes, doubled because you download it first. Do all the configuration before you stop the old server, so the only real downtime is the transfer.
Does my admin and RCON password come across?
No. It is replaced with the value in Server & RCON Authentication on your new instance, and the panel writes it into both passwordAdmin and BattlEye’s RConPassword on every start. Set it yourself or click Regenerate, then update every external admin tool and script that held the old one.
Can I migrate a custom map such as Deer Isle or Namalsk?
Yes. Add the terrain mod through Workshop Mods exactly as you would any other mod, upload the mission folder into mpmissions, and type its folder name into the Value box under Edit Mission — the field is free text, so it is not limited to the three presets in the dropdown. Everything else in this runbook is unchanged.
