County Services

{:links-list}

This page describes the current project source and resource configuration, whose manifest lists version 1.2.0+. County Services provides AI ambulance, coroner, animal control, tow, police transport, and Medevac services.

INSTALLATION

  1. Extract the downloaded resource folder into your server's resources folder. Keep its name BigDaddy-CountyServices.
  2. Add your product key from your account to key1 under [licensing] in settings.ini.
  3. Keep the bundled vehicle assets, metadata, Lua scripts, DLLs, and HTML files with the resource.
  4. Add ensure BigDaddy-CountyServices to server.cfg.

DO NOT RENAME THE FOLDER.

The script loads files and calls exports using the name BigDaddy-CountyServices.

{:is-danger}

The radial menu and service notification interface are included. BDMenu is optional; start BigDaddy-BDMenu before County Services if you want to use it. The code also includes optional BigDaddy-DeathManager ragdoll handling and limited ESX revive hooks, described below.

HOW TO PLAY

  1. Open the menu with /cs or /county-services, or run a service command below.
  2. Move near the person, animal, or vehicle you want collected. The selected target has an orange marker and an on-screen X prompt.
  3. Press X to select the target. Press Escape to cancel target selection.
  4. Wait for the service vehicle to arrive and collect the target. A service vehicle blip appears on the map, and a temporary speed zone slows or stops nearby AI traffic during scene work.
  5. Use /county-clearcall or Cancel Call in the menu to cancel/clear your call if necessary.

Calls select one target at a time. Finish or clear your current call before requesting another. Nearby calls can be held while another service is working within 50 metres; held calls are rechecked periodically. The coroner target-selection stage also times out after one minute.

People services can target other players or NPCs; the caller cannot select themselves. Animal control selects animal peds. Coroner selection is intended for dead or ragdolled people. Tow selection searches for a nearby vehicle within 10 metres. Always check the highlighted target before pressing X.

Commands

These commands can also be used with Stream Deck or other macro setups.

Command Action
/cs Open the County Services menu.
/county-services Alias for /cs.
/county-ems Select a person for an ambulance.
/county-coroner Select a person for the coroner.
/county-animalcontrol Select an animal for animal control.
/county-tow Select a vehicle for towing.
/county-transport Select a person for police transport.
/county-medevac Select a person for helicopter medical transport.
/county-clearcall Cancel and clear your current call or selection.

Medevac

When the helicopter approaches, a flare marks the proposed landing spot. You have 15 seconds to change it: stand at a clear landing area and press X. A countdown appears in the prompt. Keep the area clear of vehicles, tall props, and obstructions.

If you are being transported

Follow the notification telling you to wait rather than reviving yourself. Once a destination is available, the transport prompt offers Space to skip the ride and move directly there.

Ground medical transport uses the nearest configured hospital; ground police transport uses the nearest configured police station. The current player Medevac path uses a fixed Pillbox helipad destination and a fixed Pillbox ground drop-off/skip location. Editing Hospitals.json does not relocate that helicopter destination.

/cs and /county-services open BDMenu when UseRadialMenu=false and BigDaddy-BDMenu is running. Otherwise, they request the bundled radial menu. UseRadialMenu is not in the supplied INI; its code fallback is false.

Both menus use the installed resource's menu.json. Edit item description values there to rename the service choices. The supplied menu includes all six services and Cancel Call.

These settings belong under [settings] and configure the bundled radial menu:

Setting Supplied value Description
MenuName COUNTY SERVICES Radial menu title.
openKey 170 Default radial opening control, F3.

The bundled HTML closes the radial menu with Escape or Backspace. The radial key is separate from the /cs menu choice: setting UseRadialMenu=false selects BDMenu for the commands but does not itself disable the bundled radial menu.

CONFIGURATION

Hospitals.json and PoliceStations.json

These files list destinations for ground transport. Update them if your server uses custom hospitals or police stations. Use reachable coordinates outside the entrance, with room for vehicles and the transported player. Keep at least one valid entry in each file.

Both files contain an array of named locations. Example using the supplied Mission Row location:

[
  {
    "name": "Mission Row PD",
    "location": {
      "X": 471.4057,
      "Y": -1024.2046,
      "Z": 28.1764
    }
  }
]

The supplied hospital file uses Name; the station file uses name. The JSON reader accepts those property names case-insensitively. Preserve the structure, use numeric coordinates, and keep valid JSON with no trailing commas.

Other metadata and asset files define the supplied vehicles and service behavior. Keep them intact unless you are deliberately replacing compatible assets.

settings.ini

