Sistema de Upgrades
Visão Geral
O sistema de upgrades oferece progressão horizontal dentro de cada tier, permitindo otimização da rede sem necessariamente subir de tier.
Princípios de Design
- Centralizado no Controller: Upgrades afetam TODA a rede (mantém filosofia "uma rede, um comportamento")
- Trade-offs obrigatórios: Todo benefício tem um custo (sem free lunch)
- Balanceável via datapack: Multiplicadores, custos e limites configuráveis
- Tier como base: Tier define capacidade mínima garantida, upgrades são boost limitado
Slots de Upgrade
Progressão de Slots
| Tier | Slots | Justificativa |
|---|---|---|
| T0 | 0 | Tutorial tier, sem customização |
| T1 | 2 | Primeira escolha estratégica |
| T2 | 4 | Mid game, mais flexibilidade |
| T3 | 6 | Late game, múltiplas otimizações |
| T4 | 8 | End game, máxima customização |
| T5-Flow | 8 | Anômalo, herda slots de T4 |
| T6-Density | 8 | Anômalo, herda slots de T4 |
| T7-Link | 8 | Anômalo, herda slots de T4 + Gate support |
Regras de Slots
- Slots são físicos e limitados
- Não é possível expandir slots além do limite do tier
- Upgrades ocupam 1 slot cada
- Mesmo tipo de upgrade pode ser empilhado (ex: 3x Speed Upgrade)
- Efeitos são aditivos dentro do mesmo tipo
- Efeitos são multiplicativos entre tipos diferentes
Exemplo:
2x Speed Upgrade (+50% cada) = +100% throughput total
1x Efficiency Upgrade (-20%) = -20% consumo
Multiplicadores finais:
- Throughput: base × 2.0 (dobro)
- Consumo: base × 0.8 × 1.6 (speed penalty) = base × 1.28 (+28%)
Tipos de Upgrade
1. Speed Upgrade 🚀
Benefício: Aumenta throughput (items/FE/mB por canal por tick)
Custo: Aumenta consumo de energia (standby + port cost)
Valores padrão (ajustáveis via datapack):
{
"type": "speed",
"throughput_multiplier": 1.5,
"energy_cost_multiplier": 1.3
}
Use case:
- Redes de alta demanda (factories, mass production)
- Quando energia é abundante
- Minimizar número de Ports necessárias
Não recomendado quando:
- Energia limitada
- Early game (custo proibitivo)
2. Efficiency Upgrade ⚡
Benefício: Reduz consumo de energia (standby + port cost)
Custo: Reduz throughput
Valores padrão (ajustáveis via datapack):
{
"type": "efficiency",
"energy_cost_multiplier": 0.8,
"throughput_multiplier": 0.9
}
Use case:
- Redes de baixa demanda (AFK farms, passive production)
- Quando energia é escassa
- Redes 24/7 que precisam sustentabilidade
Não recomendado quando:
- Alta demanda de throughput
- Late game com energia ilimitada
3. Capacity Upgrade 📦
Benefício: Aumenta buffer energético (controller + ports + fibers)
Custo: Aumenta custo de standby (manutenção do buffer maior)
Valores padrão (ajustáveis via datapack):
{
"type": "capacity",
"buffer_multiplier": 1.5,
"standby_cost_multiplier": 1.2
}
Use case:
- Redes que enfrentam BROWNOUT frequente
- Suavizar picos de demanda
- Atrasar COLLAPSE em caso de corte de energia
Não recomendado quando:
- Rede já tem buffer abundante
- Fonte de energia instável (standby cost maior = drain mais rápido)
4. Channels Upgrade 🔀
Benefício: Aumenta número de canais paralelos
Custo: Aumenta consumo de energia (port cost scaling)
Valores padrão (ajustáveis via datapack):
{
"type": "channels",
"channels_multiplier": 1.25,
"energy_cost_multiplier": 1.15
}
Use case:
- Redes com muitos payloads simultâneos
- Evitar gargalos de canal
- Maximizar utilização de Ports
Não recomendado quando:
- Canais já sobram (desperdício de energia)
- Topologia pequena (poucos Ports)
Stacking e Interação
Stacking de Mesmo Tipo
Upgrades do mesmo tipo são aditivos:
1x Speed: +50% throughput
2x Speed: +100% throughput (1.5 + 1.5 - 1.0 = 2.0)
3x Speed: +150% throughput (1.5 + 1.5 + 1.5 - 2.0 = 2.5)
Custos também empilham:
1x Speed: +30% consumo
2x Speed: +60% consumo
3x Speed: +90% consumo
Interação Entre Tipos
Upgrades de tipos diferentes são multiplicativos:
Configuração: 2x Speed + 1x Efficiency
Throughput final:
base × (1 + 2×0.5) × (1 - 0.1)
= base × 2.0 × 0.9
= base × 1.8 (↑80%)
Consumo final:
base × (1 + 2×0.3) × (1 - 0.2)
= base × 1.6 × 0.8
= base × 1.28 (↑28%)
Estratégia: Combinar Speed + Efficiency pode dar boost de throughput com custo controlado.
Balanceamento
Arquivo de Configuração
data/weave_network/upgrades/multipliers.json:
{
"speed": {
"throughput_boost": 0.5,
"energy_cost_penalty": 0.3
},
"efficiency": {
"energy_cost_reduction": 0.2,
"throughput_penalty": 0.1
},
"capacity": {
"buffer_boost": 0.5,
"standby_cost_penalty": 0.2
},
"channels": {
"channels_boost": 0.25,
"energy_cost_penalty": 0.15
}
}
Filosofia de Balanceamento
- Nenhum upgrade é estritamente superior: Todo boost tem um custo
- Trade-offs significativos: Custo deve ser sentido, não trivial
- Escolhas estratégicas: Diferentes setups para diferentes use cases
- Tier ainda importa: Upgrade não substitui subir de tier, apenas otimiza
Exemplo de progressão saudável:
T1 + 2x Speed Upgrade < T2 base (tier sempre melhor que upgrades)
T2 + 4x Speed Upgrade ≈ T3 base (upgrades maxados aproximam tier superior)
T3 + 6x otimizado > T2 maxado (tier + upgrades > tier inferior maxado)
Crafting (Loom)
Sistema de Tecelagem
Upgrades são tecidos no Loom usando:
- Base material (tier-specific dust/essence)
- Modifier material (define tipo de upgrade)
- Energia (FE consumido durante craft)
- Tempo (ticks de processamento)
Receita Exemplo (Speed Upgrade T2)
{
"type": "weave_network:loom",
"base": {
"item": "weave_network:weave_dust_t2"
},
"modifier": {
"item": "minecraft:redstone_block"
},
"result": {
"item": "weave_network:speed_upgrade_t2"
},
"energy": 50000,
"time": 200
}
Materiais por tipo:
- Speed: Redstone Block (movimento, velocidade)
- Efficiency: Lapis Block (eficiência, otimização)
- Capacity: Ender Pearl (armazenamento, espaço)
- Channels: Gold Ingot (condutividade, paralelismo)
Tier-Locking
Upgrades são tier-locked:
- Speed Upgrade T1 só funciona em Controller T1
- Speed Upgrade T2 só funciona em Controller T2+
- Etc.
Justificativa:
- Evita trivializar progressão (não pode usar upgrade T7 em T1)
- Incentiva subir de tier (tier maior = acesso a upgrades melhores)
- Balanceamento mais controlado
UI e Interação
Controller GUI
Tela de Upgrades:
┌─────────────────────────────────────┐
│ Controller T3 (Tier 3) │
│ │
│ Upgrade Slots: [▪][▪][▪][▪][▪][▪] │
│ ^ ^ ^ ^ - - │
│ │ │ │ │ │
│ Speed×2 Eff Ch │
│ │
│ Network Stats: │
│ Throughput: 64 → 115 items/t │
│ Consumption: 10 → 13 FE/t │
│ Channels: 6 → 7 │
│ Buffer: 100k FE │
└─────────────────────────────────────┘
Preview ao Hover:
Speed Upgrade T3
─────────────────
✅ +50% throughput
❌ +30% energy cost
If installed:
Throughput: 64 → 96 items/t
Consumption: 10 → 13 FE/t
Instalação/Remoção
Instalar:
- Segurar upgrade em mão
- Shift+right-click no Controller
- Upgrade consumido, efeito aplicado imediatamente
Remover:
- Abrir GUI do Controller
- Shift+click em slot com upgrade
- Upgrade dropa no chão, efeito removido imediatamente
Persistência:
- Upgrades salvos em NBT do Controller
- Quebrar Controller: drop garantido (controller block + tier core + upgrades)
- Chunk unload/reload: upgrades preservados
Proteção do Controller
Hardness
Mining Time:
- Sem ferramenta: ~50 segundos (similar a Obsidian)
- Pickaxe de madeira/pedra: ~25 segundos
- Pickaxe de ferro: ~5 segundos
- Pickaxe de diamante: ~3 segundos
- Pickaxe netherite: ~2.5 segundos
Explosion Resistance:
- Creeper: não destrói
- TNT: não destrói
- Wither: destrói (mas raro, balanceado)
Justificativa:
- Evitar quebra acidental (invest significativo em upgrades)
- Não impedir remoção intencional (não é bedrock)
- Proteger contra griefing básico
Drop Garantido
Ao quebrar Controller, sempre dropa:
- Controller block (pode ser recolocado)
- Tier core (pode ser reutilizado)
- Todos os upgrades instalados (podem ser reutilizados)
Sem perda de progresso (friendly gameplay).
Implementação Técnica
Fases de implementação
Marco 6 — Sistema base:
- Slots de upgrade no Controller (NBT)
- Aplicação de multiplicadores no Scheduler
- Debug Wrench mostra upgrades instalados
- Commands para testar (/weave upgrade add/remove)
Integração com o Loom, após o Marco 3:
- Receitas de upgrade via Loom
- UI do Loom com preview
- Integração com sistema de energia
Marco 7 — Balanceamento:
- Ajuste fino de multiplicadores
- Testes de gameplay
- Feedback da comunidade
- Datapack candidato à release 1.0
Estrutura de Dados
Controller NBT:
{
TierId: 3,
Upgrades: [
{Type: "speed", Tier: 3},
{Type: "speed", Tier: 3},
{Type: "efficiency", Tier: 3},
{Type: "channels", Tier: 3}
]
}
RuntimeEntry (cacheado):
class RuntimeEntry {
// Existing fields
int tier;
int channels;
// New fields
UpgradeSet upgrades; // Parsed from Controller NBT
double throughputMultiplier; // Computed from upgrades
double energyCostMultiplier;
double bufferMultiplier;
double channelsMultiplier;
}
Scheduler Integration:
int effectiveRate = (int) (baseRate * entry.throughputMultiplier);
int effectiveCost = (int) (baseCost * entry.energyCostMultiplier);
int effectiveChannels = (int) (baseChannels * entry.channelsMultiplier);
Casos de Uso
Caso 1: Early Game (T1)
Setup: T1 Controller + 10 Ports + gerador básico
Problema: Energia limitada, throughput baixo
Solução:
- 1x Efficiency Upgrade (-20% consumo, -10% throughput)
- 1x Capacity Upgrade (+50% buffer, +20% standby)
Resultado:
- Rede sustentável 24/7 com gerador básico
- Buffer aguenta picos de demanda
- Trade-off aceitável de throughput (ainda em early game)
Caso 2: Mid Game (T2/T3)
Setup: T3 Controller + 50 Ports + gerador solar
Problema: Throughput insuficiente para factory automation
Solução:
- 3x Speed Upgrade (+150% throughput, +90% consumo)
- 1x Channels Upgrade (+25% canais, +15% consumo)
- 1x Capacity Upgrade (+50% buffer)
Resultado:
- 2.5x throughput (factory funciona rápido)
- Mais canais (menos gargalos)
- Buffer maior (aguenta noite sem solar)
- Consumo 2.15x (ainda sustentável com solar array)
Caso 3: End Game (T4+)
Setup: T4 Controller + 100+ Ports + reactor de fusão
Problema: Energia infinita, quer máxima performance
Solução:
- 4x Speed Upgrade (+200% throughput, +120% consumo)
- 4x Channels Upgrade (+100% canais, +60% consumo)
Resultado:
- 3x throughput (máximo)
- 2x canais (zero gargalos)
- 2.8x consumo (irrelevante com reactor)
- Rede mais rápida possível em T4
Referências
- Tiers e decisões — stats e função de cada tier
- Regras e custo lógico — aplicação de regras e seus custos
- Alpha jogável T0–T1 — primeiro recorte de progressão e Loom