#name "grenadeweapon" #dll "all" "configstringconvert" #target_dir "weapons/sp/" // target location 1 (single-player) #target_dir "weapons/mp/" // target location 2 (multi-player) #file_ext "*" #version 8 // 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 weaons // 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 { "grenade" } weaponType enum { "grenade" } weaponClass enum { "None", "Smoke Grenade", "Frag Grenade" } offhandClass enum { "none" } weaponSlot string displayName string AIOverlayDescription string modeName enum { "none", "other", "stickgrenade" } playerAnimType string gunModel string handModel int 1 0 1 isHandModelOverridable string idleAnim string emptyIdleAnim string fireAnim string holdFireAnim string lastShotAnim string meleeAnim string raiseAnim string dropAnim string altRaiseAnim string altDropAnim 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 float 1 0 5 moveSpeedScale int 0 0 1000 damage int 0 0 1000 meleeDamage float 0.1 0 10.0 fireDelay float 0.25 0.05 10.0 meleeDelay float 0.1 0.0 10.0 fireTime float 0.1 0.0 10.0 holdFireTime float 0.7 0.0 10.0 meleeTime float 2.0 0.0 10.0 reloadTime 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 4 0 100 fuseTime int 1 0 1 clipOnly int 80 0 150 hipIdleAmount float 0.5 0 1 idleCrouchFactor float 0.15 0 1 idleProneFactor 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 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 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 // info for filling in the gitem_t for the weapon string worldModel string hudIcon string modeIcon string ammoName int 100 0 999 maxAmmo int 0 0 999 startAmmo string clipName int 10 0 999 clipSize string sharedAmmoCapName int 0 0 999 sharedAmmoCap int 0 0 999 dropAmmoMin int 0 0 999 dropAmmoMax // client-side info //string viewFlashEffect //string worldFlashEffect string pickupSound string ammoPickupSound string pullbackSound string fireSound string lastShotSound string reloadSound string altSwitchSound string raiseSound string putawaySound 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 // additional weapon info string altWeapon int 1 0 1 twoHanded int 0 0 1 cookOffHold int 1 0 1 wideListIcon string killIcon int 1 0 1 wideKillIcon int 1 0 1 flipKillIcon // settings for view model position movement float 0 -100 100 standMoveF float 1 -100 100 standMoveR float -1.5 -100 100 standMoveU float 0 -100 100 standRotP float 0 -100 100 standRotY float 0 -100 100 standRotR float -2 -100 100 duckedOfsF float 2 -100 100 duckedOfsR float -0.2 -100 100 duckedOfsU float 0 -100 100 duckedMoveF float 1 -100 100 duckedMoveR float -1.5 -100 100 duckedMoveU float 0 -100 100 duckedRotP float 0 -100 100 duckedRotY float 0 -100 100 duckedRotR float -6 -100 100 proneOfsF float 3.5 -100 100 proneOfsR float 0.8 -100 100 proneOfsU float 0 -100 100 proneMoveF float 1 -100 100 proneMoveR float -1.5 -100 100 proneMoveU float 0 -100 100 proneRotP float 0 -100 100 proneRotY float 0 -100 100 proneRotR float 4 0 100 posMoveRate float 10 0 100 posProneMoveRate float 110 0 1000 standMoveMinSpeed float 60 0 1000 duckedMoveMinSpeed float 0 0 1000 proneMoveMinSpeed float 5 0 100 posRotRate float 10 0 100 posProneRotRate float 110 0 1000 standRotMinSpeed float 60 0 1000 duckedRotMinSpeed float 0 0 1000 proneRotMinSpeed // additional grenade weapon info int 300 0 10000 explosionRadius int 10 0 10000 explosionInnerDamage int 10 0 10000 explosionOuterDamage int 600 0 10000 projectileSpeed int 0 0 10000 projectileSpeedUp string projectileModel enum { "grenade", "rocket", "molotov", "none" } projExplosionType string projExplosionEffect string projExplosionSound enum { "none", "grenade", "rocket" } projectileTrail float 1.0 0 100 projectileTrailTime int 32 1 1000 projectileTrailRadius int 0 0 1 projImpactExplode vcontainer { scrollbox(targetFolder) [ exec { width(300) } ] hcontainer { edit(displayName) edit(modeName) } scrollbox(playerAnimType) [ exec { label("Player Anim Type") tooltip("Select an Player Anim Type - specifies \"playerAnimType\" in playeranim.script") visible(targetFolder == "2: Multi-Player") } ] hcontainer { edit(AIOverlayDescription) } scrollbox(offhandClass) [ exec { label("Offhand Class") width(270) } ] //////////////////////////////////////// // 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)") } ] hcontainer { floatedit(moveSpeedScale, 0.1, 1) } hcontainer { spinedit(damage, 1, 10) spinedit(meleeDamage, 1, 10) } checkbox(projImpactExplode) hcontainer { spinedit(explosionInnerDamage, 1, 10) spinedit(explosionOuterDamage, 1, 10) spinedit(explosionRadius, 10, 50) } hcontainer { spinedit(projectileSpeed, 10, 100) spinedit(projectileSpeedUp, 10, 100) floatedit(fuseTime, 0.1, 1) } checkbox(cookOffHold) checkbox(twoHanded) checkbox(wideListIcon) fileedit(killIcon) [ exec { reldir("pc/main/") } ] checkbox(wideKillIcon) checkbox(flipKillIcon) fileedit(projectileModel) [ exec { reldir("pc/main/") } ] hcontainer { scrollbox(projExplosionType) fileedit(projExplosionEffect) [ exec { reldir("pc/main/") width(400) } ] } edit(projExplosionSound) hcontainer { scrollbox(projectileTrail) floatedit(projectileTrailTime, 0.1, 1) spinedit(projectileTrailRadius, 1, 5) } hcontainer { floatedit(fireDelay, 0.05, 0.2) floatedit(meleeDelay, 0.05, 0.2) } hcontainer { floatedit(fireTime, 0.05, 0.2) floatedit(meleeTime, 0.05, 0.2) } hcontainer { floatedit(holdFireTime, 0.05, 0.2) } hcontainer { floatedit(reloadTime, 0.05, 0.2) } hcontainer { floatedit(dropTime, 0.05, 0.2) floatedit(raiseTime, 0.05, 0.2) } hcontainer { floatedit(altDropTime, 0.05, 0.2) floatedit(altRaiseTime, 0.05, 0.2) } hcontainer { floatedit(idleCrouchFactor, 0.01, 0.1) floatedit(idleProneFactor, 0.01, 0.1) } spinedit(hipIdleAmount, 1, 10) 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") } ] } [ 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") } ] } [ exec { groupBox("Perpendicular Bounce Factors") } ] } hcontainer { floatedit(swayMaxAngle, 0.05, 0.1) [ exec { width(270) // optional custom width labelwidth(170) // optional custom width } ] } hcontainer { floatedit(swayLerpSpeed, 0.05, 0.1) [ exec { width(270) // optional custom width labelwidth(170) // optional custom width } ] } hcontainer { floatedit(swayPitchScale, 0.05, 0.1) [ exec { width(270) // optional custom width labelwidth(170) // optional custom width } ] } hcontainer { floatedit(swayYawScale, 0.05, 0.1) [ exec { width(270) // optional custom width labelwidth(170) // optional custom width } ] } hcontainer { floatedit(swayHorizScale, 0.05, 0.1) [ exec { width(270) // optional custom width labelwidth(170) // optional custom width } ] } hcontainer { floatedit(swayVertScale, 0.05, 0.1) [ exec { width(270) // optional custom width labelwidth(170) // optional custom width } ] } floatedit(swayShellShockScale, 0.05, 0.1) [ exec { width(270) // optional custom width labelwidth(170) // optional custom width } ] // seperator hcontainer { } fileedit(worldModel) [ exec { reldir("pc/main/") } ] fileedit(hudIcon) [ exec { reldir("pc/main/") } ] fileedit(modeIcon) [ exec { reldir("pc/main/") } ] hcontainer { edit(ammoName) spinedit(maxAmmo, 10, 20) spinedit(startAmmo, 1, 10) } hcontainer { edit(clipName) spinedit(clipSize, 1, 10) checkbox(clipOnly) } hcontainer { edit(sharedAmmoCapName) spinedit(sharedAmmoCap, 10, 20) } hcontainer { spinedit(dropAmmoMin, 1, 10) [ exec { width(270) // optional custom width labelwidth(170) // optional custom width } ] spinedit(dropAmmoMax, 1, 10) [ exec { width(270) // optional custom width labelwidth(170) // optional custom width } ] } fileedit(reticleCenter) [ exec { reldir("pc/main/") } ] // fileedit(reticleSide) // [ // exec // { // reldir("pc/main/") // } // ] // hcontainer // { spinedit(reticleCenterSize, 1, 2) // spinedit(reticleSideSize, 1, 2) // spinedit(reticleMinOfs, 1, 2) // } // seperator hcontainer { } // fileedit(viewFlashEffect) // [ // exec // { // reldir("pc/main/") // } // ] // fileedit(worldFlashEffect) // [ // exec // { // reldir("pc/main/") // } // ] edit(pickupSound) edit(ammoPickupSound) edit(pullbackSound) edit(fireSound) edit(lastShotSound) edit(reloadSound) edit(altSwitchSound) edit(raiseSound) edit(putawaySound) edit(noteTrackSoundA) edit(noteTrackSoundB) edit(noteTrackSoundC) edit(noteTrackSoundD) // seperator hcontainer { } edit(altWeapon) // seperator hcontainer { } hcontainer { floatedit(standMoveF, 0.1, 1) floatedit(standMoveR, 0.1, 1) floatedit(standMoveU, 0.1, 1) } hcontainer { floatedit(standRotP, 0.1, 1) floatedit(standRotY, 0.1, 1) floatedit(standRotR, 0.1, 1) } hcontainer { floatedit(duckedOfsF, 0.1, 1) floatedit(duckedOfsR, 0.1, 1) floatedit(duckedOfsU, 0.1, 1) } hcontainer { floatedit(duckedMoveF, 0.1, 1) floatedit(duckedMoveR, 0.1, 1) floatedit(duckedMoveU, 0.1, 1) } hcontainer { floatedit(duckedRotP, 0.1, 1) floatedit(duckedRotY, 0.1, 1) floatedit(duckedRotR, 0.1, 1) } hcontainer { floatedit(proneOfsF, 0.1, 1) floatedit(proneOfsR, 0.1, 1) floatedit(proneOfsU, 0.1, 1) } hcontainer { floatedit(proneMoveF, 0.1, 1) floatedit(proneMoveR, 0.1, 1) floatedit(proneMoveU, 0.1, 1) } hcontainer { floatedit(proneRotP, 0.1, 1) floatedit(proneRotY, 0.1, 1) floatedit(proneRotR, 0.1, 1) } hcontainer { floatedit(posMoveRate, 0.1, 1) floatedit(posProneMoveRate, 0.1, 1) } hcontainer { floatedit(standMoveMinSpeed, 1, 10) [ exec { width(210) labelwidth(150) } ] floatedit(duckedMoveMinSpeed, 1, 10) [ exec { width(210) labelwidth(150) } ] floatedit(proneMoveMinSpeed, 1, 10) [ exec { width(210) labelwidth(150) } ] } hcontainer { floatedit(posRotRate, 0.1, 1) floatedit(posProneRotRate, 0.1, 1) } hcontainer { floatedit(standRotMinSpeed, 1, 10) [ exec { width(210) labelwidth(150) } ] floatedit(duckedRotMinSpeed, 1, 10) [ exec { width(210) labelwidth(150) } ] floatedit(proneRotMinSpeed, 1, 10) [ exec { width(210) labelwidth(150) } ] } fileedit(gunModel) [ exec { reldir("pc/main/xmodel/") width(500) } ] fileedit(handModel) [ exec { label("Default Hand Model") 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") width(30) } ] fileedit(idleAnim) [ exec { reldir("pc/main/xanim/") width(500) } ] fileedit(emptyIdleAnim) [ exec { reldir("pc/main/xanim/") width(500) } ] fileedit(fireAnim) [ exec { reldir("pc/main/xanim/") width(500) } ] fileedit(holdFireAnim) [ exec { reldir("pc/main/xanim/") width(500) } ] fileedit(lastShotAnim) [ exec { reldir("pc/main/xanim/") width(500) } ] fileedit(meleeAnim) [ exec { reldir("pc/main/xanim/") width(500) } ] fileedit(raiseAnim) [ exec { reldir("pc/main/xanim/") width(500) } ] fileedit(dropAnim) [ exec { reldir("pc/main/xanim/") width(500) } ] fileedit(altRaiseAnim) [ exec { reldir("pc/main/xanim/") width(500) } ] fileedit(altDropAnim) [ exec { reldir("pc/main/xanim/") width(500) } ] }