All work

Live

Forensics and crime scenes

A detective system for a police roleplay server: bodies that persist, evidence that holds up, and case files detectives can search. I inherited it half-built and broken, and turned it into a working system.

Role
Took over an unfinished plugin, then rebuilt, extended and maintained it
Stack
Lua (GLua), NutScript, MySQL
Context
Police and criminal roleplay on Diverge Networks
Status
Live, in use since December 2024

The problem

When I joined Diverge Networks, the server already had a forensics plugin, written by an earlier developer and never finished. Bodies duplicated or vanished, evidence didn’t survive a map change, and some fingerprints couldn’t be lifted at all. Police and criminal roleplay leaned on it anyway.

Over nearly two years and about 70 commits, I turned it into the system the roleplay needed: crime scenes that persist, evidence that holds up, and case files detectives can actually work from. I kept the original author’s credit in the code.

Bodies and crime scenes

Video coming soon

A detective at a test crime scene: inspecting the body, bagging a bullet casing, then lifting a fingerprint onto a card.

assets/projects/forensics/crime-scene.mp4 (20 to 30 seconds)

Working a scene.

Screenshot coming soon

The inspect-body panel on a test character, showing time of death, wounds and the weapons carried.

assets/projects/forensics/inspect-corpse.png (tight crop to the panel)

What a body tells you.

Video (optional) coming soon

A criminal burning a body with gasoline, or zipping it into a body bag.

assets/projects/forensics/body-disposal.mp4 (about 15 seconds)

Getting rid of the evidence.

Evidence

Screenshot coming soon

A fingerprint card after lifting a print, with its edited backing card.

assets/projects/forensics/fingerprint-card.png (tight crop)

A lifted print.

Case files and the database

Screenshot coming soon

The forensics database with search results, filled with test data.

assets/projects/forensics/case-database.png (tight crop to the panel)

Searching the database.

Screenshot coming soon

A detective case file with evidence attached, test data only.

assets/projects/forensics/case-file.png (tight crop to the panel)

A case file.

Built for a live server

Code excerpt coming soon

Lifting a print: the one-time server authorisation, the distance check and the server-side lookup.

assets/excerpts/lift-print.lua

Adapted from production code, lightly edited for readability. Never enough to rebuild the system.

Still being untangled

Some of the original design is still underneath, and it still surfaces as the occasional odd bug. Each fix is a chance to replace another piece of it.