
Config
_4p = {
-- Specifies the framework being used. Accepted values: "esx", "qbcore", "custom".
Framework = "esx",
-- The command players will use to call for support.
supportCallCommand = "supportcall",
-- Allowed player groups that can call players into support. Use the group name from your framework.
allowed_groups = {
"admin",
"superadmin",
},
-- The default message shown when no reason is provided for the support call.
no_reason_provided = "No reason provided",
-- Settings applied when a player is called into support.
called_settings = {
freeze = false, -- If true, the player will be frozen (unable to move) during the support session.
godmode = true, -- If true, the player will be invincible (cannot be killed).
moving_radius = 5.0, -- The allowed movement radius for the player in meters. Setting this to nil means no movement restriction.
ghost_player = false, -- If true, the player's appearance changes to indicate they are in support mode (cannot be killed or run over).
disable_weapons = true, -- If true, all player weapons will be disabled to prevent misuse during support.
},
-- Sets the language used for messages and notifications. Available options: "en", "de", "fr", "es", "it", "nl", "pl".
lang = "en",
}
-- Function to check if the player is allowed to call for support.
_4p.IsPlayerAllowed = function(source, callback)
local allowed = false
local player_group = Framework:getPlayerGroup(source)
for i = 1, #_4p.allowed_groups do
if player_group == _4p.allowed_groups[i] then
allowed = true
break
end
end
callback(allowed)
end
-- Function to toggle other user interfaces when a support session is active.
_4p.ToggleOtherUIS = function(bool)
TriggerEvent('esx_hud:HudToggle', not bool)
end
-- Function to ban a player on quit while Support. Custom ban logic and HTTP requests for Discord logs can be added here.
_4p.BanPlayer = function(identifier)
-- Leave this function empty if you do not want the player to be automatically banned.
-- Add your custom HTTP request for Discord logs or an event for your ban system here.
-- Function will be triggered by Server-Side.
end
-- Universal notification function for different frameworks.
_4p.notify = function(message, source)
if IsDuplicityVersion() then -- Checks if the function is being called from the server side.
if _4p.Framework == "esx" then
TriggerClientEvent("esx:showNotification", source, message)
elseif _4p.Framework == "qbcore" then
TriggerClientEvent("QBCore:Notify", source, message)
else
print("^1[4p-supportcall] ^3You are using a custom framework, please add a notification function to the config.lua^7")
end
else -- If the function is being called from the client side.
if _4p.Framework == "esx" then
Framework.object.ShowNotification(message)
elseif _4p.Framework == "qbcore" then
Framework.object.Functions.Notify(message)
else
print("^1[4p-supportcall] ^3You are using a custom framework, please add a notification function to the config.lua^7")
end
end
end
-- Language support for various messages and notifications.
_4p.language = {
["en"] = {
no_permissions = "You do not have permission to use this command",
no_id_provided = "You need to provide a player ID",
invalid_id = "Invalid player ID",
cannot_call_self = "You cannot call yourself for support",
title = "Temporary Pause",
description = "You have been called in support and are now asked to report to support within 5 minutes. Append #%s to your nickname. If you do not report to support, you will be temporarily banned.",
reason = "Reason: %s",
player_called_into_support = "You called %s into support. Reason: %s",
player_called_out_of_support = "You called %s out of support",
},
["de"] = {
no_permissions = "Du hast keine Berechtigung, diesen Befehl zu verwenden",
no_id_provided = "Du musst eine Spieler-ID angeben",
invalid_id = "Ungültige Spieler-ID",
cannot_call_self = "Du kannst dich nicht selbst für Support anrufen",
title = "Vorübergehende Pause",
description = "Du wurdest in den Support gerufen und wirst nun gebeten, dich innerhalb von 5 Minuten beim Support zu melden. Füge #%s zu deinem Spitznamen hinzu. Wenn du dich nicht beim Support meldest, wirst du vorübergehend gebannt.",
reason = "Grund: %s",
player_called_into_support = "Du hast %s in den Support gerufen. Grund: %s",
player_called_out_of_support = "Du hast %s aus dem Support gerufen",
},
["fr"] = {
no_permissions = "Vous n'avez pas la permission d'utiliser cette commande",
no_id_provided = "Vous devez fournir un identifiant de joueur",
invalid_id = "Identifiant de joueur invalide",
cannot_call_self = "Vous ne pouvez pas vous appeler pour obtenir de l'aide",
title = "Pause temporaire",
description = "Vous avez été appelé en support et êtes maintenant invité à vous rendre au support dans les 5 minutes. Ajoutez #%s à votre surnom. Si vous ne vous présentez pas au support, vous serez temporairement banni.",
reason = "Raison: %s",
player_called_into_support = "Vous avez appelé %s en support. Raison: %s",
player_called_out_of_support = "Vous avez appelé %s hors du support",
},
["es"] = {
no_permissions = "No tienes permiso para usar este comando",
no_id_provided = "Debes proporcionar un ID de jugador",
invalid_id = "ID de jugador no válido",
cannot_call_self = "No puedes llamarte a ti mismo para obtener ayuda",
title = "Pausa temporal",
description = "Has sido llamado en apoyo y ahora se te pide que te presentes en apoyo dentro de los 5 minutos. Agrega #%s a tu apodo. Si no te presentas al apoyo, serás baneado temporalmente.",
reason = "Razón: %s",
player_called_into_support = "Llamaste a %s en apoyo. Razón: %s",
player_called_out_of_support = "Llamaste a %s fuera del apoyo",
},
["it"] = {
no_permissions = "Non hai il permesso di utilizzare questo comando",
no_id_provided = "Devi fornire un ID giocatore",
invalid_id = "ID giocatore non valido",
cannot_call_self = "Non puoi chiamarti per il supporto",
title = "Pausa temporanea",
description = "Sei stato chiamato in supporto e ora ti viene chiesto di presentarti in supporto entro 5 minuti. Aggiungi #%s al tuo soprannome. Se non ti presenti al supporto, sarai temporaneamente bannato.",
reason = "Motivo: %s",
player_called_into_support = "Hai chiamato %s in supporto. Motivo: %s",
player_called_out_of_support = "Hai chiamato %s fuori dal supporto",
},
["nl"] = {
no_permissions = "Je hebt geen toestemming om deze opdracht te gebruiken",
no_id_provided = "Je moet een speler-ID opgeven",
invalid_id = "Ongeldige speler-ID",
cannot_call_self = "Je kunt jezelf niet bellen voor ondersteuning",
title = "Tijdelijke pauze",
description = "Je bent opgeroepen voor ondersteuning en wordt nu gevraagd om binnen 5 minuten naar de ondersteuning te gaan. Voeg #%s toe aan je bijnaam. Als je je niet meldt bij de ondersteuning, word je tijdelijk verbannen.",
reason = "Reden: %s",
player_called_into_support = "Je hebt %s opgeroepen voor ondersteuning. Reden: %s",
player_called_out_of_support = "Je hebt %s uit de ondersteuning gehaald",
},
["pl"] = {
no_permissions = "Nie masz uprawnień do korzystania z tej komendy",
no_id_provided = "Musisz podać identyfikator gracza",
invalid_id = "Nieprawidłowy identyfikator gracza",
cannot_call_self = "Nie możesz wezwać siebie na pomoc",
title = "Tymczasowa przerwa",
description = "Zostałeś wezwany na pomoc i teraz prosisz o zgłoszenie się do pomocy w ciągu 5 minut. Dodaj #%s do swojego pseudonimu. Jeśli nie zgłosisz się na pomoc, zostaniesz tymczasowo zbanowany.",
reason = "Powód: %s",
player_called_into_support = "Wezwałeś %s na pomoc. Powód: %s",
player_called_out_of_support = "Wezwałeś %s poza pomoc",
},
}
If you’re experiencing any issues, don’t worry! We’ve got you covered. Just open a ticket in our Discord, and our team will work hard to assist you.
Key Features:
🡂 QB-Core & Esx
🡂 Change Theme Color
🡂 Sound Effects
🡂 Call player in support with command
🡂 Player notification
🡂 Modify the freeze of the player & more
🡂 Modify the allowed groups like superadmin who can use the command
🡂 Change the command

| Code is accessible | 50% |
| Subscription-based | No |
| Lines (approximately) | 200 |
| Requirements | ESX or QB-Core |
| Support | Yes |





