decay-upkeep

SKILL.md

Decay & Upkeep

Timer-based building decay and resource-based upkeep for survival games.

Quick Start

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.

Weekly Installs
26
GitHub Stars
7
First Seen
Jan 23, 2026
Installed on
codex22
opencode22
gemini-cli21
claude-code21
cursor20
github-copilot19