ed
BIN
resources/[tools]/jg-hud/.fxap
Normal file
24
resources/[tools]/jg-hud/README.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
# JG HUD
|
||||
|
||||
Hey there! Thanks so much for purchasing, it really means a lot to me. I've spent a lot of time on this script, and I hope you love it. This document has a bunch of the essential information that should help you out:
|
||||
|
||||
## Installation
|
||||
|
||||
Full instruction installations can be found in the docs here: https://docs.jgscripts.com/hud/installation
|
||||
|
||||
## Dependencies
|
||||
|
||||
You MUST have the following set up and ensured BEFORE JG HUD in order for the script to work:
|
||||
|
||||
- OneSync Infinity
|
||||
- [ox_lib](https://github.com/overextended/ox_lib/releases)
|
||||
|
||||
## Optional Dependencies
|
||||
|
||||
- QBCore, Qbox or ESX Legacy (1.3+)
|
||||
- [jg-vehiclemileage](https://github.com/jgscripts/jg-vehiclemileage/releases) (for displaying mileage in the odometer)
|
||||
- [jg-stress-addon](https://github.com/jgscripts/jg-stress-addon) (for a stress system)
|
||||
|
||||
## Support
|
||||
|
||||
Join Discord https://discord.gg/jgscripts for personalised support and guidance with using JG HUD! We will do whatever it takes to help you out and get you up and running!
|
BIN
resources/[tools]/jg-hud/client/cl-cruise-control.lua
Normal file
BIN
resources/[tools]/jg-hud/client/cl-indicators.lua
Normal file
BIN
resources/[tools]/jg-hud/client/cl-main.lua
Normal file
94
resources/[tools]/jg-hud/client/cl-nearest-postal.lua
Normal file
|
@ -0,0 +1,94 @@
|
|||
-- This is a heavily modified & highly simplified version of nearest postal from @DevBlocky: https://github.com/DevBlocky/nearest-postal
|
||||
-- just for the purposes of displaying it in the HUD, as the exports for getting distance to nearest postal wasn't available.
|
||||
-- This IS NOT designed to be a replacement for nearest-postal, as it does not include commands for waypoints etc. I recommend still
|
||||
-- using nearest-postal alongside JG HUD!
|
||||
|
||||
---- ORIGINAL LICENSE ----
|
||||
|
||||
-- Copyright (c) 2019 BlockBa5her
|
||||
|
||||
-- Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
-- of this software and associated documentation files (the "Software"), to deal
|
||||
-- in the Software without restriction, including without limitation the rights
|
||||
-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
-- copies of the Software, and to permit persons to whom the Software is
|
||||
-- furnished to do so, subject to the following conditions:
|
||||
|
||||
-- The above copyright notice and this permission notice shall be included in all
|
||||
-- copies or substantial portions of the Software.
|
||||
|
||||
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
-- SOFTWARE.
|
||||
|
||||
---@type boolean
|
||||
local postalsLoaded = false
|
||||
|
||||
CreateThread(function()
|
||||
if not Config.ShowNearestPostal then return end
|
||||
|
||||
|
||||
local jsonData = LoadResourceFile(GetCurrentResourceName(), Config.NearestPostalsData)
|
||||
if not jsonData then
|
||||
return DebugPrint(("[ERROR] Could not find postals data file: %s"):format(Config.NearestPostalsData))
|
||||
end
|
||||
|
||||
local postals = json.decode(jsonData)
|
||||
|
||||
if not postals then
|
||||
return DebugPrint("[ERROR] Failed to decode postals JSON data")
|
||||
end
|
||||
|
||||
for i = 1, #postals do
|
||||
local postal = postals[i]
|
||||
lib.grid.addEntry({
|
||||
coords = vec(postal.x, postal.y),
|
||||
code = postal.code,
|
||||
radius = 1
|
||||
})
|
||||
end
|
||||
|
||||
postalsLoaded = true
|
||||
DebugPrint(("Loaded %d postal codes into ox_lib grid system"):format(#postals))
|
||||
end)
|
||||
|
||||
---@param pos vector
|
||||
---@return {code: string, dist: number} | false
|
||||
function GetNearestPostal(pos)
|
||||
if not Config.ShowNearestPostal or not postalsLoaded then
|
||||
return false
|
||||
end
|
||||
|
||||
local nearbyEntries = lib.grid.getNearbyEntries(pos)
|
||||
if not nearbyEntries or #nearbyEntries == 0 then
|
||||
return false
|
||||
end
|
||||
|
||||
local closestEntry, minDist
|
||||
|
||||
-- Check only nearby entries from grid
|
||||
for i = 1, #nearbyEntries do
|
||||
local entry = nearbyEntries[i]
|
||||
local dx = pos.x - entry.coords.x
|
||||
local dy = pos.y - entry.coords.y
|
||||
local dist = math.sqrt(dx * dx + dy * dy)
|
||||
|
||||
if not minDist or dist < minDist then
|
||||
closestEntry = entry
|
||||
minDist = dist
|
||||
end
|
||||
end
|
||||
|
||||
if not closestEntry then
|
||||
return false
|
||||
end
|
||||
|
||||
return {
|
||||
code = closestEntry.code,
|
||||
dist = math.round(Framework.Client.ConvertDistance(minDist, UserSettingsData?.distanceMeasurement))
|
||||
}
|
||||
end
|
BIN
resources/[tools]/jg-hud/client/cl-ped.lua
Normal file
BIN
resources/[tools]/jg-hud/client/cl-radar.lua
Normal file
149
resources/[tools]/jg-hud/client/cl-seatbelt.lua
Normal file
|
@ -0,0 +1,149 @@
|
|||
IsSeatbeltOn = true
|
||||
local seatbeltThreadCreated = false
|
||||
|
||||
---Can vehicle class have a seatbelt? Disabled for bikes, motorcycles boats etc by default
|
||||
---@param vehicle integer
|
||||
---@return boolean canHaveSeatbelt
|
||||
local function canVehicleClassHaveSeatbelt(vehicle)
|
||||
if not Config.EnableSeatbelt then return false end
|
||||
|
||||
if not vehicle or not DoesEntityExist(vehicle) then
|
||||
return false
|
||||
end
|
||||
|
||||
local vehicleClass = GetVehicleClass(vehicle)
|
||||
|
||||
local seatbeltCompatibleClasses = {
|
||||
[0] = true, -- Compacts
|
||||
[1] = true, -- Sedans
|
||||
[2] = true, -- SUVs
|
||||
[3] = true, -- Coupes
|
||||
[4] = true, -- Muscle
|
||||
[5] = true, -- Sports Classics
|
||||
[6] = true, -- Sports
|
||||
[7] = true, -- Super
|
||||
[9] = true, -- Off-road
|
||||
[10] = true, -- Industrial
|
||||
[11] = true, -- Utility
|
||||
[12] = true, -- Vans
|
||||
[17] = true, -- Service
|
||||
[18] = true, -- Emergency
|
||||
[19] = true, -- Military
|
||||
[20] = true, -- Commercial
|
||||
}
|
||||
|
||||
-- Excluded veh classes
|
||||
-- [8] = Motorcycles
|
||||
-- [13] = Cycles/Bicycles
|
||||
-- [14] = Boats
|
||||
-- [15] = Helicopters
|
||||
-- [16] = Planes
|
||||
-- [21] = Trains
|
||||
|
||||
return seatbeltCompatibleClasses[vehicleClass] or false
|
||||
end
|
||||
|
||||
---Is a seatbelt allowed in this particular vehicle? Checks emergency vehicles, passenger seats etc
|
||||
---@param vehicle integer
|
||||
---@return boolean isSeatbeltAllowed
|
||||
local function isSeatbeltAllowed(vehicle)
|
||||
if not Config.EnableSeatbelt then return false end
|
||||
if not vehicle then return false end
|
||||
|
||||
if not canVehicleClassHaveSeatbelt(vehicle) then
|
||||
return false
|
||||
end
|
||||
|
||||
if Config.DisablePassengerSeatbelts and cache.seat ~= -1 then
|
||||
return false
|
||||
end
|
||||
|
||||
if Config.DisableSeatbeltInEmergencyVehicles then
|
||||
local vehicleClass = GetVehicleClass(vehicle)
|
||||
if vehicleClass == 18 then -- Emergency vehicles
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
---Simple built in seatbelt system using "fly through windscreen" natives
|
||||
---@param willBeYeeted boolean
|
||||
local function setWhetherPedWillFlyThroughWindscreen(willBeYeeted)
|
||||
SetFlyThroughWindscreenParams(
|
||||
((not willBeYeeted) and Config.MinSpeedMphEjectionSeatbeltOn or Config.MinSpeedMphEjectionSeatbeltOff) / 2.237,
|
||||
1.0, 17.0, 10.0
|
||||
)
|
||||
SetPedConfigFlag(cache.ped, 32, willBeYeeted)
|
||||
end
|
||||
|
||||
---Toggle seatbelt main function
|
||||
---@param vehicle integer
|
||||
---@param toggle boolean
|
||||
function ToggleSeatbelt(vehicle, toggle)
|
||||
if not vehicle or not isSeatbeltAllowed(vehicle) then
|
||||
return
|
||||
end
|
||||
|
||||
IsSeatbeltOn = toggle
|
||||
LocalPlayer.state:set("seatbelt", toggle) -- for integrations with other scripts, like jg-stress-addon
|
||||
|
||||
if Config.UseCustomSeatbeltIntegration then
|
||||
Framework.Client.ToggleSeatbelt(vehicle, toggle)
|
||||
else
|
||||
setWhetherPedWillFlyThroughWindscreen(not toggle)
|
||||
end
|
||||
end
|
||||
|
||||
---Thread to disable exiting vehicle when seatbelt is on
|
||||
local function startSeatbeltExitPreventionThread()
|
||||
if not Config.PreventExitWhileBuckled then return end
|
||||
if seatbeltThreadCreated then return end
|
||||
seatbeltThreadCreated = true
|
||||
|
||||
CreateThread(function()
|
||||
while cache.vehicle do
|
||||
if IsSeatbeltOn then
|
||||
DisableControlAction(0, 75, true)
|
||||
DisableControlAction(27, 75, true)
|
||||
end
|
||||
|
||||
Wait(1)
|
||||
end
|
||||
|
||||
seatbeltThreadCreated = false
|
||||
end)
|
||||
end
|
||||
|
||||
---When entering vehicle
|
||||
---@param vehicle integer
|
||||
local function onEnterVehicle(vehicle)
|
||||
if not isSeatbeltAllowed(vehicle) then
|
||||
setWhetherPedWillFlyThroughWindscreen(false)
|
||||
IsSeatbeltOn = true
|
||||
return
|
||||
end
|
||||
|
||||
ToggleSeatbelt(vehicle, false) -- Seatbelt is off when entering vehicle
|
||||
startSeatbeltExitPreventionThread()
|
||||
end
|
||||
|
||||
if Config.EnableSeatbelt then
|
||||
lib.onCache("vehicle", onEnterVehicle)
|
||||
|
||||
CreateThread(function()
|
||||
if cache.vehicle then
|
||||
onEnterVehicle(cache.vehicle)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
-- Key mapping
|
||||
if Config.EnableSeatbelt and Config.SeatbeltKeybind then
|
||||
RegisterCommand("toggle_seatbelt", function()
|
||||
ToggleSeatbelt(cache.vehicle, not IsSeatbeltOn)
|
||||
end, false)
|
||||
|
||||
RegisterKeyMapping("toggle_seatbelt", "Toggle vehicle seatbelt", "keyboard", Config.SeatbeltKeybind or "B")
|
||||
end
|
BIN
resources/[tools]/jg-hud/client/cl-settings.lua
Normal file
BIN
resources/[tools]/jg-hud/client/cl-trains.lua
Normal file
BIN
resources/[tools]/jg-hud/client/cl-vehicle-controls.lua
Normal file
BIN
resources/[tools]/jg-hud/client/cl-vehicle.lua
Normal file
BIN
resources/[tools]/jg-hud/client/cl-weapons.lua
Normal file
391
resources/[tools]/jg-hud/config/config.data.lua
Normal file
|
@ -0,0 +1,391 @@
|
|||
--
|
||||
-- Just loads of data that you want need/want to tweak
|
||||
-- You don't need to change anything here, unless you really want to
|
||||
--
|
||||
|
||||
Config.SpeedLimits = {
|
||||
["Abattoir Ave"] = 35,
|
||||
["Abe Milton Pkwy"] = 35,
|
||||
["Ace Jones Dr"] = 35,
|
||||
["Adam's Apple Blvd"] = 40,
|
||||
["Aguja St"] = 25,
|
||||
["Algonquin Blvd"] = 35,
|
||||
["Alhambra Dr"] = 35,
|
||||
["Alta Pl"] = 30,
|
||||
["Alta St"] = 40,
|
||||
["Amarillo Vista"] = 25,
|
||||
["Amarillo Way"] = 35,
|
||||
["Americano Way"] = 25,
|
||||
["Armadillo Ave"] = 35,
|
||||
["Atlee St"] = 30,
|
||||
["Autopia Pkwy"] = 35,
|
||||
["Banham Canyon Dr"] = 40,
|
||||
["Barbareno Rd"] = 30,
|
||||
["Bay City Ave"] = 30,
|
||||
["Bay City Incline"] = 40,
|
||||
["Baytree Canyon Rd"] = 40,
|
||||
["Boulevard Del Perro"] = 35,
|
||||
["Bridge St"] = 35,
|
||||
["Brouge Ave"] = 30,
|
||||
["Buccaneer Way"] = 45,
|
||||
["Buen Vino Rd"] = 40,
|
||||
["Caesars Place"] = 25,
|
||||
["Calafia Rd"] = 30,
|
||||
["Calais Ave"] = 35,
|
||||
["Capital Blvd"] = 30,
|
||||
["Carcer Way"] = 40,
|
||||
["Carson Ave"] = 35,
|
||||
["Cascabel Ave"] = 30,
|
||||
["Cassidy Trail"] = 25,
|
||||
["Cat-Claw Ave"] = 35,
|
||||
["Catfish View"] = 35,
|
||||
["Cavalry Blvd"] = 35,
|
||||
["Chianski Passage"] = 30,
|
||||
["Cholla Rd"] = 35,
|
||||
["Cholla Springs Ave"] = 35,
|
||||
["Chum St"] = 40,
|
||||
["Chupacabra St"] = 30,
|
||||
["Clinton Ave"] = 35,
|
||||
["Cockingend Dr"] = 35,
|
||||
["Conquistador St"] = 25,
|
||||
["Cortes St"] = 25,
|
||||
["Cougar Ave"] = 30,
|
||||
["Covenant Ave"] = 30,
|
||||
["Cox Way"] = 35,
|
||||
["Crusade Rd"] = 30,
|
||||
["Davis Ave"] = 40,
|
||||
["Decker St"] = 35,
|
||||
["Del Perro Fwy"] = 65,
|
||||
["Didion Dr"] = 35,
|
||||
["Dorset Dr"] = 40,
|
||||
["Duluoz Ave"] = 35,
|
||||
["Dunstable Dr"] = 35,
|
||||
["Dunstable Ln"] = 35,
|
||||
["Dutch London St"] = 40,
|
||||
["East Eclipse Blvd"] = 35,
|
||||
["East Galileo Ave"] = 35,
|
||||
["East Joshua Road"] = 50,
|
||||
["East Mirror Dr"] = 35,
|
||||
["Eastbourne Way"] = 30,
|
||||
["Edwood Way"] = 25,
|
||||
["El Burro Blvd"] = 35,
|
||||
["El Rancho Blvd"] = 40,
|
||||
["Elgin Ave"] = 40,
|
||||
["Elysian Fields Fwy"] = 50,
|
||||
["Equality Way"] = 30,
|
||||
["Exceptionalists Way"] = 35,
|
||||
["Fenwell Pl"] = 35,
|
||||
["Fort Zancudo Approach Rd"] = 25,
|
||||
["Forum Dr"] = 35,
|
||||
["Fudge Ln"] = 25,
|
||||
["Galileo Park"] = 35,
|
||||
["Galileo Rd"] = 40,
|
||||
["Gentry Lane"] = 30,
|
||||
["Ginger St"] = 30,
|
||||
["Glory Way"] = 35,
|
||||
["Goma St"] = 25,
|
||||
["Grapeseed Ave"] = 35,
|
||||
["Grapeseed Main St"] = 35,
|
||||
["Great Ocean Hwy"] = 60,
|
||||
["Greenwich Pkwy"] = 35,
|
||||
["Greenwich Pl"] = 35,
|
||||
["Greenwich Way"] = 35,
|
||||
["Grove St"] = 30,
|
||||
["Hangman Ave"] = 35,
|
||||
["Hanger Way"] = 30,
|
||||
["Hardy Way"] = 35,
|
||||
["Hawick Ave"] = 35,
|
||||
["Heritage Way"] = 35,
|
||||
["Hillcrest Ave"] = 35,
|
||||
["Hillcrest Ridge Access Rd"] = 35,
|
||||
["Imagination Ct"] = 25,
|
||||
["Ineseno Road"] = 30,
|
||||
["Innocence Blvd"] = 40,
|
||||
["Integrity Way"] = 30,
|
||||
["Invention Ct"] = 25,
|
||||
["Jamestown St"] = 30,
|
||||
["Joad Ln"] = 35,
|
||||
["Joshua Rd"] = 50,
|
||||
["Kimble Hill Dr"] = 35,
|
||||
["Kortz Dr"] = 30,
|
||||
["Labor Pl"] = 35,
|
||||
["Lake Vinewood Dr"] = 35,
|
||||
["Lake Vinewood Est"] = 35,
|
||||
["La Puerta Fwy"] = 60,
|
||||
["Laguna Pl"] = 30,
|
||||
["Las Lagunas Blvd"] = 40,
|
||||
["Lesbos Ln"] = 35,
|
||||
["Liberty St"] = 30,
|
||||
["Lindsay Circus"] = 30,
|
||||
["Little Bighorn Ave"] = 35,
|
||||
["Lolita Ave"] = 35,
|
||||
["Los Santos Freeway"] = 65,
|
||||
["Low Power St"] = 35,
|
||||
["Macdonald St"] = 35,
|
||||
["Mad Wayne Thunder Dr"] = 35,
|
||||
["Magellan Ave"] = 25,
|
||||
["Marathon Ave"] = 30,
|
||||
["Marina Dr"] = 35,
|
||||
["Marlowe Dr"] = 40,
|
||||
["Melanoma St"] = 25,
|
||||
["Meringue Ln"] = 35,
|
||||
["Meteor St"] = 30,
|
||||
["Milton Rd"] = 35,
|
||||
["Mirror Park Blvd"] = 35,
|
||||
["Mirror Pl"] = 35,
|
||||
["Miriam Turner Overpass"] = 30,
|
||||
["Morningwood Blvd"] = 35,
|
||||
["Mountain View Dr"] = 35,
|
||||
["Movie Star Way"] = 35,
|
||||
["Mt Haan Rd"] = 40,
|
||||
["Mt Vinewood Dr"] = 40,
|
||||
["Mutiny Rd"] = 35,
|
||||
["New Empire Way"] = 30,
|
||||
["Nikola Ave"] = 35,
|
||||
["Nikola Pl"] = 25,
|
||||
["Niland Ave"] = 35,
|
||||
["North Calafia Way"] = 30,
|
||||
["North Conker Ave"] = 35,
|
||||
["North Rockford Dr"] = 35,
|
||||
["North Sheldon Ave"] = 35,
|
||||
["Nowhere Rd"] = 25,
|
||||
["O'Neil Way"] = 25,
|
||||
["Occupation Ave"] = 35,
|
||||
["Olympic Fwy"] = 60,
|
||||
["Orchardville Ave"] = 30,
|
||||
["Paleto Blvd"] = 35,
|
||||
["Palomino Ave"] = 35,
|
||||
["Palomino Fwy"] = 60,
|
||||
["Panorama Dr"] = 40,
|
||||
["Perth St"] = 25,
|
||||
["Picture Perfect Drive"] = 35,
|
||||
["Plaice Pl"] = 30,
|
||||
["Playa Vista"] = 30,
|
||||
["Popular St"] = 40,
|
||||
["Portola Dr"] = 30,
|
||||
["Power St"] = 40,
|
||||
["Procopio Dr"] = 35,
|
||||
["Procopio Promenade"] = 25,
|
||||
["Prosperity St"] = 30,
|
||||
["Pyrite Ave"] = 30,
|
||||
["Red Desert Ave"] = 30,
|
||||
["Richman St"] = 35,
|
||||
["Rockford Dr"] = 35,
|
||||
["Route 68"] = 55,
|
||||
["Route 68 Approach"] = 55,
|
||||
["Roy Lowenstein Blvd"] = 35,
|
||||
["Rub St"] = 25,
|
||||
["Sam Austin Dr"] = 25,
|
||||
["San Andreas Ave"] = 40,
|
||||
["San Vitus Blvd"] = 40,
|
||||
["Sandcastle Way"] = 30,
|
||||
["Seaview Rd"] = 35,
|
||||
["Senora Fwy"] = 65,
|
||||
["Senora Rd"] = 40,
|
||||
["Senora Way"] = 40,
|
||||
["Shank St"] = 25,
|
||||
["Signal St"] = 30,
|
||||
["Sinners Passage"] = 30,
|
||||
["Sinner St"] = 30,
|
||||
["Smoke Tree Rd"] = 35,
|
||||
["South Arsenal St"] = 35,
|
||||
["South Boulevard Del Perro"] = 35,
|
||||
["South Mo Milton Dr"] = 35,
|
||||
["South Rockford Dr"] = 35,
|
||||
["South Shambles St"] = 30,
|
||||
["Spanish Ave"] = 30,
|
||||
["Strangeways Dr"] = 30,
|
||||
["Strawberry Ave"] = 40,
|
||||
["Supply St"] = 30,
|
||||
["Sustancia Rd"] = 45,
|
||||
["Swiss St"] = 30,
|
||||
["Tackle St"] = 25,
|
||||
["Tongva Dr"] = 40,
|
||||
["Tower Way"] = 35,
|
||||
["Tug St"] = 25,
|
||||
["Union Rd"] = 40,
|
||||
["Utopia Gardens"] = 25,
|
||||
["Vespucci Blvd"] = 40,
|
||||
["Vinewood Blvd"] = 40,
|
||||
["Vinewood Park Dr"] = 35,
|
||||
["Vitus St"] = 25,
|
||||
["Voodoo Place"] = 30,
|
||||
["West Eclipse Blvd"] = 35,
|
||||
["West Galileo Ave"] = 35,
|
||||
["West Mirror Drive"] = 35,
|
||||
["Wild Oats Dr"] = 35,
|
||||
["Whispymound Dr"] = 25,
|
||||
["Zancudo Ave"] = 35,
|
||||
["Zancudo Barranca"] = 40,
|
||||
["Zancudo Grande Valley"] = 40,
|
||||
["Zancudo Rd"] = 35
|
||||
}
|
||||
|
||||
-- NOTE: This may already have been done in your framework: to avoid an unncessary thread
|
||||
-- you can set this to false, delete it comment it out, whatever is easier for you :)
|
||||
Config.HideBaseGameHudComponents = {
|
||||
1, -- WANTED_STARS,
|
||||
2, -- WEAPON_ICON
|
||||
3, -- CASH
|
||||
4, -- MP_CASH
|
||||
5, -- MP_MESSAGE
|
||||
6, -- VEHICLE_NAME
|
||||
7, -- AREA_NAME
|
||||
8, -- VEHICLE_CLASS
|
||||
9, -- STREET_NAME
|
||||
-- 10, --HELP_TEXT
|
||||
-- 11, --FLOATING_HELP_TEXT_1
|
||||
-- 12, --FLOATING_HELP_TEXT_2
|
||||
13, --CASH_CHANGE
|
||||
-- 14, --RETICLE
|
||||
-- 15, --SUBTITLE_TEXT
|
||||
-- 16, --RADIO_STATIONS
|
||||
-- 17, --SAVING_GAME,
|
||||
-- 18, --GAME_STREAM
|
||||
-- 19, --WEAPON_WHEEL
|
||||
-- 20, --WEAPON_WHEEL_STATS
|
||||
-- 21, --HUD_COMPONENTS
|
||||
-- 22, --HUD_WEAPONS
|
||||
}
|
||||
|
||||
-- Use custom street or zone names
|
||||
-- Tutorial: https://docs.jgscripts.com/hud/custom-street-zone-names
|
||||
Config.CustomStreetNames = {
|
||||
-- [0xF5BF6BDD] = "Runway",
|
||||
}
|
||||
Config.CustomZoneNames = {
|
||||
-- AIRP = "Los Santos International Airport",
|
||||
}
|
||||
Config.CustomNamesShouldUpdateGameTextEntries = false
|
||||
|
||||
Config.WeaponNames = {
|
||||
WEAPON_KNIFE = "Knife",
|
||||
WEAPON_NIGHTSTICK = "Nightstick",
|
||||
WEAPON_HAMMER = "Hammer",
|
||||
WEAPON_BAT = "Baseball Bat",
|
||||
WEAPON_GOLFCLUB = "Golf Club",
|
||||
WEAPON_CROWBAR = "Crowbar",
|
||||
WEAPON_PISTOL = "Pistol",
|
||||
WEAPON_COMBATPISTOL = "Combat Pistol",
|
||||
WEAPON_APPISTOL = "AP Pistol",
|
||||
WEAPON_PISTOL50 = "Pistol .50",
|
||||
WEAPON_MICROSMG = "Micro SMG",
|
||||
WEAPON_SMG = "SMG",
|
||||
WEAPON_ASSAULTSMG = "Assault SMG",
|
||||
WEAPON_ASSAULTRIFLE = "Assault Rifle",
|
||||
WEAPON_CARBINERIFLE = "Carbine Rifle",
|
||||
WEAPON_ADVANCEDRIFLE = "Advanced Rifle",
|
||||
WEAPON_MG = "MG",
|
||||
WEAPON_COMBATMG = "Combat MG",
|
||||
WEAPON_PUMPSHOTGUN = "Pump Shotgun",
|
||||
WEAPON_SAWNOFFSHOTGUN = "Sawed-Off Shotgun",
|
||||
WEAPON_ASSAULTSHOTGUN = "Assault Shotgun",
|
||||
WEAPON_BULLPUPSHOTGUN = "Bullpup Shotgun",
|
||||
WEAPON_STUNGUN = "Stun Gun",
|
||||
WEAPON_SNIPERRIFLE = "Sniper Rifle",
|
||||
WEAPON_HEAVYSNIPER = "Heavy Sniper",
|
||||
WEAPON_GRENADELAUNCHER = "Grenade Launcher",
|
||||
WEAPON_RPG = "RPG",
|
||||
WEAPON_MINIGUN = "Minigun",
|
||||
WEAPON_GRENADE = "Grenade",
|
||||
WEAPON_STICKYBOMB = "Sticky Bomb",
|
||||
WEAPON_SMOKEGRENADE = "Smoke Grenade",
|
||||
WEAPON_BZGAS = "BZ Gas",
|
||||
WEAPON_MOLOTOV = "Molotov",
|
||||
WEAPON_FIREEXTINGUISHER = "Fire Extinguisher",
|
||||
WEAPON_PETROLCAN = "Petrol Can",
|
||||
WEAPON_BALL = "Ball",
|
||||
WEAPON_FLARE = "Flare",
|
||||
WEAPON_SNOWBALL = "Snowball",
|
||||
WEAPON_FLAREGUN = "Flare Gun",
|
||||
WEAPON_GARBAGEBAG = "Garbage Bag",
|
||||
WEAPON_HANDCUFFS = "Handcuffs",
|
||||
WEAPON_BATTLEAXE = "Battle Axe",
|
||||
WEAPON_COMPACTLAUNCHER = "Compact Grenade Launcher",
|
||||
WEAPON_MINISMG = "Mini SMG",
|
||||
WEAPON_PIPEBOMB = "Pipe Bomb",
|
||||
WEAPON_POOLCUE = "Pool Cue",
|
||||
WEAPON_WRENCH = "Wrench",
|
||||
WEAPON_FLASHLIGHT = "Flashlight",
|
||||
WEAPON_DAGGER = "Antique Cavalry Dagger",
|
||||
WEAPON_VINTAGEPISTOL = "Vintage Pistol",
|
||||
WEAPON_MUSKET = "Musket",
|
||||
WEAPON_FIREWORK = "Firework Launcher",
|
||||
WEAPON_MARKSMANRIFLE = "Marksman Rifle",
|
||||
WEAPON_HEAVYSHOTGUN = "Heavy Shotgun",
|
||||
WEAPON_PROXMINE = "Proximity Mine",
|
||||
WEAPON_HOMINGLAUNCHER = "Homing Launcher",
|
||||
WEAPON_COMPACTRIFLE = "Compact Rifle",
|
||||
WEAPON_MACHINEPISTOL = "Machine Pistol",
|
||||
WEAPON_SWITCHBLADE = "Switchblade",
|
||||
WEAPON_REVOLVER = "Heavy Revolver",
|
||||
WEAPON_DOUBLEACTION = "Double-Action Revolver",
|
||||
WEAPON_MARKSMANPISTOL = "Marksman Pistol",
|
||||
WEAPON_RAYPISTOL = "Up-n-Atomizer",
|
||||
WEAPON_RAYCARBINE = "Unholy Hellbringer",
|
||||
WEAPON_RAYMINIGUN = "Widowmaker",
|
||||
WEAPON_NAVYREVOLVER = "Navy Revolver",
|
||||
WEAPON_CERAMICPISTOL = "Ceramic Pistol",
|
||||
WEAPON_STONE_HATCHET = "Stone Hatchet",
|
||||
WEAPON_PIPEWRENCH = "Pipe Wrench",
|
||||
WEAPON_PISTOL_MK2 = "Pistol Mk II",
|
||||
WEAPON_SNSPISTOL_MK2 = "SNS Pistol Mk II",
|
||||
WEAPON_REVOLVER_MK2 = "Heavy Revolver Mk II",
|
||||
WEAPON_SMG_MK2 = "SMG Mk II",
|
||||
WEAPON_PUMPSHOTGUN_MK2 = "Pump Shotgun Mk II",
|
||||
WEAPON_SPECIALCARBINE_MK2 = "Special Carbine Mk II",
|
||||
WEAPON_BULLPUPRIFLE_MK2 = "Bullpup Rifle Mk II",
|
||||
WEAPON_COMBATMG_MK2 = "Combat MG Mk II",
|
||||
WEAPON_HEAVYSNIPER_MK2 = "Heavy Sniper Mk II",
|
||||
WEAPON_ASSAULTRIFLE_MK2 = "Assault Rifle Mk II",
|
||||
WEAPON_CARBINERIFLE_MK2 = "Carbine Rifle Mk II",
|
||||
WEAPON_MILITARYRIFLE = "Military Rifle",
|
||||
WEAPON_COMBATSHOTGUN = "Combat Shotgun",
|
||||
WEAPON_GADGETPISTOL = "Perico Pistol",
|
||||
WEAPON_EMPLAUNCHER = "Compact EMP Launcher",
|
||||
WEAPON_HEAVYRIFLE = "Heavy Rifle",
|
||||
WEAPON_PRECISIONRIFLE = "Precision Rifle",
|
||||
WEAPON_TACTICALRIFLE = "Service Carbine"
|
||||
}
|
||||
|
||||
Config.TrainMetroStations = {
|
||||
[1] = { name = "LSIA Terminal 4", coords = vec(-1083.3578, -2716.4917, -7.4101), nextStation = { Northbound = { h = 316, s = 2 }, Southbound = { h = 137, s = false } } },
|
||||
[2] = { name = "LSIA Parking", coords = vec(-873.6451, -2313.1482, -12.6264), nextStation = { Northbound = { h = 333, s = 3 }, Southbound = { h = 151, s = 1 } } },
|
||||
[3] = { name = "Puerto Del Sol", coords = vec(-538.3027, -1289.2268, 25.9013), nextStation = { Northbound = { h = 333, s = 4 }, Southbound = { h = 151, s = 2 } } },
|
||||
[4] = { name = "Strawberry", coords = vec(260.8647, -1210.0208, 38.0746), nextStation = { Northbound = { h = 267, s = 6 }, Southbound = { h = 86, s = 3 } } },
|
||||
-- [5] = { name = "Pillbox North (Under Construction)", coords = vec(140.9126, -599.2263, 17.7564), nextStation = { { h = 64, s = 6 }, { h = 258, s = 4 } } },
|
||||
[6] = { name = "Burton", coords = vec(-294.8436, -336.0311, 10.0631), nextStation = { Northbound = { h = 349, s = 7 }, Southbound = { h = 172, s = 4 } } },
|
||||
[7] = { name = "Portola Drive", coords = vec(-813.0384, -136.0313, 19.9503), nextStation = { Northbound = { h = 117, s = 8 }, Southbound = { h = 292, s = 6 } } },
|
||||
[8] = { name = "Del Perro", coords = vec(-1350.6287, -467.3718, 15.0454), nextStation = { Northbound = { h = 208, s = 9 }, Southbound = { h = 28, s = 7 } } },
|
||||
[9] = { name = "Little Seoul", coords = vec(-497.0356, -673.1466, 11.8090), nextStation = { Northbound = { h = 276, s = 10 }, Southbound = { h = 83, s = 8 } } },
|
||||
[10] = { name = "Pillbox South", coords = vec(-211.6538, -1028.5626, 30.5675), nextStation = { Northbound = { h = 151, s = 11 }, Southbound = { h = 335, s = 9 } } },
|
||||
[11] = { name = "Davis", coords = vec(112.2249, -1723.0388, 30.5415), nextStation = { Northbound = { h = 230, s = false }, Southbound = { h = 45, s = 10 } } },
|
||||
}
|
||||
|
||||
-- Add electric vehicles to disable combustion engine features
|
||||
-----------------------------------------------------------------------
|
||||
-- PLEASE NOTE: In b3258 (Bottom Dollar Bounties) and newer, electric
|
||||
-- vehicles are detected automatically, so this list is not used!
|
||||
Config.ElectricVehicles = {
|
||||
"Airtug", "buffalo5", "caddy",
|
||||
"Caddy2", "caddy3", "coureur",
|
||||
"cyclone", "cyclone2", "imorgon",
|
||||
"inductor", "iwagen", "khamelion",
|
||||
"metrotrain", "minitank", "neon",
|
||||
"omnisegt", "powersurge", "raiden",
|
||||
"rcbandito", "surge", "tezeract",
|
||||
"virtue", "vivanite", "voltic",
|
||||
"voltic2",
|
||||
}
|
||||
|
||||
---------------------------------------------
|
||||
-- Register custom street/zone names globally
|
||||
if Config.CustomNamesShouldUpdateGameTextEntries then
|
||||
for hash, val in pairs(Config.CustomStreetNames) do
|
||||
AddTextEntryByHash(hash, val)
|
||||
end
|
||||
|
||||
for name, val in pairs(Config.CustomZoneNames) do
|
||||
AddTextEntryByHash(joaat(name), val)
|
||||
end
|
||||
end
|
77
resources/[tools]/jg-hud/config/config.lua
Normal file
|
@ -0,0 +1,77 @@
|
|||
Config = {}
|
||||
Config.Locale = "en"
|
||||
Config.Currency = "$"
|
||||
Config.NumberFormat = "en-US" -- follows [language]-[country code]
|
||||
|
||||
-- Integrations
|
||||
Config.Framework = "auto" -- or "QBCore", "Qbox", "ESX"
|
||||
Config.FuelSystem = "lc_fuel" -- or "LegacyFuel", "lc_fuel", "ps-fuel", "lj-fuel", "ox_fuel", "cdn-fuel", "hyon_gas_station", "okokGasStation", "nd_fuel", "myFuel", "ti_fuel", "Renewed-Fuel", "rcore_fuel", "none"
|
||||
|
||||
-- Measurements
|
||||
Config.SpeedMeasurement = "kph" -- or "kph"
|
||||
Config.DistanceMeasurement = "meters" -- or "meters"
|
||||
|
||||
-- Cruise Control
|
||||
Config.EnableCruiseControl = true
|
||||
Config.CruiseControlKeybind = "J"
|
||||
|
||||
-- Seatbelt
|
||||
Config.EnableSeatbelt = true
|
||||
Config.UseCustomSeatbeltIntegration = false -- Enable to use a third-party seatbelt script via Framework.Client.ToggleSeatbelt (in framework/cl-functions.lua)
|
||||
Config.SeatbeltKeybind = "B"
|
||||
Config.PreventExitWhileBuckled = true
|
||||
Config.DisablePassengerSeatbelts = false
|
||||
Config.MinSpeedMphEjectionSeatbeltOff = 20.0
|
||||
Config.MinSpeedMphEjectionSeatbeltOn = 100.0
|
||||
Config.DisableSeatbeltInEmergencyVehicles = true
|
||||
|
||||
-- Default component displays
|
||||
Config.ShowMinimapOnFoot = true
|
||||
Config.ShowCompassOnFoot = true
|
||||
Config.ShowComponents = {
|
||||
pedAvatar = false, -- Seems to be unstable with some clients, best to leave disabled for now
|
||||
voiceOrRadio = true,
|
||||
serverId = true,
|
||||
time = true,
|
||||
job = true,
|
||||
gang = false,
|
||||
bankBalance = true,
|
||||
cashBalance = true,
|
||||
dirtyMoneyBalance = false,
|
||||
weapon = true,
|
||||
serverLogo = false -- You can enable this and then change the server-logo.png in the root folder
|
||||
}
|
||||
|
||||
-- If ShowComponents.serverLogo & Config.AllowUsersToEditLayout are enabled, should players be able to edit the logo's visibility/position?
|
||||
Config.AllowServerLogoEditing = true
|
||||
|
||||
-- Vehicle Control
|
||||
Config.VehicleControlKeybind = "F6"
|
||||
Config.AllowPassengersToUseVehicleControl = true -- Passengers are only able to toggle their own window, door or change seats
|
||||
|
||||
-- Other keybinds; set them to false to disable
|
||||
Config.EngineToggleKeybind = false
|
||||
Config.BoatAnchorKeybind = "J"
|
||||
Config.IndicatorLeftKeybind = "LEFT"
|
||||
Config.IndicatorRightKeybind = "RIGHT"
|
||||
Config.IndicatorHazardsKeybind = "UP"
|
||||
|
||||
-- Commands
|
||||
Config.OpenSettingsCommand = "settings"
|
||||
Config.ToggleHudCommand = "togglehud"
|
||||
|
||||
-- Nearest postal
|
||||
-- Credit to https://github.com/DevBlocky/nearest-postal - see license in data/nearest-postal/LICENSE
|
||||
Config.ShowNearestPostal = false
|
||||
Config.NearestPostalsData = "data/nearest-postal/ocrp-postals.json"
|
||||
|
||||
-- Learn more about configuring default settings: https://docs.jgscripts.com/hud/default-settings
|
||||
Config.DefaultSettingsData = "data/default-settings.json"
|
||||
Config.DefaultSettingsKvpPrefix = "hud-" -- This is really useful for essentially "resetting" everyone's currently saved settings, especially if you've added a new default-settings.json profile. You can set this to like "hud-v2-" for example so that everyone's existing data starts fresh with your new profile.
|
||||
Config.AllowPlayersToEditSettings = true
|
||||
Config.AllowUsersToEditLayout = true
|
||||
|
||||
-- Dev/debug settings
|
||||
Config.UpdateRadarZoom = true -- Enable this if radar is flicking/disappearing
|
||||
Config.DevDeleteAllUserSettingsOnStart = false -- Delete player existing KVP when they log in?
|
||||
Config.Debug = false
|
0
resources/[tools]/jg-hud/data/default-settings.json
Normal file
23
resources/[tools]/jg-hud/data/nearest-postal/LICENSE
Normal file
|
@ -0,0 +1,23 @@
|
|||
Thank you to https://github.com/DevBlocky/nearest-postal for these files!
|
||||
|
||||
-- LICENSE --
|
||||
|
||||
Copyright (c) 2019 BlockBa5her
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 3.1 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_APPISTOL.webp
Normal file
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 4 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 3 KiB |
After Width: | Height: | Size: 3.5 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_BALL.webp
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_BAT.webp
Normal file
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 5 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_BOTTLE.webp
Normal file
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 2.5 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_BZGAS.webp
Normal file
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 1.9 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_COMBATMG.webp
Normal file
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 2 KiB |
After Width: | Height: | Size: 4.2 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_CROWBAR.webp
Normal file
After Width: | Height: | Size: 982 B |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_DAGGER.webp
Normal file
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 1.8 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_FIREWORK.webp
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_FLARE.webp
Normal file
After Width: | Height: | Size: 546 B |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_FLAREGUN.webp
Normal file
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 916 B |
After Width: | Height: | Size: 1.5 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_GOLFCLUB.webp
Normal file
After Width: | Height: | Size: 856 B |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_GRENADE.webp
Normal file
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 2.7 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_HAMMER.webp
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_HATCHET.webp
Normal file
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 3.7 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_KNIFE.webp
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_KNUCKLE.webp
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_MACHETE.webp
Normal file
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 4.5 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_MG.webp
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_MICROSMG.webp
Normal file
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 4 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_MINIGUN.webp
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_MINISMG.webp
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_MOLOTOV.webp
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_MUSKET.webp
Normal file
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1 KiB |
After Width: | Height: | Size: 1.8 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_PIPEBOMB.webp
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_PISTOL.webp
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_PISTOL50.webp
Normal file
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_POOLCUE.webp
Normal file
After Width: | Height: | Size: 658 B |
After Width: | Height: | Size: 4.8 KiB |
BIN
resources/[tools]/jg-hud/data/weapon-images/WEAPON_PROXMINE.webp
Normal file
After Width: | Height: | Size: 1 KiB |