side_crafting
Progressão e economia · Lua
No sistema antigo, o nome da bancada tinha virado o tipo dela — e anos de edição administrativa separaram os dois.
- Lua
- 4.809 linhas
- Subsistemas
- 5
Fonte verificada no repositório interno em 08/09/2026
O que faz
Em uso
Progressão por experiência e nível, melhorias, equipe contratada, armazenamento com peso e vagas, filas de produção, galpões com segurança e câmeras, e persistência que sobrevive a reinício do servidor.
A parte mais interessante não foi de mecânica, foi de modelagem — e veio de um defeito herdado que só aparece depois de anos de operação.
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 Bancada: receitas, fila de produção e slots. A fila é do grupo, não da máquina.
Por dentro da engenharia
Decisões de implementação
Um bloco por decisão de implementação. Abra o que interessa.
Tipo, lugar e dono são três dimensões independentes
Problema
No sistema anterior, o nome da bancada tinha virado o tipo dela. Anos de edição administrativa separaram as duas coisas, e o resultado era uma bancada rotulada como uma coisa produzindo outra — um defeito impossível de explicar para quem opera e caro de corrigir sem quebrar o histórico.
Solução
O esquema separa o que a bancada é, onde ela está e de quem ela é. Dois grupos podem ter bancada do mesmo tipo sem compartilhar nada, e renomear não muda o comportamento.
Por que foi feito assim
Rótulo de exibição nunca deveria ser chave. Quando é, toda edição de texto vira migração de dados sem que ninguém perceba.
Progressão vinculada ao grupo
Problema
Experiência, melhorias, vagas e equipe podem ser modeladas por bancada ou por grupo. Por bancada, destruir e recriar apaga a progressão; e um grupo que só produz uma coisa acabaria evoluindo em tudo.
Solução
A progressão é chaveada pelo par grupo e tipo. Quem só produz um item evolui só naquele; a equipe contratada é do grupo, porque trabalha para o grupo e não para uma máquina específica.
Por que foi feito assim
A chave do dado deve refletir a quem o dado pertence no mundo. Quando reflete onde ele foi criado, qualquer mudança física apaga história.
Stack
O que foi usado
Servidor
- Lua
- FiveM
- vRP
Dados
- MySQL
- Migrations na subida do sistema
- Chaves compostas por grupo e tipo
Interface
- HTML, CSS e JavaScript na interface em jogo