Skip to main content

Generals ZH Screen Resolutions

The following is how I set a custom screen resolution for CNC Generals Zero Hour, installed on W11 from Steam. I've included my files as full examples.

Keep in mind, the menu and other things will be set to the resolution you set, so if you have a crazy high resolution, the menu will small, but the field during the game will take up the whole screen.

Seam Custom Res

The easiest way to set your custom resolution (mine is ultrawide 34" monitor) is to edit the launch options from Steam:

  1. Open Steam and open the Library
  2. Find the game on the list, right click on it's title from the list on the left and open Options
  3. Under selected launch options, enter this: -win -xres x-yres y -fullscreen where x and y are the desired res numbers

For example: -win -xres 3440 -yres 1440 -fullscreen This will set the resolution to 3440x1440

Files Location

C:\Users\\OneDrive\Documents\Command and Conquer Generals Zero Hour Data

C:\Program Files (x86)\Steam\steamapps\common\Command & Conquer Generals - Zero Hour\Data\INI

Files to Edit

  • Options.ini located in Zero Hour Data
  • GameData.ini located in Data\INI
    • This may or may not exist, if it doesn't just create it in the directory listed above (or wherever yours is)

Notes

  1. You will want to launch the game, set the resolution to 800x600 and any other settings you want
  2. If you change the resolution in game, it will overwrite the file edits below, so don't touch the res first set in the game!
Options.ini
AntiAliasing = 4
BuildingOcclusion = yes
CampaignDifficulty = 1
DrawScrollAnchor = 
DynamicLOD = yes
ExtraAnimations = no
GameSpyIPAddress = 0.0.0.0
Gamma = 50
HeatEffects = no
IPAddress = 0.0.0.0
IdealStaticGameLOD = High
LanguageFilter = false
MaxParticleCount = 1000
MoveScrollAnchor = 
MusicVolume = 55
Resolution = 
Retaliation = yes
SFX3DVolume = 79
SFXVolume = 71
ScrollFactor = 58
SendDelay = no
ShowSoftWaterEdge = no
ShowTrees = no
StaticGameLOD = High
TextureReduction = 2
UseAlternateMouse = no
UseCloudMap = no
UseDoubleClickAttackMove = no
UseLightMap = no
UseShadowDecals = no
UseShadowVolumes = no
VoiceVolume = 70
; Set any other stuff you want here, this is just what I use
GameData.ini
;//////////////////////////////////////////////////////////////////////////////
; FILE: GameData.ini (SYSTEM) /////////////////////////////////////////////////
;//////////////////////////////////////////////////////////////////////////////

GameData
  ShellMapName = Maps\ShellMapMD\ShellMapMD.map
  MapName = Assault.map
  MoveHintName = SCMoveHint
  UseTrees = Yes
  UseFPSLimit = Yes
  FramesPerSecondLimit = 30
  ChipsetType = 0
  ;Windowed = No
  XResolution = 3440
  YResolution = 1440
  MaxShellScreens = 8
  UseCloudMap = Yes
  UseLightMap = Yes
  BilinearTerrainTex = Yes
  TrilinearTerrainTex = Yes
  MultiPassTerrain = Yes
  AdjustCliffTextures = Yes
  StretchTerrain = No
  UseHalfHeightMap = No
  ShowObjectHealth = Yes
  HideGarrisonFlags = No
  Use3WayTerrainBlends = 1
  DrawEntireTerrain = Yes
  TerrainLOD = DISABLE  ; should be handled by options screen.
  TerrainLODTargetTimeMS = 45
  TextureReductionFactor = 0; 1 is half res, 2 querter res, etc.
  RightMouseAlwaysScrolls = Yes
  UseWaterPlane = Yes
  UseCloudPlane = Yes
  UseShadowVolumes = Yes
  UseShadowDecals = Yes
  UseBehindBuildingMarker = Yes
  DefaultOcclusionDelay = 3000  ; in ms
  OccludedColorLuminanceScale = 0.5
  WaterPositionX = 0.0
  WaterPositionY = 0.0
  WaterPositionZ = 7.0
  WaterExtentX = 2000.0
  WaterExtentY = 2000.0
  WaterType = 0
   
  ; when a structure is reduced to rubble, set its z-height to this if nothing else is specified.
  DefaultStructureRubbleHeight = 10.0

  ;the following are for vertex animated water
  VertexWaterAvailableMaps1       = Maps\nVidiaDemo\nVidiaDemo.map
  VertexWaterHeightClampLow1      = 0.0
  VertexWaterHeightClampHi1       = 16.3
  VertexWaterAngle1               = 45     ;in degrees
  VertexWaterXPosition1           = 2700.0
  VertexWaterYPosition1           = -750.0
  VertexWaterZPosition1           = 2.9
  VertexWaterXGridCells1          = 65
  VertexWaterYGridCells1          = 360
  VertexWaterGridSize1            = 10.0
  VertexWaterAttenuationA1        = 1.0
  VertexWaterAttenuationB1        = 0.0
  VertexWaterAttenuationC1        = 0.0
  VertexWaterAttenuationRange1    = 20.0

  ;the following are for vertex animated water
  VertexWaterAvailableMaps2       = Maps\CHI03\CHI03.map
  VertexWaterHeightClampLow2      = 0.0
  VertexWaterHeightClampHi2       = 31.2
  VertexWaterAngle2               = -12    ;in degrees
  VertexWaterXPosition2           = 282.0
  VertexWaterYPosition2           = -20.0
  VertexWaterZPosition2           = 3.0
  VertexWaterXGridCells2          = 100
  VertexWaterYGridCells2          = 200
  VertexWaterGridSize2            = 11.0
  VertexWaterAttenuationA2        = 1.0
  VertexWaterAttenuationB2        = 0.0
  VertexWaterAttenuationC2        = 0.0
  VertexWaterAttenuationRange2    = 20.0

  ;the following are for vertex animated water
  VertexWaterAvailableMaps3       = Maps\GLA01\GLA01.map
  VertexWaterHeightClampLow3      = 0.0
  VertexWaterHeightClampHi3       = 45.0
  VertexWaterAngle3               = -12     ;in degrees
  VertexWaterXPosition3           = 1424.0
  VertexWaterYPosition3           = -270.0
  VertexWaterZPosition3           = 2.0
  VertexWaterXGridCells3          = 75
  VertexWaterYGridCells3          = 360
  VertexWaterGridSize3            = 10.0 ;11.0
  VertexWaterAttenuationA3        = 1.0
  VertexWaterAttenuationB3        = 0.0
  VertexWaterAttenuationC3        = 0.0
  VertexWaterAttenuationRange3    = 20.0

  ;the following are for vertex animated water
  VertexWaterAvailableMaps4       = Maps\USA06\USA06.map
  VertexWaterHeightClampLow4      = 0.0
  VertexWaterHeightClampHi4       = 16.3
  VertexWaterAngle4               = 45     ;in degrees
  VertexWaterXPosition4           = 2700.0
  VertexWaterYPosition4           = -750.0
  VertexWaterZPosition4           = 2.9
  VertexWaterXGridCells4          = 65
  VertexWaterYGridCells4          = 360
  VertexWaterGridSize4            = 10.0
  VertexWaterAttenuationA4        = 1.0
  VertexWaterAttenuationB4        = 0.0
  VertexWaterAttenuationC4        = 0.0
  VertexWaterAttenuationRange4    = 20.0
  
  DownwindAngle = -0.785    ; Northeast! AKA "Away and to the right" 
  DrawSkyBox = Yes
  SkyBoxPositionZ = -100.0    ; lowers center of skybox under terrain
  SkyBoxScale = 8.4  ; good for default 96 x 96 map, make 17.5 for 256x256
  CameraPitch = 37.5
  CameraYaw = 0.0
  CameraHeight = 510.0
  MaxCameraHeight = 1000.0      ; MaxCameraHeight default is 310
  MinCameraHeight = 120.0
  CameraAdjustSpeed = 0.3      ; between 0 and 1 - this is how fast the camera snaps to the desired height
  ScrollAmountCutoff = 50.0      ; arbitrary units - above this value, we don't update height while scrolling
  EnforceMaxCameraHeight = No      ; Obey max camera height while scrolling?
  TerrainHeightAtEdgeOfMap = 100.0
  UnitDamagedThreshold = 0.7
  UnitReallyDamagedThreshold = 0.35
  GroundStiffness = 0.8
  StructureStiffness = 0.3
  ; acceleration due to gravity, in dist/sec^2
  ; note that our distance units are roughly one foot, so 
  ; this corresponds to earth-normal gravity (32 ft/sec^2)
  ;Gravity = -32.0
  ; this "feels" better... (srj)
  Gravity = -64.0

  PartitionCellSize = 40.0

  ParticleScale = 1.0 ;
  
  AutoFireParticleSmallPrefix   = FireS
  AutoFireParticleSmallSystem   = FireFactionSmall
  AutoFireParticleSmallMax      = 2
  AutoFireParticleMediumPrefix  = FireM
  AutoFireParticleMediumSystem  = FireFactionMedium
  AutoFireParticleMediumMax     = 1
  AutoFireParticleLargePrefix   = FireL
  AutoFireParticleLargeSystem   = FireFactionLarge
  AutoFireParticleLargeMax      = 1
  AutoSmokeParticleSmallPrefix  = SmokeS
  AutoSmokeParticleSmallSystem  = SmokeFactionSmall
  AutoSmokeParticleSmallMax     = 4
  AutoSmokeParticleMediumPrefix = SmokeM
  AutoSmokeParticleMediumSystem = SmokeFactionMedium
  AutoSmokeParticleMediumMax    = 2
  AutoSmokeParticleLargePrefix  = SmokeL
  AutoSmokeParticleLargeSystem  = SmokeFactionLarge
  AutoSmokeParticleLargeMax     = 1
  AutoAflameParticlePrefix      = Aflame
  AutoAflameParticleSystem      = FireBuildingSmall
  AutoAflameParticleMax         = 4

  HistoricDamageLimit = 5000  ; how long to retain historical-damage for weapons that need it, in msec

  AmmoPipScaleFactor = 1.5
  ContainerPipScaleFactor = 1.5
  AmmoPipScreenOffset = X:-1.0 Y:0.0        ; note that this is a multiplier to boundingspheresize, NOT an absolute offset
  ContainerPipScreenOffset = X:1.0 Y:0.0    ; note that this is a multiplier to boundingspheresize, NOT an absolute offset
  AmmoPipWorldOffset = X:0.0 Y:0.0 Z:10.0       ; added to position prior to world->screen xform
  ContainerPipWorldOffset = X:0.0 Y:0.0 Z:10.0  ; added to position prior to world->screen xform

  LevelGainAnimationName = LevelGainedAnimation
  LevelGainAnimationTime = 4.0
  LevelGainAnimationZRise = 15.0

  GetHealedAnimationName = GetHealedAnimation
  GetHealedAnimationTime = 4.0
  GetHealedAnimationZRise = 15.0

  MaxTerrainTracks = 100  ; how many vehicles can generate tread marks on the terrain.
  TimeOfDay = AFTERNOON
  Weather = NORMAL
  MakeTrackMarks = Yes
  ForceModelsToFollowTimeOfDay = Yes
  ForceModelsToFollowWeather = Yes

  InfantryLightMorningScale = 100f ; amount to scale map lighting to make infantry easier to see.
  InfantryLightAfternoonScale = 100f ; amount to scale map lighting to make infantry easier to see.
  InfantryLightEveningScale = 200f ; amount to scale map lighting to make infantry easier to see.
  InfantryLightNightScale = 200f ; amount to scale map lighting to make infantry easier to see.

  TerrainLightingMorningAmbient = R:128 G:100 B:77
  TerrainLightingMorningDiffuse = R:230 G:180 B:153
  TerrainLightingMorningLightPos = X:-0.96 Y:0.05 Z:-0.29
  TerrainLightingEveningAmbient = R:64 G:59 B:51
  TerrainLightingEveningDiffuse = R:153 G:128 B:102
  TerrainLightingEveningLightPos = X:-1.0 Y:0.0 Z:-0.2
  TerrainLightingNightAmbient = R:26 G:26 B:39
  TerrainLightingNightDiffuse = R:51 G:51 B:77
  TerrainLightingNightLightPos = X:-1.0 Y:1.0 Z:-2.0

  TerrainObjectsLightingMorningAmbient = R:128 G:102 B:77
  TerrainObjectsLightingMorningDiffuse = R:230 G:179 B:153
  TerrainObjectsLightingMorningLightPos = X:-0.96 Y:0.05 Z:-0.29
  TerrainObjectsLightingEveningAmbient = R:64 G:59 B:51
  TerrainObjectsLightingEveningDiffuse = R:153 G:128 B:102
  TerrainObjectsLightingEveningLightPos = X:-1.0 Y:0.0 Z:-0.2
  TerrainObjectsLightingNightAmbient = R:26 G:26 B:39
  TerrainObjectsLightingNightDiffuse = R:51 G:51 B:77
  TerrainObjectsLightingNightLightPos = X:-1.0 Y:1.0 Z:-2.0

  TerrainLightingAfternoonAmbient = R:56 G:52 B:44
  TerrainLightingAfternoonDiffuse = R:255 G:255 B:255
  TerrainLightingAfternoonLightPos = X:-0.81 Y:0.38 Z:-0.45
  TerrainObjectsLightingAfternoonAmbient = R:56 G:52 B:44
  TerrainObjectsLightingAfternoonDiffuse = R:255 G:255 B:255
  TerrainObjectsLightingAfternoonLightPos = X:-0.81 Y:0.38 Z:-0.45

  TerrainLightingAfternoonAmbient2 = R:0 G:0 B:0
  TerrainLightingAfternoonDiffuse2 = R:60 G:60 B:120
  TerrainLightingAfternoonLightPos2 = X:0.79 Y:0.62 Z:-0.00
  TerrainObjectsLightingAfternoonAmbient2 = R:0 G:0 B:0
  TerrainObjectsLightingAfternoonDiffuse2 = R:60 G:60 B:80
  TerrainObjectsLightingAfternoonLightPos2 = X:0.79 Y:0.62 Z:-0.00

  TerrainLightingAfternoonAmbient3 = R:0 G:0 B:0
  TerrainLightingAfternoonDiffuse3 = R:30 G:30 B:20
  TerrainLightingAfternoonLightPos3 = X:0.81 Y:-0.48 Z:-0.34
  TerrainObjectsLightingAfternoonAmbient3 = R:0 G:0 B:0
  TerrainObjectsLightingAfternoonDiffuse3 = R:30 G:30 B:20
  TerrainObjectsLightingAfternoonLightPos3 = X:0.81 Y:-0.48 Z:-0.34

  AudioOn = Yes
  MusicOn = Yes
  SoundsOn = Yes
  SpeechOn = Yes
  VideoOn = Yes

  DebugAI = No
  DebugAIObstacles = No

  MaxRoadSegments = 4000
  MaxRoadVertex = 3000
  MaxRoadIndex = 5000
  MaxRoadTypes = 100

  ValuePerSupplyBox = 75

  BuildSpeed = 1.0
  MinDistFromEdgeOfMapForBuild = 30.0  ; buildings may not be constructed this close to a map edge
  SupplyBuildBorder = 20.0  ; min dist you can put a supply center from a supply source

  ;Terrain height at structure footprint must be within this much to 
  ;be considerd "flat" and therefore buildable
  AllowedHeightVariationForBuilding = 10.0

  MinLowEnergyProductionSpeed = 0.5
  MaxLowEnergyProductionSpeed = 0.8
  LowEnergyPenaltyModifier = 1.0
  MultipleFactory = 1.0
  RefundPercent = 50.0%
  StealthFriendlyOpacity = 50.0%

  CommandCenterHealRange = 500.0 ; command center heals your/ally stuff this close to the command center
  CommandCenterHealAmount = 0.01 ; command center heals close by stuff this amount per logic frame
  MaxLineBuildObjects = 50       ; line build style objects can be in a line no longer than this count of objects
  MaxTunnelCapacity = 10         ; How many can be in a player's tunnel network.  Limit 10 for UI currently

  StandardMinefieldDensity    = 0.004    ; in mines per square foot
  StandardMinefieldDistance   = 40      ; in feet. should generally be larger than typical tank shot range.

  HorizontalScrollSpeedFactor = 1.6;     ; Factor applied to the maximum RMB scroll speed.  Larger allows faster scrolling.
  VerticalScrollSpeedFactor = 2.0;       ; Split to account for aspect ratio induced speed limits.  Room to mouse drag.
  KeyboardScrollSpeedFactor = 2.0;    ; Factor applied to the maximum keyboard scroll speed.  Larger allows faster scrolling.
  MovementPenaltyDamageState = REALLYDAMAGED  ; Point at which we slow movement

  MaxParticleCount = 2500        ; the maximum number of particles that can exist at one time (to 5000 for demo)
  MaxFieldParticleCount = 30     ; the number of field type particles rendered to the screen, beyond which this type will begin skipping
                                 ; a field particle is one of Priority AREA_EFFECT and isGroundAligned = Yes
                                 ; Typically these are puddles, toxic contamination, radiation, decontamination, etc.

; note that the weapon bonus types are:
;"GARRISONED",
;"HORDE",
;"CONTINUOUS_FIRE_MEAN",
;"CONTINUOUS_FIRE_FAST",
;"NATIONALISM",
;"PLAYER_UPGRADE",
;"DRONE_SPOTTING",
;"ENTHUSIASTIC",
;"VETERAN",
;"ELITE",
;"HERO",
;"BATTLEPLAN_BOMBARDMENT",
;"BATTLEPLAN_HOLDTHELINE",
;"BATTLEPLAN_SEARCHANDDESTROY",
;"SUBLIMINAL",
;"SOLO_HUMAN_EASY",
;"SOLO_HUMAN_NORMAL",
;"SOLO_HUMAN_HARD",
;"SOLO_AI_EASY",
;"SOLO_AI_NORMAL",
;"SOLO_AI_HARD",
;
; and the weapon bonus 'fields' are:
;"DAMAGE",
;"RADIUS",
;"RANGE",
;"RATE_OF_FIRE",
;"PRE_ATTACK",

  ;HORDE, NATIONALISM and FANATICISM are cumulative bonuses for the China Redguard,
  ;and only apply when they are in a horde. NATIONALISM does not replace HORDE! FANATICISM does not replace NATIONALISM

  ;ENTHUSIASTIC and SUBLIMINAL are cumulative bonuses for the China Redguard,
  ;and only apply when they are within effect radius of a propaganda tower. SUBLIMINAL does not replace ENTHUSIASTIC!

  WeaponBonus =       HORDE  RATE_OF_FIRE  150%  ;Horded troops fire their weapons 25% faster
  WeaponBonus = NATIONALISM  RATE_OF_FIRE  125%  ;Horded troops with nationalism fire their weapon an additional 25% faster
  WeaponBonus = FANATICISM   RATE_OF_FIRE  125%  ;Horded troops with nationalism fire their weapon an additional 25% faster
  WeaponBonus = ENTHUSIASTIC RATE_OF_FIRE  125%  ;In range of a speaker tower, gaining enthusiasm
  WeaponBonus = SUBLIMINAL   RATE_OF_FIRE  125%  ;In range of an upgraded speaker tower, gaining even more enthusiasm
  WeaponBonus =  GARRISONED         RANGE  133%  ; when garrisoned, all weapons get n times normal range
  WeaponBonus =  GARRISONED        DAMAGE  125%  ; when garrisoned, all weapons get n times normal range

  WeaponBonus = TARGET_FAERIE_FIRE  RATE_OF_FIRE  150%  ; If shooting at someone marked with Faerie Fire, shoot faster (we don't miss ever, so can't hit easier)

  WeaponBonus = FRENZY_ONE    DAMAGE 110% ; Granted by a China Generals power
  WeaponBonus = FRENZY_TWO    DAMAGE 120%
  WeaponBonus = FRENZY_THREE  DAMAGE 130%
    
  WeaponBonus = VETERAN  RATE_OF_FIRE  120%  
  WeaponBonus = VETERAN  DAMAGE        110%
  WeaponBonus = ELITE    RATE_OF_FIRE  140%
  WeaponBonus = ELITE    DAMAGE        120%
  WeaponBonus = HERO     RATE_OF_FIRE  160%  
  WeaponBonus = HERO     DAMAGE        130%  

  ;Strategy centers provides bonuses based on the active battleplan!
  WeaponBonus = BATTLEPLAN_BOMBARDMENT       DAMAGE        120%
;  WeaponBonus = BATTLEPLAN_BOMBARDMENT       RANGE         120%
  WeaponBonus = BATTLEPLAN_SEARCHANDDESTROY  RANGE         120%
  WeaponBonus = BATTLEPLAN_HOLDTHELINE       RATE_OF_FIRE  100% ;Note this does nothing -- just for balancing reference.

  WeaponBonus = SOLO_AI_EASY   RATE_OF_FIRE  80%
  WeaponBonus = SOLO_AI_NORMAL RATE_OF_FIRE  100%
  WeaponBonus = SOLO_AI_HARD   RATE_OF_FIRE  120%

  ; you cannot set this; it always has a value of 100%.
  ; HealthBonus_Regular = 100%
  HealthBonus_Veteran = 120%
  HealthBonus_Elite   = 130%
  HealthBonus_Heroic  = 150%

  HumanSoloPlayerHealthBonus_Easy    = 150%
  HumanSoloPlayerHealthBonus_Normal  = 100%     ; ie, unadjusted
  HumanSoloPlayerHealthBonus_Hard    = 80%

  ; Audio parameters
;  VolumeDistribution = Linear          ; for linear falloff
;  VolumeDistribution = MuLaw            ; for S-Curve falloff
;  VolumeMuValue = 6.0                  ; defines the steepness of the S, must be >=0, higher is steeper.

  GroupSelectMinSelectSize = 5
  GroupSelectVolumeBase = 0.5
  GroupSelectVolumeIncrement = 0.02
  MaxUnitSelectSounds = 8

  SelectionFlashSaturationFactor = 0.5  ; zero leaves color unaffected, 4.0 is purely saturated
  SelectionFlashHouseColor       = No  ; if 'No', selection flashes white

  CameraAudibleRadius = 250             ; defines the radius that we can hear when the camera is looking up.
  GroupMoveClickToGatherAreaFactor = 0.5; if you take all the selected units and calculate the smallest possible rectangle
                                        ; that contains them all, and click within that, all the selected units will break 
                                        ; formation and gather at the point the user clicked (if the value is 1.0). If it's 
                                        ; 0.0, units will always keep their formation. If it's <1.0, then the user must 
                                        ; click a smaller area within the rectangle to order the gather.

  ShakeSubtleIntensity      = 0.5
  ShakeNormalIntensity      = 1.0
  ShakeStrongIntensity      = 2.5
  ShakeSevereIntensity      = 5.0
  ShakeCineExtremeIntensity = 7.5       ;Cinematic reserved -- don't use for game stuff because it can change.
  ShakeCineInsaneIntensity  = 10.0      ;Cinematic reserved -- don't use for game stuff because it can change.

  MaxShakeIntensity    = 10.0
  MaxShakeRange        = 150.0

  SellPercentage       = 50% ; You get this percentage back of the cost to build
  
  BaseRegenHealthPercentPerSecond = 0.3% ;You get this % of max health back per second from auto base regeneration
  BaseRegenDelay                  = 3000 ;in MS, delay in frames we must be damage free before we can auto heal from base regeneration

; sorry, prisons are cut, maybe next version (srj)
;  PrisonBountyMultiplier = 2.0 ;Players get this X the cost to build a unit 
;                               ;that is delivered to a prison with 
;                               ;KINDOF_COLLECTS_PRISON_BOUNTY
;  PrisonBountyTextColor = R:255 G:128 B:64 A:255

  SpecialPowerViewObject = SuperweaponPing ; Name of the object created for superweapons to let you watch what happens
                                 
  ; this is a list of bones that will always be exposed to Logic.
  ; please note that this is really here for quick backwards compatibility with old code,
  ; which didn't require declaring which bones you wanted to be able to use from logic...
  ; so PLEASE DO NOT ADD TO THIS LIST; if you need to expose new bones for a particular
  ; unit, please use the "ExtraPublicBone" INI keyword on a per-unit basis instead
  ; (see the airfields for an example). (srj)
  StandardPublicBone = FirePoint
  StandardPublicBone = Target_Left
  StandardPublicBone = Target_Right
  StandardPublicBone = ExitStart
  StandardPublicBone = ExitEnd
  StandardPublicBone = Muzzle
  StandardPublicBone = PARA_COG
  StandardPublicBone = PARA_ATTCH
  StandardPublicBone = PARA_MAN
  StandardPublicBone = ExitStart
  StandardPublicBone = DockStart
  StandardPublicBone = DockAction
  StandardPublicBone = DockEnd
  StandardPublicBone = DockWaiting
  StandardPublicBone = WeaponA
  StandardPublicBone = Smoke
  StandardPublicBone = Fire
  StandardPublicBone = WaterSpray
  StandardPublicBone = Spray
  StandardPublicBone = WaterSprayBig
  StandardPublicBone = Steam
  StandardPublicBone = Propeller
  StandardPublicBone = SpawnPoint
  StandardPublicBone = FireS
  StandardPublicBone = FireM
  StandardPublicBone = FireL
  StandardPublicBone = SmokeS
  StandardPublicBone = SmokeM
  StandardPublicBone = SmokeL
  StandardPublicBone = Aflame

  DefaultStartingCash = 10000 ;The amount of cash the player starts with by default.

  UnlookPersistDuration     = 5000 ; How long after you stop looking until the fog grows back

  ShroudColor = R:255 G:255 B:255
  ClearAlpha = 255
  FogAlpha = 127
  ShroudAlpha = 0 ; 0 is opaque, 255 is clear.  Unsigned Byte

  ; Network timing settings.  Don't mess with these unless you know what you're doing!
  ; If you are tempted to mess with these, please let me know. Bryan x36810
  ; This does not imply that I know what I'm doing.
  NetworkFPSHistoryLength = 30      ; The number of fps history entries.
  NetworkLatencyHistoryLength = 200 ; The number of ping history entries.
  NetworkRunAheadMetricsTime = 5000 ; The number of miliseconds between run ahead metrics things
  NetworkCushionHistoryLength = 10  ; The number of cushion values to keep.
  NetworkRunAheadSlack = 10         ; The amount of slack in the run ahead value.  This is the percentage of the calculated run ahead that is added.
  NetworkKeepAliveDelay = 20        ; The number of seconds between when the connections to each player send a keep-alive packet.
  NetworkDisconnectTime = 5000      ; The number of milliseconds between when the game gets stuck on a frame for a network stall and when the disconnect dialog comes up.
  NetworkPlayerTimeoutTime = 60000  ; The number of milliseconds between when a player's last keep alive command was recieved and when they are considered disconnected from the game.
  NetworkDisconnectScreenNotifyTime = 15000 ; The number of milliseconds between when the disconnect screen comes up and when the disconnect notification is sent to the other players.

  KeyboardCameraRotateSpeed = 0.1   ; How fast the camera rotates when rotated via keyboard controls.

End