OhLiamR - Framework
— $34.99
per month
OhLiamR Framework
A complete, standalone roleplay framework for vMenu servers.
No ESX. No QBCore. No dependency spaghetti. Three resources, one database,
and everything a serious RP server needs on day one.
Built for communities that run vMenu and want real structure — characters,
Discord-whitelisted departments, automatic patrol logging, a supervisor
panel, jail, and a modern interaction system — without inheriting a
framework that dictates the rest of their server.
PREVIEW VIDEO
Contents
| Resource |
What it is |
ohliamr-core |
The framework: characters, departments, chat, duty, jail, supervisor panel, LEO mechanics |
ohliamr-target |
The targeting eye — a modern, camera-driven interaction system |
ohliamr-shotspotter |
Gunfire detection with realistic urban/rural behaviour |
Feature list
Character selection
The first thing a player sees, the moment they load in.
- Modern glass and gradient UI with animated backdrop, department-
coloured cards, staggered entrance animations and frontend sound feedback
- Create, edit and delete characters — first and last name, date of
birth, gender, height, and department
- Configurable slot limits and a minimum character age
- Playtime tracking per character, with "last seen" timestamps and a
LAST PLAYED ribbon on your most recent character
- Live server pulse — total players online plus a per-department
breakdown in each department's colour, so you can see what's happening
before you even pick a character
- Current AOP displayed alongside the online counts
- Copyable quick links for your website, CAD/MDT and penal code
- Locked departments are visible but greyed out with a padlock, so
players know what exists and what to apply for
- Refresh button re-checks Discord roles instantly after a promotion —
no reconnect needed
Departments and whitelisting
- Fully owner-defined departments. Add, remove or reorder freely — each
has an id, label, accent colour used across the entire UI and chat, and
its own spawn points
- Discord role whitelisting per department. An empty role list means
open to everyone (civilians); admin roles unlock everything
- Enforced server-side at character creation, editing and at spawn
time — losing a role locks the character out even if it already exists
- Role caching keeps you well inside Discord's rate limits, with a
configurable cache window and graceful fallback if the API hiccups
- Per-department flags for emergency services, law enforcement, medical,
radio net, blip colour and supervisor roles
Spawning
- Spawn picker with Last Location (auto-saved position), department
spawn points such as precincts and stations, and shared public spawns
- Cinematic skycam descent into your chosen spawn, with a
"DEPLOYING TO…" transition overlay
- Clean spawn state — story peds are swapped to a freemode model and
every leftover switch-camera artefact (timecycle modifiers, focus, stuck
switch state) is cleared, so the world looks stock however you change
your ped later
Chat and roleplay commands
Character names replace Steam names everywhere, with the department in
brackets so scenes stay readable.
- Slick transparent chat theme — compact window, modern Inter font,
styled input and command suggestions. Applied automatically; no edits to
the chat resource
- Plain messages post as Global OOC by default, so nobody accidentally
broadcasts in character
- Leaked slash commands are dropped instead of echoing into chat
| Command |
Effect |
/me <action> |
Proximity emote — blue character name, white action text, and the distance in metres shown per receiver |
/gme <action> |
Global emote, seen server-wide |
/ooc <msg> |
Proximity out-of-character (blue) |
/gooc <msg> |
Global out-of-character (green) |
/911 <msg> |
Emergency call in red — only emergency departments see it — with the caller's street and a map blip |
/911a <msg> |
Anonymous 911 — no name, no location, no blip |
/r <msg> |
Department radio. Departments sharing a radio net (LSPD/BCSO/SAHP on LEO, SAFD on FIRE) hear each other |
/units |
Lists every emergency unit on duty with name, department and id |
/id |
Shows your ID card to nearby players, with a live mugshot of your ped |
/unescort |
Let go of whoever you're escorting |
/logout |
Saves and returns you to character selection |
| `/priority start |
end` |
/aop <area> |
Staff: set the Area of Play |
/priority <mode> |
Staff override: active, hold, cooldown [min], clear |
/supervisor |
Opens the supervisor panel for your department |
/hospital |
Medical: opens hospital admissions |
The targeting eye (ohliamr-target)
A modern interaction system that feels like a AAA game, not a menu.
- Hold Left ALT (rebindable) and a crosshair locks to the centre of your
screen, following your camera as you look around
- Aim at something interactable and a radial menu pops in around it with
a scale-and-fly-in animation
- Right-click summons the cursor and freezes the camera; the menu then
stays open even if you release ALT. Pick an option, or dismiss with a
click on empty space, ESC, or a tap of ALT
- Options space themselves evenly — four make a clean cross, five or six
spread symmetrically
- No player names are ever shown, by design — knowing who someone is
should come from roleplay, not a UI label
- Delta-throttled updates keep it light on frames
- Never gets stuck on screen — every path out, including another UI
opening on top of it, tears it down
On vehicles: open or close the exact part you're looking at — trunk,
hood, or any individual door, resolved by bone rather than by guesswork.
Locked vehicles refuse. Rear doors also offer Unseat when someone is
actually sitting behind them.
Extensible: any resource can register its own interaction points with a
single export.
Law enforcement mechanics
Every action is validated server-side; the eye only asks.
- Cuff / Uncuff with paired arrest animations on both officer and suspect
- Breakout minigame — soft-cuffed suspects get one timed attempt per
arrest, starting on its own. Nail the timing and they slip the cuffs. Slip
out twice and the third arrest applies hard cuffs: no minigame, no
escape. A proper uncuff by an officer resets the chain
- Escort — the suspect's legs walk along with you, and the officer is
capped at walking pace until they let go
- Search lists everything in the suspect's weapon wheel
- Frisk is the quick version: it never names anything, it just tells you
whether you felt something. Long guns always give themselves away, bulky
items usually do, small ones often don't
- Badge presentation — a presenting animation plus a gold-star badge card
(name, rank, badge number, department) shown to the civilian
- Seat and unseat restrained people in vehicles
ID system
Built around how a real traffic stop actually works.
/id shows your card to everyone nearby, complete with a live mugshot
captured from your ped
- Give ID — a civilian in a car can hand their ID to the officer outside.
Both sides play a hand-over emote
- The officer then physically holds the card, pinned on their screen
(K to tuck it away or pull it back out)
- The civilian cannot show or give their ID while someone else has it.
Run from the stop and your ID is still in the officer's hands
- Return ID hands it back. Disconnects return cards automatically
- Context-aware: civilians give their ID to police and show it to
other civilians — never both
Duty and patrol logging
Retire the Google Form.
- Emergency personnel clock in at a duty desk through the targeting eye
(desks are fully configurable for custom interiors)
- Going on duty unlocks the LEO mechanics and equips the department
loadout (weapons and armour, configurable per department)
- A patrol log opens automatically and closes when they clock out
- Crashing or leaving always closes the log, marked as
Disconnected —
time is never lost and never inflated
- Live unit blips: on-duty units see each other on the map, coloured by
department and labelled with the character name, never the Steam name
Supervisor panel
- Opened with
/supervisor, gated by per-department Discord supervisor
roles, admins, or an ace permission
- Scoped to the character you're currently playing — an LSPD supervisor
on their BCSO character sees BCSO only
- Themed in the department's colour way, from the header glow to the
table highlights
- At-a-glance stats: members, on duty now, current-month hours, pending
reviews
- Searchable roster with rank, live duty status, and 7-day, current-month
and last-month patrol hours plus last patrol time
- Per-officer detail: total hours, full patrol history, and supervisor
notes
- Void and restore patrol logs — voided time is removed from every
total, so a bad session can be corrected cleanly
- Add and delete supervisor notes, attributed and timestamped
- Rank management for promotions and demotions
- Use-of-force reports filed by on-duty personnel at precinct records
computers, then reviewed here — approve and sign off, or deny, with the
reviewing supervisor's name and timestamp recorded
Jail and hospital
- Booking computers next to the cells, opened through the targeting eye
by on-duty LEO. Positions are configurable for any interior
- Lists everyone online by character name, server id, and Steam name in
brackets
- Set a sentence in months (1 month = 1 real-life second) and a reason
- The full sequence: the suspect is uncuffed, hears the cell door
slam, is taken to the mugshot room where they pose with the booking
board under a scripted camera with paparazzi flashes and a sentence
banner, change into prison clothes, and are moved to Bolingbroke
with an on-screen countdown and a containment radius
- Early release is one click if something went wrong
- Sentences persist across relogs — disconnecting doesn't shorten time
/hospital gives medical departments the same panel for timed
hospital admissions
AOP and priority system
- Two glass HUD chips: the current AOP and the priority status
- Priorities belong to civilians — any non-emergency character can start
and end one, and ending automatically begins the cooldown
- The priority chip is hidden for emergency characters; LEO and Fire just
see the AOP
- States: Active (red), On Hold (blue), a live-counting cooldown timer
(amber), or Available (green)
- AOP persists across restarts and is announced in chat as
[Dispatch]
ShotSpotter (ohliamr-shotspotter)
Gunfire detection that behaves the way it should.
- In covered urban zones (a configurable list of city zones), a civilian
firing an unsilenced weapon triggers an instant, precise sensor alert
to LEO with an accurate radius blip
- In remote areas there are no sensors. Instead, if an AI ped was close
enough to hear it, there's a configurable chance they phone it in. After
a realistic 8–25 second delay, LEO gets a
[911 — Local Caller] report with only a rough street name and a
deliberately fuzzed, wide blip — nobody gets pinpoint accuracy from a
panicked witness
- On-duty LEO and Fire never trigger alerts, silenced weapons stay silent,
and per-shooter and per-area cooldowns prevent spam
Configuration
Everything lives in two files, both heavily commented:
ohliamr-core/config.lua — departments and their colours, roles,
radio nets, blip colours, supervisor roles and spawn points; duty desks,
loadouts, records computers, jail and hospital locations, prison outfits,
chat radii, 911 blips, server name, links, slot limits and minimum age
ohliamr-core/config_server.lua — Discord bot token, guild id and
admin roles. Server-only, never sent to clients
ohliamr-target/config.lua — keybind, interaction distances and the
civilian quick-emote list
ohliamr-shotspotter/config.lua — coverage zones, receiving
departments, witness radius/chance/delay, cooldowns, blip styling
---