Pular para o conteúdo

10% de desconto, aplicado no checkout

RPScriptsRPScripts

ox_target vs qb-target: escolha pelos scripts e pela migração

Por Luke, RPScripts

Escolha o target que seus scripts indispensáveis suportam nativamente. Mantenha qb-target em uma instalação QB estável quando a troca não resolver um problema demonstrado. Escolha ox_target quando os recursos selecionados usarem sua API e suas integrações documentadas com frameworks. Nenhuma das opções torna um script compatível por si só; renomear um export não é uma migração.

Esta comparação consulta a documentação oficial e os arquivos-fonte em 1 de novembro de 2026. Não é um benchmark em execução. Os exemplos demonstram o registro no cliente; não implementam uma loja, inventário ou emprego seguro. Os dois projetos disponibilizam o código-fonte publicamente. Confira a licença de cada repositório antes de redistribuir.

Comparação rápida

Decisãoox_targetqb-target
Biblioteca necessáriaox_libPolyZone
Limite do frameworkTargeting standalone; integrações adicionais documentadas para ox_core, ESX e qbx_coreQBCore é opcional; verificações ligadas ao framework precisam da integração correspondente
Registro de uma zona retangularaddBoxZone com uma tabela de parâmetrosAddBoxZone com argumentos separados de geometria e opções
Opções relacionadas a permissõesgroups, items, canInteractjob, gang, citizenid, item, canInteract
Atalho de migraçãoCompatibilidade parcial com qtarget; nenhuma garantia geral como substituto de qb-targetIntegrações nativas existentes de qb-target podem permanecer sem alterações

O que o target realmente faz

Um recurso de target permite que jogadores selecionem interações em entidades, modelos ou zonas. O recurso que executa a ação continua responsável pela lógica: abrir uma garagem, comprar um item ou entrar em serviço. Compare os requisitos dessa ação separadamente do ícone de olho ou do desenho do menu.

Comece pelo inventário do framework e das dependências. Para cada script indispensável, registre o nome do target, a versão suportada, o seletor de configuração e os arquivos de integração editáveis. Um selo QBCore não comprova suporte a ox_target. No Qbox, a ponte do core e a integração de target são verificações distintas; as notas de instalação do Qbox explicam o restante da instalação.

APIs nativas: a mesma interação simples de teste

Estes exemplos originais de cliente registram uma caixa de dois metros em torno de coordenadas ilustrativas. Use um deles em um recurso de desenvolvimento depois de iniciar as dependências. Mova a caixa para um local acessível de teste. O clique apenas escreve uma mensagem no console do cliente; não altera dinheiro, inventário nem permissões.

qb-target

exports['qb-target']:AddBoxZone('comparison_demo', vector3(100.0, 200.0, 30.0), 2.0, 2.0, {
    name = 'comparison_demo',
    heading = 0,
    debugPoly = true,
    minZ = 29.0,
    maxZ = 31.0
}, {
    options = {
        {
            label = 'Testar interação',
            icon = 'fas fa-circle',
            action = function()
                print('comparison_demo selected')
            end
        }
    },
    distance = 2.0
})

ox_target

local zoneId = exports.ox_target:addBoxZone({
    name = 'comparison_demo',
    coords = vector3(100.0, 200.0, 30.0),
    size = vector3(2.0, 2.0, 2.0),
    rotation = 0,
    debug = true,
    options = {
        {
            name = 'comparison_demo_option',
            label = 'Testar interação',
            icon = 'fas fa-circle',
            distance = 2.0,
            onSelect = function()
                print('comparison_demo selected')
            end
        }
    }
})

-- Remova a zona de demonstração quando não for mais necessária:
-- exports.ox_target:removeZone(zoneId)

Não faça uma substituição global no código em produção. Formato e altura da zona, nomes das opções, argumentos dos callbacks e identificadores de entidades exigem revisão. No ox_target, addEntity recebe IDs de rede e addLocalEntity recebe handles locais. Confira cada chamada real em vez de presumir que um número inteiro significa a mesma coisa nas duas APIs.

Compatibilidade vai além de exibir uma opção

Os campos groups e items do ox_target dependem da integração com o framework. Uma condição de emprego QBCore não se torna uma verificação de grupo funcional só porque o menu abre. A camada de compatibilidade qtarget cobre parte de outra API. O manifesto fornece qtarget, sem garantir o funcionamento de todo recurso que chama qb-target.

Visibilidade no cliente não é autorização. Um jogador pode tentar disparar um evento do servidor sem selecionar a opção de target. O servidor deve validar por conta própria o cargo, a posição, os itens exigidos e a transação permitida. Ocultar um botão com canInteract não protege uma recompensa ou compra.

Checklist de migração com ponto de retorno

  1. Faça backup dos arquivos e da configuração. Liste chamadas nativas de target, seletores de configuração, dependências, verificações de empregos/itens e funções de limpeza.
  2. Instale o target escolhido e suas bibliotecas em uma cópia. Inicie as dependências antes dos recursos consumidores, sem alterar o diretório em produção.
  3. Adapte uma interação. Teste usuários autorizados e recusados, limites de distância, altura da zona, argumentos da ação e reinício do recurso. Procure opções duplicadas.
  4. Teste os fluxos reais separadamente: a garagem retira o veículo correto; uma ação de emprego verifica serviço e graduação; uma loja verifica pagamento e inventário no servidor.
  5. Remova ou desative o registro antigo somente depois de validar o substituto. Mantenha os arquivos e a configuração anteriores prontos para restauração. Repita a auditoria para cada recurso consumidor.

Desempenho, manutenção e decisão de compra

Esta análise não apresenta um benchmark comparável. Meça o tempo de recurso e o comportamento dos frames no seu cliente com o mesmo mapa, as mesmas interações e ações dos jogadores. Separe o target ocioso, a lista de opções aberta e o trabalho da própria ação. Uma interface que parece mais rápida não comprova menor custo no servidor.

Antes de comprar novos recursos de interação e menus, confira a API de target e a versão exatas. A categoria reúne estilos diferentes de interação; não promete que todo anúncio suporta os dois sistemas. Prefira um seletor já documentado a um adaptador particular que você terá de manter. Para um servidor estável, evitar uma conversão desnecessária é uma decisão técnica e comercial válida.

Perguntas frequentes

Posso substituir qb-target por ox_target sem editar scripts?

Somente quando todos os recursos consumidores já suportam a integração escolhida ou quando você verificou uma ponte adequada. A camada parcial de qtarget, sozinha, não comprova isso.

ox_target é exclusivo do Qbox?

Não. Ele oferece targeting standalone com integrações adicionais de framework documentadas. Condições específicas do framework ainda precisam do suporte correspondente.

Devo executar os dois?

Investigue qualquer necessidade de coexistência em um teste isolado. Registros sobrepostos podem confundir jogadores e dificultar o diagnóstico. Escolha um caminho suportado para cada interação e confira atalhos e menus.

A central de comparações FiveM conecta essa decisão de target ao framework, ao inventário e às demais dependências.

Referências primárias