Início › Documentação › Configuração · origen_ilegalv2

Configuração · origen_ilegalv2

Todas as definições destinadas ao utilizador estão em config/. Os ficheiros não estão protegidos por escrow, por isso podes editá-los livremente.


Geral (config/general.lua)

luaconfig/general.lua
Config.Debug    = false   -- print extra console output for troubleshooting
Config.Language = 'en'    -- 'en' | 'es'

Gangues (config/gangs.lua)

Controla os limites globais de gangues, o banco partilhado, o sistema de XP/níveis, o item do CAD e a hierarquia de cargos por omissão.

luaconfig/gangs.lua
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'
    },
}

Permissões de cargo por omissão

Quando uma gangue é criada, são gerados automaticamente quatro cargos: Leader, Co-Leader, Member, Recruit. A lista completa de permissões por cargo está definida em Config.Gang.DefaultRanks. Flags de permissão disponíveis:

Permissão O que permite
invite Convidar novos membros
kick Expulsar membros
promote / demote Alterar o cargo de um membro
manage_bank Gestão completa do banco
withdraw / deposit Transações bancárias
access_stash Stash partilhado da gangue
access_personal_stash Stash pessoal dentro da UI da gangue
access_garage Garagem de veículos da gangue
access_clothing Vestiário da gangue
manage_stash Criar / remover stashes
manage_vehicles Adicionar / remover veículos da gangue
manage_ranks Editar nomes e permissões dos cargos
manage_locations Definir o HQ e as localizações do mapa
view_logs Ver o registo de atividade da gangue
disband Dissolver a gangue
quick_search Pesquisa rápida com F6 de jogadores próximos
quick_handcuff Atalho de algemar com F6
quick_vehicle Chamar com F6 o veículo da gangue
quick_radio Abrir com F6 o separador de rádio

Laboratórios (config/labs.lua)

luaconfig/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,
    },
}

Tipos de laboratório

Cada tipo de laboratório corresponde a um interior único. Tipos disponíveis de origem:

Chave Etiqueta
weed Weed Lab
coke Coke Lab
meth Meth Lab
bunker Bunker
counterfeit Counterfeit Cash

As coordenadas de spawn e laptop do interior são definidas por tipo em Config.LabTypes.


Crafting (config/crafting.lua)

O módulo de crafting tem duas escalas independentes de nível/XP: nível do jogador e nível da gangue.

luaconfig/crafting.lua
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,
    },
}

Exemplos de fórmula (valores por omissão de PlayerLevel)

Subida de nível XP necessária
1 → 2 750
5 → 6 1 750
9 → 10 2 750

Territórios (config/territories.lua)

Consulta a página de Territórios para ver a descrição completa do sistema de presença, do decaimento de reputação, do rendimento passivo e das regras de captura.


Venda de droga (config/drug_sales.lua)

Consulta a página de Venda de droga para o comportamento dos clientes NPC, a configuração de preços, as zonas em lista negra e as animações.


Rádio (config/radio.lua)

luaconfig/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,
    },
}

Logs (config_sv_logs.lua)

Este ficheiro é apenas do servidor: nunca é exposto ao cliente. É seguro colocar aqui URLs de webhook reais.

Cada evento tem o seu próprio webhook do Discord. Deixa qualquer entrada como "" para ignorar esse evento em silêncio. Define Enabled = false para desativar todo o sistema de uma vez.

luaconfig_sv_logs.lua
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)
    },
}
Categoria Prefixo Descrição
Basic basic.* Eventos operacionais do sistema (stashes, garagens, vestiário)
User user.* Ações dos jogadores dentro do painel da gangue
Admin admin.* Ações dos administradores do servidor a partir do painel de administração

Acesso de administração (config/admin.lua)

Controla que jogadores podem abrir o painel de administração e executar comandos de administrador.

luaconfig/admin.lua
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 IsFrameworkAdmin

Quando Enabled = true, o recurso avalia, por ordem:

  1. Permissões ACE — Config.AdminAccess.AcePermissions (aplica-se a todos os frameworks)
  2. Cargos do framework — Config.AdminAccess.Ranks[framework]
  3. Alternativa do bridge — IsFrameworkAdmin (apenas se UseBridgeFallback = true)

Cargos do framework

luaconfig/admin.lua
Config.AdminAccess.Ranks = {
    ['qb-core']  = { 'admin', 'mod', 'god' },
    ['qbx_core'] = { 'admin', 'mod', 'god' },
    ['esx']      = { 'admin', 'mod', 'superadmin' },
}
Framework Método de verificação
qb-core QBCore.Functions.HasPermission(source, perm)
qbx_core IsPlayerAceAllowed(source, perm)
esx Comparação de strings com xPlayer.getGroup()

Permissões ACE

luaconfig/admin.lua
Config.AdminAccess.AcePermissions = {
    'group.admin',
    -- 'origen_ilegal.admin',
}

Qualquer jogador a quem seja permitido o nó ACE listado obtém acesso de administrador, independentemente do framework. Útil para as atribuições de ace no server.cfg.

Para adicionar lógica personalizada (cargos do Discord, flags na base de dados, grupos do ox_lib) sem editar os ficheiros do núcleo, substitui CustomAdminAccess.HasAccess em custom/server/admin_permissions.lua. Consulta a página Custom para mais detalhes.


Pedidos de assalto (config/robbery_request.lua)

Controla o módulo de pedidos de assalto: o sistema de handshake entre o painel da gangue e o origen_police.

luaconfig/robbery_request.lua
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
Chave Tipo Descrição
Enabled boolean Ativa ou desativa o módulo. O separador esconde-se se o origen_police não estiver arrancado, seja qual for este valor.
Permission string Permissão de cargo necessária para enviar e cancelar pedidos. Os líderes têm-na sempre.
Anonymous boolean Se for true, o painel da polícia vê "Anonymous" em vez do nome real da gangue e do requerente.
PendingExpireMinutes number Minutos após os quais um pedido pending expira automaticamente. 0 = sem expiração.
ApprovedExpireMinutes number Minutos após os quais um pedido approved expira automaticamente se o assalto não for iniciado. 0 = sem expiração.

Cada tipo de assalto é definido em Config.RobberyRequest.Requests. Consulta a descrição completa na página de Pedidos de assalto.


Comandos (config/commands.lua)

Comando Nome por omissão Configurável Restrito
Abrir o painel da gangue /gangorg Sim Não
Criar uma gangue /creategang Sim Não
Abrir o painel de administração /gangadmin Não Sim — requer acesso de administrador

Os nomes de /gangorg e /creategang são totalmente configuráveis em config/commands.lua. O /gangadmin está fixo no código e usa sempre esse nome; o acesso é controlado no servidor com as regras definidas em config/admin.lua.

luaconfig/commands.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,
    },
}

O /gangadmin ignora por completo Config.Commands: é registado diretamente em client/admin.lua e validado contra config/admin.lua no lado do servidor.