Skip to content

๐Ÿ›ก๏ธ BLN Shield โ€‹

bln shield

๐Ÿ“บ Preview โ€‹

Video Preview

๐Ÿ”ฝ Get it Now โ€‹

Download

A powerful and immersive body shield system for RedM. Players can equip shields via inventory items (with bln_lib) or a standalone command โ€” no framework required. Shields absorb incoming damage, feature stunning visual effects, and break when depleted. Fully configurable with multiple shield tiers and visual types.

โœจ Features โ€‹

๐ŸŽฏ Core Features โ€‹

  • ๐Ÿ”Œ Dual Equip Modes - Inventory items via bln_lib, or a standalone command with no dependencies
  • ๐Ÿ›ก๏ธ Damage Absorption - Shields absorb incoming damage based on configurable drain rates
  • โšก Multiple Shield Types - Electric (prop + particle FX) and Normal (clothing overlay)
  • ๐Ÿ“Š Tiered Shields - Create light, medium, and heavy shields with different power levels
  • ๐Ÿ’ฅ Visual Feedback - Particle effects on damage and healing
  • ๐Ÿ”„ Auto Break - Shield automatically unequips and notifies when depleted
  • ๐Ÿงน Auto Cleanup - Full cleanup on resource stop or player ped change

๐ŸŽจ Visual Types โ€‹

TypeVisuals
ElectricAttached prop + electric crackle on damage + tesla coil heal FX
NormalArmor & mask clothing overlay on the player ped

๐Ÿ“ฆ Dependencies โ€‹

  • bln_lib - (Optional) Framework compatibility and item registration
  • bln_notify - (Optional) Notification system
  • bln_hud - v3.0.2+ (Optional) For visual hud to see the shield.

๐Ÿ› ๏ธ Configuration โ€‹

Equip Mode โ€‹

Choose how players equip shields in config/main.cfg.lua:

lua
-- Inventory mode (default): use items via bln_lib
Config.EquipCommand = false

-- Standalone command mode: no bln_lib needed
Config.EquipCommand = 'equip_shield'
-- Examples:
-- /equip_shield shield_normal
-- /equip_shield shield_md
-- /equip_shield shield_heavy

Shield Items โ€‹

Define your shield items in config/main.cfg.lua:

lua
Config.Items = {
    ['shield_normal'] = {
        power          = 40,   -- Max power (0-100)
        drainPerDamage = 0.45, -- Power drained per damage point
        type           = 'normal',
        segments       = 1,    -- UI segments (for HUD display)
    },
    ['shield_md'] = {
        power          = 70,
        drainPerDamage = 0.30,
        type           = 'electric',
        segments       = 4,
    },
    ['shield_heavy'] = {
        power          = 100,
        drainPerDamage = 0.18,
        type           = 'normal',
        segments       = 7,
    },
}

Shield Types โ€‹

Define visual configurations in config/types.cfg.lua:

lua
Config.Types = {
    ['electric'] = {
        prop = {
            model = 'w_electricfielddetector01',
            bone  = 'skel_l_upperarm',
            x = 0.043, y = -0.109, z = 0.059,
            rx = -131.427, ry = 10.513, rz = 85.431,
        },
        healFx = {
            dict = 'scr_crackpot',
            name = 'scr_crackpot_tesla_coil',
            bone = 'SKEL_Head',
            scale = 0.4,
            durationMs = 1200,
        },
        damageFx = {
            dict = 'core',
            name = 'ent_amb_elec_crackle',
            scale = 1.2,
            durationMs = 600,
        },
    },
    ['normal'] = {
        clothing = {
            armor = 989985828,
            mask  = 1724663810,
        },
    },
}

Notification โ€‹

Customize player feedback in config/main.cfg.lua:

lua
function _Notify(title)
    exports.bln_notify:tip(title, 4000, "middle-right")
end

Swap this for your own notification system if you are not using bln_notify.

Commands โ€‹

lua
Config.EquipCommand   = false          -- false = inventory | 'equip_shield' = command mode
Config.UnEquipCommand = 'unshield'     -- /unshield to remove the shield
CommandWhen activeUsage
Config.EquipCommandSet to a string (e.g. 'equip_shield')/equip_shield shield_normal
Config.UnEquipCommandAlways/unshield

๐Ÿ“‹ Configuration Options โ€‹

OptionDescription
powerMaximum shield capacity (0โ€“100)
drainPerDamageMultiplier for how fast the shield drains per damage
typeWhich visual type to use (electric, normal)
segmentsNumber of UI segments for HUD integration

๐Ÿ”Œ Exports (Client) โ€‹

GetShieldInfo โ€‹

Returns the current shield state.

lua
local itemId, item, percent = exports.bln_shield:GetShieldInfo()
-- itemId: string or nil
-- item: item config table or nil
-- percent: 0-100

IsShieldEquipped โ€‹

Check if a shield is currently active.

lua
local equipped = exports.bln_shield:IsShieldEquipped()

SetShield โ€‹

Set the shield power to a specific value.

lua
exports.bln_shield:SetShield(50) -- Set power to 50

AddShield โ€‹

Add or subtract power from the current shield.

lua
exports.bln_shield:AddShield(20)  -- Heal 20 power
exports.bln_shield:AddShield(-10) -- Drain 10 power

UnequipShield โ€‹

Force unequip the current shield.

lua
exports.bln_shield:UnequipShield()

๐Ÿค Support โ€‹

Need help? Have questions? Join our Discord server for support and updates!

  • ๐Ÿ’ฌ Discord: Join Our Community
  • ๐ŸŽฎ Live support and community help
  • ๐Ÿ”„ Regular updates and improvements
  • ๐Ÿ’ก Feature requests and suggestions

Built with โค๏ธ by BLN Studio