When you move from an in-game hosted server to a dedicated one, the account system the game uses is slightly different. In essence this means that those who’ve been playing in your world before might not be able to log into the same characters they’ve played as before, and instead have to create a new character altogether.
Explanation of the Problem
So why am I saying “might”? Actually, when you join a hosted game, the game will create an account for you locked to your Steam ID, and uses your current Steam profile name for the account name. When you log into a dedicated server, you have to specify a name and password yourself.
When you create a character, it will be bound to a specific username. Your Steam profile name on a hosted server or the account name on a dedicated server. When switching to a dedicated server, you have two options:
- Create accounts with the same account names as your Steam profile names. Due to the character being bound to the same name, everything matches up. This won’t work if you had special symbols in your Steam name, which you can’t type in-game.
- Fix up the names the characters are bound to, so the person logging into an account with a certain name will get a certain character assigned. This works even when creating new accounts after renaming the character’s username.
If every player from the old hosted server can create accounts with the Steam name they used, you’re lucky! You can skip the following step. Otherwise, you’ll have to get good and fix the problem. Here’s how:
Editing Account Names in “players.db”
If you still have your “.db” file in the folder “db”, I recommend to just rename or move it somewhere else. Doing this will clear out any existing account data, and require you to re-create a new admin account on the next server start.
Next, you will need to edit “Saves/Multiplayer//players.db”. This file is in a non-text format called SQLite, so you will need a program capable of editing it. Here I’m using DB Browser for SQLite[sqlitebrowser.org] which is available for both Windows and Linux. I recommend making a backup copy of any file you edit just in case you screw something up. Screwing up could mean deleting your, or everyone’s game characters for that world.
Open the DB Browser program, click “Open Database”, and select your “players.db” file.
Right click the “networkPlayers” table and select “Browse Table”.
Here, you will find all the player characters in the world, the username (account name) they’re associated with, the name of the character itself, and much more. All you’ll want to change is the “username” column for each character (unless it’s already correct).
Select the username you want to change, and type in which account name you want it to be bound to. The next person logging in with the same account name will be logged into that character.
Finally, click the “Write Changes” button to save your changes to the file. (And upload to your dedicated server if necessary.)