mri-QboxResourcesQbx Adminmenu

qbx_adminmenu — Manual

Menu administrativo do Qbox construído em cima do ox_lib: gerência de jogadores, servidor, veículos, reports e ferramentas de desenvolvimento, com permissões por ACE.


Sumário

  1. Dependências
  2. Instalação
  3. Permissões (ACE)
  4. Configuração
  5. Comandos
  6. Menu
  7. Reports
  8. Integrações
  9. Entrypoints para outros recursos
  10. Localização
  11. Estrutura de arquivos

Dependências

RecursoObrigatórioObservação
qbx_coreSimFramework base. Usa modules/lib.lua (qbx.*), GetQBPlayers, GetPlayer, Notify, SetPlayerBucket, AddPermission, RemovePermission, GetVehiclesByName, GetVehiclesByHash
ox_libSimMenus, input dialogs, callbacks, comandos, locale
oxmysqlSimGrava os bans na tabela bans
ox_inventorySimAbrir inventário de um jogador (opção “Open Inventory”)
pma-voiceSimLista de rádio (getPlayersInRadioChannel) e mute (toggleMutePlayer)
qbx_vehiclesSim/admincarCreatePlayerVehicle e SetPlayerVehicleOwner
qbx_vehiclekeysSimEntrega as chaves do veículo spawnado, quando o mri_Qcarkeys não está rodando
mri_QcarkeysNãoSe estiver started, substitui o qbx_vehiclekeys na entrega de chaves (GiveTempKeys)
qb-weathersyncNãoNecessário para as opções de clima e hora do menu de servidor
qbx_medicalNãoNecessário para a opção “Revive” (evento qbx_medical:client:playerRevived)
qb-clothingNãoNecessário para a opção “Give Clothing Menu”

Instalação

  1. Copie a pasta qbx_adminmenu para resources/.
  2. Adicione ao server.cfg, depois do qbx_core:
    ensure qbx_adminmenu
  3. A tabela bans usada pelo ban do menu é a do qbx_core — nenhum SQL adicional é necessário se o core já estiver instalado.
  4. Configure as ACEs (veja abaixo). Sem elas ninguém abre o menu.
  5. Conflitos — não rode junto com o qb-admin. Ambos registram /admin, /names, /blips e /admincar.

Permissões (ACE)

Todo o recurso é protegido por IsPlayerAceAllowed. Os nomes das permissões vêm de config/server.lua e usam, por padrão, os grupos do qbx_core:

add_ace group.mod mod allow
add_ace group.admin admin allow
add_ace group.god god allow

Os grupos são hierárquicos no qbx_core, então um admin também satisfaz um gate de mod.

PermissãoCobre
modAbrir o menu (useMenu), responder reports, /names, /blips, opções gerais sobre jogadores, kick, lista de rádio
adminBan, mudar permissões, alterar dados do personagem, dar armas, menu de roupas, /admincar, /setmodel, comandos de dev (/vec2, /vec3, /vec4, /heading)

Configuração

Arquivo: config/server.lua (retorna uma tabela).

CampoTipoObrigatórioDescrição
commandPerms.useMenustring (ACE)SimPermissão do comando /admin e do gate de abertura do menu
commandPerms.reportReplystring (ACE)SimQuem recebe e responde reports
commandPerms.noclipstring (ACE)SimPermissão do comando /noclip (comando atualmente comentado em server/commands.lua)
commandPerms.namesstring (ACE)SimPermissão do comando /names
commandPerms.blipsstring (ACE)SimPermissão do comando /blips
commandPerms.saveVehiclestring (ACE)SimPermissão do comando /admincar
commandPerms.setModelstring (ACE)SimPermissão do comando /setmodel
commandPerms.devstring (ACE)SimPermissão dos comandos /vec2, /vec3, /vec4 e /heading
eventPerms.playerOptionsGeneralstring (ACE)SimMatar, reviver, congelar, ir até, trazer, sentar no veículo, mudar routing bucket
eventPerms.kickstring (ACE)SimExpulsar jogador
eventPerms.banstring (ACE)SimBanir jogador
eventPerms.changePermsstring (ACE)SimAlterar o grupo de permissão de um jogador
eventPerms.changePlayerDatastring (ACE)SimEditar dados do personagem (nome, fome, sede, stress, colete, telefone, dinheiro, job, gang, rádio, reputações)
eventPerms.giveAllWeaponsstring (ACE)SimDar todas as armas de uma categoria
eventPerms.getRadioListstring (ACE)SimListar jogadores em uma frequência de rádio
eventPerms.useMenustring (ACE)SimGate dos callbacks de listagem de jogadores e spawn de veículo
eventPerms.clothingMenustring (ACE)SimAbrir o menu de roupas de outro jogador
weaponListtabela de arraysSimArmas entregues por categoria: pistol, smg, shotgun, assault, lmg, sniper, heavy

