mri_Qfps — Manual

Menu de otimização gráfica (presets de FPS, ajuste fino de LOD/luzes/sombras, filtros de timecycle) e mira customizada em NUI, com todas as preferências salvas localmente no cliente.


Sumário

  1. Dependências
  2. Instalação
  3. Configuração
  4. Comandos
  5. Presets de FPS
  6. Ajuste fino
  7. Filtros gráficos (timecycle)
  8. Mira customizada
  9. Persistência (KVP)
  10. Integrações
  11. Entrypoints para outros recursos
  12. Localização
  13. Estrutura de arquivos

Dependências

RecursoObrigatórioObservação
ox_libSimDeclarado em dependencies. Fornece lib.addCommand, locale e cache.ped
qbx_coreSimO client carrega @qbx_core/modules/playerdata.lua e reinicializa no evento QBCore:Client:OnPlayerLoaded
oxmysqlSimCarregado pelo fxmanifest (@oxmysql/lib/MySQL.lua), embora o recurso não faça queries
mri_QboxNãoInjeta a entrada “MRI FPS Menu” no menu de jogador (F9)

Instalação

  1. Compile a UI (o ui_page aponta para ui/dist/index.html, que não vem versionado):
    cd ui
    pnpm install
    pnpm build
  2. Copie a pasta mri_Qfps para resources/.
  3. Adicione ao server.cfg:
    ensure mri_Qfps
  4. Não há SQL a importar — o recurso não persiste nada no banco.

Configuração

O único arquivo de configuração é shared/config.lua.

CampoTipoObrigatórioDescrição
Config.LoadingDistanceEnabledboolSimQuando true, o valor de distância de renderização (LOD) salvo em KVP é carregado na inicialização e aplicado a cada frame via OverrideLodscaleThisFrame. Quando false, o LOD nunca é sobrescrito e o loop do FPS boost roda a cada 500 ms em vez de a cada frame
Config.IconAnimationboolNãoPresente no config, mas não é lido por nenhum arquivo Lua do recurso na versão atual

Comandos

ComandoPermissãoDescrição
/fpsTodosAbre o menu de FPS/GFX/Mira. Registrado via lib.addCommand, sem restrição de grupo

Presets de FPS

Selecionados na aba “FPS” do menu. Cada preset ajusta sombras (cascade shadows), corte de luzes e, no caso do ulow, dispara também a rotina de limpeza Optimize.

PresetRótulo na UIEfeito
defaultPadrão (PC Gamer)Restaura sombras e luzes conforme os valores dos sliders; sem otimizações agressivas
mediumMédio (PC Mediano)Sombras em escala 3.0–5.0, corte de luzes em 3.0
lowBaixo (PC Fraco)Sombras desligadas, corte de luzes em 5.0
ulowUltra Low (Batata-Gamer)Sombras e luzes zeradas, radar oculto, e executa a limpeza Optimize: remove chuva, vento, sujeira/molhado do ped, sangue, vidros quebrados, mensagens de ajuda, blur de tela e sirenes distantes

O preset ulow é o único reaplicado automaticamente no boot do recurso (além do timecycle salvo).


Ajuste fino

Três sliders na aba “FPS”, aplicados ao clicar em “APLICAR AJUSTES”. São salvos em KVP e reaplicados no próximo login.

SliderFaixaEfeito no jogo
Distância de Renderização0.1 – 10.0OverrideLodscaleThisFrame — só tem efeito se Config.LoadingDistanceEnabled = true
Luzes Distantes0.0 – 10.0SetLightsCutoffDistanceTweak + SetFlashLightFadeDistance. Valores <= 1.0 também desligam as luzes distantes de veículos
Sombras0.0 – 5.0Escala das cascade shadows. 0 desliga sombras de corda, tracker de entidades e AO blob do ped

O botão “Resetar” volta os três sliders para 1.0 e o preset para default.


Filtros gráficos (timecycle)

Aba “GFX”. Aplica um SetTimecycleModifier (e opcionalmente um SetExtraTimecycleModifier) no cliente. A escolha é salva em KVP e reaplicada no boot.

IDRótulo na UIExtra
defaultPadrão— (limpa os modificadores)
cinemaCinema
yell_tunnel_nodirectOpção #2
tunnelOpção #3
MP_Powerplay_blendOpção #4reflection_correct_ambient

Mira customizada

Aba “Mira”. Desenha uma mira em NUI (CrosshairOverlay.tsx) por cima do HUD e esconde a mira nativa (HideHudComponentThisFrame(14)) enquanto o jogador está em combate.

