Using Your Own Data Files
Run the server straight off the original game's own data files instead of the content we ship, so your copy stays the master copy.
These servers play games somebody else wrote, and the content each one runs on is that game’s own data: its item tables, its monsters, its maps and its spawns. We ship a converted copy of exactly those files, which is why a fresh archive starts with a full world in it and no import step.
If you already maintain a data set of your own, you do not have to convert it. The server can read the original files directly, in their normal on-disk layout, and treat them as the master copy.
This is off by default. Turn it on and your files are what the server runs on.
Why You Might Want It
The community’s client-side patch tools read those same files. If your server data lived only in our database while your client patcher read your files, the two would start drifting apart on the first edit you made, and nothing would tell you which one was right.
Using your own files removes that split. You keep editing the files you already edit, and the server follows them.
It is also the easiest way to move across. Point the server at your existing folder, see your own items and monsters and spawns in game, and decide about converting later, or never.
Where This Is Going
Reading the original formats is how each game here starts. Every one of them begins as a server that speaks an existing client and reads that client’s data, because that is the only way to get a world running that a real client recognises.
Over time each game moves to formats of our own: one shape across the games, editable in one place, with the fields named rather than numbered. That migration happens per game, and it does not end this page. Reading the original files stays, because an operator with a data set they already maintain should never have to convert it to try the server out.
Which Games Have It
RF Online 2.2.3.2 today, and 4.15 once that has a release you can download.
Every other game reads the content we ship and has no legacy mode yet. This page is the shape they take as each one gets it, so the settings and the commands below are what to expect rather than what is already true everywhere. The release notes say when a game gains it.
Turning It On
In settings.cfg, under [gamedata]:
[gamedata]
LEGACY_GAMEDATA 1
LEGACY_PATH gamedata-legacy
LEGACY_ZONES all
LEGACY_PATH points at a folder shaped like that game’s original server data root. A relative path
is resolved against the folder holding settings.cfg, never the folder you happened to launch from,
so a double-clicked gameserver.exe still finds it. The whole rest of the line is the path, so
C:\Program Files\... works without quoting.
The folder’s shape is the game’s, not ours. The directory names and the file formats inside it are whatever that game’s own server used, so there is nothing to rearrange and nothing to rename. On RF Online that means two directories:
gamedata-legacy/
Script/ REQUIRED the flat .dat tables
Map/ REQUIRED Map_Data.spt and one directory per zone
Anything else in the folder is ignored rather than rejected, so a copy of a full server directory
works as-is. On RF Online, Initialize/ and Quest/ are both ignored. See
what is read below.
LEGACY_ZONES chooses which maps to convert on a game that has separate zones: all (the default),
home for the starting towns only, or a comma-separated list of map codes. The default is all
because turning this mode on is you saying “this is my data”, and quietly dropping most of your maps
would be us overruling you about your own server.
Checking It Before You Start the Server
Each game’s release carries a data tool, and it takes three commands against your folder rather than
ours. On RF Online the tool is rfdata:
rfdata legacy check does the folder have what it needs
rfdata legacy status is the database in step with the files
rfdata legacy build convert the files into the database now
check is the one to run first. It reports every problem it can find at once rather than stopping
at the first, so you fix them in one pass instead of five.
You do not have to run build yourself. The server builds on start when the files have changed, and
it fingerprints the folder so an unchanged folder costs nothing on the next boot.
What Is Read
| What | Read | Becomes |
|---|---|---|
| The content tables | yes | one table per file: items, monsters, quests, shops, everything |
| The world data | yes | maps, monster spawns, NPC placements, portals and map markers |
| The original server’s own config | no | server tuning stays ours |
The world data gives you the full set, including the markers a teleport scroll sends a player to. Those come out of the same files your maps do, so a scroll lands where your maps say it lands.
Server tuning, meaning rates, timers and limits, stays in our settings rather than coming out of the original server’s config files. Those are the numbers an operator changes deliberately, and they belong in the file you already edit for everything else, not in a folder you copied from somewhere.
Switching Back, and Switching Between
Each mode keeps its own database. Turning this on does not overwrite the content we ship, and turning it off does not lose what your files produced. You can switch back and forth without re-importing anything.
What does not happen is any kind of sync. The two data sets are separate from the moment either is edited. If you change an item in one, the other still has the old value. That is by design, because merging two data sets nobody asked us to merge is how you lose an afternoon’s work.
If a Table Will Not Load
The importer checks each file against the record layout it expects, on both the record size and the column count, and refuses a table that does not match, naming both numbers.
That refusal is deliberate and it is on your side. A table edited past the layout we know would otherwise import a prefix of every record and fill your database with values that look plausible and are wrong. A loud failure on one table is much cheaper than a server that runs with quietly wrong data in it.
If you hit one, the message tells you which file and what it expected. Most often it is a table from a different version of the game than the one this server targets.
What the Game Data Editor Does Here
The Game Data Editor follows whichever mode is live, so with this on it edits your files. The panel reads them directly and a save writes them back, so your folder stays the master copy, exactly as it is when the server reads it.