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.
- 01Flashlight glint up to 12 m, then a tweezers minigame to bag them
- 02Chain of custody for every bag, linked to MEOS case files
- 03A match only confirms when the marks really line up
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.
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.
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.
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.
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.
More views
Want this on your server?




