Community Service
Installation
Installation
1. Drop the resource
Extract suty-sv_sync into resources/[suty]/suty-sv_sync.
2. Ensure in server.cfg
ensure ox_lib
ensure oxmysql
ensure ox_inventory
ensure suty-sv_sync
3. Database
Config.Database.autoInstall = true (default) creates the tables on first start. If you prefer manual SQL, set it to false and run the SQL in [INSTALL SQL]/ against your DB.
4. Set framework + locations
config.lua:
Config.Framework = 'qbx' -- 'qbx' | 'qb' | 'esx'
Config.ServiceLocation = vector3(3083.0, -4722.0, 15.26) -- where players spawn on assignment
Config.ReturnLocation = vector3(276.72, -346.45, 44.92) -- where they spawn on release
The default coordinates put players at a remote desert area — change to match wherever you want service to happen.
5. Permissions
Choose Discord roles (recommended) or ACE groups:
Config.Permissions = {
useDiscordWhitelist = true, -- true = Discord, false = ACE
discordRoles = { '1320234519873323082' }, -- Discord role IDs
discordIDs = { '878077871443288086' }, -- specific Discord user IDs
allowedGroups = { 'mod', 'admin', 'god' }, -- used when useDiscordWhitelist = false
}
If using Discord, also fill out:
Config.Discord = {
botToken = 'YOUR_DISCORD_BOT_TOKEN',
guildId = 'YOUR_DISCORD_SERVER_ID',
}
The Discord bot needs View Server Members permission to look up roles.
6. Configure task locations
Config.TaskLocations = {
vector3(3084.5, -4725.5, 15.26),
vector3(3092.0, -4722.0, 15.26),
...
}
Add as many coordinates as you want — the script picks one randomly per task.
7. Verify
/comserv <serverid> 10 Testing
The target player should teleport to the service location, get a routing bucket, and see the panel with 10 pending tasks.
