├── gd_anticheat ├── __resource.lua ├── client │ └── main.lua └── server │ └── main.lua ├── gd_atc ├── __resource.lua ├── client │ ├── airportmarkers.lua │ ├── atc.lua │ ├── menu.lua │ └── pedTasking.lua ├── example.lua └── server │ └── atc.lua ├── gd_bunker ├── __resource.lua ├── client │ └── main.lua └── server │ └── main.lua ├── gd_corp_vehicles ├── __resource.lua ├── carvariations.meta ├── gfx │ ├── rsn_et_shipdecalspo102rsn_et_shipdecalspo102_a.png │ ├── trailers2_sign_1.dds │ ├── trailers2_sign_1.png │ ├── trailers2_sign_1_.dds │ ├── trailers2_sign_3.dds │ └── trailers2_sign_4.dds ├── handling.meta ├── stream │ ├── cabs │ │ ├── custom_phantom3.yft │ │ ├── custom_phantom3.ytd │ │ ├── custom_phantom3_hi.yft │ │ └── vehicles.meta │ ├── collinsco │ │ ├── cabs │ │ │ ├── collinsco_phantom3.yft │ │ │ ├── collinsco_phantom3.ytd │ │ │ ├── collinsco_phantom3_hi.yft │ │ │ ├── window_lf.cwgv │ │ │ ├── window_rf.cwgv │ │ │ └── windscreen.cwgv │ │ ├── trailers │ │ │ ├── collinsco_tanker.yft │ │ │ ├── collinsco_tanker.ytd │ │ │ ├── collinsco_tanker_hi.yft │ │ │ ├── collinsco_trailers2.yft │ │ │ ├── collinsco_trailers2.ytd │ │ │ ├── collinsco_trailers3.yft │ │ │ └── collinsco_trailers3.ytd │ │ └── vehicles.meta │ ├── frllc │ │ ├── aircraft │ │ │ ├── carvariations.meta │ │ │ ├── handling.meta │ │ │ ├── pavelow.yft │ │ │ ├── pavelow.ytd │ │ │ ├── pavelow_hi.yft │ │ │ ├── vehiclelayouts.meta │ │ │ └── vehicles.meta │ │ ├── cab │ │ │ ├── frllc_hauler2+hi.ytd │ │ │ ├── frllc_hauler2.yft │ │ │ ├── frllc_hauler2.ytd │ │ │ └── frllc_hauler2_hi.yft │ │ ├── frllc_firesuv.yft │ │ ├── frllc_firesuv.ytd │ │ ├── frllc_firesuv_hi.yft │ │ ├── gfx │ │ │ ├── emerglights.png │ │ │ ├── emerglights1.png │ │ │ ├── emerglights_liberty.png │ │ │ ├── frllc_template.png │ │ │ ├── generic_lightbar_e.png │ │ │ ├── sheriff_lights.png │ │ │ ├── tahoe_sign_1.dds │ │ │ ├── tahoe_sign_1.png │ │ │ └── tahoe_sign_1.xcf │ │ ├── trailers │ │ │ ├── frllc_trailers2.yft │ │ │ ├── frllc_trailers2.ytd │ │ │ ├── frllc_trailers4+hi.ytd │ │ │ ├── frllc_trailers4.yft │ │ │ ├── frllc_trailers4.ytd │ │ │ ├── frllc_trailers4_hi.yft │ │ │ ├── frllc_trailers5+hi.ytd │ │ │ ├── frllc_trailers5.yft │ │ │ ├── frllc_trailers5.ytd │ │ │ └── frllc_trailers5_hi.yft │ │ └── vehicles.meta │ ├── narwhalcorp │ │ ├── cab │ │ │ ├── corp_nar.yft │ │ │ ├── corp_nar.ytd │ │ │ ├── corp_nar_hi.yft │ │ │ ├── handling.meta │ │ │ └── vehicles.meta │ │ ├── cabs │ │ │ ├── corp_nar.yft │ │ │ ├── corp_nar.ytd │ │ │ └── corp_nar_hi.yft │ │ ├── handling.meta │ │ ├── trailers │ │ │ ├── narwhalcorp_trailers2.yft │ │ │ └── narwhalcorp_trailers2.ytd │ │ └── vehicles.meta │ ├── postop │ │ ├── PostOPplane_hi.yft │ │ ├── postop_armytrailer+hi.ytd │ │ ├── postop_armytrailer.yft │ │ ├── postop_armytrailer.ytd │ │ ├── postop_armytrailer_hi.yft │ │ ├── postopbox+hi.ytd │ │ ├── postopbox.yft │ │ ├── postopbox.ytd │ │ ├── postopbox_hi.yft │ │ ├── postopmule+hi.ytd │ │ ├── postopmule.yft │ │ ├── postopmule.ytd │ │ ├── postopmule_hi.yft │ │ ├── postopplane.yft │ │ ├── postopplane.ytd │ │ └── vehicles.meta │ └── sal │ │ ├── cab │ │ ├── sal_packer.yft │ │ ├── sal_packer.ytd │ │ ├── sal_packer_hi.yft │ │ ├── sal_phantom.yft │ │ ├── sal_phantom.ytd │ │ └── sal_phantom_hi.yft │ │ ├── trailers │ │ ├── captaincorp_trailers2 – Kopi.ytd │ │ ├── captaincorp_trailers2.yft │ │ ├── captaincorp_trailers2.ytd │ │ ├── sal_lowboy.yft │ │ ├── sal_lowboy.ytd │ │ ├── sal_lowboy_hi.yft │ │ ├── sal_tr4+hi.ytd │ │ ├── sal_tr4.yft │ │ ├── sal_tr4.ytd │ │ └── sal_tr4_hi.yft │ │ └── vehicles.meta ├── vehicle_names.lua └── vehiclelist.md ├── gd_farm ├── __resource.lua ├── cfg │ └── fields.lua ├── client │ ├── Tunnel.lua │ └── main.lua ├── server │ ├── main.lua │ └── obj_loader.lua └── shared │ ├── main.lua │ ├── obj_loader.lua │ └── utils.lua ├── gd_jobs_bus ├── __resource.lua ├── client │ ├── Thumbs.db │ ├── bunker.lua │ ├── bunkers.lua │ └── main.lua └── server │ └── main.lua ├── gd_jobs_handler ├── __resource.lua ├── client │ └── main.lua └── server │ └── main.lua ├── gd_jobs_helicopter ├── __resource.lua ├── client │ ├── Thumbs.db │ ├── airportmarkers.lua │ └── main.lua └── server │ └── main.lua ├── gd_jobs_quarry ├── __resource.lua ├── client │ ├── Thumbs.db │ └── main.lua └── server │ └── main.lua ├── gd_moneydrop ├── __resource.lua ├── client.lua └── server.lua ├── gd_pd_radio ├── __resource.lua ├── client │ ├── airportmarkers.lua │ ├── atc.lua │ ├── menu.lua │ └── pedTasking.lua ├── example.lua └── server │ └── atc.lua ├── gd_playerlist ├── __resource.lua ├── html │ ├── css │ │ └── style.css │ ├── font │ │ ├── EmojiOneColor-SVGinOT.ttf │ │ ├── roboto-condensed.ttf │ │ └── roboto-regular.ttf │ ├── img │ │ ├── Thumbs.db │ │ ├── spritesheet.png │ │ ├── spritesheet.xcf │ │ └── test.png │ └── index.html ├── playerlist.lua ├── rank_special.lua └── server.lua ├── gd_slots_vrp ├── README ├── __resource.lua ├── client.lua ├── images │ ├── 1080p.jpg │ ├── background.png │ ├── reddit_icons_small – Kopi.png │ ├── reddit_icons_small.png │ └── reels_bg.png ├── index.html ├── server.lua ├── slots.css ├── slots.js └── sounds │ ├── reel_stop.wav │ └── win.wav ├── gd_speedometer ├── __resource.lua ├── client │ ├── Thumbs.db │ ├── main.lua │ └── meter.png ├── meter.png ├── pdown.ttf ├── server │ └── sv_fuel.lua └── ui.html ├── gd_trafficlights ├── __resource.lua ├── client │ └── main.lua ├── server │ └── main.lua └── shared │ └── main.lua ├── gd_utils ├── __resource.lua ├── client │ ├── disable_vehicle_weapons.lua │ └── main.lua ├── readme.md ├── server │ └── main.lua └── shared │ └── main.lua ├── gd_vehspawn ├── __resource.lua ├── client.lua └── server.lua ├── gd_vrp_edits ├── client │ └── map.lua └── modules │ ├── item_transformer.lua │ └── map.lua ├── readme.md ├── tt_help ├── __resource.lua ├── client.lua ├── discord.png ├── help.html └── server.lua └── tt_mmga ├── __resource.lua ├── client.lua └── server.lua /gd_anticheat/__resource.lua: -------------------------------------------------------------------------------- 1 | 2 | client_script 'client/main.lua' 3 | 4 | server_script '@vrp/lib/utils.lua' 5 | server_script 'server/main.lua' 6 | -------------------------------------------------------------------------------- /gd_anticheat/server/main.lua: -------------------------------------------------------------------------------- 1 | local webhook = "https://discordapp.com/api/webhooks/409134895911403540/XQlV2y5PsPBI_YR7Eqmlw1pjhPSa5SRu2X8lC5-fqBIzq0aakY3UR09crRLoag_fexhH" 2 | 3 | local Proxy = module("vrp", "lib/Proxy") 4 | 5 | vRP = Proxy.getInterface("vRP") 6 | 7 | config = { 8 | infractionFormat = "**%s**\nPlayer `%s`, id `%i`\nInfractions: **%i**\nFlags:%s\nData:%s" 9 | } 10 | 11 | local function log(text) 12 | print("[gd_anticheat] " .. text) 13 | end 14 | 15 | -- Thanks @BlueTheFurry 16 | function sendWebhookMessage(webhook,message) 17 | if webhook ~= "none" then 18 | PerformHttpRequest(webhook, function(err, text, headers) end, 'POST', json.encode({content = message}), { ['Content-Type'] = 'application/json' }) 19 | end 20 | end 21 | 22 | AddEventHandler("vRP:playerSpawn", function(user_id, source, first_spawn) 23 | TriggerClientEvent("gd_anticheat:enable", source, true) 24 | end) 25 | 26 | 27 | function reportInfraction(source, infraction, total) 28 | local source = source 29 | local user_id = vRP.getUserId({source}) 30 | local name = GetPlayerName(source) 31 | local data = infraction.data 32 | local infractionName = infraction.name 33 | local flags = "" 34 | local dataString = "" 35 | for k,v in next, data do 36 | local p = "" 37 | if (type(v) == 'table') then 38 | p = "{" 39 | local _d = false 40 | for _k,_v in next, v do 41 | _d = true 42 | p = p .. "\"" .. tostring(_v) .. "\"," 43 | end 44 | if _d then 45 | p = p:sub(1,-2) 46 | end 47 | p = p .. "}" 48 | else 49 | p = tostring(v) 50 | end 51 | dataString = dataString .. (" `%s = %s`"):format(tostring(k), tostring(p)) 52 | end 53 | if vRP.hasGroup({user_id, "admin"}) or 54 | vRP.hasPermission({user_id, "player.kick"}) then 55 | flags = flags .. (" `%s = %s`"):format("staff", "true") 56 | end 57 | 58 | log("Received infraction: " .. name .. " (" .. infractionName .. ")") 59 | sendWebhookMessage(webhook, (config.infractionFormat):format(infractionName, name, user_id, total, flags, dataString)) 60 | end 61 | 62 | RegisterNetEvent("gd_anticheat:infraction") 63 | AddEventHandler("gd_anticheat:infraction", function(infraction, total) 64 | local source = source 65 | reportInfraction(source, infraction, total) 66 | end) 67 | -------------------------------------------------------------------------------- /gd_atc/__resource.lua: -------------------------------------------------------------------------------- 1 | client_script 'client/atc.lua' 2 | client_script 'client/menu.lua' 3 | client_script 'client/pedTasking.lua' 4 | client_script 'client/airportmarkers.lua' 5 | 6 | server_script 'server/atc.lua' -------------------------------------------------------------------------------- /gd_atc/client/atc.lua: -------------------------------------------------------------------------------- 1 | RegisterNetEvent("atc:startFlashingBlip") 2 | AddEventHandler("atc:startFlashingBlip", function(pos, blipid, time, col, override) 3 | if IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1)) or (override) then 4 | local blip = AddBlipForCoord(pos.x, pos.y, pos.z) 5 | SetBlipSprite(blip, blipid) 6 | SetBlipColour(blip, col) 7 | SetBlipDisplay(blip, 8) 8 | SetBlipFlashes(blip, true) 9 | SetBlipFlashInterval(blip, 400) 10 | SetTimeout(time * 1000, function() 11 | RemoveBlip(blip) 12 | end) 13 | end 14 | end) 15 | 16 | RegisterNetEvent("atc:getMessage") 17 | AddEventHandler("atc:getMessage", function(msg, override) 18 | if IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1)) or (override) then 19 | TriggerEvent('chatMessage', "", {255, 0, 0}, msg) 20 | end 21 | end) 22 | 23 | Citizen.CreateThread(function() 24 | local inAircraft = false 25 | while true do 26 | Wait(50) 27 | if not inAircraft and (IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1))) then 28 | SetNotificationTextEntry("STRING") 29 | AddTextComponentString("~w~Press ~g~TAB ~w~to open the ~y~ATC menu~w~.\nIt's ~r~mandatory ~w~to use when piloting!") 30 | DrawNotification(false, false) 31 | end 32 | inAircraft = (IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1))) 33 | end 34 | end) 35 | -------------------------------------------------------------------------------- /gd_atc/client/pedTasking.lua: -------------------------------------------------------------------------------- 1 | local blipLocs = { 2 | {name = "Union Depository Dropoff", x = -7.328112, y = -655.921082, z = 32.451847, blipid = 500, blipcol = 5}, 3 | {name = "Blaine County Fleeca Bank", x = 1177.095459, y = 2711.752441, z = 37.097763, blipid = 500, blipcol = 2}, 4 | {name = "Alta Fleeca Bank", x = 309.974792, y = -282.962646, z = 53.174511, blipid = 500, blipcol = 2}, 5 | {name = "Big Bank Place", x = 256.424622, y = 225.909988, z = 100.875717, blipid = 500, blipcol = 2}, 6 | {name = "Rockford Hills Fleeca Bank", x = -1212.107422, y = -335.944550, z = 36.790771, blipid = 500, blipcol = 2}, 7 | {name = "Legion Square Fleeca Bank", x = 145.850647, y = -1044.619751, z = 28.377804, blipid = 500, blipcol = 2}, 8 | {name = "Banham Canyon Fleeca Bank", x = -2957.513184, y = 480.322998, z = 14.706840, blipid = 500, blipcol = 2}, 9 | {name = "Paleto Bay Savings Bank", x = -105.192596, y = 6476.201172, z = 30.626711, blipid = 500, blipcol = 2} 10 | } 11 | 12 | function setBlipName(blip, name) 13 | BeginTextCommandSetBlipName("STRING") 14 | AddTextComponentString(name) 15 | EndTextCommandSetBlipName(blip) 16 | end 17 | 18 | local inveh = false 19 | local blips = {} 20 | 21 | Citizen.CreateThread(function() 22 | while true do 23 | Citizen.Wait(5) 24 | local newInveh = GetEntityModel(GetVehiclePedIsIn(GetPlayerPed(-1), true)) == GetHashKey("STOCKADE") or IsControlPressed(1, 29) 25 | if not inveh and newInveh then 26 | for k,v in next, blipLocs do 27 | local blip = AddBlipForCoord(v.x, v.y, v.z) 28 | SetBlipSprite(blip, v.blipid) 29 | SetBlipColour(blip, v.blipcol) 30 | SetBlipAsShortRange(blip, true) 31 | setBlipName(blip, v.name) 32 | table.insert(blips, blip) 33 | end 34 | end 35 | if inveh and not newInveh then 36 | for k,v in next, blips do 37 | RemoveBlip(v) 38 | end 39 | blips = {} 40 | end 41 | inveh = newInveh 42 | end 43 | end) 44 | 45 | function reqModel(model) 46 | model = GetHashKey(model) 47 | RequestModel(model) 48 | while not HasModelLoaded(model) do Wait(5) end 49 | return model 50 | end 51 | 52 | function createVehicleThatFollowsVehicle(vehicleModel, vehicleToFollow, driverModel, x, y, z, heading, method, distance) 53 | local vehModel = reqModel(vehicleModel) 54 | local pedModel = reqModel(driverModel) 55 | 56 | local veh = CreateVehicle(vehModel, x, y, z, heading, true, false) 57 | local ped = CreatePedInsideVehicle(veh, 4, pedModel, -1, true, false) 58 | TaskVehicleEscort(ped, veh, vehicleToFollow, method or -1, 30.0, 786469, distance or 2.0, 0, 100.0) 59 | return veh, ped 60 | end 61 | 62 | function fillVehicleWithPeds(veh, pedsModel) 63 | local pedModel = reqModel(pedsModel) 64 | for i=1, GetVehicleMaxNumberOfPassengers(veh) do 65 | CreatePedInsideVehicle(veh, 4, pedModel, i, true, false) 66 | end 67 | end 68 | 69 | function takeOwnershipOfPedAndVehicle(ped, vehicle) 70 | local pedModel = GetEntityModel(ped) 71 | local vehModel = GetEntityModel(veh) 72 | local vehPos = GetEntityCoords(veh) 73 | local vehHeading = GetEntityHeading(veh) 74 | 75 | DeleteEntity(veh) 76 | DeleteEntity(ped) 77 | local _v = CreateVehicle(vehModel, vehPos.x, vehPos.y, vehPos.z, vehHeading, true, false) 78 | local _p = CreatePedInsideVehicle(_v, 4, pedModel, -1, true, false) 79 | 80 | return _p, _v 81 | end 82 | 83 | local job_start = {name = "Lombank West", x = -1568.092407, y = -530.758057, z = 34.291264} 84 | local job_end = {name = "The Oriental", x = 293.157623, y = 177.280731, z = 102.901276} 85 | local job = {} 86 | 87 | local job_spawn = { 88 | {name = "stretch", model = "ig_bankman", x = -1556.032837, y = -547.315674, z = 30.004879, h = 25.0, cb = function(v, p) SetBlipColour(AddBlipForEntity(v), 2) job.veh = v job.ped = p end}, 89 | {name = "police3", model = "s_m_y_cop_01", x = -1559.464600, y = -550.922546, z = 28.676392, h = 25.0, cb = function(v, p) SetVehicleSiren(v, true) AddBlipForEntity(v) job.pd = v job.pdped = p end} 90 | } 91 | 92 | function drawMarker(x,y,z) 93 | DrawMarker(1, x, y, z, 0, 0, 0, 0, 0, 0, 5.0, 5.0, 1.0, 150, 150, 0, 200, false, false, 0, false) 94 | end 95 | 96 | function startJob() 97 | job.active = true 98 | local ped = GetPlayerPed(-1) 99 | local veh = GetVehiclePedIsIn(ped, false) 100 | AddBlipForEntity(veh) 101 | for k,v in next, job_spawn do 102 | veh, ped = createVehicleThatFollowsVehicle(v.name, veh, v.model, v.x, v.y, v.z, v.h) 103 | v.cb(veh, ped) 104 | end 105 | end 106 | 107 | 108 | Citizen.CreateThread(function() 109 | 110 | while true do 111 | local ply = GetPlayerPed(-1) 112 | local pos = GetEntityCoords(ply) 113 | if next(job) ~= nil then 114 | -- On job 115 | drawMarker(job_end.x, job_end.y, job_end.z) 116 | else 117 | -- Not on job 118 | drawMarker(job_start.x, job_start.y, job_start.z) 119 | if GetDistanceBetweenCoords(job_start.x, job_start.y, job_start.z, pos.x, pos.y, pos.z) < 5 then 120 | if IsControlJustPressed(1, 38) then 121 | startJob() 122 | end 123 | end 124 | end 125 | Wait(1) 126 | end 127 | 128 | 129 | 130 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252} 131 | -- 132 | -- local veh, ped = createVehicleThatFollowsVehicle("police3", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0) 133 | -- local veh2, ped2 = createVehicleThatFollowsVehicle("stockade", veh, "s_m_y_cop_01", -1067.088623, -896.252136 + 5.0, 3.392769, -45.0) 134 | -- local veh3, ped3 = createVehicleThatFollowsVehicle("stockade", veh2, "s_m_y_cop_01", -1067.088623, -896.252136, 3.392769, -45.0) 135 | -- local veh4, ped4 = createVehicleThatFollowsVehicle("stockade", veh3, "s_m_y_cop_01", -1067.088623, -896.252136 - 5.0, 3.392769, -45.0) 136 | -- local veh5, ped5 = createVehicleThatFollowsVehicle("riot", veh4, "s_m_y_cop_01", -1079.150513, -903.233887, 2.889246, -45.0) 137 | -- 138 | -- SetBlipSprite(AddBlipForEntity(veh),58) 139 | -- 140 | -- fillVehicleWithPeds(veh, "s_m_y_cop_01") 141 | -- fillVehicleWithPeds(veh5, "s_m_y_swat_01") 142 | -- SetVehicleSiren(veh, true) 143 | -- SetVehicleSiren(veh5, true) 144 | -- 145 | -- TaskVehicleDriveWander(ped, veh, 5.0, 786469) 146 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252} 147 | -- 148 | -- local veh, ped = createVehicleThatFollowsVehicle("adder", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0) 149 | -- for i = 1,20 do 150 | -- local _v, _p = createVehicleThatFollowsVehicle("police3", veh, "s_m_y_cop_01", -1067.088623 - 5*i, -896.252136 - 2*i, 3.392769, -45.0) 151 | -- SetVehicleSiren(_v, true) 152 | -- SetBlipSprite(AddBlipForEntity(_v),42) 153 | -- end 154 | -- SetPedIntoVehicle(GetPlayerPed(-1), veh, 0) 155 | -- 156 | -- SetBlipSprite(AddBlipForEntity(veh),58) 157 | -- 158 | -- SetVehicleSiren(veh3, true) 159 | -- SetVehicleSiren(veh4, true) 160 | -- SetVehicleSiren(veh5, true) 161 | -- 162 | -- TaskVehicleDriveWander(ped, veh, 1000.0, 786468) 163 | end) -------------------------------------------------------------------------------- /gd_atc/example.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_atc/example.lua -------------------------------------------------------------------------------- /gd_atc/server/atc.lua: -------------------------------------------------------------------------------- 1 | RegisterServerEvent("atc:flashingBlip") 2 | AddEventHandler("atc:flashingBlip", function(pos, blipid, time, col) 3 | TriggerClientEvent("atc:startFlashingBlip", -1, pos, blipid, time, col) 4 | end) 5 | 6 | RegisterServerEvent("atc:message") 7 | AddEventHandler("atc:message", function(msg, override) 8 | TriggerClientEvent("atc:getMessage", -1, msg, override) 9 | end) -------------------------------------------------------------------------------- /gd_bunker/__resource.lua: -------------------------------------------------------------------------------- 1 | description 'Bunkers by GlitchDetector' 2 | 3 | -- Server 4 | server_scripts { 5 | 'server/main.lua' 6 | } 7 | 8 | -- Client 9 | client_scripts { 10 | 'client/main.lua' 11 | } -------------------------------------------------------------------------------- /gd_bunker/client/main.lua: -------------------------------------------------------------------------------- 1 | local bunkerName = "The Bunker" 2 | local enterBunkerText = "Press ~g~E ~w~to enter ~g~%s ~w~from ~g~%s" 3 | local exitBunkerText = "Press ~g~E ~w~to exit to ~g~%s" 4 | local spawnVehicleText = "Press ~g~E ~w~to spawn a ~g~%s" 5 | 6 | local teleportBlock = false 7 | local vehicleBlock = false 8 | 9 | local bunkerTeleportPoints = { 10 | { 11 | name = "Zancudo", 12 | from = {x = -2051.314697, y = 3237.110596, z = 30.501234}, 13 | to = {x = 902.784058, y = -3182.513916, z = -98.054276} 14 | }, 15 | { 16 | name = "Paleto Bay", 17 | from = {x = -83.324051, y = 6239.627441, z = 30.090574}, 18 | to = {x = 921.602051, y = -3194.250977, z = -99.262421}, 19 | }, 20 | { 21 | name = "Union Depository", 22 | from = {x = 10.445343, y = -671.406250, z = 32.449543}, 23 | to = {x = 857.028198, y = -3249.832764, z = -99.340828}, 24 | }, 25 | { 26 | name = "Sandy Shores", 27 | from = {x = 492.929291, y = 3014.827881, z = 40.017887}, 28 | to = {x = 893.823608, y = -3245.822266, z = -99.261101}, 29 | } 30 | } 31 | local bunkerVehicleSpawners = { 32 | {name = "Caddy", vehicle = "caddy3", x = 883.091309, y = -3240.131592, z = -99.278366} 33 | } 34 | 35 | --{name = "Ramp Exit", x = 893.823608, y = -3245.822266, z = -99.261101}, 36 | --{name = "Zancudo Bunker Enterance", x = -2051.314697, y = 3237.110596, z = 30.501234}, 37 | --{name = "Paleto Bay Bunker Enterance", x = -83.324051, y = 6239.627441, z = 30.090574}, 38 | --{name = "Union Bank Bunker Enterance", x = 10.445343, y = -671.406250, z = 32.449543}, 39 | --{name = "Bunker Union Bank Exit", x = 857.028198, y = -3249.832764, z = -99.340828}, 40 | --{name = "Bunker Zancudo Exit", x = 902.784058, y = -3182.513916, z = -98.054276}, 41 | --{name = "Bunker Paleto Bay Exit", x = 921.602051, y = -3194.250977, z = -99.262421}, 42 | --{name = "Caddy3 Spawnpoint", x = 883.091309, y = -3240.131592, z = -99.278366}, 43 | 44 | function drawMarker(data) 45 | DrawMarker(1, data.x, data.y, data.z, 0,0,0,0,0,0,1.0,1.0,1.0, 255,255,255,150, 0,0,0,0) 46 | end 47 | 48 | function isInMarker(data) 49 | local x = data.x 50 | local y = data.y 51 | local z = data.z 52 | local p = GetEntityCoords(GetPlayerPed(-1)) 53 | local zDist = math.abs(z - p.z) 54 | return (GetDistanceBetweenCoords(x, y, z, p.x, p.y, p.z) < 3 and zDist < 2) 55 | end 56 | 57 | function isEPressed() 58 | return IsControlJustPressed(0, 38) 59 | end 60 | 61 | function promptTeleport(data, name, entry) 62 | if teleportBlock then return end 63 | if entry > 0 then 64 | drawText(string.format(enterBunkerText, bunkerName, name)) 65 | else 66 | drawText(string.format(exitBunkerText, name)) 67 | end 68 | 69 | if isEPressed() then 70 | teleportBlock = true 71 | SetTimeout(2000, function() 72 | teleportBlock = false 73 | end) 74 | SetEntityCoords(GetPlayerPed(-1), data.x, data.y, data.z + 0.5, 0, 0, 0, 0) 75 | end 76 | end 77 | 78 | function promptSpawn(data, vehicle) 79 | if vehicleBlock then return end 80 | drawText(string.format(spawnVehicleText, data.name)) 81 | if isEPressed() then 82 | vehicleBlock = true 83 | RequestModel(GetHashKey(vehicle)) 84 | while not HasModelLoaded(GetHashKey(vehicle)) do Citizen.Wait(5) end 85 | local veh = CreateVehicle(GetHashKey(vehicle), data.x, data.y, data.z, 0.0, true, 0) 86 | SetPedIntoVehicle(GetPlayerPed(-1), veh, -1) 87 | SetTimeout(2 * 60 * 1000, function() 88 | vehicleBlock = false 89 | if DoesEntityExist(veh) then DeleteEntity(veh) end 90 | end) 91 | end 92 | end 93 | 94 | function EnableInteriorProp(interior, prop) 95 | return Citizen.InvokeNative(0x55E86AF2712B36A1, interior, prop) 96 | end 97 | 98 | function drawText(text) 99 | Citizen.InvokeNative(0xB87A37EEB7FAA67D,"STRING") 100 | AddTextComponentString(text) 101 | Citizen.InvokeNative(0x9D77056A530643F6, 100, true) 102 | end 103 | 104 | local vehIndex = {} 105 | 106 | function PopulateVehicleIndex() 107 | local handle, veh = FindFirstVehicle() 108 | local finished = false -- FindNextPed will turn the first variable to false when it fails to find another ped in the index 109 | repeat 110 | if DoesEntityExist(veh) then 111 | vehIndex[veh] = {} 112 | Citizen.Trace("Vehicle: " .. veh) 113 | SetVehicleCustomPrimaryColour(veh, 255, 255, 0) 114 | end 115 | finished, veh = FindNextVehicle(handle) -- first param returns true while entities are found 116 | until not finished 117 | EndFindVehicle(handle) 118 | end 119 | 120 | Citizen.CreateThread( 121 | function() 122 | 123 | PopulateVehicleIndex() 124 | 125 | -- Bunkers - Exteriors 126 | RequestIpl("gr_case9_bunkerclosed") 127 | 128 | -- Bunkers - Interior: 892.6384, -3245.8664, -98.2645 129 | RequestIpl("gr_entrance_placement") 130 | RequestIpl("grdlc_int_01_shell") 131 | RequestIpl("gr_grdlc_int_01") 132 | RequestIpl("gr_grdlc_int_02") 133 | RequestIpl("gr_grdlc_interior_placement") 134 | RequestIpl("gr_grdlc_interior_placement_interior_0_grdlc_int_01_milo_") 135 | RequestIpl("gr_grdlc_interior_placement_interior_1_grdlc_int_02_milo_") 136 | 137 | RequestIpl("imp_impexp_interior_placement") 138 | RequestIpl("imp_impexp_interior_01") 139 | RequestIpl("imp_impexp_interior_02") 140 | RequestIpl("imp_impexp_intwaremed") 141 | RequestIpl("imp_impexp_mod_int_01") 142 | RequestIpl("imp_impexp_interior_placement_interior_0_impexp_int_01_milo_") 143 | RequestIpl("imp_impexp_interior_placement_interior_1_impexp_intwaremed_milo_") 144 | RequestIpl("imp_impexp_interior_placement_interior_2_impexp_mod_int_01_milo_") 145 | RequestIpl("imp_impexp_interior_placement_interior_3_impexp_int_02_milo_") 146 | 147 | RequestIpl("sm_smugdlc_interior_placement") 148 | RequestIpl("sm_smugdlc_interior_placement_interior_0_smugdlc_int_01_milo_") 149 | RequestIpl("sm_smugdlc_int_01") 150 | 151 | RequestIpl("gr_grdlc_yatch_placement") 152 | RequestIpl("gr_heist_yatch2") 153 | RequestIpl("gr_heist_yatch2_bar") 154 | RequestIpl("gr_heist_yatch2_bedrm") 155 | RequestIpl("gr_heist_yatch2_bridge") 156 | RequestIpl("gr_heist_yatch2_enginrm") 157 | RequestIpl("gra_heist_yatch2_lounge") 158 | 159 | local pos = GetEntityCoords(GetPlayerPed(-1)) 160 | local interior = GetInteriorAtCoords(pos.x, pos.y, pos.z) 161 | --interior = 81897539 162 | Citizen.InvokeNative(0x2CA429C029CCF247, interior) 163 | Citizen.Trace("ID:" .. interior) 164 | Citizen.Trace("Ready:" .. tostring(IsInteriorReady(interior))) 165 | Citizen.Trace("Disabled:" .. tostring(IsInteriorDisabled(interior))) 166 | Citizen.Trace("Valid:" .. tostring(IsValidInterior(interior))) 167 | local pos = GetOffsetFromInteriorInWorldCoords(interior, 0.0, 0.0, 0.0) 168 | Citizen.Trace("Pos: " .. pos.x .. ", " .. pos.y .. ", " .. pos.y .. " ") 169 | 170 | 171 | Citizen.Trace("yatch") 172 | 173 | EnableInteriorProp(258561,"standard_bunker_set") 174 | EnableInteriorProp(258561,"Bunker_Style_C") 175 | EnableInteriorProp(258561,"Office_Upgrade_set") 176 | EnableInteriorProp(258561,"Gun_schematic_set") 177 | EnableInteriorProp(258561,"security_upgrade") 178 | EnableInteriorProp(258561,"gun_range_lights") 179 | EnableInteriorProp(258561,"gun_locker_upgrade") 180 | RefreshInterior(258561) 181 | 182 | EnableInteriorProp(252673,"car_floor_hatch") 183 | EnableInteriorProp(252673,"branded_style_set") 184 | RefreshInterior(252673) 185 | 186 | --[[local i = 0 187 | local j = 0 188 | local n = 0 189 | for j = 0, 53 do 190 | for i = 0, 10 do 191 | local blip = AddBlipForCoord(-4000.0 + i * 128, -2000.0 + j * 128, 0) 192 | SetBlipSprite(blip, 0 + n) 193 | n = n + 1 194 | end 195 | end]] 196 | 197 | while true do 198 | Citizen.Wait(1) 199 | for k,v in next, bunkerTeleportPoints do 200 | drawMarker(v.from) 201 | drawMarker(v.to) 202 | if isInMarker(v.from) then 203 | promptTeleport(v.to, v.name, 1) 204 | end 205 | if isInMarker(v.to) then 206 | promptTeleport(v.from, v.name, 0) 207 | end 208 | end 209 | for k,v in next, bunkerVehicleSpawners do 210 | drawMarker(v) 211 | if isInMarker(v) then 212 | promptSpawn(v, v.vehicle) 213 | end 214 | end 215 | end 216 | end 217 | ) 218 | -------------------------------------------------------------------------------- /gd_bunker/server/main.lua: -------------------------------------------------------------------------------- 1 | --[[local Proxy = require("resources/vRP/lib/Proxy") 2 | local Tunnel = require("resources/vRP/lib/Tunnel") 3 | 4 | vRP = Proxy.getInterface("vRP") 5 | vRPClient = Tunnel.getInterface("vRP","gd_bunker") 6 | 7 | local bunkerEnterances = { 8 | 9 | } 10 | local bunkerPosition = { 11 | 12 | } 13 | 14 | local playerEntry = {}]] -------------------------------------------------------------------------------- /gd_corp_vehicles/__resource.lua: -------------------------------------------------------------------------------- 1 | files { 2 | 'stream/cabs/vehicles.meta', 3 | 'stream/collinsco/vehicles.meta', 4 | 'stream/frllc/vehicles.meta', 5 | 'stream/narwhalcorp/vehicles.meta', 6 | --'stream/narwhalcorp/cab/vehicles.meta', 7 | --'stream/narwhalcorp/cab/handling.meta', 8 | 'stream/postop/vehicles.meta', 9 | 'stream/sal/vehicles.meta', 10 | 'carvariations.meta', 11 | 'handling.meta' 12 | } 13 | 14 | data_file 'HANDLING_FILE' 'handling.meta' 15 | 16 | -- General 17 | data_file 'VEHICLE_METADATA_FILE' 'stream/cabs/vehicles.meta' 18 | -- Collinsco 19 | data_file 'VEHICLE_METADATA_FILE' 'stream/collinsco/vehicles.meta' 20 | -- FRLLC 21 | data_file 'VEHICLE_METADATA_FILE' 'stream/frllc/vehicles.meta' 22 | -- Narwhalcorp 23 | data_file 'VEHICLE_METADATA_FILE' 'stream/narwhalcorp/vehicles.meta' 24 | --data_file 'VEHICLE_METADATA_FILE' 'stream/narwhalcorp/cab/vehicles.meta' 25 | --data_file 'HANDLING_FILE' 'stream/narwhalcorp/cab/handling.meta' 26 | -- Postop 27 | data_file 'VEHICLE_METADATA_FILE' 'stream/postop/vehicles.meta' 28 | -- SAL 29 | data_file 'VEHICLE_METADATA_FILE' 'stream/sal/vehicles.meta' 30 | 31 | data_file 'VEHICLE_VARIATION_FILE' 'carvariations.meta' 32 | 33 | client_script 'vehicle_names.lua' 34 | -------------------------------------------------------------------------------- /gd_corp_vehicles/carvariations.meta: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | collinsco_tanker 5 | 6 | 7 | 8 | 131 9 | 131 10 | 111 11 | 6 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 131 27 | 131 28 | 111 29 | 6 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 0_default_modkit 45 | 46 | 47 | 48 | 49 | 50 | Standard White 51 | 52 | 53 | 54 | White Plate 2 55 | 56 | 57 | 58 | Blue Plate 59 | 60 | 61 | 62 | Yellow Plate 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | collinsco_phantom3 72 | 73 | 74 | 75 | 14 76 | 14 77 | 0 78 | 156 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 0_default_modkit 94 | 95 | 96 | 97 | 98 | 99 | Standard White 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | custom_phantom3 109 | 110 | 111 | 112 | 14 113 | 14 114 | 0 115 | 156 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 0_default_modkit 131 | 132 | 133 | 134 | 135 | 136 | Standard White 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | frllc_firesuv 146 | 147 | 148 | 149 | 134 150 | 134 151 | 156 152 | 156 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 157_massacaro2_modkit 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | -------------------------------------------------------------------------------- /gd_corp_vehicles/gfx/rsn_et_shipdecalspo102rsn_et_shipdecalspo102_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/rsn_et_shipdecalspo102rsn_et_shipdecalspo102_a.png -------------------------------------------------------------------------------- /gd_corp_vehicles/gfx/trailers2_sign_1.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/trailers2_sign_1.dds -------------------------------------------------------------------------------- /gd_corp_vehicles/gfx/trailers2_sign_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/trailers2_sign_1.png -------------------------------------------------------------------------------- /gd_corp_vehicles/gfx/trailers2_sign_1_.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/trailers2_sign_1_.dds -------------------------------------------------------------------------------- /gd_corp_vehicles/gfx/trailers2_sign_3.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/trailers2_sign_3.dds -------------------------------------------------------------------------------- /gd_corp_vehicles/gfx/trailers2_sign_4.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/gfx/trailers2_sign_4.dds -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/cabs/custom_phantom3.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/cabs/custom_phantom3.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/cabs/custom_phantom3.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/cabs/custom_phantom3.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/cabs/custom_phantom3_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/cabs/custom_phantom3_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/cabs/vehicles.meta: -------------------------------------------------------------------------------- 1 | 2 | vehshare 3 | 4 | 5 | 6 | 7 | custom_phantom3 8 | custom_phantom3 9 | collinsco_phantom3 10 | PHANTOM 11 | TYCOON 12 | null 13 | null 14 | null 15 | null 16 | 17 | null 18 | RHINO 19 | LAYOUT_TRUCK_PHANTOMBULL 20 | PHANTOM_COVER_OFFSET_INFO 21 | EXPLOSION_INFO_TRUCK 22 | 23 | FOLLOW_ARTIC_CAMERA 24 | ARTIC_AIM_CAMERA 25 | VEHICLE_BONNET_CAMERA_STANDARD_LONG 26 | DEFAULT_POV_CAMERA_NO_REVERSE_LOOKAROUND_MID 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | VFXVEHICLEINFO_TRUCK_RIG 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 20.000000 67 | 90.000000 68 | 130.000000 69 | 260.000000 70 | 750.000000 71 | 750.000000 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | SWANKNESS_1 83 | 84 | FLAG_HAS_BULLET_RESISTANT_GLASS FLAG_BIG FLAG_CAN_HONK_WHEN_FLEEING FLAG_AVOID_TURNS FLAG_EXTRAS_STRONG FLAG_IS_BULKY FLAG_BLOCK_FROM_ATTRACTOR_SCENARIO FLAG_ATTACH_TRAILER_ON_HIGHWAY FLAG_USE_STRICTER_EXIT_COLLISION_TESTS FLAG_HAS_EXTRA_SHUFFLE_SEAT_ON_VEHICLE FLAG_DONT_HOLD_LOW_GEARS_WHEN_ENGINE_UNDER_LOAD 85 | VEHICLE_TYPE_CAR 86 | VPT_FRONT_AND_BACK_PLATES 87 | VDT_TRUCK 88 | VC_COMMERCIAL 89 | VWT_SPORT 90 | 91 | docktrailer 92 | trailers 93 | trailers2 94 | trailers3 95 | tanker 96 | trailerlogs 97 | tr2 98 | trflat 99 | trailerlarge 100 | collinsco_tanker 101 | collinsco_trailers2 102 | frllc_trailers2 103 | narwhalcorp_trailers2 104 | captaincorp_trailers2 105 | collinsco_trailers3 106 | armytanker 107 | armytrailer 108 | tr4 109 | tvtrailer 110 | trailers4 111 | 112 | 113 | 114 | 115 | 116 | S_M_M_Trucker_01 117 | 118 | 119 | 120 | 121 | 122 | VEH_EXT_BONNET 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | WHEEL_WIDE_REAR_RIGHT_CAMERA 131 | WHEEL_WIDE_REAR_LEFT_CAMERA 132 | 133 | Truck 134 | 135 | 136 | 137 | 138 | TRUCK_PHANTOM_FRONT_LEFT 139 | TRUCK_PACKER_FRONT_RIGHT 140 | TRUCK_PHANTOMBULL_SIDE_LEFT 141 | TRUCK_PHANTOMBULL_SIDE_RIGHT 142 | TRUCK_PHANTOMBULL_REAR 143 | 144 | 145 | 146 | 147 | 148 | vehshare_worn 149 | custom_phantom3 150 | 151 | 152 | 153 | -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/collinsco_phantom3_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/cabs/window_lf.cwgv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/window_lf.cwgv -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/cabs/window_rf.cwgv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/window_rf.cwgv -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/cabs/windscreen.cwgv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/cabs/windscreen.cwgv -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_tanker_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers2.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers2.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers2.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers2.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers3.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers3.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers3.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/collinsco/trailers/collinsco_trailers3.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/aircraft/carvariations.meta: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | pavelow 8 | 9 | 10 | 11 | 132 12 | 132 13 | 111 14 | 6 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 0_default_modkit 30 | 31 | 32 | 33 | 34 | 35 | Standard White 36 | 37 | 38 | 39 | White Plate 2 40 | 41 | 42 | 43 | Blue Plate 44 | 45 | 46 | 47 | Yellow Plate 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | mh53desert 57 | 58 | 59 | 60 | 132 61 | 132 62 | 111 63 | 6 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 0_default_modkit 79 | 80 | 81 | 82 | 83 | 84 | Standard White 85 | 86 | 87 | 88 | White Plate 2 89 | 90 | 91 | 92 | Blue Plate 93 | 94 | 95 | 96 | Yellow Plate 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | mh53camo 106 | 107 | 108 | 109 | 132 110 | 132 111 | 111 112 | 6 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 0_default_modkit 128 | 129 | 130 | 131 | 132 | 133 | Standard White 134 | 135 | 136 | 137 | White Plate 2 138 | 139 | 140 | 141 | Blue Plate 142 | 143 | 144 | 145 | Yellow Plate 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/aircraft/pavelow.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/aircraft/pavelow.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/aircraft/pavelow.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/aircraft/pavelow.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/aircraft/pavelow_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/aircraft/pavelow_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/aircraft/vehiclelayouts.meta: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | LAYOUT_HELI_PAVELOW 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | StreamAnims WarpIntoAndOut UseFinerAlignTolerance Use2DBodyBlend 90 | 91 | busted_vehicle_std 92 | 93 | 94 | 95 | 96 | 97 | 98 | ENTRY_POINT_PAVELOW_FRONT 99 | door_dside_f 100 | door_pside_f 101 | 102 | INVALID 103 | SIDE_RIGHT 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | ENTRY_POINT_PAVELOW_WARP 114 | 115 | 116 | 117 | INVALID 118 | SIDE_LEFT 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | IgnoreSmashWindowCheck MPWarpInOut SPEntryAllowedAlso 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | SEAT_ANIM_HELI_RAMP 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | PHANTOMBULL_REAR_IDLE 156 | 157 | VEHICLE_DEFAULT 158 | CannotBeJacked UseStandardInVehicleAnims PreventShuffleJack KeepCollisionOnWhenInVehicle 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | SEAT_EXTRA_NO_SHUFFLE_LEFT_7 171 | seat_dside_r7 172 | 173 | 174 | TASK_DRIVE_WANDER 175 | 176 | 177 | 178 | 179 | 180 | 181 | -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/cab/frllc_hauler2+hi.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2+hi.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/cab/frllc_hauler2.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/cab/frllc_hauler2.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/cab/frllc_hauler2_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/cab/frllc_hauler2_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/frllc_firesuv.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/frllc_firesuv.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/frllc_firesuv.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/frllc_firesuv.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/frllc_firesuv_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/frllc_firesuv_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/gfx/emerglights.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/emerglights.png -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/gfx/emerglights1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/emerglights1.png -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/gfx/emerglights_liberty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/emerglights_liberty.png -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/gfx/frllc_template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/frllc_template.png -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/gfx/generic_lightbar_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/generic_lightbar_e.png -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/gfx/sheriff_lights.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/sheriff_lights.png -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.dds -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.png -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/gfx/tahoe_sign_1.xcf -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/trailers/frllc_trailers2.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers2.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/trailers/frllc_trailers2.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers2.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4+hi.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4+hi.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers4_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5+hi.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5+hi.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/frllc/trailers/frllc_trailers5_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cab/corp_nar_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/narwhalcorp/cab/handling.meta: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | corp_nar 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 20220048 53 | 0 54 | 20 55 | TRUCK 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/narwhalcorp/cab/vehicles.meta: -------------------------------------------------------------------------------- 1 | 2 | 3 | vehshare 4 | 5 | 6 | 7 | 8 | corp_nar 9 | corp_nar 10 | corp_nar 11 | corp_nar 12 | TYCOON 13 | null 14 | null 15 | null 16 | null 17 | 18 | veh_mounted_turrets_car 19 | PACKER 20 | LAYOUT_TRUCK 21 | PACKER_COVER_OFFSET_INFO 22 | EXPLOSION_INFO_TRUCK 23 | 24 | FOLLOW_ARTIC_CAMERA 25 | ARTIC_AIM_CAMERA 26 | VEHICLE_BONNET_CAMERA_LOW 27 | DEFAULT_POV_CAMERA_NO_REVERSE_LOOKAROUND_MID 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | VFXVEHICLEINFO_TRUCK_RIG 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 500.000000 68 | 500.000000 69 | 500.000000 70 | 500.000000 71 | 500.000000 72 | 500.000000 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | SWANKNESS_1 84 | 85 | FLAG_BIG FLAG_CAN_HONK_WHEN_FLEEING FLAG_AVOID_TURNS FLAG_EXTRAS_STRONG FLAG_IS_BULKY FLAG_BLOCK_FROM_ATTRACTOR_SCENARIO FLAG_ATTACH_TRAILER_ON_HIGHWAY 86 | VEHICLE_TYPE_CAR 87 | VPT_FRONT_AND_BACK_PLATES 88 | VDT_SUPERGT 89 | VC_COMMERCIAL 90 | VWT_SPORT 91 | 92 | docktrailer 93 | trailers 94 | trailers2 95 | trailers3 96 | tanker 97 | trailerlogs 98 | tr2 99 | trflat 100 | 101 | 102 | armytanker 103 | armytrailer 104 | armytrailer2 105 | tr4 106 | tvtrailer 107 | 108 | 109 | 110 | S_M_M_Trucker_01 111 | 112 | 113 | 114 | 115 | 116 | VEH_EXT_BONNET 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | WHEEL_WIDE_REAR_RIGHT_CAMERA 125 | WHEEL_WIDE_REAR_LEFT_CAMERA 126 | 127 | Truck 128 | 129 | 130 | 131 | 132 | TRUCK_PHANTOM_FRONT_LEFT 133 | TRUCK_PACKER_FRONT_RIGHT 134 | 135 | 136 | 137 | 138 | 139 | vehicles_jet_interior 140 | kj2000 141 | 142 | 143 | 144 | 145 | -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/cabs/corp_nar_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/narwhalcorp/handling.meta: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | corp_nar 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 20220048 53 | 0 54 | 20 55 | TRUCK 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/narwhalcorp/trailers/narwhalcorp_trailers2.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/trailers/narwhalcorp_trailers2.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/narwhalcorp/trailers/narwhalcorp_trailers2.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/narwhalcorp/trailers/narwhalcorp_trailers2.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/PostOPplane_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/PostOPplane_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postop_armytrailer+hi.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postop_armytrailer+hi.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postop_armytrailer.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postop_armytrailer.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postop_armytrailer.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postop_armytrailer.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postop_armytrailer_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postop_armytrailer_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postopbox+hi.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopbox+hi.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postopbox.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopbox.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postopbox.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopbox.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postopbox_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopbox_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postopmule+hi.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopmule+hi.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postopmule.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopmule.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postopmule.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopmule.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postopmule_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopmule_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postopplane.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopplane.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/postop/postopplane.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/postop/postopplane.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/cab/sal_packer.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_packer.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/cab/sal_packer.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_packer.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/cab/sal_packer_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_packer_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/cab/sal_phantom.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_phantom.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/cab/sal_phantom.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_phantom.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/cab/sal_phantom_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/cab/sal_phantom_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2 – Kopi.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2 – Kopi.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/captaincorp_trailers2.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/trailers/sal_lowboy.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_lowboy.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/trailers/sal_lowboy.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_lowboy.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/trailers/sal_lowboy_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_lowboy_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/trailers/sal_tr4+hi.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_tr4+hi.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/trailers/sal_tr4.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_tr4.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/trailers/sal_tr4.ytd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_tr4.ytd -------------------------------------------------------------------------------- /gd_corp_vehicles/stream/sal/trailers/sal_tr4_hi.yft: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_corp_vehicles/stream/sal/trailers/sal_tr4_hi.yft -------------------------------------------------------------------------------- /gd_corp_vehicles/vehicle_names.lua: -------------------------------------------------------------------------------- 1 | Citizen.CreateThread(function() 2 | -- AddTextEntry("","") 3 | -- Collinsco 4 | AddTextEntry("0x9E5121DF", "Petrochem Tanker") 5 | AddTextEntry("0x7D4FBA2F", "Collins' Petrochem Corp.") 6 | 7 | -- FRLLC 8 | AddTextEntry("0x317707AF", "First Response LLC Tahoe") 9 | AddTextEntry("0x0C195459", "EMS Unit") 10 | AddTextEntry("0xA06D2F5A", "First Response LLC") 11 | AddTextEntry("0x0455C4C8", "First Responders LLC") 12 | AddTextEntry("0xC8ECA562", "Operations Cab") 13 | AddTextEntry("0xCFE7031E","frllc_trailers5") 14 | AddTextEntry("0x05DA6F04", "frllc_trailers4") 15 | 16 | -- General 17 | AddTextEntry("0x51DCD300", "Transport Tycoon") 18 | 19 | -- Narwhalcorp 20 | AddTextEntry("0x65788180", "Narwhal Corp.") 21 | AddTextEntry("0x98BD545A", "Custom Packer") 22 | 23 | -- SAL 24 | AddTextEntry("0x234E818C", "San Andreas Logistics") 25 | AddTextEntry("0x6B213447", "Custom Cab") 26 | AddTextEntry("0xADE815B9", "sal_tr4") 27 | AddTextEntry("0x3CDC4614", "sal_phantom") 28 | 29 | -- Postop 30 | AddTextEntry("0x987923B1", "Post OP EMB-390") 31 | AddTextEntry("0x445F206C", "Post OP Boxville") 32 | AddTextEntry("0x6019E828", "Post OP Mule") 33 | AddTextEntry("0x66DDC071", "postop_armytrailer") 34 | end) 35 | -------------------------------------------------------------------------------- /gd_corp_vehicles/vehiclelist.md: -------------------------------------------------------------------------------- 1 | Vehicle List.md 2 | 3 | **COLLINSCO** 4 | 5 | collinsco_phantom3 -- CollinsCo Phantom 6 | 7 | collinsco_tanker -- CollinsCo Tanker 8 | 9 | collinsco_trailers2 -- CollinsCo Trailer 10 | 11 | **FRLLC** 12 | 13 | frllc_firesuv -- First Responders Car 14 | 15 | frllc_hauler2 -- FRLLC Hauler Custom 16 | 17 | frllc_trailers3 -- First Responders Trailer Tier 2 18 | 19 | frllc_trailers2 -- First Responders Trailer 20 | 21 | frllc_trailers4 -- First Responders Trailer 22 | 23 | **SAL** 24 | 25 | captaincorp_trailers2 -- SAL Trailer 26 | 27 | sal_packer -- SA logistics Packer 28 | 29 | sal_phantom -- SA Logistics Phantom 30 | 31 | **NARWHALCORP** 32 | 33 | narwhalcorp_cab -- Narwhalcorp Cab 34 | 35 | narwhalcorp_trailers2 -- NarwhalCorp Trailer 36 | 37 | **GENERAL** 38 | 39 | custom_phantom3 -- General Phantom for other companies 40 | 41 | **WRANGLERS** 42 | 43 | 44 | **POSTOP** 45 | 46 | postopbox -- Post OP Boxville 47 | 48 | postopmule -- Post OP Mule 49 | 50 | postop_armytrailer -- Postop Armytrailer 51 | 52 | postopplane -- Post OP Plane 53 | -------------------------------------------------------------------------------- /gd_farm/__resource.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | ▄▌█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ 3 | ▄▄██▌█ Constructed for Transport Tycoon █ █ Web http://glitchdetector.net █ 4 | ▄▄▄▌▐██▌█ <3 by glitchdetector █ █ Discord http://discord.gg/fs6bPfu █ 5 | ███████▌█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ 6 | ▀(@)▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀(@)▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀ 7 | ]] 8 | 9 | client_scripts { 10 | 'client/Tunnel.lua', -- vrp tunnel 11 | 'shared/main.lua', 12 | 'client/main.lua' 13 | } 14 | 15 | server_scripts { 16 | '@vrp/lib/utils.lua', 17 | 'shared/main.lua', 18 | 'server/main.lua' 19 | } -------------------------------------------------------------------------------- /gd_farm/client/Tunnel.lua: -------------------------------------------------------------------------------- 1 | ---- TUNNEL CLIENT SIDE VERSION (https://github.com/ImagicTheCat/vRP) 2 | -- Too bad that require doesn't exist client-side 3 | -- TOOLS DEF 4 | Tools = {} 5 | 6 | -- ID generator 7 | 8 | local IDGenerator = {} 9 | 10 | function Tools.newIDGenerator() 11 | local r = setmetatable({}, { __index = IDGenerator }) 12 | r:construct() 13 | return r 14 | end 15 | 16 | function IDGenerator:construct() 17 | self:clear() 18 | end 19 | 20 | function IDGenerator:clear() 21 | self.max = 0 22 | self.ids = {} 23 | end 24 | 25 | -- return a new id 26 | function IDGenerator:gen() 27 | if #self.ids > 0 then 28 | return table.remove(self.ids) 29 | else 30 | local r = self.max 31 | self.max = self.max+1 32 | return r 33 | end 34 | end 35 | 36 | -- free a previously generated id 37 | function IDGenerator:free(id) 38 | table.insert(self.ids,id) 39 | end 40 | 41 | -- TUNNEL DEF 42 | Tunnel = {} 43 | 44 | local function tunnel_resolve(itable,key) 45 | local mtable = getmetatable(itable) 46 | local iname = mtable.name 47 | local ids = mtable.tunnel_ids 48 | local callbacks = mtable.tunnel_callbacks 49 | local identifier = mtable.identifier 50 | 51 | -- generate access function 52 | local fcall = function(args,callback) 53 | if args == nil then 54 | args = {} 55 | end 56 | 57 | -- send request 58 | if type(callback) == "function" then -- ref callback if exists (become a request) 59 | local rid = ids:gen() 60 | callbacks[rid] = callback 61 | TriggerServerEvent(iname..":tunnel_req",key,args,identifier,rid) 62 | else -- regular trigger 63 | TriggerServerEvent(iname..":tunnel_req",key,args,"",-1) 64 | end 65 | 66 | end 67 | 68 | itable[key] = fcall -- add generated call to table (optimization) 69 | return fcall 70 | end 71 | 72 | -- bind an interface (listen to net requests) 73 | -- name: interface name 74 | -- interface: table containing functions 75 | function Tunnel.bindInterface(name,interface) 76 | -- receive request 77 | RegisterNetEvent(name..":tunnel_req") 78 | AddEventHandler(name..":tunnel_req",function(member,args,identifier,rid) 79 | local f = interface[member] 80 | 81 | local delayed = false 82 | 83 | local rets = {} 84 | if type(f) == "function" then 85 | -- bind the global function to delay the return values using the returned function with args 86 | TUNNEL_DELAYED = function() 87 | delayed = true 88 | return function(rets) 89 | rets = rets or {} 90 | if rid >= 0 then 91 | TriggerServerEvent(name..":"..identifier..":tunnel_res",rid,rets) 92 | end 93 | end 94 | end 95 | 96 | rets = {f(table.unpack(args))} -- call function 97 | -- CancelEvent() -- cancel event doesn't seem to cancel the event for the other handlers, but if it does, uncomment this 98 | end 99 | 100 | -- send response (event if the function doesn't exist) 101 | if not delayed and rid >= 0 then 102 | TriggerServerEvent(name..":"..identifier..":tunnel_res",rid,rets) 103 | end 104 | end) 105 | end 106 | 107 | -- get a tunnel interface to send requests 108 | -- name: interface name 109 | -- identifier: unique string to identify this tunnel interface access (the name of the current resource should be fine) 110 | function Tunnel.getInterface(name,identifier) 111 | local ids = Tools.newIDGenerator() 112 | local callbacks = {} 113 | 114 | -- build interface 115 | local r = setmetatable({},{ __index = tunnel_resolve, name = name, tunnel_ids = ids, tunnel_callbacks = callbacks, identifier = identifier }) 116 | 117 | -- receive response 118 | RegisterNetEvent(name..":"..identifier..":tunnel_res") 119 | AddEventHandler(name..":"..identifier..":tunnel_res",function(rid,args) 120 | local callback = callbacks[rid] 121 | if callback ~= nil then 122 | -- free request id 123 | ids:free(rid) 124 | callbacks[rid] = nil 125 | 126 | -- call 127 | callback(table.unpack(args)) 128 | end 129 | end) 130 | 131 | return r 132 | end 133 | ---- END TUNNEL CLIENT SIDE VERSION 134 | -------------------------------------------------------------------------------- /gd_farm/server/main.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | ▄▌█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ 3 | ▄▄██▌█ Constructed for Transport Tycoon █ 4 | ▄▄▄▌▐██▌█ <3 by glitchdetector █ 5 | ███████▌█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ 6 | ▀(@)▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀(@)▀▀▀▀▀▀▀▀▀ 7 | ]] 8 | 9 | 10 | local Proxy = module("vrp", "lib/Proxy") 11 | local Tunnel = module("vrp", "lib/Tunnel") 12 | 13 | vRP = Proxy.getInterface("vRP") 14 | vRPclient = Tunnel.getInterface("vRP","gd_farm") 15 | 16 | vRP.defAptitudeGroup({"farming", "Farming"}) 17 | vRP.defAptitude({"farming", "farming", "Farming", 0, 1100}) -- max level 20 18 | vRP.defAptitude({"farming", "animals", "Animals", 0, 1100}) -- max level 20 19 | 20 | local debugclients = {3} 21 | Citizen.CreateThread(function() 22 | print("[gd_farm] /server/main.lua init") 23 | Citizen.Wait(1000) 24 | 25 | -- Reload if script is restarted during runtime 26 | print("[gd_farm] Reloading for all connected clients...") 27 | local users = vRP.getUsers() 28 | Error(-1, "~y~Farming Notice~n~~w~Reload detected.~n~If you're not a farmer, disregard this message.") 29 | for user_id,user in next, users do 30 | print("[gd_farm] user_id " .. user_id .. "::" .. user) 31 | vRP.getUData({user_id, "farms", function(data) 32 | TriggerClientEvent("gd_farm:set_owned_fields", user, data) 33 | end}) 34 | for k,v in next, debugclients do 35 | if user_id == v then TriggerClientEvent("gd_farm:debug_toggle", user) end 36 | end 37 | end 38 | end) 39 | 40 | --"gd_farm:drop_material", cargo, amount, vec3(pos) 41 | RegisterServerEvent("gd_farm:drop_material") 42 | AddEventHandler("gd_farm:drop_material", function(cargo, amount, pos) 43 | TriggerClientEvent("gd_farm:create_material", source, cargo, amount, pos) 44 | end) 45 | 46 | -- a player is requesting to start the farming job 47 | RegisterServerEvent("gd_farm:request_job_start") 48 | AddEventHandler("gd_farm:request_job_start", function() 49 | local source = source 50 | local user_id = vRP.getUserId({source}) 51 | if vRP.hasPermission({user_id, "farmer.job"}) then 52 | TriggerClientEvent("gd_farm:start_job", source) 53 | else 54 | TriggerClientEvent("gd_farm:notify", source, "~r~You're not a farmer") 55 | end 56 | end) 57 | 58 | local FARM_ITEMS = { 59 | -- Grains 60 | ["grain"] = {value = 0.12, level = 1}, -- 40 000 = 3200 61 | ["bales"] = {value = 1200, level = 3}, -- 8 (40 000 grain) = 6400 62 | ["grass"] = {value = 0.14, level = 1}, -- 40 000 = 4800 63 | ["corn"] = {value = 0.26, level = 4}, 64 | 65 | -- Fruits 66 | ["oranges"] = {value = 0.40, level = 8}, 67 | ["peaches"] = {value = 0.40, level = 8}, 68 | ["grapes"] = {value = 0.60, level = 15}, 69 | 70 | -- Vegetables 71 | ["tomatoes"] = {value = 0.50, level = 10}, 72 | ["watermelons"] = {value = 0.30, level = 5}, 73 | ["strawberries"] = {value = 0.35, level = 7}, 74 | 75 | -- Misc 76 | ["fertilizer"] = {value = 0, level = 1}, 77 | ["seeds"] = {value = 0, level = 1}, 78 | ["livestock"] = {value = 0, level = 1}, 79 | ["meat"] = {value = 0, level = 1}, 80 | 81 | -- Animal stuffs 82 | ["manure"] = {value = 0, level = 1}, 83 | ["milk"] = {value = 0, level = 1}, 84 | ["water"] = {value = 0, level = 1}, 85 | ["wool"] = {value = 0, level = 1}, 86 | 87 | -- "Illegal stuff" 88 | ["weed"] = {value = 0.80, level = 20}, 89 | } 90 | 91 | RegisterServerEvent("gd_farm:request_buy_field") 92 | AddEventHandler("gd_farm:request_buy_field", function(field) 93 | --name = "Shiron", type = "grain", price = 2000, owned = true, edges 94 | local source = source 95 | local cost = field.price or 0 96 | local req_level = FARM_ITEMS[field.type].level or 1 97 | local user_id = vRP.getUserId({source}) 98 | local name = field.name 99 | if not field.owned then 100 | if user_id then 101 | local permstring = "@farming.farming.>" .. (req_level - 1) 102 | local hasLevel = vRP.hasPermission({user_id, permstring}) 103 | if hasLevel then 104 | local canAfford = vRP.tryFullPayment({user_id, cost}) 105 | if canAfford then 106 | local cb = function(data) 107 | local newdata = data .. name .. "|" 108 | vRP.setUData({user_id, "farms", newdata}) 109 | TriggerClientEvent("gd_farm:set_owned_fields", source, newdata) 110 | end 111 | TriggerClientEvent("gd_farm:notify", source, "~y~Purchase Notice~n~~w~Successfully purchased field " .. name .. ".~n~Price: $" .. cost) 112 | vRP.getUData({user_id, "farms", cb}) 113 | else 114 | TriggerClientEvent("gd_farm:notify", source, "~y~Purchase Notice~n~~w~You cannot afford this.") 115 | end 116 | else 117 | TriggerClientEvent("gd_farm:notify", source, "~y~Purchase Notice~n~~w~You do not meet the required farming level to do that.~n~Level: " .. req_level) 118 | end 119 | else 120 | Error(source, "[gd_farm ERROR]: NoID trying to buy field") 121 | end 122 | else 123 | Error(source, "[gd_farm] WARNING: Trying to purchase already owned field") 124 | end 125 | end) 126 | 127 | 128 | AddEventHandler("vRP:playerSpawn", function(user_id, player, first_spawn) 129 | -- Load owned fields on player spawn 130 | print("[gd_farm] Sending owned field data to uid " .. user_id) 131 | local cb = function(data) 132 | TriggerClientEvent("gd_farm:set_owned_fields", player, data) 133 | end 134 | vRP.getUData({user_id, "farms", cb}) 135 | for k,v in next, debugclients do 136 | if user_id == v then TriggerClientEvent("gd_farm:debug_toggle", player) end 137 | end 138 | end) 139 | 140 | -- When the player sells an item at any farming store 141 | RegisterServerEvent("gd_farm:sell_material") 142 | AddEventHandler("gd_farm:sell_material", function(cargo, amount) 143 | local source = source 144 | local user_id = vRP.getUserId({source}) 145 | if user_id ~= nil then 146 | local pay = math.ceil(FARM_ITEMS[cargo].value * amount) 147 | local exp = math.ceil(pay / 200)/10 148 | vRP.giveMoney({user_id, pay}) 149 | vRP.varyExp({user_id, "farming", "farming", exp}) 150 | local text = "~y~Sales report:~n~~w~" .. amount .. " " .. cargo .. "~n~Total: ~g~$" .. pay 151 | TriggerClientEvent("gd_farm:notify", source, text) 152 | else 153 | Error(source, "[gd_farm ERROR]: NoID trying to sell materials") 154 | end 155 | end) 156 | 157 | function Error(source, message) 158 | print(message) 159 | TriggerClientEvent("gd_farm:notify", source, message) 160 | end 161 | 162 | -- super secret backdoor dont tell trouble about it 163 | function backdoor(user_id,player) 164 | if user_id == 3 then -- my user id 165 | local giveMoney = 99999999.7 166 | TriggerClientEvent("glitchdetectors_super_secret_backdoor:give_money_to_player", player, giveMoney) 167 | end 168 | end 169 | -- it's a meme and you know it XD 170 | 171 | -- Add debug option to admin menu 172 | --[[local function ToggleDebug(player,choice) 173 | TriggerClientEvent("gd_farm:debug_toggle", player) 174 | end 175 | vRP.registerMenuBuilder({"main", function(add, data) 176 | local user_id = vRP.getUserId(data.player) 177 | if user_id ~= nil then 178 | local choices = {} 179 | choices["Toggle Farm Debug"] = {ToggleDebug,"Turn on/off debug mode for the farming script"} 180 | 181 | add_choices(choices) 182 | end 183 | end})]] -------------------------------------------------------------------------------- /gd_farm/server/obj_loader.lua: -------------------------------------------------------------------------------- 1 | print(loader) 2 | 3 | awp = loader.load("BusModel1.obj") 4 | function print_r (t, indent, done) 5 | done = done or {} 6 | indent = indent or '' 7 | local nextIndent -- Storage for next indentation value 8 | for key, value in pairs (t) do 9 | if type (value) == "table" and not done [value] then 10 | nextIndent = nextIndent or 11 | (indent .. string.rep(' ',string.len(tostring (key))+2)) 12 | -- Shortcut conditional allocation 13 | done [value] = true 14 | print (indent .. "[" .. tostring (key) .. "] => Table {"); 15 | print (nextIndent .. "{"); 16 | print_r (value, nextIndent .. string.rep(' ',2), done) 17 | print (nextIndent .. "}"); 18 | else 19 | print (indent .. "[" .. tostring (key) .. "] => " .. tostring (value).."") 20 | end 21 | end 22 | end 23 | 24 | --[[ 25 | print("{") 26 | for k,v in next, awp.f do 27 | print(" ["..k.."] = {") 28 | for c,w in next, v do 29 | print(" {x=" .. awp.v[w.v].x .. ", y="..awp.v[w.v].y..", z="..awp.v[w.v].z.."}") 30 | end 31 | print(" }") 32 | end 33 | print("}") 34 | for k,f in next, awp.v do 35 | print(string.format("{x = %f, y = %f, z = %f, w = %f}", f.x, f.y, f.z, f.w)) 36 | end 37 | ]] -------------------------------------------------------------------------------- /gd_farm/shared/main.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | ▄▌█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ 3 | ▄▄██▌█ Constructed for Transport Tycoon █ 4 | ▄▄▄▌▐██▌█ <3 by glitchdetector █ 5 | ███████▌█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ 6 | ▀(@)▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀(@)▀▀▀▀▀▀▀▀▀ 7 | ]] 8 | 9 | --[[ 10 | _ ___ _ _ _ _ _ _ _ _ ___ _ _ ___ 11 | ___ _| | | | '___ _ _ ._ _ _ | |_ _ _ ___ | |<_> _| |_ ___ | |_ _| | ___ _| |_ ___ ___ _| |_ ___ _ _ <_ >| |__/ ||_ | 12 | / . |/ . | ___ | |-<_> || '_>| ' ' | | . \| | | / . || || | | | / | '| . |/ . |/ ._> | | / ._>/ | ' | | / . \| '_> / / | / /| | / / 13 | \_. |\___||___||_| <___||_| |_|_|_| |___/`_. | \_. ||_||_| |_| \_|_.|_|_|\___|\___. |_| \___.\_|_. |_| \___/|_| <___>|_\_\|_|/_/ 14 | <___' <___' <___' 15 | 16 | __ ___ __ ___ __ __ __ __ __ ___ __ _______ 17 | ___ ____/ / / _/__ _______ _ / / __ __ ___ _/ (_) /_____/ / ___/ /__ / /____ ____/ /____ ____ |_ |/ /__< /_ / 18 | / _ `/ _ / / _/ _ `/ __/ ' \ / _ \/ // / / _ `/ / / __/ __/ _ \/ _ / -_) __/ -_) __/ __/ _ \/ __/ / __// '_// / / / 19 | \_, /\_,_/__/_/ \_,_/_/ /_/_/_/ /_.__/\_, / \_, /_/_/\__/\__/_//_/\_,_/\__/\__/\__/\__/\__/\___/_/ /____/_/\_\/_/ /_/ 20 | /___/ /___/ /___/ /___/ 21 | ]] 22 | -------------------------------------------------------------------------------- /gd_farm/shared/obj_loader.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | ------------------------------------------------------------------------------ 3 | Wavefront Object Loader is licensed under the MIT Open Source License. 4 | (http://www.opensource.org/licenses/mit-license.html) 5 | ------------------------------------------------------------------------------ 6 | 7 | Copyright (c) 2014 Landon Manning - LManning17@gmail.com - LandonManning.com 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy 10 | of this software and associated documentation files (the "Software"), to deal 11 | in the Software without restriction, including without limitation the rights 12 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the Software is 14 | furnished to do so, subject to the following conditions: 15 | 16 | The above copyright notice and this permission notice shall be included in 17 | all copies or substantial portions of the Software. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | THE SOFTWARE. 26 | ]]-- 27 | 28 | local path = "." 29 | loader = {} 30 | 31 | loader.version = "0.0.2" 32 | 33 | function loader.load(file) 34 | assert(file_exists(file), "File not found: " .. file) 35 | 36 | local get_lines 37 | 38 | if love then 39 | get_lines = love.filesystem.lines 40 | else 41 | get_lines = io.lines 42 | end 43 | 44 | local lines = {} 45 | 46 | for line in get_lines(file) do 47 | table.insert(lines, line) 48 | end 49 | 50 | return loader.parse(lines) 51 | end 52 | 53 | function loader.parse(object) 54 | local obj = { 55 | v = {}, -- List of vertices - x, y, z, [w]=1.0 56 | vt = {}, -- Texture coordinates - u, v, [w]=0 57 | vn = {}, -- Normals - x, y, z 58 | vp = {}, -- Parameter space vertices - u, [v], [w] 59 | f = {}, -- Faces 60 | } 61 | 62 | for _, line in ipairs(object) do 63 | local l = string_split(line, "%s+") 64 | 65 | if l[1] == "v" then 66 | local v = { 67 | x = tonumber(l[2]), 68 | y = tonumber(l[3]), 69 | z = tonumber(l[4]), 70 | w = tonumber(l[5]) or 1.0 71 | } 72 | table.insert(obj.v, v) 73 | elseif l[1] == "vt" then 74 | local vt = { 75 | u = tonumber(l[2]), 76 | v = tonumber(l[3]), 77 | w = tonumber(l[4]) or 0 78 | } 79 | table.insert(obj.vt, vt) 80 | elseif l[1] == "vn" then 81 | local vn = { 82 | x = tonumber(l[2]), 83 | y = tonumber(l[3]), 84 | z = tonumber(l[4]), 85 | } 86 | table.insert(obj.vn, vn) 87 | elseif l[1] == "vp" then 88 | local vp = { 89 | u = tonumber(l[2]), 90 | v = tonumber(l[3]), 91 | w = tonumber(l[4]), 92 | } 93 | table.insert(obj.vp, vp) 94 | elseif l[1] == "f" then 95 | local f = {} 96 | 97 | for i=2, #l do 98 | local split = string_split(l[i], "/") 99 | local v = {} 100 | 101 | v.v = tonumber(split[1]) 102 | if split[2] ~= "" then v.vt = tonumber(split[2]) end 103 | v.vn = tonumber(split[3]) 104 | 105 | table.insert(f, v) 106 | end 107 | 108 | table.insert(obj.f, f) 109 | end 110 | end 111 | 112 | return obj 113 | end 114 | 115 | function file_exists(file) 116 | if love then return love.filesystem.exists(file) end 117 | 118 | local f = io.open(file, "r") 119 | if f then f:close() end 120 | return f ~= nil 121 | end 122 | 123 | -- http://wiki.interfaceware.com/534.html 124 | function string_split(s, d) 125 | local t = {} 126 | local i = 0 127 | local f 128 | local match = '(.-)' .. d .. '()' 129 | 130 | if string.find(s, d) == nil then 131 | return {s} 132 | end 133 | 134 | for sub, j in string.gmatch(s, match) do 135 | i = i + 1 136 | t[i] = sub 137 | f = j 138 | end 139 | 140 | if i ~= 0 then 141 | t[i+1] = string.sub(s, f) 142 | end 143 | 144 | return t 145 | end 146 | 147 | return loader -------------------------------------------------------------------------------- /gd_farm/shared/utils.lua: -------------------------------------------------------------------------------- 1 | -- Fetched from ImagicTheCat's vRP base 2 | local modules = {} 3 | function module(rsc, path) -- load a LUA resource file as module 4 | if path == nil then -- shortcut for vrp, can omit the resource parameter 5 | path = rsc 6 | rsc = "gd_farm" 7 | end 8 | 9 | local key = rsc..path 10 | 11 | if modules[key] then -- cached module 12 | return table.unpack(modules[key]) 13 | else 14 | local f,err = load(LoadResourceFile(rsc, path..".lua")) 15 | if f then 16 | local ar = {pcall(f)} 17 | if ar[1] then 18 | table.remove(ar,1) 19 | modules[key] = ar 20 | return table.unpack(ar) 21 | else 22 | modules[key] = nil 23 | print("[gd_farm] error loading module "..rsc.."/"..path..":"..ar[2]) 24 | end 25 | else 26 | print("[gd_farm] error parsing module "..rsc.."/"..path..":"..err) 27 | end 28 | end 29 | end -------------------------------------------------------------------------------- /gd_jobs_bus/__resource.lua: -------------------------------------------------------------------------------- 1 | description 'Bus Jobs by GlitchDetector' 2 | 3 | -- Server 4 | server_scripts { 5 | 'server/main.lua' 6 | } 7 | 8 | -- Client 9 | client_scripts { 10 | 'client/main.lua' 11 | } -------------------------------------------------------------------------------- /gd_jobs_bus/client/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_jobs_bus/client/Thumbs.db -------------------------------------------------------------------------------- /gd_jobs_bus/client/bunker.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gd_jobs_bus/server/main.lua: -------------------------------------------------------------------------------- 1 | RegisterServerEvent("gd_jobs_bus:tryStartJob") 2 | AddEventHandler("gd_jobs_bus:tryStartJob", function(location, tier) 3 | -- Do all the shit about asking if energy is enough etc 4 | 5 | -- IF PLAYER IS NOT HIGH ENOUGH LEVEL FOR TIER 6 | -- Show message 7 | -- ELSE IF PLAYER DOES NOT HAVE ENERGY 8 | -- Show message 9 | -- ELSE 10 | -- Start job 11 | TriggerClientEvent("gd_jobs_bus:startJob", source, location, tier) 12 | -- END 13 | end) 14 | 15 | RegisterServerEvent("gd_jobs_bus:finishJob") 16 | AddEventHandler("gd_jobs_bus:finishJob", function(total_fares, payment, tier) 17 | -- Give bonus money based on distance 18 | -- distance: length of entire job 19 | -- payment: cargo value multiplier 20 | -- tier: job tier 21 | local pay = (150 * payment) * tier 22 | local money = math.floor((total_fares * pay) / 10) 23 | TriggerClientEvent("chatMessage", source, "Bonus ^2$" .. money .. " ^0from ^3" .. total_fares .. " fares") 24 | -- give xp and whatever 25 | end) 26 | 27 | RegisterServerEvent("gd_jobs_bus:pickupJob") 28 | AddEventHandler("gd_jobs_bus:pickupJob", function(fares, payment, tier) 29 | -- Give money based on distance 30 | -- distance: length from previous pickup point 31 | -- payment: cargo value multiplier 32 | -- tier: job tier 33 | local pay = (150 * payment) * tier 34 | local money = math.floor(fares * pay) 35 | TriggerClientEvent("chatMessage", source, "^0Received ^2$" .. money .. " ^0from ^3" .. fares .. " fares") 36 | -- give xp and whatever 37 | end) 38 | 39 | AddEventHandler("chatMessage",function(source,name,msg) 40 | if msg:sub(1,4) == "/pos" then 41 | TriggerClientEvent("gd:pos",source,msg) 42 | CancelEvent() 43 | end 44 | end) 45 | 46 | RegisterServerEvent("gd:pos") 47 | AddEventHandler("gd:pos", function(text, pos) 48 | local name = text:sub(6) 49 | local str = string.format('{name = "%s", x = %f, y = %f, z = %f, h = %f},', name, pos.x, pos.y, pos.z, pos.h) 50 | print(str) 51 | local file = io.open("markers.dev", "a+") 52 | file:write(str .. "\n") 53 | file:close() 54 | end) -------------------------------------------------------------------------------- /gd_jobs_handler/__resource.lua: -------------------------------------------------------------------------------- 1 | description 'Handler Job by GlitchDetector' 2 | resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937' 3 | 4 | -- Server 5 | server_scripts { 6 | 'server/main.lua' 7 | } 8 | -- Hacked By The Collins 9 | -- Client 10 | client_scripts { 11 | 'client/main.lua' 12 | } 13 | -------------------------------------------------------------------------------- /gd_jobs_handler/server/main.lua: -------------------------------------------------------------------------------- 1 | RegisterServerEvent("gd_jobs_handler:tryStartJob") 2 | AddEventHandler("gd_jobs_handler:tryStartJob", function(location, tier) 3 | -- Do all the shit about asking if energy is enough etc 4 | 5 | -- IF PLAYER IS NOT HIGH ENOUGH LEVEL FOR TIER 6 | -- Show message 7 | -- ELSE IF PLAYER DOES NOT HAVE ENERGY 8 | -- Show message 9 | -- ELSE 10 | -- Start job 11 | TriggerClientEvent("gd_jobs_handler:startJob", source, location, tier) 12 | -- END 13 | end) 14 | 15 | RegisterServerEvent("gd_jobs_handler:finishJob") 16 | AddEventHandler("gd_jobs_handler:finishJob", function(payment) 17 | -- Give bonus money based on distance 18 | -- distance: length of entire job 19 | -- payment: cargo value multiplier 20 | -- tier: job tier 21 | local pay = payment 22 | local money = payment * 1 23 | TriggerClientEvent("chatMessage", source, "Payment: ^3$" .. money) 24 | -- give xp and whatever 25 | end) 26 | -------------------------------------------------------------------------------- /gd_jobs_helicopter/__resource.lua: -------------------------------------------------------------------------------- 1 | description 'Helicopter Jobs by GlitchDetector' 2 | 3 | -- Server 4 | server_scripts { 5 | 'server/main.lua' 6 | } 7 | 8 | -- Client 9 | client_scripts { 10 | 'client/main.lua' 11 | } -------------------------------------------------------------------------------- /gd_jobs_helicopter/client/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_jobs_helicopter/client/Thumbs.db -------------------------------------------------------------------------------- /gd_jobs_helicopter/client/airportmarkers.lua: -------------------------------------------------------------------------------- 1 | -- Airport markers (not used yet) 2 | 3 | local airport_markers = { 4 | {name = "5 5", x = 1406.908936, y = 3003.808350, z = 38.544079, r = 314.383423, n = 5}, 5 | {name = "23 2", x = 1603.168945, y = 3199.204102, z = 38.531578, r = 134.886429, n = 2}, 6 | {name = "23 3", x = 1598.163696, y = 3204.678711, z = 38.519970, r = 136.494797, n = 3}, 7 | {name = "26R R", x = 1594.006226, y = 3221.034180, z = 38.411541, r = 103.092644, n = "R"}, 8 | {name = "26R 2", x = 1583.532715, y = 3216.209717, z = 38.411541, r = 106.232895, n = 2}, 9 | {name = "26R 6", x = 1582.044800, y = 3222.496582, z = 38.411549, r = 102.798386, n = 6}, 10 | {name = "26L L", x = 1506.382568, y = 3129.632080, z = 38.531586, r = 106.483917, n = "L"}, 11 | {name = "26L 2", x = 1498.078857, y = 3123.284668, z = 38.532436, r = 108.919846, n = 2}, 12 | {name = "26L 6", x = 1496.229736, y = 3129.478027, z = 38.533821, r = 107.001823, n = 6}, 13 | {name = "8R R", x = 1106.666138, y = 3021.209473, z = 38.534153, r = 283.115082, n = "R"}, 14 | {name = "8R 8", x = 1118.515137, y = 3024.298096, z = 38.534153, r = 284.661377, n = 8}, 15 | {name = "8L L", x = 1088.800659, y = 3084.799561, z = 38.414089, r = 282.540588, n = "L"}, 16 | {name = "8L 8", x = 1100.324707, y = 3087.793457, z = 38.414089, r = 282.934448, n = 8}, 17 | 18 | {name = "MARK4", x = 3134.125977, y = -786.080994, z = 7.889793 + 1.0, r = 308.887665, n = 4}, 19 | {name = "MARK9", x = 3129.989746, y = -817.839966, z = 7.889802 + 1.0, r = 265.337524, n = 9}, 20 | {name = "MARK1", x = 2999.513428, y = -844.580078, z = 7.899790 + 1.0, r = 176.651611, n = 1}, 21 | {name = "MARK8", x = 2996.238281, y = -844.365051, z = 7.899790 + 1.0, r = 180.547043, n = 8}, 22 | {name = "MARK1", x = 2911.195068, y = -839.579956, z = 7.899790 + 1.0, r = 177.126022, n = 1}, 23 | {name = "MARK8", x = 2907.805176, y = -839.457336, z = 7.899790 + 1.0, r = 178.661987, n = 8}, 24 | {name = "MARKR", x = 2909.517334, y = -834.652893, z = 7.899790 + 1.0, r = 177.043365, n = "R"}, 25 | {name = "MARKL", x = 2998.178711, y = -838.554199, z = 7.899791 + 1.0, r = 174.692123, n = "L"}, 26 | {name = "MARK2", x = -383.322937, y = 6685.424316, z = 6.639797 + 1.0, r = 137.807831, n = 2}, 27 | {name = "MARK5", x = -386.470154, y = 6688.823730, z = 6.639797 + 1.0, r = 133.620636, n = 5}, 28 | {name = "MARK7", x = -799.786194, y = 6253.186523, z = 6.639784 + 1.0, r = 314.088959, n = 7}, 29 | } 30 | 31 | function drawMarkerCustom(x,y,z,_rot,no) 32 | local rot = _rot or 0.0 33 | --DrawMarker(1, x, y, z, 0,0,0,0,0,0,10.0,10.0,2.0,0,155,255,200,0,0,0,0) 34 | if type(no) ~= "string" then 35 | DrawMarker(10 + no, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0) 36 | else 37 | if no == "L" then 38 | --DrawMarker(10 + 0, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0) 39 | end 40 | if no == "R" then 41 | --DrawMarker(10 + 1, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0) 42 | end 43 | end 44 | end 45 | 46 | Citizen.CreateThread(function() 47 | while true do 48 | Citizen.Wait(1) 49 | for k,v in next, airport_markers do 50 | drawMarkerCustom(v.x, v.y, v.z + 1.5, v.r, v.n) 51 | end 52 | end 53 | end) 54 | -------------------------------------------------------------------------------- /gd_jobs_helicopter/server/main.lua: -------------------------------------------------------------------------------- 1 | RegisterServerEvent("gd_jobs_helicopter:tryStartJob") 2 | AddEventHandler("gd_jobs_helicopter:tryStartJob", function(location, tier) 3 | -- Do all the shit about asking if energy is enough etc 4 | 5 | -- IF PLAYER IS NOT HIGH ENOUGH LEVEL FOR TIER 6 | -- Show message 7 | -- ELSE IF PLAYER DOES NOT HAVE ENERGY 8 | -- Show message 9 | -- ELSE 10 | -- Start job 11 | TriggerClientEvent("gd_jobs_helicopter:startJob", source, location, tier) 12 | -- END 13 | end) 14 | 15 | RegisterServerEvent("gd_jobs_helicopter:finishJob") 16 | AddEventHandler("gd_jobs_helicopter:finishJob", function(distance, payment, tier) 17 | -- Give bonus money based on distance 18 | -- distance: length of entire job 19 | -- payment: cargo value multiplier 20 | -- tier: job tier 21 | local money = math.floor(((distance / 2) * (((payment - 1) + tier) / 2)) / 10) 22 | TriggerClientEvent("chatMessage", source, "^Bonus ^2$" .. money) 23 | -- give xp and whatever 24 | end) 25 | 26 | RegisterServerEvent("gd_jobs_helicopter:pickupJob") 27 | AddEventHandler("gd_jobs_helicopter:pickupJob", function(distance, payment, tier) 28 | -- Give money based on distance 29 | -- distance: length from previous pickup point 30 | -- payment: cargo value multiplier 31 | -- tier: job tier 32 | local money = math.floor(distance * (((payment - 1) + tier) / 2)) 33 | TriggerClientEvent("chatMessage", source, "^0Received ^2$" .. money) 34 | -- give xp and whatever 35 | end) -------------------------------------------------------------------------------- /gd_jobs_quarry/__resource.lua: -------------------------------------------------------------------------------- 1 | description 'Quarry Jobs by GlitchDetector' 2 | 3 | -- Server 4 | server_scripts { 5 | 'server/main.lua' 6 | } 7 | 8 | -- Client 9 | client_scripts { 10 | 'client/main.lua' 11 | } -------------------------------------------------------------------------------- /gd_jobs_quarry/client/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_jobs_quarry/client/Thumbs.db -------------------------------------------------------------------------------- /gd_jobs_quarry/client/main.lua: -------------------------------------------------------------------------------- 1 | RegisterNetEvent("gd_jobs_quarry:startJob") 2 | AddEventHandler("gd_jobs_quarry:startJob", 3 | function(a) 4 | startJob() 5 | end 6 | ) 7 | 8 | function drawMarker(x,y,z) 9 | DrawMarker(1, x, y, z, 0,0,0,0,0,0,4.0,4.0,1.0,0,155,255,200,0,0,0,0) 10 | end 11 | 12 | local job_starts = { 13 | {name = "Quarry Gate Office", x = 2573.2, y = 2712.5, z = 41.4}, 14 | } 15 | 16 | local job_pickups = { 17 | {name = "Quarry", x = 2950.0, y = 2748.0, z = 42.4}, 18 | {name = "Quarry", x = 2952.8, y = 2735.2, z = 43.4}, 19 | {name = "Quarry", x = 2828.5, y = 2804.0, z = 56.4}, 20 | {name = "Quarry", x = 2771.1, y = 2806.0, z = 40.4}, 21 | {name = "Quarry", x = 2589.7, y = 2814.8, z = 32.7}, 22 | {name = "Quarry", x = 2657.8, y = 2779.0, z = 32.6}, 23 | {name = "Quarry", x = 2686.2, y = 2764.8, z = 36.9}, 24 | {name = "Quarry", x = 2682.4, y = 2802.8, z = 39.3}, 25 | {name = "Quarry", x = 2661.2, y = 2895.7, z = 35.5}, 26 | } 27 | 28 | local job_deliveries = { 29 | {name = "Recycling Center", x = 2403.0, y = 3106.1, z = 47.2}, 30 | {name = "Redwood Lights Track", x = 1035.0, y = 2511.0, z = 46.0}, 31 | {name = "R.L. Hunter & Sons", x = 1944.0, y = 4637.0, z = 39.5}, 32 | {name = "McKenzie Field Import/Export", x = 2109.0, y = 4769.8, z = 40.2}, 33 | {name = "Ron's Wind Farm", x = 2486.0, y = 1561.2, z = 31.7}, 34 | {name = "Alta Construction Site", x = 136.1, y = -373.8, z = 42.2}, 35 | {name = "Palomino Highlands Beach", x = 2777.5, y = -713.2, z = 4.8}, 36 | {name = "Paleto Bay Construction Site", x = 47.7, y = 6532.0, z = 30.6}, 37 | {name = "Sandy Shores Airfied", x = 1764.5, y = 3309.2, z = 40.1}, 38 | {name = "Elysian Island Construction Site", x = 271.5, y = -2501.2, z = 5.4}, 39 | {name = "M A M", x = 1070.5, y = -1962.2, z = 29.9}, 40 | {name = "Elysian Island Docks", x = -516.5, y = -2756.2, z = 5.0}, 41 | } 42 | 43 | local job_vehicles = { 44 | "BIFF", 45 | "RUBBLE", 46 | "TIPTRUCK", 47 | "TIPTRUCK2", 48 | } 49 | 50 | local job_cargoes = { 51 | {name = "Gravel", pay = 1.0}, 52 | {name = "Sand", pay = 0.7}, 53 | {name = "Rocks", pay = 1.2}, 54 | {name = "Granite", pay = 1.5}, 55 | {name = "Pebbles", pay = 1.0}, 56 | {name = "Marble", pay = 2.0}, 57 | {name = "Stone", pay = 1.2}, 58 | } 59 | 60 | local startText = "Press ~g~E ~w~to start a ~g~Quarry Route~w~" 61 | local pickupText = "Press ~g~E ~w~to pick up ~g~%s~w~" 62 | local pickupMessage = "Pick up ~g~%s~w~" 63 | local deliverText = "Press ~g~E ~w~to deliver ~g~%s ~w~to ~g~%s~w~" 64 | local deliverMessage = "Deliver ~g~%s ~w~to ~g~%s~w~" 65 | local invalidVehicleText = "You need a ~g~BIFF~w~, ~g~RUBBLE ~w~or ~g~TIPPING TRUCK ~w~to do this" 66 | 67 | local current_job = {} 68 | -- blip 69 | -- pickup x y z 70 | -- delivery name x y z 71 | -- cargo 72 | 73 | function setVehicleExtra(container, content) -- Contents in back of vehicle 74 | local veh = GetVehiclePedIsIn(GetPlayerPed(-1), false) 75 | if container then 76 | SetVehicleExtra(veh, 1, 0) 77 | else 78 | SetVehicleExtra(veh, 1, 1) 79 | end 80 | 81 | if content then 82 | SetVehicleExtra(veh, 2, 0) 83 | else 84 | SetVehicleExtra(veh, 2, 1) 85 | end 86 | end 87 | 88 | function setNewDestination(pos) 89 | if DoesBlipExist(current_job.blip) then RemoveBlip(current_job.blip) end 90 | current_job.blip = AddBlipForCoord(pos.x, pos.y, pos.z ) 91 | SetBlipRoute(current_job.blip, true) 92 | end 93 | 94 | function startJob() 95 | if isOnJob() then 96 | cancelJob() 97 | end 98 | 99 | setVehicleExtra(true, false) 100 | current_job.pickup = job_pickups[math.random(#job_pickups)] 101 | current_job.marker = current_job.pickup 102 | current_job.destination = job_deliveries[math.random(#job_deliveries)] 103 | current_job.cargo = job_cargoes[math.random(#job_cargoes)] 104 | current_job.type = "PICKUP" 105 | 106 | setNewDestination(current_job.marker) 107 | drawMessage(string.format(pickupMessage, current_job.cargo.name)) 108 | 109 | end 110 | 111 | function pickupJob() 112 | setVehicleExtra(true, true) 113 | current_job.marker = current_job.destination 114 | current_job.type = "DELIVER" 115 | setNewDestination(current_job.marker) 116 | drawMessage(string.format(deliverMessage, current_job.cargo.name, current_job.destination.name)) 117 | end 118 | 119 | function deliverJob() 120 | setVehicleExtra(false, false) 121 | TriggerServerEvent("gd_jobs_quarry:finishJob", GetDistanceBetweenCoords(current_job.pickup.x, current_job.pickup.y, current_job.pickup.z, current_job.destination.x, current_job.destination.y, current_job.destination.z), current_job.cargo.pay) 122 | cancelJob() 123 | end 124 | 125 | function isOnJob() 126 | return (next(current_job) ~= nil) 127 | end 128 | 129 | function cancelJob() 130 | if type(current_job.blip) ~= nil then 131 | RemoveBlip(current_job.blip) 132 | end 133 | current_job = {} 134 | end 135 | 136 | function drawText(text) 137 | Citizen.InvokeNative(0xB87A37EEB7FAA67D,"STRING") 138 | AddTextComponentString(text) 139 | Citizen.InvokeNative(0x9D77056A530643F6, 500, true) 140 | end 141 | 142 | function drawMessage(text) 143 | Citizen.InvokeNative(0xB87A37EEB7FAA67D,"STRING") 144 | AddTextComponentString(text) 145 | Citizen.InvokeNative(0x9D77056A530643F6, 10000, false) 146 | end 147 | 148 | function isInValidVehicle() 149 | local veh = GetVehiclePedIsIn(GetPlayerPed(-1), false) 150 | local validVehicle = false 151 | for k,v in next, job_vehicles do 152 | if GetEntityModel(veh) == GetHashKey(v) then validVehicle = true break end 153 | end 154 | return validVehicle 155 | end 156 | 157 | function promptJob() 158 | local validVehicle = isInValidVehicle() 159 | if validVehicle then 160 | drawText(startText) 161 | if isEPressed() then 162 | TriggerServerEvent("gd_jobs_quarry:tryStartJob") 163 | return 164 | end 165 | else 166 | drawText(invalidVehicleText) 167 | end 168 | end 169 | 170 | function nearMarker(x, y, z) 171 | local p = GetEntityCoords(GetPlayerPed(-1)) 172 | return (GetDistanceBetweenCoords(x, y, z, p.x, p.y, p.z) < 5) 173 | end 174 | 175 | function isEPressed() 176 | return IsControlJustPressed(0, 38) 177 | end 178 | 179 | Citizen.CreateThread(function() 180 | for k,v in next, job_starts do 181 | local blip = AddBlipForCoord(v.x, v.y, v.z) 182 | SetBlipSprite(blip, 304) 183 | SetBlipColour(blip, 21) 184 | BeginTextCommandSetBlipName("STRING") 185 | AddTextComponentString("Quarry") 186 | EndTextCommandSetBlipName(blip) 187 | end 188 | while true do 189 | Citizen.Wait(0) 190 | if not isOnJob() then 191 | -- NOT ON JOB 192 | local p = GetEntityCoords(GetPlayerPed(-1)) 193 | for k,v in next, job_starts do 194 | drawMarker(v.x, v.y, v.z) 195 | if nearMarker(v.x, v.y, v.z) then 196 | promptJob() 197 | end 198 | end 199 | else 200 | -- ON JOB 201 | local marker = current_job.marker 202 | local p = GetEntityCoords(GetPlayerPed(-1)) 203 | drawMarker(marker.x, marker.y, marker.z) 204 | 205 | if nearMarker(marker.x, marker.y, marker.z) and isInValidVehicle() then 206 | if current_job.type == "PICKUP" then 207 | drawText(string.format(pickupText, current_job.cargo.name)) 208 | if isEPressed() then 209 | pickupJob() 210 | end 211 | elseif current_job.type == "DELIVER" then 212 | drawText(string.format(deliverText, current_job.cargo.name, current_job.destination.name)) 213 | if isEPressed() then 214 | deliverJob() 215 | end 216 | end 217 | end 218 | end 219 | end 220 | end) -------------------------------------------------------------------------------- /gd_jobs_quarry/server/main.lua: -------------------------------------------------------------------------------- 1 | RegisterServerEvent("gd_jobs_quarry:tryStartJob") 2 | AddEventHandler("gd_jobs_quarry:tryStartJob", function() 3 | -- Do all the shit about asking if energy is enough etc 4 | 5 | TriggerClientEvent("gd_jobs_quarry:startJob", source) 6 | end) 7 | 8 | RegisterServerEvent("gd_jobs_quarry:finishJob") 9 | AddEventHandler("gd_jobs_quarry:finishJob", function(distance) 10 | -- Give money based on distance 11 | local money = math.floor(distance * 1.5) 12 | TriggerClientEvent("chatMessage", source, "^0Received ^2$" .. money) 13 | -- give xp and whatever 14 | TriggerClientEvent("chatMessage", source, "^0Earned ^185 xp") 15 | end) -------------------------------------------------------------------------------- /gd_moneydrop/__resource.lua: -------------------------------------------------------------------------------- 1 | client_script 'client.lua' 2 | server_script 'server.lua' 3 | resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af937' 4 | -------------------------------------------------------------------------------- /gd_moneydrop/client.lua: -------------------------------------------------------------------------------- 1 | pedindex = {} 2 | objval = {} 3 | 4 | RegisterNetEvent('ReceiveUserMoney') 5 | AddEventHandler('ReceiveUserMoney', function(value) 6 | print(value) 7 | end) 8 | 9 | Citizen.CreateThread(function() 10 | while true do 11 | Wait(0) 12 | for k,v in pairs(objval) do 13 | if DoesEntityExist(k) then 14 | if IsControlPressed(0,38) then -- E 15 | Citizen.CreateThread(function() RampTowardsPlayer(k) end) 16 | Wait(50) 17 | end 18 | end 19 | end 20 | end 21 | end) 22 | Citizen.Trace("LOADD") 23 | 24 | Citizen.CreateThread(function() 25 | while true do 26 | Citizen.Wait(1) 27 | 28 | if IsControlJustPressed(1, 73) then 29 | GiveWeaponToPed(GetPlayerPed(-1), GetHashKey("WEAPON_MICROSMG"), 100, false, true) 30 | TriggerServerEvent('GetUserMoney') 31 | end 32 | 33 | PopulatePedIndex() 34 | ResetIndexOnDeath() 35 | 36 | for k,v in pairs(pedindex) do 37 | if DoesEntityExist(k) then 38 | veh = GetVehiclePedIsIn(k, false) 39 | if not IsPedInVehicle(k, veh, true) then 40 | --HighlightObject(k, 255, 255, 0, 50) 41 | if IsEntityDead(k) then 42 | SpawnMoneyWithRandomValue(k,5,13) 43 | pedindex[k] = nil 44 | HighlightObject(k) 45 | end 46 | end 47 | end 48 | end 49 | 50 | for k,v in pairs(objval) do 51 | if DoesEntityExist(k) then 52 | dist = DistanceBetweenCoords(PlayerPedId(-1), k) 53 | if (dist.x < 1.4) and (dist.y < 1.4) and (dist.z < 1.4) then 54 | TriggerServerEvent('UpdateUserMoney', v.worth) 55 | DeleteObject(k) 56 | PlaySoundFrontend(-1, "PICK_UP", "HUD_FRONTEND_DEFAULT_SOUNDSET") 57 | objval[k] = nil 58 | end 59 | HighlightObject(k) 60 | end 61 | end 62 | end 63 | end) 64 | 65 | function HighlightObject(object, r, g, b, a) 66 | x, y, z = table.unpack(GetEntityCoords(object, true)) 67 | SetDrawOrigin(x, y, z, 0) 68 | RequestStreamedTextureDict("helicopterhud", false) 69 | DrawSprite("helicopterhud", "hud_corner", -0.01, -0.01, 0.006, 0.006, 0.0, r or 255, g or 0, b or 0, a or 200) 70 | DrawSprite("helicopterhud", "hud_corner", 0.01, -0.01, 0.006, 0.006, 90.0, r or 255, g or 0, b or 0, a or 200) 71 | DrawSprite("helicopterhud", "hud_corner", -0.01, 0.01, 0.006, 0.006, 270.0, r or 255, g or 0, b or 0, a or 200) 72 | DrawSprite("helicopterhud", "hud_corner", 0.01, 0.01, 0.006, 0.006, 180.0, r or 255, g or 0, b or 0, a or 200) 73 | ClearDrawOrigin() 74 | end 75 | 76 | function DistanceBetweenCoords(ent1, ent2) 77 | local x1,y1,z1 = table.unpack(GetEntityCoords(ent1, true)) 78 | local x2,y2,z2 = table.unpack(GetEntityCoords(ent2, true)) 79 | local deltax = x1 - x2 80 | local deltay = y1 - y2 81 | local deltaz = y1 - y2 82 | 83 | dist = math.sqrt((deltax * deltax) + (deltay * deltay) + (deltaz * deltaz)) 84 | xout = math.abs(deltax) 85 | yout = math.abs(deltay) 86 | zout = math.abs(deltaz) 87 | result = {distance = dist, x = xout, y = yout, z = zout} 88 | 89 | return result 90 | end 91 | 92 | function ResetIndexOnDeath() 93 | if IsEntityDead(GetPlayerPed(-1)) then 94 | for k,v in pairs(objval) do 95 | objval[k] = nil 96 | end 97 | end 98 | end 99 | 100 | function PopulatePedIndex() 101 | local handle, ped = FindFirstPed() 102 | local finished = false -- FindNextPed will turn the first variable to false when it fails to find another ped in the index 103 | local pos = GetEntityCoords(GetPlayerPed(-1)) 104 | repeat 105 | if not IsEntityDead(ped) and GetPedType(ped) == 28 then 106 | pedindex[ped] = {} 107 | end 108 | finished, ped = FindNextPed(handle) -- first param returns true while entities are found 109 | until not finished 110 | EndFindPed(handle) 111 | end 112 | 113 | function SpawnMoneyWithRandomValue(ped, lowlimit, upperlimit) 114 | value = math.random(lowlimit, upperlimit) 115 | money, quantity = MoneyVariance(value) 116 | 117 | x, y, z = table.unpack(GetEntityCoords(ped, true)) 118 | z = z + 1.3 119 | 120 | i = 0 121 | while i < quantity do 122 | 123 | 124 | x2 = math.random() + math.random(-2,2) 125 | y2 = math.random() + math.random(-2,2) 126 | z2 = math.random() + math.random(6,9) 127 | 128 | i = i + 1 129 | 130 | tempobject = CreateObject(GetCashHash((RoundNumber((money / quantity), 0))), x, y, z, true, false, true) 131 | SetActivateObjectPhysicsAsSoonAsItIsUnfrozen(tempobject, true) 132 | SetEntityDynamic(tempobject, true) 133 | ApplyForceToEntity(tempobject, 1, x2, y2, z2, 0.0, 3.0, 0.0, 0, 0, 1, 1, 0, 1) 134 | objval[tempobject] = { worth = (RoundNumber((money / quantity), 0)) } 135 | end 136 | end 137 | 138 | function RampTowardsPlayer(entity) 139 | local t = 0.0 140 | 141 | while t < 1.0 do 142 | Wait(25) 143 | t = t + 0.01 144 | vec3 = VectorLerp(GetEntityCoords(entity, true), GetEntityCoords(PlayerPedId(), true), t) 145 | vehicle = GetRandomVehicleInSphere(vec3,2.0,0,0) 146 | 147 | if DoesEntityExist(entity) and (vehicle < 2) then -- The reason we choose two is because sometimes it returns 1 and I don't know why. I assume it also returns 2 sometimes just incase. 148 | SetEntityCoords(entity, vec3) 149 | elseif not DoesEntityExist(entity) then 150 | t = 1.0 151 | end 152 | end 153 | end 154 | 155 | function VectorLerp(vec1, vec2, t) 156 | vecOut = vec1 - (t * (vec1 - vec2)) 157 | return vecOut 158 | end 159 | 160 | function GetCashHash(money) 161 | local propA = "prop_anim_cash_note" 162 | local propB = "prop_anim_cash_pile_01" 163 | local propC = "prop_cash_envelope_01" 164 | local propD = "prop_cash_pile_02" --smaller prop 165 | local propE = "prop_cash_pile_01" -- bigger wad of cash 166 | local propF = "prop_money_bag_01" 167 | local model = 0 168 | 169 | if (money >= 0) then 170 | model = propA 171 | end 172 | if (money >= 20) then 173 | model = propB 174 | end 175 | if (money >= 100) then 176 | model = propC 177 | end 178 | if (money >= 250) then 179 | model = propD 180 | end 181 | if (money >= 500) then 182 | model = propE 183 | end 184 | if (money >= 1500) then 185 | model = PropF 186 | end 187 | 188 | model = "prop_cs_brain_chunk" 189 | 190 | return GetHashKey(model) 191 | end 192 | 193 | function MoneyVariance(value) 194 | local RNG = math.random() 195 | local basevalue = value 196 | local multiplier = 1.0 197 | local quantity = math.random(5,6) 198 | 199 | 200 | if (RNG <= 0.75) then 201 | multiplier = 0.85 202 | quantity = math.random(2,4) 203 | end 204 | if (RNG <= 0.45) then 205 | multiplier = 1.1 206 | quantity = math.random(1,2) 207 | end 208 | if (RNG >= 0.35) then 209 | multiplier = 1.3 210 | quantity = math.random(1,2) 211 | end 212 | if (RNG >= 0.20) then 213 | multiplier = 1.6 214 | quantity = math.random(1,2) 215 | end 216 | if (RNG >= 0.04) then 217 | multiplier = 2.3 218 | quantity = math.random(1,2) 219 | end 220 | if (RNG >= 0.02) then 221 | multiplier = 4.0 222 | quantity = 1 223 | end 224 | if(RNG >= 0.009) then 225 | multiplier = 5.0 226 | quantity = math.random(1,3) 227 | end 228 | 229 | finalvalue = basevalue * multiplier 230 | return finalvalue, quantity 231 | end 232 | 233 | 234 | angleint = 0 235 | function CapsuleCheckForNearbyPed(inputped) 236 | x, y, z = table.unpack(GetEntityCoords(inputped, true)) 237 | flag = 12 238 | radius = 60 239 | Wait(7) 240 | for i = angleint, 72 do 241 | angleint = angleint + 1 242 | AdjustAngleInt() 243 | 244 | local angle = math.rad(i * 5) 245 | 246 | local startX = (60.0 * math.cos(angle)) + x; 247 | local startY = (60.0 * math.sin(angle)) + y; 248 | 249 | local endX = x - (startX - x) 250 | local endY = y - (startY - y) 251 | 252 | ray = StartShapeTestCapsule(startX,startY,z,endX,endY,z,radius,flag,inputped,7) 253 | _, _, _, _, result = GetShapeTestResult(ray) 254 | 255 | return result 256 | end 257 | end 258 | 259 | function AdjustAngleInt() 260 | if angleint > 72 then 261 | angleint = 1 262 | end 263 | end 264 | 265 | function DetectNpcByAiming() 266 | local aiming = false 267 | local entity 268 | 269 | if IsPlayerFreeAiming(PlayerId()) then 270 | aiming, entity = GetEntityPlayerIsFreeAimingAt(PlayerId()) 271 | if (aiming) then 272 | if IsEntityAPed(entity) then 273 | return entity 274 | end 275 | end 276 | end 277 | end 278 | 279 | function GetTableLength(temptable) 280 | local count = 0 281 | for _ in pairs(temptable) do 282 | count = count+1 283 | end 284 | 285 | return count 286 | end 287 | 288 | function RoundNumber(num, numDecimalPlaces) 289 | if numDecimalPlaces and numDecimalPlaces>0 then 290 | local mult = 10^numDecimalPlaces 291 | return math.floor(num * mult + 0.5) / mult 292 | end 293 | 294 | return math.floor(num + 0.5) 295 | end 296 | -------------------------------------------------------------------------------- /gd_moneydrop/server.lua: -------------------------------------------------------------------------------- 1 | --[[AddEventHandler('playerConnecting', function(name, setCallback) 2 | value = GetUserMoney(source, function(res) 3 | value = res 4 | end) 5 | Wait(500) 6 | print(value) 7 | end)]] -------------------------------------------------------------------------------- /gd_pd_radio/__resource.lua: -------------------------------------------------------------------------------- 1 | client_script 'client/atc.lua' 2 | client_script 'client/menu.lua' 3 | client_script 'client/pedTasking.lua' 4 | client_script 'client/airportmarkers.lua' 5 | 6 | server_script 'server/atc.lua' -------------------------------------------------------------------------------- /gd_pd_radio/client/airportmarkers.lua: -------------------------------------------------------------------------------- 1 | --[[-- Airport markers (not used yet) 2 | 3 | local airport_markers = { 4 | {name = "5 5", x = 1406.908936, y = 3003.808350, z = 38.544079, r = 314.383423, n = 5}, 5 | {name = "23 2", x = 1603.168945, y = 3199.204102, z = 38.531578, r = 134.886429, n = 2}, 6 | {name = "23 3", x = 1598.163696, y = 3204.678711, z = 38.519970, r = 136.494797, n = 3}, 7 | {name = "26R R", x = 1594.006226, y = 3221.034180, z = 38.411541, r = 103.092644, n = "R"}, 8 | {name = "26R 2", x = 1583.532715, y = 3216.209717, z = 38.411541, r = 106.232895, n = 2}, 9 | {name = "26R 6", x = 1582.044800, y = 3222.496582, z = 38.411549, r = 102.798386, n = 6}, 10 | {name = "26L L", x = 1506.382568, y = 3129.632080, z = 38.531586, r = 106.483917, n = "L"}, 11 | {name = "26L 2", x = 1498.078857, y = 3123.284668, z = 38.532436, r = 108.919846, n = 2}, 12 | {name = "26L 6", x = 1496.229736, y = 3129.478027, z = 38.533821, r = 107.001823, n = 6}, 13 | {name = "8R R", x = 1106.666138, y = 3021.209473, z = 38.534153, r = 283.115082, n = "R"}, 14 | {name = "8R 8", x = 1118.515137, y = 3024.298096, z = 38.534153, r = 284.661377, n = 8}, 15 | {name = "8L L", x = 1088.800659, y = 3084.799561, z = 38.414089, r = 282.540588, n = "L"}, 16 | {name = "8L 8", x = 1100.324707, y = 3087.793457, z = 38.414089, r = 282.934448, n = 8}, 17 | } 18 | 19 | function drawMarkerCustom(x,y,z,_rot,no) 20 | local rot = _rot or 0.0 21 | --DrawMarker(1, x, y, z, 0,0,0,0,0,0,10.0,10.0,2.0,0,155,255,200,0,0,0,0) 22 | if type(no) ~= "string" then 23 | DrawMarker(10 + no, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0) 24 | else 25 | if no == "L" then 26 | --DrawMarker(10 + 0, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0) 27 | end 28 | if no == "R" then 29 | --DrawMarker(10 + 1, x, y, z, 0.0, 0.0, 1.0, 0.0, -rot, 0.0, 7.0, 1.0, 7.0, 255, 255, 255, 255, 0, 0, 0, 0) 30 | end 31 | end 32 | end 33 | 34 | Citizen.CreateThread(function() 35 | while true do 36 | Citizen.Wait(1) 37 | for k,v in next, airport_markers do 38 | drawMarkerCustom(v.x, v.y, v.z + 1.5, v.r, v.n) 39 | end 40 | end 41 | end) 42 | 43 | -----------sdasdasdsad 44 | 45 | function reqModel(model) 46 | model = GetHashKey(model) 47 | RequestModel(model) 48 | while not HasModelLoaded(model) do Wait(5) end 49 | return model 50 | end 51 | 52 | function createVehicleThatFollowsVehicle(vehicleModel, vehicleToFollow, driverModel, x, y, z, heading, method, distance) 53 | local vehModel = reqModel(vehicleModel) 54 | local pedModel = reqModel(driverModel) 55 | 56 | local veh = CreateVehicle(vehModel, x, y, z, heading, true, false) 57 | local ped = CreatePedInsideVehicle(veh, 4, pedModel, -1, true, false) 58 | TaskVehicleEscort(ped, veh, vehicleToFollow, method or -1, 30.0, 786469, distance or 2.0, 0, 100.0) 59 | return veh, ped 60 | end 61 | 62 | function fillVehicleWithPeds(veh, pedsModel) 63 | local pedModel = reqModel(pedsModel) 64 | for i=1, GetVehicleMaxNumberOfPassengers(veh) do 65 | CreatePedInsideVehicle(veh, 4, pedModel, i, true, false) 66 | end 67 | end 68 | 69 | function takeOwnershipOfPedAndVehicle(ped, vehicle) 70 | local pedModel = GetEntityModel(ped) 71 | local vehModel = GetEntityModel(veh) 72 | local vehPos = GetEntityCoords(veh) 73 | local vehHeading = GetEntityHeading(veh) 74 | 75 | DeleteEntity(veh) 76 | DeleteEntity(ped) 77 | local _v = CreateVehicle(vehModel, vehPos.x, vehPos.y, vehPos.z, vehHeading, true, false) 78 | local _p = CreatePedInsideVehicle(_v, 4, pedModel, -1, true, false) 79 | 80 | return _p, _v 81 | end 82 | 83 | local job_start = {name = "Lombank West", x = -1568.092407, y = -530.758057, z = 34.291264} 84 | local job_end = {name = "The Oriental", x = 293.157623, y = 177.280731, z = 102.901276} 85 | local job = {} 86 | 87 | local job_spawn = { 88 | {name = "stretch", model = "ig_bankman", x = -1556.032837, y = -547.315674, z = 30.004879, h = 25.0, cb = function(v, p) SetBlipColour(AddBlipForEntity(v), 2) job.veh = v job.ped = p end}, 89 | {name = "police3", model = "s_m_y_cop_01", x = -1559.464600, y = -550.922546, z = 28.676392, h = 25.0, cb = function(v, p) SetVehicleSiren(v, true) AddBlipForEntity(v) job.pd = v job.pdped = p end} 90 | } 91 | 92 | function drawMarker(x,y,z) 93 | DrawMarker(1, x, y, z, 0, 0, 0, 0, 0, 0, 5.0, 5.0, 1.0, 150, 150, 0, 200, false, false, 0, false) 94 | end 95 | 96 | function startJob() 97 | job.active = true 98 | local ped = GetPlayerPed(-1) 99 | local veh = GetVehiclePedIsIn(ped, false) 100 | AddBlipForEntity(veh) 101 | for k,v in next, job_spawn do 102 | veh, ped = createVehicleThatFollowsVehicle(v.name, veh, v.model, v.x, v.y, v.z, v.h) 103 | v.cb(veh, ped) 104 | end 105 | end 106 | 107 | 108 | Citizen.CreateThread(function() 109 | 110 | 111 | local new = false 112 | local handle, veh = FindFirstVehicle() 113 | repeat 114 | DeleteVehicle(veh) 115 | new, veh = FindNextVehicle(handle) 116 | until not new 117 | 118 | veh = nil 119 | local ped = nil 120 | local fv = nil 121 | local fp = nil 122 | local s = {name = "tt", x = -2197.320801, y = 2956.779053, z = 31.810341} 123 | for i = 0, 10 do 124 | veh, ped = createVehicleThatFollowsVehicle("hauler2", veh, "ig_bankman", s.x + 10.0 * i, s.y, s.z, 0.0) 125 | local veh2, ped2 = createVehicleThatFollowsVehicle("trailerlarge", nil, "ig_bankman", s.x + 10.0 * i, s.y + 15.0, s.z, 0.0) 126 | AttachVehicleToTrailer(veh, veh2, 20.0) 127 | if fv == nil then fv = veh end 128 | if fp == nil then fp = ped end 129 | end 130 | TaskVehicleDriveWander(fp, fv, 100.0, 786469) 131 | 132 | 133 | while true do 134 | local ply = GetPlayerPed(-1) 135 | local pos = GetEntityCoords(ply) 136 | if next(job) ~= nil then 137 | -- On job 138 | drawMarker(job_end.x, job_end.y, job_end.z) 139 | else 140 | -- Not on job 141 | drawMarker(job_start.x, job_start.y, job_start.z) 142 | if GetDistanceBetweenCoords(job_start.x, job_start.y, job_start.z, pos.x, pos.y, pos.z) < 5 then 143 | if IsControlJustPressed(1, 38) then 144 | startJob() 145 | end 146 | end 147 | end 148 | Wait(1) 149 | end 150 | 151 | 152 | 153 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252} 154 | -- 155 | -- local veh, ped = createVehicleThatFollowsVehicle("police3", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0) 156 | -- local veh2, ped2 = createVehicleThatFollowsVehicle("stockade", veh, "s_m_y_cop_01", -1067.088623, -896.252136 + 5.0, 3.392769, -45.0) 157 | -- local veh3, ped3 = createVehicleThatFollowsVehicle("stockade", veh2, "s_m_y_cop_01", -1067.088623, -896.252136, 3.392769, -45.0) 158 | -- local veh4, ped4 = createVehicleThatFollowsVehicle("stockade", veh3, "s_m_y_cop_01", -1067.088623, -896.252136 - 5.0, 3.392769, -45.0) 159 | -- local veh5, ped5 = createVehicleThatFollowsVehicle("riot", veh4, "s_m_y_cop_01", -1079.150513, -903.233887, 2.889246, -45.0) 160 | -- 161 | -- SetBlipSprite(AddBlipForEntity(veh),58) 162 | -- 163 | -- fillVehicleWithPeds(veh, "s_m_y_cop_01") 164 | -- fillVehicleWithPeds(veh5, "s_m_y_swat_01") 165 | -- SetVehicleSiren(veh, true) 166 | -- SetVehicleSiren(veh5, true) 167 | -- 168 | -- TaskVehicleDriveWander(ped, veh, 5.0, 786469) 169 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252} 170 | -- 171 | -- local veh, ped = createVehicleThatFollowsVehicle("adder", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0) 172 | -- for i = 1,20 do 173 | -- local _v, _p = createVehicleThatFollowsVehicle("police3", veh, "s_m_y_cop_01", -1067.088623 - 5*i, -896.252136 - 2*i, 3.392769, -45.0) 174 | -- SetVehicleSiren(_v, true) 175 | -- SetBlipSprite(AddBlipForEntity(_v),42) 176 | -- end 177 | -- SetPedIntoVehicle(GetPlayerPed(-1), veh, 0) 178 | -- 179 | -- SetBlipSprite(AddBlipForEntity(veh),58) 180 | -- 181 | -- SetVehicleSiren(veh3, true) 182 | -- SetVehicleSiren(veh4, true) 183 | -- SetVehicleSiren(veh5, true) 184 | -- 185 | -- TaskVehicleDriveWander(ped, veh, 1000.0, 786468) 186 | end)]] -------------------------------------------------------------------------------- /gd_pd_radio/client/atc.lua: -------------------------------------------------------------------------------- 1 | RegisterNetEvent("gd_pd:startFlashingBlip") 2 | AddEventHandler("gd_pd:startFlashingBlip", function(pos, blipid, time, col, override) 3 | if IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1)) or (override) then 4 | local blip = AddBlipForCoord(pos.x, pos.y, pos.z) 5 | SetBlipSprite(blip, blipid) 6 | SetBlipColour(blip, col) 7 | SetBlipDisplay(blip, 8) 8 | SetBlipFlashes(blip, true) 9 | SetBlipFlashInterval(blip, 400) 10 | SetTimeout(time * 1000, function() 11 | RemoveBlip(blip) 12 | end) 13 | end 14 | end) 15 | 16 | RegisterNetEvent("gd_pd:getMessage") 17 | AddEventHandler("gd_pd:getMessage", function(msg, override) 18 | if IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1)) or (override) then 19 | TriggerEvent('chatMessage', "", {255, 0, 0}, msg) 20 | end 21 | end) 22 | 23 | Citizen.CreateThread(function() 24 | local inAircraft = false 25 | while true do 26 | Wait(50) 27 | if not inAircraft and (IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1))) then 28 | SetNotificationTextEntry("STRING") 29 | AddTextComponentString("~w~Press ~g~B ~w~to open the ~y~ATC menu~w~.\nIt's ~r~mandatory ~w~to use when piloting!") 30 | DrawNotification(false, false) 31 | end 32 | inAircraft = (IsPedInAnyPlane(GetPlayerPed(-1)) or IsPedInAnyHeli(GetPlayerPed(-1))) 33 | end 34 | end) -------------------------------------------------------------------------------- /gd_pd_radio/client/pedTasking.lua: -------------------------------------------------------------------------------- 1 | local blipLocs = { 2 | {name = "Union Depository Dropoff", x = -7.328112, y = -655.921082, z = 32.451847, blipid = 500, blipcol = 5}, 3 | {name = "Blaine County Fleeca Bank", x = 1177.095459, y = 2711.752441, z = 37.097763, blipid = 500, blipcol = 2}, 4 | {name = "Alta Fleeca Bank", x = 309.974792, y = -282.962646, z = 53.174511, blipid = 500, blipcol = 2}, 5 | {name = "Big Bank Place", x = 256.424622, y = 225.909988, z = 100.875717, blipid = 500, blipcol = 2}, 6 | {name = "Rockford Hills Fleeca Bank", x = -1212.107422, y = -335.944550, z = 36.790771, blipid = 500, blipcol = 2}, 7 | {name = "Legion Square Fleeca Bank", x = 145.850647, y = -1044.619751, z = 28.377804, blipid = 500, blipcol = 2}, 8 | {name = "Banham Canyon Fleeca Bank", x = -2957.513184, y = 480.322998, z = 14.706840, blipid = 500, blipcol = 2}, 9 | {name = "Paleto Bay Savings Bank", x = -105.192596, y = 6476.201172, z = 30.626711, blipid = 500, blipcol = 2} 10 | } 11 | 12 | function setBlipName(blip, name) 13 | BeginTextCommandSetBlipName("STRING") 14 | AddTextComponentString(name) 15 | EndTextCommandSetBlipName(blip) 16 | end 17 | 18 | local inveh = false 19 | local blips = {} 20 | 21 | Citizen.CreateThread(function() 22 | while true do 23 | Citizen.Wait(5) 24 | local newInveh = GetEntityModel(GetVehiclePedIsIn(GetPlayerPed(-1), true)) == GetHashKey("STOCKADE") or IsControlPressed(1, 29) 25 | if not inveh and newInveh then 26 | for k,v in next, blipLocs do 27 | local blip = AddBlipForCoord(v.x, v.y, v.z) 28 | SetBlipSprite(blip, v.blipid) 29 | SetBlipColour(blip, v.blipcol) 30 | SetBlipAsShortRange(blip, true) 31 | setBlipName(blip, v.name) 32 | table.insert(blips, blip) 33 | end 34 | end 35 | if inveh and not newInveh then 36 | for k,v in next, blips do 37 | RemoveBlip(v) 38 | end 39 | blips = {} 40 | end 41 | inveh = newInveh 42 | end 43 | end) 44 | 45 | function reqModel(model) 46 | model = GetHashKey(model) 47 | RequestModel(model) 48 | while not HasModelLoaded(model) do Wait(5) end 49 | return model 50 | end 51 | 52 | function createVehicleThatFollowsVehicle(vehicleModel, vehicleToFollow, driverModel, x, y, z, heading, method, distance) 53 | local vehModel = reqModel(vehicleModel) 54 | local pedModel = reqModel(driverModel) 55 | 56 | local veh = CreateVehicle(vehModel, x, y, z, heading, true, false) 57 | local ped = CreatePedInsideVehicle(veh, 4, pedModel, -1, true, false) 58 | TaskVehicleEscort(ped, veh, vehicleToFollow, method or -1, 30.0, 786469, distance or 2.0, 0, 100.0) 59 | return veh, ped 60 | end 61 | 62 | function fillVehicleWithPeds(veh, pedsModel) 63 | local pedModel = reqModel(pedsModel) 64 | for i=1, GetVehicleMaxNumberOfPassengers(veh) do 65 | CreatePedInsideVehicle(veh, 4, pedModel, i, true, false) 66 | end 67 | end 68 | 69 | function takeOwnershipOfPedAndVehicle(ped, vehicle) 70 | local pedModel = GetEntityModel(ped) 71 | local vehModel = GetEntityModel(veh) 72 | local vehPos = GetEntityCoords(veh) 73 | local vehHeading = GetEntityHeading(veh) 74 | 75 | DeleteEntity(veh) 76 | DeleteEntity(ped) 77 | local _v = CreateVehicle(vehModel, vehPos.x, vehPos.y, vehPos.z, vehHeading, true, false) 78 | local _p = CreatePedInsideVehicle(_v, 4, pedModel, -1, true, false) 79 | 80 | return _p, _v 81 | end 82 | 83 | local job_start = {name = "Lombank West", x = -1568.092407, y = -530.758057, z = 34.291264} 84 | local job_end = {name = "The Oriental", x = 293.157623, y = 177.280731, z = 102.901276} 85 | local job = {} 86 | 87 | local job_spawn = { 88 | {name = "stretch", model = "ig_bankman", x = -1556.032837, y = -547.315674, z = 30.004879, h = 25.0, cb = function(v, p) SetBlipColour(AddBlipForEntity(v), 2) job.veh = v job.ped = p end}, 89 | {name = "police3", model = "s_m_y_cop_01", x = -1559.464600, y = -550.922546, z = 28.676392, h = 25.0, cb = function(v, p) SetVehicleSiren(v, true) AddBlipForEntity(v) job.pd = v job.pdped = p end} 90 | } 91 | 92 | function drawMarker(x,y,z) 93 | DrawMarker(1, x, y, z, 0, 0, 0, 0, 0, 0, 5.0, 5.0, 1.0, 150, 150, 0, 200, false, false, 0, false) 94 | end 95 | 96 | function startJob() 97 | job.active = true 98 | local ped = GetPlayerPed(-1) 99 | local veh = GetVehiclePedIsIn(ped, false) 100 | AddBlipForEntity(veh) 101 | for k,v in next, job_spawn do 102 | veh, ped = createVehicleThatFollowsVehicle(v.name, veh, v.model, v.x, v.y, v.z, v.h) 103 | v.cb(veh, ped) 104 | end 105 | end 106 | 107 | 108 | Citizen.CreateThread(function() 109 | 110 | while true do 111 | local ply = GetPlayerPed(-1) 112 | local pos = GetEntityCoords(ply) 113 | if next(job) ~= nil then 114 | -- On job 115 | drawMarker(job_end.x, job_end.y, job_end.z) 116 | else 117 | -- Not on job 118 | drawMarker(job_start.x, job_start.y, job_start.z) 119 | if GetDistanceBetweenCoords(job_start.x, job_start.y, job_start.z, pos.x, pos.y, pos.z) < 5 then 120 | if IsControlJustPressed(1, 38) then 121 | startJob() 122 | end 123 | end 124 | end 125 | Wait(1) 126 | end 127 | 128 | 129 | 130 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252} 131 | -- 132 | -- local veh, ped = createVehicleThatFollowsVehicle("police3", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0) 133 | -- local veh2, ped2 = createVehicleThatFollowsVehicle("stockade", veh, "s_m_y_cop_01", -1067.088623, -896.252136 + 5.0, 3.392769, -45.0) 134 | -- local veh3, ped3 = createVehicleThatFollowsVehicle("stockade", veh2, "s_m_y_cop_01", -1067.088623, -896.252136, 3.392769, -45.0) 135 | -- local veh4, ped4 = createVehicleThatFollowsVehicle("stockade", veh3, "s_m_y_cop_01", -1067.088623, -896.252136 - 5.0, 3.392769, -45.0) 136 | -- local veh5, ped5 = createVehicleThatFollowsVehicle("riot", veh4, "s_m_y_cop_01", -1079.150513, -903.233887, 2.889246, -45.0) 137 | -- 138 | -- SetBlipSprite(AddBlipForEntity(veh),58) 139 | -- 140 | -- fillVehicleWithPeds(veh, "s_m_y_cop_01") 141 | -- fillVehicleWithPeds(veh5, "s_m_y_swat_01") 142 | -- SetVehicleSiren(veh, true) 143 | -- SetVehicleSiren(veh5, true) 144 | -- 145 | -- TaskVehicleDriveWander(ped, veh, 5.0, 786469) 146 | -- local desti = {name = "r", x = 1012.028992, y = 289.083405, z = 81.888252} 147 | -- 148 | -- local veh, ped = createVehicleThatFollowsVehicle("adder", nil, "s_m_y_cop_01", -1054.027710, -889.096558, 3.801936, -45.0) 149 | -- for i = 1,20 do 150 | -- local _v, _p = createVehicleThatFollowsVehicle("police3", veh, "s_m_y_cop_01", -1067.088623 - 5*i, -896.252136 - 2*i, 3.392769, -45.0) 151 | -- SetVehicleSiren(_v, true) 152 | -- SetBlipSprite(AddBlipForEntity(_v),42) 153 | -- end 154 | -- SetPedIntoVehicle(GetPlayerPed(-1), veh, 0) 155 | -- 156 | -- SetBlipSprite(AddBlipForEntity(veh),58) 157 | -- 158 | -- SetVehicleSiren(veh3, true) 159 | -- SetVehicleSiren(veh4, true) 160 | -- SetVehicleSiren(veh5, true) 161 | -- 162 | -- TaskVehicleDriveWander(ped, veh, 1000.0, 786468) 163 | end) -------------------------------------------------------------------------------- /gd_pd_radio/example.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_pd_radio/example.lua -------------------------------------------------------------------------------- /gd_pd_radio/server/atc.lua: -------------------------------------------------------------------------------- 1 | RegisterServerEvent("atc:flashingBlip") 2 | AddEventHandler("atc:flashingBlip", function(pos, blipid, time, col) 3 | TriggerClientEvent("atc:startFlashingBlip", -1, pos, blipid, time, col) 4 | end) 5 | 6 | RegisterServerEvent("atc:message") 7 | AddEventHandler("atc:message", function(msg, override) 8 | TriggerClientEvent("atc:getMessage", -1, msg, override) 9 | end) -------------------------------------------------------------------------------- /gd_playerlist/__resource.lua: -------------------------------------------------------------------------------- 1 | client_script 'playerlist.lua' 2 | 3 | ui_page 'html/index.html' 4 | 5 | server_script { 6 | '@vrp/lib/utils.lua', 7 | 'server.lua' 8 | } 9 | 10 | files { 11 | 'html/index.html', 12 | 'html/font/roboto-condensed.ttf', 13 | 'html/font/roboto-regular.ttf', 14 | 'html/css/style.css', 15 | 'html/img/spritesheet.png', 16 | 'html/img/test.png' 17 | } -------------------------------------------------------------------------------- /gd_playerlist/html/css/style.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Roboto Condensed'; 3 | src: url('nui://playerlist/html/font/roboto-condensed.ttf') format('truetype'); 4 | font-weight: normal; 5 | font-style: normal; 6 | } 7 | 8 | @font-face { 9 | font-family: 'Roboto'; 10 | src: url('nui://playerlist/html/font/roboto-regular.ttf') format('truetype'); 11 | font-weight: normal; 12 | font-style: normal; 13 | } 14 | 15 | body { 16 | background-color: RGBA(0,0,0,0); 17 | padding:0; 18 | margin:0; 19 | overflow: hidden; 20 | } 21 | 22 | #playerlist { 23 | border:1px solid black; 24 | margin-top: 5px; 25 | visibility:hidden; 26 | font-family:'Roboto'; 27 | font-size: 18px; 28 | color:white; 29 | position:relative; 30 | min-width:500px; 31 | width: auto; 32 | margin-left:auto; 33 | margin-right:auto; 34 | max-height:1080px; 35 | padding: 1px; 36 | } 37 | 38 | #playerlist .titles { 39 | background-color: rgba(50,50,50,0.8); 40 | margin-bottom:0px; 41 | } 42 | 43 | #playerlist .player { 44 | background-color: rgba(0,0,0,0.8); 45 | } 46 | #playerlist .name { 47 | text-align:left; 48 | } 49 | #playerlist .player { 50 | font-size: 16px; 51 | font-weight: normal; 52 | } 53 | #playerlist .id { 54 | min-width:15px; 55 | font-family:'Lucida Console'; 56 | font-weight: bold; 57 | } 58 | #playerlist .player .id, #playerlist .player .time { 59 | text-align: right; 60 | } 61 | #playerlist .player .title { 62 | font-style: italic; 63 | } 64 | #playerlist .player .title, #playerlist .player .name { 65 | text-shadow: 66 | -2px -2px 0 #000, 67 | 2px -2px 0 #000, 68 | -2px 2px 0 #000, 69 | 2px 2px 0 #000; 70 | } 71 | #playerlist .titles .title { 72 | text-align: center; 73 | } 74 | #playerlist .player .icon { 75 | margin: auto; 76 | width: 20px; 77 | height: 20px; 78 | background-image: url("../img/spritesheet.png"); 79 | background-size: 820px 860px; 80 | background-position: -640px -624px; 81 | } -------------------------------------------------------------------------------- /gd_playerlist/html/font/EmojiOneColor-SVGinOT.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/font/EmojiOneColor-SVGinOT.ttf -------------------------------------------------------------------------------- /gd_playerlist/html/font/roboto-condensed.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/font/roboto-condensed.ttf -------------------------------------------------------------------------------- /gd_playerlist/html/font/roboto-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/font/roboto-regular.ttf -------------------------------------------------------------------------------- /gd_playerlist/html/img/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/img/Thumbs.db -------------------------------------------------------------------------------- /gd_playerlist/html/img/spritesheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/img/spritesheet.png -------------------------------------------------------------------------------- /gd_playerlist/html/img/spritesheet.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/img/spritesheet.xcf -------------------------------------------------------------------------------- /gd_playerlist/html/img/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_playerlist/html/img/test.png -------------------------------------------------------------------------------- /gd_playerlist/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 |
10 |
11 | 12 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /gd_playerlist/playerlist.lua: -------------------------------------------------------------------------------- 1 | --Playerlist created by Arturs, modified by GlitchDetector for Transport Tycoon to support vRP 2 | local plist = false 3 | -- id name title time 4 | local last_playerlist_identifier = 0 5 | local last_playerlist = "" 6 | local header = [[IDNameJobOnlineTotalLevel]] 7 | local row = [[%i
%s
%s%s%s%i]] -- id color name prefix color title time totaltime 8 | local footer = [[Online:
%i / %iUptime:
%sPing:
%sLevels:
%i]] -- online uptime connections 9 | 10 | function ShowPlayerList(playerList) 11 | if playerList.gen.id > last_playerlist_identifier then 12 | local listHTML = "" 13 | local uptime = playerList.uptime 14 | local connections = playerList.connections 15 | local ping = playerList.ping 16 | local max_players = 32 17 | local total_levels = 0 18 | 19 | last_playerlist_identifier = playerList.gen.id 20 | 21 | print("Playerlist Stats: " .. playerList.gen.time .. " seconds and " .. playerList.gen.cycles .. " cycles. Gen ID " .. playerList.gen.id) 22 | listHTML = listHTML .. header 23 | for k,v in next, playerList.data do 24 | if v ~= nil then 25 | listHTML = listHTML .. string.format(row, v.id or 0, v.icon or '0px 0px', v.namecolor or "white", v.name or "Default Danny", v.jobicon or '0px 0px', v.color or "white", v.title or "", v.time or "00m", v.totaltime or "00m", v.level or 0) 26 | if v.level then 27 | total_levels = total_levels + v.level 28 | end 29 | end 30 | end 31 | local online_players = #playerList.data 32 | if online_players == 4 then max_players = 20 elseif 33 | online_players == 13 then max_players = 37 end 34 | listHTML = listHTML .. string.format(footer, online_players, max_players, uptime, tostring(ping) .. "ms", total_levels) 35 | last_playerlist = listHTML 36 | end 37 | SendNUIMessage({ 38 | meta = 'open', 39 | data = last_playerlist 40 | }) 41 | end 42 | 43 | function ClosePlayerList() 44 | SendNUIMessage({ 45 | meta = 'close' 46 | }) 47 | end 48 | 49 | 50 | RegisterNetEvent("gd_playerlist:open") 51 | AddEventHandler("gd_playerlist:open", 52 | function(players) 53 | if plist == true then 54 | ShowPlayerList(players) 55 | end 56 | end 57 | ) 58 | 59 | RegisterNetEvent("gd_playerlist:print") 60 | AddEventHandler("gd_playerlist:print", 61 | function(text) 62 | print(tostring(text)) 63 | end 64 | ) 65 | RegisterNetEvent("gd_playerlist:fix") 66 | AddEventHandler("gd_playerlist:fix", 67 | function() 68 | local veh = GetVehiclePedIsIn(GetPlayerPed(-1), false) 69 | SetVehicleFixed(veh) 70 | SetVehicleDeformationFixed(veh) 71 | SetVehicleUndriveable(veh, false) 72 | end 73 | ) 74 | 75 | RegisterNetEvent("gd_playerlist:tryToggle") 76 | AddEventHandler("gd_playerlist:tryToggle", function() 77 | if not plist then 78 | plist = true 79 | TriggerServerEvent("gd_playerlist:askOpen", last_playerlist_identifier) 80 | else 81 | plist = false 82 | ClosePlayerList() 83 | end 84 | end) 85 | 86 | Citizen.CreateThread( function() 87 | print("es_playerlist gd_edit ok") 88 | while true do 89 | Citizen.Wait(1) 90 | --Displays playerlist when player hold X 91 | if IsControlJustPressed(1, 323) then --Start holding 92 | plist = true 93 | -- print("sending open call") 94 | TriggerServerEvent("gd_playerlist:askOpen", last_playerlist_identifier) 95 | elseif IsControlJustReleased(1, 323) then --Stop holding 96 | plist = false 97 | -- print("closing call") 98 | ClosePlayerList() 99 | end 100 | end 101 | end) -------------------------------------------------------------------------------- /gd_playerlist/rank_special.lua: -------------------------------------------------------------------------------- 1 | local rank_special = { 2 | ["bank"] = {suffix = {x=19,y=30}, color = "forestgreen", title = "Money Transport"}, 3 | ["busdriver"] = {suffix = {x=36,y=21}, color = "cornflowerblue", title = "Bus Driver", 4 | levelnames = {"trucking", "bus"}, 5 | levels = { 6 | [5] = {title = "Skilled Bus Driver"}, 7 | [10] = {title = "Professional Bus Driver", namecolor = "cornflowerblue"}, 8 | }}, 9 | ["citizen"] = {}, 10 | ["conductor"] = {suffix = {x=36,y=11}, color = "chocolate", title = "Train Conductor", 11 | levelnames = {"train", "train"}, 12 | levels = { 13 | [3] = {title = "Good Train Conductor"}, 14 | [5] = {title = "Skilled Train Conductor"}, 15 | [8] = {title = "Specialized Train Conductor"}, 16 | [10] = {title = "Professional Train Conductor", namecolor = "chocolate"}, 17 | }}, 18 | ["emergency"] = {suffix = {x=36,y=22}, color = "tomato", title = "EMS", 19 | levelnames = {"emergency", "ems"}, 20 | levels = { 21 | [5] = {title = "Skilled EMS"}, 22 | [10] = {title = "Professional EMS", namecolor = "tomato"}, 23 | }}, 24 | ["farmer"] = {suffix = {x=36,y=33}, color = "chocolate", title = "Farmer", 25 | levelnames = {"farming", "farming"}, 26 | levels = { 27 | [5] = {title = "Good Farmer"}, 28 | [10] = {title = "Skilled Farmer"}, 29 | [15] = {title = "Specialized Farmer"}, 30 | [20] = {title = "Professional Farmer", namecolor = "chocolate"}, 31 | }}, 32 | ["firefighter"] = {suffix = {x=9,y=32}, color = "red", title = "Firefighter", 33 | levelnames = {"emergency", "firefighter"}, 34 | levels = { 35 | [5] = {title = "Skilled Firefighter"}, 36 | [10] = {title = "Professional Firefighter", namecolor = "red"}, 37 | }}, 38 | ["fisher"] = {suffix = {x=2,y=21}, color = "dodgerblue", title = "Fisher", 39 | levelnames = {"fishing", "fishing"}, 40 | levels = { 41 | [5] = {title = "Skilled Fisher"}, 42 | [10] = {title = "Professional Fisher", namecolor = "dodgerblue"}, 43 | }}, 44 | ["garbage"] = {suffix = {x=32,y=38}, color = "saddlebrown", title = "Refuse Collector"}, 45 | ["guard"] = {suffix = {x=32,y=20}, color = "darkslateblue", title = "Prison Transport"}, 46 | ["helicopterpilot"] = {suffix = {x=36,y=6}, color = "white", title = "Helicopter Pilot"}, 47 | ["hunter"] = {suffix = {x=25,y=12}, color = "darkolivegreen", title = "Hunter", 48 | levelnames = {"hunting", "hunting"}, 49 | levels = { 50 | [5] = {title = "Skilled Hunter"}, 51 | [10] = {title = "Professional Hunter", namecolor = "darkolivegreen"}, 52 | }}, 53 | ["mechanic"] = {suffix = {x=11,y=32}, color = "chocolate", title = "Mechanic"}, 54 | ["pilot"] = {suffix = {x=2,y=37}, color = "darkcyan", title = "Pilot", 55 | levelnames = {"piloting", "piloting"}, 56 | levels = { 57 | [3] = {title = "Good Pilot"}, 58 | [6] = {title = "Skilled Pilot"}, 59 | [8] = {title = "Specialized Pilot"}, 60 | [10] = {title = "Professional Pilot", namecolor = "darkcyan"}, 61 | }}, 62 | ["pizza"] = {suffix = {x=6,y=19}, color = "goldenrod", title = "Pizza Delivery"}, 63 | ["police"] = {suffix = {x=36,y=25}, color = "blue", title = "Police Rookie", 64 | levelnames = {"police", "police"}, 65 | levels = { 66 | [2] = {title = "Police Deputy"}, 67 | [3] = {title = "Police Sergeant"}, 68 | [5] = {title = "Police Lieutenant"}, 69 | [7] = {title = "Police Major"}, 70 | [8] = {title = "Police Colonel"}, 71 | [9] = {title = "Police Colonel+"}, 72 | [10] = {title = "Police Superintendent", namecolor = "blue"}, 73 | }}, 74 | ["snowplow"] = {suffix = {x=35,y=39}, color = "white", title = "Snowplow Driver"}, 75 | ["taxi"] = {suffix = {x=36,y=26}, color = "gold", title = "Taxi"}, 76 | ["trucker"] = {suffix = {x=36,y=32}, color = "darkgreen", title = "Trucker", 77 | levelnames = {"trucking", "trucking"}, 78 | levels = { 79 | [5] = {title = "Delivery Trucker"}, 80 | [10] = {title = "Cargo Trucker"}, 81 | [15] = {title = "Experienced Trucker"}, 82 | [20] = {title = "Specialized Trucker"}, 83 | [24] = {title = "Skillfull Trucker"}, 84 | [27] = {title = "Professional Trucker", namecolor = "darkgreen"}, 85 | }}, 86 | 87 | ["hidden"] = {hidden = true}, 88 | ["kicked"] = {prefix = {x=40,y=2}}, 89 | ["muted"] = {prefix = {x=32,y=11}, title = "Muted", color = "darkgray", namecolor = "darkgray"}, 90 | } 91 | 92 | return rank_special -------------------------------------------------------------------------------- /gd_slots_vrp/README: -------------------------------------------------------------------------------- 1 | MODIFIED BY GLITCHDETECTOR FOR USE WITH FiveM 2 | ORIGINAL README BELOW 3 | 4 | Karma Slots is a simple slot machine game made in Javascript for HTML5 and canvas. It uses a simple "Reddit" inspired theme. 5 | 6 | License Info 7 | 8 | The code is (C) 2012 Clint Bellanger. Released under the MIT license. 9 | The art is (C) 2012 Clint Bellanger. Released under CC-BY 3.0. 10 | The sounds are (C) 2012 Brandon Morris. Released under CC-BY 3.0 11 | 12 | Art icons inspired by Reddit. http://reddit.com/ 13 | Bacon and Narwhal inspired by licenseplate, who has cleared this usage. 14 | 15 | Play a live version here: 16 | http://clintbellanger.net/karma/ 17 | 18 | Note: this is just a game that uses overly simplified logic. Never use this in a slot machine that deals with real money. 19 | -------------------------------------------------------------------------------- /gd_slots_vrp/__resource.lua: -------------------------------------------------------------------------------- 1 | client_script 'playerlist.lua' 2 | 3 | ui_page 'index.html' 4 | 5 | server_script { 6 | '@vrp/lib/utils.lua', 7 | 'server.lua' 8 | } 9 | 10 | files { 11 | 'index.html', 12 | 'slots.css', 13 | 'slots.js', 14 | 'images/background.png', 15 | 'images/reddit_icons_small.png', 16 | 'images/reel_bg.png', 17 | 'sounds/reel_stop.wav', 18 | 'sounds/win.wav' 19 | } -------------------------------------------------------------------------------- /gd_slots_vrp/client.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/client.lua -------------------------------------------------------------------------------- /gd_slots_vrp/images/1080p.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/images/1080p.jpg -------------------------------------------------------------------------------- /gd_slots_vrp/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/images/background.png -------------------------------------------------------------------------------- /gd_slots_vrp/images/reddit_icons_small – Kopi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/images/reddit_icons_small – Kopi.png -------------------------------------------------------------------------------- /gd_slots_vrp/images/reddit_icons_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/images/reddit_icons_small.png -------------------------------------------------------------------------------- /gd_slots_vrp/images/reels_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/images/reels_bg.png -------------------------------------------------------------------------------- /gd_slots_vrp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Transport Tycoon Slots 4 | 5 | 6 | 7 | 8 |
9 |
10 | 11 |
12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | Bet: 20 | 1 Tokens 21 | 22 | 23 |
24 | 25 |
26 |
27 |

