Quote: " Just a quick follow-up question so I understand this right: Are some properties of weapons (in this case autofire) tied to the animation commands parameters? I suppose it makes sense to keep animations and weapon properties in sync though."
Relatively few properties are tied to animation range entries like that. In general, there is a default setting for everything and it's only required to have the line in gunspec if doing something contrary to the default. A gunspec has a minimum length of maybe 40-60 lines but more complex and polished weapons can use up the 500 line read-limit. The read-limit has expanded a few times over the years to accommodate additional settings and features but there are several cases where assumptions are made based on info provided in order to keep the lines to a minimum. Such is the case with full-auto mode.
This may or may not be helpful for your learning efforts... It's one of my gunspecs with additional comments beyond what can be found with the stock weapons:
;//AKM Assault Rifle weapon spec Calibrated for Weapon FOV=70+, Horizontal FOV=110
;//Press [switchtoalt] to switch fire modes (semi-auto/full-auto firing)
;//Press [melee key] to melee
;//Right-Click to Aim Down Sights
;// Ammunition
alternateisray = 1 ;enables alt-fire ability. 0 for projectile/flak, 1 for raycast bullet
poolammo = Errant AI\762X39
alt poolammo = Errant AI\762X39
shareloadedammo = 1 ; weapon shares the same in-gun ammo between fire modes
reloadqty = 30 ;max number of cartridges in magazine
chamberedround = 1 ;max number of chambered cartridges
alt reloadqty = 30 ;max number of cartridges in alt-mode magazine
alt chamberedround = 1 ;max number of chambered cartridges in alt-mode
noautoreload = 1 ;disables automated reloading when out of in-gun ammo
nofullreload = 1 ;disables the ability to reload when weapon is fully topped up with ammo
forcezoomout = 1 ;forces weapon to leave aiming mode when out of ammo
addtospare = 1 ;collected ammo is added to pooled ammo instead of being added directly to weapon's magazine
alt noautoreload = 1
alt nofullreload = 1
alt forcezoomout = 1
alt addtospare = 1
npcignorereload = 0 ;npc spawns with empty weapon
;// Range and damage
damage = 40 ;base damage per hitscan projectile
range = 15748 ;maximum range in inches
force = 50 ;amount of force applied to dynamic objects upon bullet impact
scorchtype = 1 ;bullet hole decal type (currently n/a)
noscorch = 0 ;disables use of bullet hole decals (currently n/a)
alt damage = 40
alt range = 15748
alt force = 50
alt scorchtype = 1
alt noscorch = 0
melee damage = 5 ;melee damage value
melee range = 70 ;melee attack range in inches
melee force = 300 ;amount of force applied to dynamic objects upon melee impact
melee noscorch = 1 ;disables use of bullet hole decals for melee attack (currently n/a)
alt melee damage = 5
alt melee range = 70
alt melee force = 300
alt melee noscorch = 1
;// Accuracy
simplezoom = 1 ;value of 1 or higher enables aiming and sets magnification strength while aiming
accuracy = 300 ;bullet spread
runacc = 700 ;bullet spread while sprinting
simplezoomacc = 100 ;intensity of breath distruption while aiming
zoomaccuracy = 40 ;bullet spread while aiming
zoomaccuracybreathhold = 1 ;enables or disables ability to steady aiming using [zoomholdbreath] key defined in setup.ini
zoomaccuracybreath = 5000 ;maximum duration in ms that aim can be steadied before needing to take breath and try again
zoomaccuracyheld = 1 ;intensity of breath disruption while aim is steadied
alt simplezoom = 1
alt accuracy = 300
alt runacc = 700
alt simplezoomacc = 10
alt zoomaccuracy = 40
alt zoomaccuracybreathhold = 1
alt zoomaccuracybreath = 5000
alt zoomaccuracyheld = 1
;// Reliability
;Needs a rewrite of this feature to be usable. Currently very flawed.
overheatafter = 1
cooldown = 1000
jamchance = 1000
alt overheatafter = 1
alt cooldown = 1000
alt jamchance = 10
;// HUD handling characteristics - Activate plrspeedmods in setup.ini
zoomwalkspeed = 0.7 ;walk speed multiplier while aiming
zoomturnspeed = 0.6 ;turn speed multiplier while aiming
plrmovespeedmod = 1.0 ;move speed multiplier
plremptyspeedmod = 1.0 ;move speed multiplier with empty weapon
plrturnspeedmod = 1.0 ;turn speed multiplier
plrjumpspeedmod = 1.0 ;jump inertia multiplier
plrreloadspeedmod = 0.5 ;move speed multiplier while reloading
alt zoomwalkspeed = 0.7
alt zoomturnspeed = 0.6
alt plrmovespeedmod = 1.0
alt plremptyspeedmod = 1.0
alt plrturnspeedmod = 1.0
alt plrjumpspeedmod = 1.0
alt plrreloadspeedmod = 0.5
recoily = 30 ;recoil vertical disturbance
recoilyreturn = 90 ;recoil vertical return percentage
recoilx = 7 ;recoil horizontal disturbance
recoilxreturn = 85 ;recoil horizontal return percentage
zoomrecoily = 15 ;recoil vertical disturbance while aiming
zoomrecoilyreturn = 95 ;recoil vertical return percentage while aiming
zoomrecoilx = 2 ;recoil horizontal disturbance while aiming
zoomrecoilxreturn = 95 ;recoil horizontal return percentage while aiming
zoomgunlagspeed = 25 ;hud model drift inertia while aiming
zoomgunlagxmax = 10 ;hud model max vertical drift while aiming
zoomgunlagymax = 10 ;hud model max horizontal drift while aiming
gunlagspeed = 30 ;hud model drift inertia
gunlagxmax = 10 ;hud model max vertical drift
gunlagymax = 18 ;hud model max horizontal drift
simplezoomspeed = 10 ;speed of runy offset or non-ainmated zoomto/from transition
alt recoily = 30
alt recoilyreturn = 90
alt recoilx = 7
alt recoilxreturn = 85
alt zoomrecoily = 15
alt zoomrecoilyreturn = 95
alt zoomrecoilx = 2
alt zoomrecoilxreturn = 95
alt zoomgunlagspeed = 25
alt zoomgunlagxmax = 10
alt zoomgunlagymax = 10
alt gunlagspeed = 30
alt gunlagxmax = 10
alt gunlagymax = 18
alt simplezoomspeed = 10
disablerunandshoot = 0 ;disables ability to fire weapon while sprinting
alt disablerunandshoot = 0
reloadspeed = 110 ;reload animation playback speed default 100
alt reloadspeed = 110
;// Visuals
textured = gun_D.dds
effect = effectbank\reloaded\weapon_bone.fx
weapontype = 5
statuspanelcode = 100
vweaptex = AKM
decal = muzzleflash4
decalforward = 100
;//Model positions
horiz = 0 ;player weapon model horizontal position offset
vert = 0 ;player weapon model vertical position offset
forward = 0 ;player weapon model depth position offset
runy = -1 ;player weapon model vertical offset while sprinting
simplezoommod = 2 ;player weapon model fov adjustment while aiming to avoid near clip
simplezoomx = -0.01 ;player weapon model horizontal position offset while aiming - zeroed @ 85 weapon fov
simplezoomy = 0.12 ;player weapon model vertical position offset while aiming - zeroed @ 85 weapon fov
alt horiz = 0
alt vert = 0
alt forward = 0
alt runy = -2
alt simplezoommod = 2
alt simplezoomx = -0.01
alt simplezoomy = 0.12
;// Muzzleflash
usespotlighting = 1 ;enables dynamic muzzleflash light effect when firing
alt usespotlighting = 1
muzzlecolorR = 252
muzzlecolorG = 150
muzzlecolorB = 54
alt muzzlecolorR = 252 ;muzzleflash light red value
alt muzzlecolorG = 150 ;muzzleflash light green value
alt muzzlecolorB = 54 ;muzzleflash light blue value
muzzleflash = 4 ;ID of muzzleflash decal when firing
simplezoomflash = 1 ;enables muzzleflash when firing while aimed
muzzlesize = 120 ;scale of muzzleflash decal
smokedecal = gunsmoke ;ID of smoke decal when firing
alignx = 4 ;muzzleflash decal horizontal screenspace offset from center
aligny = -3 ;muzzleflash decal vertical screenspace offset from center
alignz = 40 ;muzzleflash decal distance from camera in inches
zoomalignx = 0 ;muzzleflash decal horizontal screenspace offset from center when aiming
zoomaligny = -3 ;muzzleflash decal vertical screenspace offset from center when aiming
zoomalignz = 30 ;muzzleflash decal distance from camera in inches when aiming
alt muzzleflash = 4
alt simplezoomflash = 1
alt muzzlesize = 120
alt smokedecal = gunsmoke
alt alignx = 4
alt aligny = -3
alt alignz = 40
alt zoomalignx = 0
alt zoomaligny = -3
alt zoomalignz = 30
;// Brass System
brass = 762 ;brass model ID for dynamic ejecting cartridge cases
brasslife = 40 ;brass model instance lifespan before despawning
brassangle = 70 ;base relative bearing for brass ejection
brassanglerand = 20 ;brassangle randomized deviation maximum
brassspeed = 20 ;brass ejection impulse
brassspeedrand = 10 ;brassspeed randomized deviation maximum
brassupward = 5 ;brass ejection vertical impulse
brassupwardrand = 5 ;brassupward randomized deviation maximum
brassrotx = 500 ;brass model x axis spin rate
brassrotxrand = 100 ;brassrotx randomized deviation maximum
brassroty = 1000 ;brass model y axis spin rate
brassrotyrand = 200 ;brassroty randomized deviation maximum
brassrotz = 0 ;brass model z axis spin rate
brassrotzrand = 0 ;brassrotz randomized deviation maximum
alt brass = 762
alt brasslife = 40
alt brassangle = 70
alt brassanglerand = 20
alt brassspeed = 20
alt brassspeedrand = 10
alt brassupward = 5
alt brassupwardrand = 5
alt brassrotx = 500
alt brassrotxrand = 100
alt brassroty = 1000
alt brassrotyrand = 200
alt brassrotz = 0
alt brassrotzrand = 0
;// HUD ANIMATION (timeline 0-1286)
keyframe ratio = 1 ;animation multiplier for weapons exported at other than 30 fps
simplezoomanim = 1 ;activates use of defined aiming mode animations
alt simplezoomanim = 1
useempty = 1 ;activates use of defined empty weapon animations
alt useempty = 1
disablemovespeedmod = 0
alt disablemovespeedmod = 0
;select = 323,333 ;fast select
select = 819,855 ;equip select
idle = 10,60
move = 116,156
run = 211,251
;runto = 204,210 ;transition idle to run (currently n/a)
;runfrom = 253,259 ;transition run to idle (currently n/a)
;empty runto = 262,268 ;transition empty idle to empty run (currently n/a)
;empty runfrom = 311,317 ;transition empty run to empty idle (currently n/a)
melee start = 367,371
melee end = 372,390
start fire = 858,859
end fire = 860,861
start fire 2 = 862,863
end fire 2 = 864,865
start fire 3 = 866,867
end fire 3 = 868,869
automatic fire = 872,879
;finish fire = 882,890 ;transition fire to empty idle
last start fire = 882,883
last end fire = 884,890
dryfire = 891,897
reload = 430,503 ;opportunistic reload
putaway = 334,343
empty select = 344,354
empty idle = 63,113
empty move = 160,200
empty run = 269,309
empty melee start = 400,404
empty melee end = 405,423
;empty reload = 511,603 ;charge with left hand from underneath
empty reload = 611,716 ;charge with righ hand from side (slower)
empty putaway = 355,364
zoomto = 900,904
zoom idle = 980,1040
zoom move = 936,976
zoom start fire = 905,906
zoom end fire = 907,908
zoom start fire 2 = 909,910
zoom end fire 2 = 911,912
zoom start fire 3 = 913,914
zoom end fire 3 = 915,916
zoom automatic fire = 918,926
;zoom last fire = 927,933 ;transition zoom fire to empty zoom idle
zoom last start fire = 927,928
zoom last end fire = 929,933
zoomfrom = 1043,1047
empty zoomto = 1050,1054
empty zoom idle = 1109,1069
empty zoom move = 1065,1105
empty zoomfrom = 1192,1196
zoom dryfire = 1057,1060
fix jam = 720,799
altto = 1210,1225 ;selector full to semi
altfrom = 1230,1245 ;selector semi to full
empty altto = 1250,1265 ;empty selector full to semi
empty altfrom = 1270,1285 ;empty selector semi to full
;alt select = 323,333 ;alt fast select
alt select = 819,855 ;alt equip select
alt idle = 10,60
alt move = 116,156
alt run = 211,251
;alt runto = 204,210 ;transition alt idle to alt run (currently n/a)
;alt runfrom = 253,259 ;transition alt run to alt idle (currently n/a)
;alt empty runto = 262,268 ;transition alt empty idle to alt empty run (currently n/a)
;alt empty runfrom = 311,317 ;transition alt empty run to alt empty idle (currently n/a)
alt melee start = 367,371
alt melee end = 372,390
alt start fire = 858,859
alt end fire = 860,861
alt start fire 2 = 862,863
alt end fire 2 = 864,865
alt start fire 3 = 866,867
alt end fire 3 = 868,869
;alt automatic fire = 872,879
;alt finish fire = 882,890 ;transition alt fire to alt empty idle
alt last start fire = 882,883
alt last end fire = 884,890
alt dryfire = 891,897
alt reload = 430,503 ;opportunistic reload
alt putaway = 334,343
alt empty select = 344,354
alt empty idle = 63,113
alt empty move = 160,200
alt empty run = 269,309
alt empty melee start = 400,404
alt empty melee end = 405,423
;alt empty reload = 511,603 ;charge with left hand from underneath
alt empty reload = 611,716 ;charge with righ hand from side (slower)
alt empty putaway = 355,364
alt zoomto = 900,904
alt zoom idle = 980,1040
alt zoom move = 936,976
alt zoom start fire = 905,906
alt zoom end fire = 907,908
alt zoom start fire 2 = 909,910
alt zoom end fire 2 = 911,912
alt zoom start fire 3 = 913,914
alt zoom end fire 3 = 915,916
;alt zoom automatic fire = 918,926
;alt zoom last fire = 927,933 ;transition alt zoom fire to alt empty zoom idle
alt zoom last start fire = 927,928
alt zoom last end fire = 929,933
alt zoomfrom = 1043,1047
alt empty zoomto = 1050,1054
alt empty zoom idle = 1109,1069
alt empty zoom move = 1065,1105
alt empty zoomfrom = 1192,1196
alt zoom dryfire = 1057,1060
alt fix jam = 720,799
;// GUN Sounds
sound1 = fire.ogg
sound2 = reload.ogg
sound3 = dryfire.ogg
sound4 = putaway.ogg
sound5 = melee.ogg
sound6 = cock.ogg
sound7 = unload.ogg
sound8 = akunjam1.ogg
sound9 = akunjam2.ogg
sound10 = akunjam3.ogg
sound11 = grabmag.ogg
sound12 = altchange.ogg
fireloop = -1
soundstrength = 100
altsound1 = fire.ogg
altsound3 = dryfire.ogg
altsound4 = putaway.ogg
alt fireloop = 5500
alt soundstrength = 100
;// HUD sound frames list
firerate = 5.5
alt firerate = 5.5
soundframes = 23
sframe0 =
;tacload
sframe1 = 439,11
sframe2 = 457,7
sframe3 = 475,2
;reload
sframe4 = 520,11
sframe5 = 537,7
sframe6 = 552,2
sframe7 = 577,6
sframe8 = 620,11
sframe9 = 637,7
sframe10 = 652,2
sframe11 = 680,6
;draw
sframe12 = 324,4
sframe13 = 345,4
;equip
sframe14 = 824,6
;melee
sframe15 = 368,5
sframe16 = 401,5
;fixjam
sframe17 = 735,8
sframe18 = 754,9
sframe19 = 768,10
;altchange
sframe20 = 1218,12
sframe21 = 1235,12
sframe22 = 1258,12
sframe23 = 1275,12
Formatting is a bit jankey from copypasta but w/e. In some cases, the comments are related to the content of the animation but usually they are in regard to the setting itself. edit: You may notice that many of the settings are to increase realism/simulation. So, by reversing these settings you can get a more arcade-y feel with your edits.
The latest update should be good to go. There have been several bug fixes related to weapons but there are still some outstanding issues with certain things not working quite right. Overall, GG has a fairly robust weapon animation and tuning system built in. Over time, this should only improve as more functionality is added to support a wider variety of weapon types and gameplay mechanics.
Gigabyte P67A-UD4-B3, Intel Core i7 2600K (passmark 8555), 16GB Corsair DDR3, EVGA GTX 970 SC (passmark 8637), Win10 Pro 64-bit, Primary monitor @ 1920x1080, secondary monitor @ 1280x1024