Dependências
O Five Bennys usa oxmysql para persistência e, por padrão, a base vRP (Creative Enchanted) através da camada de framework. A integração com qualquer outra base é feita adaptando apenas os arquivosserver/framework.lua e client/framework.lua — o resto do resource não conhece o seu framework.
oxmysql
Dependência obrigatória. Responsável por toda a comunicação com o banco MySQL/MariaDB (
@oxmysql/lib/MySQL.lua).vRP / seu framework
Por padrão usa vRP via Tunnel/Proxy. Para ESX, QBCore, ox_core ou standalone, adapte a tabela
Framework nos dois framework.lua.O manifesto já declara
@vrp/lib/utils.lua, @vrp/config/Global.lua e as interfaces Tunnel/Proxy. Ao trocar de base, remova/ajuste esses @vrp no fxmanifest.lua e reescreva o corpo das funções de Framework.Estrutura do resource
Banco de dados
A tabela é criada automaticamente na primeira inicialização do resource — a estrutura abaixo serve apenas como referência. Cada tunagem é única por placa + modelo.Na inicialização, o resource também detecta bancos antigos (com PK só na
plate) e migra automaticamente a chave primária para (plate, model). Todo o cache de tunagens é carregado em memória (TuningCache) para leitura rápida.Instalação do recurso
1
Copie a pasta do recurso
Coloque a pasta
five-bennys dentro do diretório de recursos do servidor (ex: resources/[core]/).2
Adapte a camada de framework
Ajuste
server/framework.lua e client/framework.lua para o seu framework. Veja a seção Adaptação de Framework.3
Configure as oficinas e regras
Edite
config/config.lua (oficinas, permissões, regras de serviço) e, se quiser, os demais arquivos de config/. Veja a página de Configuração.4
Integre ao seu sistema de veículos
Faça o seu sistema de garagem/spawn reaplicar as tunagens salvas usando os exports do Five Bennys. Veja a seção Integração com o sistema de veículos.
5
Adicione à server.cfg
Inicie o recurso depois do oxmysql e do seu framework.
Adaptação de Framework
Toda a comunicação com a sua base está isolada na tabelaFramework em server/framework.lua (identidade, permissão, veículo, pagamento, banco, notificação) e client/framework.lua (hud e notificação). Adapte apenas o corpo de cada função.
Identidade (server)
Identidade (server)
O resource usa um identificador numérico único por jogador (o “Passport”).
Permissões (server)
Permissões (server)
Controla quem trabalha em cada oficina (
WorkPermission), quem acessa (AccessPermission) e quem é admin.Veículo (server)
Veículo (server)
Pagamento (server)
Pagamento (server)
Banco de dados (server)
Banco de dados (server)
A tabela é criada dentro de
DatabaseReady, então essas funções precisam estar operacionais antes do primeiro ensure five-bennys.Notificações (server e client)
Notificações (server e client)
O resource dispara Para usar o sistema de notificação do seu servidor, troque o corpo desse evento no client por uma chamada ao seu próprio evento/
Framework.Notify(source, style, content, time). Os estilos usados internamente são sucesso, aviso e negado. O evento client five-bennys:notifyBennys já normaliza vários apelidos (verde/success, amarelo/info, vermelho/error) para success / warn / error na NUI.lib.notify.Ganchos de client
Ganchos de client
Chamados quando o painel abre e fecha — use para esconder/mostrar HUD, por exemplo.
Integração com o sistema de veículos
Esta é a integração essencial: sozinho, o Five Bennys salva a tunagem por placa, mas quem spawna os veículos (garagem, aluguel, admin) precisa reaplicá-la quando o veículo aparece. Use os exports server-sideHasTuning e ApplyStoredTuning.
server
Migração de tunagens antigas
Se você vinha de uma versão que guardava os mods ementitydata (chaves Mods:passport:model), o resource registra o comando de console convertBennys para migrar tudo em lote para a nova tabela.
Execute o comando no console do servidor. Ele lê
entitydata WHERE dkey LIKE '%Mods%', converte cada registro para o novo formato e grava em core_bennys_tuning, imprimindo o total de convertidos e falhas.