A mira só é exibida quando o jogador está armado e mirando, atirando ou com o botão de mira pressionado. Ao sair do combate, o overlay permanece por mais 500 ms para não piscar durante a animação de abaixar a arma. Fora de combate, o loop dorme (500 ms desarmado, 50 ms armado) para não custar frames.

Parâmetros

CampoTipoFaixaDescrição
enabledboolLiga/desliga a mira customizada
sizenumber0.5 – 10Comprimento das linhas
thicknessnumber0.5 – 5Espessura das linhas
gapnumber-10 – 10Abertura entre o centro e as linhas
dotboolExibe um ponto central
color_r / color_g / color_bnumber0 – 255Cor RGB
alphanumber0 – 255Opacidade
outlineboolContorno preto nas linhas
outlineThicknessnumber0.5 – 3Espessura do contorno
stylenumberEstilo de renderização do overlay

Presets de mira

Dot (ponto central), Cruz Fechada (competitivo, verde com contorno), Cruz Aberta (clássico, branca) e Nenhuma (volta para a mira nativa do GTA).


Persistência (KVP)

Todas as preferências são do jogador, não do servidor: ficam salvas no KVP local do cliente e sobrevivem a restarts do recurso e do jogo. Nada é enviado ao banco de dados.

ChaveConteúdo
mri_Qfps:PresetFpsPreset ativo
mri_Qfps:TimecycleModifierFiltro gráfico ativo
mri_Qfps:LodDistanceSlider de distância de renderização
mri_Qfps:LightsCutoff / mri_Qfps:LightsCutOffSlider de luzes
mri_Qfps:ShadowsCutoff / mri_Qfps:ShadowsCutOffSlider de sombras
mri_Qfps:Crosshair*12 chaves com os parâmetros da mira (Enabled, Size, Thickness, Gap, Dot, ColorR, ColorG, ColorB, Alpha, Outline, OutlineThickness, Style)

Atenção: a gravação dos sliders usa as chaves LightsCutOff/ShadowsCutOff, enquanto a leitura no boot usa LightsCutoff/ShadowsCutoff. Na prática, os valores de luzes e sombras do ajuste fino não são restaurados após um restart — apenas o preset e o timecycle são.


Integrações

mri_Qbox

Se o mri_Qbox estiver iniciado, o recurso registra automaticamente uma entrada no menu de jogador via exports["mri_Qbox"]:AddPlayerMenu, com título e descrição vindos do locale (menu.mriFpsTitle / menu.mriFpsDescription), ícone tools e animação fade. Ao parar o recurso, a entrada é removida com exports["mri_Qbox"]:RemovePlayerMenu.

Sem o mri_Qbox, o menu continua acessível pelo comando /fps.

Cor de destaque

O client lê GlobalState.UIColors na inicialização e expõe o valor como ColorScheme, compartilhando o esquema de cores da suite MRI.


Entrypoints para outros recursos

Evento mri_Qfps:openFpsMenu

Evento de rede que abre o menu. É o que o comando /fps dispara do servidor para o cliente, e pode ser usado por qualquer outro recurso.

-- do servidor, para um jogador específico
TriggerClientEvent('mri_Qfps:openFpsMenu', source)

O recurso não expõe exports.


Localização

As strings do menu são traduzidas via ox_lib locale. Os arquivos ficam em locales/:

  • en.json — inglês
  • pt-br.json — português do Brasil

O locale ativo é definido pela convar ox:locale no server.cfg:

setr ox:locale "pt-br"

Os textos da NUI (rótulos de abas, sliders e presets) estão embutidos no React e não passam pelo sistema de locale.


Estrutura de arquivos

mri_Qfps/
├── client/
│   └── main.lua              — presets, sliders, timecycle, loop da mira, KVP e callbacks NUI
├── server/
│   └── main.lua              — registra o comando /fps via lib.addCommand
├── shared/
│   └── config.lua            — Config.IconAnimation e Config.LoadingDistanceEnabled
├── ui/                       — fonte da NUI (React + Vite + Tailwind)
│   ├── src/
│   │   ├── App.tsx           — menu com as abas FPS, GFX e Mira
│   │   ├── CrosshairOverlay.tsx — desenho da mira customizada
│   │   ├── providers/VisibilityProvider.tsx — controle de visibilidade da NUI
│   │   └── utils/            — fetchNui, useNuiEvent, helpers
│   └── dist/                 — build gerado (ui_page); não versionado
├── locales/
│   ├── en.json
│   └── pt-br.json
└── fxmanifest.lua