Lifesteal gambling plugin for Minecraft 1.21+

v1.0.0 • by lossai

What is this?

When you kill another player, you get a choice: take the safe route and get 1 heart, or gamble for a chance to win more. The catch? You could also lose hearts.

Die too many times and you get sent to The Void - a dark dimension where you must complete a survival quest to escape. Fail that, and you're banned until the next season.

Try the Gamble

You killed a player. Wanna gamble?

The Void Dimension

☠ Death World

After dying 3 times (configurable), players are banished to The Void - a dark dimension with buffed mobs and no escape... unless they complete the quest.

Quest Requirements:

  • Survive for 60 minutes (configurable)
  • Kill 10 zombies
  • Kill 5 creepers
  • Kill 2 skeletons
  • Find and enter the escape portal

Warning: If you escape and die ONE more time after that, you're permanently banned until the season resets.

Features

Weighted Outcomes

Configure each outcome's probability. Make +5 hearts rare, -1 heart common, etc.

Death World System

Unique void dimension with survival quest. Complete it or stay banned.

PlaceholderAPI Support

Display quest progress, hearts, deaths, etc on your scoreboard.

Buffed Mobs

Mobs in the void have configurable health and damage multipliers.

Boss Bar Timer

Shows survival time remaining. Portal coords revealed after time is up.

Season System

Delete perma-banned.yml to reset all bans for a new season.

PlaceholderAPI Placeholders

Use these with any scoreboard plugin that supports PAPI.

General Placeholders (work anywhere)

Placeholder Description
%gamblehearts_hearts% Current max hearts
%gamblehearts_deaths% Death count
%gamblehearts_in_void% true/false if in void
%gamblehearts_is_last_life% true/false if on last life

Void-Only Placeholders

These return empty string when player is NOT in the void. This way your scoreboard won't show gibberish to normal SMP players.

Placeholder Description
%gamblehearts_zombies_killed% Zombies killed in void
%gamblehearts_zombies_needed% Zombies still needed
%gamblehearts_zombies_required% Total zombies required (from config)
%gamblehearts_creepers_killed% Creepers killed in void
%gamblehearts_creepers_needed% Creepers still needed
%gamblehearts_creepers_required% Total creepers required
%gamblehearts_skeletons_killed% Skeletons killed in void
%gamblehearts_skeletons_needed% Skeletons still needed
%gamblehearts_skeletons_required% Total skeletons required
%gamblehearts_time_survived% Time survived (mm:ss)
%gamblehearts_time_remaining% Time left to survive (mm:ss)
%gamblehearts_time_required% Total time required (from config)
%gamblehearts_zombie_progress% Zombie kills as percentage (e.g. 50%)
%gamblehearts_creeper_progress% Creeper kills as percentage
%gamblehearts_skeleton_progress% Skeleton kills as percentage
%gamblehearts_time_progress% Survival time as percentage
%gamblehearts_can_escape% true/false if met all requirements
%gamblehearts_quest_status% Checkmarks for each task (✓✓✗✗)

Scoreboard Setup Guide

Since void-only placeholders return empty when not in void, you can use the same scoreboard config for everyone. The void stuff just won't show for normal players.

Option 1: Conditional Scoreboard (Recommended)

Use a scoreboard plugin that supports conditions (like TAB or AnimatedScoreboard):

# TAB example - show different scoreboard per world
scoreboards:
  world:        # normal smp
    lines:
      - "&c❤ %gamblehearts_hearts% Hearts"
      - "&7Deaths: %gamblehearts_deaths%/3"
  
  deathworld:   # void world
    lines:
      - "&4&lTHE VOID"
      - ""
      - "&fSurvive: &c%gamblehearts_time_remaining%"
      - ""
      - "&fZombies: %gamblehearts_zombies_killed%/%gamblehearts_zombies_required%"
      - "&fCreepers: %gamblehearts_creepers_killed%/%gamblehearts_creepers_required%"
      - "&fSkeletons: %gamblehearts_skeletons_killed%/%gamblehearts_skeletons_required%"

Option 2: Single Scoreboard

Since void placeholders return empty for SMP players, lines will just be blank:

# works but looks weird with empty lines in smp
lines:
  - "&c❤ %gamblehearts_hearts%"
  - "%gamblehearts_zombies_killed%"  # empty in smp, shows kills in void

Option 3: Using in_void Placeholder

Some plugins let you conditionally show lines:

# DeluxeScoreboard style
lines:
  - condition: '%gamblehearts_in_void% == true'
    text: "&4You are in THE VOID"

Commands

Command Description Permission
/gh accept Accept pending gamble gamblehearts.use
/gh decline Decline and take safe hearts gamblehearts.use
/gh reload Reload config + refresh boss bars gamblehearts.admin
/gh voidremove <player> Remove player from void and reset their data gamblehearts.admin
/gh regenerateportal Regenerate void portal at new location gamblehearts.admin

Notes

Config Example

# survival time in void (minutes)
death-world:
  survival-time-minutes: 60
  
  kill-requirements:
    zombies: 10
    creepers: 5
    skeletons: 2
  
  mob-buffs:
    health-multiplier: 2.0
    damage-multiplier: 1.5

# gambling outcomes with weights
outcomes:
  - hearts: 5
    weight: 5      # rare
    name: "&a&l+5 Hearts"
  
  - hearts: -1
    weight: 15     # common
    name: "&c-1 Heart"