Skip to content

Custom Config/Items [COLLABORATION] #12

@Gameadictive

Description

@Gameadictive

--- Defines a slot with a bone, position, and rotation
---@Class Slot
---@field bone number
---@field pos vector3
---@field rot vector3

---@Class OptionalVector
---@field x? number
---@field y? number
---@field z? number

--- Defines an item with properties for its placement and grouping
---@Class BackItem
---@field prio number a number to define the priority of importance that the weapon should appear over others
---@field group? string which slot group the item should use. defaults to 'back'
---@field customPos? {bone?: number , pos?: OptionalVector | vector3, rot?: OptionalVector | vector3} optional custom position. required if ignorelimits is true
---@field ignoreLimits? boolean wether or not the item is attached regardless of available slots. requires a full custom position. a full custom position has a bone, pos as a vec3, and rot as a vec3
---@field model? number | string this is required for non-weapon items. can optionally be used for weapons in order to have the attached model different than the equipped model. like if you want a sheathed katanta on your back

---@Class Config
---@field defaultSlots table<string, Slot[]>
---@field BackItems table<string, BackItem>

--- Configurations for item slots and back items
local Config = {}

Config.allowedVehicleClasses = {
[8] = true, -- motorcycles
[13] = true, -- bicycles
[14] = true, -- boats
}

--- Default slots configuration
---@type table<string, Slot[]>
Config.defaultSlots = {
['espalda'] = {
{ bone = 24818, pos = vec3(0.09, -0.16, 0.12), rot = vec3(0.0, 180.0, 0.0) },
{ bone = 24818, pos = vec3(0.09, -0.16, 0.00), rot = vec3(0.0, 180.0, 0.0) },
{ bone = 24818, pos = vec3(0.09, -0.16, -0.12), rot = vec3(0.0, 180.0, 0.0) }
},
-- ['another group'] = { -- add as many slot groups as you like for different types of items
-- { bone = 24818, pos = vec3(0.09, -0.16, 0.12), rot = vec3(0.0, 180.0, 0.0) },
-- { bone = 24818, pos = vec3(0.09, -0.16, 0.00), rot = vec3(0.0, 180.0, 0.0) },
-- { bone = 24818, pos = vec3(0.09, -0.16, -0.12), rot = vec3(0.0, 180.0, 0.0) }
-- },
['musloizquierdo'] = {
{ bone = 58271, pos = vec3(0.09, -0.16, 0.12), rot = vec3(0.0, 180.0, 0.0) },
{ bone = 58271, pos = vec3(0.09, -0.16, 0.00), rot = vec3(0.0, 180.0, 0.0) },
{ bone = 58271, pos = vec3(0.09, -0.16, -0.12), rot = vec3(0.0, 180.0, 0.0) }
},
['cintura'] = {
{ bone = 11816, pos = vec3(0.00, 0.0, 0.0), rot = vec3(0.0, 180.0, 0.0) },
{ bone = 11816, pos = vec3(0.00, 0.0, 0.0), rot = vec3(0.0, 180.0, 0.0) },
{ bone = 11816, pos = vec3(0.00, 0.0, 0.0), rot = vec3(0.0, 180.0, 0.0) }
},
['musloderecho'] = {
{ bone = 51826, pos = vec3(0.09, -0.16, 0.12), rot = vec3(0.0, 180.0, 0.0) },
{ bone = 51826, pos = vec3(0.09, -0.16, 0.00), rot = vec3(0.0, 180.0, 0.0) },
{ bone = 51826, pos = vec3(0.09, -0.16, -0.12), rot = vec3(0.0, 180.0, 0.0) }
},
}

--- Back items configuration
--- pos x y z
--- x Numeros postiviso hacia arriba del personaje, numeros negativos hacia abajo
--- y Numeros positivos hacia adelante del personaje, numeros negativos hacia atrás.
--- z Numeros positivos hacia la izquierda del personaje, numeros negativos hacia la derecha.
--- rot x y z
--- x
--- y
--- z

