Camera
In-game evidence capture system for screenshots attached to profiles, vehicles, incidents, reports, weapons, and properties.
The camera system lets officers capture in-game screenshots as evidence, which can be attached to profiles, vehicles, incidents, reports, weapons, and properties. It requires a media provider (FiveManage) and one of the supported capture resources.
Setup
Get a FiveManage API Key
Sign up at fivemanage.com and generate an API key.
Add the Convar to server.cfg
set vx_mdt:media "your-api-key-here"Install a Capture Resource
Install one of the supported capture resources below and ensure it starts before vx_mdt in your server.cfg.
Done
The bridge is auto-detected — no additional configuration needed.
Supported Bridges
| Resource | Description |
|---|---|
fmsdk | FiveManage SDK — handles capture and upload internally. Simplest setup. |
screencapture | Standalone capture resource. Uploads to FiveManage via API. |
screenshot-basic | CFX built-in screenshot resource. Uploads to FiveManage via API. |
Only one capture resource is needed. If multiple are installed, auto-detection picks the first available (priority: fmsdk → screencapture → screenshot-basic). You can override this with bridges.camera in config.
Client Configuration
Customize camera behavior in config/client/camera.lua.
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Master toggle for camera prop/animation |
anim.dict | string | "amb@world_human_paparazzi@male@base" | Animation dictionary |
anim.clip | string | "base" | Animation clip name |
anim.blend_in | number | 2.0 | Blend in speed (seconds) |
anim.blend_out | number | 2.0 | Blend out speed (seconds) |
anim.duration | number | -1 | Animation duration in ms (-1 = loop until stopped) |
anim.flag | number | 49 | Animation flags (49 = upper body + loop) |
prop.model | string | "prop_pap_camera_01" | Prop model name |
prop.bone | number | 28422 | Bone ID to attach prop to (28422 = right hand) |
prop.offset | vec3 | 0.0, 0.0, 0.0 | Position offset for the prop |
prop.rotation | vec3 | 0.0, 0.0, 0.0 | Rotation offset for the prop |
scripted_camera.fov_default | number | 60.0 | Default field of view |
scripted_camera.fov_min | number | 20.0 | Maximum zoom in |
scripted_camera.fov_max | number | 90.0 | Maximum zoom out |
scripted_camera.fov_step | number | 3.0 | FOV change per scroll step |
scripted_camera.sensitivity_x | number | 4.0 | Horizontal look sensitivity |
scripted_camera.sensitivity_y | number | 4.0 | Vertical look sensitivity |
scripted_camera.pitch_min | number | -89.0 | Minimum vertical look angle (degrees) |
scripted_camera.pitch_max | number | 89.0 | Maximum vertical look angle (degrees) |
scripted_camera.head_bone | number | 31086 | Bone ID the camera attaches to (31086 = head) |
scripted_camera.forward_offset | number | 0.6 | Camera distance from the head bone |
hideHud / showHud | function | nil | nil | Callbacks to hide/show your HUD resource while camera is active |
Controls
| Action | Key |
|---|---|
| Look around | Mouse |
| Capture | Left Click (LMB) |
| Zoom in/out | Scroll Wheel |
| Exit | ESC |