Jota Dev Criminal Organizations
Here you can see the documentation to learn how to install the criminal organization system.

How to start the script for its correct operation:
Put in your server.cfg
# JotaDev Criminal Organizations
ensure jc_organizacionesCommands
Open admin Menu:
/organizacionesOpen Actions Menu:
/orgmenu(F6)Open Tablet Iinteraction
/tabletilegal(F10)Open theft interface (police)
/robos
Script Settings:
Config = Config or {}
Config.Framework = "" -- Configure "esx" for the ESX framework or "qb" for QB-Core
Config.Locale = "" -- Set your language to "es" to use Spanish and "en" to use English
Config.Inventory = "" -- "ox" | OX Inventory // "qs-inventory" | Qasar Inventory // "origen_inventory" | Origen Inventory // origen_inventoryv2 | Origen Inventory V2 // "qb-inventory" | QB Inventory // "esx_inventory" | For esx inventory default
Config.Clothing = "" -- "fivem-apparence" | "qb-clothing" | "illenium-appearance" | "esx_skin" | "custom" -> /Editable/Client/CMain.lua -> openShopClothing()
Config.AllowedIdentifiers = {
"steam:000000000000000",
"license:00000000000000000000000000000",
"discord:0000000000000000000",
}
Config.DeleteRobados = true -- true = removes stolen vehicles, false = behaves normally and can recover stolen vehicles
Config.MoneyRecover = 200
Config.MaxOrgVehicles = 2 -- Maximum number of vehicles an organization can have outside at one time
Config.ColorVehiculos = false -- If it is true, the vehicle will be painted in the organization's color
-- Enable or disable group validation for the administration panel
Config.CheckGroups = true
Config.SecurityIMG = false -- With this option you will remove the input to write an image in the graffiti creation interface and you will only be able to select the organization's logo
-- Configuring groups by framework
Config.Groups = {
ace = { "admin", "superadmin" }, -- ACE groups
esx = { "superadmin", "admin" }, -- ESX groups (xPlayer.getGroup())
qb = { "god", "admin" } -- QB groups (Player.PlayerData.permission)
}
Config.BarrioBlip = {
enabled = true, -- Toggle on/off if you want players to see their neighborhood blip on the map.
sprite = 357,
scale = 0.9,
colour = 5,
shortRange = false, -- true: only nearby, false: visible on the entire map
label = "Mi Barrio"
}
Config.OpenOrgMenuKey = "F6" -- Organization's action menu
Config.CommandPoliceRobos = 'robos' -- Command for the police to open the panel of reported robberies
Config.CommandAdminPanel = 'organizaciones' -- Command to open the administration panel
Config.TabletIlegal = {
Enabled = true, -- If set to true, organizations will access the tablet via command; if set to false, you disable the command and activate the item to open the tablet.
UseItem = false, -- Activate the item to use an item to open the organization's tablet
ItemName = "tablet_ilegal", -- Name of the required item (if UseItem = true)
CommandName = "tabletilegal", -- Command name (if Enabled = true)
KeyMappingLabel = "Abrir tablet de la organización", -- Text that will appear in the KeyMapping
OpenTabletIlegalMenuKey = 'F10'
}
Config.Almacen = {
slots = 70, -- Number of slots for warehouses
maxWeight = 5000 -- Maximum weight for warehouses
}
Config.EditNPC = {
enabled = true, -- Activates or deactivates the option to edit the organization's PED
show_all_players = false, -- If you want all players to see the organizations' peds, set it to true; keep in mind that this may overload your server
key = 73, -- Key to open editing in case useTarget -> use is = false
useTarget = {
use = true, -- Activate if you want the editing to be by target
target = 'ox_target', -- ox_target // qb-target
message = 'Editar NPC del Barrio',
}
}
Config.RangosAjustes = { -- Ranges that will appear in the interaction tablet settings section
"jefe",
}
Config.DarkChat = true -- Enable/Disable DarkChat on the management tablet
Config.FiltroPalabrotas = true -- Activate/Deactivate the swear filter
Config.PalabrasProhibidas = { -- Forbidden words to use in dark chat
"polla", "cabron", "cabrón", "puta", "puto", "putas", "putos",
"gilipollas", "maricon", "maricón", "subnormal", "retrasado",
"idiota", "imbecil", "imbécil", "zorra", "perra", "perro",
"estupido", "estúpido", "mierda", "cagon", "cagón", "pendejo",
"culiao", "pelotudo", "baboso", "mamon", "mamón", "tarado",
"anormal", "mongolo", "chupapollas", "comeojete", "payaso",
"asco", "asqueroso", "asquerosa", "hijoputa", "hijo de puta",
"hdp", "malparido", "bastardo", "cornudo", "nazi", "racista",
"negro de mierda", "sidoso", "apestoso", "pajero", "lerdo",
"gordo de mierda"
}
Config.RegexProhibidas = {}
for _, palabra in ipairs(Config.PalabrasProhibidas) do
local pattern = palabra:gsub("([.*+?^$()%%[%]-])", "%%%1")
pattern = pattern:gsub("a", "[a@4]+")
pattern = pattern:gsub("e", "[e3]+")
pattern = pattern:gsub("i", "[i1!íì]+")
pattern = pattern:gsub("o", "[o0óò]+")
pattern = pattern:gsub("u", "[uúù]+")
pattern = pattern:gsub("(.)", "%1[ ._-]*")
table.insert(Config.RegexProhibidas, pattern)
end
Config.RobosAtracos = true -- Activate/Deactivate the Robberies and Heists section of the tablet
Config.PoliceJobs = { -- Mark police jobs here
"police",
"sheriff",
"fbi"
}
Config.RobosTiempo = 30 -- Minutes you have from the start of the robbery until it ends to consider it successful or unsuccessful.
Config.BagStrength = 1.0 -- Opacity in black when they put the bag on you, if you don't want it completely black, lower it to 0.8 or 0.5, adjust as needed.
Config.UseGPS = false -- If you want to keep GPS permanently disabled, disable the option.
-- List of controls that are disabled when handcuffed
Config.HandcuffDisabledControls = {
-- 1, -- Pan
-- 2, -- Tilt
21, -- Sprint
24, -- Attack
25, -- Aim
30, -- D
31, -- S
32, -- W
34, -- A
37, -- Weapon Wheel
44, -- Cover
45, -- Reload
47, -- Weapon
59, -- Vehicle steering
71, -- Vehicle forward
72, -- Vehicle reverse
73, -- Clear animation
75, -- Exit vehicle
140, -- Melee
141, -- Melee
142, -- Melee
143, -- Melee
170, -- Animations
167, -- Job
-- 199, -- Pause
264, -- Melee
257, -- Attack 2
263, -- Melee Attack 1
288, -- Phone
289, -- Inventory
}
-- Different blips for when you have the blip option
Config.BlipsOrgas = {
blip_players = 630,
blip_coche = 225,
blip_muerto = 274,
blip_barco = 410,
blip_helicoptero = 43
}
if Config.Framework == 'qb' then
QBCore = exports['qb-core']:GetCoreObject()
elseif Config.Framework == 'esx' then
ESX = exports["es_extended"]:getSharedObject()
else
print '^1[^6jc_organizaciones^1] ^2Framework No encontrada, ingrese esx o qb^0'
return
end
Config.Debug = falseConfig.Drugs = {
["weed"] = {
label = "Marihuana",
paymentType = "cash", -- "cash" o "black"
-- Regular Sale Price --
minPrice = 20,
maxPrice = 50,
-- Enemy Neighborhood Price --
enemigoMin = 80,
enemigoMax = 100,
-- Amount the NPC takes from you when you sell him the drug between 1 and 20 in this case --
sellMin = 1,
sellMax = 20,
-- Prices by map zones can be disabled with zones = false in case you don't want to use this option --
zonas = {
["pier"] = {min = 50, max = 60},
["aeropuerto"] = {min = 60, max = 70}
}
},
["coca"] = {
label = "Cocaína",
paymentType = "black",
minPrice = 250,
maxPrice = 400,
enemigoMin = 120,
enemigoMax = 180,
sellMin = 1,
sellMax = 20,
zonas = false
},
["meta"] = {
label = "Metanfetamina",
paymentType = "black",
minPrice = 200,
maxPrice = 350,
enemigoMin = 80,
enemigoMax = 130,
sellMin = 1,
sellMax = 20,
zonas = {
["aueropuerto"] = {min = 250, max = 400},
["desierto"] = {min = 180, max = 260}
}
}
}
-- In this option you can sell drugs in one way or another | If it's set to "true" the drugs will be sold using the item // If you set it to "false" the drugs will be sold by approaching the NPC with the letter E increases consumption usage
Config.DrugSystem = true
Config.Zonas = { -- Areas where if you sell drugs, the price varies depending on your needs
pier = {x = -1682.24, y = -1066.46, radius = 500.0},
aueropuerto = {x = -1013.52, y = -2701.94, radius = 300.0},
desierto = {x = 1700.0, y = 3600.0, radius = 800.0}
}
Config.DrugSellPolice = 0 --Minimal police force to be able to start selling drugs
Config.SellDistance = 2.0
Config.SellChance = 70 -- 50% chance of accepting the drug, 50% chance of not accepting it
Config.CallPoliceChance = 50 -- % chance that the NPC will call the police if they refuse the drug
Config.RepeatChance = 40 -- Probability that, after buying once, you will want another purchase
-- Alerts for when drugs are sold in a territory that is not yours --
Config.AlertChance = 35 -- % (example: 35% chance)
Config.AlertBlipDuration = 60 -- Seconds
-- Visual configuration of the blip when selling in your neighborhood
Config.AlertBlip = {
sprite = 161,
color = 1,
scale = 1.2,
text = "Venta de droga detectada"
}
Config.SellToCarNpcs = false -- true = can be sold to NPCs in cars, false = only to pedestrians
-- For now, use the ox_target target only for drug sales, and you will also need to have Config.DrugSystem = false
Config.UseTarget = false
Config.Target = {
icon = "fas fa-cannabis",
label = "Vender droga",
distance = 2.5
}
Config.ProgresoDroga = 0.05 -- % that increases when selling drugs in your territory
Config.PenalizacionDroga = 0.10 -- how much the enemy will lose if you sell to him in his territory
Config.SubirNivelDroga = {min = 0.0, max = 0.001}
Config.FreezeDuringSell = true -- Freezes the position of players and NPCs for a few seconds to prevent them from running away while selling drugs and such.
Config.Width = 3000 -- Width of the predefined graffiti
Config.Height = 1800 -- Height of the predefined graffiti
Config.DistanciaGraffiti = 50.0
Config.GraffitiMaxAltura = 3.0 -- Maximum height you can put a graffiti when you are doing it
Config.ProgresoGraffiti = 10 -- Percentage that adds to the territory if it is from your organization
Config.PenalizacionGraffiti = 10 -- Percentage that remains in the territory if it is not part of its organization
Config.MaxGraffitisPorZona = 5 -- Maximum graffiti per territory
Config.RadioZonaGraffiti = 100.0 -- Do not touch it since it is the meters that the territories have!
Config.GraffitiBlacklist = { -- Areas where graffiti cannot be applied
{ coords = vector3(429.7076, -982.464, 30.705), radius = 50.0 }, -- Police Station
}
Config.Interiores = { -- Predefined interiors, you can add more without any problem
{
label = "Interior Club House 1",
img = "img/interiors/int1.png",
nivel = 2,
precio = 250000,
coords = vector3(1110.299, -3166.81, -37.51),
},
{
label = "Interior Club House 2",
img = "img/interiors/int3.png",
nivel = 2,
precio = 235000,
coords = vector3(997.3955, -3164.00, -38.90),
},
{
label = "Interior Freak Shop",
img = "img/interiors/int2.png",
nivel = 5,
precio = 500000,
coords = vector3(575.4541, -422.860, -69.64),
}
}
Config.CooldownMision = 300 -- Cooldown time in seconds until you can start another mission
Config.Misiones = {
{
id = "transporte_armas",
nombre = "Transporte de Armas",
descripcion = "Lleva un cargamento de armas desde una localización hasta un sitio secreto sin perderlo.",
nivelMinimo = 4,
tiempoEstimado = 25,
dificultad = "media",
exp = 0.10,
subirNivel = 0.08,
progresosMaximos = 3,
icon = "fas fa-truck-loading"
},
{
id = "control_zona",
nombre = "Controlar un Territorio",
descripcion = "Mantente en un territorio enemigo durante 5 minutos para poder completar esta misión.",
nivelMinimo = 1,
tiempoEstimado = 10,
dificultad = "dificil",
exp = 0.20,
subirNivel = 0.13,
progresosMaximos = 2,
icon = "fas fa-map-marked-alt"
},
{
id = "conseguir_maletin",
nombre = "Consigue el maletin secreto",
descripcion = "Estate atento, y asiste con los maximo de tus hombres, vas a tener que pelear por un maletin el cual contiene mucho valor, consiguelo y llevalo a una localización secreta.",
nivelMinimo = 1,
tiempoEstimado = 10,
dificultad = "dificil",
exp = 0.20,
subirNivel = 0.16,
progresosMaximos = 3,
icon = "fas fa-briefcase"
},
{
id = "venta_droga",
nombre = "Venta de Droga",
descripcion = "Entrega paquetes de droga a varios clientes por la ciudad.",
nivelMinimo = 2,
tiempoEstimado = 20,
dificultad = "dificil",
exp = 0.10,
subirNivel = 0.06,
progresosMaximos = 15,
icon = "fas fa-cannabis"
},
{
id = "graffitis",
nombre = "Pintar Graffitis",
descripcion = "Coloca 5 graffitis en diferentes puntos del mapa.",
nivelMinimo = 1,
tiempoEstimado = 5,
dificultad = "facil",
exp = 0.10,
subirNivel = 0.05,
progresosMaximos = 5,
icon = "fas fa-spray-can"
},
{
id = "transporte_cliente",
nombre = "Transporte de Cliente (Mafia)",
descripcion = "Recoge a un cliente importante de la mafia y entrégalo sano y salvo a su destino. Evita peleas y persecuciones.",
nivelMinimo = 1,
tiempoEstimado = 20,
dificultad = "media",
exp = 120,
subirNivel = 1,
progresosMaximos = 5,
icon = "fas fa-user-shield"
},
{
id = "reclutar_integrantes",
nombre = "Recluta a 30 integrantes",
descripcion = "Consigue que tu organización se haga grande, haz que pasen por tu organizacion al menos 30 miembros.",
nivelMinimo = 1,
tiempoEstimado = 20,
dificultad = "media",
exp = 0.10,
subirNivel = 0.05,
progresosMaximos = 1,
icon = "fas fa-user-plus"
},
{
id = "consigue_interior",
nombre = "Compra un interior para tu organización",
descripcion = "Haz que tu organización consiga patrimonio suficiente como para comprar interiores y disponer de mas espacio para secuestros, almacenes, etc... ¡Recuerda iniciar la misión antes de comprarlo!",
nivelMinimo = 1,
tiempoEstimado = 1,
dificultad = "media",
exp = 0.10,
subirNivel = 0.30,
progresosMaximos = 1,
icon = "fas fa-warehouse"
},
}
Config.MisionesInteraccion = {
["transporte_armas"] = {
vehiculo = "yosemite2",
puntoVeh = {
vector4(1376.862, -740.780, 67.232, 71.48),
vector4(-595.171, 5292.039, 70.214, 342.66),
vector4(101.4479, 3710.037, 39.744, 137.26),
vector4(1239.987, 1913.488, 78.471, 170.1)
},
recogidas = {
vector3(-55.1574, 1912.398, 194.36),
vector3(2401.245, 4026.967, 34.845),
vector3(2506.543, 4215.703, 38.922),
vector3(1902.029, 4919.130, 47.714)
},
entregas = {
vector3(3809.408, 4464.058, 4.3095),
vector3(2890.418, 4381.725, 50.329),
vector3(48.61809, 6657.887, 31.750),
vector3(-295.182, 6340.002, 32.156)
},
posicionesCajas = {
vector3(0.0, -0.9, 0.20),
vector3(0.0, -0.9, 0.60),
vector3(0.0, -0.9, 1.00),
},
blipAlertaDuracion = 3, -- How long does it take for the police to know about the alert from the start of the mission and consecutively in minutes?
blipDuracion = 20, -- How long does the police have to see the blip of the moving vehicle?
tiempoLimite = 25 -- Time limit in minutes to complete the mission, if it is not completed in that time, the mission is failed
},
["control_zona"] = {
tiempoZona = 5,
radioZona = 100.0,
tiempoLimite = 20
},
["conseguir_maletin"] = {
puntosRecogida = {
vector4(202.8793, 2753.870, 43.426, 281.85),
vector4(722.0773, 4176.508, 40.709, 298.9),
vector4(2413.327, 3341.170, 46.750, 102.46),
vector4(-1086.57, 4917.662, 214.84, 250.9)
},
puntosEntrega = {
vector4(2317.187, 2579.000, 46.663, 8.84),
vector4(1540.320, 6336.224, 24.074, 62.48),
vector4(201.3307, 6380.892, 31.426, 1.26),
vector4(885.2256, 3656.152, 32.858, 225.47)
},
numNPCs = 6,
npcModelos = { `g_m_y_mexgoon_02`, `g_m_y_salvagoon_01`, `g_m_m_chigoon_01` },
armas = { `WEAPON_PISTOL`, `WEAPON_MICROSMG`, `WEAPON_SAWNOFFSHOTGUN` },
tiempoLimite = 30
},
["graffitis"] = {
tiempoLimite = 20
},
["venta_droga"] = {
tiempoLimite = 20
},
["consigue_interior"] = {
tiempoLimite = 20
},
["transporte_cliente"] = {
puntosRecogida = {
vector4(202.8793, 2753.870, 43.426, 281.85),
vector4(61.39870, 3708.489, 39.754, 155.22),
vector4(2383.459, 3050.076, 48.152, 1.35),
vector4(-1144.57, 4924.089, 220.70, 273.36)
},
puntosEntrega = {
vector4(2317.187, 2579.000, 46.663, 8.84),
vector4(1540.320, 6336.224, 24.074, 62.48),
vector4(201.3307, 6380.892, 31.426, 1.26),
vector4(885.2256, 3656.152, 32.858, 225.47)
},
tiempoLimite = 15
}
}
-- If you use the English language, disable the previous Config.Misiones and activate this one:
--[[Config.Misiones = {
{
id = "transporte_armas",
nombre = "Weapons Transport",
descripcion = "Deliver a shipment of weapons from one location to a secret site without losing it.",
nivelMinimo = 1,
tiempoEstimado = 25,
dificultad = "medium",
exp = 0.10,
subirNivel = 0.08,
progresosMaximos = 3,
icon = "fas fa-truck-loading"
},
{
id = "control_zona",
nombre = "Control a Territory",
descripcion = "Stay in an enemy territory for 5 minutes to complete this mission.",
nivelMinimo = 1,
tiempoEstimado = 10,
dificultad = "hard",
exp = 0.20,
subirNivel = 0.13,
progresosMaximos = 2,
icon = "fas fa-map-marked-alt"
},
{
id = "conseguir_maletin",
nombre = "Get the Secret Briefcase",
descripcion = "Stay alert and bring as many men as you can, you will have to fight for a briefcase of great value, get it and deliver it to a secret location.",
nivelMinimo = 1,
tiempoEstimado = 10,
dificultad = "hard",
exp = 0.20,
subirNivel = 0.16,
progresosMaximos = 3,
icon = "fas fa-briefcase"
},
{
id = "venta_droga",
nombre = "Drug Dealing",
descripcion = "Deliver drug packages to several clients around the city.",
nivelMinimo = 2,
tiempoEstimado = 20,
dificultad = "hard",
exp = 0.10,
subirNivel = 0.06,
progresosMaximos = 15,
icon = "fas fa-cannabis"
},
{
id = "graffitis",
nombre = "Spray Graffitis",
descripcion = "Place 5 graffitis in different locations on the map.",
nivelMinimo = 1,
tiempoEstimado = 5,
dificultad = "easy",
exp = 0.10,
subirNivel = 0.05,
progresosMaximos = 5,
icon = "fas fa-spray-can"
},
{
id = "transporte_cliente",
nombre = "Client Transport (Mafia)",
descripcion = "Pick up an important mafia client and deliver him safely to his destination. Avoid fights and chases.",
nivelMinimo = 1,
tiempoEstimado = 20,
dificultad = "medium",
exp = 120,
subirNivel = 1,
progresosMaximos = 5,
icon = "fas fa-user-shield"
},
{
id = "reclutar_integrantes",
nombre = "Recruit 30 Members",
descripcion = "Make your organization grow, ensure that at least 30 members join your organization.",
nivelMinimo = 1,
tiempoEstimado = 20,
dificultad = "medium",
exp = 0.10,
subirNivel = 0.05,
progresosMaximos = 1,
icon = "fas fa-user-plus"
},
{
id = "consigue_interior",
nombre = "Buy an Interior for Your Organization",
descripcion = "Make your organization wealthy enough to buy interiors and have more space for kidnappings, warehouses, etc... Remember to start the mission before buying it!",
nivelMinimo = 1,
tiempoEstimado = 1,
dificultad = "medium",
exp = 0.10,
subirNivel = 0.30,
progresosMaximos = 1,
icon = "fas fa-warehouse"
},
}
]]
Config.EnableHolster = true -- Enable or disable the holster (weapons on the back and weapon configurations, remember that this option is only for organizations)
Config.DisableConfigWeaponOption = false -- Removes all options from weapon configurations, both holster and weapon draw animations
Config.DrawingWeapons = {-- Weapons allowed for weapon draw animations
"WEAPON_PISTOL",
"WEAPON_COMBATPISTOL",
"WEAPON_APPISTOL",
"WEAPON_PISTOL50",
"WEAPON_SNSPISTOL",
"WEAPON_HEAVYPISTOL",
"WEAPON_VINTAGEPISTOL",
"WEAPON_MARKSMANPISTOL",
"WEAPON_MACHINEPISTOL",
"WEAPON_VINTAGEPISTOL",
"WEAPON_PISTOL_MK2",
"WEAPON_SNSPISTOL_MK2",
"WEAPON_FLAREGUN",
"WEAPON_STUNGUN",
"WEAPON_REVOLVER"
}
Config.WeaponCategoryOffsets = {
{category = 'handguns', bone = 11816, x = -0.01, y = 0.013, z = 0.22, xRot = -90.0, yRot = 5.0, zRot = -15.0},
{category = 'waisthandgun', bone = 11816, x = -0.04, y = -0.015, z = 0.20, xRot = -90.0, yRot = 17.0, zRot = -13.0},
{category = 'hiphandgun', bone = 51826, x = 0.05, y = -0.013, z = 0.12, xRot = 275.0, yRot = 170.0, zRot = -180.0},
--{category = 'handguns', bone = 6442, x = 0.05, y = -0.03, z = 0.12, xRot = -110.0, yRot = -15.0, zRot = -10.0},
{category = 'boxers', bone = 11816, x = -0.03, y = 0.11, z = -0.07, xRot = -210.0, yRot = 5.0, zRot = -10.0},
{category = 'revolver', bone = 11816, x = -0.08, y = 0.019, z = 0.22, xRot = -90.0, yRot = 5.0, zRot = -15.0},
{category = 'bighandgun', bone = 11816, x = -0.04, y = 0.019, z = 0.22, xRot = -90.0, yRot = 5.0, zRot = -15.0},
{category = 'utilityhandgun', bone = 11816, x = -0.12, y = 0.09, z = -0.17, xRot = 135.0, yRot = -13.50, zRot = -9.5},
{category = 'smallmelee', bone = 11816, x = -0.15, y = -0.15, z = 0, xRot = 0.0, yRot = 90.0, zRot = 0.0},
{category = 'bigmelee', bone = 11816, x = -0.01, y = 0.013, z = 0.21, xRot = -80.0, yRot = 5.0, zRot = -95.0},
{category = 'utilitymelee', bone = 58271, x = 0.1, y = 0.1, z = -0.15, xRot = -90.0, yRot = 0.90, zRot = 90.0},
{category = 'machine', bone = 24818, x = 0.09, y = -0.15, z = 0.1, xRot = 10.0, yRot = 160.0, zRot = 10.0},
{category = 'assault', bone = 24818, x = 0.09, y = -0.15, z = 0.1, xRot = 10.0, yRot = 160.0, zRot = 10.0},
{category = 'shotgun', bone = 24818, x = 0.09, y = -0.15, z = 0.1, xRot = 10.0, yRot = 160.0, zRot = 10.0},
{category = 'sniper', bone = 24818, x = 0.09, y = -0.15, z = 0.1, xRot = 10.0, yRot = 160.0, zRot = 10.0},
{category = 'heavy', bone = 24818, x = 0.09, y = -0.15, z = 0.1, xRot = 10.0, yRot = 160.0, zRot = 10.0},
{category = 'bat', bone = 24816, x = 0.05, y = -0.15, z = 0.02, xRot = 0.0, yRot = 110.0, zRot = 0.0},
-- Rifles tácticos, por delante del chaleco.
{category = 'tacticalrifle', bone = 24818, x = 0.01, y = 0.22, z = 0.1, xRot = 200.0, yRot = 170.0, zRot = 10.0},
-- Pistolas detrás.
{category = 'backhandgun', bone = 24816, x = -0.05, y = -0.15, z = -0.03, xRot = 180.0, yRot = 145.0, zRot = 0.0},
-- Pistolas en la cadena
{category = 'leghandgun', bone = 51826, x = 0.175, y = 0.02, z = 0.134, xRot = -100.0, yRot = -0.0, zRot = -13.0},
-- Pistolas en la cadena
{category = 'handguns2', bone = 51826, x = 0.07, y = 0.030, z = 0.156, xRot = -105.0, yRot = -0.0, zRot = -13.1},
}
Config.RealWeapons = {
{name = 'WEAPON_KNIFE', category = 'smallmelee', model = 'prop_w_me_knife_01', canHide = true},
{name = 'WEAPON_BAT', category = 'bat', model = 'w_me_bat', canHide = true},
--{name = 'WEAPON_NIGHTSTICK', category = 'utilitymelee', model = 'w_me_nightstick', canHide = true},
{name = 'WEAPON_HAMMER', category = 'utilitymelee', model = 'prop_tool_hammer', canHide = true},
{name = 'WEAPON_GOLFCLUB', category = 'bigmelee', model = 'w_me_gclub', canHide = false},
{name = 'WEAPON_CROWBAR', category = 'utilitymelee', model = 'w_me_crowbar', canHide = false},
{name = 'WEAPON_BOTTLE', category = 'smallmelee', model = 'prop_w_me_bottle', canHide = true},
--{name = 'WEAPON_KNUCKLE', category = 'melee', model = 'prop_w_me_dagger', canHide = true},
{name = 'WEAPON_HATCHET', category = 'bigmelee', model = 'w_me_hatchet', canHide = false},
{name = 'WEAPON_BATTLEAXE', category = 'bigmelee', model = 'w_me_battleaxe', canHide = false},
{name = 'WEAPON_STONE_HATCHET', category = 'bigmelee', model = 'w_me_stonehatchet', canHide = false},
{name = 'WEAPON_MACHETE', category = 'bigmelee', model = 'prop_ld_w_me_machette', canHide = false},
--{name = 'WEAPON_SWITCHBLADE', category = 'melee', model = 'w_me_switchblade'},
{name = 'WEAPON_FLASHLIGHT', category = 'utilitymelee', model = nil, canHide = true},
{name = 'WEAPON_PISTOL', category = 'handguns', model = 'w_pi_pistol', canHide = true},
{name = 'WEAPON_COMBATPISTOL', category = 'handguns', model = 'w_pi_combatpistol', canHide = true},
{name = 'WEAPON_APPISTOL', category = 'handguns', model = 'w_pi_appistol', canHide = true},
{name = 'WEAPON_PISTOL50', category = 'bighandgun', model = 'w_pi_pistol50', canHide = true},
{name = 'WEAPON_VINTAGEPISTOL', category = 'handguns', model = 'w_pi_vintage_pistol', canHide = true},
{name = 'WEAPON_HEAVYPISTOL', category = 'handguns', model = 'w_pi_heavypistol', canHide = true},
{name = 'WEAPON_SNSPISTOL', category = 'handguns', model = 'w_pi_sns_pistol', canHide = true},
{name = 'WEAPON_FLAREGUN', category = 'utilityhandgun',model = 'w_pi_flaregun', canHide = true},
{name = 'WEAPON_MARKSMANPISTOL', category = 'handguns', model = 'w_pi_singleshot', canHide = true},
{name = 'WEAPON_CERAMICPISTOL', category = 'handguns', model = 'w_pi_ceramic_pistol', canHide = true},
{name = 'WEAPON_REVOLVER', category = 'revolver', model = 'w_pi_revolver', canHide = true},
{name = 'WEAPON_STUNGUN', category = 'handguns', model = nil, canHide = true},
{name = 'WEAPON_DOUBLEACTION', category = 'revolver', model = 'w_pi_wep1_gun', canHide = true},
{name = 'WEAPON_MICROSMG', category = 'machine', model = 'w_sb_microsmg', canHide = false},
{name = 'WEAPON_SMG', category = 'machine', model = 'w_sb_smg', canHide = false},
{name = 'WEAPON_MG', category = 'machine', model = 'w_mg_mg', canHide = false},
{name = 'WEAPON_COMBATMG', category = 'machine', model = 'w_mg_combatmg', canHide = false},
{name = 'WEAPON_GUSENBERG', category = 'machine', model = 'w_sb_gusenberg', canHide = false},
{name = 'WEAPON_COMBATPDW', category = 'machine', model = 'w_sb_pdw', canHide = false},
{name = 'WEAPON_MACHINEPISTOL', category = 'machine', model = 'w_sb_compactsmg', canHide = false},
{name = 'WEAPON_ASSAULTSMG', category = 'machine', model = 'w_sb_assaultsmg', canHide = false},
{name = 'WEAPON_MINISMG', category = 'machine', model = 'w_sb_minismg', canHide = false},
{name = 'WEAPON_ASSAULTRIFLE', category = 'assault', model = 'w_ar_assaultrifle', canHide = false},
{name = 'WEAPON_CARBINERIFLE', category = 'assault', model = 'w_ar_carbinerifle', canHide = false},
{name = 'WEAPON_ADVANCEDRIFLE', category = 'assault', model = 'w_ar_advancedrifle', canHide = false},
{name = 'WEAPON_SPECIALCARBINE', category = 'assault', model = 'w_ar_specialcarbine', canHide = false},
{name = 'WEAPON_BULLPUPRIFLE', category = 'assault', model = 'w_ar_bullpuprifle', canHide = false},
{name = 'WEAPON_COMPACTRIFLE', category = 'assault', model = 'w_ar_assaultrifle_smg', canHide = false},
{name = 'WEAPON_PUMPSHOTGUN', category = 'shotgun', model = 'w_sg_pumpshotgun', canHide = false},
{name = 'WEAPON_SAWNOFFSHOTGUN', category = 'shotgun', model = 'w_sg_sawnoff', canHide = false},
{name = 'WEAPON_BULLPUPSHOTGUN', category = 'shotgun', model = 'w_sg_bullpupshotgun', canHide = false},
{name = 'WEAPON_ASSAULTSHOTGUN', category = 'shotgun', model = 'w_sg_assaultshotgun', canHide = false},
{name = 'WEAPON_MUSKET', category = 'shotgun', model = 'w_ar_musket', canHide = false},
{name = 'WEAPON_HEAVYSHOTGUN', category = 'shotgun', model = 'w_sg_heavyshotgun', canHide = false},
{name = 'WEAPON_DBSHOTGUN', category = 'shotgun', model = 'w_sg_doublebarrel', canHide = false},
{name = 'WEAPON_SNIPERRIFLE', category = 'sniper', model = 'w_sr_sniperrifle', canHide = false},
{name = 'WEAPON_HEAVYSNIPER', category = 'sniper', model = 'w_sr_heavysniper', canHide = false},
{name = 'WEAPON_MARKSMANRIFLE', category = 'sniper', model = 'w_sr_marksmanrifle', canHide = false},
{name = 'WEAPON_FIREWORK', category = 'heavy', model = 'w_lr_firework', canHide = false},
{name = 'WEAPON_MOLOTOV', category = 'thrown', model = nil, canHide = true},
{name = 'WEAPON_FIREEXTINGUISHER', category = 'thrown', model = nil, canHide = true},
{name = 'WEAPON_PETROLCAN', category = 'thrown', model = nil, canHide = true},
{name = 'WEAPON_SNOWBALL', category = 'thrown', model = nil, canHide = true},
{name = 'WEAPON_BALL', category = 'thrown', model = nil, canHide = true},
{name = 'WEAPON_SMOKEGRENADE', category = 'thrown', model = nil, canHide = true},
{name = 'WEAPON_BZGAS', category = 'thrown', model = nil, canHide = true},
--{name = 'WEAPON_DIGISCANNER', category = 'others', model = 'w_am_digiscanner'},
{name = 'WEAPON_DAGGER', category = 'smallemelee', model = 'prop_w_me_dagger', canHide = true},
--{name = 'WEAPON_GARBAGEBAG', category = 'others', model = ''},
--{name = 'WEAPON_HANDCUFFS', category = 'others', model = ''},
{name = 'WEAPON_BATTLEAXE', category = 'bigmelee', model = 'prop_tool_fireaxe', canHide = false},
--{name = 'WEAPON_POOLCUE', category = 'others', model = 'prop_pool_cue'},
{name = 'WEAPON_WRENCH', category = 'bigmelee', model = 'w_me_hammer', canHide = false},
--{name = 'GADGET_NIGHTVISION', category = 'others', model = ''},
--{name = 'GADGET_PARACHUTE', bone = 24818, x = 0.05, y = -0.15, z = 0.02, xRot = 180.0, yRot = 90.0, zRot = 0.0, category = 'others', model = 'p_parachute_s'},
{name = 'WEAPON_PISTOL_MK2', category = 'handguns', model = 'w_pi_pistolmk2', canHide = true},
{name = 'WEAPON_SNSPISTOL_MK2', category = 'handguns', model = 'w_pi_sns_pistolmk2', canHide = true},
{name = 'WEAPON_REVOLVER_MK2', category = 'handguns', model = 'w_pi_revolvermk2', canHide = true},
{name = 'WEAPON_SMG_MK2', category = 'machine', model = 'w_sb_smgmk2', canHide = false},
{name = 'WEAPON_PUMPSHOTGUN_MK2', category = 'shotgun', model = 'w_sg_pumpshotgunmk2', canHide = false},
{name = 'WEAPON_ASSAULTRIFLE_MK2', category = 'assault', model = 'w_ar_assaultriflemk2', canHide = false},
{name = 'WEAPON_CARBINERIFLE_MK2', category = 'assault', model = 'w_ar_carbineriflemk2', canHide = false},
{name = 'WEAPON_SPECIALCARBINE_MK2',category = 'assault', model = 'w_ar_specialcarbinemk2', canHide = false},
{name = 'WEAPON_BULLPUPRIFLE_MK2', category = 'assault', model = 'w_ar_bullpupriflemk2', canHide = false},
{name = 'WEAPON_COMBATMG_MK2', category = 'machine', model = 'w_mg_combatmgmk2', canHide = false},
{name = 'WEAPON_HEAVYSNIPER_MK2', category = 'sniper', model = 'w_sr_heavysnipermk2', canHide = false},
{name = 'WEAPON_MARKSMANRIFLE_MK2', category = 'sniper', model = 'w_sr_marksmanriflemk2', canHide = false},
}
Config.DiscordLogs = {
Admin = 'YOUR_WEBHOOKS_HERE', -- Logs for the administration menu
Tienda = 'YOUR_WEBHOOKS_HERE', -- Logs for the organizations store
Orgs = 'YOUR_WEBHOOKS_HERE', -- Logs of all types of actions of organizations
DarkChat = 'YOUR_WEBHOOKS_HERE', -- Logs of all messages sent to darkchat
Territorios = 'YOUR_WEBHOOKS_HERE', -- Logs of when graffiti is added
Drogas = 'YOUR_WEBHOOKS_HERE' -- Logs for when drugs are sold
}Insert the database for proper operation:
CREATE TABLE IF NOT EXISTS `jotadev_organizaciones` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(64) NOT NULL,
`label` varchar(64) NOT NULL,
`color` varchar(9) DEFAULT NULL,
`miembros_maximos` int(11) NOT NULL DEFAULT 1,
`jefe` varchar(128) DEFAULT NULL,
`permisos` text DEFAULT NULL,
`logos_orga` varchar(255) DEFAULT NULL,
`tienda` longtext DEFAULT NULL,
`notas_administracion` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`puntos_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`puntos_data`)),
`miembros` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`miembros`)),
`rangos` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`rangos`)),
`nivel` float NOT NULL DEFAULT 1,
`dinero_orga` int(11) NOT NULL DEFAULT 0,
`interiores` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`interiores`)),
`npc_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`npc_data`)),
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_nombre` (`nombre`)
) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci;
CREATE TABLE IF NOT EXISTS `jotadev_graffiti` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`identifier` varchar(60) NOT NULL,
`banda` varchar(50) NOT NULL,
`coords` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`coords`)),
`image` varchar(255) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `jotadev_orgs_robos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tipo` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
`descripcion` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`nombre` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
`label` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
`policias_min` int(11) DEFAULT 0,
`nivel_min` int(11) DEFAULT 1,
`info` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`info`)),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `jotadev_orgs_robos` (`id`, `tipo`, `descripcion`, `nombre`, `label`, `policias_min`, `nivel_min`, `info`) VALUES
(8, 'menor', 'Roba el Badulaque Central', 'Badu Central', 'badu_central', 1, 2, '[]'),
(9, 'menor', 'Roba la Tienda de Tattos', 'Tienda Tattos', 'tienda_tatto', 2, 3, '[]'),
(10, 'mayor', 'Roba el Banco Central y llevate todo su dinero', 'Banco Central', 'baco_central', 1, 1, '[]'),
(11, 'mayor', 'Roba los Bancos Fleccas', 'Bancos Fleccas', 'baco_flecca', 2, 3, '[]'),
(12, 'menor', 'Roba la Tienda de Peluquerias', 'Robo Peluquerias', 'tienda_pelu', 1, 3, '[]'),
(13, 'menor', 'Consigue vehiculos robados y vendelos al por mayor', 'Robo Importacion', 'importa_veh', 1, 3, '[]'),
(20, 'mayor', 'Roba el Yate y llevate todo su dinero', 'Robo Yate', 'yate', 2, 5, '[]');
CREATE TABLE IF NOT EXISTS `jotadev_org_darkchat` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`label` varchar(50) NOT NULL,
`texto` text NOT NULL,
`identifier` varchar(64) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `jotadev_org_garages_vehicles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`vehicle` varchar(50) NOT NULL,
`label` varchar(100) NOT NULL,
`props` longtext DEFAULT NULL,
`plate` varchar(20) NOT NULL,
`banda_label` varchar(100) NOT NULL,
`fuel` float(5,2) DEFAULT 100.00,
`stored` tinyint(1) DEFAULT 1,
`estado` enum('robado','veh_orga') NOT NULL DEFAULT 'veh_orga',
PRIMARY KEY (`id`),
UNIQUE KEY `plate_unique` (`plate`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `jotadev_org_logs_money` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`info` longtext DEFAULT NULL,
`label_banda` varchar(50) NOT NULL,
`identifier` varchar(64) NOT NULL,
`name` varchar(100) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `jotadev_org_misiones` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`org_id` int(11) NOT NULL,
`mision_id` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`progreso` int(11) DEFAULT 0,
`completada` tinyint(1) DEFAULT 0,
`fecha_inicio` timestamp NOT NULL DEFAULT current_timestamp(),
`fecha_actualizacion` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `jotadev_org_territorios` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`label_banda` varchar(100) NOT NULL,
`coords` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`coords`)),
`type` enum('graffiti','droga') NOT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp(),
`progreso` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`progreso`)),
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4;
Add items according to your framework
INSERT INTO items (name, label, weight) VALUES
('graffiti', 'Spray de Graffiti', 1),
('deletegraffiti', 'Borrador de Graffitis', 1);-- Graffiti Spray
['graffiti'] = {
['name'] = 'graffiti',
['label'] = 'Spray de Graffiti',
['weight'] = 500,
['type'] = 'item',
['image'] = 'graffiti.png',
['unique'] = false,
['useable'] = true,
['shouldClose'] = true,
['combinable'] = nil,
['description'] = 'Usa este spray para pintar un graffiti en la pared.'
},
-- Borrador de Graffiti
['deletegraffiti'] = {
['name'] = 'deletegraffiti',
['label'] = 'Borrador de Graffitis',
['weight'] = 500,
['type'] = 'item',
['image'] = 'deletegraffiti.png',
['unique'] = false,
['useable'] = true,
['shouldClose'] = true,
['combinable'] = nil,
['description'] = 'Una balleta para limpiar graffitis de la pared.'
},
Dependencies:
bob74_ipl
pma-voice
If you have problems with the radio, use this fully compatible pma-voice
Last updated