Developer resources
Framework documentation, defensive coding practices and field-tested references for C# development against LSPDFR and RAGE Plugin Hook.
Primary documentation.
Defensive engineering.
- 01
Guard every entity access with null + Exists() checks in Process(), event handlers and End(). The game can cull peds, vehicles and blips at any time; unguarded access is the #1 cause of LSPDFR plugin crashes.
- 02
Clean up in BOTH OnCalloutNotAccepted() and End() — End() also runs when a callout is aborted. Dismiss() peds and vehicles so they return to the ambient population; Delete() blips.
- 03
Keep callout state in instance fields, never static fields — statics leak state between callout runs.
- 04
Share one static readonly Random for randomization. Random.Next's upper bound is exclusive, so use Next(array.Length), not Next(array.Length - 1).
- 05
Never block Process(). Run timed dialogue in GameFiber.StartNew and gate one-shot events behind bool flags so they cannot re-fire every frame.
- 06
Beware same-tick state transitions: changing state mid-Process can make checks later in the same block unreachable on every future tick.
Repositories worth studying.
- UnitedCalloutsThe primary reference for LSPDFR callout packs. 25 callouts, MIT licensed, README + wiki, 19 releases (latest Aug 2024), 1.5M+ downloads on LCPDFR.com.
- Adam69Callouts (Ultimate Backup / Stop The Ped)Actively maintained (2026) LSPDFR callout pack, MIT/AGPL-3.0. The best reference for integrating third-party plugins into a callout.
- EmsPlusBest modern example of overall RPH plugin architecture (an EMS/paramedic plugin, standalone from LSPDFR).
- 1803 Park Ranger CalloutsA minimal, clean LSPDFR callout-pack skeleton — the easiest of these to read end to end.
External reference index.
RAGE Plugin Hook
The main runtime used by many GTA V and LSPDFR plugins. Start here.
LSPDFR Development
Building LSPDFR plugins, callouts, police features, agency integrations and supporting systems.
Community Resource Collections
Pages that collect development links, references, spreadsheets, forum posts and community resources.
Open Source Examples
Repositories worth studying to learn how other developers structure GTA V, RPH and LSPDFR plugins.
UI and Menu Libraries
In-game menus, prompts, notifications, instructional buttons and Rockstar-style UI.
Natives and Low-Level References
Native functions, hashes, controls and engine-level behaviour not directly wrapped by RPH or LSPDFR.
World, Zone, Scanner and Location Data
Realistic callout placement, jurisdiction logic, scanner audio, patrol areas and world-aware plugins.
Ped, Weapon and Damage References
Spawning characters, assigning weapons, creating suspects, backup units, ambient scenes and injury effects.
Standards, Polish and Design
Small but useful resources for making plugins feel consistent with the wider LSPDFR ecosystem.
Map, Asset and File Tools
Working with GTA V files, maps, models, interiors, textures, archives, placements and coordinates.
General GTA V Scripting
For non-LSPDFR GTA V scripts or learning broader GTA V scripting concepts.
Suggested learning path.
- 01Learn the basics of C#.
- 02Read the RAGE Plugin Hook documentation.
- 03Build a small test plugin.
- 04Learn how GameFibers work.
- 05Read the LSPDFR API examples.
- 06Build a basic callout.
- 07Study open-source plugins.
- 08Add UI with RAGENativeUI or LemonUI.
- 09Use NativeDB for lower-level GTA functions.
- 10Use CodeWalker, OpenIV and Sollumz for world, file and asset work.
- 11Build reusable helper code before creating multiple large plugins.
A note on old documentation.
GTA V modding resources are spread across official docs, GitHub repositories, old forum posts, spreadsheets and community tools. Some older resources are still extremely useful, but always test against your current GTA V, RAGE Plugin Hook and LSPDFR versions. This list focuses on single-player GTA V modding, RAGE Plugin Hook and LSPDFR development.