V Rising Server Settings Guide
V Rising splits its server into a host file and a game rules file, and both can be overridden from more than one place. Here is the map: which file controls what, where your edits belong, why a change sometimes refuses to stick, and which settings actually shape PvP, progression, castles and server load.
Put your changes in <persistentDataPath>/Settings. Leave the shipped files in StreamingAssets alone.
Defaults load first, then your override files, then environment variables and command-line flags. The last layer wins.
StandardPvP, StandardPvE and the clan-size presets are the cleanest starting point. Override only the keys you actually want to change.
Settings are read at startup, and JSON is strict: no comments, no trailing commas. Check the file in a JSON validator before you restart.
The file map: what lives where
The easiest way to stop fighting your own server is to separate “host settings” from “world rules”. V Rising does that cleanly, but the same option can appear in more than one layer, and that is where most confusion starts. The practical rule is simple: treat StreamingAssets as reference material, and put your real edits in the override folder selected by -persistentDataPath.
| File or folder | What it controls | Where it lives | Edit it? |
|---|---|---|---|
ServerHostSettings.json | Server name, description, ports, password, listing, save name, autosaves, RCON | <persistentDataPath>/Settings for your override; shipped default in VRisingServer_Data/StreamingAssets/Settings | Yes, edit the override copy |
ServerGameSettings.json | PvE or PvP, raids, clan size, loot, rates, castles, day length and similar world rules | <persistentDataPath>/Settings for your override; shipped default in StreamingAssets/Settings | Yes, edit the override copy |
ServerVoipSettings.json | Vivox voice chat credentials and voice distance settings | You create it in the server’s Settings folder; on many panels that is VRisingServer_Data/StreamingAssets/Settings | Only if you want in-game voice |
adminlist.txt | Admin SteamIDs, one per line | <persistentDataPath>/Settings | Yes |
banlist.txt | Banned SteamIDs | <persistentDataPath>/Settings | Yes |
| Preset folders | Shipped preset deltas such as StandardPvP, StandardPvE, DuoPvP | VRisingServer_Data/StreamingAssets/GameSettingPresets and GameDifficultyPresets | No, use them as bases |
Saves | World save data | <persistentDataPath>/Saves | Back up, move or restore as needed |
Do not edit the files in StreamingAssets directly. They are the shipped defaults, useful for checking what the game expects, but patches can overwrite them. The same logic applies to the sample start script: copy it, then edit your copy.
Load order and why your edits do not stick
If a setting “keeps resetting”, it is usually not resetting at all. It is being overridden later in the startup chain. This is the shipped example launch line, which already shows two important facts: the server can be pointed at a custom data folder, and host settings can be supplied on the command line instead of in JSON.
VRisingServer.exe -persistentDataPath .\save-data -serverName "My V Rising Server" -saveName "world1" -logFile ".\logs\VRisingServer.log"
The load order to keep in your head is:
- Shipped defaults in
VRisingServer_Data/StreamingAssets/Settings - Your local override files in
<persistentDataPath>/Settings - Environment variables such as
VR_NAMEorVR_GAME_PORT - Command-line parameters such as
-serverName,-gamePort,-saveName,-preset
Presets sit beside this chain rather than inside your JSON. If GameSettingsPreset (or -preset) names a preset, the server loads that preset’s game rules, and they can replace the values you expected to see. That is exactly why Stunlock tells you to clear the preset when you move an existing save onto a server.
You do not need full JSON files in the override folder. Partial files are allowed, which is a good habit because it keeps your custom layer small and makes it obvious what you changed. The catch is that a panel’s startup fields often populate the environment-variable or command-line layers, so a clean JSON edit can still lose. -persistentDataPath matters just as much: it decides which Settings folder and which Saves folder the server is actually using, so editing the wrong instance is very common on hosts running more than one server.
StreamingAssets/Settings
persistentDataPath/Settings
VR_NAME, VR_GAME_PORT
-serverName, -gamePort
GameSettingsPreset or -preset loads its own game rules and can replace the values you expected.After any JSON change, restart the server. The main exception is adminlist.txt, which works without a restart.
ServerHostSettings.json: the host-side keys that matter
Use ServerHostSettings.json for identity, access, networking and save behaviour. A sensible private-server file is usually short because you only need the keys you want to differ from the defaults.
{
"Name": "Weekend Castle Server",
"Description": "Private world",
"Port": 9876,
"QueryPort": 9877,
"Password": "ExamplePassword",
"SaveName": "world1",
"ListOnSteam": false,
"ListOnEOS": false
} | Key | Shipped default | Why it matters |
|---|---|---|
Name | "V Rising Server" | Display name. Panels can override it with -serverName or VR_NAME. |
Description | "" | Listing text only. Useful for raid windows, wipes and access rules. |
Port | 9876 | Game traffic over UDP. Enough for direct connect if the query port is not open. |
QueryPort | 9877 | Steam server-list traffic over UDP. Needed alongside the game port for listing. |
MaxConnectedUsers | 40 (up to 128) | More slots mean more simulation, more network traffic and more save data. Do not raise it casually. |
MaxConnectedAdmins | 4 | Reserved admin access when normal slots are full. |
ServerFps | 30 | Higher values cost main-thread CPU. Leave it alone unless you have a clear reason. |
Password | "" | Basic access control. A panel startup field can silently override it. |
Secure | true | VAC on. This is a trust and compatibility choice, not a performance knob. |
ListOnSteam / ListOnEOS | false / false | A fresh self-hosted server will not appear in the list until you enable listing and open both ports. The client looks on the EOS list by default. |
SaveName | "world1" | Selects which world save the server uses. If this changes, the “same server” can boot a different world. |
AutoSaveCount / AutoSaveInterval | 20 / 120 | Shorter intervals give a smaller rollback window but add more frequent disk writes. More retained saves use more disk space. |
Rcon | Disabled, port 25575 | Useful for changing name, description and password at runtime. It needs a password if enabled. |
Two practical rules: for private direct-connect play, the game port is the essential one; for public discovery, open or forward both the game port and the query port. Leave CompressSaveFiles on (the default) so every autosave takes less disk space.
Presets first, then small overrides
GameSettingsPreset and GameDifficultyPreset are the quickest way to get close to the server style you want without hand-editing dozens of keys. Preset files are sparse: they contain only the values they change, not a full copy of every option. That is useful, because you can start from a shipped baseline and then override only the handful of keys that matter to your group.
- Game-setting presets:
StandardPvP,StandardPvE,DuoPvP,TrioPvP,SoloPvP,HardcorePvP, the_DailySiege,_WeekendSiegeand_NoSiegevariants, plus level presets fromLevel30PvEtoLevel90PvEandLevel30PvPtoLevel90PvP. - Difficulty presets:
Difficulty_Easy,Difficulty_NormalandDifficulty_Brutal.
The important surprise is that the raw default file is not the same as StandardPvP. The shipped default says GameModeType is PvP, but CastleDamageMode is Never, so castle raiding is effectively off. StandardPvP is the preset that turns castle damage on with time restriction, changes CastleHeartDamageMode to CanBeDestroyedOnlyWhenDecaying, shortens PvPProtectionMode, raises SiegeWeaponHealth to High, sets BloodDrainModifier to 1.25 and enables BatBoundItems. StandardPvE switches the world to PvE, keeps CastleDamageMode at Never, stops enemy container looting, sets DeathContainerPermission to ClanMembers and removes durability loss on death.
| Setting | Default file | StandardPvP | StandardPvE |
|---|---|---|---|
GameModeType | PvP | PvP | PvE |
CastleDamageMode | Never | Time-restricted | Never |
CastleHeartDamageMode | By players | Only when decaying | Only when decaying |
PvPProtectionMode | Medium | Short | Medium |
SiegeWeaponHealth | Normal | High | Normal |
CanLootEnemyContainers | Yes | Yes | No |
DeathContainerPermission | Anyone | Anyone | Clan members |
BatBoundItems | No | Yes | No |
BloodDrainModifier | 1.0 | 1.25 | 1.0 |
Difficulty presets are separate. Easy lowers SunDamageModifier and BloodDrainModifier to 0.75 and reduces enemy and V Blood power. Normal keeps values at 1. Brutal raises enemy and V Blood strength, adds a level increase of 3, sets DropTableModifier_General to 1.25 and halves durability drain to 0.5. If you move a client save to a server and want that save’s original rules to stick, leave GameSettingsPreset empty and do not keep a modified ServerGameSettings.json in either the default or override folder.
ServerGameSettings.json for PvP, raids and raid windows
If your aim is “PvP, but controlled”, this file matters more than any host setting. The keys to watch are GameModeType, PlayerDamageMode, CastleDamageMode, CastleHeartDamageMode and the time-window block inside PlayerInteractionSettings. The shipped default uses local time, and both VSPlayer and VSCastle windows run from 20:00 to 22:00 on weekdays and weekends.
If you want castle raiding to respect those windows, the smallest useful override is this:
{
"PlayerDamageMode": "TimeRestricted",
"CastleDamageMode": "TimeRestricted",
"CastleHeartDamageMode": "CanBeDestroyedOnlyWhenDecaying",
"PvPProtectionMode": "Short"
} GameModeType: broad identity only. It does not by itself make raids work.PlayerDamageMode:Alwaysmeans open-world player damage all the time;TimeRestrictedmakes the server check theVSPlayerwindow instead.CastleDamageMode: this is the real raid switch.Neverblocks castle damage regardless of the world saying PvP.CastleHeartDamageMode: decides when hearts can actually be destroyed, which is separate from ordinary structure damage.TimeZone: the shipped value isLocal, so the host machine’s local time decides when raid hours begin.
Window closed
Window open
Closed
The other raid timers shape tempo rather than raw damage. CastleSiegeTimer at 420 and CastleUnderAttackTimer at 60 define how long the active pressure lasts and how long the castle stays in its under-attack state. CastleRaidTimer at 600 and CastleRaidProtectionTime at 1800 control the broader raid state and its protection period. These do not materially reduce server load; they change how much time defenders have to react and how easy it is to chain raids. If your players complain that raid nights feel endless, shorten the active windows rather than piling on more protection logic. If castles still cannot be damaged during raid time, check CastleDamageMode first, then the preset, then the host’s startup flags.
Progression, loot and quality-of-life settings that actually change the pace
Most private servers do not need a full rewrite of the ruleset. They need a few pace levers moved in the right direction. The rate modifiers are the obvious part: DropTableModifier_General, MaterialYieldModifier_Global, BloodEssenceYieldModifier, CraftRateModifier, RefinementRateModifier, ResearchTimeModifier and ServantConvertRateModifier. Raising them speeds progression without adding meaningful CPU load on its own. The cost is social rather than technical: players finish goals sooner, wipe cycles feel shorter, and build footprint tends to grow earlier because materials arrive faster.
Then there are the friction removers:
BloodBoundEquipmenttrue: players keep their equipped gear when they die, which softens death a lot on a casual world.TeleportBoundItemstrue: the default. Carrying bound items such as certain resources stops you using waygates, so hauling stays a real journey. Set it to false and travel gets much quicker.BatBoundItems: off by default, on inStandardPvP. When it is on, bound items also block bat form, which makes moving loot riskier.AllWaypointsUnlockedfalse: turning it on is pure convenience and has no server-cost angle worth worrying about.DeathContainerPermissionAnyone: harsher public-world default;ClanMembersis kinder for co-op groups.ClanSize4: more about social balance than performance. Smaller values stop one organised group dominating a casual world.
GameTimeModifiers set the day rhythm. The shipped day lasts 1080 seconds, with daylight from hour 9 to 17. Extending DayDurationInSeconds slows the whole loop down without changing the in-game clock boundaries unless you also edit the start and end hours. That affects how long players are exposed to sunlight and how quickly nights roll round, but it does not fix performance problems. If you want a world to feel calmer, change travel and death friction first, then tweak rates, and leave time-of-day alone until you know the group actually dislikes the default cadence.
Castle limits, decay and what they cost the server
This is the part most rented servers struggle with before anything else. Every castle becomes persistent world state: floors, containers, production stations, servants, prisoners and decay all need to be tracked and saved. Stunlock’s shipped defaults are conservative for good reason: CastleLimit is 2, CastleHeartLimitType is User, and heart levels cap floors and servants at 50/1, 140/3, 240/5, 360/7 and 550/8, with a height limit of 3.
The server keeps ticking castles regularly, and more castles mean more work on the main simulation thread, more memory tied up in entity state, and longer save writes to disk. That is why generous building limits feel cheap on day one and expensive later. The world gets larger, autosaves take longer, and restart times stretch out because there is more persistent data to load.
CastleLimit: strongest single lever for shared-world load.- Floor and servant limits per heart level: directly expand how much the server must simulate and serialise.
CastleDecayRateModifierandCastleBloodEssenceDrainModifier: govern how quickly neglected bases become a problem or self-clean.InactivityKillEnabledtrue: useful housekeeping for idle characters, not a substitute for sane castle caps.
If you are deciding between more slots, higher servant caps or looser castle limits, start with the V Rising server requirements guide. As a rule, extra players and extra castles compound each other, because more players usually create more active structures and more world state to save.
Admin tools, saves, wipes and voice chat
Admins and bans
adminlist.txt and banlist.txt live in <persistentDataPath>/Settings. Add one SteamID per line to adminlist.txt, then have the player enable the console in-game, open it with ~ and use adminauth. This works without restarting the server, which makes it the quickest setting to verify when you are troubleshooting access.
Saves, autosaves and scheduled resets
Saves live in <persistentDataPath>/Saves, and SaveName decides which world the server boots. AutoSaveCount and AutoSaveInterval control how many recent restore points you keep and how often the server writes them; frequent saves reduce rollback pain but hit disk more often. If your host exposes AutoSaveSmartKeep, it is a retention pattern in A:B:C form used to keep some older saves without retaining every single autosave.
ResetDaysInterval is off at 0; when you turn it on, the server can perform scheduled wipes and backs up the previous save when it resets. DayOfReset defaults to Any. Stunlock recommends a daily restart, and some hosts only apply updates on restart anyway, so a planned restart window is sensible even on a quiet private world. Before patches, wipes or save moves, keep off-server copies and use a proper game server backups plan.
RCON and runtime changes
RCON is disabled by default and listens on TCP port 25575 if enabled. It is handy, but limited: at runtime it can change the server name, description and password, not the deeper gameplay rules. Anything in ServerGameSettings.json still needs a restart.
Voice chat
If you want in-game voice, create ServerVoipSettings.json in the server’s Settings folder (on many host panels that is VRisingServer_Data/StreamingAssets/Settings, next to the shipped defaults) with VOIPEnabled set to true and the Vivox credentials from your Unity Vivox project. The host documentation example uses VOIPConversationalDistance 14, VOIPAudibleDistance 40 and VOIPFadeIntensity 2.0. Do not change VOIPAppUserId or VOIPAppUserPwd, and remember that players still need to enable voice chat in their sound settings.
When a setting refuses to apply: first checks that save time
The pattern is usually the same: wrong file, wrong folder, wrong layer, or invalid JSON. Check those before chasing obscure bugs.
| Symptom | Likely cause | First fix |
|---|---|---|
| Edits revert or do nothing | You edited StreamingAssets, the wrong persistentDataPath, or a panel startup field overrides JSON | Confirm the active -persistentDataPath, then check command-line and environment-variable fields in the panel |
| Server is not in the list | ListOnSteam and ListOnEOS are false, or the query port is not open | Enable listing, then make sure both the game port and query port are open or forwarded |
| Castles cannot be damaged on a PvP server | GameModeType says PvP, but CastleDamageMode is still Never | Use StandardPvP or set CastleDamageMode to TimeRestricted and restart |
| A moved save starts with different rules | A preset or override JSON is replacing the save’s original settings | Set GameSettingsPreset empty and remove modified game-settings files from the default and override folders |
| Admin commands are refused | The SteamID is missing from adminlist.txt or the player has not used adminauth | Recheck the SteamID line, then run adminauth in the in-game console |
| JSON error after editing | Strict JSON syntax issue | Remove comments and trailing commas, keep booleans as true/false, then validate the file and restart |
| Server is full even though admins should get in | MaxConnectedAdmins is too low or the user is not authenticated as admin | Check the admin list and confirm MaxConnectedAdmins still matches your intended reserve |
Pick a server style, then change only the few keys that support it
The cleanest setups come from choosing a style first and resisting the urge to touch every available value. Most good V Rising servers are just a preset plus a small override file.
| Server style | Start from | Then change | Why this works |
|---|---|---|---|
| Relaxed PvE with friends | StandardPvE + optional Difficulty_Easy | AllWaypointsUnlocked, selected rate modifiers, perhaps keep listing off and use a password | Removes raid pressure first, then trims travel and grind without bloating the castle simulation |
| Standard PvP | StandardPvP | Confirm raid windows, review ClanSize, keep an eye on castle caps and save behaviour | Uses the shipped time-restricted raid model instead of the misleading raw default |
| Small-clan PvP | DuoPvP, TrioPvP or SoloPvP | Only override raid timing or quality-of-life travel rules if your group needs them | The preset family already solves the core social-balance problem better than manual edits |
| Fast-progression private world | StandardPvE or StandardPvP | Raise loot, yield, craft, refine, research and servant-conversion rates; leave castle caps sensible | Speeds the world up where players feel it, without creating a larger persistent-build burden than necessary |
If your panel keeps masking the real launch parameters, or you need clearer save handling and restart control, it is worth comparing providers before you rebuild the whole server around workarounds.
Compare the best V Rising server hostsV Rising server settings FAQ
Where are the V Rising server settings files?
The shipped defaults live under VRisingServer_Data/StreamingAssets/Settings, but the files you should actually edit belong in <persistentDataPath>/Settings. On Windows, the default persistent path is under %USERPROFILE%\AppData\LocalLow\Stunlock Studios\VRisingServer. Saves live in the matching Saves folder.
Why do my V Rising server settings keep resetting?
Most of the time, they are being overridden later in the load order rather than reset. A preset, a panel startup field, an environment variable, a command-line flag, or even the wrong persistentDataPath can beat your JSON. Check the active path and launch arguments first.
How do I make a V Rising server PvE?
The simplest route is to use the StandardPvE preset. That switches GameModeType to PvE, keeps castle damage off, changes death-container permissions to clan members, stops enemy-container looting and removes durability loss on death. After that, only override the quality-of-life or progression keys you actually want.
How do I change clan size on a V Rising server?
Edit ClanSize in ServerGameSettings.json inside the override Settings folder, then restart the server. If you also run a clan-size preset such as DuoPvP or TrioPvP, it sets its own ClanSize, so either clear the preset or check the value after a restart. Keep the setting in one clear place so the panel and JSON do not fight each other.
Why is my V Rising server not showing in the server list?
A fresh self-hosted server is hidden by default because both ListOnSteam and ListOnEOS start as false. Turn listing on, and make sure both the game port and the query port are open or forwarded, because the query port is what supports listing. Direct connect can still work with only the game port open.
More V Rising server guides
Compare hosts, size your plan or set up backups before you change the rules.
Game updates and host panels change over time. If a current panel labels a setting differently from the files shown here, follow the host’s live panel and launch options first, then check how they map back to the JSON.