Frequently Asked Questions

1. How does the multiplayer crew system work?

Every cleaner automatically has a personal crew lobby.

  • Inviting Partners: The crew leader can open the in-game dashboard (default key: F7) and invite a nearby player (within 10m) who has the required job. The job supports 1 to 2 players per crew.
  • Payout Equity: In the Lobby tab, members manage their profit percentage shares. The total sum of all member shares must equal exactly 100% before the leader can start the shift.
  • Synchronized Route: When the leader initiates the shift, both crew members are assigned to the exact same crime scenes and service vehicle.
  • Shared Progression: As one player scrubs a blood pool or disables a security alarm, the task status updates in real time for their partner, updating both players' task checklists and HUD trackers.

2. Can players perform the job completely solo?

Yes! If a player chooses not to invite anyone, their crew lobby consists of just themselves with a 100% payout share. They can start the shift, get their assigned service van, complete all crime scenes, and collect 100% of the route earnings upon returning to base.

3. What happens if a player disconnects or crashes mid-shift?

The script features an intelligent Ghost Lobby & Reconnect Protection System:

  • When a cleaner disconnects, they are flagged as a "ghost" (isOffline = true), and the lobby continues without resetting.
  • Their earned task progress and shift earnings are safely preserved in the lobby pool (pendingPayment).
  • The remaining partner can continue completing the crime scene.
  • When the disconnected worker rejoins the server, the script recognizes their active lobby membership and immediately pushes a synchronization event to restore their active route, vehicle keys, and completed task states.

4. How do players unlock and work the illegal Shady Job route?

  • Unlock Requirement: Players must complete a configurable number of legal cleanup shifts (configured via illegalJob.requiredCourses in sh_config.lua, default: 20 shifts).
  • The Mysterious Contact: Once the threshold is met, the cleaner receives an anonymous SMS notification on their phone (17mov_phone, lb_phone, or popup notification).
  • Secluded Meeting: A map blip marks the Shady Contact NPC located in a secluded back alley.
  • High-Risk Cover-Ups: Accepting mob cleanup contracts sends cleaners to dangerous crime scenes with potential police dispatch triggers and high stakes. In return, all payouts feature a 2.0x cash multiplier!

5. Why are Hazmat Suits required and how do players equip them?

Handling biohazard contamination, chemical blood splatters, and decomposing evidence without protective equipment poses extreme health hazards:

  • Approach the company van (burritocsc).
  • Use your target interaction eye (ox_target / qb-target) to select Put on Hazmat Suit.
  • The cleaner instantly changes into an airtight biohazard suit with respirator mask and goggles.
  • Once the crime scene is sanitized, return to the van to switch back to standard Workwear.

6. How do I create new crime scenes and place tasks in-game?

Administrators can create new scenes entirely in-game using the /csctaskmanager command:

  1. Stand at the desired crime scene location (or the entrance of an interior MLO).
  2. Choose Create New Scene and enter a name.
  3. Select Add New Task and pick one of the 6 minigame types.
  4. Position the task using the 3D Visual Task Creator with raycast surface snapping.
  5. Save the task and use Debug Load Scene to test it immediately without restarting the server!

7. Which Frameworks, Targets, Phones, and Dispatches are supported?

  • Frameworks: qbx_core (QBox), qb-core, es_extended (ESX Legacy / 1.final).
  • Target Systems: ox_target, qb-target, qbx-target.
  • Dispatch Systems: qb_dispatch, ps_dispatch, cd_dispatch, or none.
  • Phone Systems: 17mov_phone, lb_phone, or none.
  • Notifications: ox_lib, bs-advnotifications, and framework defaults.
  • Custom Frameworks: The entire bridge/ directory is 100% unencrypted, allowing you to adapt the resource to any custom core in minutes.

8. Why is add_ace resource.bs-crimescenecleanerjob command.add_ace allow required?

FiveM's security engine blocks server scripts from running ExecuteCommand('add_ace ...') unless the resource itself has been granted permission to manage ACEs. Since bs-crimescenecleanerjob dynamically links the serverConfig.adminPermission group to crimescenecleanerjob.admin upon boot, adding add_ace resource.bs-crimescenecleanerjob command.add_ace allow in server.cfg prevents permission rejection.