RE:NODE
Browse hosting

Guides15 min read

Skyrim Together Reborn server: setup, STServer.ini and mods

Running a Skyrim Together Reborn server: supported game versions, Docker and panel installs, every STServer.ini key, port 10578, admin commands and mod parity.

0 readers

A Skyrim Together Reborn server is small, stateless and almost aggressively simple: one process, one port, one configuration file, and no world save to lose. It holds the rules, the clock and the connection between players, while every character, every quest flag and every piece of loot lives in each player's own local Skyrim save. That design makes it cheap to host - 1 to 2 GB of memory covers the group size the developers actually recommend - and it also means the hard parts of running one are not on the server at all. They are the game version everybody must be on, the mods everybody must not have, and the handful of settings in STServer.ini that decide how the co-op plays.

What Skyrim Together Reborn is, and what it needs#

Skyrim Together Reborn is a community mod, not a Bethesda feature. It is built on a codebase called Tilted Online, developed by Tilted Phoques and released open source, and it comes in two halves: a client mod installed into Skyrim through a mod manager, and a standalone dedicated server that anybody can run. The two are versioned together, so a 1.8 client talks to a 1.8 server and nothing else.

The client half has requirements that are stricter than most mods, and they are the first thing to settle before you rent or build anything:

  • Skyrim Special Edition on its latest 1.6.x build. The wiki's supported-games page lists Steam and GOG copies. The Anniversary Upgrade is not required, and the developers recommend playing without it and disabling the Creation Club content it adds.
  • Not supported, permanently: Skyrim VR, the original Skyrim and Legendary Edition, the Epic Games version, the Game Pass version, and every console edition. There is no workaround for any of these.
  • Windows for the client. The server runs on both Windows and Linux; the mod itself does not.
  • A mod manager. Mod Organizer 2 and Vortex both have step-by-step guides on the official wiki, and the server has switches that allow or forbid each of them.

The server half is the easy half. It is a single executable - SkyrimTogetherServer.exe on Windows, an equivalent binary on Linux, and an official Docker image - and it is distributed free alongside the mod. It does not need a copy of Skyrim, a Steam login or a game server token of any kind, which puts it in a much smaller class of trouble than the Steam games covered in Steam game server tokens explained.

What the server stores is worth stating plainly, because it changes how you think about backups. The official Docker command mounts exactly three folders: config, Data and logs. There is no world directory. The server keeps the time of day, the difficulty, the party structure and the live state of a session; when it stops, that session is over and every player's progress is sitting in their own Skyrim save on their own machine. You cannot lose a world here, and you also cannot restore one.

Requirements and resource usage#

The server simulates nothing. It relays position, animation, combat and inventory state between clients, holds the world clock and enforces the rules in its config. Cost scales with players, not with how much of Skyrim has been explored.

GroupRAMCPUNotes
2-4 players1 GB1 coreThe common case, and comfortable
5-8 players2 GB1-1.5 coresThe recommended maximum group
9-16 players3-4 GB2 coresPossible, unsupported, expect desync
Scripted server (Lua resources)+1 GB2 coresDepends entirely on what you run

The official answer on player count is that there is no hard limit in the code and the developers recommend 2 to 8 people for a good experience. The default uMaxPlayerCount is 8, and that default is a recommendation rather than a licence check. Skyrim's quest and dialogue systems were built for one player; every extra body multiplies the number of ways two clients can disagree about what an NPC is doing.

Disk is negligible. The server is a few hundred megabytes with its dependencies, the logs are the only thing that grows, and the one file you might add is a loadorder.txt of a few kilobytes. Network use is modest but latency-sensitive in the way all action games are: player positions and animations are being relayed continuously, so a 40 ms link feels different from a 140 ms one even though neither is saturating anything. Latency, jitter and packet loss covers how to tell which of the three you actually have before blaming the mod.

Installing and starting the server#

On Linux the supported route is Docker, and the official image is tiltedphoques/st-reborn-server. Create the three folders the container expects to find, then run it:

bash
$ sudo mkdir -p /opt/docker/skyrimserver/{config,Data,logs}$ sudo chown -R ${USER}:${USER} /opt/docker$ docker run -d -it --name skyrimserver -p 10578:10578/udp \    -v /opt/docker/skyrimserver/config:/st-server/config \    -v /opt/docker/skyrimserver/Data:/st-server/Data \    -v /opt/docker/skyrimserver/logs:/st-server/logs \    tiltedphoques/st-reborn-server:latest