Comandos

ComandoPermissãoDescrição
/report [mensagem]Qualquer jogadorAbre um report para a staff online
/admincommandPerms.useMenuAbre o menu administrativo
/namescommandPerms.namesLiga/desliga os nomes dos jogadores sobre as cabeças
/blipscommandPerms.blipsLiga/desliga os blips dos jogadores no mapa
/admincarcommandPerms.saveVehicleRegistra o veículo em que você está como propriedade do seu personagem
/setmodel [model] [id?]commandPerms.setModelTroca o modelo do ped seu ou do jogador informado
/vec2commandPerms.devCopia a vector2 atual para a área de transferência
/vec3commandPerms.devCopia a vector3 atual
/vec4commandPerms.devCopia a vector4 (coords + heading)
/headingcommandPerms.devCopia o heading atual

O comando /noclip existe em server/commands.lua mas está comentado; a permissão commandPerms.noclip continua no config para quando ele for reativado.


Aberto com /admin. Navegação por lib.registerMenu (canto superior direito).

SubmenuO que faz
Player ManagementLista os jogadores online com ID, citizenid, nome, fome, sede, stress, colete, telefone, reputações, dinheiro, job, gang e identificadores (license, discord, steam). Por jogador: opções gerais (kill, revive, freeze, go to, bring, sentar no veículo, routing bucket), administração (kick, ban com horas/dias/meses, alterar permissão) e extras (abrir inventário, menu de roupas, dar item, mutar no rádio)
Server ManagementTrocar clima, trocar hora, listar jogadores em uma frequência de rádio, abrir um stash pelo nome
VehiclesSpawnar veículo (agrupado por categoria do qbx_core), consertar (/fix), comprar (/admincar), remover (/dv), trocar a placa (máx. 8 caracteres). A opção “Tune Vehicle” existe mas apenas avisa que ainda não há suporte
Developer OptionsCopiar vector2/3/4 e heading, exibir coordenadas na tela, exibir telemetria do veículo (embreagem, marcha, RPM, temperatura, óleo, ângulo de esterço, lataria, sujeira, velocidade máxima estimada, net ID, hash, nome)
Pending ReportsVer, responder e apagar reports abertos

O submenu Admin Options (noclip, revive próprio, invisível, godmode, names, blips, godmode de veículo, trocar ped, munição infinita, dar todas as armas de uma categoria, algemar) está implementado em client/admin.lua, mas sua entrada no menu principal está comentada em client/main.lua. Para usá-lo, descomente a linha label1 das opções do menu principal.


