Page cover

πŸ’»Installation

Dependencies :

QBCORE

You will need the latest version of qb-core

  • Extract the contents of the archive to your resources folder.

  • Start the resource near the top of your resources in your server.cfg.

XSOUND

You will need the latest version of xsound.

  • Extract the contents of the archive to your resources folder.

  • Start the resource near the top of your resources in your server.cfg.


Inventories :

QB-INVENTORY

Add the items below to the qb-core/shared/items.lua:

    c4_low_saspa           = { name = 'c4_low_saspa',                  label = 'Special M112 Demolition Charge',        weight = 100,       type = 'item',     image = 'c4_low_saspa.png',                                                unique = false, useable = true,     shouldClose = true,    combinable = nil,   description = 'Special M112 Demolition Charge Tier 1.' }, 
    c4_mid_saspa           = { name = 'c4_mid_saspa',                  label = 'Special X6 Breaching Charge',           weight = 100,       type = 'item',     image = 'c4_mid_saspa.png',                                                unique = false, useable = true,     shouldClose = true,    combinable = nil,   description = 'Special X6 Breaching Charge Tier 2.' },
    c4_high_saspa          = { name = 'c4_high_saspa',                 label = 'Special T-14 Thermobaric Charge',       weight = 100,       type = 'item',     image = 'c4_high_saspa.png',                                               unique = false, useable = true,     shouldClose = true,    combinable = nil,   description = 'Special T-14 Thermobaric Charge Tier 3.' },
    bagsaspa         = { name = 'bagsaspa',                 label = 'SASPA bag',              weight = 100,       type = 'item',     image = 'bagsaspa.png',                                            unique = false, useable = true,     shouldClose = true,    combinable = nil,   description = 'A bag filled with the prisoners belongings' },
    saspatablet      = { name = 'saspatablet',              label = 'SASPA Tablet',                weight = 100,       type = 'item',     image = 'saspatablet.png',                                              unique = false, useable = true,     shouldClose = true,    combinable = nil,   description = 'SASPA tablet.'},
OX_INVENTORY

Add the items below into your ox-inventory/data/items.lua

	["c4_mid_saspa"] = {
		label = "Special X6 Breaching Charge",
		weight = 100,
		stack = true,
		close = true,
		description = "Special X6 Breaching Charge",
		client = {
			image = "c4_mid_saspa.png",
		}
	},

	["c4_high_saspa"] = {
		label = "Special T-14 Thermobaric Charge",
		weight = 100,
		stack = true,
		close = true,
		description = "Special T-14 Thermobaric Charge",
		client = {
			image = "c4_high_saspa.png",
		}
	},

	["c4_low_saspa"] = {
		label = "Special M112 Demolition Charge",
		weight = 100,
		stack = true,
		close = true,
		description = "Special M112 Demolition Charge",
		client = {
			image = "c4_low_saspa.png",
		}
	},
	["bagsaspa"] = {
		label = "SASPA bag",
		weight = 100,
		stack = true,
		close = true,
		description = "A bag filled with the prisoners belongings",
		client = {
			image = "bagsaspa.png",
		}
	},

	["saspatablet"] = {
		label = "SASPA Tablet",
		weight = 100,
		stack = true,
		close = true,
		description = "SASPA tablet.",
		client = {
			image = "saspatablet.png",
		}
	},

Add this into ox_inventory/modules/items/client.lua

Item('c4_low_saspa', function(data, slot)
	ox_inventory:useItem(data, function(data)
		if data then
			TriggerEvent("zat-saspa:client:PlantBomb", 1, slot.name)
		end
	end)
end)

Item('c4_mid_saspa', function(data, slot)
	ox_inventory:useItem(data, function(data)
		if data then
			TriggerEvent("zat-saspa:client:PlantBomb", 2, slot.name)
		end
	end)
end)

Item('c4_high_saspa', function(data, slot)
	ox_inventory:useItem(data, function(data)
		if data then
			TriggerEvent("zat-saspa:client:PlantBomb", 3, slot.name)
		end
	end)
end)
Item('saspatablet', function(data, slot)
	ox_inventory:useItem(data, function(data)
		if data then
			TriggerEvent("zat-saspa:client:OpenTablet")
		end
	end)
end)

QS-INVENTORY

Add the items below into your qs-inventory/shared/items.lua

['c4_low_saspa'] = {
    ['name'] = 'c4_low_saspa',
    ['label'] = 'Special M112 Demolition Charge',
    ['weight'] = 100,
    ['type'] = 'item',
    ['image'] = 'c4_low_saspa.png',
    ['unique'] = false,
    ['useable'] = true,
    ['shouldClose'] = true,
    ['combinable'] = nil,
    ['description'] = 'Special M112 Demolition Charge'
},

