SoulSnatcher
SoulSnatcher is a plugin which revolves around a new core gameplay mechanic for Minecraft Survivial. By introducing souls it creates scenarios where both mobs and players obtain additional mechanics based on their infused or bound souls.
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/paN9K4mTlW0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>The gampleay loop of souls can be seperated into three stages.
Soul Release
After a mob is killed it will release its soul. This is visually symbolized by a floating head of the mob rising upwards. What this means is, essentially the soul is added to the pool of unbound souls for the player who killed the mob. This is important for the next stage.

Infusion
Whenever a mob spawns near a player, it takes a soul from the unbound souls pool of the player and infuses itself with the soul. Through infusion the mob gains mechanics related to the soul. Often times these are almost identical to the abilites players can gain but there are instance where these differ in order to make more sense or be more interesting. Such mechanics range from gaining the ability to shoot an arrow like a skeleton, drink fitting potions like a witch or search out water and jump like a dolphin.

Soul Binding
When a player kills a infused mob a soul reward is generated. The player can then interact with the reward to bind the soul to themselves. Up to two souls an be bound per players, each adds a new mechanic or behaviour.

All in all, this creates a gameplay loop by making infused mobs spawn when players kill mobs. The more mobs killed the more mobs are infused. Players then kill infused mobs to obtain souls themselves.
Soul Lantern
Information on your current soul can be viewed via a soul lantern you get after binding a soul. If you feel to it you can also let go of any bound soul anytime. Additionally, it allows you to see your own soul orbits while held which are normally invisble to avoid disrupting gameplay.

Soul Index
General information and detailed information on all souls can be viewed via /soulindex. It opens an interactive GUI, sorting souls in categories based on mechanics and allows to easily browse them or reinform on the general concept of the plugin.

Soul Vials
A unique item which allows to capture soul rewards in item form. Later on a soul vial can be smashed to spawn the reward again allowing to carry more souls if needed for other purposes. They can be obtained as a drop from Piglin Bartering or simply crafted. Stack size is 16 for empty vials while filled vials cannot be stacked.

