PiTyUs.Hire me

Engineering

A checklist for reviewing FiveM resources

A checklist for reviewing FiveM scripts before release: event validation, SQL placeholders, secrets, cleanup, resmon, compatibility, NUI focus and docs.

Updated 9 min readBy PiTyUs · FiveM developer

Overview

Whether you are about to sell a script or install one on a live server, twenty minutes with a checklist catches most of the problems that later cost days: exploitable events, slow loops, leaking tables and hard-coded secrets. Here is the list experienced reviewers run through.

Security

  • Each RegisterNetEvent handler validates arguments and never trusts amounts or prices — see secure server events.
  • Callbacks validated like events — see callbacks.
  • Queries use ? or named placeholders — see SQL injection.
  • Rate limits on actions that pay or query — see rate limiting.
  • No webhooks, keys or admin lists in client/shared files.
  • NUI callbacks do not grant anything the server does not re-check.

Performance

  • Loops sleep when idle; Wait(0) only when drawing or reading input.
  • Distance checks with vectors, not natives in tight loops.
  • No database queries inside per-frame code.
  • resmon idle ≈ 0.00–0.02 ms — see resmon.
  • NUI messages sent on change, not every frame.

Correctness and cleanup

  • local src = source at the top of handlers.
  • Per-player tables cleared on playerDropped — see memory leaks.
  • Entities, blips, zones and NUI focus released on onResourceStop.
  • Handlers registered once, at file level.
  • Errors handled (nil players, failed queries, missing items).

Compatibility

  • dependency / dependencies declared in the fxmanifest.
  • Framework and inventory detected or configurable — see bridges.
  • lua54 'yes' set; no deprecated natives where alternatives exist.
  • Works after restart without a full server restart.

Usability

Frequently asked questions

What should I check before installing a FiveM script?

That its server events validate input, queries use placeholders, it idles near 0.00 ms and it cleans up after players and restarts.

How do I spot an exploitable event?

Look for server events that accept amounts, prices or item names from the client without re-checking them.

Can I review escrowed scripts?

Only the unencrypted parts (config, NUI); test behaviour on a dev server and check resmon.

What is a good idle resmon value?

Around 0.00–0.02 ms for a resource that is not doing anything.

Need this built, not just explained?

Ten years of FiveM work, from Lua to NUI

Custom resources, React NUI, ESX / QBCore / Qbox integration, OneSync performance audits and security reviews — plus the websites and SEO around your server brand.

Related guides