CES_TowCAD

#CES_TowCAD

CES_TowCAD is a standalone tow & impound dispatch CAD for FiveM β€” no ESX or
QBCore required. Any number of tow companies can run on the same server side
by side, each with their own staff, branding, and fee schedule, behind a
shared business directory homepage.

This guide covers installing the script, setting it up for the first time,
using it day to day, and fixing the handful of issues almost everyone runs
into once.

#What's included

  • A homepage listing every tow business on the server, with a way for
    permitted players to create new ones
  • In-game ownership: whoever creates a business owns it, hires staff, and
    edits its branding and fee schedule β€” no server.cfg editing required
  • A full impound workflow β€” intake, active yard, lookup, fee calculation,
    and release β€” scoped per business
  • A public /calltow dispatch system with on-duty tracking, map blips, and
    a sound alert for staff
  • Photo evidence, repeat-offender flags, an edit/void audit trail, and
    police/legal holds on records

#Requirements

  • oxmysql β€” required for all
    database access. Make sure it's started before CES_TowCAD in your
    server.cfg:

    ensure oxmysql
    ensure CES_TowCAD

#Installing it

  1. Drop the CES_TowCAD folder into your server's resources directory.
  2. Import sql/install.sql into your database. This creates the businesses,
    staff, vehicles, vehicle-edit-history, and calls tables.
  3. Add both lines above to server.cfg in that order.
  4. Decide who can create a tow business (see the next section), then start
    the resource.

Upgrading from an older version of CES_TowCAD? See
Troubleshooting: "Unknown column 'business_id'"
below β€” this is the single most common issue people hit on an update, and
it takes one minute to fix.

#First-time setup: who can create a business

Only players holding a specific permission can create a new tow business
from the homepage. In server.cfg:

add_ace group.towowners towcad.createbusiness allow
add_principal identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx group.towowners

Replace the identifier with the license identifier of whoever should be
allowed to found a company, and add one add_principal line per person (or
point it at a permission group your server already manages).

Don't want to deal with permissions right now? Open config.lua and set:

Config.RequireAcePermission = false

With this off, any player can create a business from the homepage β€” no
ACE setup needed. Good for testing or a small/solo server. Flip it back to
true once you're ready to lock it down.

Everything else β€” who can work at a business, and what it's called, themed,
and charges β€” is not controlled by ACE at all. That's all handled
in-game by each business's owner (see below).

#Using it

  • Open the CAD with /towcad (or the F6 keybind β€” both configurable in
    config.lua).
  • Opening it always shows the homepage first: every business on the
    server, who owns it, and how many vehicles are in its yard.
  • Click a business you're staff or owner of to enter it. Clicking one you
    don't work at just tells you so β€” there's no way to peek into another
    company's yard.

#Creating a business

If you have permission (see above), a + Create Business button appears
on the homepage. Fill in a name, subtitle, accent color, and starting fee
schedule, and you're in β€” as that business's permanent owner.

#Running a business

Once inside a business, the tab bar covers everything:

Tab What it's for
Yard Every vehicle currently impounded by this business, filterable and sortable, with a live fee total.
Calls Incoming tow requests β€” see Dispatch & calls.
New Intake Add a vehicle to the yard. Plate and reason are required.
Lookup Search this business's records, impounded or already released.
Fee Calc Quote a fee without creating a record β€” handy for a phone inquiry.
Release Release a vehicle, log who it went to, and lock in the fee at that moment.
Staff Who owns and works here, and (owner only) hiring/firing.
Settings This business's name, color, and fee schedule β€” read-only for staff, editable for the owner.

