At GhostCap, we've integrated basic VEIN settings directly into our game panel. Here's how to quickly and easily configure your new VEIN server.
This guide covers how to configure basic settings, settings directly in-game using the admin menu, and how to totally customize your server by modifying the Engine.ini configuration file.
Basic Configuration
- Access the GhostCap Panel and
Stopyour VEIN server. - In the sidebar, go to
Startup Parameters. - Edit the settings you'd like to change.
- Start your server.
That's how to edit basic settings on your VEIN Server, we detail alternative and detailed configuration below.
Changing Settings from In-Game
It's also possible to configure server settings directly from in-game. Become an Admin before proceeding.
- Connect to your server.
- On your keyboard, press
\to open the admin menu. - Go to
Configin the admin menu and change your desired settings.
The admin menu options are a subset of all the available options. For total customization edit engine.ini following the steps found below.
Custom Engine.ini Configuration
VEIN has well over 100 different gameplay settings, here's how you can modify them all.
- Access the GhostCap Panel and
Stopyour VEIN server. - Go to
File Manager. - Navigate to
Vein/Saved/Config/LinuxServer/Engine.iniand edit the settings you'd like to change. - Click save, and then start your server.
Available Engine.ini Settings
The following settings can be modified in the Engine.ini file, under the [ConsoleVariables] section:
| Setting Name | Description |
|---|---|
| vein.Activity.AFKKickTimeSeconds=0 | If this is greater than 0, kick players who haven't moved in this duration |
| vein.ActorPartition.BatchSize=10 | Batch size to process actors over |
| vein.ActorPartition.Enabled=1 | Enable actor partition |
| vein.ActorPartition.PlayerDistance=20000 | Distance to despawn actors |
| vein.Admin.Logs.MaxLogs=20000 | Max log count |
| vein.AI.AcceptanceDistance=30 | Acceptable distance to be at a location |
| vein.AI.AsyncSensing=1 | Compute sight from AI asynchronously |
| vein.AI.EnablePathUpdates=1 | If false, don't pathfind at all |
| vein.AI.PathUpdateRate=0.1 | Seconds between updating paths |
| vein.AI.PathUpdateRate.CloseDistance=7000 | Distance where you are considered 'close' enough to do high-resolution pathfinding updates |
| vein.AI.PathUpdateRate.Far=2 | Seconds between updating paths for distant zombies |
| vein.AI.SightInterval=0.1 | Sight check interval |
| vein.AISpawner.AnimalLayerPercentage=0.1 | What fraction of animals are asleep to start |
| vein.AISpawner.Enabled=1 | True (1) to enable AI to spawn, false (0) to disable |
| vein.AISpawner.EnableVirtualization=0 | True (1) to enable AI virtualization, false (0) to disable |
| vein.AISpawner.FieldOfViewDot=0 | The dot product indicating the player's field of view (-1 to 1) |
| vein.AISpawner.HordeMode=0 | True (1) to enable horde mode, false (0) to disable |
| vein.AISpawner.Hordes.ChancePerMinute=0.05 | There will be this many hordes spawned per minute |
| vein.AISpawner.Hordes.Duration=120 | Duration of a horde event |
| vein.AISpawner.Hordes.Enabled=1 | True (1) to enable horde spawning, false (0) to disable |
| vein.AISpawner.Hordes.MaxDistance=25000 | If a player gets this far away from where the horde is triggered (e.g. escaping in a car), the horde event ends |
| vein.AISpawner.Hordes.NoiseEffect=0.1 | Bigger means more likely hordes from noise |
| vein.AISpawner.Hordes.ScentEffect=0.5 | Bigger means more likely hordes from bad smells. Negative means hordes from good smells |
| vein.AISpawner.ProxifyZombies=0 | Use zombie proxy swapping |
| vein.AISpawner.ProxifyZombies.Distance=5000 | Distance to proxify zombies |
| vein.AISpawner.SpawnCapMultiplier=1 | Spawn cap multiplier for AI |
| vein.AISpawner.SpawnCapMultiplierZombie=1.5 | Spawn cap multiplier for specifically zombies |
| vein.AISpawner.ZombieCrawlerPercentage=0.1 | What fraction of zombies are crawlers |
| vein.AISpawner.ZombieLayerPercentage=0.1 | What fraction of zombies are asleep to start |
| vein.AISpawner.ZombieWalkerPercentage=0.8 | What fraction of zombies are walkers |
| vein.AISpawnpoint.Chance=0.25 | Default chance (0-1) to use an AI spawnpoint instead of a random location |
| vein.AISpawnpoint.Delay=500 | Delay between AI spawns |
| vein.AISpawnpoint.MaxZ=1500 | Max. distance to spawn zombies below/above you (in case of caves, etc.) |
| vein.AllowPickpocketing=1 | True (1) to enable pickpocketing, false (0) to disable |
| vein.AlwaysBecomeZombie=0 | If this is on, characters who die will become a zombie, regardless of infection |
| vein.AlwaysFreeLook=0 | Like permanently holding down the free-look key |
| vein.Animals.LayingDownDistance=1000 | How far away stimuli has to be for animals to 'wake up' |
| vein.Animals.NavWalk=0 | If animals should use nav walking instead of walking |
| vein.Animation.UpdateRateOptimizations=0 | Enable update rate optimizations (don't change this at runtime) |
| vein.Appearance.MergeSkeletalMeshes=0 | Merge skeletal meshes when combining clothing |
| vein.Assets.CacheDataAssets=1 | True (1) to cache hard-loaded data assets |
| vein.Autosave.Enabled=1 | True (1) to enable autosaves, false (0) to disable |
| vein.Autosave.Interval=300 | Seconds between autosaves |
| vein.Autosave.MaxQuantity=10 | Maximum autosaves to keep |
| vein.BaseDamage=1 | Can bases be damaged, ever? |
| vein.BasicVehicleReplication.PositionInterpSpeed=10 | Vehicle position interpolation speed |
| vein.BasicVehicleReplication.RotationInterpSpeed=5 | Vehicle rotation interpolation speed |
| vein.BasicVehicleReplication.UpdateInterval=0.1 | Interval between basic vehicle replication when the vehicle is moving |
| vein.BasicVehicleReplication.UpdateIntervalSlow=1 | Interval between basic vehicle replication when the vehicle is not moving |
| vein.BatchTicks.Active=1 | Is the batch ticking system active/running ticks? |
| vein.BatchTicks.Enabled=1 | Is the batch ticking system enabled? |
| vein.BatchTicks.EveryFrame=0 | Force the batch tick system to run every frame and ignore countdowns/delays |
| vein.BatchTicks.PositionGranularity=500 | Size of hierarchical position query box |
| vein.BuildObjectDecay=1 | Are UCs necessary? |
| vein.BuildObjectPvP=1 | Can players damage other players' bases? |
| vein.Calendar.ElectricalShutoffTimeDays=7.4 | Days until the power is shut off |
| vein.Calendar.WaterShutoffTimeDays=5.5 | Days until the water is shut off |
| vein.Camera.EnableSprintFOV=1 | Enable or disable zooming when sprinting |
| vein.Camera.FirstPersonADS=0 | When ADSing, go into first-person even if you're in third-person |
| vein.Camera.FirstPersonBody=1 | Show legs in first-person |
| vein.Camera.FOV=90 | How much FOV to apply |
| vein.Camera.HeadBob=1 | How much head bob to apply |
| vein.Camera.MeleeViewPunchMultiplier=1 | How much to attenuate melee view punch |
| vein.Camera.SmoothingLocation=0 | How much location camera smoothing to apply |
| vein.Camera.SmoothingRotation=0 | How much rotation camera smoothing to apply |
| vein.Camera.UseMouseWheel=1 | Use the mouse wheel to zoom in and out |
| vein.CameraScreen.CameraCaptureInterval=0.4 | Interval between camera frames |
| vein.CameraScreen.CameraCaptureIntervalFar=5 | Interval between camera frames when the player is far away |
| vein.Censor.ContentFriendly=0 | If this is on, names of drugs are censored/replaced with false names |
| vein.Characters.Max=100 | Maximum number of characters one player may have |
| vein.Cheating.MaxItemTransferDistance=2000 | Disconnect people if they try taking an item from this far away |
| vein.Cheating.MaxVehicleMovement=50000 | If a vehicle move request is this far away from its actual location, log it |
| vein.ClothingHideable=0 | Can players hide their clothes for roleplaying purposes? |
| vein.Conditions.AlwaysShow=0 | Show all conditions always, regardless of threshold |
| vein.Conditions.NetworkInterval=0.3 | The delay between networking conditions |
| vein.Conditions.NetworkIntervalSlow=3 | The delay between networking conditions where conditions are expected to predict |
| vein.Consciousness.RecoveryPerSecond=1.666 | How much consciousness to recover |
| vein.Construction.ContinueBuilding=1 | Always keep building, regardless of holding down shift or not |
| vein.ContainersRespawn.Enabled=1 | If this is on, empty containers respawn items |
| vein.ContainersRespawn.Interval=10800 | How frequently containers should respawn their contents |
| vein.DeadDoorsIntact=0 | True to spawn doors that damage things, false to just crumble |
| vein.Firearm.BloodSplatter.MaxDecals=4 | How many blood decals to spawn from a firearm |
| vein.Firearm.BloodSplatter.MaxDistance=300 | Max distance for blood decals to spawn from a firearm |
| vein.Firearms.AISoundMultiplier=1 | Multiplier for firearm use to alert zombies. Smaller means sound travels less far |
| vein.Firearms.MaxRange=200000 | Max range for bullets |
| vein.Furniture.PhysicalFall=1 | Furniture physically falls to the ground |
| vein.Furniture.RespawnRate=3000 | Seconds to respawn furniture |
| vein.Furniture.Respawns=1 | If furniture respawns at all |
| vein.Gamma=2.2 | Gamma value |
| vein.GoreHoles.Enabled=0 | True (1) to enable gore holes, false (0) to disable |
| vein.HeadshotDamageMultiplier=1 | How much more or less damage headshots do |
| vein.HideChat=0 | Hide all chat |
| vein.HideCodeLocks=0 | Hide code locks |
| vein.HideNameplates=0 | Hide player names |
| vein.HideWorldPartitionLoadingScreen=0 | Don't make a black screen when world partition is loading after a teleport |
| vein.Holidays.AlwaysSpawn=0 | Always spawn holiday actors, even if it's not a holiday |
| vein.HUD.HideAllNameplates=0 | Hide all item/player/etc nameplates |
| vein.Inventory.AlwaysUpdateContents=0 | If turned on, always update container contents, regardless of distance |
| vein.Inventory.DisableItemUpdates=0 | Disable all item updates |
| vein.Inventory.ItemUpdateInterval=1 | Duration between regular item updates |
| vein.Inventory.PropertyNetworkInterval=5 | Duration between property updates |
| vein.Inventory.QuickDismantleEnabled=0 | True (1) to enable alt-clicking on an item to dismantle it |
| vein.InvertedPitch=0 | Inverted mouse pitch |
| vein.ItemActorSpawner.MinimumWorldTime=60 | Item actor spawners won't spawn before the world is this old |
| vein.ItemActorSpawner.RespawnInterval=3600 | Item actor spawner respawn interval |
| vein.ItemActorSpawner.Respawns=1 | Do item actor spawners ever respawn? |
| vein.Landscape.LODCurvesEnabled=0 | Enable landscape LOD curves |
| vein.LightHiderVolume.Enabled=1 | Enable light hider volumes |
| vein.MainMenu.EnableModsPanel=0 | Enable the mods panel in the main menu |
| vein.MaxLoadingDuration=120 | Maximum time to spend loading the world before unfreezing the player |
| vein.MeleeSlowdownDuration=0.1 | How long to slow down melee animations on impact |
| vein.MeleeSlowdownSpeed=0.2 | How much to slow down melee animations on impact |
| vein.MinLoadingDuration=2 | Minimum time to spend loading the world before unfreezing the player |
| vein.Movement.AirControl=0.5 | Character air control amount |
| vein.Movement.MaxBrakingDecelerationFlying=10000 | Character flying braking deceleration maximum |
| vein.Movement.MaxFlySpeed=500000 | Max fly speed while in the air |
| vein.Multiplayer.AllowDifferentVersions=0 | Allow joining different-versioned servers through the server browser |
| vein.Music.Enabled=1 | True (1) to enable music, false (0) to disable |
| vein.Music.LocationWeight=2 | How much to prioritize regional music |
| vein.Music.NightWeight=2 | How much to prioritize night-focused music |
| vein.NoSaves=0 | Can players not save? |
| vein.OfflineRaidProtection=0 | If this is on and no UC owners are online, the UC/base is invulnerable |
| vein.Permadeath=0 | Can players not respawn? |
| vein.PersistentCorpses=1 | True (1) to enable persistent corpses, false (0) to disable |
| vein.PersistentCorpses.CorpseRemovalDelay=120 | How fast to remove corpses |
| vein.PersistentCorpses.RemoveTime=324000 | How fast corpses go away in seconds |
| vein.PersistentCorpses.RotTime=37800 | How fast corpses rot (get stinky) in seconds |
| vein.PersistentCorpses.SkeletalTime=75600 | How fast corpses turn into skeletons in seconds |
| vein.PhysicsProxy.BlockSize=5000 | Block size to put foliage into |
| vein.PhysicsProxy.CapsuleTimeBudget=1 | Maximum time to spend updating capsules in a single frame |
| vein.PhysicsProxy.Enabled=1 | If false, pause updating proxies |
| vein.PhysicsProxy.MaxDistance=2500 | Maximum distance to allow physics proxies from a player |
| vein.PhysicsProxy.NumProxies=300 | The number of physics proxies |
| vein.Placement.AlwaysAllow=0 | Ignore any placement restrictions when moving or building |
| vein.Placement.MaxFenceHeight=3 | Maximum height for vertical fences |
| vein.Placement.MaxPlacementAttachParents=5 | Maximum attachment chain when placing objects |
| vein.Placement.MaxUtilityCabinets=0 | Max. number of utility cabinets people can build |
| vein.PunchInterval=0.5 | How fast players and NPCs can punch |
| vein.PvP=1 | Can players damage other players? |
| vein.RagdollDragForce=1000000 | What force to apply when dragging ragdolls |
| vein.RepGraph.CellSize=10000 | Replication graph cell size |
| vein.RepGraph.DestructInfo.MaxDist=30000 | Max distance (not squared) to rep destruct infos at |
| vein.RepGraph.DisableSpatialRebuilds=1 | Disable spatial rebuilds |
| vein.RepGraph.DisplayClientLevelStreaming=0 | Display client level streaming |
| vein.RepGraph.DynamicActorFrequencyBuckets=3 | Dynamic actor frequency buckets |
| vein.RepGraph.EnableFastSharedPath=1 | Enable fast shared path |
| vein.RepGraph.FastSharedPathCullDistPct=0.8 | Fast shared path cull distance percentage |
| vein.RepGraph.LogLazyInitClasses=0 | Log lazy init classes |
| vein.RepGraph.SpatialBiasX=-700000 | Spatial bias X |
| vein.RepGraph.SpatialBiasY=-700000 | Spatial bias Y |
| vein.RepGraph.TargetKBytesSecFastSharedPath=10 | Target KB/sec fast shared path |
| vein.RichPresence.Enabled=1 | True (1) to enable rich presence, false (0) to disable |
| vein.Saves.Async=1 | Save on a different thread |
| vein.Saves.Format=0 | Save game format |
| vein.Saves.LogEmplacements=0 | Log when a save object is emplaced |
| vein.Saves.SkipInitialApply=0 | Skip the initial save application when loading the map |
| vein.Saves.SkipInitialApplyCheck=0 | Skip the initial save application check when loading actors |
| vein.ScalarField.Timeout=2 | Duration the scalar field cache is held for |
| vein.Scarcity.Difficulty=3 | Loot scarcity difficulty. 0 = None, 1 = More Loot, 2 = Standard, 3 = Less Loot, 4 = Impossible |
| vein.Scent.CacheTime=2 | How often to reset scent caches |
| vein.Sky.DFAO=1 | If distance field ambient occlusion is on |
| vein.Sky.DistanceFieldShadowDistance=30000 | DF shadow distance for sun and moon |
| vein.Sky.DynamicShadowCascades=3 | Shadow cascade count for the sun |
| vein.Sky.DynamicShadowDistance=3000 | How far should the sun render dynamic shadows |
| vein.Sky.FogIndoorsInterpolationSpeed=0.5 | Speed of blending indoor and outdoor fog |
| vein.Sky.LightShaftBloom=1 | Should the sky cast shaft bloom? |
| vein.Sky.MoonDynamicShadowCascades=1 | Shadow cascade count for the moon |
| vein.Sky.MoonDynamicShadowDistance=2000 | How far should the moon render dynamic shadows |
| vein.Sky.TickInterval=0.016666 | Seconds between each tick of the sky |
| vein.Sky.VolumetricClouds=0 | If volumetric clouds should be rendered instead of painted ones |
| vein.Sky.VolumetricFog=1 | Should the sky fog be volumetric? |
| vein.StaggerChance=0.1 | Stagger odds |
| vein.Stats.NetworkInterval=2 | The delay between networking for stats |
| vein.Stats.XPMultiplier=1 | How much more or less XP you earn |
| vein.StunLockChance=0.6 | Stunlock odds |
| vein.StunLockDuration=2 | Stunlock duration |
| vein.Time.ContinueWithNoPlayers=1 | If this is on, time continues moving when no players are on the server |
| vein.Time.NightTimeMultiplier=3 | How much faster than daytime that nighttime runs |
| vein.Time.NightTimeMultiplierEnd=6 | What (24-hour) hour the night multiplier ends |
| vein.Time.NightTimeMultiplierStart=20 | What (24-hour) hour the night multiplier starts |
| vein.Time.StartOffsetDays=0 | How many days to start a new game at |
| vein.Time.TimeMultiplier=16 | How fast the game world runs |
| vein.ToggleCrouch=0 | Toggle crouch vs. press-and-hold |
| vein.TV.AllowRemoteContent=0 | If this is on, TVs can play content from the web |
| vein.TV.CameraCaptureInterval=0.05 | Interval between camera frames |
| vein.TV.CameraCaptureIntervalFar=2 | Interval between camera frames when the player is far away |
| vein.TV.Server.AllowRemoteContent=1 | If this is on, TVs can play content from the web |
| vein.Units.Fahrenheit=1 | Set the temperature units. Off is Celsius, on is Fahrenheit |
| vein.Units.Imperial.Distance=1 | Set the distance units. Off is metric, on is imperial |
| vein.Units.Imperial.Pressure=1 | Set the pressure units. Off is metric, on is imperial |
| vein.Units.Imperial.Volume=1 | Set the volume units. Off is metric, on is imperial |
| vein.Units.Imperial.Weight=1 | Set the weight. Off is metric, on is imperial |
| vein.Usable.MaxValidationDistance=10000 | Maximum distance to objects to validate uses for |
| vein.Usable.ValidateDistance=0 | If we should validate all use distances |
| vein.UtilityCabinet.AllowRaiding=1 | If this is off, nobody can add themselves to utility cabinets |
| vein.UtilityCabinet.ContinueWithNoPlayers=1 | If this is off, UCs will not feed when no players are on the server |
| vein.UtilityCabinet.Interval=4 | Hours between utility cabinet feeds |
| vein.Vehicles.AutoCamera=1 | Have vehicle cameras automatically follow direction of movement |
| vein.Vehicles.BaseWheelFriction=6 | Base wheel friction for vehicles |
| vein.Vehicles.BaseWheelFrictionHandbrake=1.5 | Wheel friction multiple when handbrake is active |
| vein.Vehicles.BaseWheelMaxBrakeTorque=15000 | Brake torque |
| vein.Vehicles.BaseWheelMaxHandBrakeTorque=1.3 | Brake torque handbrake multiplier |
| vein.Vehicles.Damage.MaximumDamageToOtherVehicles=8 | The maximum damage that can be done from vehicles to other vehicles |
| vein.Vehicles.Damage.MinimumSpeedToGore=2000 | The minimum speed that vehicles blow up zombies |
| vein.Vehicles.Damage.MinimumSpeedToHurtAnything=100 | The minimum speed that vehicles can damage people or objects |
| vein.Vehicles.Damage.MinimumSpeedToHurtPlayers=500 | The minimum speed that vehicles can injure players |
| vein.Vehicles.Damage.MinimumSpeedToInstakillZombies=200 | The minimum speed that vehicles immediately kill zombies |
| vein.Vehicles.Damage.OutgoingPlayerDamage=1 | If on, vehicles damage players when they hit one |
| vein.Vehicles.Damage.VehiclesWithoutDriverCanDamage=0 | If this is off, vehicles with no driver in the seat do zero damage |
| vein.Vehicles.FlatTireWobbleAmplitude=0.1 | How hard to bank right and left with a flat tire |
| vein.Vehicles.HornSoundAIRadius=15000 | How far away AI can hear car horns |
| vein.Vehicles.HotwireDamageMultiplier=1 | How many more times damage you should receive from hotwiring failure |
| vein.Vehicles.LockCameraToRotation=1 | Have vehicle cameras lock to the rotation of the vehicle |
| vein.Vehicles.NearbyKeySpawnChance=0.8 | How likely it is that keys spawn near locked cars |
| vein.Vehicles.Optimizations=1 | Whether to apply vehicle optimization (1) or not (0) |
| vein.Vehicles.Optimizations.Animation=1 | Whether to apply vehicle animation optimization (1) or not (0) |
| vein.Vehicles.Optimizations.Debug=0 | Print logs about vehicle optimizations |
| vein.Vehicles.Optimizations.Physics=1 | Whether to apply vehicle physics optimization (1) or not (0) |
| vein.Vehicles.Optimizations.Physics.Distance=5000 | Distance a vehicle can be considered 'not physics relevant' |
| vein.Vehicles.Optimizations.Physics.MaxVelocity=50 | Vehicle velocity over which we don't freeze physics |
| vein.Vehicles.Optimizations.Tick=1 | Whether to apply vehicle tick optimization (1) or not (0) |
| vein.Vehicles.ZombieKeySpawnChance=0.1 | How likely it is that keys spawn on zombies |
| vein.VOIP.AlertAI=0 | VOIP audio alerts AI |
| vein.VOIP.BypassCompression=0 | Test VOIP input |
| vein.VOIP.FacialStrength=8 | How strongly to apply facial animations |
| vein.VOIP.FFTMouths=0 | Use spectrum analysis for VOIP facial animation |
| vein.VOIP.Loopback=0 | If you should hear your own voice |
| vein.VOIP.PTT=1 | Whether to use push-to-talk or open mic |
| vein.VOIP.PTTDelay=0.2 | How many seconds to delay the end of PTT to transmit audio |
| vein.VOIP.RMSTarget=0.3 | Target VOIP RMS amplitude |
| vein.VOIP.UnderflowMinSamples=0 | Minimum samples to play VOIP |
| vein.VOIP.VolumeMultiplier=3 | Default volume multiplier for VOIP |
| vein.Wire.MaxRadius=1500 | Max distance you can wire two things together |
| vein.Wire.TVMaxRadius=5000 | Max distance you can wire a camera into a TV |
| vein.WorldMedia.Duration=4 | Duration in seconds to consider radio desynced |
| vein.WorldMedia.Percentage=0.04 | Percentage to consider radio desynced |
| vein.WorldMedia.PercentageEnabled=1 | Sync radio based on playback percentage |
| vein.ZombieBuckets.GridSize=20000 | Zombie bucket grid size |
| vein.ZombieBuckets.MaxCount=300 | Zombie bucket max count |
| vein.ZombieBuckets.RespawnTime=300 | Zombie bucket respawn time |
| vein.ZombieInfectionChance=0.01 | How likely you are to get infected by a zombie attack |
| vein.Zombies.AnimateYell=0 | If the zombies mouths should open when they yell |
| vein.Zombies.CanClimb=1 | Can zombies climb? |
| vein.Zombies.CrawlSpeedMultiplier=1 | How much faster zombies crawl |
| vein.Zombies.DamageMultiplier=1 | How much more deadly zombies are |
| vein.Zombies.HeadshotOnly=0 | True (1) to make zombies only take damage from headshots, false (0) to disable |
| vein.Zombies.Health=40 | How much health zombies have |
| vein.Zombies.HearingMultiplier=1.5 | How much better hearing zombies have |
| vein.Zombies.LayingDownDistance=500 | How far away stimuli has to be for zombies to 'wake up' |
| vein.Zombies.NavWalk=1 | If zombies should use nav walking instead of walking |
| vein.Zombies.RunSpeedMultiplier=1 | How much faster zombies run |
| vein.Zombies.SightMultiplier=1.5 | How much better sight zombies have |
| vein.Zombies.SpeedMultiplier=1 | How much faster zombies move |
| vein.Zombies.WalkSpeedMultiplier=1 | How much faster zombies walk |
