Exports API

The implant system exposes exports for other scripts to query implant states, apply effects, and manage inventory bonuses. All exports use the resource name implant_system.

🖥️ Client-Side Exports

These exports run on the client and can be called from any client script.


IsImplantActive(implantId)

Checks if an active implant ability is currently running (toggled on or within its duration window).

local active = exports['implant_system']:IsImplantActive('night_optics')
if active then
    -- Night vision is currently toggled on
end
Parameter
Type
Description

implantId

string

The implant ID to check

Returns: boolean


HasImplant(implantId)

Checks if a player has a specific implant installed (regardless of whether it's active).

if exports['implant_system']:HasImplant('stabilizer') then
    -- Player has the stabilizer implant installed
end
Parameter
Type
Description

implantId

string

The implant ID to check

Returns: boolean


GetInstalledImplants()

Returns a table of all currently installed implants with their level and type.

Returns: table{ [implantId] = { level = number, passive = boolean }, ... }


GetStabilizerData()

Returns data for the Stabilizer implant (camera shake / recoil suppression).

Returns: table or nil

Field
Type
Values

installed

boolean

Always true

level

number

1–3

camShakeSuppress

number

0.25 (L1), 0.40 (L2), 0.55 (L3)


GetPainEditorData()

Returns data for the Pain Editor implant (ragdoll reduction).

Returns: table or nil

Field
Type
Values

installed

boolean

Always true

level

number

1–3

reduceRagdoll

number

0.35 (L1), 0.55 (L2), 0.75 (L3)

Ragdoll behavior by level:

  • >= 0.70 — All ragdoll disabled

  • >= 0.40 — Player-impact ragdoll blocked, other ragdoll still applies

  • < 0.40 — Default GTA ragdoll behavior


GetFallDampenerData()

Returns data for the Fall Dampener implant (fall damage reduction).

Returns: table or nil

Field
Type
Values

installed

boolean

Always true

level

number

1–3

damageReducePct

number

0.20 (L1), 0.30 (L2), 0.40 (L3)

minFallMeters

number

6.0 (L1), 5.0 (L2), 4.5 (L3)


GetBreathAssistData()

Returns data for the Breath Assist implant (underwater breathing).

Returns: table or nil

Field
Type
Values

installed

boolean

Always true

level

number

1–3

maxUnderwaterTime

number

35.0 (L1), 55.0 (L2), 80.0 (L3)


GetInventoryExpansionData()

Returns data for the Inventory Expansion implant (weight & slot bonus). This is the client-side view — for authoritative server-side data, use the server export GetInventoryBonus.

Returns: table or nil

Field
Type
Values

installed

boolean

Always true

level

number

1–3

maxWeightBonus

number

5000 (L1), 10000 (L2), 15000 (L3)

slotBonus

number

2 (L1), 4 (L2), 6 (L3)


ForceApplyPassives()

Forces the system to re-apply all passive effects (ragdoll, camera shake, underwater breathing, fall dampener). Useful when another script resets native ped settings and you need the implant effects re-applied.

Returns: nothing


🖧 Server-Side Exports

These exports run on the server and require a source (player server ID).


HasImplant(source, implantId)

Checks if a player has a specific implant installed.

Parameter
Type
Description

source

number

Player server ID

implantId

string

The implant ID to check

Returns: boolean


GetImplants(source)

Returns the full implant state for a player (installed, active, heat, etc.).

Parameter
Type
Description

source

number

Player server ID

Returns: table (full state) or nil


GetImplantLevel(source, implantId)

Returns the level of a specific implant (0 if not installed).

Parameter
Type
Description

source

number

Player server ID

implantId

string

The implant ID

Returns: number — 0 (not installed), 1, 2, or 3


GetPassiveImplantData(source, implantId)

Returns detailed data about any passive implant for a player.

Parameter
Type
Description

source

number

Player server ID

implantId

string

The implant ID

Returns: table or nil

Field
Type
Description

installed

boolean

Always true

level

number

1–3

effects

table

Effect values for the current level


GetInventoryBonus(source)

Returns the complete inventory weight and slot bonus breakdown for a player. This is the authoritative server-side calculation.

Parameter
Type
Description

source

number

Player server ID

Returns: table

Field
Type
Description

totalWeightBonus

number

Total weight added by implants

totalSlotBonus

number

Total slots added by implants

baseWeight

number

Config.BaseWeight value

baseSlots

number

Config.BaseSlots value

finalWeight

number

baseWeight + totalWeightBonus

finalSlots

number

baseSlots + totalSlotBonus


RecalculatePassiveStats(source)

Forces the server to recalculate and re-apply weight and slot bonuses to the player's inventory. Useful after external inventory modifications.

Parameter
Type
Description

source

number

Player server ID

Returns: booleantrue if successful, false if player state not found


InstallImplant(source, implantId, socketId, opts)

Programmatically install an implant on a player (validates requirements, removes items).

Parameter
Type
Description

source

number

Player server ID

implantId

string

The implant ID

socketId

string

Target socket ID

opts

table

Optional parameters

Returns: boolean, string? — success, error message


RemoveImplant(source, socketId)

Programmatically remove an implant from a socket.


UpgradeImplant(source, socketId)

Programmatically upgrade an implant in a socket.


ActivateImplant(source, implantId, context)

Programmatically activate an implant ability.


💡 Common Use Cases

Prevent custom shake if player has Stabilizer

Scale ragdoll from other scripts

Re-apply effects after resource restart

Check inventory bonus before trade


Last updated: February 2026

Last updated