[Bounty 10€] Seeking Collaborators to Enhance 'Fire Bullet Extension': Key Updates Needed

I am seeking collaborators to update the ‘Fire bullet extension.’ What the extension absolutely needs are:

  1. A magazine simulation, as currently there isn’t an expression to display the weapon’s magazine, how many bullets are left in the magazine, and how many bullets the weapon has in reserve.
  2. A change in firing mode that can switch between ‘Auto,’ ‘Burst,’ ‘Single,’ ‘Double,’ etc. with a simple action in the weapon’s configuration.
  3. The ability to reload the weapon in different ways, such as in magazines where you change the weapon’s magazine, or in shotguns where reloading happens bullet by bullet into the chamber.
  4. An expression to reload based on the quantity missing in the magazine and which takes the quantity from a tank/reserve (Example Mag25/30 Tank 10 = Mag 30/30 Tank 5)
  5. Additionally, we need to implement a function that increases the weapon’s inaccuracy the more it fires, simulating the effects of recoil and heat buildup. This will add a layer of realism and challenge to the shooting mechanics, enhancing the overall gameplay experience.

Discussion on discord: Discord

For context, some of these things already exist in the current extension:

The expression is named “Shots before next reload” to show how many bullets left in the magazine, and “Shots per reload” for max clip size. Reserve is “Ammo Quantity”

There’s a bunch of expressions around heat/overheat, and you can just set the Angle Variance to a formula using the heat expression (0 is perfect, up to 180 degrees for fully inaccurate). So if you want to increase your angle variance from 0 to 180 in percentage increments, you’d just have an event that updates the angle variance of the gun to 180*heatExpression (as heat increases from 0 as minimum to 1 as maximum)

actually i thought the same, but if you pick the expression “OBJ.FireBullet::ShotsBeforeNextReload()”
and add it to a text obj it’s shows only the Shots before the next reload, but doesn’t works it like a magazine who picks the quantity left from the Reserve/Tank when the shots comes to 0. Plus with this system you can’t make a different firing mode with more ammo in the magazine, as example if you want to make a burst rifle who just fire 3 bullets at time you need to make ShotsBeforeNextReload at 3 to make the effect of a burst rifle or whatever weapon you want who just shot not in auto or in bolt action, but in this case your weapon will reload every 3 shots because the SBNR will trigger the reload when the ammo goes to 0. It’s pretty good expression, but quite limitate. Plus if you add to the text extension above the expression SBNR + AmmoQuanitity you will see at every shot a Bullet it’s taken from the SBNR and Ammo Quantity

You will see Something like this
Start: 20/150
Shot: 19/149

At some point the weapon will become: 0/130

While The correct way should be: 20/130
That 20 who is the magazine should pick from the ammo quantity and the ammo quantity should be stay still intact util we reload.

Sorry for my bad English, hopefully this is clear.

Edit. If i remember well ShotPerReload expression just give the Num of the shots per reload, but doesn’t do to much, but as i said i don’t remember it well.

Actually i already have this function in my game, is quite pretty simple to do it, but having in the extension would save a bunch of events who aren’t never bad. Actually what i mean with that is a simple event who is like “Everytime the gun fire Add “NUM” on his angle variance” in this way you can simulate the inaccuracy of a weapon like in games like Fortnite, CoD where you have even that central crosshair who just becomes big and little based on the accuracy of the weapon. With a function like this i wanted even an expression who we can just use to replicate the crosshair accuracy with the expression of the firebullet.

Actually i don’t want to do some “shenanigans” around the codes of my weapons, because i have a lot of them and they all should work in different ways and more polish the code is more my mind will be grateful to me, to simulate these things and I think it can be useful for a lot of people. But let’s discuss about these things who are just some little details who change the way we use the extension even to see the firebullet extension fulfilled.

This isn’t quite correct. You should probably either set a firing cooldown to simulate the time between bursts, with all 3 bullets on burst fire created at once, or use the heat system to overheat the gun after 3 shots, and have a rapid cooldown after overheat.

I must not be understanding what you’re referring to here.

  • Shots Per Reload is your max shots per magazine.
  • Shots Per Next Reload is shots until you hit that number.
  • If you’re wanting to show total bullets the user has in their bag, not the total bullets a magazine can have, then you can just use the Ammo Quantity expression and store it in a variable at the time of reload and use that variable to display it. One extra action in your reload event.

Again, I’m not saying your bounty request shouldn’t be done. The above is just to explain that new functionality isn’t absolutely needed/or even new; It is only only a single extra action for the ammo item text, and the existing functionality exists for the type of rapid/burst/etc you’re looking for (along with overheat/aim degredation/etc).

I tried it and when you set the Cooldown you set the Cooldown between a shot and another, while if you want to do a burst fire you need to shots all 3 shots with a Cooldown of 0.1 between shots, so it won’t works, a solution i thought while ago was to change the Cooldown after 3 shots then make a Cooldown of 1 second, but it will be a mess at some point in events. The overheat solution it’s pretty clever, i should try it, but in my case i already use the overheat function for make the weapon jamming.
Btw these are the shenanigans i was referring to i want to avoid or at least incorporate in the extension.

You seems didn’t understood what i said. To explain it clear, if you try to put these expression in a text OBJ so something like:

“Change the text obj = SBNR+Ammo Quantity”

And you try to shot you will see that the:

SBNR is = 19 (if you make a 20 ammo “magazine”);
AmmoQuanitity is = 149 (If you make a 150 ammo quantity in the reserve).

The issue here is the fact the AmmoQuanitity shouldn’t go down until the player reload and when it reload should automatically pick the exact quantity of ammo who are missing in magazine, thing who doesn’t happen.

I’ve never thought of it, in fact if we can find a right solution that doesn’t allow us to do too many somersaults all the better, so I can speed up the development of my game. I just wanted to make you aware of why, unfortunately, the two expressions didn’t work exactly as I expected.