Suty
Community Service

Commands

Commands

Admin

Command Description
/comserv <id> <count> [reason] Sentence a player to community service. count = number of tasks. reason = optional free-text logged + announced.
/endcoms <id> Release a player from community service immediately. Stripping weapons (if enabled) still happens.

Permissions depend on Config.Permissions — Discord roles, Discord IDs, or ACE groups.

Programmatic API (other resources)

Other resources can sentence a player via export:

exports['suty-sv_sync']:SendToCommunityService(playerSrc, taskCount, reason)

Used by:

  • hl-perfmon — to punish caught vehicle spawners
  • suty-chainsnatch — to punish detected exploiters
  • Your own scripts when you need a non-chat punishment hook
exports['suty-sv_sync']:ReleaseFromCommunityService(playerSrc)
exports['suty-sv_sync']:IsInCommunityService(playerSrc)    -- returns bool, remainingTasks

Player flow (involuntary)

  1. Player gets /comserv'd → teleported to Config.ServiceLocation
  2. Routing-bucketed (alone — friends can't join)
  3. NUI panel shows total task count
  4. Walk to a task marker → ox_lib skill-check sequence → task completes
  5. Repeat until count reaches 0
  6. Released to Config.ReturnLocation, weapons stripped (if enabled)

Escape attempts

If the player walks more than Config.MaxDistance meters from Config.ServiceLocation, they get auto-teleported back AND Config.EscapePenalty tasks are added to their sentence.