HexscriptsClassicFuture HUD
Configurations
Here you will get all configurations & open source files that are included within this script.
Config Files
Config = {
Debug = false,
Framework = 'ESX', -- ESX | QBCore | Standalone
Locale = 'en',
Voice = {
System = 'saltychat', -- saltychat | pma
Ranges = { 1, 3.5, 8, 32 },
RangeColor = {
red = 237,
green = 2,
blue = 2
}
},
TxAnnounces = {
restart = {
enable = true, -- if true it will use txAdmin restarts, dont forget to hide it in the settings from txAdmin
type = 'announcement', -- announcement | notify
timeout = 8000 -- ms how long the restart announcement should be shown
},
announcement = {
enable = true, -- if true it will use txAdmin announcements, dont forget to hide it in the settings from txAdmin
type = 'announcement', -- announcement | notify
timeout = 8000 -- ms how long the announcement should be shown
},
directMessage = {
enable = true, -- if true it will use txAdmin Direct Messages, dont forget to hide it in the settings from txAdmin
type = 'notify', -- announcement | notify
timeout = 7000 -- ms how long the direct message should be shown
},
},
TeamlerAd = {
enable = true,
defaultGroup = 'user',
reSendData = 1000 * 15, -- 15 Seconds, you can refresh it too via the event TriggerEvent('hex_future_hud:reSendTeamlerData') server only
airportDimension = 5,
},
Server = {
Name = 'Hex <span>Scripts</span>',
letterSpacing = '.24vh',
Currency = '$'
},
Speedo = {
kmh = true, -- if false it will mp/h instead of km/h
maxSpeed = 350,
disableSpecificVehicles = {
class = {
[13] = true, -- cycles
},
models = {
[joaat('bmx')] = true,
}
}
},
System = {
enableBlackAndWhiteBg = true, -- When it's turned on, the background of the clock, date, ID, notifications, announces, team chats, etc., is either dark or light. At the bottom, you can set the in-game time where it will be dark, for example, from 7 PM to 8 AM, and then it will be light.
time = {
from = 7,
to = 20
}
},
Chat = {
enabled = true,
text = 'Write a message here...',
keymapping = {
command = 'openChat',
desc = 'Open the Chat',
mapper = 'keyboard',
key = 't'
}
},
Waits = {
Vehicle = 0,
Refreshfood = 1000 * 60 * 10
},
Permissions = {
teamchat = {
'projektleitung',
'superadmin',
'admin'
},
announce = {
'projektleitung',
'superadmin',
'admin'
}
},
NotifySound = {
["notify"] = {
mp3 = false,
gta = {
audioName = 'ATM_WINDOW',
audioRef = 'HUD_FRONTEND_DEFAULT_SOUNDSET'
},
url = 'sounds/alarm.mp3'
},
["announce"] = {
mp3 = false,
gta = {
audioName = 'CHALLENGE_UNLOCKED',
audioRef = 'HUD_AWARDS'
},
url = 'sounds/alarm.mp3'
}
},
Commands = {
["settings"] = {
command = 'settings',
enabled = true,
},
["id"] = {
command = 'id',
enabled = true
},
["ids"] = {
command = 'ids',
enabled = true
},
["ooc"] = {
command = 'ooc',
enabled = true
},
["tc"] = {
command = 'tc',
enabled = true
},
["announce"] = {
command = 'announce',
enabled = true
}
},
DefaultSettings = {
speedo = 0,
speedo_size = 1,
weapon = true,
job = true,
street = true,
enableEatAndDrink = true,
enableBankOrBlack = true,
switchBankBlack = true,
},
DefaultPositions = {
food = { x = 0, y = 0 },
thirst = { x = 0, y = 0 },
speedo = { x = 0, y = 0 },
street = { x = 0, y = 0 },
job = { x = 0, y = 0 }
},
Locales = {
['de'] = {
['info'] = 'Information!',
['your_id'] = 'Deine Id Lautet: %s',
['no_player'] = 'Kein Spieler in der Nähe!',
['near_player_id'] = 'Seine Id Lautet: %s',
['tx_admin_restart'] = 'Geplanter Neustart',
['tx_admin_announce'] = 'Serverankündigung von %s',
['tx_admin_dm'] = 'Direktnachricht von %s',
-- ui
['save'] = 'Setzen',
['reset'] = 'Reset',
['select'] = 'Auswählen',
['settings'] = 'Einstellungen',
['hunger'] = 'Hunger',
['thirst'] = 'Durst',
['speedo'] = 'Speedometer',
['speedo_description'] = 'Hier kannst du zwischen einem Kreis oder einem Balken Speedometer wählen.',
['speedo_1'] = 'Kreis',
['speedo_2'] = 'Balken',
['speedo_size'] = 'Speedometer Größe',
['speedo_size_description'] = 'Hier kannst du die Größe deines Speedometers einstellen!',
['speedo_size_1'] = 'Klein',
['speedo_size_2'] = 'Mittel',
['speedo_size_3'] = 'Groß',
['weapon'] = 'Waffenanzeige',
['weapon_description'] = 'Hier kannst du die Waffenanzeige oben rechts Aktivieren oder Deaktivieren.',
['job'] = 'Jobanzeige',
['job_description'] = 'Hier kannst du die Jobanzeige Aktivieren oder Deaktivieren.',
['street'] = 'Straßenanzeige',
['street_description'] = 'Hier kannst du die Straßenanzeige Aktivieren oder Deaktivieren.',
['enableEatAndDrink'] = 'Essen und Trinkenanzeige',
['enableEatAndDrink_description'] = 'Hier kannst du das Essen & Trinken Aktivieren oder Deaktivieren.',
['enableBankOrBlack'] = 'Grün oder Schwarzgeld Anzeigen',
['enableBankOrBlack_description'] = 'Hier kannst du dich entscheiden ob du deine Bank oder Schwarzgeldanzeige an haben möchtest.',
['switchBankBlack'] = 'Grün oder Schwarzgeld',
['switchBankBlack_description'] = 'Hier kannst du dich entscheiden ob du deine Bank oder Schwarzgeldanzeige haben möchtest.',
},
['en'] = {
['info'] = 'Information!',
['your_id'] = 'Your Id Is: %s',
['no_player'] = 'No player nearby!',
['near_player_id'] = 'His Id Is: %s',
['tx_admin_restart'] = 'Scheduled Restart',
['tx_admin_announce'] = 'Server announcement by %s',
['tx_admin_dm'] = 'Direct Message from %s',
-- ui
['save'] = 'Save',
['reset'] = 'Reset',
['select'] = 'Select',
['settings'] = 'Settings',
['hunger'] = 'Hunger',
['thirst'] = 'Thirst',
['speedo'] = 'Speedometer',
['speedo_description'] = 'Here, you can choose between a circle or a bar speedometer.',
['speedo_1'] = 'Circle',
['speedo_2'] = 'Bar',
['speedo_size'] = 'Speedometer Size',
['speedo_size_description'] = 'Here, you can adjust the size of your speedometer.',
['speedo_size_1'] = 'Small',
['speedo_size_2'] = 'Mid',
['speedo_size_3'] = 'Big',
['weapon'] = 'Weapons display',
['weapon_description'] = 'Here, you can enable or disable the weapon display in the top right corner.',
['job'] = 'Job display',
['job_description'] = 'Here, you can enable or disable the job display.',
['street'] = 'Street display',
['street_description'] = 'Here, you can enable or disable the street display.',
['enableEatAndDrink'] = 'Food and Thrist Display',
['enableEatAndDrink_description'] = 'Here, you can enable or disable food and drinks..',
['enableBankOrBlack'] = 'Bank or Black Money Display',
['enableBankOrBlack_description'] = 'Here you can decide whether you want to have your bank or black money displayed.',
['switchBankBlack'] = 'Bank or Black Money',
['switchBankBlack_description'] = 'Here, you can decide whether you`d like to have your bank account or black money.',
}
}
}
Config.Options = {
{
label = Config.Locales[Config.Locale]['speedo'],
name = 'speedo',
type = 'options',
options = {
Config.Locales[Config.Locale]['speedo_1'],
Config.Locales[Config.Locale]['speedo_2']
}
},
{
label = Config.Locales[Config.Locale]['speedo_size'],
name = 'speedo_size',
type = 'options',
options = {
Config.Locales[Config.Locale]['speedo_size_1'],
Config.Locales[Config.Locale]['speedo_size_2'],
Config.Locales[Config.Locale]['speedo_size_3']
}
},
{
label = Config.Locales[Config.Locale]['weapon'],
name = 'weapon',
type = 'checkbox'
},
{
label = Config.Locales[Config.Locale]['job'],
name = 'job',
type = 'checkbox'
},
{
label = Config.Locales[Config.Locale]['street'],
name = 'street',
type = 'checkbox'
},
{
label = Config.Locales[Config.Locale]['enableEatAndDrink'],
name = 'enableEatAndDrink',
type = 'checkbox'
},
{
label = Config.Locales[Config.Locale]['enableBankOrBlack'],
name = 'enableBankOrBlack',
type = 'checkbox'
},
{
label = Config.Locales[Config.Locale]['switchBankBlack'],
name = 'switchBankBlack',
type = 'checkbox'
},
}Open Source Files
local playerLoaded = false
Citizen.CreateThread(function()
if Config.Framework == 'ESX' then
local status, ESX = pcall(function()
return exports['es_extended']:getSharedObject()
end)
if not status then
while not ESX do
TriggerEvent("esx:getSharedObject", function(object) ESX = object end)
Citizen.Wait(50)
end
end
while ESX.GetPlayerData().job == nil do
Citizen.Wait(100)
end
while not ESX.IsPlayerLoaded() do
Citizen.Wait(50)
end
Citizen.Wait(500)
ESX.PlayerData = ESX.GetPlayerData()
playerLoaded = true
RegisterNetEvent('esx:setJob', function(job)
ESX.PlayerData.job = job
end)
RegisterNetEvent('esx:setAccountMoney', function(account)
SendNUIMessage({
action = 'setMoney',
data = {
type = account.name,
money = account.money
}
})
end)
RegisterNetEvent('esx:setJob', function(job)
ESX.PlayerData.job = job
SendNUIMessage({
action = 'setJob',
data = {
label = ESX.PlayerData.job.label,
gLabel = ESX.PlayerData.job.grade_label
}
})
end)
function GetJob()
return {
label = ESX.PlayerData.job.label,
gLabel = ESX.PlayerData.job.grade_label
}
end
if GetResourceState('hex_food') == 'started' then
RegisterNetEvent('hex_food:onTick', function(food, thirst)
SendNUIMessage({
action = 'refreshFood',
data = {
food = food,
thirst = thirst
}
})
end)
elseif GetResourceState('esx_status') == 'started' then
RegisterNetEvent('esx_status:onTick', function(data)
local hunger, thirst
for i = 1, #data do
if data[i].name == "thirst" then
thirst = math.ceil(data[i].percent)
end
if data[i].name == "hunger" then
hunger = math.ceil(data[i].percent)
end
end
SendNUIMessage({
action = 'refreshFood',
data = {
food = hunger,
thirst = thirst
}
})
end)
end
function GetFood()
if GetResourceState('hex_food') == 'started' then
return exports['hex_food']:GetFood()
elseif GetResourceState('esx_status') == 'started' then
local status = nil
local timesToTry = 0
while status == nil and timesToTry < 10 do
Citizen.Wait(50)
timesToTry = timesToTry + 1
TriggerEvent('esx_status:getStatus', 'hunger', function(stats)
status = stats.val / 10000
end)
end
return status ~= nil and math.ceil(status) or 0
else
return math.random(1, 100)
end
end
function GetThirst()
if GetResourceState('hex_food') == 'started' then
return exports['hex_food']:GetThirst()
elseif GetResourceState('esx_status') == 'started' then
local status = nil
local timesToTry = 0
while status == nil and timesToTry < 10 do
Citizen.Wait(50)
timesToTry = timesToTry + 1
TriggerEvent('esx_status:getStatus', 'thirst', function(stats)
status = stats.val / 10000
end)
end
return status ~= nil and math.ceil(status) or 0
else
return math.random(1, 100)
end
end
function GetWeaponFromHash(weapon)
return ESX.GetWeaponFromHash(weapon)
end
function GetWeaponLabel(weaponName)
return ESX.GetWeaponLabel(weaponName)
end
function GetMoney(account)
for k, v in pairs(ESX.GetPlayerData().accounts) do
if v.name == account then
return v.money
end
end
return 0
end
end
end)
function IsPlayerLoaded()
return playerLoaded
end