Andrade Systems
EntregueFiveMCliente: SIDE RP

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