~/projects $ cat fiveprs/README.md
FivePRS
FiveM scripts·Mar 2026 – Present·● beta·Creator·31last push October 27, 2026
Free, open-source public response framework for FiveM: police, fire and EMS roleplay in one resource, with server-side dispatch, jurisdictions, records and an in-car terminal.
Why it exists#
Public safety roleplay on FiveM usually means stitching together a dispatch script, a records system, an MDT, station scripts and a pile of department configs from different authors. FivePRS puts police, fire and EMS roleplay in one free, open-source resource, so server owners install one thing and developers extend one API.
What it does#
- Server-side dispatch. The server generates calls and assigns them to available units in their own jurisdiction.
- Territories and agencies. Patrol areas are map polygons assigned to agencies, each with its own callsigns, uniforms and vehicles. Police Department, Sheriff's Office and Fire & Rescue are available; State Troopers is planned.
- Records. Look up people and plates, and issue citations, arrests and warrants.
- In-car terminal. Apps for duty, dispatch, records, characters, licenses, vehicles, 911 and admin.
- Civilian life. Characters, licenses, vehicle registration and 911 calls.
- Stations. Police, fire and hospital stations with armories, locker rooms and garages.
- Permissions and audit log. ACE-based access control, plus a trail of duty, XP and admin actions.
How it's built#
The core is C#, running on Windows and Linux FXServer for GTA V Legacy. It uses SQLite with no setup, and supports MySQL 8 and MariaDB 10.6+ through oxmysql.
It's designed to be extended without forking:
- Drop-in callouts. Write a callout in C#, put the DLL in a folder, and the core loads it without a recompile.
- Terminal apps in any language. Subclass
TerminalAppin C#, or register an NUI page from any resource withexports.fiveprs:registerApp(...). - Self-updating. The resource tells you when a new release is out and can download it for you.
Before each release, a smoke test boots the package on a real Linux FXServer with SQLite, then with MySQL and MariaDB.
FivePRS is in public testing and licensed under AGPL-3.0.
What I learned#
FivePRS is how I'm learning C#. Most of my FiveM work has been Lua, but a framework this size needed real types, real tests and a compiled plugin model. Building the core in C# taught me .NET from the ground up: class libraries, dotnet test, and targeting the older .NET runtime FiveM's Legacy build still uses.
Design the extension points first. A public response framework is only as good as what other people can build on it. Drop-in callout DLLs, TerminalApp subclasses and a Lua registerApp export mean server owners and developers can add content without forking the core. That decision shaped the whole architecture.
Test on the real thing. FiveM behaves differently across Windows and Linux, SQLite and MySQL, and Legacy and Enhanced builds. The pre-release smoke test boots the actual package on a real Linux FXServer against each database, because the bugs that matter only show up there.