['c4_mid_saspa'] = {
    ['name'] = 'c4_mid_saspa',
    ['label'] = 'Special X6 Breaching Charge',
    ['weight'] = 100,
    ['type'] = 'item',
    ['image'] = 'c4_mid_saspa.png',
    ['unique'] = false,
    ['useable'] = true,
    ['shouldClose'] = true,
    ['combinable'] = nil,
    ['description'] = 'Special X6 Breaching Charge'
},

['c4_high_saspa'] = {
    ['name'] = 'c4_high_saspa',
    ['label'] = 'Special T-14 Thermobaric Charge',
    ['weight'] = 100,
    ['type'] = 'item',
    ['image'] = 'c4_high_saspa.png',
    ['unique'] = false,
    ['useable'] = true,
    ['shouldClose'] = true,
    ['combinable'] = nil,
    ['description'] = 'Special T-14 Thermobaric Charge'
},

['bagsaspa'] = {
    ['name'] = 'bagsaspa',
    ['label'] = 'SASPA bag',
    ['weight'] = 100,
    ['type'] = 'item',
    ['image'] = 'bagsaspa.png',
    ['unique'] = false,
    ['useable'] = true,
    ['shouldClose'] = true,
    ['combinable'] = nil,
    ['description'] = 'A bag filled with the prisoners belongings'
},

['saspatablet'] = {
    ['name'] = 'saspatablet',
    ['label'] = 'SASPA Tablet',
    ['weight'] = 100,
    ['type'] = 'item',
    ['image'] = 'saspatablet.png',
    ['unique'] = false,
    ['useable'] = true,
    ['shouldClose'] = true,
    ['combinable'] = nil,
    ['description'] = 'SASPA tablet.'
},

Add this into qs-inventory/server/custom/misc/CreateUseableItem.lua

CreateUsableItem('c4_low_saspa', function(source, item)
    local src = source
    TriggerClientEvent('zat-saspa:client:PlantBomb', src, 1, 'c4_low_saspa')
end)

CreateUsableItem('c4_mid_saspa', function(source, item)
    local src = source
    TriggerClientEvent('zat-saspa:client:PlantBomb', src, 2, 'c4_mid_saspa')
end)

CreateUsableItem('c4_high_saspa', function(source, item)
    local src = source
    TriggerClientEvent('zat-saspa:client:PlantBomb', src, 3, 'c4_high_saspa')
end)

CreateUsableItem('saspatablet', function(source, item)
    local src = source
    TriggerClientEvent('zat-saspa:client:OpenTablet', src)
end)


ZAT - DIALOG (in case you use it) :

Add this to shared/config.lua :

    -- SASPA
    {
        img         = 'https://i.ibb.co/VpDp7Tk7/Capture-d-cran-2025-08-27-144714.png',
        ped         = 's_m_m_prisguard_01',
        anim        = 'CODE_HUMAN_MEDIC_TIME_OF_DEATH',
        coords      =  vector4(1839.64, 2549.6, 44.92, 261.75),
        job         = "all", -- { ["police"] = 0, ["ambulance"] = 0}  if you are using target
        gang        = "all", -- { ["ballas"] = 2, ["thelostmc"] = 0}  if you are using target
        groups      = "all", -- { ["police"] = 2, ["ambulance"] = 0}  if you are using intearaction
        firstname   = 'ASTA',
        lastname    = 'CLEAN',
        rep         = 0,
        mission     = 'lsfd',
        text        = 'Hi there, how can I help you ?',
        buttons     = {
            {
                text= 'I want to work',
                rep = 0,
                answer ='Prisoner uniforms need to be securely transported from the LSPD offices to the prison. Are you ready to handle this transfer?',
                buttons={{
                        text = 'Sign In',
                        shop =false,
                        rep = 0,
                        action= {
                            isServer= false,
                            event= 'zat-saspa:client:Signin',
                            data= {}
                        },
                        canInteract = CanToggleSignIn(),
                    },
                    {
                        text = 'Leave Conversation',
                        shop =false,
                        rep = 0,
                        action= {
                            isServer= false,
                            event= 'zat-dialog:client:HideUi',
                            data= {}
                        },
                        canInteract = true
                    }
                },
                canInteract = true
            },
            {
                text = 'Cancel Mission',
                rep = 0,
                shop =false,
                action= {
                    isServer= false,
                    event= 'zat-saspa:client:StopWorking',
                    data= {}
                },
                canInteract = true
            },
        },
        items={

        }
    }, 

ADDITIONAL SETUP

IMAGES
  • Copy the contents of the [images] folder into your inventory's image directory.

SOUNDS
  • Copy all files from the [sounds] folder into xsound/client/html/sounds

ENSURE RESOURCES

Last updated