Andrade Systems
Em desenvolvimentoFiveM

wasteland_clans

Organização e tecnologia · Lua

O custo de fundar um clã é pago em item físico, nunca em saldo — e a fonte de verdade dos outros quatro sistemas mora aqui.

Lua
1.564 linhas
Tabelas próprias
4

criadas na subida, com SQL para importação manual

Cargos
5
Clã por jogador
1

garantido por índice único, não por checagem

Fonte verificada no repositório interno em 08/09/2026

O que faz

Em uso

O sistema central do projeto. Fundação de clã paga em item físico, cinco cargos hierárquicos, convite por passaporte, expulsão, promoção e rebaixamento — tudo com registro.

Os registros ficam em tabela própria porque são consultáveis pelos membros dentro do jogo: é gameplay, não apenas auditoria de administração. O espelho externo é opcional e não faz parte do caminho crítico.

O estado vive em tabelas relacionais próprias, e não num armazenamento genérico de chave e valor — decisão que torna consulta, migração e correção manual possíveis sem reescrever o sistema.

Evidência

Como o sistema aparece

Capturas da interface real, renderizada com payload de demonstração derivado dos contratos do resource — organizações, cargos, pessoas e identificadores são sintéticos. Onde não existe interface, entra visualização técnica, rotulada como tal.

  • Interface do sistema

    Painel do clã: identidade, cargo e lotação.

  • Interface do sistema

    Membros: as ações que aparecem dependem do cargo de quem abriu — e o servidor revalida.

  • Interface do sistema

    Território: os QGs que o clã controla, lidos do sistema de território.

  • Interface do sistema

    Árvore de tecnologia: o custo é em item físico e a dependência é declarada, não implícita.

  • Interface do sistema

    A aba de Operações mora aqui: para o jogador é uma tela só, mesmo sendo outro resource.

Por dentro da engenharia

Decisões de implementação

Um bloco por decisão de implementação. Abra o que interessa.

Um clã por jogador é restrição de esquema

Problema

Limitar a um clã por jogador com uma consulta antes da inserção é uma corrida consigo mesmo: dois convites aceitos ao mesmo tempo leem "nenhum clã" e ambos inserem.

Solução

Índice único sobre o passaporte na tabela de membros. A segunda inserção é recusada pelo banco.

Por que foi feito assim

Regra que precisa valer sempre pertence ao esquema. Código pode ser contornado por um caminho que ninguém lembrou de proteger; um índice único, não.

Fundação de clã paga com itens; tablet permanece como ferramenta

Problema

Cobrar a fundação de um clã em saldo abstrato desconecta o preço da economia real do servidor — e um saldo pode ser inflado por qualquer sistema que erre.

Solução

A fundação é paga em itens que alguém precisou coletar. O tablet que dá acesso ao sistema é exigido para usar, mas nunca consumido: é ferramenta, não insumo.

Por que foi feito assim

Preço em item liga o custo social do clã ao trabalho real de coletar. E ferramenta consumida por engano é o tipo de bug que o jogador sente como roubo.

Registros consultáveis pelos membros

Problema

Registro que só a administração enxerga vira dado morto: ninguém consulta, e quando alguém precisa, ele já foi rotacionado.

Solução

Os registros ficam em tabela própria e são consultáveis pelos membros dentro do jogo, com rótulo legível por tipo de evento. O espelho externo é opcional e protegido: se não estiver disponível, nada quebra.

Por que foi feito assim

Um clã que consegue ver quem promoveu quem resolve o próprio conflito. E a mesma tabela serve para a administração quando ela precisa.

Stack

O que foi usado

  • Servidor

    • Lua
    • FiveM
    • vRP
  • Dados

    • MySQL 8.0
    • 4 tabelas relacionais próprias
    • Índice único como invariante
  • Interface

    • HTML, CSS e JavaScript na interface em jogo