Values below match the supplied resource configuration, rather than the code's fallback values. INI section and setting names are case-insensitive. Restart the resource after configuration changes.

Under [licensing], set key1 to your own product key.

Vehicle settings under [settings]

Model lists are comma-separated spawn names, for example ambulance,e450als. Avoid spaces and ensure every listed model is streamed and compatible with the service's seats, doors, and loading procedure. One model is chosen from the list for each dispatch.

Offsets use X,Y,Z relative to the service vehicle. Livery indices are zero-based. Where a livery setting is read, -1 skips explicitly setting the livery; it does not guarantee a random livery.

Setting Supplied value Description
UseRadialMenu false Prefer BDMenu for /cs when available; true requests the radial menu instead.
transportTransportOffset 0.0,-1.3,1.0 Loading offset read by the police transport crew path. The repeated transport is the actual setting name.
<service>TransportOffset 0.0,-1.3,1.0 Dynamic lookup in the player walk-to-vehicle handler, which is called by police transport. It uses the receiving client's current service value; it is not a general set of working EMS/coroner/animal/tow offsets. Use transportTransportOffset for the confirmed police crew setting.
Framework NONE The exact value ESX enables the ESX ambulance death-status and spawn/reset events in the revive path. This is not a general framework bridge.
UseAcePermissions false Request a startup ACE check on the server. See the limitation below.
AcePermission command ACE name used by that startup check.
policeTransportModels policetransport Police transport vehicle models.
policeTransportLoadingOffset 0.0,-5.5,1.0 Supplied legacy entry; the current police loading path reads transportTransportOffset instead.
policeTransportLiveryIndex 0 Police transport livery.
coronerTransportModels coronerspeedo Coroner vehicle models.
coronerTransportLoadingOffset 0.0,-3.8,1.0 Coroner crew loading position.
coronerTransportLiveryIndex 0 Coroner livery.
animalTransportModels animalcontrol Animal control vehicle models.
animalTransportLoadingOffset 3.0,0.0,0.0 Animal control crew loading position.
animalTransportLiveryIndex 0 Animal control livery.
emsTransportModels e450als Ambulance vehicle models.
emsTransportLoadingOffset 0.0,-3.8,1.0 Ground ambulance crew loading position.
emsTransportLiveryIndex -1 Leave the ambulance's spawned livery unchanged.
medevacTransportModels polmav Medevac helicopter models.
medevacTransportLoadingOffset 0.0,-3.8,1.0 Present in the INI but not read by the current helicopter loading path.
medevacTransportLiveryIndex 1 Medevac livery setting. A helicopter creation path also explicitly sets livery 1, so this is not honored consistently.
towModels flatbed3 Tow vehicle models.
TowTransportLiveryIndex 0 Present in the INI but not read by the current C# livery logic.
towOffsetX -0.0 Sideways offset for the vehicle attached to the tow truck.
towOffsetY -3.0 Front/back offset for the vehicle attached to the tow truck.
towOffsetZ 1.5 Vertical offset for the vehicle attached to the tow truck.
debug true Enable additional diagnostic logging. Set to false to reduce logging; some messages are unconditional.
DesyncKey Supplied with the resource Internal synchronization setting. Keep the supplied value.

Locales

The following entries are supplied under [locales]:

Key Supplied text
OneAtATime You can only call one service at a time and one is still on a call.
NoOneSelected There was no one specified so no call was made.
Searching Searching...
TowThis Tow this vehicle
OnTheWay County Services are on the way
Accident County Services were involved in an accident so they are not coming
WentWrong Something went terribly wrong and County Services are not coming
GotLost County Services got lost and did not make it
NoComplete Something went wrong and County Services were unable to complete the request
NoLandingArea No landing area was found... stand at the landing spot and press
ChangeLanding Landing at flare... to change stand at the landing spot and press
Landing Landing...
Cleared Your County Services call has been cleared
WaitOnTheWay Just wait... do NOT revive. Help is on the way
County County
Transported You are being transported
SkipTrip Press $ to skip the trip and go directly there
CountyServicesTitle County Services
CancelSelection Cancel
TransportPerson Transport this person
TransportAnimal Transport this animal

TROUBLESHOOTING

  • A call is stuck: use /county-clearcall. Escape cancels the target-selection stage; the clear-call command also handles an active call.
  • A custom vehicle will not load or collect a target: check its model name, seats, doors, and loading offsets.
  • Changing a hospital does not change Medevac's destination: the player helicopter path currently uses fixed Pillbox coordinates.
  • Too much console output: Set debug to false in settings.ini and restart the resource.