AdminPanel = { -- This should not need saying, but do not mess with these unless you know what you"re doing.
PlayerBlips = {},
PlayerBlipsOnline = {},
ServerInformation = {
StaffCount = 0,
},
Spectating = false,
DisplayingRadar = false,
DisplayingBlips = false,
DisplayingNames = false,
FastSpeed = false,
SpectatingPlayer = nil,
SpectatingID = nil,
ShowBlips = false,
isInvisible = false,
isFrozen = false,
SavedCoords = nil,
CurrentLogs = nil,
SuperJump = false,
NoRagdoll = false,
GodMode = false,
InfiniteStamina = false,
NoClip = false,
NewNoClip = false,
Settings = {DarkMode = false, SeeThrough = false, Notifications = true},
}
local ShowNames = false
CreateThread(function()
Wait(50)
local DM = GetResourceKvpInt("919-admin:setting:darkmode")
if DM == 1 then DM = true elseif DM == 0 then DM = false end
local ST = GetResourceKvpInt("919-admin:setting:seethrough")
if ST == 1 then ST = true elseif ST == 0 then ST = false end
local NT = GetResourceKvpInt("919-admin:setting:notifications")
if NT == 1 then NT = true elseif NT == 0 then NT = false end
local theme = GetResourceKvpInt("919-admin:setting:theme")
AdminPanel.Settings = {DarkMode = DM, SeeThrough = ST, Notifications = NT, Theme = theme}
print("Loaded panel settings!")
end)
local curLocation = {}
local curRotation = 0
local curHeading = 0
RegisterCommand("*adminpanel", function()
--TriggerServerEvent("919-admin:server:RefreshMenu", true)
--Wait(200)
TriggerServerEvent("919-admin:server:RequestPanel")
end, false)
RegisterKeyMapping("*adminpanel", "(919ADMIN)", "keyboard", Config.AdminPanelKey)
RegisterCommand("*noclip", function()
TriggerServerEvent("919-admin:server:RequestNoClip")
end, false)
RegisterKeyMapping("*noclip", Lang:t("commands.noclip").."(919ADMIN)", "keyboard", Config.NoClipKey)
RegisterCommand("*showNames", function()
if Config.EnableNames then
if not Config.AllPlayersUseNames then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
AdminPanel.DisplayingNames = not AdminPanel.DisplayingNames
if AdminPanel.DisplayingNames then
ShowNames = true
toggleNames()
-- TriggerServerEvent("919-admin:server:GetPlayersForBlips")
else
ShowNames = false
toggleNames()
-- TriggerServerEvent("919-admin:server:GetPlayersForBlips")
end
end, "playernames")
else
AdminPanel.DisplayingNames = not AdminPanel.DisplayingNames
if AdminPanel.DisplayingNames then
ShowNames = true
toggleNames()
-- TriggerServerEvent("919-admin:server:GetPlayersForBlips")
else
ShowNames = false
toggleNames()
-- TriggerServerEvent("919-admin:server:GetPlayersForBlips")
end
end
end
end, false)
RegisterKeyMapping("*showNames", Lang:t("commands.showNames").."(919ADMIN)", "keyboard", Config.ShowNamesKey)
if Config.EnableReportCommand then
RegisterCommand(Config.ReportCommand, function()
SendNUIMessage({
action = "reportscreen",
Translation = json.encode(Translations.html),
})
SetNuiFocus(true, true)
end, false)
end
RegisterNetEvent("919-admin:client:ToggleNoClip", function()
if Config.NoClipType == 2 then
local x, y, z = table.unpack(GetEntityCoords(PlayerPedId(), false))
curLocation = { x = x, y = y, z = z }
curRotation = GetEntityRotation(playerPed, false)
curHeading = GetEntityHeading(playerPed)
AdminPanel.NoClip = not AdminPanel.NoClip
NoClip(AdminPanel.NoClip)
elseif Config.NoClipType == 1 then
AdminPanel.NewNoClip = not AdminPanel.NewNoClip
toggleFreecam(AdminPanel.NewNoClip, AdminPanel.isInvisible)
elseif Config.NoClipType == 3 then
AdminPanel.NewNoClip = not AdminPanel.NewNoClip
ToggleNoClip(AdminPanel.NewNoClip)
end
if AdminPanel.NewNoClip or AdminPanel.NoClip then
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.enabled")..""..Lang:t("alerts.noclipEnabled"))
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.disabled")..""..Lang:t("alerts.noclipDisabled"))
end
end)
RegisterNetEvent("919-admin:client:OpenMenu", function(playerList, ServerInformation, MaxPlayers, Version, hasPerms, Role)
SendNUIMessage({
action = "open",
name = GetPlayerName(PlayerId()),
playerlist = playerList,
darkmode = AdminPanel.Settings.DarkMode,
seethrough = AdminPanel.Settings.SeeThrough,
Notifications = AdminPanel.Settings.Notifications,
Theme = AdminPanel.Settings.Theme,
serverData = ServerInformation,
maxplayers = MaxPlayers,
version = Version,
hasPerms = hasPerms,
Translation = json.encode(Translations.html),
Framework = QBCore and "QBCore" or "ESX",
Role = Role
})
SetNuiFocus(true,true)
end)
RegisterNetEvent("919-admin:client:RefreshMenu", function(playerList, silent)
SendNUIMessage({
action = "refresh",
name = GetPlayerName(PlayerId()),
playerlist = playerList,
serverData = AdminPanel.ServerInformation,
})
if not silent then
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.playerListRefreshed"))
end
end)
RegisterNetEvent("919-admin:client:ViewPlayer", function(online, playerData)
if online then
SendNUIMessage({
action = "viewonlineplayer",
playerid = playerData
})
DebugTrace("NUIMessage: viewonlineplayer")
else
SendNUIMessage({
action = "viewofflineplayer",
playerdata = playerData
})
DebugTrace("NUIMessage: viewofflineplayer")
end
DebugTrace("Received player data. Online: "..(online and "yes" or "no"))
end)
RegisterNetEvent("919-admin:client:ResetMenu", function()
SendNUIMessage({
action = "noperms"
})
end)
RegisterNetEvent("919-admin:client:WarnPlayer", function(warnedBy, reason)
SendNUIMessage({
action = "showwarning",
by = warnedBy,
reason = reason
})
SetNuiFocus(true, true)
FreezeEntityPosition(PlayerPedId(), true)
end)
RegisterNUICallback("GiveItem", function(data)
TriggerServerEvent("919-admin:server:GiveItem", data.Id, data.Item, data.Amount)
end)
RegisterNUICallback("SpawnVehicle", function(data)
TriggerServerEvent("919-admin:server:RequestVehicleSpawn", data.Vehicle)
end)
RegisterNUICallback("ReportReply", function(data)
if data ~= nil then
TriggerServerEvent("919-admin:server:ReportReply", data)
end
end)
RegisterNUICallback("ExitWarn", function()
SetNuiFocus(false, false)
FreezeEntityPosition(PlayerPedId(), false)
end)
RegisterNetEvent("919-admin:client:ShowPanelAlert", function(type, text)
if type == "success" then
PlaySoundFrontend(-1, "Confirm", "GTAO_Exec_SecuroServ_Warehouse_PC_Sounds", true)
elseif type == "danger" or type == "warning" or type == "error" then
PlaySoundFrontend(-1, "Cancel", "GTAO_Exec_SecuroServ_Warehouse_PC_Sounds", true)
end
SendNUIMessage({
action = "showalert",
type = type,
text = text
})
end)
RegisterNetEvent("919-admin:client:ShowReportAlert", function(title, text)
PlaySoundFrontend(-1, "Cancel", "GTAO_Exec_SecuroServ_Warehouse_PC_Sounds", true)
SendNUIMessage({
action = "showreportalert",
title = title,
text = text
})
end)
RegisterNetEvent("919-admin:client:ForceReloadResources", function()
TriggerServerEvent("919-admin:server:RequestResourcePageInfo")
end)
RegisterNetEvent("919-admin:client:ReceiveJobPageInfo", function(JobPageInfo)
DebugTrace("Received job page info")
SendNUIMessage({
action = "jobinfo",
jobinfo = JobPageInfo,
})
end)
RegisterNetEvent("919-admin:client:ReceiveGangPageInfo", function(GangPageInfo)
DebugTrace("Received gang page info")
SendNUIMessage({
action = "ganginfo",
ganginfo = GangPageInfo,
})
end)
RegisterNetEvent("919-admin:client:ReceiveResourcePageInfo", function(ResourcePageInfo)
DebugTrace("Received resource page info")
SendNUIMessage({
action = "resourceinfo",
resourceinfo = ResourcePageInfo,
})
end)
RegisterNetEvent("919-admin:client:ReceiveBansInfo", function(BansInfo)
DebugTrace("Received bans page info")
SendNUIMessage({
action = "bansinfo",
bansinfo = BansInfo,
})
end)
RegisterNetEvent("919-admin:client:ReceiveReportsInfo", function(ReportsInfo)
DebugTrace("Received reports page info")
SendNUIMessage({
action = "reportsinfo",
reportsinfo = ReportsInfo,
})
end)
RegisterNetEvent("919-admin:client:ReceiveAdminChat", function(AdminChat)
DebugTrace("Received admin chat")
SendNUIMessage({
action = "adminchat",
adminchat = AdminChat,
})
end)
RegisterNetEvent("919-admin:client:ReceiveVehiclesInfo", function(VehiclesInfo)
DebugTrace("Received vehicles page info")
SendNUIMessage({
action = "vehiclesinfo",
vehiclesinfo = VehiclesInfo,
})
end)
RegisterNetEvent("919-admin:client:ReceiveLeaderboardInfo", function(money, vehicles)
DebugTrace("Received leaderboard page info")
SendNUIMessage({
action = "leaderboardinfo",
money = money,
vehicles = vehicles,
})
end)
RegisterNetEvent("919-admin:client:ReceiveItemsInfo", function(ItemsInfo)
DebugTrace("Received items page info")
SendNUIMessage({
action = "itemsinfo",
itemsinfo = ItemsInfo,
})
end)
RegisterNetEvent("919-admin:client:ReceiveCharacters", function(players)
DebugTrace("Received characters page info")
SendNUIMessage({
action = "characterslist",
characters = players
})
end)
RegisterNetEvent("919-admin:client:ReceiveCurrentLogs", function(currentLogs)
AdminPanel.CurrentLogs = currentLogs
SendNUIMessage({
action = "logslist",
logs = AdminPanel.CurrentLogs
})
end)
RegisterNetEvent("919-admin:client:ToggleBlips", function()
--COME BACK HERE
end)
RegisterNetEvent("919-admin:client:ViewWarnings", function(warnings)
DebugTrace("[919-admin:client:ViewWarnings] Received warnings")
SendNUIMessage({
action = "viewwarnings",
warnings = warnings,
})
end)
RegisterNetEvent("919-admin:client:SetPedModel", function(model)
if model then
Citizen.CreateThread(function()
model = GetHashKey(model)
RequestModel(model)
while not HasModelLoaded(model) do
RequestModel(model)
Citizen.Wait(0)
end
SetPlayerModel(PlayerId(), model)
SetPedComponentVariation(PlayerPedId(), 0, 0, 0, 2)
end)
end
end)
RegisterNetEvent("919-admin:client:DeleteAllEntities", function(entityType)
if entityType == 1 then
for vehicle in EnumerateVehicles() do
if (not IsPedAPlayer(GetPedInVehicleSeat(vehicle, -1))) then
SetVehicleHasBeenOwnedByPlayer(vehicle, false)
SetEntityAsMissionEntity(vehicle, false, false)
DeleteVehicle(vehicle)
if (DoesEntityExist(vehicle)) then
DeleteVehicle(vehicle)
end
end
end
elseif entityType == 2 then
for ped in EnumeratePeds() do
if (not IsPedAPlayer(ped)) then
SetEntityAsMissionEntity(ped, false, false)
DeleteEntity(ped)
if (DoesEntityExist(ped)) then
DeleteEntity(ped)
end
end
end
elseif entityType == 3 then
for object in EnumerateObjects() do
SetEntityAsMissionEntity(object, false, false)
DeleteEntity(object)
if (DoesEntityExist(object)) then
DeleteEntity(object)
end
end
end
end)
RegisterNetEvent("919-admin:client:RequestSpectate", function(playerServerId, tgtCoords, name)
local localPlayerPed = PlayerPedId()
AdminPanel.SpectatingPlayer = name
AdminPanel.SpectatingID = playerServerId
if playerServerId == -1 then
AdminPanel.SpectatePlayer(-1,-1,"")
else
if ((not tgtCoords) or (tgtCoords.z == 0.0)) then tgtCoords = GetEntityCoords(GetPlayerPed(GetPlayerFromServerId(playerServerId))) end
if playerServerId == GetPlayerServerId(PlayerId()) then
if AdminPanel.SavedCoords then
RequestCollisionAtCoord(AdminPanel.SavedCoords.x, AdminPanel.SavedCoords.y, AdminPanel.SavedCoords.z)
Wait(500)
SetEntityCoords(playerPed, AdminPanel.SavedCoords.x, AdminPanel.SavedCoords.y, AdminPanel.SavedCoords.z, 0, 0, 0, false)
AdminPanel.SavedCoords = nil
end
AdminPanel.SpectatePlayer(GetPlayerPed(PlayerId()),GetPlayerFromServerId(PlayerId()),GetPlayerName(PlayerId()))
return
else
if not AdminPanel.SavedCoords then
AdminPanel.SavedCoords = GetEntityCoords(PlayerPedId())
end
end
SetEntityCoords(localPlayerPed, tgtCoords.x, tgtCoords.y, tgtCoords.z - 10.0, 0, 0, 0, false)
local adminPed = localPlayerPed
local playerId = GetPlayerFromServerId(playerServerId)
repeat
Wait(200)
playerId = GetPlayerFromServerId(playerServerId)
until ((GetPlayerPed(playerId) > 0) and (playerId ~= -1))
AdminPanel.SpectatePlayer(GetPlayerPed(playerId),playerId,GetPlayerName(playerId))
end
end)
RegisterNetEvent("919-admin:client:RequestInventory", function(TargetId)
Compat.OpenInventory(TargetId)
end)
RegisterNetEvent("919-admin:client:setLivery", function(livery)
local Veh = GetVehiclePedIsIn(PlayerPedId())
if Veh then
SetVehicleLivery(Veh, livery)
end
end)
RegisterNetEvent("919-admin:client:SetPosition", function(coords)
local ped = PlayerPedId()
SetEntityCoords(ped, coords.x, coords.y, coords.z)
end)
RegisterNetEvent("919-admin:client:Freeze", function()
AdminPanel.isFrozen = not AdminPanel.isFrozen
local ped = PlayerPedId()
local veh = GetVehiclePedIsIn(ped)
if veh ~= 0 then
FreezeEntityPosition(ped, AdminPanel.isFrozen)
FreezeEntityPosition(veh, AdminPanel.isFrozen)
else
FreezeEntityPosition(ped, AdminPanel.isFrozen)
end
end)
RegisterNetEvent("919-admin:client:SendReport", function(name, src, msg, subject)
TriggerServerEvent("919-admin:server:SendReport", name, src, msg, subject)
end)
RegisterNetEvent("919-admin:client:SaveCar", function(senderId)
local ped = PlayerPedId()
local veh = GetVehiclePedIsIn(ped)
if veh ~= nil and veh ~= 0 then
local plate = QBCore.Functions.GetPlate(veh)
local props = QBCore.Functions.GetVehicleProperties(veh)
local hash = props.model
local vehname = GetDisplayNameFromVehicleModel(hash):lower()
if QBCore.Shared.Vehicles[vehname] ~= nil and next(QBCore.Shared.Vehicles[vehname]) ~= nil then
TriggerServerEvent("919-admin:server:SaveCar", props, QBCore.Shared.Vehicles[vehname], `veh`, plate, senderId)
else
QBCore.Functions.Notify(Lang:t("notify.cantStoreVehicle"), "error")
end
else
QBCore.Functions.Notify(Lang:t("notify.notInVehicle"), "error")
end
end)
RegisterNetEvent("919-admin:client:SetModel", function(skin)
local ped = PlayerPedId()
local model = GetHashKey(skin)
SetEntityInvincible(ped, true)
if IsModelInCdimage(model) and IsModelValid(model) then
RequestModel(model)
repeat Wait(0) until HasModelLoaded(model)
SetPlayerModel(PlayerId(), model)
if isPedAllowedRandom() then
SetPedRandomComponentVariation(ped, true)
SetPedDefaultComponentVariation(ped)
end
SetModelAsNoLongerNeeded(model)
end
SetEntityInvincible(ped, false)
end)
RegisterNetEvent("919-admin:client:MassDespawn", function ()
for vehicle in EnumerateVehicles() do
if (not IsPedAPlayer(GetPedInVehicleSeat(vehicle, -1))) then
SetVehicleHasBeenOwnedByPlayer(vehicle, false)
SetEntityAsMissionEntity(vehicle, false, false)
DeleteVehicle(vehicle)
if (DoesEntityExist(vehicle)) then
DeleteVehicle(vehicle)
end
end
end
end)
RegisterNetEvent("919-admin:client:MassPedDespawn", function ()
for ped in EnumeratePeds() do
if (not IsPedAPlayer(ped)) then
SetEntityAsMissionEntity(ped, false, false)
DeleteEntity(ped)
if (DoesEntityExist(ped)) then
DeleteEntity(ped)
end
end
end
end)
RegisterNetEvent("919-admin:client:MassObjDespawn", function ()
for object in EnumerateObjects() do
if (IsEntityAnObject(object)) then
SetEntityAsMissionEntity(object, false, false)
DeleteEntity(object)
if (DoesEntityExist(object)) then
DeleteEntity(object)
end
end
end
end)
RegisterNetEvent("919-admin:client:MassEverythingDespawn", function ()
for entity in EnumerateEntities() do
if (IsEntityAPed(entity)) then
if not IsPedAPlayer(entity) then
SetEntityAsMissionEntity(entity, false, false)
DeleteEntity(entity)
if (DoesEntityExist(entity)) then
DeleteEntity(entity)
end
end
else
SetEntityAsMissionEntity(entity, false, false)
DeleteEntity(entity)
if (DoesEntityExist(entity)) then
DeleteEntity(entity)
end
end
end
end)
RegisterNetEvent("919-admin:client:SetNuiFocus", function(focus, mouse)
SetNuiFocus(focus, mouse)
end)
RegisterNetEvent("919-admin:client:ReceiveServerMetrics", function(serverMetrics)
DebugTrace("Received server metrics")
SendNUIMessage({
action = "servermetrics",
metrics = serverMetrics,
})
end)
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
RegisterNUICallback("close", function()
SetNuiFocus(false, false)
TriggerServerEvent("919-admin:server:ClosePanel")
DebugTrace("NUICallback: close")
end)
RegisterNUICallback("LoadJobInfo", function()
TriggerServerEvent("919-admin:server:RequestJobPageInfo")
DebugTrace("NUICallback: LoadJobInfo")
end)
RegisterNUICallback("LoadGangInfo", function()
TriggerServerEvent("919-admin:server:RequestGangPageInfo")
DebugTrace("NUICallback: LoadGangInfo")
end)
RegisterNUICallback("LoadResourcesInfo", function()
TriggerServerEvent("919-admin:server:RequestResourcePageInfo")
DebugTrace("NUICallback: LoadResourcesInfo")
end)
RegisterNUICallback("LoadServerMetrics", function()
TriggerServerEvent("919-admin:server:RequestServerMetrics")
DebugTrace("NUICallback: LoadServerMetrics")
end)
RegisterNUICallback("LoadBansInfo", function()
TriggerServerEvent("919-admin:server:RequestBansInfo")
DebugTrace("NUICallback: LoadBansInfo")
end)
RegisterNUICallback("LoadReportsInfo", function()
TriggerServerEvent("919-admin:server:RequestReportsInfo")
DebugTrace("NUICallback: LoadReportsInfo")
end)
RegisterNUICallback("LoadAdminChat", function()
TriggerServerEvent("919-admin:server:RequestAdminChat")
DebugTrace("NUICallback: LoadAdminChat")
end)
RegisterNUICallback("AdminChatSend", function(info)
TriggerServerEvent("919-admin:server:AdminChatSend", info["message"])
DebugTrace("NUICallback: AdminChatSend")
end)
RegisterNUICallback("LoadItemsInfo", function()
TriggerServerEvent("919-admin:server:RequestItemsInfo")
DebugTrace("NUICallback: LoadItemsInfo")
end)
RegisterNUICallback("LoadVehiclesInfo", function()
TriggerServerEvent("919-admin:server:RequestVehiclesInfo")
DebugTrace("NUICallback: LoadVehiclesInfo")
end)
RegisterNUICallback("LoadLeaderboardInfo", function()
TriggerServerEvent("919-admin:server:RequestLeaderboardInfo")
DebugTrace("NUICallback: LoadLeadeaderboardInfo")
end)
RegisterNUICallback("LoadLogs", function()
TriggerServerEvent("919-admin:server:RequestCurrentLogs")
DebugTrace("NUICallback: LoadLogs")
end)
RegisterNUICallback("LoadCharacters", function()
TriggerServerEvent("919-admin:server:RequestCharacters")
DebugTrace("NUICallback: LoadCharacters")
end)
RegisterNUICallback("RequestViewPlayer", function(player)
TriggerServerEvent("919-admin:server:RequestViewPlayer", player)
DebugTrace("NUICallback: RequestViewPlayer")
end)
RegisterNUICallback("SendReport", function(info)
TriggerServerEvent("919-admin:server:SendReport", info["subject"], info["info"], info["type"])
DebugTrace("NUICallback: SendReport")
end)
RegisterNUICallback("ResourceAction", function(info)
local currentResource = info["resource"]
if info["action"] == "start" or info["action"] == "stop" or info["action"] == "restart" then
TriggerServerEvent("919-admin:server:ResourceAction", currentResource, info["action"])
end
DebugTrace("NUICallback: ResourceAction ["..info["action"].."]")
end)
RegisterNetEvent("919-admin:client:OpenSkinMenu1", function()
if Config.ESXSkin == "AK" then
exports["ak47_clothing"]:openOutfitMenu()
else
TriggerEvent("esx_skin:openRestrictedMenu", function(data, menu)
menu.close()
ESX.UI.Menu.Open("default", GetCurrentResourceName(), "shop_confirm", {
title = "Validate this purchase!",
align = "top-left",
elements = {
{label = "No", value = "no"},
{label = "Yes", value = "yes"}
}}, function(data, menu)
menu.close()
if data.current.value == "yes" then
ESX.TriggerServerCallback("esx_clotheshop:buyClothes", function(bought)
if bought then
TriggerEvent("skinchanger:getSkin", function(skin)
TriggerServerEvent("esx_skin:save", skin)
end)
hasPaid = true
ESX.TriggerServerCallback("esx_clotheshop:checkPropertyDataStore", function(foundStore)
if foundStore then
ESX.UI.Menu.Open("default", GetCurrentResourceName(), "save_dressing", {
title = "Save in dressing",
align = "top-left",
elements = {
{label = "No", value = "no"},
{label = "Yes", value = "yes"}
}}, function(data2, menu2)
menu2.close()
if data2.current.value == "yes" then
ESX.UI.Menu.Open("dialog", GetCurrentResourceName(), "outfit_name", {
title = "Outfit name"
}, function(data3, menu3)
menu3.close()
TriggerEvent("skinchanger:getSkin", function(skin)
TriggerServerEvent("esx_clotheshop:saveOutfit", data3.value, skin)
ESX.ShowNotification("Saved outfit")
end)
end, function(data3, menu3)
menu3.close()
end)
end
end)
end
end)
else
ESX.TriggerServerCallback("esx_skin:getPlayerSkin", function(skin)
TriggerEvent("skinchanger:loadSkin", skin)
end)
ESX.ShowNotification("Not enough money!")
end
end)
elseif data.current.value == "no" then
ESX.TriggerServerCallback("esx_skin:getPlayerSkin", function(skin)
TriggerEvent("skinchanger:loadSkin", skin)
end)
end
currentAction = "shop_menu"
currentActionMsg = "Press the menu"
currentActionData = {}
end, function(data, menu)
menu.close()
currentAction = "shop_menu"
currentActionMsg = "Press the menu"
currentActionData = {}
end)
end, function(data, menu)
menu.close()
currentAction = "shop_menu"
currentActionMsg = "Press the menu"
currentActionData = {}
end, {
"tshirt_1", "tshirt_2",
"torso_1", "torso_2",
"decals_1", "decals_2",
"arms", "arms_2",
"pants_1", "pants_2",
"shoes_1", "shoes_2",
"bags_1", "bags_2",
"chain_1", "chain_2",
"helmet_1", "helmet_2",
"glasses_1", "glasses_2"
})
end
end)
RegisterNUICallback("Action", function(info)
local currentPlayer = info["id"]
if info["action"] == "uncuffSelf" then
Compat.UncuffSelf()
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.uncuffed"))
elseif info["action"] == "revive" then
TriggerServerEvent("919-admin:server:RevivePlayer", currentPlayer)
elseif info["action"] == "goto" then
TriggerServerEvent("919-admin:server:GotoPlayer", currentPlayer)
elseif info["action"] == "bring" then
local target = GetPlayerPed(currentPlayer)
local plyCoords = GetEntityCoords(PlayerPedId())
TriggerServerEvent("919-admin:server:BringPlayer", currentPlayer, plyCoords)
elseif info["action"] == "sendtolegion" then
TriggerServerEvent("919-admin:server:SetPosition", currentPlayer, 215.75, -804.26, 30.81)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.senToLegion"))
elseif info["action"] == "sendtopillbox" then
TriggerServerEvent("919-admin:server:SetPosition", currentPlayer, 299.01, -577.48, 43.26)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.sentToPillbox"))
elseif info["action"] == "sendtolsc" then
TriggerServerEvent("919-admin:server:SetPosition", currentPlayer, -366.58, -126.01, 38.69)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.sentToCustoms"))
elseif info["action"] == "sendtomrpd" then
TriggerServerEvent("919-admin:server:SetPosition", currentPlayer, 415.41, -993.4, 29.38)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.sentToMRPD"))
elseif info["action"] == "sendtosandy" then
TriggerServerEvent("919-admin:server:SetPosition", currentPlayer, 1963.56, 3735.19, 32.2)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.sentToSandy"))
elseif info["action"] == "sendtograpeseed" then
TriggerServerEvent("919-admin:server:SetPosition", currentPlayer, 1692.89, 4942.49, 42.32)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.sentToGrapeseed"))
elseif info["action"] == "sendtopaleto" then
TriggerServerEvent("919-admin:server:SetPosition", currentPlayer, 125.64, 6611.6, 31.86)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.sentToPaleto"))
elseif info["action"] == "sendtolsia" then
TriggerServerEvent("919-admin:server:SetPosition", currentPlayer, -1021.81, -2701.25, 13.76)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.sentToLSA"))
elseif info["action"] == "kill" then
TriggerServerEvent("919-admin:server:KillPlayer", currentPlayer)
elseif info["action"] == "cuff" then
TriggerServerEvent("919-admin:server:CuffPlayer", currentPlayer)
elseif info["action"] == "save" then
TriggerServerEvent("919-admin:server:SavePlayer", currentPlayer)
elseif info["action"] == "clothing" then
TriggerServerEvent("919-admin:server:OpenSkinMenu", currentPlayer)
elseif info["action"] == "sclothing" then
SendNUIMessage({
action = "close"
})
SetNuiFocus(false, false)
TriggerServerEvent("919-admin:server:OpenSkinMenu", GetPlayerServerId(PlayerId()))
elseif info["action"] == "feed" then
TriggerServerEvent("919-admin:server:FeedPlayer", currentPlayer)
Citizen.Wait(50)
TriggerServerEvent("919-admin:server:RefreshMenu", true)
elseif info["action"] == "stress" then
TriggerServerEvent("919-admin:server:RelieveStress", currentPlayer)
Citizen.Wait(50)
TriggerServerEvent("919-admin:server:RefreshMenu", true)
elseif info["action"] == "openinv" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
SendNUIMessage({
action = "close"
})
SetNuiFocus(false, false)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.openingPlayerInv"))
TriggerEvent("919-admin:client:RequestInventory", currentPlayer)
end, "openinventory")
elseif info["action"] == "clearinv" then
TriggerServerEvent("919-admin:server:ClearInventory", currentPlayer)
elseif info["action"] == "screenshot" then
TriggerServerEvent("919-admin:server:ScreenshotSubmit", currentPlayer)
elseif info["action"] == "spectate" then
TriggerServerEvent("919-admin:server:RequestSpectate", currentPlayer)
SendNUIMessage({
action = "close"
})
SetNuiFocus(false, false)
elseif info["action"] == "freeze" then
TriggerServerEvent("919-admin:server:Freeze", currentPlayer)
elseif info["action"] == "revives" then
TriggerServerEvent("919-admin:server:RevivePlayer", GetPlayerServerId(PlayerId()))
elseif info["action"] == "sendback" then
TriggerServerEvent("919-admin:server:SendPlayerBack", currentPlayer)
elseif info["action"] == "goback" then
TriggerServerEvent("919-admin:server:SendBackSelf")
elseif info["action"] == "tpm" then
if IsWaypointActive() then
local WaypointHandle = GetFirstBlipInfoId(8)
if DoesBlipExist(WaypointHandle) then
local waypointCoords = GetBlipInfoIdCoord(WaypointHandle)
for height = 1, 1000 do
SetPedCoordsKeepVehicle(PlayerPedId(), waypointCoords["x"], waypointCoords["y"], height + 0.0)
local foundGround, zPos = GetGroundZFor_3dCoord(waypointCoords["x"], waypointCoords["y"], height + 0.0)
if foundGround then
SetPedCoordsKeepVehicle(PlayerPedId(), waypointCoords["x"], waypointCoords["y"], height + 0.0)
break
end
Citizen.Wait(5)
end
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.tpm"))
else
ESX.ShowNotification("Select Waypoint")
end
else
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.error").." "..Lang:t("alerts.noMarker"))
end
elseif info["action"] == "setpedmodel" then
if info["model"] then
TriggerServerEvent("919-admin:server:SetPedModel", currentPlayer, info["model"])
end
elseif info["action"] == "invisible" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if not AdminPanel.isInvisible then
SetEntityVisible(PlayerPedId(), false, false)
AdminPanel.isInvisible = true
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.enabled").." "..Lang:t("alerts.invis"))
else
SetEntityVisible(PlayerPedId(), true, false)
AdminPanel.isInvisible = false
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.disabled").." "..Lang:t("alerts.vis"))
end
end, "invisibility")
elseif info["action"] == "togradar" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
AdminPanel.DisplayingRadar = not AdminPanel.DisplayingRadar
if AdminPanel.DisplayingRadar then
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.enabled").." "..Lang:t("alerts.radarOn"))
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.disabled").." "..Lang:t("alerts.radarOff"))
end
end, "forceradar")
elseif info["action"] == "togblips" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
AdminPanel.DisplayingBlips = not AdminPanel.DisplayingBlips
if AdminPanel.DisplayingBlips then
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.enabled").." "..Lang:t("alerts.blipsOn"))
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.disabled").." "..Lang:t("alerts.blipsOff"))
end
end, "playerblips")
elseif info["action"] == "tognames" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
AdminPanel.DisplayingNames = not AdminPanel.DisplayingNames
if AdminPanel.DisplayingNames then
ShowNames = true
-- TriggerServerEvent("919-admin:server:GetPlayersForBlips")
toggleNames()
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.enabled").." "..Lang:t("alerts.NamesOn"))
else
ShowNames = false
-- TriggerServerEvent("919-admin:server:GetPlayersForBlips")
toggleNames()
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.disabled").." "..Lang:t("alerts.NamesOff"))
end
end, "playerblips")
elseif info["action"] == "togspeed" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
AdminPanel.FastSpeed = not AdminPanel.FastSpeed
if AdminPanel.FastSpeed then
SetRunSprintMultiplierForPlayer(PlayerId(), 1.49)
SetSwimMultiplierForPlayer(PlayerId(), 1.49)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.enabled").." "..Lang:t("alerts.RunOn"))
else
SetRunSprintMultiplierForPlayer(PlayerId(), 1.0)
SetSwimMultiplierForPlayer(PlayerId(), 1.0)
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.disabled").." "..Lang:t("alerts.RunOff"))
end
end, "fastrun")
elseif info["action"] == "god" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if not AdminPanel.GodMode then
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.enabled").." "..Lang:t("alerts.GodOn"))
godModeChange()
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.disabled").." "..Lang:t("alerts.GodOff"))
godModeChange()
end
end, "godmode")
elseif info["action"] == "setmedriver" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local vehicle = Compat.GetClosestVehicle()
if vehicle then
if IsVehicleSeatFree(vehicle,-1) then
SetPedIntoVehicle(PlayerPedId(),vehicle,-1)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.EnterVehicle"))
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.error").." "..Lang:t("alerts.VehicleFull"))
end
end
end, "setmedriver")
elseif info["action"] == "setmepass" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local vehicle = Compat.GetClosestVehicle()
if vehicle then
if seat == nil then
seat = 0
elseif tonumber(seat) == 3 then
seat = 1
elseif tonumber(seat) == 4 then
seat = 2
end
if IsVehicleSeatFree(vehicle,seat) then
SetPedIntoVehicle(PlayerPedId(),vehicle,seat)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success").." "..Lang:t("alerts.EnterVehicle"))
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.error").." "..Lang:t("alerts.VehicleFull"))
end
end
end, "setmepassenger")
elseif info["action"] == "clearblood" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
ClearPedBloodDamage(PlayerPedId())
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.bloodCleared"))
end, "clearblood")
elseif info["action"] == "wetclothes" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
SetPedWetnessHeight(PlayerPedId(), 2.0)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.clothesWet"))
end, "wetclothes")
elseif info["action"] == "dryclothes" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
ClearPedWetness(PlayerPedId())
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.clothesDry"))
end, "dryclothes")
elseif info["action"] == "deleteclosestveh" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local entity, distance = Compat.GetClosestVehicle()
if entity then
if distance < 10.0 then
AdminPanel.DeleteEntity(entity)
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.error")..""..Lang:t("alerts.vehicleFar"))
end
end
end, "deleteclosestvehicle")
elseif info["action"] == "deleteclosestped" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local entity, distance = AdminPanel.GetClosestPedNotPlayer()
if entity then
if not IsPedAPlayer(entity) then
if distance < 10.0 then
AdminPanel.DeleteEntity(entity)
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.error")..""..Lang:t("alerts.pedFar"))
end
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.error")..""..Lang:t("alerts.pedIsPlayer"))
end
end
end, "deleteclosestped")
elseif info["action"] == "deleteclosestobj" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local entity, distance = Compat.GetClosestObject()
if entity then
if distance < 10.0 then
AdminPanel.DeleteEntity(entity)
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.error")..""..Lang:t("alerts.objectFar"))
end
end
end, "deleteclosestobject")
elseif info["action"] == "repairv" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local vehicle = Compat.GetClosestVehicle()
if vehicle then
SetVehicleUndriveable(vehicle, false)
SetVehicleBodyHealth(vehicle, 1000)
SetVehicleDeformationFixed(vehicle)
SetVehicleEngineHealth(vehicle, 1000)
SetVehicleEngineOn(vehicle, true, true)
SetVehicleFixed(vehicle)
SetVehicleOnGroundProperly(vehicle)
SetVehicleGravity(vehicle, true)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.repairedVehicle"))
end
end, "repairvehicle")
elseif info["action"] == "wash" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local vehicle = Compat.GetClosestVehicle()
if vehicle then
SetVehicleDirtLevel(vehicle, 0)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.washedVehicle"))
end
end, "washvehicle")
elseif info["action"] == "hotwire" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local vehicle = GetVehiclePedIsIn(PlayerPedId())
if vehicle then
exports["qb-vehiclekeys"]:SetVehicleKey(GetVehicleNumberPlateText(vehicle), true)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.hotwireVehicle"))
end
end, "hotwirevehicle")
elseif info["action"] == "lockv" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local vehicle = Compat.GetClosestVehicle()
if vehicle then
SetVehicleDoorsLocked(vehicle, 2)
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.success")..""..Lang:t("alerts.lockedVehicle"))
end
end, "lockvehicle")
elseif info["action"] == "unlockv" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local vehicle = Compat.GetClosestVehicle()
if vehicle then
SetVehicleDoorsLocked(vehicle, 1)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.lockedVehicle"))
end
end, "unlockvehicle")
elseif info["action"] == "spawnvehicle" then
if info["model"] then
SendNUIMessage({
action = "close"
})
SetNuiFocus(false, false)
TriggerServerEvent("919-admin:server:RequestVehicleSpawn", info["model"])
end
elseif info["action"] == "maxpupgrades" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
if vehicle then
SetVehicleModKit(vehicle, 0)
SetVehicleMod(vehicle, 11, GetNumVehicleMods(vehicle, 11) - 1, false)
SetVehicleMod(vehicle, 12, GetNumVehicleMods(vehicle, 12) - 1, false)
SetVehicleMod(vehicle, 13, GetNumVehicleMods(vehicle, 13) - 1, false)
SetVehicleMod(vehicle, 15, GetNumVehicleMods(vehicle, 15) - 2, false)
SetVehicleMod(vehicle, 16, GetNumVehicleMods(vehicle, 16) - 1, false)
ToggleVehicleMod(vehicle, 17, true)
ToggleVehicleMod(vehicle, 18, true)
ToggleVehicleMod(vehicle, 19, true)
ToggleVehicleMod(vehicle, 21, true)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.vehicleMaxPerformance"))
SendNUIMessage({
action = "close"
})
SetNuiFocus(false, false)
end
end, "maxperformanceupgrades")
elseif info["action"] == "randvisualparts" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local vehicle, distance = Compat.GetClosestVehicle()
if vehicle then
if distance < 10.0 then
SetVehicleModKit(vehicle, 0)
for i=1, 47 do
SetVehicleMod(vehicle, i, math.random(1, 4), true)
end
SetVehicleMod(vehicle, 49, math.random(1, 4), true)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.vehicleRandomVisual"))
SendNUIMessage({
action = "close"
})
SetNuiFocus(false, false)
--PlaySoundFrontend(-1, "CONTINUE", "HUD_FRONTEND_DEFAULT_SOUNDSET", false)
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.error")..""..Lang:t("alerts.vehicleFar"))
end
end
end, "randomvisualparts")
elseif info["action"] == "setlivery" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local vehicle, distance = Compat.GetClosestVehicle()
if vehicle then
if distance < 10.0 then
if info["livery"] then
SetVehicleModKit(vehicle, 0)
SetVehicleMod(vehicle, 48, tonumber(info["livery"]), true)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.liverySet").." "..GetLabelText(GetLiveryName(vehicle, tonumber(info["livery"])))..".")
SendNUIMessage({
action = "close"
})
SetNuiFocus(false, false)
end
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.error")..""..Lang:t("alerts.vehicleFar"))
end
end
end, "setlivery")
elseif info["action"] == "setcolor" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if info["primarycolor"] and info["secondarycolor"] then
local PrimaryColor = info["primarycolor"]
local SecondaryColor = info["secondarycolor"]
local vehicle, distance = Compat.GetClosestVehicle()
if vehicle then
if distance < 10.0 then
SetVehicleCustomPrimaryColour(vehicle, PrimaryColor.r, PrimaryColor.g, PrimaryColor.b)
SetVehicleCustomSecondaryColour(vehicle, SecondaryColor.r, SecondaryColor.g, SecondaryColor.b)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.colorSet"))
SendNUIMessage({
action = "close"
})
SetNuiFocus(false, false)
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.error")..""..Lang:t("alerts.vehicleFar"))
end
end
end
end, "setcolor")
elseif info["action"] == "filltank" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
local vehicle = Compat.GetClosestVehicle()
if vehicle then
exports[Config.FuelScript]:SetFuel(vehicle, 100)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.fuelSet"))
end
end, "fillgastank")
elseif info["action"] == "kick" then
TriggerServerEvent("919-admin:server:KickPlayer", currentPlayer, info["reason"])
elseif info["action"] == "warn" then
TriggerServerEvent("919-admin:server:WarnPlayer", currentPlayer, info["reason"], info["citizenid"])
elseif info["action"] == "checkwarn" then
TriggerServerEvent("919-admin:server:ViewWarnings", currentPlayer, info["citizenid"])
elseif info["action"] == "ban" then
info["timeamt"] = info["timeamt"] * 60 * 60
TriggerServerEvent("919-admin:server:BanPlayer", currentPlayer, info["timeamt"], info["reason"], info["citizenid"])
elseif info["action"] == "givecash" or info["action"] == "removecash" or info["action"] == "givebank" or info["action"] == "removebank" then
local cashAmount = tonumber(info["amount"])
TriggerServerEvent("919-admin:server:MonetaryAction", currentPlayer, info["action"], cashAmount)
Citizen.Wait(50)
TriggerServerEvent("919-admin:server:RefreshMenu", true)
elseif info["action"] == "setjob" then
TriggerServerEvent("919-admin:server:SetJob", currentPlayer, info["jobname"], info["jobgrade"])
Citizen.Wait(50)
TriggerServerEvent("919-admin:server:RefreshMenu", true)
elseif info["action"] == "giveitem" then
TriggerServerEvent("919-admin:server:GiveItem", currentPlayer, info["itemname"], info["itemamount"])
elseif info["action"] == "setgang" then
TriggerServerEvent("919-admin:server:SetGang", currentPlayer, info["gangname"], info["ganggrade"])
Citizen.Wait(50)
TriggerServerEvent("919-admin:server:RefreshMenu", true)
elseif info["action"] == "loadipl" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if info["ipl"] ~= "" and info["ipl"] ~= nil then
RequestIpl(info["ipl"])
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.iplReqested"))
end
end, "ipl")
elseif info["action"] == "unloadipl" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if info["ipl"] ~= "" and info["ipl"] ~= nil then
RemoveIpl(info["ipl"])
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.unloadIPL"))
end
end, "ipl")
elseif info["action"] == "setViewDistance" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if hasPermission then
SetEntityViewDistance(info)
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.distanceChanged"))
end
end, "setViewDistance")
elseif info["action"] == "copyEntityInfo" then
print("hi")
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
print(hasPermission)
if hasPermission then
print("noice")
CopyToClipboard()
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.copied"))
end
end, "copyEntityInfo")
print("no u")
elseif info["action"] == "freeaimMode" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if hasPermission then
ToggleEntityFreeView()
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.freeaimTog"))
end
end, "freeaimMode")
elseif info["action"] == "displayVehicles" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if hasPermission then
ToggleEntityVehicleView()
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.dispVeh"))
end
end, "displayVehicles")
elseif info["action"] == "displayPeds" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if hasPermission then
ToggleEntityPedView()
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.dispPeds"))
end
end, "displayPeds")
elseif info["action"] == "displayObjects" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if hasPermission then
ToggleEntityObjectView()
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.success")..""..Lang:t("alerts.dispEnt"))
end
end, "displayObjects")
elseif info["action"] == "vec3" then
local Position = GetEntityCoords(PlayerPedId())
local InVehicle = IsPedInAnyVehicle(PlayerPedId(), false)
if InVehicle then
Position = GetEntityCoords(GetVehiclePedIsIn(PlayerPedId(), false))
end
local string = "vector3("..string.format("%.2f", Position.x)..", "..string.format("%.2f", Position.y)..", "..string.format("%.2f", Position.z)..")"
SendNUIMessage({
action = "clipboard",
string = string
})
elseif info["action"] == "vec4" then
local Position = GetEntityCoords(PlayerPedId())
local Heading = GetEntityHeading(PlayerPedId())
local InVehicle = IsPedInAnyVehicle(PlayerPedId(), false)
if InVehicle then
Position = GetEntityCoords(GetVehiclePedIsIn(PlayerPedId(), false))
Heading = GetEntityHeading(GetVehiclePedIsIn(PlayerPedId(), false))
end
local string = "vector4("..string.format("%.2f", Position.x)..", "..string.format("%.2f", Position.y)..", "..string.format("%.2f", Position.z)..", "..math.floor(Heading)..")"
SendNUIMessage({
action = "clipboard",
string = string
})
elseif info["action"] == "heading" then
local Heading = GetEntityHeading(PlayerPedId())
if InVehicle then
Heading = GetEntityHeading(GetVehiclePedIsIn(PlayerPedId(), false))
end
local string = "heading: "..math.floor(Heading)
SendNUIMessage({
action = "clipboard",
string = string
})
elseif info["action"] == "setweather" then
if info["weather"] ~= "" and info["weather"] ~= nil then
TriggerServerEvent("919-admin:server:SetWeather", info["weather"])
end
elseif info["action"] == "noclip" then
TriggerServerEvent("919-admin:server:RequestNoClip")
elseif info["action"] == "superjump" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
AdminPanel.SuperJump = not AdminPanel.SuperJump
if AdminPanel.SuperJump then
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.enabled").." "..Lang:t("alerts.jumpOn"))
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", "DISABLED: "..Lang:t("alerts.jumpOff"))
end
end, "superjump")
elseif info["action"] == "noragdoll" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
AdminPanel.NoRagdoll = not AdminPanel.NoRagdoll
if AdminPanel.NoRagdoll then
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.enabled").." "..Lang:t("alerts.jumpOn"))
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.disabled").." "..Lang:t("alerts.jumpOff"))
end
end, "noragdoll")
elseif info["action"] == "infinitestam" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
AdminPanel.InfiniteStamina = not AdminPanel.InfiniteStamina
if AdminPanel.InfiniteStamina then
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.enabled").." "..Lang:t("alerts.infStamOn"))
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.disabled").." "..Lang:t("alerts.infStamOff"))
end
end, "infinitestam")
elseif info["action"] == "settime" then
TriggerServerEvent("919-admin:server:SetTime", info["time"], info["time"])
elseif info["action"] == "reviveall" then
TriggerServerEvent("919-admin:server:ReviveAll")
elseif info["action"] == "messageall" then
if info["message"] then
if #info["message"] > 5 then
TriggerServerEvent("919-admin:server:MessageAll", info["message"])
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.error").." "..Lang:t("alerts.msgShort"))
end
else
TriggerEvent("919-admin:client:ShowPanelAlert", "danger", ""..Lang:t("alerts.error").." "..Lang:t("alerts.noMessage"))
end
elseif info["action"] == "removejob" then
TriggerServerEvent("919-admin:server:FireJob", currentPlayer)
elseif info["action"] == "removegang" then
TriggerServerEvent("919-admin:server:FireGang", currentPlayer)
elseif info["action"] == "savecar" then
TriggerServerEvent("919-admin:server:AddVehicleToGarage", currentPlayer)
elseif info["action"] == "massdv" then
TriggerServerEvent("919-admin:server:DeleteAllEntities", 1) -- Vehicles
elseif info["action"] == "massdp" then
TriggerServerEvent("919-admin:server:DeleteAllEntities", 2) -- Peds
elseif info["action"] == "massdo" then
TriggerServerEvent("919-admin:server:DeleteAllEntities", 3) -- Objects
elseif info["action"] == "clearreports" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if hasPermission then
TriggerServerEvent("919-admin:server:ClearJSON", "reports")
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.cleared").." "..Lang:t("alerts.reports"))
end
end, "clearreports")
elseif info["action"] == "clearadminchat" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if hasPermission then
TriggerServerEvent("919-admin:server:ClearJSON", "admin")
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.cleared").." "..Lang:t("alerts.adminchat"))
end
end, "clearadminchat")
elseif info["action"] == "clearlogs" then
Compat.TriggerCallback("919-admin:server:HasPermission", function(hasPermission)
if hasPermission then
TriggerServerEvent("919-admin:server:ClearJSON", "logs")
TriggerEvent("919-admin:client:ShowPanelAlert", "success", ""..Lang:t("alerts.cleared").." "..Lang:t("alerts.logs"))
end
end, "clearlogs")
end
DebugTrace("NUICallback: Action ["..info["action"].."]")
end)
RegisterNUICallback("FirePlayerFromJob", function(citizenID)
TriggerServerEvent("919-admin:server:FireJobByCitizenId", citizenID)
DebugTrace("NUICallback: FirePlayerFromJob ["..citizenID.."]")
end)
RegisterNUICallback("FirePlayerFromGang", function(citizenID)
TriggerServerEvent("919-admin:server:FireGangByCitizenId", citizenID)
DebugTrace("NUICallback: FirePlayerFromGang ["..citizenID.."]")
end)
RegisterNUICallback("SetJobGrade", function(data)
if data["citizenid"] ~= nil and data["grade"] ~= nil then
TriggerServerEvent("919-admin:server:SetJobGradeByCitizenId", data["citizenid"], data["grade"])
DebugTrace("NUICallback: SetJobGrade [".. data["citizenid"]..", "..data["grade"].."]")
else
DebugTrace("NUICallback: SetJobGrade [nil, nil]")
end
end)
RegisterNUICallback("SetGangGrade", function(data)
if data["citizenid"] ~= nil and data["grade"] ~= nil then
TriggerServerEvent("919-admin:server:SetGangGradeByCitizenId", data["citizenid"], data["grade"])
DebugTrace("NUICallback: SetGangGrade [".. data["citizenid"]..", "..data["grade"].."]")
else
DebugTrace("NUICallback: SetGangGrade [nil, nil]")
end
end)
RegisterNUICallback("UnbanPlayer", function(data)
if data["license"] ~= nil then
TriggerServerEvent("919-admin:server:UnbanPlayer", data["license"])
end
end)
RegisterNUICallback("DeleteReport", function(data)
if data["id"] ~= nil then
TriggerServerEvent("919-admin:server:DeleteReport", data["id"])
end
end)
RegisterNUICallback("ClaimReport", function(data)
if data["id"] ~= nil then
TriggerServerEvent("919-admin:server:ClaimReport", data["id"])
end
end)
RegisterNUICallback("DeleteCharacter", function(citizenId)
if citizenId ~= nil then
TriggerServerEvent("919-admin:server:DeleteCharacter", citizenId)
end
end)
RegisterNUICallback("SaveSetting", function(data)
if data["setting"] ~= nil and data["value"] ~= nil then
if data["setting"] == "darkmode" then
if data["value"] == 1 then
AdminPanel.Settings.DarkMode = true
SetResourceKvpInt("919-admin:setting:darkmode", 1)
else
AdminPanel.Settings.DarkMode = false
SetResourceKvpInt("919-admin:setting:darkmode", 0)
end
elseif data["setting"] == "seethrough" then
if data["value"] == 1 then
AdminPanel.Settings.SeeThrough = true
SetResourceKvpInt("919-admin:setting:seethrough", 1)
else
AdminPanel.Settings.SeeThrough = false
SetResourceKvpInt("919-admin:setting:seethrough", 0)
end
elseif data["setting"] == "Notifications" then
if data["value"] == 1 then
AdminPanel.Settings.Notifications = true
SetResourceKvpInt("919-admin:setting:notifications", 1)
else
AdminPanel.Settings.Notifications = false
SetResourceKvpInt("919-admin:setting:notifications", 0)
end
elseif data["setting"] == "theme" then
AdminPanel.Settings.Notifications = tonumber(data["value"])
SetResourceKvpInt("919-admin:setting:theme", tonumber(data["value"]))
end
DebugTrace("NUICallback: SaveSetting [".. data["setting"]..", "..data["value"].."]")
else
DebugTrace("NUICallback: SaveSetting [nil, nil]")
end
end)
RegisterNUICallback("Refresh", function()
TriggerServerEvent("919-admin:server:RefreshMenu")
end)
---------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
function NoClip(on)
if not on then
local playerPed = PlayerPedId()
local inVehicle = IsPedInAnyVehicle( playerPed, false )
ResetEntityAlpha(PlayerPedId())
if ( inVehicle ) then
local veh = GetVehiclePedIsUsing( playerPed )
SetEntityInvincible( veh, false )
else
ClearPedTasksImmediately( playerPed )
end
SetUserRadioControlEnabled( true )
SetPlayerInvincible( PlayerId(), false )
SetEntityInvincible( target, false )
else
blockinput = true
local playerPed = PlayerPedId()
local inVehicle = IsPedInAnyVehicle(playerPed, false)
SetEntityAlpha(PlayerPedId(), 127, false)
if ( not inVehicle ) then
LoadAnimDict("mp_sleep")
loadedAnims = true
end
end
end
Citizen.CreateThread( function()
local rotationSpeed = 2.5
local forward = 1.8
local speeds = { 0.1, 0.2, 0.5, 1.0, 2.0, 7.0, 15.0 }
local moveUpKey = 44 -- Q
local moveDownKey = 46 -- E
local moveForwardKey = 32 -- W
local moveBackKey = 33 -- S
local rotateLeftKey = 34 -- A
local rotateRightKey = 35 -- D
local changeSpeedKey = 21 -- LSHIFT
function updateForward()
forward = speeds[ travelSpeed ]
end
function handleMovement(xVect,yVect)
if IsControlJustPressed(1, changeSpeedKey) or IsDisabledControlJustPressed(1, changeSpeedKey) then
travelSpeed = travelSpeed + 1
if travelSpeed > getTableLength(speeds) then
travelSpeed = 1
end
updateForward();
end
if IsControlPressed(1, moveUpKey) or IsDisabledControlPressed(1, moveUpKey) then curLocation.z = curLocation.z + forward / 2 ;
elseif IsControlPressed(1, moveDownKey) or IsDisabledControlPressed(1, moveDownKey) then curLocation.z = curLocation.z - forward / 2 ; end
if IsControlPressed(1, moveForwardKey) or IsDisabledControlPressed(1, moveForwardKey) then
curLocation.x = curLocation.x + xVect
curLocation.y = curLocation.y + yVect
elseif IsControlPressed(1, moveBackKey) or IsDisabledControlPressed(1, moveBackKey) then
curLocation.x = curLocation.x - xVect
curLocation.y = curLocation.y - yVect
end
if IsControlPressed(1, rotateLeftKey) or IsDisabledControlPressed(1, rotateLeftKey) then
curHeading = curHeading + rotationSpeed
elseif IsControlPressed(1, rotateRightKey) or IsDisabledControlPressed(1, rotateRightKey) then
curHeading = curHeading - rotationSpeed
end
end
while true do
Citizen.Wait(3)
if AdminPanel.NoClip then
local playerPed = PlayerPedId()
if IsEntityDead( playerPed ) then
AdminPanel.NoClip = false
Citizen.Wait( 100 )
else
target = playerPed
drawTxt("~r~NO CLIP ACTIVE ~s~[SPEED: ~y~"..speeds[travelSpeed].."~s~] - ~r~"..Config.NoClipKey.."~s~ TO STOP", 4, true, 0.50, 0.92, 0.6, 255, 255, 255, 255)
local inVehicle = IsPedInAnyVehicle(playerPed, true)
if inVehicle then
target = GetVehiclePedIsUsing(playerPed)
end
SetEntityVelocity(playerPed, 0.0, 0.0, 0.0)
SetEntityRotation(playerPed, 0, 0, 0, 0, false)
SetUserRadioControlEnabled(false)
SetPlayerInvincible(PlayerId(), true)
SetEntityInvincible(target, true)
if not inVehicle then
TaskPlayAnim(playerPed, "mp_sleep", "bind_pose_180", 8.0, 0.0, -1, 9, 0, 0, 0, 0 )
end
local xVect = forward * math.sin(degToRad(curHeading)) * -1.0
local yVect = forward * math.cos(degToRad(curHeading))
handleMovement(xVect, yVect)
SetEntityCoordsNoOffset(target, curLocation.x, curLocation.y, curLocation.z, true, true, true)
SetEntityHeading(target, curHeading - rotationSpeed)
end
else
Citizen.Wait(100)
end
end
end)
Citizen.CreateThread(function()
while true do
Citizen.Wait(3)
if AdminPanel.DisplayingRadar then
DisplayRadar(true)
end
if AdminPanel.InfiniteStamina then
RestorePlayerStamina(PlayerId(), 1.0)
end
if AdminPanel.SuperJump then
SetSuperJumpThisFrame(PlayerId())
end
SetPedCanRagdoll(PlayerPedId(), not AdminPanel.NoRagdoll)
end
end)
Citizen.CreateThread(function()
while true do
Citizen.Wait(5)
if AdminPanel.Spectating then
drawTxt("NOW SPECTATING "..AdminPanel.SpectatingPlayer.." [ID: "..AdminPanel.SpectatingID.."] - ~r~BACKSPACE~s~ TO STOP", 4, true, 0.47, 0.88, 0.6, 255, 255, 255, 255)
drawTxt("[~y~LEFT ARROW~s~] Spectate Previous Player - [~y~RIGHT ARROW~s~] Spectate Next Player", 4, true, 0.47, 0.92, 0.6, 255, 255, 255, 255)
if IsControlJustReleased(0, 177) then
AdminPanel.SpectatePlayer(-1, -1, "")
end
if IsControlJustReleased(0, 174) then
TriggerServerEvent("919-admin:server:requestPrevSpectate")
end
if IsControlJustReleased(0, 175) then
TriggerServerEvent("919-admin:server:requestNextSpectate")
end
end
end
end)
AdminPanel.SpectatePlayer = function(targetPed, target, name)
local playerPed = PlayerPedId() -- yourself
enable = true
if (target == PlayerId() or target == -1) then
enable = false
end
if (enable) then
if targetPed == playerPed then
Wait(500)
targetPed = GetPlayerPed(target)
end
local targetx,targety,targetz = table.unpack(GetEntityCoords(targetPed, false))
RequestCollisionAtCoord(targetx,targety,targetz)
NetworkSetInSpectatorMode(true, targetPed)
SetEntityInvincible(playerPed,true)
SetEntityVisible(playerPed,false)
SetEntityCollision(playerPed, false, false)
AdminPanel.Spectating = true
else
if AdminPanel.SavedCoords then
RequestCollisionAtCoord(AdminPanel.SavedCoords.x, AdminPanel.SavedCoords.y, AdminPanel.SavedCoords.z)
Wait(500)
SetEntityCoords(playerPed, AdminPanel.SavedCoords.x, AdminPanel.SavedCoords.y, AdminPanel.SavedCoords.z, 0, 0, 0, false)
AdminPanel.SavedCoords = nil
end
NetworkSetInSpectatorMode(false, targetPed)
SetEntityInvincible(playerPed,false)
SetEntityVisible(playerPed,true)
SetEntityCollision(playerPed, true, true)
if QBCore then
QBCore.Functions.Notify("Stopped spectating.", "success")
else
ESX.ShowNotification("Stopped spectating.")
end
AdminPanel.Spectating = false
end
end
Citizen.CreateThread(function()
while true do
if AdminPanel.DisplayingBlips then
local Players = {}
Compat.TriggerCallback("919-admin:server:GetPlayerPositions", function(p)
Players = p
for k,v in ipairs(AdminPanel.PlayerBlips) do
if AdminPanel.PlayerBlipsOnline[k] == nil or AdminPanel.PlayerBlipsOnline[k] == true then
AdminPanel.PlayerBlipsOnline[k] = false
end
end
for k, v in ipairs(Players) do
local playerCoords = v.pos
if AdminPanel.PlayerBlips[k] == nil then
AdminPanel.PlayerBlips[k] = AddBlipForCoord(playerCoords.x, playerCoords.y, playerCoords.z)
SetBlipSprite(AdminPanel.PlayerBlips[k], 1)
SetBlipColour(AdminPanel.PlayerBlips[k], 0)
SetBlipScale(AdminPanel.PlayerBlips[k], 0.75)
SetBlipCategory(AdminPanel.PlayerBlips[k], 7)
SetBlipDisplay(AdminPanel.PlayerBlips[k], 6)
SetBlipShrink(AdminPanel.PlayerBlips[k], true)
SetBlipAsShortRange(AdminPanel.PlayerBlips[k], true)
BeginTextCommandSetBlipName("STRING")
AddTextComponentString("[ "..v.id.." ] "..v.name)
EndTextCommandSetBlipName(AdminPanel.PlayerBlips[k])
else
SetBlipCoords(AdminPanel.PlayerBlips[k], playerCoords.x, playerCoords.y, playerCoords.z);
end
AdminPanel.PlayerBlipsOnline[k] = true
end
for k,v in ipairs(AdminPanel.PlayerBlips) do
if AdminPanel.PlayerBlipsOnline[k] == false then
RemoveBlip(AdminPanel.PlayerBlips[k])
AdminPanel.PlayerBlips[k] = nil
AdminPanel.PlayerBlipsOnline[k] = nil
end
end
end)
Citizen.Wait(1000)
else
for k,v in ipairs(AdminPanel.PlayerBlips) do
if DoesBlipExist(AdminPanel.PlayerBlips[k]) then
RemoveBlip(AdminPanel.PlayerBlips[k])
AdminPanel.PlayerBlips[k] = nil
AdminPanel.PlayerBlipsOnline[k] = nil
end
end
Citizen.Wait(10000)
end
end
end)
function getPlayerName(id)
local playerName = nil
Compat.TriggerCallback("919-Admin:GetPlayerName", function(name)
playerName = name
end, id)
while playerName == nil do
Wait(10)
end
return playerName
end
function toggleNames()
CreateThread(function()
while true do
for _, player in pairs(GetPlayersFromCoords(GetEntityCoords(PlayerPedId()), 1000.0)) do
local PlayerId = GetPlayerServerId(player)
local PlayerPed = GetPlayerPed(player)
local PlayerName = "ID: "..PlayerId.." | "..getPlayerName(PlayerId).." ("..GetPlayerName(player)..")"
local Tag = CreateFakeMpGamerTag(PlayerPed, PlayerName, false, false, "", false)
SetMpGamerTagAlpha(Tag, 0, 255) -- Sets "MP_TAG_GAMER_NAME" bar alpha to 100% (not needed just as a fail safe)
SetMpGamerTagAlpha(Tag, 2, 255) -- Sets "MP_TAG_HEALTH_ARMOUR" bar alpha to 100%
SetMpGamerTagAlpha(Tag, 4, 255) -- Sets "MP_TAG_AUDIO_ICON" bar alpha to 100%
SetMpGamerTagAlpha(Tag, 6, 255) -- Sets "MP_TAG_PASSIVE_MODE" bar alpha to 100%
SetMpGamerTagHealthBarColour(Tag, 25) --https://wiki.rage.mp/index.php?title=Fonts_and_Colors
if ShowNames then
SetMpGamerTagVisibility(Tag, 0, true) -- Activates the player ID Char name and FiveM name
SetMpGamerTagVisibility(Tag, 2, true) -- Activates the health (and armor if they have it on) bar below the player names
if NetworkIsPlayerTalking(playeridx) then
SetMpGamerTagVisibility(Tag, 4, true) -- If player is talking a voice icon will show up on the left side of the name
else
SetMpGamerTagVisibility(Tag, 4, false)
end
if GetPlayerInvincible(playeridx) then
SetMpGamerTagVisibility(Tag, 6, true) -- If player is in godmode a circle with a line through it will show up
else
SetMpGamerTagVisibility(Tag, 6, false)
end
else
Tag = CreateFakeMpGamerTag(PlayerPed, PlayerName, false, false, "", false)
SetMpGamerTagVisibility(Tag, 0, false)
SetMpGamerTagVisibility(Tag, 2, false)
SetMpGamerTagVisibility(Tag, 4, false)
SetMpGamerTagVisibility(Tag, 6, false)
RemoveMpGamerTag(Tag) -- Unloads the tags till you activate it again
end
end
Wait(5000)
end
end)
end