The first start writes a default STServer.ini into the config folder. Three commands cover day-to-day operation:

bash
$ docker logs -tf skyrimserver     # follow the log$ docker attach skyrimserver       # console; detach with CTRL+P then Q$ docker stop skyrimserver -t 1    # stop

On Windows you run SkyrimTogetherServer.exe from the folder the mod installed it into, and the same config/STServer.ini appears beside it on first launch. On a Pterodactyl-based panel the server runs from a community egg built on the same image; the wiki's Pterodactyl page is worth reading for one reason in particular, which is its warning to pin an image version rather than track latest. A server that silently moves to a new release while your group is on the old client mod is a server nobody can join.

STServer.ini, line by line#

One file, five sections, and this is the whole of it. The defaults as shipped:

config/STServer.ini
[general]sLogLevel=infobConsole=true[LiveServices]bAnnounceServer=false[Gameplay]bEnableMiscQuestSync=falsefGoldLossFactor=0bAutoPartyJoin=truebEnableItemDrops=falsebEnableXpSync=truebSyncPlayerCalendar=falseuTimeScale=20bEnableDeathSystem=truebSyncPlayerHomes=falsebEnablePvp=falsebEnableGreetings=falseuDifficulty=4[ModPolicy]bAllowMO2=truebAllowSKSE=truebEnableModCheck=false[GameServer]sPassword=sAdminPassword=sServerName=Dedicated Together ServerbPremiumMode=trueuMaxPlayerCount=8uPort=10578

The ones that change how the game feels:

KeyDefaultWhat it does
uDifficulty40 to 5, Novice to Legendary. Server-wide, overrides each client
uTimeScale20How fast the world clock runs, 0 to 1000
bEnableDeathSystemtrueRespawn instead of reloading a save, and pay off bounties
fGoldLossFactor0Fraction of gold lost on death, 0 to 1
bEnableXpSynctrueCombat-skill experience is shared across the party
bEnablePvpfalseWhether players can damage each other
bEnableItemDropsfalseSyncing of dropped items, off because it has crashed servers
bSyncPlayerHomesfalseChests in vanilla player homes, deliberately not synced
bAutoPartyJointrueJoin the only party on the server automatically
bEnableGreetingsfalseWhether NPC greeting lines fire for everyone
bEnableMiscQuestSyncfalseExperimental sync for miscellaneous quests
bSyncPlayerCalendarfalsePull every player's calendar to the furthest-ahead date

And the ones that decide what the server is:

KeyDefaultWhat it does
sServerNameDedicated Together ServerName on the public list
uMaxPlayerCount8Slot count
uPort10578The one port the server uses
sPasswordemptyJoin password. Setting one hides the server from the list
sAdminPasswordemptyEntered in the Connect window to join as an admin
bPremiumModetruetrue is a 60 Hz tick, false is 30 Hz
bAnnounceServerfalseWhether to appear on the public server list
bConsoletrueWhether the interactive console is available

uDifficulty deserves the paragraph. The default is 4, which is Expert, and that is deliberate: Skyrim's encounter design assumes one Dragonborn, and four of them turn Legendary into a fair fight and Adept into a walking tour. Raise it rather than lower it. uTimeScale is the other one worth thinking about before the first session, because the server owns the clock and players cannot wait or sleep to pass time. Leave it at 20, which matches vanilla, unless you want dragon attacks and shop restocks on a different rhythm.

bPremiumMode is badly named. It is not a paywall and it is not a licence tier - it is the tick rate, true for 60 Hz and false for 30 Hz. Leave it on unless you are hosting on something genuinely underpowered, in which case halving the tick rate is a real saving.

Ports, the server list and connecting#

One port, 10578, and that is the entire network surface.

PortProtocolPurpose
10578UDPAll game traffic. Set with uPort
10578TCPOnly if your router or firewall cannot do both in one rule

The official Docker command publishes UDP alone, which is what the traffic actually uses. The wiki's port-forwarding page tells home hosts to choose "Both" where the router offers it, and to create two rules where it does not. Open UDP first; if the server runs and nobody can reach it, add TCP before you go looking for anything more exotic. Game server ports explained covers why this distinction breaks so many servers and how to test one port at a time.

