├── Client └── Client.lua ├── Config.lua ├── README.md ├── Server └── Server.lua └── fxmanifest.lua /Client/Client.lua: -------------------------------------------------------------------------------- 1 | local ActiveRecoil = false 2 | 3 | Citizen.CreateThread(function() 4 | 5 | if Config.CustomDamage then 6 | for k, v in pairs(Config.Weapons) do 7 | 8 | SetWeaponDamageModifier(k, v.Damage) 9 | 10 | end 11 | end 12 | 13 | if Config.ClassicRecoil then 14 | for k,v in pairs(Config.Weapons) do 15 | 16 | SetWeaponRecoilShakeAmplitude(GetHashKey(k), Config.Weapons[k].ClassicRecoil) 17 | 18 | end 19 | end 20 | 21 | if Config.RealisticFlashLight then 22 | 23 | SetFlashLightKeepOnWhileMoving(true) 24 | 25 | end 26 | 27 | end) 28 | 29 | 30 | Citizen.CreateThread(function() 31 | 32 | while (Config.HideCrossHair) do 33 | 34 | Citizen.Wait(1) 35 | 36 | local sleep = true 37 | 38 | if IsPedArmed(PlayerPedId(), 6) then 39 | sleep = false 40 | HideHudComponentThisFrame(14) 41 | end 42 | 43 | if sleep then 44 | Wait(1000) 45 | end 46 | end 47 | 48 | 49 | end) 50 | 51 | Citizen.CreateThread(function() 52 | 53 | while (Config.DisableHeadShots) do 54 | 55 | Citizen.Wait(5000) 56 | 57 | SetPedSuffersCriticalHits(PlayerPedId(), false) 58 | 59 | end 60 | 61 | end) 62 | 63 | Citizen.CreateThread(function() 64 | 65 | while (Config.RemovePistolWhipping) do 66 | 67 | Citizen.Wait(15) 68 | local sleep = true 69 | 70 | if IsPedArmed(PlayerPedId(), 6) then 71 | sleep = false 72 | 73 | DisableControlAction(1, 140, true) 74 | DisableControlAction(1, 141, true) 75 | DisableControlAction(1, 142, true) 76 | 77 | end 78 | 79 | if sleep then 80 | Wait(1000) 81 | end 82 | 83 | end 84 | 85 | end) 86 | 87 | Citizen.CreateThread(function() 88 | 89 | while (Config.DrunkRecoil) do 90 | 91 | Citizen.Wait(150) 92 | local sleep = true 93 | 94 | if IsPedArmed(PlayerPedId(), 6) then 95 | sleep = false 96 | 97 | local CurrentWeapon = nil 98 | local _, Weapon = GetCurrentPedWeapon(PlayerPedId()) 99 | 100 | for k in pairs(Config.Weapons) do 101 | local key = GetHashKey(k) 102 | 103 | if key == Weapon then 104 | CurrentWeapon = k 105 | end 106 | 107 | end 108 | 109 | if CurrentWeapon ~= nil then 110 | 111 | local Player = PlayerId() 112 | local PlayerPed = PlayerPedId() 113 | 114 | if IsPlayerFreeAiming(Player) or IsPedShooting(PlayerPed) and Config.Weapons[CurrentWeapon].DrunkRecoil ~= 0 then 115 | 116 | if not ActiveRecoil then 117 | ActiveRecoil = true 118 | ShakeGameplayCam("DRUNK_SHAKE", Config.Weapons[CurrentWeapon].DrunkRecoil) 119 | end 120 | else 121 | 122 | if ActiveRecoil then 123 | 124 | ActiveRecoil = false 125 | Wait(150) 126 | ShakeGameplayCam("DRUNK_SHAKE", 0.0) 127 | 128 | end 129 | 130 | end 131 | else 132 | sleep = true 133 | end 134 | end 135 | 136 | if sleep then 137 | Wait(1000) 138 | end 139 | 140 | end 141 | 142 | end) 143 | 144 | 145 | 146 | -------------------------------------------------------------------------------- /Config.lua: -------------------------------------------------------------------------------- 1 | Config = {} 2 | 3 | Config.Updater = true 4 | 5 | Config.ClassicRecoil = true 6 | Config.DrunkRecoil = true 7 | 8 | Config.CustomDamage = true 9 | 10 | Config.RealisticFlashLight = false -- Keep flashlight tured on when player dont aiming. 11 | Config.HideCrossHair = false -- Show crosshair. 12 | Config.DisableHeadShots = false -- Disable headshot damage. 13 | Config.RemovePistolWhipping = false -- Disable press R in player close to hit them. 14 | 15 | Config.Weapons = { 16 | 17 | ["WEAPON_PISTOL"] = { 18 | 19 | Damage = 0.5, 20 | 21 | ClassicRecoil = 2.0, 22 | DrunkRecoil = 0.6, 23 | 24 | }, 25 | 26 | ["WEAPON_PISTOL_MK2"] = { 27 | 28 | Damage = 0.6, 29 | 30 | ClassicRecoil = 2.0, 31 | DrunkRecoil = 0.6, 32 | 33 | }, 34 | 35 | ["WEAPON_COMBATPISTOL"] = { 36 | 37 | Damage = 0.7, 38 | 39 | ClassicRecoil = 2.0, 40 | DrunkRecoil = 0.6, 41 | 42 | }, 43 | 44 | ["WEAPON_APPISTOL"] = { 45 | 46 | Damage = 0.45, 47 | 48 | ClassicRecoil = 2.0, 49 | DrunkRecoil = 0.6, 50 | 51 | }, 52 | 53 | ["WEAPON_STUNGUN"] = { 54 | 55 | Damage = 0.1, 56 | 57 | ClassicRecoil = 2.0, 58 | DrunkRecoil = 0.6, 59 | 60 | }, 61 | 62 | ["WEAPON_PISTOL50"] = { 63 | 64 | Damage = 0.6, 65 | 66 | ClassicRecoil = 2.0, 67 | DrunkRecoil = 0.6, 68 | 69 | }, 70 | 71 | ["WEAPON_SNSPISTOL"] = { 72 | 73 | Damage = 0.45, 74 | 75 | ClassicRecoil = 2.0, 76 | DrunkRecoil = 0.6, 77 | 78 | }, 79 | 80 | ["WEAPON_SNSPISTOL_MK2"] = { 81 | 82 | Damage = 0.5, 83 | 84 | ClassicRecoil = 2.0, 85 | DrunkRecoil = 0.6, 86 | 87 | }, 88 | 89 | ["WEAPON_HEAVYPISTOL"] = { 90 | 91 | Damage = 0.6, 92 | 93 | ClassicRecoil = 2.0, 94 | DrunkRecoil = 0.6, 95 | 96 | }, 97 | 98 | ["WEAPON_VINTAGEPISTOL"] = { 99 | 100 | Damage = 0.55, 101 | 102 | ClassicRecoil = 2.0, 103 | DrunkRecoil = 0.6, 104 | 105 | }, 106 | 107 | ["WEAPON_REVOLVER"] = { 108 | 109 | Damage = 1.0, 110 | 111 | ClassicRecoil = 2.0, 112 | DrunkRecoil = 0.6, 113 | 114 | }, 115 | 116 | ["WEAPON_REVOLVER_MK2"] = { 117 | 118 | Damage = 1.0, 119 | 120 | ClassicRecoil = 2.0, 121 | DrunkRecoil = 0.6, 122 | 123 | }, 124 | 125 | ["WEAPON_DOUBLEACTION"] = { 126 | 127 | Damage = 0.65, 128 | 129 | ClassicRecoil = 2.0, 130 | DrunkRecoil = 0.6, 131 | 132 | }, 133 | 134 | ["WEAPON_CERAMICPISTOL"] = { 135 | 136 | Damage = 0.5, 137 | 138 | ClassicRecoil = 2.0, 139 | DrunkRecoil = 0.6, 140 | 141 | }, 142 | 143 | ["WEAPON_MICROSMG"] = { 144 | 145 | Damage = 0.73, 146 | 147 | ClassicRecoil = 2.0, 148 | DrunkRecoil = 0.6, 149 | 150 | }, 151 | 152 | ["WEAPON_SMG"] = { 153 | 154 | Damage = 0.79, 155 | 156 | ClassicRecoil = 2.0, 157 | DrunkRecoil = 0.6, 158 | 159 | }, 160 | 161 | ["WEAPON_SMG_MK2"] = { 162 | 163 | Damage = 0.81, 164 | 165 | ClassicRecoil = 2.0, 166 | DrunkRecoil = 0.6, 167 | 168 | }, 169 | 170 | ["WEAPON_COMBATPDW"] = { 171 | 172 | Damage = 0.84, 173 | 174 | ClassicRecoil = 2.0, 175 | DrunkRecoil = 0.6, 176 | 177 | }, 178 | 179 | ["WEAPON_ASSAULTSMG"] = { 180 | 181 | Damage = 0.55, 182 | 183 | ClassicRecoil = 2.0, 184 | DrunkRecoil = 0.6, 185 | 186 | }, 187 | 188 | ["WEAPON_MACHINEPISTOL"] = { 189 | 190 | Damage = 0.45, 191 | 192 | ClassicRecoil = 2.0, 193 | DrunkRecoil = 0.6, 194 | 195 | }, 196 | 197 | ["WEAPON_ASSAULTRIFLE"] = { 198 | 199 | Damage = 0.5, 200 | 201 | ClassicRecoil = 2.0, 202 | DrunkRecoil = 0.6, 203 | 204 | }, 205 | 206 | ["WEAPON_ASSAULTRIFLE_MK2"] = { 207 | 208 | Damage = 0.65, 209 | 210 | ClassicRecoil = 2.0, 211 | DrunkRecoil = 0.6, 212 | 213 | }, 214 | 215 | ["WEAPON_CARBINERIFLE"] = { 216 | 217 | Damage = 0.65, 218 | 219 | ClassicRecoil = 2.0, 220 | DrunkRecoil = 0.6, 221 | 222 | }, 223 | 224 | ["WEAPON_CARBINERIFLE_MK2"] = { 225 | 226 | Damage = 0.69, 227 | 228 | ClassicRecoil = 2.0, 229 | DrunkRecoil = 0.6, 230 | 231 | }, 232 | 233 | ["WEAPON_BULLPUPRIFLE"] = { 234 | 235 | Damage = 0.4, 236 | 237 | ClassicRecoil = 2.0, 238 | DrunkRecoil = 0.6, 239 | 240 | }, 241 | 242 | ["WEAPON_COMPACTRIFLE"] = { 243 | 244 | Damage = 0.5, 245 | 246 | ClassicRecoil = 2.0, 247 | DrunkRecoil = 0.6, 248 | 249 | }, 250 | 251 | ["WEAPON_PUMPSHOTGUN"] = { 252 | 253 | Damage = 0.2, 254 | 255 | ClassicRecoil = 2.0, 256 | DrunkRecoil = 0.6, 257 | 258 | }, 259 | 260 | ["WEAPON_SAWNOFFSHOTGUN"] = { 261 | 262 | Damage = 0.95, 263 | 264 | ClassicRecoil = 2.0, 265 | DrunkRecoil = 0.6, 266 | 267 | }, 268 | 269 | ["WEAPON_BULLPUPSHOTGUN"] = { 270 | 271 | Damage = 1.2, 272 | 273 | ClassicRecoil = 2.0, 274 | DrunkRecoil = 0.6, 275 | 276 | }, 277 | 278 | ["WEAPON_ASSAULTSHOTGUN"] = { 279 | 280 | Damage = 0.1, 281 | 282 | ClassicRecoil = 2.0, 283 | DrunkRecoil = 0.6, 284 | 285 | }, 286 | 287 | ["WEAPON_MUSKET"] = { 288 | 289 | Damage = 0.5, 290 | 291 | ClassicRecoil = 2.0, 292 | DrunkRecoil = 0.6, 293 | 294 | }, 295 | 296 | ["WEAPON_HEAVYSHOTGUN"] = { 297 | 298 | Damage = 0.35, 299 | 300 | ClassicRecoil = 2.0, 301 | DrunkRecoil = 0.6, 302 | 303 | }, 304 | 305 | ["WEAPON_DBSHOTGUN"] = { 306 | 307 | Damage = 1.5, 308 | 309 | ClassicRecoil = 2.0, 310 | DrunkRecoil = 0.6, 311 | 312 | }, 313 | 314 | ["WEAPON_PUMPSHOTGUN_MK2"] = { 315 | 316 | Damage = 1.0, 317 | 318 | ClassicRecoil = 2.0, 319 | DrunkRecoil = 0.6, 320 | 321 | }, 322 | 323 | ["WEAPON_MILITARYRIFLE"] = { 324 | 325 | Damage = 0.45, 326 | 327 | ClassicRecoil = 2.0, 328 | DrunkRecoil = 0.6, 329 | 330 | }, 331 | 332 | 333 | 334 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 |

Recoil

4 | 5 |

Standlone recoil script for your server!

6 | 7 | 8 | ### 9 | 10 |
11 | 12 |

Features

13 | 14 | ### 15 | 16 |

Drunk Recoil
Classic Recoil
Custom Damaga
Hide CrossHair
Disable HeadShots Damage
Remove Pistol Whipping

17 | 18 | ### 19 | 20 |

Copyright

21 | 22 |

Drunk recoil script is not ours, we only edited It for better optimalization and added new features. Original author is unknown, so if this is your code, please, contant us on the discord, thank you!

23 | 24 | 25 | ### 26 | 27 |
28 | 29 |

Support

30 | 31 | ### 32 | 33 |

https://discord.respectdevelopment.eu

34 | 35 | ### 36 | -------------------------------------------------------------------------------- /Server/Server.lua: -------------------------------------------------------------------------------- 1 | if Config.Updater then 2 | PerformHttpRequest("https://raw.githubusercontent.com/respectdevelopment/versions/main/Recoil", function(err, Version, headers) 3 | 4 | local ScriptVersion = GetResourceMetadata(GetCurrentResourceName(), "version") 5 | 6 | if ScriptVersion == Version then 7 | print("^2[INFO] rd_FractionVehicleShop have latest version!") 8 | else 9 | print("^3[UPDATE] Update for rd_Recoil is avaible! ("..ScriptVersion.. " -> " ..Version.. ")") 10 | print("^3[UPDATE] https://github.com/respectdevelopment/rd_recoil") 11 | end 12 | end) 13 | end -------------------------------------------------------------------------------- /fxmanifest.lua: -------------------------------------------------------------------------------- 1 | -- {{FX Information}} -- 2 | fx_version 'cerulean' 3 | game 'gta5' 4 | 5 | -- {{Resource Information}} -- 6 | author 'Respect Development' 7 | description 'Recoil Script' 8 | version '2.0' 9 | 10 | -- {{Manifest}} -- 11 | lua54 'yes' 12 | 13 | shared_scripts { 14 | 15 | 'Config.lua' 16 | 17 | } 18 | 19 | client_scripts { 20 | 21 | 'Client/Client.lua', 22 | 23 | } 24 | 25 | server_scripts { 26 | 27 | 'Server/Server.lua', 28 | 29 | } 30 | 31 | --------------------------------------------------------------------------------