---@type table<string, BackItem>
Config.BackItems = {
['WEAPON_KNIFE'] = { --
prio = 1,
group = 'musloizquierdo',
customPos = {
pos = { x = -0.3, y = 0.2 },
rot = { x = 15.0, y = 210.0, z = 90.0 }
}
},
['WEAPON_NIGHTSTICK'] = { --
prio = 1,
group = 'cintura',
customPos = {
pos = { x = -0.2, y = 0.0, z = 0.2 },
rot = { x = 90.0, y = 180.0, z = 90.0 }
}
},
['WEAPON_HAMMER'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_BAT'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.4, y = -0.15 },
rot = { y = 270.0 }
}
},
['WEAPON_GOLFCLUB'] = {
prio = 2,
group = 'espalda',
customPos = {
pos = { x = 0.4, y = -0.15 },
rot = { y = 270.0 }
}
},
['WEAPON_CROWBAR'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_BOTTLE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_KNUCKLE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_HATCHET'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_MACHETE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_SWITCHBLADE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_FLASHLIGHT'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.0, y = 0.0, z = 0.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_PISTOL'] = { --
prio = 1,
group = 'musloderecho',
customPos = {
pos = { x = -0.35, y = 0.1, z = -0.229 },
rot = { x = 99.0, y = 150.0, z = 30.0 }
}
},
['WEAPON_COMBATPISTOL'] = {
prio = 1,
group = 'musloderecho',
customPos = {
pos = { x = -0.01, y = 0.1, z = 0.07 },
rot = { x = -115.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_APPISTOL'] = {
prio = 1,
group = 'musloderecho',
customPos = {
pos = { x = -0.01, y = 0.1, z = 0.07 },
rot = { x = -115.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_PISTOL50'] = {
prio = 1,
group = 'musloderecho',
customPos = {
pos = { x = -0.01, y = 0.1, z = 0.07 },
rot = { x = -115.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_VINTAGEPISTOL'] = {
prio = 1,
group = 'musloderecho',
customPos = {
pos = { x = -0.01, y = 0.1, z = 0.07 },
rot = { x = -115.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_HEAVYPISTOL'] = {
prio = 1,
group = 'musloderecho',
customPos = {
pos = { x = -0.01, y = 0.1, z = 0.07 },
rot = { x = -115.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_SNSPISTOL'] = {
prio = 1,
group = 'musloizquierdo',
customPos = {
pos = { x = -0.01, y = 0.1, z = -0.07 },
rot = { x = -55.0, y = 0.1, z = 0.0 }
}
},
['WEAPON_FLAREGUN'] = {
prio = 1,
group = 'musloizquierdo',
customPos = {
pos = { x = -0.01, y = 0.1, z = -0.07 },
rot = { x = -55.0, y = 0.1, z = 0.0 }
}
},
['WEAPON_MARKSMANPISTOL'] = {
prio = 1,
group = 'musloizquierdo',
customPos = {
pos = { x = -0.01, y = 0.1, z = -0.07 },
rot = { x = -55.0, y = 0.1, z = 0.0 }
}
},
['WEAPON_REVOLVER'] = {
prio = 1,
group = 'musloizquierdo',
customPos = {
pos = { x = -0.01, y = 0.1, z = -0.07 },
rot = { x = -55.0, y = 0.1, z = 0.0 }
}
},
['WEAPON_STUNGUN'] = {
prio = 1,
group = 'musloizquierdo',
customPos = {
pos = { x = -0.01, y = 0.1, z = -0.07 },
rot = { x = -55.0, y = 0.1, z = 0.0 }
}
},
['WEAPON_MICROSMG'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_SMG'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_MG'] = {
prio = 4,
group = 'espalda'
},
['WEAPON_COMBATMG'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_GUSENBERG'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_COMBATPDW'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_MACHINEPISTOL'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_ASSAULTSMG'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_MINISMG'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_ASSAULTRIFLE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.09, y = -0.15, z = 0.1 },
rot = { x = 10.0, y = 160.0, z = 10.0 }
}
},
['WEAPON_CARBINERIFLE'] = {
prio = 3,
group = 'espalda',
visibility = 1
},
['WEAPON_ADVANCEDRIFLE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_SPECIALCARBINE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_BULLPUPRIFLE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_COMPACTRIFLE'] = {
prio = 2,
group = 'espalda'
},
['WEAPON_PUMPSHOTGUN'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.1, y = -0.15, z = 0.0 },
rot = { x = 0.0, y = 135.0, z = 0.0 }
}
},
['WEAPON_SAWNOFFSHOTGUN'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.1, y = -0.15, z = 0.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_BULLPUPSHOTGUN'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.1, y = -0.15, z = 0.0 },
rot = { x = 0.0, y = 135.0, z = 0.0 }
}
},
['WEAPON_ASSAULTSHOTGUN'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.1, y = -0.15, z = 0.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_MUSKET'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.1, y = -0.15, z = 0.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_HEAVYSHOTGUN'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.1, y = -0.15, z = 0.0 },
rot = { x = 0.0, y = 225.0, z = 0.0 }
}
},
['WEAPON_DBSHOTGUN'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.1, y = -0.15, z = 0.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_AUTOSHOTGUN'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.1, y = 0.15, z = 0.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_SNIPERRIFLE'] = {
prio = 3,
group = 'espalda'
},
['WEAPON_HEAVYSNIPER'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.1, y = -0.15, z = 0.0 },
rot = { x = 0.0, y = 135.0, z = 0.0 }
}
},
['WEAPON_MARKSMANRIFLE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 0.1, y = -0.15, z = 0.0 },
rot = { x = 0.0, y = 135.0, z = 0.0 }
}
},
['WEAPON_REMOTESNIPER'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_STINGER'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_GRENADELAUNCHER'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_RPG'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_MINIGUN'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_FIREWORK'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_RAILGUN'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_HOMINGLAUNCHER'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_COMPACTLAUNCHER'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_STICKYBOMB'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_MOLOTOV'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_FIREEXTINGUISHER'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_PETROLCAN'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_PROXMINE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_SNOWBALL'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_BALL'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_GRENADE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_SMOKEGRENADE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_BZGAS'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_DIGISCANNER'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_DAGGER'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_GARBAGEBAG'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_HANDCUFFS'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_BATTLEAXE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_PIPEBOMB'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_POOLCUE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['WEAPON_WRENCH'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['GADGET_NIGHTVISION'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},
['GADGET_PARACHUTE'] = {
prio = 1,
group = 'espalda',
customPos = {
pos = { x = 65536.0, y = 65536.0, z = 65536.0 },
rot = { x = 0.0, y = 0.0, z = 0.0 }
}
},

['cone'] = {
    prio = 1,
    ignoreLimits = true,
    model = `prop_roadcone02a`,
    customPos = {
        bone = 12844,
        pos = vec3(0.06, 0.0, 0.0),
        rot = vec3(0.0, 90.0, 0.0)
    }
}

}

return Config

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions