← All systems
LIVEPOLICE / FORENSICSCASE 06 / 08

Ballistics lab

The ballistics lab is a FiveM evidence chain for shootings, built for Freedom Roleplay, a Dutch Qbox server. Casings lie on the street, and the lab can tell which weapon fired them.

SERVER
freedomroleplay.nl
STATUS
Live on Freedom Roleplay
STACK
Qbox / ox_inventory / NUI / MariaDB / Blender
BUILT BY
Aaron
UPDATED
Comparison microscope: evidence casing and candidate side by side with rotation and zoom controls and a 93% database score
INTERFACE / COMPARISON MICROSCOPE
60 mincasings stay on the ground
12 mflashlight glint range
6casings per evidence bag
14unique casing-head images
8°rotation tolerance for a confirmed match
AT A GLANCE
01

The problem

Shootings left no trace. Police arrived after the fact with nothing to work on except what witnesses said. Real forensic work starts with the casings: a pistol, rifle or shotgun ejects the empty case after every shot, and the marks on its base tie it to one weapon.

02

Casings on the street

Every weapon that ejects in real life leaves casings: 9 mm, .45, .50, 5.56, 7.62, sniper and shotgun ammunition, dropped to the right of the shooter, also from a car. Revolvers and break-action guns keep theirs. The casings are custom props, brass for pistols and rifles and red shotshells with a brass head, visible to everyone for 60 minutes. They survive a resource restart and show up for players who join later.

Officers on duty who aim a flashlight see brass glint up to 12 metres away. Collecting it is a minigame: grip the casing in the middle with tweezers, carry it to the evidence bag slowly enough that it does not slip, release it over the opening and seal the bag by sliding your fingers along the strip. Casings of the same calibre close together go into one bag, up to six. The sealed bag gets an evidence number, the street and time it was found and the number of casings. The weapon's serial number is never in the bag. That is what the lab is for.

Casing minigame: gloved hand with tweezers carrying a 9 mm casing from the asphalt into an evidence bag
INTERFACE / BAGGING CASINGS WITH TWEEZERS
03

The lab

The first version of the lab was a small menu with a progress bar. It is now a workstation with five tabs: overview, register, ballistics, weapons and lockers.

  • The register lists every bag with where it was found, where it is now and its status, with a full chain-of-custody log: secured, scanned, linked, stored, taken out, handed over, archived.
  • The scanner is a minigame: take a casing out of the bag with tweezers, seat it in the holder, then watch its base being read.
  • The test-fire tank is one too: slide a seized weapon into the tube, fire two shots into the water and move the test casing to the holder.
  • Every new set of marks becomes a W-number. An unknown weapon keeps its W-number until a test shot identifies it, so casings from two shootings can be linked before the gun is found.
  • Evidence can be attached to a MEOS case file, which adds a history line to the file.
Evidence workstation overview with counters, bags and weapons on hand, items to compare and recent chain-of-custody activity
INTERFACE / EVIDENCE WORKSTATION
04

The comparison microscope

The result is not a line of text. The lab lists candidates with a database score and opens a comparison microscope: evidence on the left, candidate on the right, a split line in between. You rotate and zoom the candidate until the firing pin mark, the breech face lines and the ejector scratch run straight across the line. A match only confirms when it is the same weapon and the rotation is within 8 degrees. A wrong candidate and a wrong angle give the same message, so guessing does not work. There are 14 casing-head images, six pistol, four rifle and four shotgun, each with its own marks, so a match has to be seen.

05

Server authority

The server records each shot only from the weapon the inventory knows is equipped, with calibre and serial taken from the item, and rejects points too far from the shooter or too many shots per second. Lab steps run on the server clock with a session token, a distance check and the item on the same slot at every step. Serial numbers of unknown weapons never reach the client. Bags are tracked through inventory moves, so the register knows whether a bag sits with an officer, in a locker or in a car trunk. Everything from the first casing to a confirmed match is written to the server log.

NEXT CASE / 07 Freedom transport A 20-level trucking career where every run ends by reversing a real trailer into a real dock, measured by the server.

Want this on your server?

Your server next?

Got a script in mind, or a server that needs fixing? Reach out on Discord or by mail. I usually respond within a few hours.

Aaron's avatar aarons1454
DISCORD, FASTEST RESPONSE
EMAIL contact@aaron.cv

ENGLISH / DUTCHREMOTE, ASYNCSOURCE INCLUDED

© 2026 aaron.cv contact@aaron.cv Discord aarons1454