Description
Is your feature request related to a problem? Please describe.
Hi guys.
We can observe that the base game's weapon/fight system is quite bad. It has many glitches, bugs, easy to cancel animations to perform crouchbug, quickstandbug, slidebug etc. (even when these glitches are disabled)
Maybe there should be a function which would let us deciding whether these fighting related animations can be canceled or not by the player. (interruptable)
for e.g. setAnimationInterruptable(animation, true/false)
Weapons can be used in a way where there is no spreading effect on the crosshair. Interestingly these no spreading bullets will fly onto the opponent's head which is funnier if headshot resource is in play :)
To do this just simply shoot without aiming.
Servers could disable this by creating a little script:
addEventHandler("onClientPreRender", root,
function()
if getPedControlState(localPlayer, "aim_weapon") then
toggleControl("action", true)
toggleControl("fire", true)
else
toggleControl("action", false)
toggleControl("fire", false)
end
end)
However by just pressing the aiming button(right mouse button) and instantly releasing it would return true and the player is still able to shoot without spreading effect. (only a few bullets)
I noticed that a new function was added to the game, isPlayerCrosshairVisible
which can be used instead of getPedControlState(localPlayer, "aim_weapon")
, but this can also be bypassed.
Hold your left mouse button (firing) then press right mouse button (aiming) and wait till the crosshair gets rendered. As soon as you see the crosshair, release right mouse button.
This way you can still fire 1-4 bullets without spreading effect, just like when using getPedControlState.
With an M4 you are very likely to be able to shoot only 1 bullet.
Using an UZI/Tec9 with pro skills, will likelly shoot 1-1 bullet from both hand.
Using SawedOff with pro skills will likely shoot 1-4 bullets.
Best to test SawedOff with setGlitchEnabled('quickreload', true)
, some servers use this anyway.
Interestingly we can catch these bullets:
addEventHandler("onClientPreRender", root,
function()
if isPlayerCrosshairVisible() then
toggleControl("action", true)
toggleControl("fire", true)
else
toggleControl("action", false)
toggleControl("fire", false)
end
end)
addEventHandler("onClientPlayerWeaponFire", root,
function()
if not isPlayerCrosshairVisible() then
iprint("this bullet shouldn't be fired at all.")
end
end)
Using this little script will catch these bullets. What if a PreFire event existed which could be canceled and then these bullets won't be fired at all?
Animation speed: If we want to use this isPlayerCrosshairVisible
function you will notice that all weapons have a really long time till the crosshair gets rendered, because the animations are slow (especially compared to today games)
We currently don't have any way of changing certain animation's speed. Using this function will cause dislike among players who can now fast aim and shoot but only letting them to shoot when this function returns true would make this aiming process awfully slow. There should be a function where you could set the animation's speed. (Some weapons have zooming effect as well where the aiming speed is also related on that, an other Issue was opened for that case: #4074)
setPlayerAnimationSpeed(animation, float speed)
getPlayerAnimationSpeed(animation)
getPlayerOriginalAnimationSpeed(animation)
Weapon properties: There are not so much room to fully customize the weapons. Base problem is that we can't set individual player's weapon property. setWeaponProperty
on clientside works only with custom weapons. On serverside it changes for everyone. We can't set different skill levels as well.
Colt-45 two-handed mode: this can't be set now. Officers use this in singleplayer.
An option where we could set a weapon's targeting mode from one handed to two handed or vica-versa would be good. We can set some of the weapons from two handed to be one handed, but afaik not all of them, and one handed ones cannot be made two handed.
(I know this can be achieved by scripting, making a custom weapon system, but ideally these should be some functons or more flags in the weapon properties if possible. Not to mention that creating a custom weapon is not simple)
Describe the solution you'd like
See above.
Describe alternatives you've considered
No response
Additional context
I'd like to mention here that even Rockstar knows that the game's basic weapon, fight system bad and not performs well in 2025. In the Definitive Edition they changed some weapons behaviour for e.g in Vice City you can basically run and shoot with a shotgun. Being able to make such changes in MTA:SA as well would be highly needed.
Security Policy
- I have read and understood the Security Policy and this issue is not about a cheat or security vulnerability.