Início › Documentação › 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.
config/general.lua)Config.Debug = false -- print extra console output for troubleshooting
Config.Language = 'en' -- 'en' | 'es'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.
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'
},
}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 |
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 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.
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.
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 |
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.
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.
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 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.
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 |
config/admin.lua)Controla que jogadores podem abrir o painel de administração e executar 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 IsFrameworkAdminQuando Enabled = true, o recurso avalia, por ordem:
Config.AdminAccess.AcePermissions (aplica-se a todos os frameworks)Config.AdminAccess.Ranks[framework]IsFrameworkAdmin (apenas se UseBridgeFallback = true)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() |
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.
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.
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.
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.
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.