HUD Roblox Completo: Vida, Moedas, Minimapa e Alertas
Gere um HUD profissional e modular para experiências Roblox, reunindo indicadores de vida, moeda, minimapa e notificações em uma única interface responsiva. O prompt orienta a IA a adaptar o código à estrutura real do seu projeto, incluindo nomes de RemoteEvents, pastas de mapa, atributos e objetos existentes no Explorer.
O resultado esperado é um LocalScript Luau completo, comentado e pronto para colar no Roblox Studio. Ele prioriza atualização eficiente, compatibilidade com teclado, mouse, touch e gamepad, além de separar claramente a apresentação local dos dados que devem permanecer autoritativos no servidor.
Ideal para desenvolvedores que já possuem ou pretendem implementar sistemas de economia, combate e eventos no servidor, mas precisam de uma camada visual sólida, escalável e fácil de configurar no cliente.
Atue como um desenvolvedor Roblox sênior, especialista em Luau, UI/UX para jogos, performance e segurança cliente-servidor. Gere um sistema de HUD completo para Roblox em um único **LocalScript**, pronto para ser colado no Studio. Antes de produzir o código, considere e utilize o contexto do meu projeto abaixo. Se algum item não for informado, use os nomes padrão definidos na seção de configurações do script e deixe comentários claros mostrando onde alterar: [COLE AQUI O CONTEXTO DO MEU JOGO] - Nome e caminho do ScreenGui existente (se houver): - O HUD deve criar a própria interface ou preencher Frames já existentes?: - Nome/local da pasta ou modelo do mapa para o minimapa: - Partes que devem ser ignoradas no minimapa (ex.: decoração, efeitos): - Nome do RemoteEvent de notificações em ReplicatedStorage: - Como a moeda é replicada ao jogador (Attribute, IntValue, leaderstats, pasta Data etc.) e respectivo caminho: - Se há imagens/asset IDs para ícones de vida, moeda, jogador e notificações: - Paleta de cores, fonte e estilo visual desejado: - Limite máximo de notificações simultâneas: - Outras regras específicas: [FIM DO CONTEXTO] ### Tipo e local do script Produza **somente um LocalScript**, que deve ser colocado em **StarterPlayer > StarterPlayerScripts**. O script deve criar e administrar um `ScreenGui` no `PlayerGui` do jogador. Não entregue pseudocódigo, trechos incompletos, múltiplos arquivos ou dependências obrigatórias não declaradas. Caso eu tenha informado uma GUI existente, permita selecioná-la por configuração; caso contrário, crie toda a hierarquia visual via código. ### Funcionalidades obrigatórias 1. **Vida:** acompanhe corretamente `Humanoid.Health` e `Humanoid.MaxHealth` do personagem atual. Reconecte tudo após respawn usando `CharacterAdded`. Exiba valor numérico opcional, barra com preenchimento suave via TweenService e estados visuais para vida baixa. Nunca altere vida pelo cliente. 2. **Moeda:** leia apenas um valor replicado pelo servidor, suportando por configuração `Attribute`, `IntValue/NumberValue` ou `leaderstats`. Atualize a UI quando o valor mudar, formate números grandes (ex.: 1.2K, 3.4M) e anime a transição visual. O cliente jamais deve conceder, descontar ou determinar moeda. 3. **Minimapa:** implemente um minimapa local por `ViewportFrame`, clonando de forma segura os elementos visuais de uma pasta/modelo configurável em `Workspace`. Use `WorldModel` e uma câmera própria. Posicione um marcador local para o jogador, atualize rotação/posição de modo eficiente em `RenderStepped`, limite a área renderizada quando aplicável e não clone scripts, constraints desnecessárias ou objetos perigosos. Caso o mapa informado seja complexo demais para clonagem direta, documente no código uma estratégia de filtragem por tags/atributos e uma configuração de escala. 4. **Notificações:** escute um `RemoteEvent` existente em `ReplicatedStorage` apenas para receber notificações enviadas pelo servidor. Crie uma fila com limite configurável, animações de entrada/saída, duração configurável, categorias `success`, `warning`, `error` e `info`, e prevenção contra spam local. Também ofereça uma função local reutilizável `ShowNotification(titulo, mensagem, tipo, duracao)` para eventos puramente visuais do cliente. 5. **Responsividade:** use `UIScale`, `UIAspectRatioConstraint`, `AnchorPoint`, tamanhos proporcionais e `TextScaled` com limites adequados para desktop, mobile e gamepad. Respeite `GuiService:GetGuiInset()` quando necessário. A interface deve ter boa legibilidade e não capturar inputs do jogo sem necessidade. ### Segurança e qualidade O servidor é autoritativo. Não crie RemoteEvents automaticamente e não use `FireServer` para vida, moeda, inventário, dano ou qualquer estado sensível. Todo RemoteEvent/RemoteFunction que receba dados do cliente deve ser validado no servidor (tipo, limites, permissões, distância e cooldown); mencione isso nos comentários relevantes, mesmo que este HUD apenas consuma dados replicados e notificações do servidor. Use `WaitForChild` com timeouts quando apropriado, conexões organizadas, limpeza de conexões no respawn quando necessária e `pcall` apenas onde houver justificativa real. Evite loops `while true do` desnecessários e atualizações caras da UI. ### Formato obrigatório da resposta Responda primeiro com uma explicação curta da arquitetura e das premissas usadas. Em seguida, entregue o **código Luau integral, funcional e bem comentado em um único bloco markdown ` ```lua `**. Depois do código, forneça instruções objetivas para: configurar as referências no topo do script, criar/testar o RemoteEvent de notificações pelo servidor, testar respawn, alteração de moeda, minimapa e responsividade no modo Play do Roblox Studio. Se uma informação do contexto estiver ausente, não faça perguntas: implemente uma configuração padrão claramente sinalizada.