Inicio › Documentación › Configuración · origen_ilegalv2
Todos los ajustes pensados para el usuario están en config/. Los ficheros no están protegidos por escrow, así que puedes editarlos libremente.
config/general.lua)Config.Debug = false -- print extra console output for troubleshooting
Config.Language = 'en' -- 'en' | 'es'config/gangs.lua)Controla los límites globales de bandas, el banco compartido, el sistema de XP/niveles, el item del CAD y la jerarquía de rangos por defecto.
Config.Gang = {
MaxMembers = 20, -- max members per gang
MaxGangs = 50, -- max concurrent gangs on the server
Bank = {
Enable = true,
StartMoney = 0,
MaxMoney = 10000000,
},
LevelSystem = {
Enable = true,
ExpPerLevel = 1000, -- used only with 'flat' formula
},
CAD = {
ItemName = 'ilegal_cad',
Price = 500, -- cost per additional CAD unit
PayAccount = 'cash', -- 'cash' | 'bank'
},
}Cuando se crea una banda, se generan automáticamente cuatro rangos: Leader, Co-Leader, Member, Recruit. La lista completa de permisos por rango se define en Config.Gang.DefaultRanks. Flags de permiso disponibles:
| Permiso | Qué permite |
|---|---|
invite |
Invitar a nuevos miembros |
kick |
Expulsar miembros |
promote / demote |
Cambiar el rango de un miembro |
manage_bank |
Gestión completa del banco |
withdraw / deposit |
Transacciones bancarias |
access_stash |
Stash compartido de la banda |
access_personal_stash |
Stash personal dentro de la UI de la banda |
access_garage |
Garaje de vehículos de la banda |
access_clothing |
Vestuario de la banda |
manage_stash |
Crear / eliminar stashes |
manage_vehicles |
Añadir / eliminar vehículos de la banda |
manage_ranks |
Editar nombres y permisos de rangos |
manage_locations |
Definir el HQ y las ubicaciones del mapa |
view_logs |
Ver el registro de actividad de la banda |
disband |
Disolver la banda |
quick_search |
Búsqueda rápida con F6 de jugadores cercanos |
quick_handcuff |
Atajo de esposar con F6 |
quick_vehicle |
Llamar con F6 al vehículo de la banda |
quick_radio |
Abrir con F6 la pestaña de radio |
config/labs.lua)Config.Labs = {
Bucket = { Base = 42000 }, -- routing bucket base (base + lab_id per lab)
Interactions = {
EntryDistance = 2.0,
ExitDistance = 2.0,
LaptopDistance = 2.0,
},
RaidPoliceJobs = {
['police'] = true,
['sheriff'] = true,
},
}Cada tipo de laboratorio corresponde a un interior único. Tipos disponibles de serie:
| Clave | Etiqueta |
|---|---|
weed |
Weed Lab |
coke |
Coke Lab |
meth |
Meth Lab |
bunker |
Bunker |
counterfeit |
Counterfeit Cash |
Las coordenadas de spawn y laptop del interior se definen por tipo en Config.LabTypes.
config/crafting.lua)El módulo de crafteo tiene dos escalas independientes de nivel/XP: nivel del jugador y nivel de la banda.
Config.Crafting = {
PlayerLevel = {
Formula = 'linear', -- 'flat' | 'linear' | 'exponential'
BaseXP = 500,
IncrementPerLevel = 250, -- only for 'linear'
Multiplier = 1.5, -- only for 'exponential'
},
GangLevel = {
Formula = 'linear',
BaseXP = 1000,
IncrementPerLevel = 500,
Multiplier = 1.6,
},
}Ejemplos de fórmula (valores por defecto de PlayerLevel)
| Subida de nivel | XP necesaria |
|---|---|
| 1 → 2 | 750 |
| 5 → 6 | 1 750 |
| 9 → 10 | 2 750 |
config/territories.lua)Consulta la página de Territorios para ver el desglose completo del sistema de presencia, el decaimiento de reputación, los ingresos pasivos y las reglas de captura.
config/drug_sales.lua)Consulta la página de Venta de drogas para el comportamiento de los clientes NPC, la configuración de precios, las zonas en lista negra y las animaciones.
config/radio.lua)Config.Radio = {
ItemName = 'radio', -- item required to use gang radio
Frequencies = { -- channel names shown in the F6 radio tab
"Frequency 1",
"Frequency 2",
-- up to any number of channels
},
Voice = {
Enabled = true,
Resource = 'pma-voice',
TalkKey = 'LMENU',
MuteToggleKey = 'R',
UseAnimation = true,
DefaultAnim = 1,
},
}config_sv_logs.lua)Este fichero es solo del servidor: nunca se expone al cliente. Es seguro poner aquí URLs de webhook reales.
Cada evento tiene su propio webhook de Discord. Deja cualquier entrada como "" para omitir ese evento en silencio. Establece Enabled = false para desactivar todo el sistema de una vez.
BridgeConfig.Logs = {
Enabled = true,
-- Embed appearance
Username = "Origen Ilegal | Logs",
AvatarUrl = "", -- image URL for the webhook avatar (optional)
DefaultColor = 0x2F3136, -- default embed color
Footer = "Origen Network • %s",
Webhooks = {
-- BASIC — system operational events
["basic.stash_opened"] = "",
["basic.armory_opened"] = "",
["basic.garage_opened"] = "",
["basic.wardrobe_opened"] = "",
["basic.personal_stash_opened"] = "",
-- USER — player actions inside the gang
["user.gang_created"] = "",
["user.territory_assigned"] = "",
["user.member_joined"] = "",
["user.member_kicked"] = "",
["user.member_promoted"] = "",
["user.member_demoted"] = "",
["user.member_rank_changed"] = "",
["user.money_deposit"] = "",
["user.money_withdraw"] = "",
["user.location_set"] = "",
["user.location_removed"] = "",
["user.rank_created"] = "",
["user.rank_updated"] = "",
["user.rank_deleted"] = "",
["user.rank_migrated"] = "",
["user.vehicle_purchased"] = "",
["user.vehicle_taken_out"] = "",
["user.vehicle_stored"] = "",
["user.vehicle_deleted"] = "",
["user.vehicle_recovered"] = "",
["user.cad_purchased"] = "",
["user.quick_action"] = "",
["user.store_buy"] = "",
["user.store_sell"] = "",
["user.craft_claim"] = "",
["user.lab_cycle_complete"] = "",
["user.lab_buy_storage"] = "",
["user.lab_buy_table"] = "",
["user.lab_buy_upgrade"] = "",
-- ADMIN — server administrator actions
["admin.create_gang"] = "",
["admin.update_gang"] = "",
["admin.delete_gang"] = "",
["admin.set_gang_money"] = "",
["admin.set_gang_level"] = "",
["admin.set_gang_points"] = "",
["admin.set_gang_status"] = "",
["admin.update_gang_config"] = "",
["admin.apply_sanction"] = "",
["admin.remove_sanction"] = "",
["admin.extend_sanction"] = "",
["admin.grant_create_perm"] = "",
["admin.revoke_create_perm"] = "",
["admin.add_member"] = "",
["admin.remove_member"] = "",
["admin.create_announcement"] = "",
["admin.delete_announcement"] = "",
-- ... (stores, labs, crafting, territories — see the file for the full list)
},
}| Categoría | Prefijo | Descripción |
|---|---|---|
| Basic | basic.* |
Eventos operativos del sistema (stashes, garajes, vestuario) |
| User | user.* |
Acciones de los jugadores dentro del panel de banda |
| Admin | admin.* |
Acciones de los administradores del servidor desde el panel de administración |
config/admin.lua)Controla qué jugadores pueden abrir el panel de administración y ejecutar comandos de administrador.
Config.AdminAccess.Enabled = false -- true = use rank system below; false = bridge-only (original behaviour)
Config.AdminAccess.UseBridgeFallback = true -- if no rank matches, fall back to IsFrameworkAdminCuando Enabled = true, el recurso evalúa, por orden:
Config.AdminAccess.AcePermissions (se aplica a todos los frameworks)Config.AdminAccess.Ranks[framework]IsFrameworkAdmin (solo si UseBridgeFallback = true)Config.AdminAccess.Ranks = {
['qb-core'] = { 'admin', 'mod', 'god' },
['qbx_core'] = { 'admin', 'mod', 'god' },
['esx'] = { 'admin', 'mod', 'superadmin' },
}| Framework | Método de comprobación |
|---|---|
qb-core |
QBCore.Functions.HasPermission(source, perm) |
qbx_core |
IsPlayerAceAllowed(source, perm) |
esx |
Comparación de cadenas con xPlayer.getGroup() |
Config.AdminAccess.AcePermissions = {
'group.admin',
-- 'origen_ilegal.admin',
}Cualquier jugador al que se le permita el nodo ACE listado obtiene acceso de administrador, sea cual sea el framework. Útil para las asignaciones de ace en server.cfg.
Para añadir lógica personalizada (roles de Discord, flags en la base de datos, grupos de ox_lib) sin editar los ficheros del núcleo, sobrescribe CustomAdminAccess.HasAccess en custom/server/admin_permissions.lua. Consulta la página Custom para más detalles.
config/robbery_request.lua)Controla el módulo de solicitudes de robo: el sistema de handshake entre el panel de banda y origen_police.
Config.RobberyRequest.Enabled = true -- enable/disable the entire module
Config.RobberyRequest.Permission = 'request_robbery'
Config.RobberyRequest.Anonymous = true
Config.RobberyRequest.PendingExpireMinutes = 5
Config.RobberyRequest.ApprovedExpireMinutes = 15| Clave | Tipo | Descripción |
|---|---|---|
Enabled |
boolean |
Activa o desactiva el módulo. La pestaña se oculta si origen_police no está arrancado, sea cual sea este valor. |
Permission |
string |
Permiso de rango necesario para enviar y cancelar solicitudes. Los líderes siempre lo tienen. |
Anonymous |
boolean |
Si es true, el panel de policía ve "Anonymous" en lugar del nombre real de la banda y del solicitante. |
PendingExpireMinutes |
number |
Minutos tras los cuales una solicitud pending caduca automáticamente. 0 = sin caducidad. |
ApprovedExpireMinutes |
number |
Minutos tras los cuales una solicitud approved caduca automáticamente si no se inicia el robo. 0 = sin caducidad. |
Cada tipo de robo se define en Config.RobberyRequest.Requests. Consulta el desglose completo en la página de Solicitudes de robo.
config/commands.lua)| Comando | Nombre por defecto | Configurable | Restringido |
|---|---|---|---|
| Abrir el panel de banda | /gangorg |
Sí | No |
| Crear una banda | /creategang |
Sí | No |
| Abrir el panel de administración | /gangadmin |
No | Sí — requiere acceso de administrador |
Los nombres de /gangorg y /creategang son totalmente configurables en config/commands.lua. /gangadmin está fijado en el código y siempre usa ese nombre; el acceso se controla en el servidor con las reglas definidas en config/admin.lua.
Config.Commands = {
Gang = {
name = 'gangorg', -- rename freely
help = 'commands.gang.help',
restricted = false,
},
CreateGang = {
name = 'creategang', -- rename freely
help = 'commands.creategang.help',
restricted = false,
},
}/gangadmin ignora por completo Config.Commands: se registra directamente en client/admin.lua y se valida contra config/admin.lua en el lado servidor.