Configuration Helps
SS-CommunityJobs Setup & Configuration Guide
SS-CommunityJobs is a community jobs and forced labor script for RedM. It supports city job offices, one-step work tasks, carry jobs, salary tracking, fine reduction, forced labor integration, and optional menu systems.
This guide is written for server owners who want to install, configure, and test the script safely, even without deep Lua knowledge.
Features Overview
SS-CommunityJobs includes:
City-based community jobs menu.
Multiple work types per city office.
One-step jobs such as broom and windows.
Two-step carry jobs with pickup and delivery flow.
Server-side salary tracking until withdrawal.
Forced labor reduction through
SS-Archives.Fine reduction before cash payment.
External opening from scripts such as
SS-IdentityCard.Multi-language support.
Dependencies
Required
SS-Coreoxmysql
Used By Default
MNotifySS-ProgressBar
Menu Support
SS-MenuifConfig.SSMenu = true.vorp_menu/menuapiifConfig.SSMenu = false.
Optional Integrations
SS-ArchivesSS-IdentityCard
If you do not use an optional integration, disable it in config.lua.
Installation
1. Add The Resource
Place the script in your server resources folder:
Keep the resource folder name exactly:
2. Check Start Order
Recommended start order:
If you use vorp_menu instead of SS-Menu, make sure menuapi is started before this resource and set:
3. Optional Integrations
If your server uses SS-Archives and SS-IdentityCard, make sure they are started too:
4. Restart The Server
After checking your config and start order, restart the server and test the main job flow in-game.
Main Files
fxmanifest.lua: Resource manifest.config.lua: Main configuration.l/l.lua: Translations.c/c.lua: Client logic.s/s.lua: Server logic.
Languages
Languages are configured in:
Included languages:
ENROITDEFRESPT
Example:
If an invalid language is selected, the script automatically falls back to EN.
First Configuration
Open:
The file is grouped into clear sections so you can configure it safely without touching code logic.
General Settings
Language: Translation language used by the script.SSMenu:trueusesSS-Menu;falseusesvorp_menu/menuapi.Align: Menu alignment.
Keybind Settings
WorkButton: Prompt key used to start or confirm work.StopButton: Prompt key used to stop working.EnterExitPassenger,RentBallon, andBallonRoutes: Legacy compatibility variables kept for the current script structure.
Integration Settings
SSIdentityCard: Intended integration with the identity office flow.SSArchives: Enables forced labor and archives integration.DecreaseFines: Whentrue, withdrawn salary reduces fines first, then pays the remaining cash.
Blip & GPS Settings
BlipStyle: Style applied to generated job blips.BlipGps: GPS route color used for job destinations.
Office Configuration
All offices and jobs are configured in:
Each city office can contain:
NameDescriptionDistanceBROOMWINDOWSCARRY
Example:
Important fields:
Name: Office title shown in the jobs menu.Description: Office subtitle shown in the jobs menu.Distance: Prompt interaction range.Blip: Blip sprite hash for the job.WorkTime: Progress bar duration in milliseconds.Pay: Random salary range in{min, max}format.ForcedWork: Iftrue, the job reducesSS-Archiveswork tasks first.WorkTitle: Menu label for the job.WorkDesc: Menu description for the job.Locations: Work destinations used by that job.Start: Used byCARRYas the pickup location.Prop: Used byCARRYas the carried object model.
Job Flow
BROOM / WINDOWS
The player opens the menu.
The player starts the selected job.
The script selects a random work location.
The player goes to the work point and presses the work prompt.
The progress bar completes.
Salary is added, or forced labor is reduced.
A new location is selected.
CARRY
The player starts the carry job.
The player goes to the pickup point.
The player presses the work prompt and picks up the goods.
The script selects a random delivery point.
The player delivers the goods.
Salary is added, or forced labor is reduced.
The route returns to the pickup point for the next cycle.
Forced Labor & Fines Logic
If integrations are enabled, the script follows this order:
Forced labor
Fines
Cash
This means:
If the player still has
work > 0inSS-Archives, finishing jobs reduces work tasks first.Once forced labor is finished, salary accumulates normally.
When the player withdraws salary, unpaid fines are reduced first if
DecreaseFines = true.Only the remaining amount is given as money.
Opening The Menu From Another Script
This script exposes a client event:
Arguments:
idnr: Player identity number if your external flow needs it.City name: Must match one key from
Config.Offices.
There is also a client export:
Returns:
trueif that city has at least one configured job.falseotherwise.
Notifications
All notification strings are configured in:
If you want to edit wording or add your own language, do it there.
The default notification function uses MNotify:
Add A New City
Copy an existing city block inside Config.Offices and change only the values:
After adding a city, restart the resource/server and test the menu, prompts, blips, GPS route, payment, forced labor, and fine reduction flow.
Disable A Job Type
Remove that job block from the office or leave it undefined.
Examples:
No
WINDOWSentry means no windows job in that city.No
CARRYentry means no carry job in that city.
Troubleshooting
Menu Does Not Open
Check:
SS-Core.Start order.
City name passed to the open event.
SS-Menuormenuapi, depending on your config.
Player Cannot See Jobs In A City
Check:
The city exists in
Config.Offices.At least one of
BROOM,WINDOWS, orCARRYexists in that office.
Player Works But Receives No Cash
Check:
SSArchives = true.ForcedWork = truein the job config.Whether the player still has
worktasks inss_archives.
Salary Withdraw Gives Less Money Than Expected
Check:
DecreaseFines = true.Whether the player still has unpaid fines in
ss_archives.
Menu Fails When SSMenu = false
SSMenu = falseCheck:
vorp_menu.menuapi.The resource providing
menuapi:getDatais started before this resource.
Recommended Live Checklist
Before going live, confirm:
Language is selected.
Menu system is selected correctly.
Integrations are disabled if missing.
City names are checked.
Job coordinates are tested.
Salary flow works.
Forced labor reduction works.
Fine reduction works.
Editing Rules For Beginners
When editing Lua:
Strings use quotes:
"text".Table entries usually end with a comma:
,.trueenables a feature.falsedisables a feature.Numbers do not use quotes:
100.Coordinates usually look like
{x, y, z}or{x, y, z, heading}.
Bad:
Good:
Last updated