There are two ways in. Setting bAnnounceServer=true puts the server on the in-game list, where players find it by name. Leaving it false - the default - means players type the address and port into the Connect window themselves, which for a group of five friends is simpler and gives you nothing to moderate. A server with sPassword set is hidden from the public list whether or not it is announced, so a password and an announcement are close to mutually exclusive.

position, combat, inventorydialogue choices, weatherread once at startonly if announcedPlayer's Skyrimown save, own modsParty leaderdialogue and weatherSTServer.inirules, clock, difficultySTR serverUDP 10578Public listbAnnounceServer
What each machine holds in a Skyrim Together session

If you want a name rather than an address, that is an ordinary A record pointing at the server's IP - connecting a domain to a game server has the records and the propagation caveat. Players still have to append :10578 unless you leave the port alone and they are joining by list.

Admins and console commands#

Admin support arrived in 1.7.0 and works differently from most games. There is no persistent admin list. sAdminPassword is a password a player types in the Connect window to join with admin rights for that session, and if the field is empty nobody can join as an admin at all. Privileges are also revoked automatically when the admin disconnects, so nothing accumulates.

The server console - docker attach, the Windows console window, or the console tab on a panel - takes these:

CommandParametersEffect
/helpList the commands available
/playersEveryone currently connected
/adminsEveryone currently holding admin
/uptimeHow long the server has been up
/modsMods installed on the server
/resourcesLoaded server-side scripting resources
/SetTime0-23 0-59Set the in-game hour and minute
/SetDateday month yearSet the in-game date, 1.6.x and later
/AddAdminplayer_nameGrant admin to a connected player
/RemoveAdminplayer_nameTake it away again
/quitStop the server

Player names with spaces are typed with underscores: /AddAdmin Skyrim_Together targets the player called "Skyrim Together". If the name does not match anyone connected, the console prints a warning rather than failing silently, which is more than most games manage.

In chat, players get /help, /local for a message to people nearby and /party for a message to their party. Admins additionally get /settime. That is the complete in-game command set - there is no kick or ban command, which is the strongest argument for running a password rather than an announced public server. Reading the console is a skill in itself; reading the console covers what to look for when a join fails.

Mods, load order and bEnableModCheck#

The official position is that you should run no other mods for the most stable experience, and it is worth taking seriously rather than treating as boilerplate. Nothing in Skyrim Together is explicitly synced with any other mod. Where a mod appears to work across a party, that is an accident of how it happens to change the game, not a supported integration.

What generally survives:

  • Graphics and texture mods. They change what one client draws and touch nothing the server relays.
  • SKSE, which the mod loads for you if it is installed, subject to bAllowSKSE on the server.
  • Address Library for SKSE, which the install guides treat as a prerequisite rather than a mod.

What reliably causes trouble: anything that hooks the renderer or the save system early. The wiki names KiLoader, Alternate Conversation Camera variants, Smoothcam, S.L.A.C.K., Wheeler and Master Occlusion Field among the things that will not load well, and there is a community mod-compatibility tracker on GitHub that is more current than any blog post, this one included. Some entries have moved the other way: Engine Fixes 7 and Skyrim Souls RE Updated load with 1.8 after earlier versions did not.

If your group is running mods, bEnableModCheck is the switch that stops the whole thing degenerating into a week of "it works for me". With it set to true, the server compares each joining client's loadorder.txt against the one you place in the server's Data folder and refuses anyone who does not match. Generate the file from Mod Organizer 2 or Vortex on one player's machine, drop it into Data/, stop the server, set the flag, start it again.

Data/loadorder.txt
Skyrim.esmUpdate.esmDawnguard.esmHearthFires.esmDragonborn.esmSkyUI_SE.esp

The check is exact-match, which is the point: it turns "somebody has a different version of something" from a symptom you diagnose over two hours into a rejection at the door. bAllowMO2 and bAllowSKSE sit beside it and control whether clients using Mod Organizer 2 or SKSE are admitted at all.

Every Skyrim Together release is tied to a Skyrim build, so a Steam update to the game can break the mod until Tilted Phoques ship a matching version. The same discipline that applies to any modded server applies here: do not let anything auto-update on patch day, keep a note of the versions that worked, and read what to do when a mod update breaks before you need it. Keeping a modded server clean covers the general hygiene.

