#name "gasweapon" #dll "all" "weapon" #target_dir "weapons/sp/" // target location 1 (single-player) #target_dir "weapons/mp/" // target location 2 (multi-player) #target_dir "xmodel/" #target_dir "" #target_dir "xanim/" #file_ext "*" #version 45 // This tells the configstring converter what the file type identifier should be enum { "WEAPONFILE" } configstringFileType // This uses the config string convert's multi-target folder // mechanism to make the weapon either a single-player weapon // or a multi-player weapon. // The first character is used to specify which target folder to go in enum { "1: Single-Player", "2: Multi-Player" } targetFolder enum { "gas" } weaponType enum { "gas" } weaponClass enum { "primary", "offhand", "item", "altmode" } inventoryType float 3000 0 1000000 maxSteeringAccel string displayName string AIOverlayDescription string modeName enum { "gas", "none" } playerAnimType string gunModel string handModel int 1 0 1 isHandModelOverridable int 0 0 1 aimDownSight string flameTableFirstPerson string flameTableThirdPerson int 100 1 1000 rechamberBoltTime string idleAnim string emptyIdleAnim string fireAnim string lastShotAnim string meleeAnim string reloadAnim string raiseAnim string dropAnim string firstRaiseAnim string altRaiseAnim string altDropAnim string quickRaiseAnim string quickDropAnim string emptyRaiseAnim string emptyDropAnim string sprintInAnim string sprintLoopAnim string sprintOutAnim string nightVisionWearAnim string nightVisionRemoveAnim string adsFireAnim string adsLastShotAnim string adsUpAnim string adsDownAnim string meleeChargeAnim string knifeModel string worldKnifeModel float 1 0 5 moveSpeedScale float 1 0 5 adsMoveSpeedScale float 1 0 5 sprintDurationScale int 10 0 1000 damage float 5000.0 0.0 10000.0 damageDuration float 1000.0 0.0 10000.0 damageInterval int 0 0 1000 meleeDamage float 0.1 0 10.0 fireDelay float 0.1 0.0 10.0 fireTime float 0.7 0.0 10.0 meleeTime float 0.0 0.0 10.0 meleeChargeTime float 0.25 0.05 10.0 meleeDelay float 0.0 0.0 10.0 meleeChargeDelay float 2.0 0.0 10.0 reloadTime float 0 0.0 10.0 reloadAddTime float 0.5 0.0 10.0 dropTime float 0.5 0.0 10.0 raiseTime float 0.5 0.0 10.0 altDropTime float 0.5 0.0 10.0 altRaiseTime float 0.5 0.0 10.0 quickDropTime float 0.5 0.0 10.0 quickRaiseTime float 0.5 0.0 10.0 firstRaiseTime float 0.5 0.0 10.0 emptyDropTime float 0.5 0.0 10.0 emptyRaiseTime float 0.5 0.0 10.0 sprintInTime float 0.5 0.0 10.0 sprintLoopTime float 0.5 0.0 10.0 sprintOutTime float 0.5 0.0 10.0 nightVisionWearTime float 0.5 0.0 10.0 nightVisionRemoveTime int 0 0 1 clipOnly float 0 0 1 hipReticleSidePos int 25 0 150 adsIdleAmount int 80 0 150 hipIdleAmount float 1.0 0 100 hipIdleSpeed float 1.0 0 100 adsIdleSpeed float 0.5 0 1 idleCrouchFactor float 0.15 0 1 idleProneFactor float 0 0 10 adsSpread float 0 -30 30 adsAimPitch float 0.3 0 10 adsTransInTime float 0.6 0 10 adsTransOutTime float 0.1 0 5 adsTransBlendTime float 0.6 0 5 adsReloadTransTime float 1 0 1 adsCrosshairInFrac float 0.2 0 1 adsCrosshairOutFrac float 65 1 160 adsZoomFov float 0.5 0 1 adsZoomInFrac float 0.1 0 1 adsZoomOutFrac float 1.0 0 10 adsBobFactor float 0 0 100 adsViewBobMult float 0 0 90 adsViewErrorMin float 0 0 90 adsViewErrorMax int 30 0 80 gunMaxPitch int 30 0 80 gunMaxYaw float -30 -100 100 adsGunKickPitchMin float -20 -100 100 adsGunKickPitchMax float -17 -100 100 adsGunKickYawMin float 17 -100 100 adsGunKickYawMax float 250 0 1000 adsGunKickAccel float 1000 0 10000 adsGunKickSpeedMax float 10 0 100 adsGunKickSpeedDecay float 1 0 100 adsGunKickStaticDecay float 20 -200 200 adsViewKickPitchMin float 95 -200 200 adsViewKickPitchMax float -10 -200 200 adsViewKickYawMin float 30 -200 200 adsViewKickYawMax float 2000 10 10000 adsViewKickCenterSpeed //float 0.25 0 45 adsViewScatterMin //float 0.5 0 45 adsViewScatterMax float -5 -100 100 hipGunKickPitchMin float -3 -100 100 hipGunKickPitchMax float -15 -100 100 hipGunKickYawMin float 15 -100 100 hipGunKickYawMax float 250 0 1000 hipGunKickAccel float 500 0 10000 hipGunKickSpeedMax float 15 0 100 hipGunKickSpeedDecay float 1 0 100 hipGunKickStaticDecay float 20 -200 200 hipViewKickPitchMin float 40 -200 200 hipViewKickPitchMax float -15 -200 200 hipViewKickYawMin float 15 -200 200 hipViewKickYawMax float 2000 10 10000 hipViewKickCenterSpeed //float 0 0 45 hipViewScatterMin //float 0 0 45 hipViewScatterMax float 30 0 180 swayMaxAngle float 6 1 50 swayLerpSpeed float 0.1 -2 2 swayPitchScale float 0.1 -2 2 swayYawScale float 0.1 -2 2 swayHorizScale float 0.1 -2 2 swayVertScale float 5 0 20 swayShellShockScale float 30 0 180 adsSwayMaxAngle float 6 1 50 adsSwayLerpSpeed float 0.1 -2 2 adsSwayPitchScale float 0.1 -2 2 adsSwayYawScale float 0.1 -2 2 adsSwayHorizScale float 0.1 -2 2 adsSwayVertScale // info for filling in the gitem_t for the weapon string worldModel string worldClipModel string hudIcon string modeIcon int 0 0 1 unlimitedAmmo string ammoName enum { "4:1", "1:1", "2:1" } hudIconRatio enum { "4:1", "1:1", "2:1" } modeIconRatio enum { "4:1", "1:1", "2:1" } killIconRatio int 100 0 2147483647 maxAmmo int 0 0 2147483647 startAmmo string clipName int 10 0 2147483647 clipSize string dpadIcon enum { "4:1", "1:1", "2:1" } dpadIconRatio int 0 0 1 overheatWeapon int 0 0 1 coolWhileFiring float 1.0 0.1 100.0 overheatRate float 30.0 0.1 100.0 cooldownRate float 25.0 0.0 99.0 overheatEndVal int 0 0 2147483647 dropAmmoMin int 0 0 2147483647 dropAmmoMax // client-side info string viewFlashEffect string worldFlashEffect string shellEjectEffect string lastShotEjectEffect string worldClipDropEffect string projTrailEffect string projExplosionEffect string pickupSound string pickupSoundPlayer string ammoPickupSound string ammoPickupSoundPlayer string fireSound string fireSoundPlayer string lastShotSound string lastShotSoundPlayer string emptyFireSound string emptyFireSoundPlayer string meleeSwipeSound string meleeSwipeSoundPlayer string meleeHitSound string meleeMissSound string rechamberSound string rechamberSoundPlayer string reloadSound string reloadSoundPlayer string reloadEmptySound string reloadEmptySoundPlayer string reloadStartSound string reloadStartSoundPlayer string reloadEndSound string reloadEndSoundPlayer string altSwitchSound string altSwitchSoundPlayer string raiseSound string raiseSoundPlayer string firstRaiseSound string firstRaiseSoundPlayer string putawaySound string putawaySoundPlayer string nightVisionWearSound string nightVisionWearSoundPlayer string nightVisionRemoveSound string nightVisionRemoveSoundPlayer string flameOffLoopSound string flameOffLoopSoundPlayer string flameIgniteSound string flameIgniteSoundPlayer string flameOnLoopSound string flameOnLoopSoundPlayer string flameCooldownSound string flameCooldownSoundPlayer string noteTrackSoundA string noteTrackSoundB string noteTrackSoundC string noteTrackSoundD string reticleCenter string reticleSide int 32 1 480 reticleCenterSize int 16 1 480 reticleSideSize int 4 0 480 reticleMinOfs float 0 0 10000 enemyCrosshairRange int 1 0 1 crosshairColorChange // additional weapon info string altWeapon //int 1 0 1 twoHanded int 0 0 1 semiAuto int 0 0 1 boltAction int 1 0 1 wideListIcon int 0 0 1 adsFire int 0 0 1 cancelAutoHolsterWhenEmpty int 0 0 1 blocksProne string killIcon int 1 0 1 wideKillIcon int 1 0 1 flipKillIcon int 0 0 1 noPartialReload int 0 0 999 reloadAmmoAdd float 1600 0 50000 autoAimRange float 50000 0 50000 slowdownAimRange float 50000 0 50000 slowdownAimRangeAds float 50000 0 50000 lockonAimRange float 50000 0 50000 lockonAimRangeAds // AI ranges float 720 1 100000 fightDist float 1400 1 100000 maxDist string aiVsAiAccuracyGraph string aiVsPlayerAccuracyGraph // settings for view model position movement float 0 -300 300 sprintOfsF float 0 -300 300 sprintOfsR float 0 -300 300 sprintOfsU float 0 -300 300 sprintRotP float 0 -300 300 sprintRotY float 0 -300 300 sprintRotR float 1 0 10 sprintBobH float 1 0 10 sprintBobV float 1 0.01 10 sprintScale float 0 -300 300 standMoveF float 1 -300 300 standMoveR float -1.5 -300 300 standMoveU float 0 -300 300 standRotP float 0 -300 300 standRotY float 0 -300 300 standRotR float 0 -300 300 duckedSprintOfsF float 0 -300 300 duckedSprintOfsR float 0 -300 300 duckedSprintOfsU float 0 -300 300 duckedSprintRotP float 0 -300 300 duckedSprintRotY float 0 -300 300 duckedSprintRotR float 1 0 10 duckedSprintBobH float 1 0 10 duckedSprintBobV float 1 0.01 10 duckedSprintScale float -2 -300 300 duckedOfsF float 2 -300 300 duckedOfsR float -0.2 -300 300 duckedOfsU float 0 -300 300 duckedMoveF float 1 -300 300 duckedMoveR float -1.5 -300 300 duckedMoveU float 0 -300 300 duckedRotP float 0 -300 300 duckedRotY float 0 -300 300 duckedRotR float -6 -300 300 proneOfsF float 3.5 -300 300 proneOfsR float 0.8 -300 300 proneOfsU float 0 -300 300 proneMoveF float 1 -300 300 proneMoveR float -1.5 -300 300 proneMoveU float 0 -300 300 proneRotP float 0 -300 300 proneRotY float 0 -300 300 proneRotR float 4 0 300 posMoveRate float 10 0 300 posProneMoveRate float 110 0 3000 standMoveMinSpeed float 60 0 3000 duckedMoveMinSpeed float 0 0 3000 proneMoveMinSpeed float 5 0 300 posRotRate float 10 0 300 posProneRotRate float 110 0 1000 standRotMinSpeed float 60 0 1000 duckedRotMinSpeed float 0 0 1000 proneRotMinSpeed float 0.5 0.0 1.0 parallelDefaultBounce float 0.5 0.0 1.0 parallelBarkBounce float 0.5 0.0 1.0 parallelBrickBounce float 0.5 0.0 1.0 parallelCarpetBounce float 0.5 0.0 1.0 parallelClothBounce float 0.5 0.0 1.0 parallelConcreteBounce float 0.5 0.0 1.0 parallelDirtBounce float 0.5 0.0 1.0 parallelFleshBounce float 0.5 0.0 1.0 parallelFoliageBounce float 0.5 0.0 1.0 parallelGlassBounce float 0.5 0.0 1.0 parallelGrassBounce float 0.5 0.0 1.0 parallelGravelBounce float 0.5 0.0 1.0 parallelIceBounce float 0.5 0.0 1.0 parallelMetalBounce float 0.5 0.0 1.0 parallelMudBounce float 0.5 0.0 1.0 parallelPaperBounce float 0.5 0.0 1.0 parallelPlasterBounce float 0.5 0.0 1.0 parallelRockBounce float 0.5 0.0 1.0 parallelSandBounce float 0.5 0.0 1.0 parallelSnowBounce float 0.5 0.0 1.0 parallelWaterBounce float 0.5 0.0 1.0 parallelWoodBounce float 0.5 0.0 1.0 parallelAsphaltBounce float 0.5 0.0 1.0 parallelCeramicBounce float 0.5 0.0 1.0 parallelPlasticBounce float 0.5 0.0 1.0 parallelRubberBounce float 0.5 0.0 1.0 parallelCushionBounce float 0.5 0.0 1.0 parallelFruitBounce float 0.5 0.0 1.0 parallelPaintedMetalBounce float 0.5 0.0 1.0 perpendicularDefaultBounce float 0.5 0.0 1.0 perpendicularBarkBounce float 0.5 0.0 1.0 perpendicularBrickBounce float 0.5 0.0 1.0 perpendicularCarpetBounce float 0.5 0.0 1.0 perpendicularClothBounce float 0.5 0.0 1.0 perpendicularConcreteBounce float 0.5 0.0 1.0 perpendicularDirtBounce float 0.5 0.0 1.0 perpendicularFleshBounce float 0.5 0.0 1.0 perpendicularFoliageBounce float 0.5 0.0 1.0 perpendicularGlassBounce float 0.5 0.0 1.0 perpendicularGrassBounce float 0.5 0.0 1.0 perpendicularGravelBounce float 0.5 0.0 1.0 perpendicularIceBounce float 0.5 0.0 1.0 perpendicularMetalBounce float 0.5 0.0 1.0 perpendicularMudBounce float 0.5 0.0 1.0 perpendicularPaperBounce float 0.5 0.0 1.0 perpendicularPlasterBounce float 0.5 0.0 1.0 perpendicularRockBounce float 0.5 0.0 1.0 perpendicularSandBounce float 0.5 0.0 1.0 perpendicularSnowBounce float 0.5 0.0 1.0 perpendicularWaterBounce float 0.5 0.0 1.0 perpendicularWoodBounce float 0.5 0.0 1.0 perpendicularAsphaltBounce float 0.5 0.0 1.0 perpendicularCeramicBounce float 0.5 0.0 1.0 perpendicularPlasticBounce float 0.5 0.0 1.0 perpendicularRubberBounce float 0.5 0.0 1.0 perpendicularCushionBounce float 0.5 0.0 1.0 perpendicularFruitBounce float 0.5 0.0 1.0 perpendicularPaintedMetalBounce keyenum("rumble.gdf") fireRumble keyenum("rumble.gdf") meleeImpactRumble float 0 0 100 adsDofStart float 0 0 100 adsDofEnd float 0 0 100 hipDofStart float 0 0 100 hipDofEnd vcontainer { scrollbox(targetFolder) [ exec { label("Target Folder") tooltip("Select platform-gametype this weapon will be used in.") width(270) } ] edit(displayName) [ exec { label("Display Name") tooltip("Localization alias for weapon name displayed on HUD in game.") width(500) } ] edit(modeName) [ exec { label("Mode Name") tooltip("Localization alias for selective fire mode text displayed on HUD in game.") width(500) } ] scrollbox(playerAnimType) [ exec { label("Player Anim Type") tooltip("Select an Player Anim Type - specifies \"playerAnimType\" in playeranim.script") width(300) } ] edit(altWeapon) [ exec { label("Alt Weapon Name") tooltip("Weapon to switch to when this weapon's selective fire mode is switched in the game.") width(500) } ] edit(AIOverlayDescription) [ exec { label("AI Description") tooltip("Localization alias for text shown when crosshair is placed over a friendly. Eg. Rifleman, Submachine Gunner, etc.") width(500) } ] scrollbox(inventoryType) [ exec { label("Inventory") tooltip("Select what sort of inventory this weapon is.") } ] scrollbox(weaponType) [ exec { label("Type") tooltip("Select a weapon type.") width(300) } ] scrollbox(weaponClass) [ exec { label("Class") tooltip("Select an appropriate class for this weapon.") width(300) } ] hcontainer { checkbox(semiAuto) [ exec { label("Semi Auto") tooltip("Turn this on for any weapon that requires the trigger to be pulled for each bullet fired, including bolt-action weapons.") righttext() } ] checkbox(boltAction) [ exec { label("Bolt Action") tooltip("Turn this on for bolt-action weapons only. Animation control.") righttext() } ] } hcontainer { checkbox(noPartialReload) [ exec { label("No Partial Reload") tooltip("When noPartialReload is set for a weapon, it can not be reloaded unless reloadAmmoAdd amount of ammo can be put into the gun. If reloadAmmoAdd is 0, it's treated as the weapon's clip size.") righttext() } ] checkbox(aimDownSight) [ exec { label("ADS") tooltip("Must be turned on for proper viewmodel appearance of a weapon that can be Aimed Down the Sight (ADS).") righttext() } ] } hcontainer { checkbox(blocksProne) [ exec { label("Cannot Go Prone") tooltip("The player cannot go prone when they have this weapon equiped.") righttext() } ] } hcontainer { floatedit(enemyCrosshairRange, 1, 100) [ exec { label("Enemy Crosshair Range") tooltip("The range in world units at which an enemy will change your crosshair color. (1 world unit = 1 inch)") width(280) labelwidth(180) } ] checkbox(crosshairColorChange) [ exec { label("Crosshair Color Change") tooltip("Change crosshair color if pointing at friendly or enemy") width(200) labelwidth(200) righttext() } ] } hcontainer { floatedit(moveSpeedScale, 0.1, 1) [ exec { label("Move Speed Scale") tooltip("When using this weapon, player movement speed is multiplied by this amount.") width(280) labelwidth(180) } ] floatedit(adsMoveSpeedScale, 0.1, 1) [ exec { label("ADS Move Speed Scale") tooltip("When using this weapon and in ADS, player movement speed is multiplied by this amount.") labelwidth(180) } ] } floatedit(sprintDurationScale, 0.1, 5) [ exec { label("Sprint Duration Scale") tooltip("When sprinting with this weapon, sprint duration is multiplied by this amount.") width(280) labelwidth(180) } ] hcontainer { spinedit(gunMaxPitch, 1, 10) [ exec { label("Max Gun Pitch") tooltip("Maximum allowed vertical ascent of the viewmodel due to recoil (degrees).") width(280) labelwidth(180) } ] spinedit(gunMaxYaw, 1, 10) [ exec { label("Max Gun Yaw") tooltip("Maximum allowed horizontal travel of the viewmodel due to recoil (degrees).") width(280) labelwidth(180) } ] } //////////////////////////////////////// // Flamethrower Details //////////////////////////////////////// vcontainer { edit(flameTableFirstPerson) [ exec { label("1st Person Flame Table") width(500) } ] edit(flameTableThirdPerson) [ exec { label("3rd Person Flame Table") width(500) } ] spinedit(rechamberBoltTime, 1, 100) [ exec { label("MuzzleEffect Time") tooltip("Time to wait in-between spawning a new MuzzleEffect") } ] } [ exec { groupBox("Flamethrower") } ] //////////////////////////////////////// // Aim Assist //////////////////////////////////////// vcontainer { floatedit(autoAimRange, 1, 100) [ exec { label("Auto Aim Range") tooltip("(Console only.) The range in world units up to which entering ADS will lock-on to enemies. (1 world unit = 1 inch)") } ] hcontainer { floatedit(slowdownAimRange, 1, 100) [ exec { label("Slowdown Range") tooltip("(Console only.) The range in world units which the crosshair will slowdown over a target. (1 world unit = 1 inch)") } ] floatedit(slowdownAimRangeAds, 1, 100) [ exec { label("Slowdown Range ADS") tooltip("(Console only.) The range in world units which the crosshair will slowdown over a target in ADS. (1 world unit = 1 inch)") width(260) labelwidth(160) } ] } hcontainer { floatedit(lockonAimRange, 1, 100) [ exec { label("Lock-On Range") tooltip("(Console only.) The range in world units up to which the view will lock onto a target. (1 world unit = 1 inch)") } ] floatedit(lockonAimRangeAds, 1, 100) [ exec { label("Lock-On Range ADS") tooltip("(Console only.) The range in world units up to which the view will lock onto a target in ADS. (1 world unit = 1 inch)") width(260) labelwidth(160) } ] } } [ exec { groupBox("Aim Assist (Console only)") } ] //////////////////////////////////////// // Ammunition //////////////////////////////////////// vcontainer { checkbox(unlimitedAmmo) [ exec { label("Unlimited Ammo") tooltip("This weapon does not use ammo") } ] edit(ammoName) [ exec { label("Ammo Name") tooltip("Allows different weapons to share the same ammo pool.") width(500) } ] edit(clipName) [ exec { label("Clip Name") tooltip("Allows different weapons to share clips. Used for weapons that have a selective fire option, and would therefore need to use the same type of clip.") width(500) } ] hcontainer { spinedit(maxAmmo, 10, 20) [ exec { label("Max Ammo") tooltip("Max ammo the player can collect for this weapon. No effect on AI.") } ] spinedit(startAmmo, 1, 10) [ exec { label("Start Ammo") tooltip("How much ammo the player gets when starting with this weapon. One clip/magazine from this amount will be already in the weapon. No effect on AI.") } ] spinedit(clipSize, 1, 10) [ exec { label("Clip Size") tooltip("Specifies how many bullets per clip/magazine.") } ] } hcontainer { spinedit(dropAmmoMin, 1, 10) [ exec { label("Drop Min") tooltip("When dropped by AI/player/hand-placed in editor, contains at least this much ammo. Not limited to real-life clip/magazine size.") } ] spinedit(dropAmmoMax, 1, 10) [ exec { label("Drop Max") tooltip("When dropped by AI/player/hand-placed in editor, contains no more than this much ammo. Not limited to real-life clip/magazine size.") } ] checkbox(clipOnly) [ exec { label("Clip Only") tooltip("Used for weapons that use clips only") righttext() } ] } hcontainer { spinedit(reloadAmmoAdd, 1, 10) [ exec { label("Reload Ammo Add") tooltip("For weapons with Segmented Reload turned on. Amount to add when reloading with some amount of bullets still remaining in the weapon.") } ] } checkbox(cancelAutoHolsterWhenEmpty) [ exec { label("Do Not Auto-Holster When Empty") tooltip("When weapons are empty, they are normally auto-swapped to the next usable weapon in the player's inventory. This disables that.") width(300) labelwidth(280) righttext() } ] } [ exec { groupBox("Ammunition") } ] //////////////////////////////////////// // Overheating //////////////////////////////////////// vcontainer { hcontainer { checkbox(overheatWeapon) [ exec { label("Overheating Weapon") tootip("This weapon can overheat") width(300) labelwidth(280) righttext() } ] checkbox(coolWhileFiring) [ exec { label("Cool While Firing") tootip("This weapon's heat decreases, even when it is being fired") width(300) labelwidth(280) righttext() } ] } floatedit(overheatRate, 1.0, 10.0) [ exec { label("Overheating Rate") tooltip("Percent of heat added per shot for this weapon") } ] floatedit(cooldownRate, 1.0, 10.0) [ exec { label("Cooldown Rate") tooltip("Percent of heat that is bled off per second for this weapon") } ] floatedit(overheatEndVal, 1.0, 10.0) [ exec { label("Overheating Ends At") tooltip("Percent of heat at which, if this weapon is overheating, it is able to fire again") } ] } [ exec { groupBox("Overheating") } ] //////////////////////////////////////// // Damage //////////////////////////////////////// vcontainer { hcontainer { vcontainer { spinedit(damage, 1, 10) [ exec { label("Damage") tooltip("Damage per projectile") } ] floatedit(damageDuration, 1, 10) [ exec { label("Damage Duration") tooltip("Duration that flame damage will be applied in ms") } ] floatedit(damageInterval, 1, 10) [ exec { lable("Damage Interval") tooltip("Frequency for degraded damage in ms") } ] } spinedit(meleeDamage, 1, 10) [ exec { label("Melee") tooltip("Damage per melee hit.") } ] } } [ exec { groupBox("Damage") } ] //////////////////////////////////////// // State Timers //////////////////////////////////////// vcontainer { hcontainer { floatedit(fireTime, 0.05, 0.2) [ exec { label("Fire") tooltip("Rate of fire in seconds per round. Maximum possible rate is 0.05 seconds per round, or 1200 rounds per minute.") } ] floatedit(fireDelay, 0.05, 0.2) [ exec { label("Fire Delay") tooltip("Delay in seconds between pressing the fire button and the weapon actually firing.") } ] } hcontainer { floatedit(meleeTime, 0.05, 0.2) [ exec { label("Melee") tooltip("Rate of fire in seconds per melee attack.") } ] floatedit(meleeDelay, 0.05, 0.2) [ exec { label("Melee Delay") tooltip("Delay in seconds between pressing the fire button and the melee attack actually happening.") } ] } hcontainer { floatedit(meleeChargeTime, 0.05, 0.2) [ exec { label("Melee Charge") tooltip("Rate of fire in seconds per melee charge attack.") } ] floatedit(meleeChargeDelay, 0.05, 0.2) [ exec { label("Melee Charge Delay") tooltip("Delay in seconds between pressing the fire button and the melee charge attack actually happening.") } ] } hcontainer { floatedit(reloadTime, 0.05, 0.2) [ exec { label("Reload") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] } hcontainer { floatedit(reloadAddTime, 0.05, 0.2) [ exec { label("Reload Add") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] } hcontainer { floatedit(dropTime, 0.05, 0.2) [ exec { label("Drop") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] floatedit(raiseTime, 0.05, 0.2) [ exec { label("Raise") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] floatedit(firstRaiseTime, 0.05, 0.2) [ exec { label("First Raise") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] } hcontainer { floatedit(altDropTime, 0.05, 0.2) [ exec { label("Alt Drop") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] floatedit(altRaiseTime, 0.05, 0.2) [ exec { label("Alt Raise") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] } hcontainer { floatedit(quickDropTime, 0.05, 0.2) [ exec { label("Quick Drop") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] floatedit(quickRaiseTime, 0.05, 0.2) [ exec { label("Quick Raise") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] } hcontainer { floatedit(emptyDropTime, 0.05, 0.2) [ exec { label("Empty Drop") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] floatedit(emptyRaiseTime, 0.05, 0.2) [ exec { label("Empty Raise") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] } hcontainer { floatedit(sprintInTime, 0.05, 0.2) [ exec { label("Sprint In") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] floatedit(sprintLoopTime, 0.05, 0.2) [ exec { label("Sprint Loop") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] floatedit(sprintOutTime, 0.05, 0.2) [ exec { label("Sprint Out") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] } hcontainer { floatedit(nightVisionWearTime, 0.05, 0.2) [ exec { label("Nightvision Wear") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] floatedit(nightVisionRemoveTime, 0.05, 0.2) [ exec { label("Nightvision Remove") tooltip("How long this weapon state will last. The viewmodel animations will get scaled to match the times set.") } ] } } [ exec { groupBox("State Timers") } ] //////////////////////////////////////// // Sprint Movement Settings //////////////////////////////////////// vcontainer { hcontainer { floatedit(sprintOfsF, 0.1, 1) [ exec { label("Offset Forward") tooltip("When the player changes to this stance, the viewmodel will slide forward by this amount. (-ive for backward)") } ] floatedit(sprintOfsR, 0.1, 1) [ exec { label("Offset Right") tooltip("When the player changes to this stance, the viewmodel will translate horizontally by this amount. (+/- for left/right respectively)") } ] floatedit(sprintOfsU, 0.1, 1) [ exec { label("Offset Up") tooltip("When the player changes to this stance, the viewmodel will translate vertically by this amount. (+/- for up/down respectively)") } ] } hcontainer { floatedit(sprintRotP, 0.1, 1) [ exec { label("Rot Pitch") tooltip("Viewmodel will pitch by this amount if the player is moving in this stance. (+/- for down/up respectively)") } ] floatedit(sprintRotY, 0.1, 1) [ exec { label("Rot Yaw") tooltip("Viewmodel will yaw by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] floatedit(sprintRotR, 0.1, 1) [ exec { label("Rot Roll") tooltip("Viewmodel will roll by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] } hcontainer { floatedit(sprintBobH, 0.1, 1) [ exec { label("Horiz Bob") tooltip("A multiplier applied to the standard horizontal bob for weapons when sprinting domain 0-10") } ] floatedit(sprintBobV, 0.1, 1) [ exec { label("Vert Bob") tooltip("A multiplier applied to the standard vertical bob for weapons when sprinting domain 0-10") } ] floatedit(sprintScale, 0.01, 1) [ exec { label("MoveSpeed Scale") tooltip("A multiplier applied to xy movement of the viewmodel during sprint higher is faster") } ] } } [ exec { groupBox("Sprint Movement Settings") } ] //////////////////////////////////////// // Stand Movement Settings //////////////////////////////////////// vcontainer { hcontainer { floatedit(standMoveF, 0.1, 1) [ exec { label("Move Forward") tooltip("Viewmodel will translate forward/backward by this amount if the player is moving in this stance. (+/- for forward/backward respectively)") } ] floatedit(standMoveR, 0.1, 1) [ exec { label("Move Right") tooltip("Viewmodel will translate horizontally by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] floatedit(standMoveU, 0.1, 1) [ exec { label("Move Up") tooltip("Viewmodel will translate vertically by this amount if the player is moving in this stance. (+/- for up/down respectively)") } ] } hcontainer { floatedit(standRotP, 0.1, 1) [ exec { label("Rot Pitch") tooltip("Viewmodel will pitch by this amount if the player is moving in this stance. (+/- for down/up respectively)") } ] floatedit(standRotY, 0.1, 1) [ exec { label("Rot Yaw") tooltip("Viewmodel will yaw by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] floatedit(standRotR, 0.1, 1) [ exec { label("Rot Roll") tooltip("Viewmodel will roll by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] } hcontainer { floatedit(standMoveMinSpeed, 1, 10) [ exec { label("Move Min Speed") tooltip("Not used.") } ] floatedit(posMoveRate, 0.1, 1) [ exec { label("Pos Move Rate") tooltip("Controls speed of viewmodel translation while moving in stand and crouch, transitions between stand and crouch, and crouch into prone.") } ] } hcontainer { floatedit(standRotMinSpeed, 1, 10) [ exec { label("Rot Min Speed") tooltip("Not used.") } ] floatedit(posRotRate, 0.1, 1) [ exec { label("Pos Rot Rate") tooltip("Rotational speed of viewmodel in standing and crouching. If this is set in the prone section, a value should be entered here so that the viewmodel is able to rotate back to normal in crouch and stand.") } ] } } [ exec { groupBox("Stand Movement Settings") } ] //////////////////////////////////////// // Crouch Sprinting Movement Settings //////////////////////////////////////// vcontainer { hcontainer { floatedit(duckedSprintOfsF, 0.1, 1) [ exec { label("Offset Forward") tooltip("Viewmodel will translate forward/backward by this amount if the player is moving in this stance. (+/- for forward/backward respectively)") } ] floatedit(duckedSprintOfsR, 0.1, 1) [ exec { label("Offset Right") tooltip("Viewmodel will translate horizontally by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] floatedit(duckedSprintOfsU, 0.1, 1) [ exec { label("Offset Up") tooltip("Viewmodel will translate vertically by this amount if the player is moving in this stance. (+/- for up/down respectively)") } ] } hcontainer { floatedit(duckedSprintRotP, 0.1, 1) [ exec { label("Rot Pitch") tooltip("Viewmodel will pitch by this amount if the player is moving in this stance. (+/- for down/up respectively)") } ] floatedit(duckedSprintRotY, 0.1, 1) [ exec { label("Rot Yaw") tooltip("Viewmodel will yaw by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] floatedit(duckedSprintRotR, 0.1, 1) [ exec { label("Rot Roll") tooltip("Viewmodel will roll by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] } hcontainer { floatedit(duckedSprintBobH, 0.1, 1) [ exec { label("Horiz Bob") tooltip("A multiplier applied to the standard horizontal bob for weapons when crouch sprinting domain 0-10") } ] floatedit(duckedSprintBobV, 0.1, 1) [ exec { label("Vert Bob") tooltip("A multiplier applied to the standard vertical bob for weapons when crouch sprinting domain 0-10") } ] floatedit(duckedSprintScale, 0.01, 1) [ exec { label("MoveSpeed Scale") tooltip("A multiplier applied to xy movement of the viewmodel during crouched sprint higher is faster") } ] } } [ exec { groupBox("Crouch Sprinting Movement Settings") } ] //////////////////////////////////////// // Crouch Movement Settings //////////////////////////////////////// vcontainer { hcontainer { floatedit(duckedMoveF, 0.1, 1) [ exec { label("Move Forward") tooltip("Viewmodel will translate forward/backward by this amount if the player is moving in this stance. (+/- for forward/backward respectively)") } ] floatedit(duckedMoveR, 0.1, 1) [ exec { label("Move Right") tooltip("Viewmodel will translate horizontally by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] floatedit(duckedMoveU, 0.1, 1) [ exec { label("Move Up") tooltip("Viewmodel will translate vertically by this amount if the player is moving in this stance. (+/- for up/down respectively)") } ] } hcontainer { floatedit(duckedRotP, 0.1, 1) [ exec { label("Rot Pitch") tooltip("Viewmodel will pitch by this amount if the player is moving in this stance. (+/- for down/up respectively)") } ] floatedit(duckedRotY, 0.1, 1) [ exec { label("Rot Yaw") tooltip("Viewmodel will yaw by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] floatedit(duckedRotR, 0.1, 1) [ exec { label("Rot Roll") tooltip("Viewmodel will roll by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] } hcontainer { floatedit(duckedOfsF, 0.1, 1) [ exec { label("Offset Forward") tooltip("When the player changes to this stance, the viewmodel will slide forward by this amount. (-ive for backward)") } ] floatedit(duckedOfsR, 0.1, 1) [ exec { label("Offset Right") tooltip("When the player changes to this stance, the viewmodel will translate horizontally by this amount. (+/- for left/right respectively)") } ] floatedit(duckedOfsU, 0.1, 1) [ exec { label("Offset Up") tooltip("When the player changes to this stance, the viewmodel will translate vertically by this amount. (+/- for up/down respectively)") } ] } floatedit(duckedMoveMinSpeed, 1, 10) [ exec { label("Move Min Speed") tooltip("Not used.") } ] floatedit(duckedRotMinSpeed, 1, 10) [ exec { label("Rot Min Speed") tooltip("Not used.") } ] } [ exec { groupBox("Crouch Movement Settings") } ] //////////////////////////////////////// // Prone Movement Settings //////////////////////////////////////// vcontainer { hcontainer { floatedit(proneMoveF, 0.1, 1) [ exec { label("Move Forward") tooltip("Viewmodel will translate forward/backward by this amount if the player is moving in this stance. (+/- for forward/backward respectively)") } ] floatedit(proneMoveR, 0.1, 1) [ exec { label("Move Right") tooltip("Viewmodel will translate horizontally by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] floatedit(proneMoveU, 0.1, 1) [ exec { label("Move Up") tooltip("Viewmodel will translate vertically by this amount if the player is moving in this stance. (+/- for up/down respectively)") } ] } hcontainer { floatedit(proneRotP, 0.1, 1) [ exec { label("Rot Pitch") tooltip("Viewmodel will pitch by this amount if the player is moving in this stance. (+/- for down/up respectively)") } ] floatedit(proneRotY, 0.1, 1) [ exec { label("Rot Yaw") tooltip("Viewmodel will yaw by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] floatedit(proneRotR, 0.1, 1) [ exec { label("Rot Roll") tooltip("Viewmodel will roll by this amount if the player is moving in this stance. (+/- for left/right respectively)") } ] } hcontainer { floatedit(proneOfsF, 0.1, 1) [ exec { label("Offset Forward") tooltip("When the player changes to this stance, the viewmodel will slide forward by this amount. (-ive for backward)") } ] floatedit(proneOfsR, 0.1, 1) [ exec { label("Offset Right") tooltip("When the player changes to this stance, the viewmodel will translate horizontally by this amount. (+/- for left/right respectively)") } ] floatedit(proneOfsU, 0.1, 1) [ exec { label("Offset Up") tooltip("When the player changes to this stance, the viewmodel will translate vertically by this amount. (+/- for up/down respectively)") } ] } hcontainer { floatedit(proneMoveMinSpeed, 1, 10) [ exec { label("Move Min Speed") tooltip("Not used.") } ] floatedit(posProneMoveRate, 0.1, 1) [ exec { label("Pos Move Rate") tooltip("Controls the speed of viewmodel translation while moving in this stance and changing to crouched.") } ] } hcontainer { floatedit(proneRotMinSpeed, 1, 10) [ exec { label("Rot Min Speed") tooltip("Not used.") } ] floatedit(posProneRotRate, 0.1, 1) [ exec { label("Pos Rot Rate") tooltip("Controls the speed of viewmodel rotation while moving in this stance.") } ] } } [ exec { groupBox("Prone Movement Settings") } ] //////////////////////////////////////// // Idle Settings //////////////////////////////////////// vcontainer { hcontainer { spinedit(hipIdleAmount, 1, 10) [ exec { label("Hip Amount") tooltip("Strength of viewmodel wavering motion when in hipfire position.") } ] } hcontainer { floatedit(hipIdleSpeed, 0.1, 1.0) [ exec { label("Hip Speed") tooltip("How fast the viewmodel wavers in hipfire position within Hip Amount.") } ] floatedit(adsIdleSpeed, 0.1, 1.0) [ exec { label("ADS Speed") tooltip("How fast the viewmodel wavers in ADS within ADS Amount.") } ] } hcontainer { floatedit(idleCrouchFactor, 0.01, 0.1) [ exec { label("Crouch Factor") tooltip("Hip/ADS Amount multiplier for reducing viewmodel wavering when in this stance.") } ] floatedit(idleProneFactor, 0.01, 0.1) [ exec { label("Prone Factor") tooltip("Hip/ADS Amount multiplier for reducing viewmodel wavering when in this stance.") } ] } } [ exec { groupBox("Idle Settings") } ] //////////////////////////////////////// // ADS Settings //////////////////////////////////////// vcontainer { hcontainer { floatedit(adsSpread, 0.1, 1) [ exec { label("Spread") tooltip("Size of bullet spread cone when firing in ADS mode. Bullets will project randomly within the confines of the cone.") } ] floatedit(adsAimPitch, 0.1, 1) [ exec { label("Aim Pitch") tooltip("Adjusts the pitch of the viewmodel in ADS. Defaults to 0, -6 is perfectly centered.") } ] } hcontainer { floatedit(adsTransInTime, 0.05, 0.1) [ exec { label("Trans In Time") tooltip("Time it will take to switch from hipfire to ADS.") } ] floatedit(adsTransOutTime, 0.05, 0.1) [ exec { label("Trans Out Time") tooltip("Time it will take to switch from ADS to hipfire.") } ] } hcontainer { // floatedit(adsTransBlendTime, 0.01, 0.1) // [ // exec // { // label("Trans Blend Time") // tooltip("Not used in CoD2.") // } // ] floatedit(adsReloadTransTime, 0.01, 0.1) [ exec { label("Reload Trans Time") tooltip("Time it takes once you start the reload to re-enter ADS. (ie: It allows you to finish up reloading while you enter ADS.") } ] } hcontainer { floatedit(adsCrosshairInFrac, 0.05, 0.1) [ exec { label("Crosshair In Frac") tooltip("Fraction of the hipfire-to-ADS transition time over which the crosshair disappears.") } ] floatedit(adsCrosshairOutFrac, 0.05, 0.1) [ exec { label("Crosshair Out Frac") tooltip("Fraction of the ADS-to-hipfire transition time over which the crosshair appears.") } ] } hcontainer { floatedit(adsZoomFov, 1, 5) [ exec { label("Zoom FOV") tooltip("Field of view when in ADS.") } ] floatedit(adsZoomInFrac, 0.05, 0.1) [ exec { label("Zoom In Frac") tooltip("Fraction of the hipfire-to-ADS transition time over which the FOV zoom-in effect happens.") } ] floatedit(adsZoomOutFrac, 0.05, 0.1) [ exec { label("Zoom Out Frac") tooltip("Fraction of the ADS-to-hipfire transition time over which the FOV zoom-out effect happens.") } ] } hcontainer { floatedit(adsBobFactor, 0.05, 0.1) [ exec { label("Bob Factor") tooltip("Strength of viewmodel bobbing due to player movement when using this weapon.") } ] floatedit(adsViewBobMult, 0.1, 1) [ exec { label("View Bob Mult") tooltip("Bob Factor multiplier for view bobbing due to player movement when using this weapon in ADS.") } ] } hcontainer { floatedit(adsViewErrorMin, 0.1, 1) [ exec { label("Min View Error") tooltip("Min View Error.") } ] floatedit(adsViewErrorMax, 0.1, 1) [ exec { label("Max View Error") tooltip("Max View Error.") } ] } } [ exec { groupBox("ADS Settings") } ] //////////////////////////////////////// // Gun Kick //////////////////////////////////////// vcontainer { hcontainer { floatedit(hipGunKickPitchMin, 1, 5) [ exec { label("Hip Pitch Min") tooltip("Hipfire viewmodel control. +/- sign means 'kick down/up'. Larger absolute numbers increase viewmodel climb/descent. From -100 to 100. Actual viewmodel angle will not exceed Max Gun Pitch.") } ] floatedit(adsGunKickPitchMin, 1, 5) [ exec { label("ADS Pitch Min") tooltip("ADS viewmodel control. +/- sign means 'kick down/up'. Larger absolute numbers increase viewmodel climb/descent. From -100 to 100.") } ] } hcontainer { floatedit(hipGunKickPitchMax, 1, 5) [ exec { label("Hip Pitch Max") tooltip("Hipfire viewmodel control. +/- sign means 'kick down/up'. Larger absolute numbers increase viewmodel climb/descent. From -100 to 100. Actual viewmodel angle will not exceed Max Gun Pitch.") } ] floatedit(adsGunKickPitchMax, 1, 5) [ exec { label("ADS Pitch Max") tooltip("ADS viewmodel control. +/- sign means 'kick down/up'. Larger absolute numbers increase viewmodel climb/descent. From -100 to 100.") } ] } hcontainer { floatedit(hipGunKickYawMin, 1, 5) [ exec { label("Hip Yaw Min") tooltip("Hipfire viewmodel control. +/- sign means 'kick left/right'. Larger absolute numbers increase viewmodel yawing. From -100 to 100. Actual viewmodel angle will not exceed Max Gun Yaw.") } ] floatedit(adsGunKickYawMin, 1, 5) [ exec { label("ADS Yaw Min") tooltip("ADS viewmodel control. +/- sign means 'kick left/right'. Larger absolute numbers increase viewmodel yawing. From -100 to 100.") } ] } hcontainer { floatedit(hipGunKickYawMax, 1, 5) [ exec { label("Hip Yaw Max") tooltip("Hipfire viewmodel control. +/- sign means 'kick left/right'. Larger absolute numbers increase viewmodel yawing. From -100 to 100. Actual viewmodel angle will not exceed Max Gun Yaw.") } ] floatedit(adsGunKickYawMax, 1, 5) [ exec { label("ADS Yaw Max") tooltip("ADS viewmodel control. +/- sign means 'kick left/right'. Larger absolute numbers increase viewmodel yawing. From -100 to 100.") } ] } hcontainer { floatedit(hipGunKickAccel, 1, 10) [ exec { label("Hip Accel") tooltip("Rate at which viewmodel attempts to recenter in hipfire. Directly opposes yaws and pitch accumulation.") } ] floatedit(adsGunKickAccel, 1, 10) [ exec { label("ADS Accel") tooltip("Rate at which viewmodel attempts to recenter in ADS. Directly opposes yaws and pitch accumulation.") } ] } hcontainer { floatedit(hipGunKickSpeedMax, 1, 10) [ exec { label("Hip Speed Max") tooltip("Maximum deflection speed reached by the viewmodel in hipfire.") } ] floatedit(adsGunKickSpeedMax, 1, 10) [ exec { label("ADS Speed Max") tooltip("Maximum deflection speed reached by the viewmodel in ADS.") } ] } hcontainer { floatedit(hipGunKickSpeedDecay, 0.1, 1) [ exec { label("Hip Speed Decay") tooltip("Strength of decay on viewmodel deflection speed in hipfire.") } ] floatedit(adsGunKickSpeedDecay, 0.1, 1) [ exec { label("ADS Speed Decay") tooltip("Strength of decay on viewmodel deflection speed in ADS.") } ] } hcontainer { floatedit(hipGunKickStaticDecay, 0.1, 1) [ exec { label("Hip Static Decay") tooltip("Strength of decay on viewmodel recentering once it has stopped deflecting.") } ] floatedit(adsGunKickStaticDecay, 0.1, 1) [ exec { label("ADS Static Decay") tooltip("Strength of decay on viewmodel recentering once it has stopped deflecting.") } ] } } [ exec { groupBox("Gun Kick Settings") } ] //////////////////////////////////////// // View Kick //////////////////////////////////////// vcontainer { hcontainer { floatedit(hipViewKickPitchMin, 1, 10) [ exec { label("Hip Pitch Min") tooltip("Hipfire view kick control. -/+ sign means 'kick down/up'. Larger absolute numbers increase view kick climb/descent. From -100 to 100.") } ] floatedit(adsViewKickPitchMin, 1, 10) [ exec { label("ADS Pitch Min") tooltip("ADS view kick control. -/+ sign means 'kick down/up'. Larger absolute numbers increase view kick climb/descent. From -100 to 100.") } ] } hcontainer { floatedit(hipViewKickPitchMax, 1, 10) [ exec { label("Hip Pitch Max") tooltip("Hipfire view kick control. -/+ sign means 'kick down/up'. Larger absolute numbers increase view kick climb/descent. From -100 to 100.") } ] floatedit(adsViewKickPitchMax, 1, 10) [ exec { label("ADS Pitch Max") tooltip("ADS view kick control. -/+ sign means 'kick down/up'. Larger absolute numbers increase view kick climb/descent. From -100 to 100.") } ] } hcontainer { floatedit(hipViewKickYawMin, 1, 10) [ exec { label("Hip Yaw Min") tooltip("Hipfire view kick control. -/+ sign means 'kick right/left'. Larger absolute numbers increase view kick yaw. From -100 to 100.") } ] floatedit(adsViewKickYawMin, 1, 10) [ exec { label("ADS Yaw Min") tooltip("ADS view kick control. -/+ sign means 'kick right/left'. Larger absolute numbers increase view kick yaw. From -100 to 100.") } ] } hcontainer { floatedit(hipViewKickYawMax, 1, 10) [ exec { label("Hip Yaw Max") tooltip("Hipfire view kick control. -/+ sign means 'kick right/left'. Larger absolute numbers increase view kick yaw. From -100 to 100.") } ] floatedit(adsViewKickYawMax, 1, 10) [ exec { label("ADS Yaw Max") tooltip("ADS view kick control. -/+ sign means 'kick right/left'. Larger absolute numbers increase view kick yaw. From -100 to 100.") } ] } hcontainer { floatedit(hipViewKickCenterSpeed, 10, 100) [ exec { label("Hip Center Speed") tooltip("Speed with which the view continuously attempts to recenter in hipfire.") } ] floatedit(adsViewKickCenterSpeed, 10, 100) [ exec { label("ADS Center Speed") tooltip("Speed with which the view continuously attempts to recenter in ADS.") } ] } } [ exec { groupBox("View Kick Settings") } ] //////////////////////////////////////// // Sway settings //////////////////////////////////////// vcontainer { hcontainer { floatedit(swayMaxAngle, 0.05, 0.1) [ exec { label("Max Angle") tooltip("Max angle change that will be applied to the hipfire viewmodel sway.") } ] floatedit(adsSwayMaxAngle, 0.05, 0.1) [ exec { label("ADS Max Angle") tooltip("Max angle change that will be applied to the ADS viewmodel sway.") } ] } hcontainer { floatedit(swayLerpSpeed, 0.05, 0.1) [ exec { label("Lerp Speed") tooltip("Speed at which the sway will lerp in hipfire.") } ] floatedit(adsSwayLerpSpeed, 0.05, 0.1) [ exec { label("ADS Lerp Speed") tooltip("Speed at which the sway will lerp in ADS.") } ] } hcontainer { floatedit(swayPitchScale, 0.05, 0.1) [ exec { label("Pitch Scale") tooltip("Amount of pitch change in the viewmodel to apply to the sway pitch in hipfire.") } ] floatedit(adsSwayPitchScale, 0.05, 0.1) [ exec { label("ADS Pitch Scale") tooltip("Amount of pitch change in the viewmodel to apply to the sway pitch in ADS.") } ] } hcontainer { floatedit(swayYawScale, 0.05, 0.1) [ exec { label("Yaw Scale") tooltip("Amount of yaw change in the viewmodel to apply to the sway yaw in hipfire.") } ] floatedit(adsSwayYawScale, 0.05, 0.1) [ exec { label("ADS Yaw Scale") tooltip("Amount of yaw change in the viewmodel to apply to the sway yaw in ADS.") } ] } hcontainer { floatedit(swayHorizScale, 0.05, 0.1) [ exec { label("Horiz Scale") tooltip("Amount of yaw change in the viewmodel to apply to the sway horizontal offset in hipfire.") } ] floatedit(adsSwayHorizScale, 0.05, 0.1) [ exec { label("ADS Horiz Scale") tooltip("Amount of yaw change in the viewmodel to apply to the sway horizontal offset in ADS.") } ] } hcontainer { floatedit(swayVertScale, 0.05, 0.1) [ exec { label("Vert Scale") tooltip("Amount of pitch change in the view model to apply to the sway vertical offset in hipfire.") } ] floatedit(adsSwayVertScale, 0.05, 0.1) [ exec { label("ADS Vert Scale") tooltip("Amount of pitch change in the view model to apply to the sway vertical offset in ADS.") } ] } floatedit(swayShellShockScale, 0.05, 0.1) [ exec { label("Shell Shock Scale") tooltip("This scale gets applied to the weapon sway while you're in shell shock.") } ] } [ exec { groupBox("Sway Settings") } ] //////////////////////////////////////// // AI Settings //////////////////////////////////////// vcontainer { hcontainer { floatedit(fightDist, 1, 100) [ exec { label("Fight Distance") tooltip("Aggro radius. AI using this weapon try to fight enemies detected in this radius. Center of this circle constantly traces along AI's path up to maxdist.") } ] floatedit(maxDist, 1, 100) [ exec { label("Max Distance") tooltip("Effective range radius. AI must get to this distance before opening fire on their target with this weapon.") } ] } fileedit(aiVsAiAccuracyGraph) [ exec { label("AI Vs. AI Accuracy") tooltip("Graph file for in-game editing of the non-linear accuracy curve used by the AI for this weapon against another AI.") reldir("share/raw/accuracy/aivsai/") width(500) } ] fileedit(aiVsPlayerAccuracyGraph) [ exec { label("AI Vs. Player Accuracy") tooltip("Graph file for in-game editing of the non-linear accuracy curve used by the AI for this weapon against the player.") reldir("share/raw/accuracy/aivsplayer/") width(500) } ] } [ exec { groupBox("AI Settings") } ] //////////////////////////////////////// // Reticle Settings //////////////////////////////////////// vcontainer { fileedit(reticleCenter) [ exec { label("Center Reticle") tooltip("Center Reticle.") reldir("pc/main/") width(500) } ] fileedit(reticleSide) [ exec { label("Side Reticle") tooltip("Side Reticle.") reldir("pc/main/") width(500) } ] hcontainer { spinedit(reticleCenterSize, 1, 2) [ exec { label("Center Size") tooltip("Center Size.") } ] spinedit(reticleSideSize, 1, 2) [ exec { label("Side Size") tooltip("Side Size.") } ] } hcontainer { floatedit(hipReticleSidePos, 0.1, 0.2) [ exec { label("Side Position") tooltip("Side Position.") } ] spinedit(reticleMinOfs, 1, 2) [ exec { label("Min Offset") tooltip("Min Offset.") } ] } } [ exec { groupBox("Reticle Settings") } ] //////////////////////////////////////// // XModels //////////////////////////////////////// vcontainer { fileedit(gunModel) [ exec { label("View Gun") reldir("pc/main/xmodel/") width(500) } ] fileedit(handModel) [ exec { label("Default view Hand") reldir("pc/main/xmodel/") width(500) } ] fileedit(worldModel) [ exec { label("World Gun") reldir("pc/main/xmodel/") width(500) } ] checkbox(isHandModelOverridable) [ exec { label("Update Hand Model From Script") tooltip("If checked then the hand model can be updated from script") } ] fileedit(worldClipModel) [ exec { label("World Clip Model") reldir("pc/main/xmodel/") width(500) } ] fileedit(knifeModel) [ exec { label("Knife Model") reldir("share/main/xmodel/") width(500) } ] fileedit(worldKnifeModel) [ exec { label("World Knife Model") reldir("share/main/xmodel/") width(500) } ] } [ exec { groupBox("XModels") } ] //////////////////////////////////////// // XAnims //////////////////////////////////////// vcontainer { fileedit(idleAnim) [ exec { label("Idle") reldir("share/main/xanim/") width(500) } ] fileedit(emptyIdleAnim) [ exec { label("Empty Idle") reldir("share/main/xanim/") width(500) } ] fileedit(fireAnim) [ exec { label("Fire") reldir("share/main/xanim/") width(500) } ] fileedit(lastShotAnim) [ exec { label("Last Shot") reldir("share/main/xanim/") width(500) } ] fileedit(meleeAnim) [ exec { label("Melee") reldir("share/main/xanim/") width(500) } ] fileedit(meleeChargeAnim) [ exec { label("Melee Charge") reldir("share/main/xanim/") width(500) tooltip("The anim played for a melee charge (use for bayonet weapons)") } ] fileedit(reloadAnim) [ exec { label("Reload") reldir("share/main/xanim/") width(500) } ] fileedit(raiseAnim) [ exec { label("Raise") reldir("share/main/xanim/") width(500) } ] fileedit(dropAnim) [ exec { label("Drop") reldir("share/main/xanim/") width(500) } ] fileedit(firstRaiseAnim) [ exec { label("First Raise") reldir("share/main/xanim/") width(500) } ] fileedit(altRaiseAnim) [ exec { label("Alt Raise") reldir("share/main/xanim/") width(500) } ] fileedit(altDropAnim) [ exec { label("Alt Drop") reldir("share/main/xanim/") width(500) } ] fileedit(quickRaiseAnim) [ exec { label("Quick Raise") reldir("share/main/xanim/") width(500) } ] fileedit(quickDropAnim) [ exec { label("Quick Drop") reldir("share/main/xanim/") width(500) } ] fileedit(emptyRaiseAnim) [ exec { label("Empty Raise") reldir("share/main/xanim/") width(500) } ] fileedit(emptyDropAnim) [ exec { label("Empty Drop") reldir("share/main/xanim/") width(500) } ] fileedit(sprintInAnim) [ exec { label("Sprint In") reldir("share/main/xanim/") width(500) } ] fileedit(sprintLoopAnim) [ exec { label("Sprint Loop") reldir("share/main/xanim/") width(500) } ] fileedit(sprintOutAnim) [ exec { label("Sprint Out") reldir("share/main/xanim/") width(500) } ] fileedit(nightVisionWearAnim) [ exec { label("Nightvision Wear") reldir("share/main/xanim/") width(500) } ] fileedit(nightVisionRemoveAnim) [ exec { label("Nightvision Remove") reldir("share/main/xanim/") width(500) } ] fileedit(adsFireAnim) [ exec { label("ADS Fire") reldir("share/main/xanim/") width(500) } ] fileedit(adsLastShotAnim) [ exec { label("ADS Last Shot") reldir("share/main/xanim/") width(500) } ] fileedit(adsUpAnim) [ exec { label("ADS Up") reldir("share/main/xanim/") width(500) } ] fileedit(adsDownAnim) [ exec { label("ADS Down") reldir("share/main/xanim/") width(500) } ] } [ exec { groupBox("XAnims") } ] //////////////////////////////////////// // Particle Effects //////////////////////////////////////// vcontainer { fileedit(viewFlashEffect) [ exec { label("View Flash") reldir("share/raw/") width(500) } ] fileedit(worldFlashEffect) [ exec { label("World Flash") reldir("share/raw/") width(500) } ] fileedit(shellEjectEffect) [ exec { label("Shell Eject") reldir("share/raw/") width(500) } ] fileedit(lastShotEjectEffect) [ exec { label("Last Shot Eject") reldir("share/raw/") width(500) } ] fileedit(worldClipDropEffect) [ exec { label("World Clip Drop Effect") reldir("share/raw/") width(500) } ] } [ exec { groupBox("Effects") } ] //////////////////////////////////////// // Sounds //////////////////////////////////////// vcontainer { hcontainer { edit(pickupSound) [ exec { label("Pickup") width(400) } ] edit(pickupSoundPlayer) [ exec { label("Pickup (Player)") width(400) } ] } hcontainer { edit(ammoPickupSound) [ exec { label("Ammo Pickup") width(400) } ] edit(ammoPickupSoundPlayer) [ exec { label("Ammo Pickup (Player)") width(400) } ] } hcontainer { edit(fireSound) [ exec { label("Fire") width(400) } ] edit(fireSoundPlayer) [ exec { label("Fire (Player)") tooltip("Fire sound used by player. If not defined, player will play normal 'Fire' that is used by the AI.") width(400) } ] } hcontainer { edit(lastShotSound) [ exec { label("Last Shot") width(400) } ] edit(lastShotSoundPlayer) [ exec { label("Last Shot (Player)") tooltip("Last Shot sound used by player. If not defined, player will play normal 'Last Shot' that is used by the AI.") width(400) } ] } hcontainer { edit(emptyFireSound) [ exec { label("Empty Fire") width(400) } ] edit(emptyFireSoundPlayer) [ exec { label("Empty Fire (Player)") tooltip("Empty Fire sound used by player. If not defined, player will play normal 'Empty Fire' that is used by the AI.") width(400) } ] } hcontainer { edit(meleeSwipeSound) [ exec { label("Melee Swipe") width(400) } ] edit(meleeSwipeSoundPlayer) [ exec { label("Melee Swipe (Player)") width(400) } ] } hcontainer { edit(rechamberSound) [ exec { label("Rechamber") width(400) } ] edit(rechamberSoundPlayer) [ exec { label("Rechamber (Player)") tooltip("Rechamber sound used by player. If not defined, player will play normal 'Rechamber' that is used by the AI.") width(400) } ] } hcontainer { edit(reloadSound) [ exec { label("Reload") width(400) } ] edit(reloadSoundPlayer) [ exec { label("Reload (Player)") tooltip("Reload sound used by player. If not defined, player will play normal 'Reload' that is used by the AI.") width(400) } ] } hcontainer { edit(reloadEmptySound) [ exec { label("Reload Empty") width(400) } ] edit(reloadEmptySoundPlayer) [ exec { label("Reload Empty (Player)") tooltip("Reload Empty sound used by player. If not defined, player will play normal 'Reload Empty' that is used by the AI.") width(400) } ] } hcontainer { edit(reloadStartSound) [ exec { label("Reload Start") width(400) } ] edit(reloadStartSoundPlayer) [ exec { label("Reload Start (Player)") tooltip("Reload Start sound used by player. If not defined, player will play normal 'Reload Start' that is used by the AI.") width(400) } ] } hcontainer { edit(reloadEndSound) [ exec { label("Reload End") width(400) } ] edit(reloadEndSoundPlayer) [ exec { label("Reload End (Player)") tooltip("Reload End sound used by player. If not defined, player will play normal 'Reload End' that is used by the AI.") width(400) } ] } hcontainer { edit(altSwitchSound) [ exec { label("Alt Switch") width(400) } ] edit(altSwitchSoundPlayer) [ exec { label("Alt Switch (Player)") width(400) } ] } hcontainer { edit(raiseSound) [ exec { label("Raise") width(400) } ] edit(raiseSoundPlayer) [ exec { label("Raise (Player)") width(400) } ] } hcontainer { edit(firstRaiseSound) [ exec { label("First Raise") width(400) } ] edit(firstRaiseSoundPlayer) [ exec { label("First Raise (Player)") width(400) } ] } hcontainer { edit(putawaySound) [ exec { label("Put Away") width(400) } ] edit(putawaySoundPlayer) [ exec { label("Put Away (Player)") width(400) } ] } hcontainer { edit(nightVisionWearSound) [ exec { label("NightVis Wear") width(400) } ] edit(nightVisionWearSoundPlayer) [ exec { label("NightVis Wear (Player)") width(400) } ] } hcontainer { edit(nightVisionRemoveSound) [ exec { label("NightVis Remove") width(400) } ] edit(nightVisionRemoveSoundPlayer) [ exec { label("NightVis Remove (Player)") width(400) } ] } hcontainer { edit(flameOffLoopSound) [ exec { label("Flame Off Loop") width(400) } ] edit(flameOffLoopSoundPlayer) [ exec { label("Flame Off Loop (Player)") tooltip("Flame Off Loop sound used by player. If not defined, player will play normal 'Flame Off Loop' that is used by the AI.") width(400) } ] } hcontainer { edit(flameIgniteSound) [ exec { label("Flame Ignite") width(400) } ] edit(flameIgniteSoundPlayer) [ exec { label("Flame Ignite (Player)") tooltip("Flame Ignite sound used by player. If not defined, player will play normal 'Flame Ignite' that is used by the AI.") width(400) } ] } hcontainer { edit(flameOnLoopSound) [ exec { label("Flame On Loop") width(400) } ] edit(flameOnLoopSoundPlayer) [ exec { label("Flame On Loop (Player)") tooltip("Flame On Loop sound used by player. If not defined, player will play normal 'Flame On Loop' that is used by the AI.") width(400) } ] } hcontainer { edit(flameCooldownSound) [ exec { label("Flame Cooldown") width(400) } ] edit(flameCooldownSoundPlayer) [ exec { label("Flame Cooldown (Player)") tooltip("Flame Cooldown sound used by player. If not defined, player will play normal 'Flame Cooldown' that is used by the AI.") width(400) } ] } edit(noteTrackSoundA) [ exec { label("Note Track A") width(500) } ] edit(noteTrackSoundB) [ exec { label("Note Track B") width(500) } ] edit(noteTrackSoundC) [ exec { label("Note Track C") width(500) } ] edit(noteTrackSoundD) [ exec { label("Note Track D") width(500) } ] } [ exec { groupBox("Sound") } ] //////////////////////////////////////// // Rumbles //////////////////////////////////////// vcontainer { scrollbox(fireRumble) [ exec { width(500) } ] scrollbox(meleeImpactRumble) [ exec { width(500) } ] } [ exec { groupBox("Rumbles") } ] //////////////////////////////////////// // Icons //////////////////////////////////////// vcontainer { hcontainer { fileedit(hudIcon) [ exec { label("Hud") reldir("pc/main/") width(500) } ] scrollbox(hudIconRatio) [ exec { label(" Aspect:") width(110) labelwidth(60) } ] } hcontainer { fileedit(modeIcon) [ exec { label("Mode") reldir("pc/main/") width(500) } ] scrollbox(modeIconRatio) [ exec { label(" Aspect:") width(110) labelwidth(60) } ] } hcontainer { fileedit(killIcon) [ exec { label("Kill") reldir("pc/main/") width(500) } ] scrollbox(killIconRatio) [ exec { label(" Aspect:") width(110) labelwidth(60) } ] } hcontainer { fileedit(dpadIcon) [ exec { label("DPad Icon") reldir("pc/main/") width(500) } ] scrollbox(dpadIconRatio) [ exec { label(" Aspect:") width(110) labelwidth(60) } ] } hcontainer { checkbox(wideListIcon) [ exec { label("Wide List Icon") tooltip("Used for weapons that use wide HUD icons when drawing cursor hints and MP weapon selection. (Rifle vs. Grenade)") righttext() } ] checkbox(wideKillIcon) [ exec { label("Wide Kill Icon") tooltip("Used for weapons that have a wide kill icon in MP. (Rifle vs Grenade).") righttext() } ] checkbox(flipKillIcon) [ exec { label("Flip Kill Icon") tooltip("Used for weapons that need to have their kill icon horizontally flipped before displaying. (For MP obituaries).") righttext() } ] } } [ exec { groupBox("2D Icons") } ] //////////////////////////////////////// // Bounce factors //////////////////////////////////////// hcontainer { vcontainer { floatedit(parallelDefaultBounce, 0.01, 0.1) [ exec { label("default") } ] floatedit(parallelBarkBounce, 0.01, 0.1) [ exec { label("bark") } ] floatedit(parallelBrickBounce, 0.01, 0.1) [ exec { label("brick") } ] floatedit(parallelCarpetBounce, 0.01, 0.1) [ exec { label("carpet") } ] floatedit(parallelClothBounce, 0.01, 0.1) [ exec { label("cloth") } ] floatedit(parallelConcreteBounce, 0.01, 0.1) [ exec { label("concrete") } ] floatedit(parallelDirtBounce, 0.01, 0.1) [ exec { label("dirt") } ] floatedit(parallelFleshBounce, 0.01, 0.1) [ exec { label("flesh") } ] floatedit(parallelFoliageBounce, 0.01, 0.1) [ exec { label("foliage") } ] floatedit(parallelGlassBounce, 0.01, 0.1) [ exec { label("glass") } ] floatedit(parallelGrassBounce, 0.01, 0.1) [ exec { label("grass") } ] floatedit(parallelGravelBounce, 0.01, 0.1) [ exec { label("gravel") } ] floatedit(parallelIceBounce, 0.01, 0.1) [ exec { label("ice") } ] floatedit(parallelMetalBounce, 0.01, 0.1) [ exec { label("metal") } ] floatedit(parallelMudBounce, 0.01, 0.1) [ exec { label("mud") } ] floatedit(parallelPaperBounce, 0.01, 0.1) [ exec { label("paper") } ] floatedit(parallelPlasterBounce, 0.01, 0.1) [ exec { label("plaster") } ] floatedit(parallelRockBounce, 0.01, 0.1) [ exec { label("rock") } ] floatedit(parallelSandBounce, 0.01, 0.1) [ exec { label("sand") } ] floatedit(parallelSnowBounce, 0.01, 0.1) [ exec { label("snow") } ] floatedit(parallelWaterBounce, 0.01, 0.1) [ exec { label("water") } ] floatedit(parallelWoodBounce, 0.01, 0.1) [ exec { label("wood") } ] floatedit(parallelAsphaltBounce, 0.01, 0.1) [ exec { label("asphalt") } ] floatedit(parallelCeramicBounce, 0.01, 0.1) [ exec { label("ceramic") } ] floatedit(parallelPlasticBounce, 0.01, 0.1) [ exec { label("plastic") } ] floatedit(parallelRubberBounce, 0.01, 0.1) [ exec { label("rubber") } ] floatedit(parallelCushionBounce, 0.01, 0.1) [ exec { label("cushion") } ] floatedit(parallelFruitBounce, 0.01, 0.1) [ exec { label("fruit") } ] floatedit(parallelPaintedMetalBounce, 0.01, 0.1) [ exec { label("painted metal") } ] } [ exec { groupBox("Parallel Bounce Factors") } ] vcontainer { floatedit(perpendicularDefaultBounce, 0.01, 0.1) [ exec { label("default") } ] floatedit(perpendicularBarkBounce, 0.01, 0.1) [ exec { label("bark") } ] floatedit(perpendicularBrickBounce, 0.01, 0.1) [ exec { label("brick") } ] floatedit(perpendicularCarpetBounce, 0.01, 0.1) [ exec { label("carpet") } ] floatedit(perpendicularClothBounce, 0.01, 0.1) [ exec { label("cloth") } ] floatedit(perpendicularConcreteBounce, 0.01, 0.1) [ exec { label("concrete") } ] floatedit(perpendicularDirtBounce, 0.01, 0.1) [ exec { label("dirt") } ] floatedit(perpendicularFleshBounce, 0.01, 0.1) [ exec { label("flesh") } ] floatedit(perpendicularFoliageBounce, 0.01, 0.1) [ exec { label("foliage") } ] floatedit(perpendicularGlassBounce, 0.01, 0.1) [ exec { label("glass") } ] floatedit(perpendicularGrassBounce, 0.01, 0.1) [ exec { label("grass") } ] floatedit(perpendicularGravelBounce, 0.01, 0.1) [ exec { label("gravel") } ] floatedit(perpendicularIceBounce, 0.01, 0.1) [ exec { label("ice") } ] floatedit(perpendicularMetalBounce, 0.01, 0.1) [ exec { label("metal") } ] floatedit(perpendicularMudBounce, 0.01, 0.1) [ exec { label("mud") } ] floatedit(perpendicularPaperBounce, 0.01, 0.1) [ exec { label("paper") } ] floatedit(perpendicularPlasterBounce, 0.01, 0.1) [ exec { label("plaster") } ] floatedit(perpendicularRockBounce, 0.01, 0.1) [ exec { label("rock") } ] floatedit(perpendicularSandBounce, 0.01, 0.1) [ exec { label("sand") } ] floatedit(perpendicularSnowBounce, 0.01, 0.1) [ exec { label("snow") } ] floatedit(perpendicularWaterBounce, 0.01, 0.1) [ exec { label("water") } ] floatedit(perpendicularWoodBounce, 0.01, 0.1) [ exec { label("wood") } ] floatedit(perpendicularAsphaltBounce, 0.01, 0.1) [ exec { label("asphalt") } ] floatedit(perpendicularCeramicBounce, 0.01, 0.1) [ exec { label("ceramic") } ] floatedit(perpendicularPlasticBounce, 0.01, 0.1) [ exec { label("plastic") } ] floatedit(perpendicularRubberBounce, 0.01, 0.1) [ exec { label("rubber") } ] floatedit(perpendicularCushionBounce, 0.01, 0.1) [ exec { label("cushion") } ] floatedit(perpendicularFruitBounce, 0.01, 0.1) [ exec { label("fruit") } ] floatedit(perpendicularPaintedMetalBounce, 0.01, 0.1) [ exec { label("painted metal") } ] } [ exec { groupBox("Perpendicular Bounce Factors") } ] } //////////////////////////////////////// // Depth of Field Settings //////////////////////////////////////// vcontainer { hcontainer { floatedit(adsDofStart, 0.1, 0.5) [ exec { label("ADS Start") } ] floatedit(adsDofEnd, 0.1, 0.5) [ exec { label("ADS End") } ] } hcontainer { floatedit(hipDofStart, 0.1, 0.5) [ exec { label("Hip Start") } ] floatedit(hipDofEnd, 0.1, 0.5) [ exec { label("Hip End") } ] } } [ exec { groupBox("Depth of Field Settings") } ] }