Skip to content

Relationship and Sacrifices

emkacz edited this page Jun 21, 2026 · 1 revision

Relationship & Sacrifices 💜

Sculk Companion features a dynamic relationship and transaction-safe sacrifice system, turning interactions with the AI into an immersive RPG mechanic.


📈 Affection Score

Each player has an individual affection score with Sculk ranging from -100 (Hostile) to +100 (Devoted). This score is saved inside the player’s JSON profile (plugins/sculk/players/<UUID>.json).

Affection Tiers

How the AI treats a player and what actions it is willing to perform depends on this score:

Affection Range Relationship Tier AI Behavior
50 to 100 Devoted Extremely friendly; willingly grants buffs, heals, and high-value gifts.
20 to 49 Friendly Cooperative; willing to gift basic items and play sound effects.
0 to 19 Neutral Standard interactions; polite but reserved.
-30 to -1 Cold Sarcastic or silent; refuses to execute most helpful tools.
-100 to -31 Hostile Cold and demanding; may mock the player or refuse requests completely.

⏱️ Affection Cooldown

To prevent players from spamming simple items (like cobblestone or seeds) to quickly max out their relationship, positive affection gains are subject to a 2-minute server-side cooldown.

  • Standard Interactions: Low-value gifts or friendly conversations will trigger the cooldown.
  • Bypassing the Cooldown: The AI can override the cooldown by setting bypass_cooldown: true in its tool call. This is meant for high-value sacrifices (e.g. diamonds, netherite) or major player deeds.
  • Negative Affection: Decreasing affection (insulting Sculk, attempting unauthorized commands) is never restricted by cooldown.

🔥 The Sacrifice Engine

Players can offer the item they are holding in their main hand to Sculk as a tribute.

How to Sacrifice:

  1. Hold the item in your main hand.
  2. Ask Sculk to accept it (e.g. "Sculk, please accept this raw copper as a sacrifice.").
  3. The AI calls the sacrifice_held_item(points, reason, bypass_cooldown) tool.

Transaction Safety:

The sacrifice tool checks if the affection gain is currently blocked by the 2-minute cooldown before taking the item:

  • Success: If the affection change is allowed, 1 item is consumed from the player's hand, particles/sounds play, and their affection score is updated.
  • Blocked by Cooldown: If the cooldown is active, the tool fails, the affection score is unchanged, and your item is not consumed (it remains safe in your hand). The AI will explain that it cannot accept your gift yet.

Approximate Item Values (AI-Determined)

  • Garbage/Insults (Cobblestone, Dirt, Rotten Flesh): -5 to -10 affection (cooldown does not apply to negative changes).
  • Common Resources (Coal, Raw Iron, Bread): +3 to +5 affection (subject to cooldown).
  • Valuable Resources (Gold, Iron Block): +5 to +8 affection (subject to cooldown).
  • Rare Items (Diamonds, Emeralds): +10 to +15 affection (bypasses cooldown).
  • High-Value Tributes (Netherite, Beacons, Wither Skulls): +20 to +30 affection (bypasses cooldown).

Clone this wiki locally