Saves, restarts and updates#

Because the server has no world file, "backups" means something different here. What is worth protecting is STServer.ini, the Data/loadorder.txt if you use one, and each player's own Skyrim save on their own PC. Tell your group to back up their saves; you cannot do it for them, and a corrupt local save is the only way anyone loses progress in this game.

On the server side:

  1. Stop before you edit. The running configuration wins at shutdown. This is the single most common reason a setting "does not apply".
  2. Restart on a schedule. A daily or every-other-day restart is cheap insurance against the drift that long-running sessions accumulate - stuck horse animations, NPCs in odd states, the naked-NPC bug. Restart schedules that help covers picking a time that annoys the fewest people.
  3. Pin the version. Whether you run Docker or a panel egg, use an explicit tag rather than latest so the server does not move underneath a group that has not updated the client mod.
  4. Update the client and server together. Everyone updates, or nobody plays.

On RE:NODE, Skyrim Together servers get one port allocation, which is exactly what this game needs, and the Startup tab is where the port and the server name live. The console has history and tab completion for the slash commands above, STServer.ini is editable in the browser or over SFTP, and backup slots on every tier cover the config and load order even though there is no world to protect. If a server ever reaches its memory limit it is stopped and restarted clean rather than left to swap - on most games that costs you unsaved progress, and on this one it costs you a session.

Troubleshooting#

The server list does not load. Confirm the mod is on its latest version, then check the client's firewall. The list is fetched by the client from Tilted Phoques' service, so a server-side problem is not the cause.

Nobody can connect, but the server says it started. Port 10578 is not reachable. Test from outside your network rather than from the host machine, and add the TCP rule if your router only accepts one protocol per entry.

Settings in `STServer.ini` keep reverting. The server was running when you saved the file. Stop it, edit, start.

NPCs and other players are naked. A well-known bug. Disconnect and reconnect, or restart the server. Walking into and out of an interior sometimes fixes it for one player. If it keeps happening, mismatched mods between clients is the usual cause.

Hostile NPCs only attack one player. The combat targeting system has lost track. Restarting the fight - leaving the area and returning - usually redistributes aggression.

Followers wander off mid-quest. Expected. A follower's AI runs on whichever client owns it, and the developers recommend dismissing followers before connecting. A party of Dragonborns does not need them.

Quests desync between players. Check that everyone is on the same mod version and the same Skyrim build, then check the playguide: quest sync has rules about who should be leading and when to hand in objectives, and most "broken quest" reports are a group ignoring them.

A player joins and immediately crashes. Almost always a mod the server has not seen or a Creation Club item. Turn on bEnableModCheck with a known-good loadorder.txt and the problem stops being a mystery.

FAQ#

How many players can a Skyrim Together Reborn server hold?

There is no hard cap in the code, and the default uMaxPlayerCount is 8. The developers recommend 2 to 8 people. Beyond that the game's own quest and dialogue systems, not the server, are what fall over.

Does the server save the world?

No. The server keeps configuration, logs and live session state only. Every character, quest and item lives in each player's local Skyrim save, which is why the official Docker setup mounts no world directory and why you cannot restore a session after the fact.

Which version of Skyrim do I need?

Skyrim Special Edition on its latest 1.6.x build. The Anniversary Upgrade is not required and is better disabled. Skyrim VR, Legendary Edition, the original Skyrim, the Epic and Game Pass versions and every console edition are not supported and never will be.

Can I use other mods?

You can, and the developers advise against it. Nothing is explicitly synced; graphics mods generally behave and anything that hooks the renderer or the save system generally does not. If you do run mods, set bEnableModCheck=true and make every client match a loadorder.txt you control.

Why is my server not showing in the list?

Either bAnnounceServer is false, or sPassword is set - a password-protected server is hidden from the public list regardless of the announce setting. Players can still join it by address.

What does bPremiumMode actually do?

It sets the tick rate: true gives 60 Hz, false gives 30 Hz. It is not a paid feature and it does not unlock anything. Leave it on unless the host machine is struggling.


Comments

Completely anonymous: no account, no email, no cookie. We store the name you type, the text and the time - nothing else. Links are limited and markup is not rendered.

0/2000