NOTE - This plugin is being replaced by a forge mod and will no longer be updated. Please see SpiritLinks MOD for latest release and information.
SpiritLinks
Overview
SpiritLinks turns Minecraft death into a guided MMO-style “ghost run”, inspired by World of Warcraft.
I wanted a system that makes death feel more like an MMO and less like a punishment that deletes progress:
- I didn’t want players to lose gear and XP due to bad luck or chaotic fights.
- I wanted to reduce situations where loot is lost to lava, despawns due to item timeout, or gets scooped by someone else.
- I wanted a consistent, safe way for players to return to play, and a way to centralize reviving around defined locations (cemeteries / Spirit Healers).
When players die, they become ghosts, get clear guidance to their corpse or a Spirit Healer, hear ambient ghost audio, and can revive either at their death point or by interacting with a marked Healer NPC.
SpiritLinks includes gentle Healer roaming, mob repulsion fields, random on-screen whispers, center-screen revive prompts, and a built-in resource-pack mini server for audio.
Supported Platforms and Requirements
- Minecraft Server: Spigot 1.12.2 (also tested on CatServer 1.12.2 modded forks)
- API: Bukkit/Spigot API 1.12.2-R0.1-SNAPSHOT
- Java: Java 8 (1.8)
- Optional: Vault (for money-based costs) + an economy plugin (EssentialsEco, CMI, etc.)
Installation
Download and Install
- Place
spiritlinks-1.0.0.jar into /plugins/.
- Start the server once to generate
config.yml.
- (Optional) Install Vault and a supported economy plugin if you want currency costs.
Resource Pack (Built-In Server)
SpiritLinks can serve a small resource pack zip containing ghost music and a Spirit Healer voice line.
Configure under resourcePack.*:
- host, port, path, publicHost
If autoPushToPlayers: true, clients will be prompted automatically.
Quick Start (Admin)
Set the Cemetery (revive point)
Run this at the desired location:
Policy is controlled by respawnPolicy:
same_world (default) → cemetery used only if in the same world as death
always_cemetery → always respawn at the cemetery
Mark a Spirit Healer
- Sneak + right-click an entity with the configured item (default:
WOOD_SPADE)
- Or spawn one:
/spirit spawnhealer <giant|golem|guardian|villager|polar_bear> [Name…]
Remove a healer mark by sneaking with the item again, or:
/spirit removehealer while looking at it
Test the Flow
- Die.
- Respawn as a ghost and follow the action bar / boss bar to your tomb or healer.
- Near your corpse (within 10 blocks), left/right click anywhere to revive.
- At a Spirit Healer, right-click to revive (with configurable costs).
Player Experience
Ghost State
- Movement: Flight enabled; noclip-like behavior; safe world clamping
- Visuals: INVISIBILITY (hide body), GLOWING outline, NIGHT_VISION “milky” hue (auto-refreshed)
- Audio: Optional ambient loop using resource-pack sound key or vanilla fallback
- Protection: Ghosts cannot be damaged or pick up items
Wayfinding
- Action Bar: Directional target name + distance
- Boss Bar: Configurable title, color, segmented style, distance progress
- Breadcrumbs: Particle trail steps from player toward the current target
- Target Choice:
wayfinding.prefer = healer_only | cemetery_only | healer_then_cemetery
On-Screen Guidance
- Ghost Whisper (random): Large center title every N seconds with helpful text
- Revive Prompts (persistent while in range):
- Near corpse (≤ 10 blocks): “You can revive here — left or right click anywhere.”
- Near healer (≤ configurable range): “You can revive at the Spirit Healer — right-click the healer.”
Revival Options
Near Death Point (failsafe)
- Click within 10 blocks to revive
- Optional: break nearby gravestone/tomb blocks before reviving so drops spill
Spirit Healer
- Right-click the healer to revive
- Costs can scale over a time window (optional)
Features (Highlights)
Healer NPCs
- Mark any living entity as a Spirit Healer (sneak + right-click with item)
- Optional spawn helper command; auto-naming & glow
- Villagers set to PRIEST/CLERIC
Gentle Roam
- Randomized pacing within a 5-block leash around center (cemetery by default)
Repel Field
- Periodic pushback of mobs/animals/players (configurable targets)
- Optional “hard ring” snap near the boundary
Costs and Scaling
- Flat cost for
/spirit res (XP or money)
- Healer scaling within a time window (
scalingCosts.*):
- XP and/or money ramps per recent resurrection (caps supported)
- Optional durability damage to armor (and hands) starting at a threshold resurrection count
Vault is only required for money mode; XP mode works standalone.
Resource Pack Mini-Server
- Serves a compact zip with:
- ghost loop
- healer voice line
- pack metadata
- Supports external file overrides on disk, or uses embedded assets
- Auto-push prompt + friendly hints if players block server resource packs
Compatibility Shims
Includes back-compat public methods to integrate with older helper classes (e.g., RescueNearDeath):
isGhostPublic
getGhostData
resurrectAtPublic
Commands
/spirit res — Revive at cemetery (observes cooldown/cost)
/spirit status — Show ghost status and nearest healer/cemetery distance
/spirit setcemetery — Set cemetery at your current position
/spirit clearcemetery — Clear the stored cemetery
/spirit spawnhealer <type> [Custom Name…] — Spawn and mark a Spirit Healer
/spirit removehealer — Unmark & remove the targeted healer entity
Aliases
Permissions
spiritlinks.use
Use basic features: /spirit res, /spirit status
Default: true
spiritlinks.admin
Admin actions: set/clear cemetery, spawn/remove healer
Default: op
Optional granular nodes
spiritlinks.markhealer — Toggle Spirit Healer with the shovel (Default: op)
spiritlinks.spawnhealer — Use /spirit spawnhealer (Default: op)
spiritlinks.removehealer — Use /spirit removehealer (Default: op)
Configuration (Key Sections)
Respawn Policy
respawnPolicy: "same_world" | "always_cemetery"
Healer Marking
healer.clickItem: WOOD_SPADE
healer.requireSneakToMark: true
healer.requireFunds: false
Scaling Costs
scalingCosts.windowSeconds: 900
scalingCosts.xp.enabled/base/step/max
scalingCosts.money.enabled/base/step/max
scalingCosts.durability.enabled/triggerFromCount/damagePerPiece
Ghost Visuals and Hue
ghost.allowFlight: true
ghost.useInvisibility: true
ghost.reapplyHueEverySeconds: 30
Effects and Breadcrumbs
effects.nightVision: true
effects.ghostParticles: true
wayfinding.actionBar.enabled/everyTicks/format
wayfinding.bossBar.enabled/color/style/maxDistance/title
wayfinding.breadcrumb.enabled/everyTicks/particle/step/maxPoints
Healer Movement and Repel
healerRoam.enabled/center/radius/checkEveryTicks/maxYDrop
healerRepel.enabled/radius/checkEveryTicks/baseStrength/verticalBoost/hardBoundary/hardBoundaryFactor
healerRepel.affect.monsters/animals/villagers/golems/players
Ghost Whispers and Revive Prompts
ghostWhisper.enabled/minSeconds/maxSeconds/fadeIn/stay/fadeOut
reviveHints.enabled/checkEveryTicks/fadeIn/stay/fadeOut/healerRange
Near-Death Rescue (Click-to-Revive)
rescue.enabled: true
rescue.clickDistance: 10 (spherical; plugin enforces 10 blocks)
rescue.breakTombs: true + rescue.tombBreakRadius: 2
rescue.tombBlocks: [...] (best-effort material name matching on 1.12)
rescue.captureDrops/giveItemsAtRevive/restoreXP: true
Resource Pack Server
resourcePack.enabled/host/port/path/publicHost/autoPushToPlayers
resourcePack.externalGhostOgg/externalHealerOgg/externalPackPng
music.enabled/volume/ghostLoopKey/healerClickKey/ghostLoopEveryTicks
How to Use (Players)
After Death
- You respawn as a ghost (glow outline + night vision).
- Follow the action bar/boss bar to your corpse or the nearest Spirit Healer.
- Random whispers remind you what to do.
Reviving
- At corpse: Walk within 10 blocks of your death spot, then left or right click anywhere.
- At healer: Right-click the Spirit Healer. Costs may apply (see server rules).
- Items/XP can be restored at revive if the server enabled those options.
Admin Tips
- Place healers at cemeteries or hubs; roaming is automatically leashed to the center.
- Use repel fields to keep hostile mobs away from spawn hubs.
- If clients don’t receive the resource-pack prompt, see
messages.packHint* guidance and confirm publicHost points to an address reachable by players.