
The Next Generation of Medical Simulation
Stop pretending. Start diagnosing.
Transform your server’s medical roleplay from “simple emotes” to real diagnostic gameplay . FX-ECG isn’t just a UI; it’s a fully simulated Electrocardiogram machine that reads player vitals, reacts to injuries, prints physical reports, and—for the first time —projects live data onto physical 3D props in the game world.
Youtube Preview : Youtube
MAJOR FEATURE: REAL-TIME 3D PHYSICAL MONITORS
We use DUI (Direct User Interface) technology to project the live ECG graph directly onto a custom 3D medical monitor prop.
-
Seamless Sync: When you connect a patient via your handheld tablet, the physical monitor next to you instantly lights up and displays that patient’s live data. -
Multiplayer Sync: Everyone in the room sees the exact same lines, BPM, and rhythm on the monitor model. -
Smart Proximity: The monitor automatically detects the linked patient within 2 meters. If the patient moves away, the monitor displays “NO SIGNAL” and flatlines. -
Live Control: Change settings on your tablet (Lead, Filter, Speed, Gain) and watch them update instantly on the 3D Monitor prop. -
Plug & Play: Define spawn locations in config.lua (e.g., ER rooms, Ambulance interior), and the monitors will spawn automatically on server start.
Key Features
Realistic LCD Interface
Not a static image! The heartbeat lines (PQRST) are drawn in real-time using HTML5 Canvas . The drawing speed, amplitude, and noise levels react to your configuration.
Physical Paper System
-
Print Animation: Press print, hear the mechanical step-motor sound , and watch the paper slide out of the device.
-
Tear Mechanic: Click to tear the paper off with a satisfying animation.
-
Inventory Item: The report becomes a usable item (ecg_paper) in your inventory (Ox , QB Inventory supported).
-
View Mode: When you use the paper item, it opens a detailed UI showing the exact rhythm, BPM, and Lead settings recorded at that moment.
Dynamic Vitals Engine
-
Damage Memory: If a player is shot in the chest, the machine remembers the heart damage (Fibrillation ) until they are fully healed (>80% HP).
-
HRV Simulation: Even when standing still, the BPM naturally fluctuates (Heart Rate Variability) to simulate breathing. No more robotic static numbers.
-
Real-time Reaction: Health loss increases BPM (Adrenaline/Shock).
-
Dead/Last Stand: Automatically detects death or “last stand” state and flatlines (Asystole ) or shows irregular slow beats (Sinus Arrest ).
Developer API (Bridge)
Easily integrate with other scripts (Poison, Drugs, Disease) using exports. You can force specific rhythms via code.
Customization
-
Themes: Change UI themes (Green, Cyan, Red) directly from the device menu.
-
Controls: Adjust Gain (10/20mm), Speed (25/50mm), and Leads (I, II, III, aVR, etc.).
Intelligent Rhythm Logic
The script calculates the rhythm based on the ped’s state:
-
Normal Sinus Rhythm: Healthy player.
-
Sinus Tachycardia: Low health or high stress (BPM increases).
-
Sinus Arrhythmia: Very low health (Irregular beats).
-
Fibrillation (Fib): Player took damage specifically to the chest/heart bone. This state persists until healed.
-
Asystole (Flatline): Player is dead or in the “respawn” screen.
Developer API & Exports
Do you have a custom disease script? Or maybe a drug script that should spike the heart rate? You can override the machine’s logic easily. For More information Fx Studios Docs
Config Modes:
-
Config.Mode = “default”: The script calculates everything automatically.
-
Config.Mode = “custom”: The script waits for your exports.
Export Examples:
-- Force a specific rhythm (e.g., Drug Overdose causing V-Tach)
-- Rhythm Types: 'normal', 'fib', 'asystole', 'sinus_arrhythmia', 'vtach', 'torsades'
exports['fx-ecg']:SetECGStatus(targetServerId, 180, 'vtach')
-- Clear the override and return to default logic
exports['fx-ecg']:ResetECGStatus(targetServerId)
Configuration
Fully configurable config.lua to fit your server’s economy and medical system.
Config = {}
Config.Core = "qb" -- 'qb' or 'qbox'
Config.Mode = "default"
Config.DefaultSettings = {
MinBaseBPM = 70, -- Random resting heart rate per player
MaxBaseBPM = 110,
StressMultiplier = 0.5,
BleedMultiplier = 10,
-- Bones that trigger Fibrillation (Heart Attack)
HeartBones = { [24816] = true, [24818] = true, ... }
}
-- Automatically spawn 3D Monitors at these locations
Config.PermanentMonitors = {
{ coords = vector3(315.6, -584.2, 43.2), heading = 160.0 }, -- ER Room 1
{ coords = vector3(318.5, -580.9, 43.2), heading = 340.0 }, -- ER Room 2
}
Config.Target = {
Enabled = true,
Jobs = {"ambulance", "doctor"},
Props = {"prop_monitor_w_01", "v_med_cor_monitor", "sm_ecg_m_display"}
}
Previews
1. The Interface (Animation & Sound):

2. Printing & Inventory Report:

3. Viewing the Report (Item Usage):

Purchase
Tebex Link: Fx Studios
Open Source: Fx Studios
Price: $19,49 + tax %40 New Year Discount !
![]()
This script is encrypted using Asset Escrow system.
Code
| | |
|-----------------------------|-----------------|
| Code is accessible | Yes |
| Subscription-based | No |
| Lines (approximately) | 334 lua,1013 Javscript |
| Requirements & dependencies | Qb Core / QBX Core|
| Support | Yes |
Model
| | |
|-----------------------------|-----------------|
| Assets are accessible | Yes |
| Subscription-based | No |
| Polygons (model and LOD) | 17000 Vertices|
| Texture size and amount | 8 mb |
| Requirements & dependencies | No Requirements |
| Support | Yes |