Reports

  • Qualquer jogador abre um report com /report [mensagem].
  • Todo staff com a permissão commandPerms.reportReply recebe uma notificação de novo report.
  • No submenu Pending Reports, o staff vê a fila (id, quem enviou, mensagem, quem reivindicou), responde por chat ([REPORT #id] [nome] mensagem enviado ao autor) e apaga o report.
  • O primeiro staff que responder passa a constar como claimed e todos os demais são avisados.
  • A fila fica em memória (tabela REPORTS no servidor) e é perdida em restart do recurso.

Integrações

mri_Qcarkeys

No spawn de veículo pelo menu, se GetResourceState('mri_Qcarkeys') == 'started', as chaves são entregues por exports.mri_Qcarkeys:GiveTempKeys(source, plate). Caso contrário cai no exports.qbx_vehiclekeys:GiveKeys(source, plate).

pma-voice

Alimenta duas opções: “Get Radio List” (lista quem está em uma frequência, via getPlayersInRadioChannel) e “Mute” nos extras do jogador (toggleMutePlayer).

qb-weathersync

As opções de clima e hora do menu de servidor disparam qb-weathersync:server:setWeather e qb-weathersync:server:setTime. Sem o recurso, essas opções não têm efeito.

qbx_medical

A opção “Revive” dispara qbx_medical:client:playerRevived no alvo.

qb-clothing

A opção “Give Clothing Menu” dispara qb-clothing:client:openMenu no alvo.

ox_inventory

A opção “Open Inventory” chama exports.ox_inventory:openInventory('player', id). O “Pull Stash” do menu de servidor usa os eventos de compatibilidade inventory:server:OpenInventory / inventory:client:SetCurrentStash.


Entrypoints para outros recursos

O recurso não expõe exports. A interação com ele é por eventos e callbacks — todos protegidos por ACE no lado servidor.

Abrir o menu em um jogador

TriggerClientEvent('qbx_admin:client:openMenu', source)

Outros eventos de cliente

TriggerClientEvent('qbx_admin:client:setModel', source, 'a_m_m_soucent_04')
TriggerClientEvent('qbx_admin:client:names', source)   -- alterna nomes
TriggerClientEvent('qbx_admin:client:blips', source)   -- alterna blips
TriggerClientEvent('qbx_admin:client:copyToClipboard', source, 'coords4')
TriggerClientEvent('qbx_admin:client:killPlayer', source)

Eventos de servidor

TriggerServerEvent('qbx_admin:server:playerOptionsGeneral', opcao, jogadorSelecionado, input)
TriggerServerEvent('qbx_admin:server:playerAdministration', opcao, jogadorSelecionado, input)
TriggerServerEvent('qbx_admin:server:changePlayerData', campo, jogadorSelecionado, input)
TriggerServerEvent('qbx_admin:server:giveAllWeapons', 'pistol', playerId)
TriggerServerEvent('qbx_admin:server:sendReply', report, mensagem)
TriggerServerEvent('qbx_admin:server:deleteReport', report)

Callbacks (lib.callback)

lib.callback.await('qbx_admin:server:canUseMenu', false)
lib.callback.await('qbx_admin:server:getPlayers', false)
lib.callback.await('qbx_admin:server:getPlayer', false, playerId)
lib.callback.await('qbx_admin:server:getReports', false)
lib.callback.await('qbx_admin:server:spawnVehicle', false, model)
lib.callback.await('qbx_admin:server:clothingMenu', false, targetId)
lib.callback.await('qbx_admin:callback:getradiolist', false, frequencia)

Localização

Strings via ox_lib locale. Arquivos em locales/:

  • cs.json, da.json, de.json, en.json, es.json, fr.json, it.json, pt-br.json, pt.json, sv.json

Idioma ativo pela convar no server.cfg:

setr ox:locale "pt-br"

Estrutura de arquivos

qbx_adminmenu/
├── client/
│   ├── main.lua      — menu principal e navegação entre submenus
│   ├── admin.lua     — noclip, godmode, invisível, munição infinita, dar armas, algemar
│   ├── player.lua    — lista de jogadores e submenus por jogador (geral, administração, extras)
│   ├── server.lua    — clima, hora, lista de rádio, abrir stash
│   ├── vehicle.lua   — spawn por categoria, fix, admincar, dv, troca de placa
│   ├── dev.lua       — coordenadas na tela e telemetria de veículo
│   ├── reports.lua   — fila de reports: ver, responder, apagar
│   └── vectors.lua   — cópia de vector2/3/4 e heading para a área de transferência
├── server/
│   ├── main.lua      — permissões, reports, ban/kick, edição de dados, callbacks
│   └── commands.lua  — /report, /admin, /names, /blips, /admincar, /setmodel, /vec*, /heading
├── config/
│   └── server.lua    — permissões ACE por comando e por evento, lista de armas por categoria
├── locales/          — cs, da, de, en, es, fr, it, pt-br, pt, sv
└── fxmanifest.lua