SuperAPI AI Directory

decay-upkeep

Coding & development

View repository

Updated 10-15 17:24

About this skill

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.