π οΈconfig_gangtypes.lua
--[[
IMPORTANT:
If you EDIT these attributes, you need to edit the gangselect.js file as well in the nui folder
Look for the loadGangSelectData function and add the new attributes to the array.
]]
Config.EnableGangTypes = true
Config.GangAttributes = {
["business-focus"] = {
icon = "fas fa-chart-line",
name = "Business Focus",
effect = "+20% Income from Drug Sales",
value = 20,
isPositive = true,
},
networking = {
icon = "fas fa-handshake",
name = "Networking",
effect = "+15% Loyalty when Completing Missions",
value = 15,
isPositive = true,
attribute = function(increaseAmount)
increaseAmount = increaseAmount * GetMultiplierPercentage(Config.GangAttributes.networking.value)
return increaseAmount
end,
},
["limited-recruitment"] = {
icon = "fas fa-users",
name = "Limited Recruitment",
effect = "Each new member costs $100,000",
useCleanCash = true,
value = 100000,
isPositive = false,
},
professional = {
icon = "fas fa-business-time",
name = "Professional",
effect = "Cannot Spray Graffiti",
isPositive = false,
attribute = function(src)
TriggerClientEvent('cb-gangsystem:client:Notify', src, "Professional", "Your gang is too good for graffiti!", "error")
end,
},
intimidation = {
icon = "fas fa-fist-raised",
name = "Intimidation",
effect = "Turfs you control yield -100% loyalty from Drug Sales when no members are online",
value = -100,
isPositive = true,
attribute = function(zoneController, increaseAmount)
local onlineMembers = GetOnlineMembers(zoneController)
if onlineMembers <= 0 then
increaseAmount = increaseAmount * GetMultiplierPercentage(Config.GangAttributes["intimidation"].value)
end
return increaseAmount
end,
},
["family-ties"] = {
icon = "fas fa-handshake",
name = "Family Ties",
effect = "+10% Income from Drug Sales when with other Mob Members",
value = 10,
isPositive = true,
alwaysShow = false, -- If true, the attribute will always be shown in the UI
},
["high-profile"] = {
icon = "fas fa-exclamation-triangle",
name = "High Profile",
effect = "-100% Loyalty from Drug Sales in Turfs with no Online Members",
value = -100,
isPositive = false,
attribute = function(src, gangID, zoneController, increaseAmount)
if not zoneController or not gangID then return increaseAmount end
if zoneController == gangID then return increaseAmount end
local onlineMembers = GetOnlineMembers(zoneController)
if onlineMembers > 0 then return increaseAmount end
TriggerClientEvent('cb-gangsystem:client:Notify', src, "High Profile", "The locals here don't respect you!", "info")
increaseAmount = increaseAmount * GetMultiplierPercentage(Config.GangAttributes['high-profile'].value)
return increaseAmount
end,
},
["territory-control"] = {
icon = "fas fa-map-marked-alt",
name = "Territory Control",
effect = "+15% Income from Drug Sales when selling in Rival Turfs",
value = 15,
isPositive = true,
},
relentless = {
icon = "fas fa-fire",
name = "Relentless",
effect = "+50% Loyalty when Capturing Rival Gang Members",
value = 50,
isPositive = true,
attribute = function(leaderCaptured, increaseAmount)
local attributeValue = Config.GangAttributes["relentless"].value
if not leaderCaptured then
increaseAmount = math.ceil((Config.Loyalty.Increase.Captured * GetMultiplierPercentage(attributeValue)) - Config.Loyalty.Increase.Captured)
else
increaseAmount = math.ceil((Config.Loyalty.Increase.CapturedLeader * GetMultiplierPercentage(attributeValue)) - Config.Loyalty.Increase.CapturedLeader)
end
return increaseAmount
end,
},
ruthless = {
icon = "fas fa-skull",
name = "Ruthless",
effect = "-10% Income from Drug Sales",
value = -10,
isPositive = false,
},
brotherhood = {
icon = "fas fa-heart",
name = "Brotherhood",
effect = "+15% Income from Drug Sales when with MC Members",
value = 15,
isPositive = true,
alwaysShow = false, -- If true, the attribute will always be shown in the UI
},
mobility = {
icon = "fas fa-road",
name = "Mobility",
effect = "+10% Loyalty when completing Missions",
value = 10,
isPositive = true,
attribute = function(increaseAmount)
increaseAmount = increaseAmount * GetMultiplierPercentage(Config.GangAttributes.mobility.value)
return increaseAmount
end,
},
neighborhood = {
icon = "fas fa-home",
name = "Neighborhood",
effect = "Home Turf yields 50% less loyalty for Rival Gangs",
value = 50,
isPositive = true,
attribute = function(increaseAmount)
increaseAmount = increaseAmount * GetMultiplierPercentage(Config.GangAttributes.neighborhood.value)
return increaseAmount
end,
},
["quick-response"] = {
icon = "fas fa-bolt",
name = "Quick Response",
effect = "Blueprints every 8 hours",
value = 8,
isPositive = true,
attribute = function(src, lastBlueprint, cooldown)
cooldown = Config.GangAttributes["quick-response"].value
if os.time() - lastBlueprint < cooldown * 3600 then
if not Config.Blueprints.useBoxZones then
TriggerClientEvent('cb-gangsystem:client:Notify', src, Translations.Error.blueprintCooldown, Translations.Error.blueprintCooldownDesc, "error")
return
else
TriggerClientEvent('cb-gangsystem:client:Notify', src, Translations.Error.blueprintCooldownBoxZone, Translations.Error.blueprintCooldownBoxZoneDesc, "error")
return
end
end
end,
},
graffiti = {
icon = "fas fa-spray-can",
name = "Graffiti",
effect = "+10% Loyalty when Spraying Graffiti",
value = 10,
isPositive = true,
},
disorganized = {
icon = "fas fa-exclamation-circle",
name = "Disorganized",
effect = "Cannot Create Alliances",
isPositive = false,
attribute = function(src)
TriggerClientEvent('cb-gangsystem:client:Notify', src, "Disorganized", "You cannot create alliances!", "error")
end,
},
active = {
icon = "fas fa-person-running",
name = "Active",
effect = "Gang Members receive an extra Gang Mission each day",
value = 1,
isPositive = false,
attribute = function(src, completedMissions, maxMissions)
local amount = maxMissions + Config.GangAttributes["active"].value
if completedMissions < amount then
maxMissions = maxMissions + Config.GangAttributes["active"].value
TriggerClientEvent('cb-gangsystem:client:Notify', src, "Active", "You received an extra mission!", "info")
end
end
},
}
Config.GangTypes = {
-- DO NOT ADD MORE GANG TYPES! THE UI IS HARD CODED! DONT EDIT THESE IF YOU DONT KNOW WHAT YOU ARE DOING!
[1] = {
type = "syndicate",
name = "Syndicate",
description = "Professional criminal organization with corporate structure. Syndicates are known for their secrecy, discipline, and long-term planning. Their members operate with precision and a focus on maintaining influence over time.",
image = "img/syndicate.jpg",
attributes = {
["business-focus"] = true,
["networking"] = true,
["limited-recruitment"] = true,
["professional"] = true,
},
defaultRanks = {
[1] = "Prospect",
[2] = "Associate",
[3] = "Operative",
[4] = "Underboss",
[5] = "Director",
[6] = "Consigliere",
[7] = "Chairman"
}
},
[2] = {
type = "mob",
name = "Mob",
description = "Traditional organized crime family with strong hierarchy. Mobs emphasize loyalty, tradition, and respect for the chain of command. Family ties and generational loyalty are often central to their identity.",
image = "img/mob.jpg",
attributes = {
["intimidation"] = true,
["family-ties"] = true,
["high-profile"] = true,
},
defaultRanks = {
[1] = "Earner",
[2] = "Associate",
[3] = "Soldier",
[4] = "Caporegime",
[5] = "Consigliere",
[6] = "Underboss",
[7] = "Don"
}
},
[3] = {
type = "cartel",
name = "Cartel",
description = "Ruthless drug trafficking organization with territorial control. Cartels are structured around powerful leadership and fiercely protected networks. Their operations are built on fear, reputation, and rigid internal codes.",
image = "img/cartel.jpg",
attributes = {
["territory-control"] = true,
["relentless"] = true,
["ruthless"] = true,
["active"] = true,
},
defaultRanks = {
[1] = "Lookout",
[2] = "Courier",
[3] = "Sicario",
[4] = "Lieutenant",
[5] = "Plaza Boss",
[6] = "Jefe de Jefes",
[7] = "Patron"
}
},
[4] = {
type = "motorcycle",
name = "Motorcycle Club",
description = "Brotherhood of riders with strong loyalty and camaraderie. Motorcycle clubs value freedom, brotherhood, and a rebellious spirit. Their image is shaped by honor among members and a devotion to their own laws.",
image = "img/motorcycle-club.jpg",
attributes = {
["brotherhood"] = true,
["mobility"] = true,
["ruthless"] = true,
},
defaultRanks = {
[1] = "Hangaround",
[2] = "Prospect",
[3] = "Patch Member",
[4] = "Road Captain",
[5] = "Sergeant At Arms",
[6] = "Vice President",
[7] = "President"
}
},
[5] = {
type = "southside",
name = "South Side",
description = "Street gang with neighborhood roots and street smarts. South Side gangs are defined by their local identity, reputation, and close-knit community ties. Their strength comes from deep personal bonds and a shared sense of belonging.",
image = "img/southside.jpg",
attributes = {
["neighborhood"] = true,
["quick-response"] = true,
["disorganized"] = true,
--["graffiti"] = true,
},
defaultRanks = {
[1] = "Youngin",
[2] = "Soldier",
[3] = "Shot Caller",
[4] = "Original Gangster",
[5] = "Lieutenant",
[6] = "General",
[7] = "Kingpin"
}
}
}Last updated