Every FiveM server owner has a backup story. Either it is the boring kind — “the database died, we restored from 4 a.m., lost two hours” — or it is the kind that ends a city: eighteen months of character data, vehicle garages and property ownership gone because the only copy lived on the same disk as the server. A proper FiveM server backup plan is the cheapest insurance you will ever set up, and it takes one evening. This is the disaster recovery playbook we recommend to every owner, whether you run twelve players or twelve hundred.
What actually needs backing up
Owners tend to back up the wrong thing. The resources folder is the least important part of your server — you can re-download every script you own from your keymaster and your store receipts. What you cannot re-download:
- The database. Characters, inventories, garages, properties, society funds, job grades. This is your city. Everything else is furniture.
- Config files. Months of tuning live in server.cfg, framework configs and every script’s config.lua. Losing these means re-balancing the entire economy from memory.
- Custom and modified resources. Anything your developers wrote or edited in place — the 200-line patch someone made to your dealership script at 3 a.m. exists nowhere else on earth.
- Media and identity assets. Loading screens, logos, MDT images, custom clothing textures you commissioned.
The 3-2-1 rule, translated for FiveM
The classic rule — three copies, two media types, one offsite — maps cleanly onto a game server. Copy one is the live data. Copy two is a nightly dump on the same machine (fast to restore). Copy three lives somewhere that survives the host catching fire: object storage like Backblaze B2 or S3, a second VPS at a different provider, or at minimum a scheduled download to your home machine. The offsite copy is the one that matters when your FiveM server backup plan is actually tested — billing disputes, datacenter failures and ransomware on the host all take out every copy that shares the box.
Automate the database dump
A backup that depends on someone remembering is a backup that stops happening within three weeks. Cron plus mysqldump is twenty minutes of setup:
- Dump nightly at your lowest-population hour, compressed, with the date in the filename.
- Keep seven dailies, four weeklies and three monthlies — that retention ladder catches both “we broke it last night” and “this corruption started a month ago and nobody noticed”.
- Sync the dump folder offsite with rclone or restic immediately after the dump completes.
- Alert on failure, not success. A Discord webhook that fires when the dump is missing or under its usual size will save you; a nightly “backup OK” message gets muted within a week.
If you run on txAdmin, its built-in backup options cover the basics, but they still live on the same disk until you ship them elsewhere — automation is not done until the offsite leg works.
Recommended FiveM scripts for your server
Test the restore before you need it
An untested backup is a rumor. Once a quarter, restore last night’s dump to a scratch database and boot a staging server against it. You are checking three things: the dump is complete, the schema matches what your current scripts expect, and you know the exact commands under pressure. Owners who buy from established catalogs — the kind of battle-tested resources stocked at store-tebex.io — have an easier time here, because well-maintained scripts handle schema migrations explicitly instead of mutating tables silently between versions.
The recovery runbook
Write the disaster procedure down while you are calm. One page, pinned in your staff Discord:
- Who has access to the host panel, the database and the offsite storage (minimum two people — the “owner went on holiday” failure mode is real).
- The restore commands, copy-pasteable, with real paths.
- The order of operations: restore database, verify a known character loads, start core resources, smoke-test joins, then open the queue.
- The player communication template. “We are restoring from 04:00, expect up to X hours of rollback” posted early beats four hours of silence every time.
Rollback compensation deserves a line too: a queue-priority weekend or an in-city event from your shop-tebex.io event toolkit converts an outage from a rage-quit moment into a community story.
Upgrade your server — shop our FiveM scripts
Disaster-proofing beyond the database
Keep your server.cfg and all config files in a private Git repository — that gives you history, not just copies, and makes “what changed before everything broke” a one-command question. Keep a purchase manifest of every paid resource with where it came from, so rebuilding a box from zero is a checklist instead of an archaeology dig; consolidating purchases through a few stores like tebax.io rather than thirty Discord DMs makes that manifest possible. And before any major framework update, take a manual pre-update snapshot — scheduled backups protect you from disasters, snapshots protect you from yourself.
None of this is glamorous, and that is the point. The servers that survive eighteen months are not the ones that never have a bad night — they are the ones where the bad night ends with “restored, two hours lost, see you in the city” instead of a goodbye announcement. Set the cron job tonight.