Decay & Upkeep
Timer-based building decay and resource-based upkeep for survival games.
Quick Start
javascript
import { DecayManager } from './scripts/decay-manager.js';
import { UpkeepSystem } from './scripts/upkeep-system.js';
import { ToolCupboard } from './scripts/tool-cupboard.js';
// Decay without protection
const decay = new DecayManager({
mode: 'rust',
decayMultiplier: 1.0
});
decay.addPiece(piece);
decay.tick(deltaTime); // Called every frame/tick
// Tool Cupboard protection
const tc = new ToolCupboard({
radius: 30,
upkeepCost: { wood: 100, stone: 50 }
});
tc.setPosition(position);
tc.depositResources({ wood: 500, stone: 250 });
// Protected pieces won't decay while upkeep is paid
Reference
See references/decay-upkeep-advanced.md for:
- •Decay rate formulas by material
- •Tool Cupboard mechanics (Rust pattern)
- •Upkeep scaling with base size
- •Server performance benefits
- •Anti-raid delay mechanics
Scripts
- •
scripts/decay-manager.js- Tick-based decay, material rates, damage states - •
scripts/upkeep-system.js- Resource drain, calculation, UI data - •
scripts/tool-cupboard.js- Protection radius, authorization, resource storage - •
scripts/cleanup-scheduler.js- Server-side cleanup of abandoned structures
Decay Modes
- •Rust: Linear decay over 8-24 hours (material dependent), prevented by Tool Cupboard
- •ARK: Slower decay (days to weeks), tribe-based protection
- •Minecraft: No decay (creative/survival), optional via mods
Design Philosophy
Decay serves dual purposes in survival games: gameplay balance (prevents infinite hoarding) and server performance (removes abandoned bases). The Tool Cupboard pattern elegantly ties both together—players must actively maintain bases, and inactive players' structures automatically clean up.