This script uses Tebex Asset Escrow. The only file you can edit is config.lua. All configuration options are documented below.
⚙️ Framework Detection
The script automatically detects your framework:
ESX ✅
QB-Core ✅
QBOX ✅
No configuration needed — it works automatically.
📋 Full Configuration Reference
� Inventory System
Config.Inventory= { -- 'auto' = Auto-detect (recommended) -- Or force a specific inventory: -- 'ox', 'qs', 'ps', 'codem', 'core', 'origen', 'tgiann', 'mf', 'qb', 'esx'Type='auto', -- Custom image path override (leave empty for auto-detection) -- Example: 'nui://my_custom_inventory/images/'ImagePath='',}
Supported Inventories
Type value
Inventory
Image Path (auto)
'ox'
ox_inventory
nui://ox_inventory/web/images/
'qs'
qs-inventory
nui://qs-inventory/html/images/
'ps'
ps-inventory
nui://ps-inventory/html/images/
'codem'
codem-inventory
nui://codem-inventory/html/images/
'core'
core_inventory
nui://core_inventory/html/images/
'origen'
origen_inventory
nui://origen_inventory/html/images/
'tgiann'
tgiann-inventory
nui://tgiann-inventory/html/images/
'mf'
mf-inventory
nui://mf-inventory/html/images/
'qb'
qb-inventory
nui://qb-inventory/html/images/
'esx'
ESX native
nui://ox_inventory/web/images/
'auto'
Auto-detect
Based on detected inventory
Auto-detection checks for each inventory in order and uses the first one found. If you have multiple inventories installed, use Type to force the correct one.
ImagePath overrides the auto-detected image path. Useful if your inventory stores images in a non-standard location.
�📊 Logs and Debug
Webhook Events:
Implant installation / removal
Implant upgrades
Overheat events
Durability breakage
🔐 Security and Anti-Spam
📏 Game Rules and Limits
Active implants = Abilities that require a key press (Double Jump, Dash, Sprint Boost, Night Optics, Adrenal Burst).
Passive implants = Constant upgrades that are always active (Fall Dampener, Breath Assist, Stabilizer, Pain Editor, Inventory Expansion).
🏥 Clinic Locations
Use cases:
RequireClinic = false — Players can open the menu anywhere (RP-lite)
RequireClinic = true — Players must visit a ripperdoc / clinic (hardcore RP)
🦴 Socket Definitions
⚠️ Do not change socket IDs (head, chest, passive_1, etc.) — they are linked to the body map, passive slot UI, and implant definitions. You can change label and maxSlots.
🔥 Heat and Overheat System
The heat system prevents abuse of active abilities. Each activation adds heat, and heat decays over time.
How it works:
Each active implant has a heatCost value (defined in the catalog)
Using an ability adds heatCost to the player's heat level
Heat decays automatically based on the implant category rate
At 100 heat → Overheat lockout for BlockSeconds
During overheat → All active abilities are disabled and debuffs apply
🛡️ Durability and Wear
How it works:
Each time an active implant is used, it loses LossOnActivate durability
When durability reaches 0 → Implant breaks and is automatically removed
On manual uninstall → RemoveReturnChance determines if the item is returned
💰 Economy and Resources
🔧 Implant Overrides
Override specific implant properties without modifying the base catalog (which is escrow-protected):
Overridable properties per implant:
Property
Type
Description
cooldownSeconds
number
Cooldown between activations
heatCost
number
Heat generated per activation
durationSeconds
number
Duration of timed abilities
slotCost
number
Number of slots consumed
requires.money
number
Money cost for installation
requires.items
table
Items required for installation
incompatibleWith
table
List of conflicting implant IDs
effects
table
Override effect values per level
📦 Inventory Base Values
These values are used by the Inventory Expansion implant to calculate bonuses.
⌨️ Keybinds
Note: Double Jump is activated automatically by pressing Space while in the air. It does not need a separate keybind.
🌐 Localization
Both English and Spanish translations are included. All UI labels and notification messages can be customized:
Config.Logs = {
Enabled = true, -- Enable logging system
Print = true, -- Show prints in server console (F8)
Webhook = {
Enabled = false, -- Enable Discord webhook logs
Url = '', -- Discord Webhook URL for audit logs
Username = 'implant_system',
},
}
Config.Security = {
-- Minimum time in milliseconds between requests (prevents button spam)
MinRequestIntervalMs = 250,
-- Prevents installing the same implant ID twice
-- Exception: 'double_jump' can be installed on both legs
DisallowDuplicateImplants = true,
-- Blocks combat/movement activations while driving
BlockActivationsInVehicle = true,
-- Strict validation of client payloads (recommended true)
StrictPayloadValidation = true,
}
Config.Rules = {
-- Double Jump requires the implant installed on BOTH legs
DoubleJumpRequireBothLegs = true,
-- Cannot install/uninstall implants while dead
BlockInstallWhenDead = true,
-- Maximum number of active implants (abilities with key press)
-- Note: double_jump on 2 legs counts as 1 active implant
MaxActiveImplants = 2,
-- Maximum number of passive implants (constant bonuses)
MaxPassiveImplants = 3,
}
Config.Clinic = {
-- If true, implant menu only opens at specific locations
-- If false, menu can be opened anywhere via /implants
RequireClinic = false,
-- List of authorized locations
Zones = {
-- { coords = vec3(312.2, -592.8, 43.3), radius = 4.0 },
-- { coords = vec3(-449.2, -340.8, 34.5), radius = 3.0 },
},
}
Config.Heat = {
Max = 100, -- Maximum heat before overheat lockout
-- Heat decay rate per second (while not in use)
DecayPerSecond = {
locomotion = 0.8, -- Movement implants (Sprint, Jump, Dash)
combat = 0.6, -- Combat implants (Adrenal Burst)
utility = 0.7, -- Utility implants (Night Vision)
},
-- Overheat punishment
Overheat = {
BlockSeconds = 20, -- Seconds the system stays locked at max heat
Debuff = {
Enabled = true,
-- Sprint speed multiplier while overheated (0.90 = 10% slower)
LocomotionSprintMultiplier = 0.90,
},
},
}
Config.Durability = {
Enabled = true, -- Enable wear system
Default = 100, -- Starting durability on installation
Min = 0,
Max = 100,
-- Durability lost per activation of an active ability
-- Passive implants do NOT consume durability
LossOnActivate = 1,
-- Chance (0.0 to 1.0) of getting the item back on uninstall
-- 1.0 = Always returned, 0.5 = 50% chance
RemoveReturnChance = 1.0,
}
Config.Economy = {
-- Cost multiplier for upgrades
-- Formula: Cost = BaseCost × CurrentLevel × Multiplier
UpgradeCostMultiplierPerLevel = 1.0,
-- If true, charges money/items even for "free" implants
ForceUpgradeCosts = false,
}
Config.ImplantOverrides = {
-- Example: Make double_jump more expensive and slower
double_jump = {
cooldownSeconds = 6,
heatCost = 15,
requires = {
money = 5000,
items = { { name = 'electronics', count = 2 } },
},
},
-- Example: Make sprint_boost last longer
sprint_boost = {
durationSeconds = 8,
heatCost = 25,
},
-- Example: Change night optics cooldown
night_optics = {
cooldownSeconds = 5,
},
}
-- Base character values for weight/slot calculations
-- Adjust to match your inventory's default values
Config.BaseWeight = 85000 -- 85kg default carry weight
Config.BaseSlots = 50 -- 50 slots default