Config Options
Features
config.ymlAllowing general settings to be changedsouls.ymlAllows to fine-tune abilites of all souls and enable/disable themlang/lang.ymlFeatures language keys and allows to change text of all souls, items and messages to fit for example another language. Also makes use of MiniMessages
config.yml
settings:
souls:
# The max amount of souls a player can bind. RECOMMENDED to leave at 2. 1 will tone down the plugin to slight flavor. 3-4 will break balance. (Max 4)
max_bound: 2
# The max amount of unbound souls a player can carry, these are the souls which will infuse nearby spawned mobs
max_soul_pool: 15
# The amount of time a soul reward stays in the world before vanishing when not absorbed in ticks (20 ticks = 1 second)
reward_despawn_time: 1200
# The amount of cooldown when using a soul vial in ticks (20 ticks = 1 second)
vial_cooldown: 1200
# Lose all souls on death, when killed by another player offer them as reward (KeepInventory will always save souls regardless of this setting)
lose_souls_on_death: true
infusion:
# The xz distance which mobs have to be from a player to be valid infusion targets on spawn
xz-radius: 50.0
# The y distance which mobs have to be from a player to be valid infusion targets on spawn
y-radius: 30.0
worlds:
# When true the followed world list is for EXCLUSION (no soul mechanics work in the listed worlds), when false its INCLUSION (soul mechanics only work in listed worlds)
exclude_world_list: true
# List of worlds to either exclude soul mechanism or be the only ones it works in
list:
- no_souls
- hub_world
- fest_world
souls.yml
Souls:
allay_soul:
enabled: true
blaze_soul:
enabled: true
# How much damage a hit from aura does
aura_damage: 6.0
# How much cooldown time there is between each aura hit in milliseconds (1000ms = 1s)
aura_hit_cooldown: 2000
# In which sphere around the player aura can hit entities (XYZ hitbox detection)
aura_range: 2.4
# After how much time without casting a hit should aura disable itself in milliseconds (1000ms = 1s)
aura_timeout: 30000
# Time between aura dealing damage and a target stepping in ticks (20 ticks = 1 second)
aura_windup: 4
bogged_soul:
enabled: true
# Poison level as (level - 1) starting from 0 (Poison I)
poison_amplifier: 0
# Poison duration from afflicted projectiles on hit in ticks (20 ticks = 1 second)
poison_duration: 220
chicken_soul:
enabled: true
fall_damage_multiplier: -0.25
# Gravity modifier which is applied percentage based (-0.2 => -20% Gravity)
gravity_mod: -0.2
# Applied to movement speed as MULTIPLY_SCALAR_1 meaning it will multiply the total speed (including other modifiers) by that amount
movement_speed_mod: 0.05
safe_fall_distance: 2.0
cow_soul:
enabled: true
# How much delay before the milk clears all negative effects in ticks (20 ticks = 1 second)
milk_delay_ticks: 15
creeper_soul:
enabled: true
dolphin_soul:
enabled: true
# The horizontal force when dolphin jumping out of water (applied as direction vector multiplication)
dolphin_jump_multiplier: 1.5
# Fixed y value of the dolphin jump vector
dolphin_jump_y: 1.0
enderman_soul:
enabled: true
# Cooldown for evading a projectile in milliseconds (1000ms = 1s)
evade_cooldown: 1500
evoker_soul:
enabled: true
# Cooldown between fangs appearing after an attack in milliseconds (1000 ms = 1 s)
fangs_cooldown: 2500
# Multiplier on how far fangs travel based on distance to target (2.0 -> 2x the distance towards the target)
fangs_range_multiplier: 2.0
ghast_soul:
enabled: true
# Radius of how large the resulting AoE explosion from a ghast shot is
aoe_radius: 3.0
# Cooldown between each projectile fired gains ghast shot attribute in ms (1000ms = 1s)
ghast_shot_cooldown: 1500
# Maximum amount of damage dealt by the AoE explosion when hit at the center
max_AoE_damage: 6.0
# Minimum amount of damage dealt by the AoE explosion
min_AoE_damage: 2.0
# Multiplier of projectile speed of ghast shots (1 means no change in speed)
projectile_speed_multiplier: 0.9
guardian_soul:
enabled: true
# The amount of time before the attack begins charging in milliseconds (1000ms = 1s)
charge_buffer: 1500
# The time it takes to fully charge the attack in milliseconds (1000ms = 1s)
charge_time: 5000
# The attack multiplier which can be reached through charging (0.5 -> 150% damage)
max_charge: 0.5
hoglin_soul:
enabled: true
# Time between each buffered damage portion is applied in ticks (20 ticks = 1 second)
buffer_interval: 15
# In how many portions the damage is split off
buffer_split_amount: 3
# How much of damage taken is added preserve pool (in % => 0.4 = 40%)
damage_preserve_amount: 0.4
horse_soul:
enabled: true
max_jump_bonus: 0.2
# Max amount of movement bonus a player can obtain from a bonus roll from this soul
max_movement_bonus: 0.05
iron_golem_soul:
enabled: true
# If true non-critical hits will throw hit entities into the air similar to an iron golem
upwards_throw_enabled: true
magma_cube_soul:
enabled: true
# Amount to be healed in HP
healing_amount: 0.5
# Cooldown for healing when taking fire/lava damage (1000ms = 1s)
healing_cooldown: 1000
parched_soul:
enabled: true
# Weakness level as (level - 1) starting from 0 (Weakness I)
weakness_amplifier: 0
# Weakness duration from afflicted projectiles on hit in ticks (20 ticks = 1 second)
weakness_duration: 600
phantom_soul:
enabled: true
# The k factor which describes the gliding curve based on the initial downward speed: f(t) = <minDownward> + (1 - <minDownward>) * exp(-k * t)
glide_decay_k: 0.06
# In addition to the gliding gives a slight boost in facing direction using this force
glide_forward_multiplier: 0.05
# The asymptote to the gliding curve, downwards speed will gradually near this speed
glide_min_downward: 0.1
# Smoothes out the gliding curve following the function: smoothedY = currentY * (1 - smoothFactor) + y * smoothFactor
glide_smooth: 0.18
pig_soul:
enabled: true
# How long players have to sneak for a passenger to be dropped in ticks (20 ticks = 1 second)
drop_passenger_delay_ticks: 30
piglin_soul:
enabled: true
gold_bonus:
'0':
attribute: attack_damage
value: 1.0
operation: ADD_NUMBER
'1':
attribute: armor
value: 2.0
operation: ADD_NUMBER
'2':
attribute: movement_speed
value: 0.2
operation: ADD_SCALAR
'3':
attribute: armor_toughness
value: 2.0
operation: ADD_NUMBER
'4':
attribute: attack_speed
value: 0.2
operation: ADD_NUMBER
'5':
attribute: knockback_resistance
value: 0.25
operation: ADD_NUMBER
pillager_soul:
enabled: true
# Chance to be granted an extra mob loot on mob kill if something drops, value in percent (0.2 -> 20%)
extra_loot_chance: 0.2
ravager_soul:
enabled: true
# Cooldown between shout attacks in milliseconds (1000ms = 1s)
shout_cooldown: 6000
# Radius of the shout attack
shout_radius: 4.0
# Strength of the shout attack as power for horizontal push force
shout_strength: 2.0
sheep_soul:
enabled: true
# How long it takes to regrow the wool shield in milliseconds (1000ms = 1s)
absorb_cooldown: 15000
# How much percentage of the damage is absorbed with the ability (0.6 -> 60% damage absorbed 40% taken)
absorption_amount: 0.5
skeleton_soul:
enabled: true
spider_soul:
enabled: true
# How much exhaustion does it cost to do the spider jump (2.75 is about one hunger point, 0 would remove this)
dash_exhaustion: 2.75
# How much horizontal force the dash applies (using direction vector multiplication)
dash_power: 0.75
dash_vertical: 0.2
# Cooldown for being able to spider jump in milliseconds (1000ms = 1s)
jump_cooldown: 1000
squid_soul:
enabled: true
# How long the ink effect persists in ticks (20 ticks = 1 second)
aura_range: 60
# Cooldown between each damage taken triggers the ink effect in milliseconds (1000ms = 1s)
ink_cooldown: 8000
stray_soul:
enabled: true
# Slowness level as (level - 1) starting from 0 (Slowness I)
slow_amplifier: 0
# Slowness duration from afflicted projectiles on hit in ticks (20 ticks = 1 second)
slow_duration: 600
vindicator_soul:
enabled: true
# How much attack speed increases when sprinting in combat (in %, 0.1 -> 110%)
attack_speed_bonus: 0.1
# How much walk speed increases when sprinting in combat (in %, 0.1 -> 110%)
movement_bonus: 0.1
witch_soul:
enabled: true
# A multiplier to how much magic damage is actually taken in percent (0.4 -> 40% of magic damage taken)
magic_damage_multiplier: 0.4
wither_skeleton_soul:
enabled: true
# Wither level as (level - 1) starting from 0 (Poison I)
wither_amplifier: 0
# Wither duration from melee hits in ticks (20 ticks = 1 second)
wither_duration: 200
zombie_soul:
enabled: true
# How many reinforcements can be present at the same time
max_reinforcement: 3
# Cooldown between each damage taken triggers a reinforcement spawn in milliseconds (1000ms = 1s)
reinforcement_cooldown: 2000
zombified_piglin_soul:
enabled: true
# Factor by how much the carriers walk speed increases while being engaged with a mark (applied as %, 0.2 -> 120%)
engage_boost: 0.2
# Time how long after not actively engaging in combat for the mark to run out in milliseconds (1000ms = 1s)
engage_timeout: 10000
lang.yml
soul_descriptions:
allay_soul:
- 'When holding an item, all nearby items '
- of the same sort will be <green>pulled </green><white>towards you.
blaze_soul:
- When engaging in combat activate <gold>Aura</gold><white>.
- Enemies who enter your close proximity
- will be struck down.
bogged_soul:
- 'Any <aqua>projectile </aqua>fired will inflict '
- <#5E6D31>Poison <white>on a direct hit.
breeze_soul:
- <gold>Sprint + Jump <white>while looking down to
- shoot a wind charge under your feet.
- <aqua>{jump_cooldown}s <white>after hitting ground resets.
chicken_soul:
- Adds various <aqua>lightweight </aqua><white>attributes
- like reduced gravity and fall damage.
cow_soul:
- When being affected by a <red>negative </red>effect
- automatically cleanse them after a short delay.
creeper_soul:
- Mobs sight on you is reduced by <gold>50%</gold><white>.
dolphin_soul:
- While swimming gain <aqua>Dolphins Grace</aqua><white>.
- Swimming to the water surface makes you
- dolphin dash ahead.
drowned_soul:
- Boosts water movement and oxygen by default.
- When entering water, enter a <#5E6E92>Water State
- 'which grants additional movement speed and adds '
- <gold>+{water_damage_bonus}<white> to melee and trident attacks.
ender_dragon_soul:
- 'When gaining enough <aqua>elytra momentum '
- enter <dark_aqua>D</dark_aqua><#07B1B1>r</#07B1B1><#0EB8B8>a</#0EB8B8><#15BFBF>g</#15BFBF><#1CC6C6>o</#1CC6C6><#23CDCD>n</#23CDCD><#2BD5D5>
</#2BD5D5><#32DCDC>F</#32DCDC><#39E3E3>l</#39E3E3><#40EAEA>i</#40EAEA><#47F1F1>g</#47F1F1><#4EF8F8>h</#4EF8F8><aqua>t</aqua><white>
which boosts your
- elytra fly speed and reduces friction.
- Flying through mobs damages and
- knocks them away.
enderman_soul:
- 'When hit by a projectile <light_purple>teleport '
- a short distance away to evade.
evoker_soul:
- When dealing damage will summon a line of
- <green>evoker fangs <white>every </white><aqua>{fangs_cooldown}s</aqua><white>.
ghast_soul:
- Every <aqua>{ghast_shot_cooldown}s </aqua>your next shot projectile
- will explode upon impact, dealing
- knockback and up to <red>{max_AoE_damage} </red>AOE damage.
guardian_soul:
- When not attacking for <aqua>{charge_buffer}s </aqua>slowly
- charge up the next melee attack to deal
- <gold>+{max_charge}% <white>more damage when fully charged.
hoglin_soul:
- <red>{damage_preserve_amount}% <white>of damage taken from players/mobs is
- <white>split into <gold>{buffer_split_amount}</gold><white> portions taken in
short intervals.
horse_soul:
- Rolls random movement stats.
- Gain up to <gold>{max_movement_bonus} Speed </gold><white>and </white><gold>{max_jump_bonus}
Jump Strength</gold><white>.
iron_golem_soul:
- Grants knockback resistance.
- Non-crit melee attacks throw targets in the air.
magma_cube_soul:
- 'When damaged by fire or lava <gold>resist '
- and heal by <green>{healing_amount}</green><red>❤</red><white>.
parched_soul:
- 'Any <aqua>projectile </aqua>fired will inflict '
- <#373B37>Weakness <white>on a direct hit.
phantom_soul:
- While falling downwards, hold <gold><key:key.sneak>
- to begin <aqua>gliding </aqua><white>downwards, steadily
- reducing your downwards momentum.
pig_soul:
- <gold><key:key.sneak> + <gold><key:key.use/></gold><white> an entity to
- saddle them up on yourself.
- <gray>(Hold <key:key.sneak/> to drop them)
piglin_soul:
- 'Gain multiple <blue>attribute bonuses '
- per <gold>gold piece </gold><white>worn.
pillager_soul:
- Gain a <green>{extra_loot_chance}% </green><white>chance for mobs to
- drop an extra item.
ravager_soul:
- When taking melee damage unleash a <gold>roar
- which knocks nearby enemies away.
sheep_soul:
- When being hit reduce damage by
- <gold>{absorption_amount}% <white>every {absorb_cooldown}s.
shulker_soul:
- When attacking or being attacked
- launch a <dark_purple>shulker bullet </dark_purple><white>every </white><aqua>{trigger_cooldown}s</aqua><white>.
skeleton_soul:
- Shoot <green>infinite </green>arrows of any kind
- while using no durability of bows.
spider_soul:
- <gold><key:key.sneak> + Jump <white>to spider dash.
- Will leap you forward a large
- <aqua>horizontal distance <white>on a short cooldown.
squid_soul:
- When damaged applies <#1E2324>ink </#1E2324>onto nearby
- enemies causing blindness and follow range loss.
stray_soul:
- 'Any <aqua>projectile </aqua>fired will inflict '
- <#6A86AB>Slowness <white>on a direct hit.
vindicator_soul:
- 'When <green>sprinting </green><white>while in combat '
- gain <aqua>+{movement_bonus}% Movement Speed
- and <aqua>+{attack_speed_bonus}% Attack Speed</aqua><white>.
witch_soul:
- When drinking potions they go on cooldown
- instead of being consumed.
- Gain <dark_purple>{magic_damage_multiplier}% Magic Damage Reduction</dark_purple><white>.
wither_skeleton_soul:
- Any melee hit will inflict the
- <shadow:#22222280><#444444>Wither Effect <!shadow><white>on the target.
wither_soul:
- '<bold><dark_gray>Become undead:'
- <gray>➤ <gray>Reversed instant health & damage
- '<gray>➤ <gray>Immunity to: Regeneration, Poison, Wither'
- <gray>➤ <gray>Susceptible to Smite
- <gray>➤ <gray>Passive Regen unrelated to hunger
- <gray>➤ <blue>+{attack_damage_bonus} Attack Damage
- <gray>➤ <blue>+{armor_toughness_bonus} Armor Toughness
zombie_soul:
- When being hit summons a <aqua>reinforcement zombie
- nearby who will aid you in combat.
- <gray>(Max {max_reinforcement})
zombified_piglin_soul:
- When engaging in combat <dark_red>mark </dark_red><white>a target
- and gain <aqua>+{engage_boost}% Movement Speed</aqua><white>.
- <gray>Mark automatically jumps to the next target on death
soul_names:
allay_soul:
- <#64FBFF>Allay
blaze_soul:
- <#FC9600>Blaze
bogged_soul:
- <#5E6D31>Bogged
breeze_soul:
- <#6C76AB>Breeze
chicken_soul:
- <#FF0000>Chicken
cow_soul:
- <#292017>Cow
creeper_soul:
- <#6FDB5C>Creeper
dolphin_soul:
- <#BDCBDD>Dolphin
drowned_soul:
- <#4D9280>Drowned
ender_dragon_soul:
- <#6C76AB>E</#6C76AB><#726BAB>n</#726BAB><#7761AB>d</#7761AB><#7D56AB>e</#7D56AB><#834BAB>r</#834BAB><#8840AB>
</#8840AB><#8E36AA>D</#8E36AA><#932BAA>r</#932BAA><#9920AA>a</#9920AA><#9F15AA>g</#9F15AA><#A40BAA>o</#A40BAA><dark_purple>n
enderman_soul:
- <#F9ABFF>Enderman
evoker_soul:
- <#C7C06B>Evoker
ghast_soul:
- <#D5CCCC>Ghast
guardian_soul:
- <#668980>Guardian
hoglin_soul:
- <#E8A074>Hoglin
horse_soul:
- <#3A1805>Horse
iron_golem_soul:
- <gray>Iron Golem
magma_cube_soul:
- <#CB3D07>Magma Cube
parched_soul:
- <#CEB686>Parched
phantom_soul:
- <#5061A4>Phantom
pig_soul:
- <#EEA5A4>Pig
piglin_soul:
- <#F2BB87>Piglin
pillager_soul:
- <#582711>Pillager
ravager_soul:
- <#5B5049>Ravager
sheep_soul:
- <aqua>Sheep
shulker_soul:
- <#673A7B>Shulker
skeleton_soul:
- <gray>Skeleton
spider_soul:
- <#9C0000>Spider
squid_soul:
- <#1B3243>Squid
stray_soul:
- <#576C6D>Stray
vindicator_soul:
- <#959B9B>Vindicator
witch_soul:
- <#995E9D>Witch
wither_skeleton_soul:
- <#4B4D4D>Wither Skeleton
wither_soul:
- \<gradient:#b4b4b4:414141>Wither
zombie_soul:
- <dark_green>Zombie
zombified_piglin_soul:
- <#F19E98>Zombified Piglin
soul_index_menu:
gameplay_info:
title:
- Gameplay Info
description:
- View general information about how
- this plugin operates.
submenus:
gameplay_info:
releasing_souls:
- Releasing Souls
releasing_souls_description:
- 'After slaying a mob a <blue>soul '
- is released and added to your pool.
infusion:
- Infusion
infusion_description:
- 'Nearby spawned mobs take a <blue>soul '
- from your pool and <yellow>infuse</yellow><white>.
- They gain additional mechanics based
- on the <blue>soul </blue><white>they infused with.
binding:
- Binding
binding_description:
- 'After killing an <yellow>infused '
- mob, their infused <blue>soul </blue><white>will be offered.
- Such <blue>soul </blue><white>can be absorbed to gain
- additional mechanics for yourself.
vial:
- Soul Vial
vial_description:
- ''
- Can be obtained through <gold>Piglin Bartering</gold><white>.
soul_lantern:
title:
- Soul Lantern
remove:
- Remove {soul}
remove_soul:
- Completely <red>removes </red><white>this soul from yourself
no_soul_slot:
- Soul Slot empty
no_soul_slot_description:
- Bind a soul by killing an infused mob
absorption:
title:
- Choose a soul
discard_soul:
- Discard {soul}
replace_soul:
- Replace {soul}
main:
title:
- Soul Index
back_button:
- Back
general:
soul:
- '{soul} Soul'
bind_text:
- <yellow><key:key.use> to bind
soul_already_bound:
- Already bound this soul
offered_for:
- Offered for {owner}
disabled_while_offline:
- Souls you had bound were <red>disabled </red><white>while you were offline
disabled_received_vial:
- You have received them as {soul_vial}
dropped_vials:
- Some vials have been dropped due to full inventory!
disabled_in_world:
- Souls have been disabled in this world
enabled_in_world:
- Souls have been enabled in this world
max_soul_replacement:
- You received {soul} as vial since max bound souls were reduced to {max_souls}
soul_categories:
combat_title:
- Combat
combat_description:
- Souls which directly aid combat prowess
utility_title:
- Utility
utility_description:
- Souls which have vast effects on gameplay
movement_title:
- Movement
movement_description:
- Souls which boost your movement capabilities
attributes_title:
- Attributes
attributes_description:
- Souls which change attributes of yourself
soul_items:
soul_lantern:
title:
- Soul Lantern
description:
- Interact to open souls GUI
- ''
- 'Active souls:'
first_soul_message:
- <dark_gray>------------- <bold><dark_aqua>SoulSnatcher</dark_aqua></bold> -------------
- <white>You just received a Soul Lantern.
- <white>SoulSnatcher adds souls which add new mechanics, use this lantern to
check yours out.
- <white>Use <aqua>/soulindex </aqua>to check out all souls and general information.
dispose:
- <gray>You disposed your Soul Lantern! Get a new one by running <aqua>/soullantern
empty_update:
- You do not own any souls, so no soul lantern was added
update_message:
- Your soul lantern has been updated!
soul_vial:
empty_title:
- Empty Soul Vial
empty_description:
- <gray>Interact with an released soul to capture it.
- <gray>Can later be released again.
filled_prefix:
- 'Soul Vial ✦ '
filled_description_header:
- Interact to release the stored soul
capture_dropped:
- 'Your captured '
capture_dropped_suffix:
- ' has been dropped!'
already_have:
- You already have bound this soul
disabled:
- This soul has been disabled by an admin
Future outlook
There are still ways to go for this plugin so be excited for further releases own the line. At the start of the server an UpdateChecker will inform you when Modrinth holds a new version.
Plans for the future:
- More souls (there are many mobs who still do not have one)
- Revision of balance and further issues
A soul being released as a mob is killed by a player. A zombie in this case.
Spawned mobs can infuse with a soul gaining new mechanics. Visually representated by a rotating mob head floating around them.
After killing infused mobs players can bind up to two souls themselves.
Infused mobs also gain new mechanics for example the ability to shoot arrows when infusing with the Skeleton soul.
After binding the ghast soul projectiles shot will explode upon impact
When binding the spider soul allows to perform a dash jump when sneak jumping
After defeating the ender dragon its soul will be offered in stylish manner to the dragon killer. No infusion process needed for boss souls.