⚙️Configuration
Check the standard Config!
S_CL = {}
S_CL.SpawnCoords = vector3(-1139.2673339844, -2806.7807617188, 27.708736419678) -- Default spawn coordinates
S_CL.Language = "en" -- Set default language to German
S_CL.notifys = "sservice"
S_CL.Settings = {
inSafezone = false, -- players have to be in the safezone to use the commands / keys
spectateExitKey = 38, -- https://docs.fivem.net/docs/game-references/controls/
key = {
keyCode = "F2", -- https://docs.fivem.net/docs/game-references/controls/
enable = true
},
command = {
name = "immigration_ipad",
enable = true
}
}
S_CL.Safezone = {
maxRejections = 3, -- Maximum number of rejections for trying to escape the safezone / bubble
rejectionType = "kick", -- Type of rejection: "kick" or "ban" or "nothing"
bubble = {
-- https://docs.fivem.net/natives/?_0x799017F9E3B10112
radius = 100.0,
color = {r = 255, g = 255, b = 255, a = 0.5}
}
}
S_CL.InformSettings = {
enable = true, -- Enable or disable the information settings
requireMinimumOfficers = true, -- Enable or disable the requirement of a maximum number of officers
maximumOfficerCount = 1, -- Marker/Ped is shown only while officer count is less than this value
type = "ped", -- marker or ped
interaction = "Press ~INPUT_CONTEXT~ to inform an immigration officer.",
interactRadius = 1.5,
keyCode = 38,
coords = vector3(-1092.1124267578, -2827.5295410156, 27.708730697632),
marker = {
type = 2, -- https://docs.fivem.net/docs/game-references/markers/
size = {1.0, 1.0, 1.0},
color = {r = 255, g = 255, b = 255, a = 100},
bobUpAndDown = true,
faceCamera = false,
rotate = true
},
ped = {
model = "a_m_m_prolhost_01", -- https://docs.fivem.net/docs/game-references/ped-models/
heading = 139.54960632324
}
}
S_CL.Actions = {
openSkinMenu = function()
TriggerEvent("esx_skin:openSaveableMenu") -- your custom trigger
end,
resetChar = function()
TriggerEvent("s_einreise:sservice:resetSkin") -- your custom trigger
end,
ban = function(targetId, reason)
TriggerServerEvent("NAME_BAN", targetId, reason) -- your custom trigger
end
}
S_CL.Outfit = {
male = {
{
key = "tshirt_1",
value = 6
},
{
key = "tshirt_2",
value = 0
},
{
key = "torso_1",
value = 11
},
{
key = "torso_2",
value = 0
},
{
key = "arms_1",
value = 11
},
{
key = "arms_2",
value = 0
},
{
key = "pants_1",
value = 24
},
{
key = "pants_2",
value = 1
},
{
key = "shoes_1",
value = 7
},
{
key = "shoes_2",
value = 0
},
{
key = "glasses_1",
value = 5
},
{
key = "glasses_2",
value = 1
},
{
key = "chain_1",
value = 125
},
{
key = "chain_2",
value = 0
},
{
key = "bproof_1",
value = 0
},
{
key = "bproof_2",
value = 0
}
},
female = {
{
key = "tshirt_1",
value = 6
},
{
key = "tshirt_2",
value = 0
},
{
key = "torso_1",
value = 11
},
{
key = "torso_2",
value = 0
},
{
key = "arms_1",
value = 11
},
{
key = "arms_2",
value = 0
},
{
key = "pants_1",
value = 24
},
{
key = "pants_2",
value = 1
},
{
key = "shoes_1",
value = 7
},
{
key = "shoes_2",
value = 0
},
{
key = "glasses_1",
value = 5
},
{
key = "glasses_2",
value = 1
},
{
key = "chain_1",
value = 125
},
{
key = "chain_2",
value = 0
},
{
key = "bproof_1",
value = 0
},
{
key = "bproof_2",
value = 0
}
}
}
S_SV = {}
S_SV.Dimension = 1337 -- Dimension for players who have not entered the game yet
S_SV.DefaultDimension = 0 -- Default dimension for players who have entered the game
S_SV.SpawnOnEnter = vector3(-1037.7705078125, -2737.8142089844, 20.1692943573) -- Spawn coordinates for players who got accepted into the game
S_SV.EnterBypass = {} -- Groups that automaticly enter the game without passing the test
S_SV.Ban = function(playerId)
TriggerEvent("CUSTOM_EVENT:BAN", playerId, "Test not passed") -- => if S_SV.Tests.banOnFail is true, this will be called
end
S_SV.EntryStartup = {
manualStartOnly = false, -- If true, the entry system must be started manually via an event
startupEventName = "custom:StartEntry" -- The name of the event to trigger the startup manually
}
S_SV.InformSettings = {
enableNotify = true, -- Enable or disable the notification settings
playerJoinNotify = true, -- Notify the player when they join the server
groups = {"admin", "support"}, -- Groups that get notified ingame
rateLimit = 30 -- Seconds until the players can inform the officer again
}
S_SV.Commands = {
{
name = "enter",
description = "Teleport to the spawn coordinates",
groups = {"admin", "support"},
coords = vector3(-1065.7994384766, -2798.5014648438, 27.708728790283)
},
{
name = "out",
description = "Teleport to the last position where you entered",
groups = {"admin", "support"}
}
}
S_SV.Item = {
enable = true, -- Enable or disable the item
name = "immigration_ipad" -- Name of the item (same as in the database)
}
S_SV.ActionPermissions = {
["openIpad"] = {"admin", "support"}, -- open the ipad for the player
["goto"] = {"admin", "support", notify = true}, -- teleport to the player
["bring"] = {"admin", "support", notify = true}, -- teleport the player to you
["freeze"] = {"admin", "support", notify = true}, -- freeze the player
["charReset"] = {"admin", "support", notify = true}, -- reset the character of the player
["skinMenu"] = {"admin", "support", notify = true}, -- open the skin menu for the player
["spectate"] = {"admin", "support", notify = true}, -- spectate the player
["lock"] = {
"admin",
"support",
duration = 30,
notify = true -- duration in seconds for the lock
}, -- lock the player
["kick"] = {}, -- kick the player
["sendTest"] = {"admin", "support"}, -- send a test to the player
["viewTest"] = {"admin", "support"}, -- view the test of the player
["enter"] = {
groups = {"admin", "support"}, -- enter the player into the game
bypass = {"admin"} -- allow groups to enter the game without passing the test
},
["addNote"] = {"admin", "support"}, -- add a note to the player
["updateNote"] = {"admin", "support"}, -- update a note of the player
["deleteNote"] = {"admin", "support"}, -- delete a note of the player
["PlayerFiring"] = {"admin"} -- allow the player to fire weapons
}
S_SV.DefaultStatuses = {
-- for the ui and database
success = "Passed",
failed = "Failed",
notFinished = "Unfinished"
}
S_SV.Tests = {
{
value = "test1", -- Unique identifier for the test, used in the database
type = "easy", -- easy, medium, hard for the ui
timeLimit = 90, -- Seconds
maxErrors = 3,
retryAfter = 60, -- Seconds (10 Min)
ui = {
title = "Test Nr.1",
type = "easy" -- easy, medium, hard for the user ui
},
questions = {
{
question = "What does RP mean?",
answers = {
"Roleplay", -- 1
"Real Player", -- 2
"Random Player" -- 3
},
correct = {1} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "Are you allowed to kill someone for no reason?",
answers = {
"Yes",
"No"
},
correct = {2} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "What is Meta Gaming?",
answers = {
"Use information from outside ingame",
"A style of play",
"Make a mistake ingame"
},
correct = {1} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "What is Fail RP?",
answers = {
"Performing unrealistic actions",
"A new server",
"An admin command"
},
correct = {1} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "What means OOC?",
answers = {
"Out of Character",
"Use information outside the game",
"OOC is a shortened word"
},
correct = {1, 3} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
}
}
},
{
value = "test2", -- Unique identifier for the test, used in the database
type = "medium", -- easy, medium, hard for the ui
timeLimit = 60, -- Seconds
maxErrors = 2,
retryAfter = 60, -- Seconds (10 Min)
ui = {
title = "Test Nr.2",
type = "medium" -- easy, medium, hard for the user ui
},
questions = {
{
question = "What does RP mean?",
answers = {
"Roleplay", -- 1
"Real Player", -- 2
"Random Player" -- 3
},
correct = {1} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "Are you allowed to kill someone for no reason?",
answers = {
"Yes",
"No"
},
correct = {2} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "What is Meta Gaming?",
answers = {
"Use information from outside ingame",
"A style of play",
"Make a mistake ingame"
},
correct = {1} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "What is Fail RP?",
answers = {
"Performing unrealistic actions",
"A new server",
"An admin command"
},
correct = {1} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "What means OOC?",
answers = {
"Out of Character",
"Use information outside the game",
"OOC is a shortened word"
},
correct = {1, 3} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
}
}
},
{
value = "test3", -- Unique identifier for the test, used in the database
type = "hard", -- easy, medium, hard for the ui
timeLimit = 30, -- Seconds
maxErrors = 1,
retryAfter = 60, -- Seconds (10 Min)
ui = {
title = "Test Nr.3",
type = "hard" -- easy, medium, hard for the user ui
},
questions = {
{
question = "What does RP mean?",
answers = {
"Roleplay", -- 1
"Real Player", -- 2
"Random Player" -- 3
},
correct = {1} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "Are you allowed to kill someone for no reason?",
answers = {
"Yes",
"No"
},
correct = {2} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "What is Meta Gaming?",
answers = {
"Use information from outside ingame",
"A style of play",
"Make a mistake ingame"
},
correct = {1} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "What is Fail RP?",
answers = {
"Performing unrealistic actions",
"A new server",
"An admin command"
},
correct = {1} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
},
{
question = "What means OOC?",
answers = {
"Out of Character",
"Use information outside the game",
"OOC is a shortened word"
},
correct = {1, 3} -- Index for answers starts at 1 (For more than 1 correct answers: {1,2,3})
}
}
}
}
S_SV.Webhook = {
Enabled = true,
Username = "Immigration-System",
Avatar_URL = "https://cdn-icons-png.flaticon.com/512/684/684908.png"
}
S_SV.WebhookTexts = {
PlayerInformed = function(playerName, playerId)
return {
url = "https://discord.com/api/webhooks/1384623544738250923/Vd6Zvyjp90UxcN0MVtwcQo-1jqJ6_MmA2sAd0pbsuLi5Pi8bBPi3mMeqZvJrF2Ervm_r",
pingRole = true,
roleId = "1381253912090382366",
title = "📢 Immigrations Information",
description = ("**%s [%s]** is waiting for the entry check."):format(playerName, playerId),
color = 3066993 -- green
}
end,
PlayerJoined = function(playerName, playerId)
return {
url = "https://discord.com/api/webhooks/1384623544738250923/Vd6Zvyjp90UxcN0MVtwcQo-1jqJ6_MmA2sAd0pbsuLi5Pi8bBPi3mMeqZvJrF2Ervm_r",
pingRole = true,
roleId = "1381253912090382366",
title = "🛬 A new player has arrived",
description = ("**%s [%s]** has joined the server and is now at the airport."):format(playerName, playerId),
color = 3447003 -- blue
}
end,
TestSuccess = function(playerName, playerId, testName)
return {
url = "https://discord.com/api/webhooks/1384623544738250923/Vd6Zvyjp90UxcN0MVtwcQo-1jqJ6_MmA2sAd0pbsuLi5Pi8bBPi3mMeqZvJrF2Ervm_r",
pingRole = true,
roleId = "1381253912090382366",
title = "✅ Immigration test passed",
description = ("**%s [%s]** has successfully passed the test **%s**."):format(
playerName,
playerId,
testName
),
color = 3066993 -- green
}
end,
TestFailed = function(playerName, playerId, testName)
return {
url = "https://discord.com/api/webhooks/1384623544738250923/Vd6Zvyjp90UxcN0MVtwcQo-1jqJ6_MmA2sAd0pbsuLi5Pi8bBPi3mMeqZvJrF2Ervm_r",
pingRole = true,
roleId = "1381253912090382366",
title = "❌ Immigration test failed",
description = ("**%s [%s]** has failed the **%s** test."):format(playerName, playerId, testName),
color = 15158332 -- red
}
end
}
Last updated