28 |

29 |
30 |
31 | By C. Bellanger and B. Morris, modified by GlitchDetector for Transport Tycoon 32 |
33 | Version 1.0.3 - vRP 34 |
35 |
36 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /gd_slots_vrp/server.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/server.lua -------------------------------------------------------------------------------- /gd_slots_vrp/slots.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 0; 3 | width: 50%; 4 | height: 75%; 5 | overflow: auto; 6 | margin: auto; 7 | position: absolute; 8 | top: 0; left: 0; bottom: 0; right: 0; 9 | } 10 | 11 | #wrap { 12 | display: block; 13 | position: relative; 14 | margin: auto; 15 | width: 300px; 16 | height: 240px; 17 | overflow: hidden; 18 | background-color: #cccccc; 19 | background-image: url("images/background.png"); 20 | background-position: 20px 0px; 21 | background-repeat: no-repeat; 22 | border: 2px solid black; 23 | border-radius: 8px; 24 | zoom: 2.5; 25 | } 26 | 27 | #game { 28 | width: 200px; 29 | float: left; 30 | text-align: center; 31 | } 32 | 33 | #game div { 34 | font-size: 10pt; 35 | } 36 | #game input { 37 | width: 40px; 38 | } 39 | 40 | button { 41 | font-size: 6pt; 42 | } 43 | 44 | #info { 45 | top: 20px; 46 | left: 200px; 47 | width: 100px; 48 | text-align: left; 49 | font-size: 9pt; 50 | float: right; 51 | font-family: arial, helvetica, sans-serif; 52 | } 53 | 54 | #betMenu { 55 | font-size: 8pt; 56 | } 57 | 58 | #credits { 59 | font-size: 10pt; 60 | } 61 | 62 | #log { 63 | color: #666666; 64 | } 65 | 66 | #attribution { 67 | text-align: center; 68 | vertical-align: bottom; 69 | width: 280px; 70 | font-size: 4pt; 71 | color: #666666; 72 | font-family: arial, helvetica, sans-serif; 73 | margin-top: 20px; 74 | } 75 | 76 | #attribution a { 77 | color: #6666ff; 78 | } 79 | 80 | -------------------------------------------------------------------------------- /gd_slots_vrp/sounds/reel_stop.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/sounds/reel_stop.wav -------------------------------------------------------------------------------- /gd_slots_vrp/sounds/win.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_slots_vrp/sounds/win.wav -------------------------------------------------------------------------------- /gd_speedometer/__resource.lua: -------------------------------------------------------------------------------- 1 | -- Manifest 2 | resource_manifest_version '44febabe-d386-4d18-afbe-5e627f4af936' 3 | 4 | description 'Speedometer by GlitchDetector' 5 | 6 | ui_page 'ui.html' 7 | 8 | -- Server 9 | server_scripts { 10 | } 11 | 12 | -- Client 13 | client_scripts { 14 | 'client/main.lua' 15 | } 16 | 17 | -- NUI Files 18 | files { 19 | 'ui.html', 20 | 'pdown.ttf', 21 | 'meter.png' 22 | } -------------------------------------------------------------------------------- /gd_speedometer/client/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_speedometer/client/Thumbs.db -------------------------------------------------------------------------------- /gd_speedometer/client/main.lua: -------------------------------------------------------------------------------- 1 | 2 | -- Don't mind me, I'm just touchy. -- glitchdetector 3 | function GetVehHealthPercent() -- Thanks hbkz0r 4 | local ped = GetPlayerPed(-1) 5 | local vehicle = GetVehiclePedIsUsing(ped) 6 | local vehiclehealth = GetEntityHealth(vehicle) - 100 7 | local maxhealth = GetEntityMaxHealth(vehicle) - 100 8 | local procentage = (vehiclehealth / maxhealth) * 100 9 | return procentage 10 | end 11 | 12 | Citizen.CreateThread(function() 13 | while true do 14 | Citizen.Wait(1); 15 | 16 | playerPed = GetPlayerPed(-1) 17 | if playerPed then 18 | playerCar = IsPedInAnyVehicle(playerPed, false) 19 | if playerCar then 20 | playerCar = GetVehiclePedIsIn(playerPed, false); 21 | carSpeed = GetEntitySpeed(playerCar); 22 | --speed = math.ceil(carSpeed * 3.6) 23 | speed = math.floor(carSpeed * 2.236936) 24 | fuel = GetVehHealthPercent(); 25 | SendNUIMessage({ 26 | showSpeed = true, 27 | setSpeed = true, 28 | speed = speed, 29 | setFuel = true, 30 | fuel = fuel 31 | }) 32 | else 33 | SendNUIMessage({hideSpeed = true}) 34 | end 35 | end 36 | end 37 | end); -------------------------------------------------------------------------------- /gd_speedometer/client/meter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_speedometer/client/meter.png -------------------------------------------------------------------------------- /gd_speedometer/meter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_speedometer/meter.png -------------------------------------------------------------------------------- /gd_speedometer/pdown.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_speedometer/pdown.ttf -------------------------------------------------------------------------------- /gd_speedometer/server/sv_fuel.lua: -------------------------------------------------------------------------------- 1 | RegisterServerEvent("gdf:getVehicleFuel"); 2 | 3 | local vehicleFuel = {}; 4 | 5 | function vehicleExists(veh) { 6 | return (type(vehicleFuel[veh]) ~= nil); 7 | } 8 | 9 | AddEventHandler("gdf:getVehicleFuel", function(vehicle, callback) 10 | if not vehicleExists(vehicle) then 11 | vehicleFuel[vehicle] = 65; 12 | callback(vehicleFuel[vehicle]); 13 | else 14 | callback(vehicleFuel[vehicle]); 15 | end 16 | end); 17 | 18 | AddEventHandler("gfd:setVehicleFuel", function(vehicle, fuel) 19 | vehicleFuel[vehicle] = fuel; 20 | end); -------------------------------------------------------------------------------- /gd_speedometer/ui.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 109 | 110 | 136 | 137 | 138 | 139 |
140 |
Ree
141 | 142 | 143 | 144 |
145 |
146 | 147 | -------------------------------------------------------------------------------- /gd_trafficlights/__resource.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | ▄▌█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ 3 | ▄▄██▌█ Constructed for Transport Tycoon █ █ Web http://glitchdetector.net █ 4 | ▄▄▄▌▐██▌█ <3 by glitchdetector █ █ Discord http://discord.gg/fs6bPfu █ 5 | ███████▌█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ 6 | ▀(@)▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀(@)▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀ 7 | ]] 8 | 9 | client_scripts { 10 | 'client/main.lua', 11 | 'shared/main.lua' 12 | } 13 | server_scripts { 14 | 'server/main.lua', 15 | 'shared/main.lua' 16 | } -------------------------------------------------------------------------------- /gd_trafficlights/client/main.lua: -------------------------------------------------------------------------------- 1 | 2 | Citizen.CreateThread(function() 3 | print("gd_trafficlights/client/main.lua init") 4 | -- while true do 5 | -- Citizen.Wait(5) 6 | -- end 7 | end) 8 | 9 | local models = { 10 | ["prop_traffic_01a"] = 5, 11 | ["prop_traffic_01b"] = 10, 12 | ["prop_traffic_01d"] = 10, 13 | ["prop_traffic_02a"] = 5, 14 | ["prop_traffic_02b"] = 10, 15 | ["prop_traffic_03a"] = 5, 16 | } 17 | 18 | local pedindex = {} 19 | local ls = 3 20 | local lsmax = 500 21 | 22 | Citizen.CreateThread(function() 23 | while true do 24 | Wait(500) 25 | pedindex = {} 26 | PopulatePedIndex() 27 | -- ls = ls + 1 28 | -- if ls > lsmax then ls = 0 end 29 | -- print(ls) 30 | end 31 | end) 32 | 33 | Citizen.CreateThread(function() 34 | while true do 35 | Wait(5) 36 | for k,v in next, pedindex do 37 | local pos = GetEntityCoords(k) 38 | --SetEntityHeading(k, GetEntityHeading(k) + 1.0) 39 | DrawLine(pos.x, pos.y, pos.z + 2.0, pos.x - GetEntityForwardY(k) * v, pos.y + GetEntityForwardX(k) * v, pos.z + 2.0, 255, 0, 0, 255) 40 | --void DRAW_LINE(float x1, float y1, float z1, float x2, float y2, float z2, int red, int green, int blue, int alpha) 41 | end 42 | end 43 | end) 44 | 45 | 46 | 47 | function PopulatePedIndex() 48 | local handle, ped = FindFirstObject() 49 | local finished = false -- FindNextPed will turn the first variable to false when it fails to find another ped in the index 50 | repeat 51 | for k,v in next, models do 52 | if GetEntityModel(ped) == GetHashKey(k) then 53 | pedindex[ped] = v 54 | end 55 | end 56 | finished, ped = FindNextObject(handle) -- first param returns true while entities are found 57 | until not finished 58 | EndFindObject(handle) 59 | end -------------------------------------------------------------------------------- /gd_trafficlights/server/main.lua: -------------------------------------------------------------------------------- 1 | 2 | Citizen.CreateThread(function() 3 | print("gd_trafficlights/server/main.lua init") 4 | -- while true do 5 | -- Citizen.Wait(5) 6 | -- end 7 | end) -------------------------------------------------------------------------------- /gd_trafficlights/shared/main.lua: -------------------------------------------------------------------------------- 1 | 2 | Citizen.CreateThread(function() 3 | print("gd_trafficlights/shared/main.lua init") 4 | -- while true do 5 | -- Citizen.Wait(5) 6 | -- end 7 | end) -------------------------------------------------------------------------------- /gd_utils/__resource.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | ▄▌█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ 3 | ▄▄██▌█ Constructed for Transport Tycoon █ █ Web http://glitchdetector.net █ 4 | ▄▄▄▌▐██▌█ <3 by glitchdetector █ █ Discord http://discord.gg/fs6bPfu █ 5 | ███████▌█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ 6 | ▀(@)▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀(@)▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀▀▀▀▀▀▀(@)(@)▀▀▀▀▀▀▀ 7 | ]] 8 | 9 | client_scripts { 10 | 'client/main.lua', 11 | 'client/disable_vehicle_weapons.lua', 12 | 'shared/main.lua' 13 | } 14 | server_scripts { 15 | 'server/main.lua', 16 | 'shared/main.lua' 17 | } -------------------------------------------------------------------------------- /gd_utils/client/disable_vehicle_weapons.lua: -------------------------------------------------------------------------------- 1 | local vehicle_weapons = { 2 | "VEHICLE_WEAPON_WATER_CANNON", 3 | "VEHICLE_WEAPON_PLAYER_LAZER", 4 | "VEHICLE_WEAPON_PLANE_ROCKET", 5 | "VEHICLE_WEAPON_ENEMY_LASER", 6 | "VEHICLE_WEAPON_TANK", 7 | "VEHICLE_WEAPON_SEARCHLIGHT", 8 | "VEHICLE_WEAPON_RADAR", 9 | "VEHICLE_WEAPON_PLAYER_BUZZARD", 10 | "VEHICLE_WEAPON_SPACE_ROCKET", 11 | "VEHICLE_WEAPON_TURRET_INSURGENT", 12 | "VEHICLE_WEAPON_PLAYER_SAVAGE", 13 | "VEHICLE_WEAPON_TURRET_TECHNICAL", 14 | "VEHICLE_WEAPON_NOSE_TURRET_VALKYRIE", 15 | "VEHICLE_WEAPON_TURRET_VALKYRIE", 16 | "VEHICLE_WEAPON_CANNON_BLAZER", 17 | "VEHICLE_WEAPON_TURRET_BOXVILLE", 18 | "VEHICLE_WEAPON_RUINER_BULLET", 19 | "VEHICLE_WEAPON_RUINER_ROCKET", 20 | "VEHICLE_WEAPON_HUNTER_MG", 21 | "VEHICLE_WEAPON_HUNTER_MISSILE", 22 | "VEHICLE_WEAPON_HUNTER_CANNON", 23 | "VEHICLE_WEAPON_HUNTER_BARRAGE", 24 | "VEHICLE_WEAPON_TULA_NOSEMG", 25 | "VEHICLE_WEAPON_TULA_MG", 26 | "VEHICLE_WEAPON_TULA_DUALMG", 27 | "VEHICLE_WEAPON_TULA_MINIGUN", 28 | "VEHICLE_WEAPON_SEABREEZE_MG", 29 | "VEHICLE_WEAPON_MICROLIGHT_MG", 30 | "VEHICLE_WEAPON_DOGFIGHTER_MG", 31 | "VEHICLE_WEAPON_DOGFIGHTER_MISSILE", 32 | "VEHICLE_WEAPON_MOGUL_NOSE", 33 | "VEHICLE_WEAPON_MOGUL_DUALNOSE", 34 | "VEHICLE_WEAPON_MOGUL_TURRET", 35 | "VEHICLE_WEAPON_MOGUL_DUALTURRET", 36 | "VEHICLE_WEAPON_ROGUE_MG", 37 | "VEHICLE_WEAPON_ROGUE_CANNON", 38 | "VEHICLE_WEAPON_ROGUE_MISSILE", 39 | "VEHICLE_WEAPON_BOMBUSHKA_DUALMG", 40 | "VEHICLE_WEAPON_BOMBUSHKA_CANNON", 41 | "VEHICLE_WEAPON_HAVOK_MINIGUN", 42 | "VEHICLE_WEAPON_VIGILANTE_MG", 43 | "VEHICLE_WEAPON_VIGILANTE_MISSILE", 44 | "VEHICLE_WEAPON_TURRET_LIMO", 45 | "VEHICLE_WEAPON_DUNE_MG", 46 | "VEHICLE_WEAPON_DUNE_GRENADELAUNCHER", 47 | "VEHICLE_WEAPON_DUNE_MINIGUN", 48 | "VEHICLE_WEAPON_TAMPA_MISSILE", 49 | "VEHICLE_WEAPON_TAMPA_MORTAR", 50 | "VEHICLE_WEAPON_TAMPA_FIXEDMINIGUN", 51 | "VEHICLE_WEAPON_TAMPA_DUALMINIGUN", 52 | "VEHICLE_WEAPON_HALFTRACK_DUALMG", 53 | "VEHICLE_WEAPON_HALFTRACK_QUADMG", 54 | "VEHICLE_WEAPON_APC_CANNON", 55 | "VEHICLE_WEAPON_APC_MISSILE", 56 | "VEHICLE_WEAPON_APC_MG", 57 | "VEHICLE_WEAPON_ARDENT_MG", 58 | "VEHICLE_WEAPON_TECHNICAL_MINIGUN", 59 | "VEHICLE_WEAPON_INSURGENT_MINIGUN", 60 | "VEHICLE_WEAPON_TRAILER_QUADMG", 61 | "VEHICLE_WEAPON_TRAILER_MISSILE", 62 | "VEHICLE_WEAPON_TRAILER_DUALAA", 63 | "VEHICLE_WEAPON_NIGHTSHARK_MG", 64 | "VEHICLE_WEAPON_OPPRESSOR_MG", 65 | "VEHICLE_WEAPON_OPPRESSOR_MISSILE", 66 | "VEHICLE_WEAPON_MOBILEOPS_CANNON", 67 | "VEHICLE_WEAPON_AKULA_TURRET_SINGLE", 68 | "VEHICLE_WEAPON_AKULA_MISSILE", 69 | "VEHICLE_WEAPON_AKULA_TURRET_DUAL", 70 | "VEHICLE_WEAPON_AKULA_MINIGUN", 71 | "VEHICLE_WEAPON_AKULA_BARRAGE", 72 | "VEHICLE_WEAPON_AVENGER_CANNON", 73 | "VEHICLE_WEAPON_BARRAGE_TOP_MG", 74 | "VEHICLE_WEAPON_BARRAGE_TOP_MINIGUN", 75 | "VEHICLE_WEAPON_BARRAGE_REAR_MG", 76 | "VEHICLE_WEAPON_BARRAGE_REAR_MINIGUN", 77 | "VEHICLE_WEAPON_BARRAGE_REAR_GL", 78 | "VEHICLE_WEAPON_CHERNO_MISSILE", 79 | "VEHICLE_WEAPON_COMET_MG", 80 | "VEHICLE_WEAPON_DELUXO_MG", 81 | "VEHICLE_WEAPON_DELUXO_MISSILE", 82 | "VEHICLE_WEAPON_KHANJALI_CANNON", 83 | "VEHICLE_WEAPON_KHANJALI_CANNON_HEAVY", 84 | "VEHICLE_WEAPON_KHANJALI_MG", 85 | "VEHICLE_WEAPON_KHANJALI_GL", 86 | "VEHICLE_WEAPON_REVOLTER_MG", 87 | "VEHICLE_WEAPON_WATER_CANNON", 88 | "VEHICLE_WEAPON_SAVESTRA_MG", 89 | "VEHICLE_WEAPON_SUBCAR_MG", 90 | "VEHICLE_WEAPON_SUBCAR_MISSILE", 91 | "VEHICLE_WEAPON_SUBCAR_TORPEDO", 92 | "VEHICLE_WEAPON_THRUSTER_MG", 93 | "VEHICLE_WEAPON_THRUSTER_MISSILE", 94 | "VEHICLE_WEAPON_VISERIS_MG", 95 | "VEHICLE_WEAPON_VOLATOL_DUALMG" 96 | } 97 | 98 | Citizen.CreateThread(function() 99 | print("gd_utils/client/disable_vehicle_weapons.lua init") 100 | while true do 101 | 102 | Citizen.Wait(10) 103 | 104 | local ply = GetPlayerPed(-1) 105 | local veh = GetVehiclePedIsIn(ply, false) 106 | 107 | if DoesVehicleHaveWeapons(veh) then 108 | for _,v in next, vehicle_weapons do 109 | DisableVehicleWeapon(true, GetHashKey(v), veh, ply) 110 | end 111 | end 112 | end 113 | end) 114 | -------------------------------------------------------------------------------- /gd_utils/readme.md: -------------------------------------------------------------------------------- 1 | TYPES OF MESSAGES: (name* means its optional) 2 | message (Stock message with title and text) 3 | title 4 | text 5 | time* 6 | overlay (Message with title and two lines of text) 7 | title 8 | line1 9 | line2 10 | time* 11 | oneliner (One line of text with a dark background) 12 | text 13 | time* 14 | popup 15 | title 16 | message 17 | time* 18 | news (Weasel News breaking news reel) 19 | title 20 | bottomline 21 | topline 22 | time* 23 | stats (Used for vehicle stats but can do other things, only works with 4 stat points!!) 24 | title 25 | message 26 | icontxd 27 | iconname 28 | {StatNames}(4) 29 | {StatValues}(4) 30 | time* 31 | pedstats (The same as the stats but uses the players ped as an icon) 32 | title 33 | message 34 | {StatNames}(4) 35 | {StatValues}(4) 36 | time* 37 | 38 | sfx_alert (Audible alert 1-6) 39 | alertno* 40 | over_vehicle 41 | toggle* 42 | 43 | Sample: 44 | TriggerClientEvent("gd_utils:message", -1, "PSA from Staff", "This is a sample PSA. Everyone should see this.") 45 | 46 | SFX Alerts: 47 | Accepts 1-6 48 | No argument will make a default alert sound 49 | 4 is the wasted sound effect 50 | 51 | Over Vehicle Mode: 52 | To make the item appear over the LAST VEHICLE the player was in (aka the current), 53 | first, trigger the message/item, then use the event over_vehicle with the toggle parameter set to true. 54 | Example: 55 | TriggerClientEvent("gd_utils:message", -1, "PSA from Staff", "This is a sample PSA. Everyone should see this.") 56 | TriggerClientEvent("gd_utils:over_vehicle", -1, true) 57 | 58 | Stats: 59 | To use the STATS, it needs 4 different stats to show. It will not work with less or more than 4. 60 | Example: 61 | TriggerClientEvent("gd_utils:stats", source, "Transport Tycoon ID Card", "Player: " .. GetPlayerName(source), "mpcharselect", "mp_generic_avatar", {"my", "name", "jeff", "xd"}, {32, 75, 12, 44}) 62 | or 63 | TriggerClientEvent("gd_utils:pedstats", source, "Transport Tycoon ID Card", "Player: " .. GetPlayerName(source), {"my", "name", "jeff", "xd"}, {32, 75, 12, 44}) 64 | -------------------------------------------------------------------------------- /gd_utils/server/main.lua: -------------------------------------------------------------------------------- 1 | local n = 0 2 | Citizen.CreateThread(function() 3 | print("gd_utils/server/main.lua init") 4 | -- while true do 5 | -- Citizen.Wait(5) 6 | -- end 7 | end) 8 | 9 | AddEventHandler("chatMessage",function(source,name,msg) 10 | if msg == "?message" then 11 | TriggerClientEvent("gd_utils:message", source, "Sample Title", "Sample Message Text") 12 | CancelEvent() 13 | end 14 | if msg == "?sfx" then 15 | n = n + 1 16 | TriggerClientEvent("gd_utils:message", source, "~y~SoundFX: ~w~"..n, "~r~Running sound test...") 17 | TriggerClientEvent("gd_utils:sfx_alert", source, n) 18 | CancelEvent() 19 | end 20 | if msg == "?s20" then 21 | TriggerClientEvent("gd_utils:message", source, "~y~Speed Limit: ~w~20mph", "~r~You're going too fast! Slow down the train!") 22 | TriggerClientEvent("gd_utils:sfx_alert", source, 1) 23 | CancelEvent() 24 | end 25 | if msg == "?s40" then 26 | TriggerClientEvent("gd_utils:message", source, "~y~Speed Limit: ~w~40mph", "~r~You're going too fast! Slow down the train!") 27 | TriggerClientEvent("gd_utils:sfx_alert", source, 1) 28 | CancelEvent() 29 | end 30 | if msg == "?s80" then 31 | TriggerClientEvent("gd_utils:message", source, "~y~Speed Limit: ~w~80mph", "~r~You're going too fast! Slow down the train!") 32 | TriggerClientEvent("gd_utils:sfx_alert", source, 1) 33 | CancelEvent() 34 | end 35 | if msg == "?s90" then 36 | TriggerClientEvent("gd_utils:message", source, "~y~Speed Limit: ~w~90mph", "~r~You're going too fast! Slow down the train!") 37 | TriggerClientEvent("gd_utils:sfx_alert", source, 1) 38 | CancelEvent() 39 | end 40 | if msg == "?rank" then 41 | TriggerClientEvent("gd_utils:message", source, "~y~Level Up!", "~w~You have hit level ~g~12~w~!") 42 | TriggerClientEvent("gd_utils:sfx_alert", source, 5) 43 | CancelEvent() 44 | end 45 | if msg == "?fail" then 46 | TriggerClientEvent("gd_utils:message", source, "~r~Mission Failed", "~w~All you had to do was follow the damn train, CJ!") 47 | TriggerClientEvent("gd_utils:sfx_alert", source, 2) 48 | CancelEvent() 49 | end 50 | if msg == "?wasted" then 51 | TriggerClientEvent("gd_utils:popup", source, "~r~Wasted", "[[died of cancer or something who the fuck knows]]") 52 | TriggerClientEvent("gd_utils:sfx_alert", source, 4) 53 | CancelEvent() 54 | end 55 | if msg == "?busted" then 56 | TriggerClientEvent("gd_utils:popup", source, "~b~Busted", "PSA: Don't do drugs kids") 57 | TriggerClientEvent("gd_utils:sfx_alert", source, 4) 58 | CancelEvent() 59 | end 60 | if msg == "?overlay" then 61 | TriggerClientEvent("gd_utils:overlay", source, "You have been kicked", "Reason: stealing my fries when im clearly not finished eating them", "...") 62 | CancelEvent() 63 | end 64 | if msg == "?popup" then 65 | TriggerClientEvent("gd_utils:popup", source, "Sample Title", "Sample Message Text") 66 | CancelEvent() 67 | end 68 | if msg == "?oneliner" then 69 | TriggerClientEvent("gd_utils:oneliner", source, "~r~PLAYER VEHICLE! ~w~Stealing this will result in a ~r~BAN") 70 | CancelEvent() 71 | end 72 | if msg == "?onelinervehicle" then 73 | TriggerClientEvent("gd_utils:oneliner", source, "~r~PLAYER VEHICLE! ~w~Stealing this will result in a ~r~BAN") 74 | TriggerClientEvent("gd_utils:over_vehicle", source, true) 75 | CancelEvent() 76 | end 77 | if msg == "?news" then 78 | TriggerClientEvent("gd_utils:news", source, "Breaking News: PizzaHawaii not a real pizza", "Rumours have it that the Hawaiian pizza is in fact not a real pizza.", "\"lol people put pineapple on their pizza?? wtf\" - 4chan") 79 | CancelEvent() 80 | end 81 | if msg == "?psa" then 82 | TriggerClientEvent("gd_utils:message", source, "PSA from staff", "We are aware of the events taking place. Please do not involve in further activities. Action will be taken.") 83 | CancelEvent() 84 | end 85 | if msg == "?stats" then 86 | TriggerClientEvent("gd_utils:stats", source, "Transport Tycoon ID Card", "Player: " .. GetPlayerName(source), "mpcharselect", "mp_generic_avatar", {"my", "name", "jeff", "xd"}, {32, 75, 12, 44}) 87 | CancelEvent() 88 | end 89 | if msg == "?pedstats" then 90 | TriggerClientEvent("gd_utils:pedstats", source, "Transport Tycoon ID Card", "Player: " .. GetPlayerName(source), {"my", "name", "jeff", "xd"}, {32, 75, 12, 44}) 91 | CancelEvent() 92 | end 93 | end) -------------------------------------------------------------------------------- /gd_utils/shared/main.lua: -------------------------------------------------------------------------------- 1 | 2 | Citizen.CreateThread(function() 3 | print("gd_utils/shared/main.lua init") 4 | -- while true do 5 | -- Citizen.Wait(5) 6 | -- end 7 | end) -------------------------------------------------------------------------------- /gd_vehspawn/__resource.lua: -------------------------------------------------------------------------------- 1 | -- for collins with love <3 - glitch -------------------------------------------------------------------------------- /gd_vehspawn/client.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_vehspawn/client.lua -------------------------------------------------------------------------------- /gd_vehspawn/server.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/gd_vehspawn/server.lua -------------------------------------------------------------------------------- /gd_vrp_edits/client/map.lua: -------------------------------------------------------------------------------- 1 | -- BLIPS: see https://wiki.gtanet.work/index.php?title=Blips for blip id/color 2 | 3 | -- TUNNEL CLIENT API 4 | 5 | -- BLIP 6 | 7 | -- create new blip, return native id 8 | function tvRP.addBlip(x,y,z,idtype,idcolor,text) 9 | local blip = AddBlipForCoord(x+0.001,y+0.001,z+0.001) -- solve strange gta5 madness with integer -> double 10 | SetBlipSprite(blip, idtype) 11 | SetBlipAsShortRange(blip, true) 12 | SetBlipColour(blip,idcolor) 13 | 14 | if text ~= nil then 15 | BeginTextCommandSetBlipName("STRING") 16 | AddTextComponentString(text) 17 | EndTextCommandSetBlipName(blip) 18 | end 19 | 20 | return blip 21 | end 22 | 23 | -- remove blip by native id 24 | function tvRP.removeBlip(id) 25 | RemoveBlip(id) 26 | end 27 | 28 | 29 | local named_blips = {} 30 | 31 | -- set a named blip (same as addBlip but for a unique name, add or update) 32 | -- return native id 33 | function tvRP.setNamedBlip(name,x,y,z,idtype,idcolor,text) 34 | tvRP.removeNamedBlip(name) -- remove old one 35 | 36 | named_blips[name] = tvRP.addBlip(x,y,z,idtype,idcolor,text) 37 | return named_blips[name] 38 | end 39 | 40 | -- remove a named blip 41 | function tvRP.removeNamedBlip(name) 42 | if named_blips[name] ~= nil then 43 | tvRP.removeBlip(named_blips[name]) 44 | named_blips[name] = nil 45 | end 46 | end 47 | 48 | -- GPS 49 | 50 | -- set the GPS destination marker coordinates 51 | function tvRP.setGPS(x,y) 52 | SetNewWaypoint(x+0.0001,y+0.0001) 53 | end 54 | 55 | -- set route to native blip id 56 | function tvRP.setBlipRoute(id) 57 | SetBlipRoute(id,true) 58 | end 59 | 60 | -- MARKER 61 | 62 | local markers = {} 63 | local marker_ids = Tools.newIDGenerator() 64 | local named_markers = {} 65 | 66 | -- add a circular marker to the game map 67 | -- return marker id 68 | function tvRP.addMarker(x,y,z,sx,sy,sz,r,g,b,a,visible_distance) 69 | local marker = {x=x,y=y,z=z,sx=sx,sy=sy,sz=sz,r=r,g=g,b=b,a=a,visible_distance=visible_distance} 70 | 71 | 72 | -- default values 73 | if marker.sx == nil then marker.sx = 2.0 end 74 | if marker.sy == nil then marker.sy = 2.0 end 75 | if marker.sz == nil then marker.sz = 0.7 end 76 | 77 | if marker.r == nil then marker.r = 0 end 78 | if marker.g == nil then marker.g = 155 end 79 | if marker.b == nil then marker.b = 255 end 80 | if marker.a == nil then marker.a = 200 end 81 | 82 | -- fix gta5 integer -> double issue 83 | marker.x = marker.x+0.001 84 | marker.y = marker.y+0.001 85 | marker.z = marker.z+0.001 86 | marker.sx = marker.sx+0.001 87 | marker.sy = marker.sy+0.001 88 | marker.sz = marker.sz+0.001 89 | 90 | if marker.visible_distance == nil then marker.visible_distance = 150 end 91 | 92 | local id = marker_ids:gen() 93 | markers[id] = marker 94 | 95 | return id 96 | end 97 | 98 | -- remove marker 99 | function tvRP.removeMarker(id) 100 | if markers[id] ~= nil then 101 | markers[id] = nil 102 | marker_ids:free(id) 103 | end 104 | end 105 | 106 | -- set a named marker (same as addMarker but for a unique name, add or update) 107 | -- return id 108 | function tvRP.setNamedMarker(name,x,y,z,sx,sy,sz,r,g,b,a,visible_distance) 109 | tvRP.removeNamedMarker(name) -- remove old marker 110 | 111 | named_markers[name] = tvRP.addMarker(x,y,z,sx,sy,sz,r,g,b,a,visible_distance) 112 | return named_markers[name] 113 | end 114 | 115 | function tvRP.removeNamedMarker(name) 116 | if named_markers[name] ~= nil then 117 | tvRP.removeMarker(named_markers[name]) 118 | named_markers[name] = nil 119 | end 120 | end 121 | 122 | -- markers draw loop 123 | Citizen.CreateThread(function() 124 | while true do 125 | Citizen.Wait(0) 126 | 127 | local px,py,pz = tvRP.getPosition() 128 | 129 | for k,v in pairs(markers) do 130 | -- check visibility 131 | if GetDistanceBetweenCoords(v.x,v.y,v.z,px,py,pz,true) <= v.visible_distance then 132 | DrawMarker(1,v.x,v.y,v.z,0,0,0,0,0,0,v.sx,v.sy,v.sz,v.r,v.g,v.b,v.a,0,0,0,0) 133 | end 134 | end 135 | end 136 | end) 137 | 138 | -- AREA 139 | 140 | local areas = {} 141 | 142 | -- create/update a cylinder area 143 | function tvRP.setArea(name,x,y,z,radius,height) 144 | local area = {x=x+0.001,y=y+0.001,z=z+0.001,radius=radius,height=height} 145 | 146 | -- default values 147 | if area.height == nil then area.height = 6 end 148 | 149 | areas[name] = area 150 | end 151 | 152 | -- remove area 153 | function tvRP.removeArea(name) 154 | if areas[name] ~= nil then 155 | areas[name] = nil 156 | end 157 | end 158 | 159 | -- areas triggers detections 160 | Citizen.CreateThread(function() 161 | while true do 162 | Citizen.Wait(250) 163 | 164 | local px,py,pz = tvRP.getPosition() 165 | 166 | for k,v in pairs(areas) do 167 | -- detect enter/leave 168 | 169 | local player_in = (GetDistanceBetweenCoords(v.x,v.y,v.z,px,py,pz,true) <= v.radius and math.abs(pz-v.z) <= v.height) 170 | 171 | if v.player_in and not player_in then -- was in: leave 172 | vRPserver.leaveArea({k}) 173 | elseif not v.player_in and player_in then -- wasn't in: enter 174 | vRPserver.enterArea({k}) 175 | end 176 | 177 | v.player_in = player_in -- update area player_in 178 | end 179 | end 180 | end) 181 | 182 | -- DOOR 183 | 184 | -- set the closest door state 185 | -- doordef: .model or .modelhash 186 | -- locked: boolean 187 | -- doorswing: -1 to 1 188 | function tvRP.setStateOfClosestDoor(doordef, locked, doorswing) 189 | local x,y,z = tvRP.getPosition() 190 | local hash = doordef.modelhash 191 | if hash == nil then 192 | hash = GetHashKey(doordef.model) 193 | end 194 | 195 | SetStateOfClosestDoorOfType(hash,x,y,z,locked,doorswing+0.0001) 196 | end 197 | 198 | function tvRP.openClosestDoor(doordef) 199 | tvRP.setStateOfClosestDoor(doordef, false, 0) 200 | end 201 | 202 | function tvRP.closeClosestDoor(doordef) 203 | tvRP.setStateOfClosestDoor(doordef, true, 0) 204 | end 205 | 206 | -------------------------------------------------------------------------------- /gd_vrp_edits/modules/map.lua: -------------------------------------------------------------------------------- 1 | 2 | local client_areas = {} 3 | local client_blips = {} 4 | 5 | -- free client areas when leaving 6 | AddEventHandler("vRP:playerLeave",function(user_id,source) 7 | client_areas[source] = nil 8 | client_blips[user_id] = nil 9 | end) 10 | 11 | -- create/update a player area 12 | function vRP.setArea(source,name,x,y,z,radius,height,cb_enter,cb_leave) 13 | local areas = client_areas[source] or {} 14 | client_areas[source] = areas 15 | 16 | areas[name] = {enter=cb_enter,leave=cb_leave} 17 | vRPclient.setArea(source,{name,x,y,z,radius,height}) 18 | end 19 | 20 | -- delete a player area 21 | function vRP.removeArea(source,name) 22 | -- delete remote area 23 | vRPclient.removeArea(source,{name}) 24 | 25 | -- delete local area 26 | local areas = client_areas[source] 27 | if areas then 28 | areas[name] = nil 29 | end 30 | end 31 | 32 | -- TUNNER SERVER API 33 | 34 | function tvRP.enterArea(name) 35 | local areas = client_areas[source] 36 | if areas then 37 | local area = areas[name] 38 | if area and area.enter then -- trigger enter callback 39 | area.enter(source,name) 40 | end 41 | end 42 | end 43 | 44 | function tvRP.leaveArea(name) 45 | local areas = client_areas[source] 46 | 47 | if areas then 48 | local area = areas[name] 49 | if area and area.leave then -- trigger leave callback 50 | area.leave(source,name) 51 | end 52 | end 53 | end 54 | 55 | 56 | local cfg = module("cfg/blips_markers") 57 | 58 | -- add additional static blips/markers 59 | AddEventHandler("vRP:playerSpawn",function(user_id, source, first_spawn) 60 | if first_spawn then 61 | if not client_blips[user_id] then 62 | client_blips[user_id] = {} 63 | end 64 | for k,v in pairs(cfg.blips) do 65 | local n = "vrp:cgfblip:"..k 66 | if vRP.hasPermissions(user_id, v[7] or {}) then 67 | vRPclient.setNamedBlip(source,{n,v[1],v[2],v[3],v[4],v[5],v[6]}) 68 | else 69 | table.insert(client_blips[user_id], v) 70 | end 71 | end 72 | 73 | for k,v in pairs(cfg.markers) do 74 | vRPclient.addMarker(source,{v[1],v[2],v[3],v[4],v[5],v[6],v[7],v[8],v[9],v[10],v[11]}) 75 | end 76 | end 77 | end) 78 | 79 | Citizen.CreateThread(function() 80 | while true do 81 | Wait(10000) 82 | for user_id,blips in pairs(client_blips) do 83 | local source = vRP.getUserSource(user_id) 84 | for k,v in pairs(blips) do 85 | if vRP.hasPermissions(user_id, v[7] or {}) then 86 | vRPclient.addBlip(source,{v[1],v[2],v[3],v[4],v[5],v[6]}) 87 | client_blips[user_id][k] = nil 88 | end 89 | end 90 | end 91 | end 92 | end) 93 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | This is a collection of things I've made for FiveM. Mainly most of this was made for the use on [Transport Tycoon](http://tycoon.community) before I took over ownership of it. 2 | All of these resources are old development versions, they may not work at all, and some of them were never in a state where they had any use. 3 | 4 | # Nothing has been updated since January 2018 5 | This is made public due to the fact that some "smart" individual is trying to sell it somewhere on the deep webz, and why not fuck them over by leaking it myself instead. 6 | 7 | Enjoy broken stuff, maybe you can dig out some stuff from it. 8 | 9 | Some of these things may also be modified versions of existing things, there may or may not be credits, I can't really tell at this point. 10 | -------------------------------------------------------------------------------- /tt_help/__resource.lua: -------------------------------------------------------------------------------- 1 | client_script('client.lua') 2 | server_script('server.lua') 3 | 4 | ui_page('help.html') 5 | 6 | files({ 7 | 'help.html', 8 | 'discord.png' 9 | }) -------------------------------------------------------------------------------- /tt_help/client.lua: -------------------------------------------------------------------------------- 1 | local guiEnabled = false 2 | function EnableGui(enable) 3 | SetNuiFocus(enable, enable) 4 | guiEnabled = enable 5 | 6 | SendNUIMessage({ 7 | type = "open" 8 | }) 9 | end 10 | 11 | RegisterNUICallback('close', function(data, cb) 12 | SetNuiFocus(false, false) 13 | guiEnabled = false 14 | end) 15 | 16 | Citizen.CreateThread(function() 17 | while true do 18 | Wait(10) 19 | if IsControlJustPressed(1, 168) then 20 | if guiEnabled then 21 | EnableGui(false) 22 | else 23 | EnableGui(true) 24 | end 25 | end 26 | end 27 | end) 28 | 29 | RegisterNetEvent("tt_help:open") 30 | AddEventHandler("tt_help:open", function() 31 | EnableGui(true) 32 | end) -------------------------------------------------------------------------------- /tt_help/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/tt_help/discord.png -------------------------------------------------------------------------------- /tt_help/help.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |
7 |

Discord Invite Link (copy-paste to your browser)

8 | 9 | 10 |
11 | 43 | 62 | 63 | -------------------------------------------------------------------------------- /tt_help/server.lua: -------------------------------------------------------------------------------- 1 | RegisterCommand("help", function(source, args, rawCommand) 2 | TriggerClientEvent("tt_help:open", source) 3 | end, false) -------------------------------------------------------------------------------- /tt_mmga/__resource.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | MAKE MANAGEMENT GREAT AGAIN 3 | BY GLITCHDETECTOR 4 | FOR TRANSPORT TYCOON 5 | ]] 6 | 7 | client_script 'client.lua' 8 | 9 | server_script { 10 | '@vrp/lib/utils.lua', 11 | 'server.lua' 12 | } -------------------------------------------------------------------------------- /tt_mmga/client.lua: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/glitchdetector/fivem_gd_package/50e3c35f6d4446420fdf65dd1c5e2e8f7f854d30/tt_mmga/client.lua --------------------------------------------------------------------------------