Hiring staff: as the owner, open Staff, pick someone currently
online from the dropdown (or enter their identifier if they're offline),
and they're in β€” no restart, no server.cfg. Firing someone removes
their access immediately. The owner themselves can never be fired; only a
direct database edit changes who owns a business.

Editing your business: name, subtitle, accent color, and the full fee
schedule (hook fee, daily storage, admin fee, grace period) are all
editable from Settings β€” changes apply immediately for every staff
member.

#Dispatch & calls

Any player can request a tow with /calltow <reason> β€” no permission
needed by default, the same way they'd call a real company.

  • Pending calls are a shared queue visible to every on-duty operator
    across every business β€” whichever company accepts first gets the job.
  • Toggle ON DUTY in the header to receive notifications, a sound alert,
    and map blips for new calls. You don't need to be on duty to accept a
    call that's already visible, just to be proactively notified of new ones.
  • Accept claims it and drops a waypoint/blip. Tow Vehicle jumps
    straight to New Intake with the location pre-filled and auto-closes the
    call once you submit. Resolve closes it without an intake. Cancel
    is available for bogus calls.
  • Unanswered calls auto-expire after Config.Calls.autoExpireMinutes
    (20 minutes by default) so the queue doesn't fill with dead calls.

#Troubleshooting / FAQ

#The "+ Create Business" button isn't showing up

This almost always means nobody has been granted
Config.CreateBusinessAcePermission (towcad.createbusiness by default) β€”
it's a new, separate permission, not the same as any older ACE
permission this script may have used in a previous version. Either:

  • Grant it to yourself in server.cfg (see
    First-time setup above), or
  • Set Config.RequireAcePermission = false in config.lua to let anyone
    create a business while you're testing.

#Unknown column 'business_id' after updating

If your server console shows oxmysql errors like:

Unknown column 'business_id' in 'where clause'

your ces_towcad_vehicles (or ces_towcad_calls) table was created by an
older version of this script, before businesses existed. CREATE TABLE IF NOT EXISTS in install.sql never modifies a table that already exists, so
the new column has to be added by hand β€” a 30-second fix:

ALTER TABLE ces_towcad_vehicles ADD COLUMN IF NOT EXISTS business_id INT UNSIGNED NOT NULL DEFAULT 0 AFTER id;
ALTER TABLE ces_towcad_calls ADD COLUMN IF NOT EXISTS business_id INT UNSIGNED DEFAULT NULL AFTER id;

No resource restart needed. If you had vehicles in your yard from before
this update, they'll land at business_id = 0 (not owned by any business
yet) β€” point them at whichever business should own them:

SELECT id, name FROM ces_towcad_businesses;
UPDATE ces_towcad_vehicles SET business_id = <the id you want> WHERE business_id = 0;

#Release is blocked and won't confirm

The vehicle has a police/legal hold on it. Clear the hold from the
Edit modal on that vehicle's row (Yard or Lookup) β€” the hold reason
stays on record even after it's cleared.

#A player says they can't do anything inside a business

They're not staff there. Being able to see a business on the homepage
doesn't mean you can operate it β€” the owner needs to hire them from that
business's Staff tab first.

#The Capture Screenshot button isn't showing on intake

That button only appears when
screenshot-basic is
installed and running, and Config.PhotoEvidence.autoCapture is true
in config.lua, and Config.PhotoEvidence.uploadUrl is set to a real
webhook URL. Without all three, the plain paste-a-link field is shown
instead β€” that's expected, not a bug.

#Configuration reference

Everything tunable lives in config.lua, split into two kinds of setting:

  • Network-wide β€” branding shown on the homepage, the visual theme,
    reason presets, calls behavior, photo evidence, and every user-facing
    string (for translation).
  • Per-business defaults β€” the starting fee schedule and accent color
    offered when someone creates a business. After creation, each business's
    own values (editable in its Settings tab) take over completely.

#Support

Run into something this page doesn't cover? Reach out with your server
console output and a description of what you were doing when it happened β€”
that's almost always enough to diagnose it quickly.

#Changelog

v1.0.0 β€” Initial public release: homepage & multi-business platform,
owner/staff hiring, per-business branding & fee schedules, /calltow
dispatch with on-duty tracking, photo evidence, edit/void audit trail, and
police/legal holds.

No ratings yet