Denver Studio - Docs

Integração lb-phone

Como ativar o DS-Homes como app dentro do celular lb-phone

O DS-Homes pode ser exibido como um aplicativo dentro do celular lb-phone. O jogador toca no ícone do app e a interface de casas abre como tela do celular — sem precisar usar o comando /casas.

A integração funciona em paralelo com o comando /casas: você pode deixar os dois ativos. O /casas continua abrindo o NUI padrão; o app no celular abre a mesma interface só que dentro do celular do jogador.

Pré-requisitos

  • lb-phone instalado e rodando no servidor
  • ds-homes versão atual (já inclui o módulo client/modules/lb_phone.lua)

Como ativar

1. Habilite a integração no config/preferences.lua

lbPhone = {
  enabled = true,
  identifier = 'ds-homes',
  name = 'Casas',
  description = 'Sistema de casas, aluguel e roubos',
  developer = 'denverst',
  defaultApp = true,
  price = 0,
  size = 60000,
  icon = '',
  fixBlur = true,
},
CampoO que faz
enabledLiga/desliga a integração inteira. Se false, o módulo nem carrega.
identifierID único do app no lb-phone. Não mude (afeta quem já tem o app instalado).
nameNome exibido abaixo do ícone no celular.
descriptionDescrição na loja de apps.
developerAparece como autor na loja.
defaultApptrue = já vem instalado no celular novo. false = jogador precisa baixar pela loja.
pricePreço in-game na loja (0 = grátis). Ignorado se defaultApp = true.
sizeTamanho exibido na loja, em kB. Cosmético.
iconURL do ícone. Vazio = usa cfx-nui-ds-homes/web/build/icon.png se você colocar um lá.
fixBlurMantenha true (corrige distorção quando a UI usa em/rem).

2. Reinicie o ds-homes

restart ds-homes

No console do servidor você verá:

[DS-HOMES] [SUCCESS] lb-phone: app "ds-homes" registrado

Se o lb-phone for reiniciado depois, o ds-homes re-registra automaticamente.

3. Pronto

O ícone do app aparece para todos os jogadores que entram (se defaultApp = true) ou na loja de apps do celular (se defaultApp = false).

Como funciona por baixo

  • O lb-phone carrega web/build/index.html do ds-homes dentro de um iframe quando o jogador toca no ícone.
  • Mensagens enviadas via SendNUIMessage no ds-homes são automaticamente espelhadas para o iframe do app via SendCustomAppMessage. Você não precisa mexer em nenhum código existente.
  • As chamadas fetchNui da interface React continuam funcionando — o GetParentResourceName resolve para ds-homes mesmo dentro do iframe do lb-phone.

Coexistência com Smartphone (Hydrus)

Você pode rodar lb-phone e Smartphone (Hydrus) no mesmo servidor (ou alternar). A integração com o Smartphone (Hydrus) é feita pelo lado do próprio Smartphone (basta cadastrar o ds-homes na configuração dele); a integração com lb-phone é controlada pelo bloco lbPhone.enabled no preferences.lua.

Exports auxiliares

Caso você queira enviar mensagens custom para o app do ds-homes no celular a partir de outro resource:

exports['ds-homes']:lbPhoneSendMessage({ action = 'minha-acao', data = {...} })

local registered = exports['ds-homes']:lbPhoneIsRegistered()

Troubleshooting

App não aparece no celular: verifique se lb-phone iniciou antes do ds-homes (a thread espera, mas se o lb-phone crashar a tentativa não acontece). Reinicie o ds-homes.

App abre em branco: a build do React em web/build/ pode estar faltando. Rode cd web && npx tsc && npx vite build.

Erro AddCustomApp falhou: identifier duplicado (outro resource registrou ds-homes). Mude identifier no preferences.lua.