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
/calltowdispatch 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
- Drop the
CES_TowCADfolder into your server'sresourcesdirectory. - Import
sql/install.sqlinto your database. This creates the businesses,
staff, vehicles, vehicle-edit-history, and calls tables. - Add both lines above to
server.cfgin that order. - 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.towownersReplace 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 = falseWith 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 theF6keybind β 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 = falseinconfig.luato 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.
Was this article helpful?