When I first tried the weapons modding system, I was overjoyed. I could finally screw around with everything and change the way all of the guns work without much effort. As it is now, one can be quite creative with it, but I believe that it's lacking significantly. I understand that it was introduced primarily just to tweak the weapon balance and allow people to have their own "true weapons balance," but it has so much more unexplored potential.
Anyways, first of all, the bugs, such as the spas' unwillingness to change bulletstyles and the annoyingly unchangeable state of some weapons, need to be fixed. Secondly, I suggest that the following features be added:
(features in blue are features that I think are a bit extravagant/unneeded, but could stand to be added if Michal has some free time)
Gun Variables
MustCrouch= (0, 1, determines whether or not the player must crouch to fire the weapon)
Auto= (0, 1, determines whether or not the gun will continue to fire if fire button is held down)
DamageWhenThrown= (0, 1, determines whether or not the gun will hurt the player if thrown)
ThrowDamage= (determines the amount of damage done when gun is thrown, ignored if DamageWhenThrown=0)
DoesCharge= (0, 1, determines whether or not the gun has a knife-like charge-up time for throwing)
ChargeTime= (if DoesCharge=1, determines how long the charge time is)
ThrowDistance= (determines the distance the gun travels when thrown, 0 for disappearing (see flamer))
ReloadType= (determines how the gun reloads, 0 for default, 1 for spas-like, and 2 for no reload)
Recoil= (determines the recoil type, 0 for none, 1 for speed-determined, (minigun) and 2 for a constant recoil)
ConstantRecoil= (if Recoil=2, determines the amount the recoil pushes you back)
Bullet Variables
These would override regular bulletstyles and give the player freedom to create their own styles. All variables here, if not filled in, will revert to the default behavior specified by the bulletstyle chosen.
Bullets= (determines how many bullets are fired with each shot)
Explodes= (0, 1, determines whether or not the bullet explodes on contact)
ExplosionRadius= (determines how big the size of the explosion is, the explosion graphics are resized accordingly)
ExplosionHurts= (0, 1, determines whether or not the explosion hurts the player or just pushes them away)
ExplosionPower= (determines how far the explosion pushes the player)
InvertedExplosion= (0, 1, determines whether or not the explosion sucks you in instead of pushing you away)
ExplosionBounce= (if filled in, determines the amount of ricochets allowed before the bullet explodes, 0 for until it collides with something)
Collides= (0, 1, determines whether or not the bullet stops when colliding with a player/collider (still does damage, but doesn't stop))
WallCollides= (0, 1, determines whether or not the bullet collides with walls)
Ricochet= (0, 1, determines whether or not the bullet ricochets)
RicochetNumber= (determines how many ricochets are allowed before the bullet is stopped, 0 for infinite)
RicochetAngle= (determines the maximum angle for the bullet to ricochet)
RicochetLoss= (determines how much speed is lost with each ricochet)
Gravity= (determines the effect of gravity on the bullet without changing the speed, negatives for negative gravity)
Distance= (determines distance the bullet travels before disappearing, 0 for infinite)
ConstantSpeed= (if filled in, determines a constant speed for a bullet that doesn't change with distance, negates the initial speed)
Homing= (if filled in, determines whether or not the bullet homes in on the nearest target, and the accuracy of the home)
DamageConstant= (if filled in, determines a primary damage regardless of speed)
Surrounds= (0, 1, determines whether or not the bullet surrounds the shooter)
SurroundRange= (if Surrounds=1, determines how far away the bullet surrounds them)
Repels= (0, 1, determines whether or not the bullet repels other bullets)
Reversed= (0, 1, determines whether or not the bullet fires in reverse)
Appears= (determines how far away the bullet is spawned from the player)
Powerup Variables
I suppose these shouldn't be here, as I'm talking about the weapons.ini, but it's in the same category, (modding the gameplay) so I'll list them here. They aren't necessarily needed, so they're in blue, but it would be nice to play around with.
Duration= (determines how long the powerup lasts, 0 for infinite)
PlayerEffect= N, M, S (determines the effect on the player, N for health, M for speed, S for special (IE: 100, 100, 2 would heal the player and give them a predator bonus))
WeaponEffect= (determines the effect of the powerup by listing any of the variables above as well as the default variables and edits them on top of the current weapon)
IsNewWeapon= (0, 1, determines whether or not the powerup gives you a new weapon based on the WeaponEffect (flame god))
Spawned= (determines how often the powerup is spawned)
If utilized correctly, these additions would allow the player to create weapons ranging from black hole cannons, to land mines, to force fields, to kamikaze bombs, to pointless confetti launchers. They would also allow for people to finally create that "special weapon" without suggesting it and having it shot down for being too unrealistic. In addition, they would allow for those who would (me) to spend hours crafting ridiculous, but fun weapon types, and give weapons mods more respect as more creative people utilize the system. I think this would add a whole new dimension to Soldat.
And don't bring up the argument that people would abuse it. People will abuse whatever is added to the weapons modding system, there's nothing that can be done. The benefit is greater than the downfall here.
Anyways, first of all, the bugs, such as the spas' unwillingness to change bulletstyles and the annoyingly unchangeable state of some weapons, need to be fixed. Secondly, I suggest that the following features be added:
(features in blue are features that I think are a bit extravagant/unneeded, but could stand to be added if Michal has some free time)
Gun Variables
MustCrouch= (0, 1, determines whether or not the player must crouch to fire the weapon)
Auto= (0, 1, determines whether or not the gun will continue to fire if fire button is held down)
DamageWhenThrown= (0, 1, determines whether or not the gun will hurt the player if thrown)
ThrowDamage= (determines the amount of damage done when gun is thrown, ignored if DamageWhenThrown=0)
DoesCharge= (0, 1, determines whether or not the gun has a knife-like charge-up time for throwing)
ChargeTime= (if DoesCharge=1, determines how long the charge time is)
ThrowDistance= (determines the distance the gun travels when thrown, 0 for disappearing (see flamer))
ReloadType= (determines how the gun reloads, 0 for default, 1 for spas-like, and 2 for no reload)
Recoil= (determines the recoil type, 0 for none, 1 for speed-determined, (minigun) and 2 for a constant recoil)
ConstantRecoil= (if Recoil=2, determines the amount the recoil pushes you back)
Bullet Variables
These would override regular bulletstyles and give the player freedom to create their own styles. All variables here, if not filled in, will revert to the default behavior specified by the bulletstyle chosen.
Bullets= (determines how many bullets are fired with each shot)
Explodes= (0, 1, determines whether or not the bullet explodes on contact)
ExplosionRadius= (determines how big the size of the explosion is, the explosion graphics are resized accordingly)
ExplosionHurts= (0, 1, determines whether or not the explosion hurts the player or just pushes them away)
ExplosionPower= (determines how far the explosion pushes the player)
InvertedExplosion= (0, 1, determines whether or not the explosion sucks you in instead of pushing you away)
ExplosionBounce= (if filled in, determines the amount of ricochets allowed before the bullet explodes, 0 for until it collides with something)
Collides= (0, 1, determines whether or not the bullet stops when colliding with a player/collider (still does damage, but doesn't stop))
WallCollides= (0, 1, determines whether or not the bullet collides with walls)
Ricochet= (0, 1, determines whether or not the bullet ricochets)
RicochetNumber= (determines how many ricochets are allowed before the bullet is stopped, 0 for infinite)
RicochetAngle= (determines the maximum angle for the bullet to ricochet)
RicochetLoss= (determines how much speed is lost with each ricochet)
Gravity= (determines the effect of gravity on the bullet without changing the speed, negatives for negative gravity)
Distance= (determines distance the bullet travels before disappearing, 0 for infinite)
ConstantSpeed= (if filled in, determines a constant speed for a bullet that doesn't change with distance, negates the initial speed)
Homing= (if filled in, determines whether or not the bullet homes in on the nearest target, and the accuracy of the home)
DamageConstant= (if filled in, determines a primary damage regardless of speed)
Surrounds= (0, 1, determines whether or not the bullet surrounds the shooter)
SurroundRange= (if Surrounds=1, determines how far away the bullet surrounds them)
Repels= (0, 1, determines whether or not the bullet repels other bullets)
Reversed= (0, 1, determines whether or not the bullet fires in reverse)
Appears= (determines how far away the bullet is spawned from the player)
Powerup Variables
I suppose these shouldn't be here, as I'm talking about the weapons.ini, but it's in the same category, (modding the gameplay) so I'll list them here. They aren't necessarily needed, so they're in blue, but it would be nice to play around with.
Duration= (determines how long the powerup lasts, 0 for infinite)
PlayerEffect= N, M, S (determines the effect on the player, N for health, M for speed, S for special (IE: 100, 100, 2 would heal the player and give them a predator bonus))
WeaponEffect= (determines the effect of the powerup by listing any of the variables above as well as the default variables and edits them on top of the current weapon)
IsNewWeapon= (0, 1, determines whether or not the powerup gives you a new weapon based on the WeaponEffect (flame god))
Spawned= (determines how often the powerup is spawned)
If utilized correctly, these additions would allow the player to create weapons ranging from black hole cannons, to land mines, to force fields, to kamikaze bombs, to pointless confetti launchers. They would also allow for people to finally create that "special weapon" without suggesting it and having it shot down for being too unrealistic. In addition, they would allow for those who would (me) to spend hours crafting ridiculous, but fun weapon types, and give weapons mods more respect as more creative people utilize the system. I think this would add a whole new dimension to Soldat.
And don't bring up the argument that people would abuse it. People will abuse whatever is added to the weapons modding system, there's nothing that can be done. The benefit is greater than the downfall here.