Sueta

Knockout (Nokaut)

1.7.0

Knock out other players!

·Plugin

⚔️ What is Knockout?

This plugin introduces an innovative knockout mechanic, offering players an alternative to outright elimination. When a player is knocked out, they become incapacitated, unable to take any actions. However, they can be revived by another player through interaction (by sneaking) or carried to a safer location. The downed player remains in this state until revived, dies immediately, or succumbs after a configurable duration.

✨ Features

✅ Downed state before death
✅ Option to revive fallen players by crouching
✅ Customizable revive & finish timers
✅ Option to carry downed players
✅ Permissions
✅ Many options to customize in config
✅ Support for PlaceholderAPI
✅ Compatible with 1.19 – 1.21+
✅ Optimized for Spigot / Paper / Purpur

Want to see a feature added? Join our Discord and suggest it!

➕ Commands

/die - Die at once when you are knocked out
/carry - Carry a knocked out player
/drop - Drop a carried player

Admin commands:
/knockout knockout <player> <seconds> - Knockout a player

/knockout reload - Reload plugin configuration


✔️ Permissions


knockout.carry
- Permission to use carry command
knockout.drop - Permission to use drop command
knockout.die - Permission to use die command
knockout.revive - Permission to revive a player
knockout.command - Permission to use commands when knocked out
knockout.admin - Permission to use admin /knockout commands



⚡Preview


Example of a "knocking out" player.


Example of reviving a "knocked out" player.


Example of self-inflicted "knock out".

⛺ Community

✔️ Join my Discord server
✔️ Report bugs, suggest features, and test early updates!

✴️ Inspired by

Kwadratowa Maskara (popular Polish YouTuber server)

❤️ Support the project

If you like the plugin, leave a ⭐ on GitHub and ⭐⭐⭐⭐⭐ on SpigotMC!

⬇️ Placeholders

Placeholders

Placeholders for PlaceholderAPI:

%knockout_knocked_out%

- TRUE if the player is knocked out; otherwise, FALSE -

%knockout_time_left%

- the player's left knockout time -

%knockout_killer%

- the name of the entity that knocked out the player -

%knockout_vehicle%

- the name of the player carrying the knocked-out player -

%knockout_is_being_revived%

- TRUE if the player is currently being revived; otherwise, FALSE -

%knockout_knockouts%

- the number of knocked-out players on the server at the moment -

⚙️ Configuration

Everything is customizable inside config.yml:

  • timers
  • messages
  • effects
  • enable/disable knockouts for specific worlds
  • run commands at different events
  • and many more!

You can change plugin settings in the config.yml file:

Config
# This plugin is compatible with PlaceholderAPI
# However, there are some placeholders available in the config itself
# There is also a few custom placeholders for PlaceholderAPI described on the plugin's page

# You can use RGB colors in messages, example: knockout-title: '&#2FD0AAKnockout'

# Time of knockout in seconds
knockout-time: 60

# Amount of xp levels required to revive a player
revive-levels: 5

# Time in seconds to revive a player
revive-time: 10

# Item required in main hand of a rescuer to revive a player, eq. 'GOLDEN_APPLE'. Set to '' to disable
revive-item: ''

# Send message to player after attempt to revive a player with an item missing in main hand
revive-item-missing-message: '&cYou need a golden apple in your main hand!'

# When true: add slowness effect for the player carrying a knocked out player
slowness-for-carrier: true

# Slowness amplifier for the player carrying a knocked out player; Slowness level is equal to amplifier + 1
slowness-amplifier: 0

# When true: when carrying player is hit, drop the knocked out player
drop-on-hit: true

# If true knocked out player will die when the knockout time ends otherwise will be revived
death-on-end: true

# When true: player will have blindness effect when knocked out
knockout-blindness: true

# Blindness amplifier for the knocked out player; Blindness level is equal to amplifier + 1
blindness-amplifier: 0

# When true: player will be able to move when knocked out
move-when-knocked-out: false

# When true: player will be able to swim when knocked out
swim-when-knocked-out: false

# When true: player will be able to jump when knocked out
jump-when-knocked-out: false

# When true: it will be possible to attack knocked out players
knockout-vulnerable: true

# When true: knocked out player will take damage on hit, else his knockout time will decrease
damage-on-hit: true

# Health of revived player after revival
# Set to -1 to set the maximum health of the player
# Set to 0 to not change the health
# Or set to a specific value to set the health of the revived player
revived-health: 0.0

# Allow looting a knocked out player by clicking RightClick on him
looting-allowed: false

# If damage-on-hit is false, it is amount of knockout time to be decreased on hit
time-decrease-on-hit: 5

# When true: players can be revived by instant health 2 potion
revive-by-instant-health: false

# When true: players can be carried by Shift+RightClick and dropped by Shift+LeftClick
click-to-carry-drop: true

# When true: if a knocked out player lefts the server, knockout will end
end-knockout-on-quit: true

# When true: replaces the death cause with knockout cause
# Works only on 1.20.4+ versions
remember-death-cause: true

# When true: player will respawn in the specific location given below
# Works only on 1.20.6+ versions
# WARNING: If true, the player will respawn in this specific location even if it is not safe! Make sure to set it to a safe location!
respawn-in-custom-location: false

# Specific location where the player will respawn
# If world-name is empty or incorrect, the player will respawn in the same world where he was knocked out
custom-location:
  world-name: world
  x: 0
  y: 100
  z: 0

# When true: players will get knocked out only in the worlds listed in world-whitelist
enable-world-whitelist: false

# Knockouts will work only in the worlds listed below if enable-world-whitelist is true.
world-whitelist:
  -

# Knockouts will not work in the worlds listed below. Players will die instead.
world-blacklist:
  -

# Note that "/ko knockout" command will work in all worlds regardless of the whitelist/blacklist

# When true: replaces the original death message with new-death-message. Set remember-death-cause to false for this to work correctly
replace-death-message: false

# Replaces the original death message, if replace-death-message is set to true and %entity% exists. Set remember-death-cause to false for this to work correctly
# Use variable %player% to show the knocked out player name
# Use variable %entity% to show the name of the entity causing knockout
# Use variable %death_message% to show the original death message
new-death-message: "%player% was knocked out by %entity%, then %death_message%"

# Message for the player when knocked out
knockout-message: '&cYou have been knocked out! Ask someone to revive you or use /die to die at once.'

# Title message for the player when knocked out
knockout-title: '&cKnockout'

# Subtitle message for the player when knocked out
# Use variable %timer% to show the remaining knockout time
knockout-subtitle: '%timer%'

# Hologram title above the player when knocked out
knockout-hologram: '&cKnockout'

# Message for the player who knocked out another player
# Use variable %player% to show the knocked out player name
knockout-attacker-message: '&aYou knocked out &f%player%'

# Title message for the player who knocked out another player
# Use variable %player% to show the knocked out player name
knockout-attacker-title: ''

# Subtitle message for the player who knocked out another player
# Use variable %player% to show the knocked out player name
knockout-attacker-subtitle: ''

# Message for not allowed actions when knocked out
not-allowed-message: "&cYou can't do that when knocked out!"

# Message for the player with not enough levels to revive
# Use variable %levels% to show the required levels
no-levels-message: "&cYou don't have enough levels (%levels%) to revive that player"

# Title message for the rescuer when reviving
# Use variable %percent% to show the progress of reviving
# Use variable %loading-icon% to show the loading icon
# Use variable %player% to show the rescued player name
rescuer-reviving-title: '&aReviving...'

# Subtitle message for the rescuer when reviving
# Use variable %percent% to show the progress of reviving
# Use variable %loading-icon% to show the loading icon
# Use variable %player% to show the rescued player name
rescuer-reviving-subtitle: '%percent%%'

# Title message for the rescuer when revived
# Use variable %player% to show the rescued player name
rescuer-revived-title: '&aYou revived &f%player%'

# Subtitle message for the rescuer when revived
# Use variable %player% to show the rescued player name
rescuer-revived-subtitle: ''

# Successful revive message for the rescuer
# Use variable %player% to show the rescued player name
rescuer-revived-message: ''

# Title message for the rescued when reviving
# Use variable %percent% to show the progress of reviving
# Use variable %loading-icon% to show the loading icon
# Use variable %player% to show the rescuer player name
rescued-reviving-title: '&aYou are being revived...'

# Subtitle message for the rescued when reviving
# Use variable %percent% to show the progress of reviving
# Use variable %loading-icon% to show the loading icon
# Use variable %player% to show the rescuer player name
rescued-reviving-subtitle: '%percent%%'

# Title message for the rescued when revived by a player
# Use variable %player% to show the rescuer player name
rescued-revived-by-title: '&aYou live again!'

# Subtitle message for the rescued when revived by a player
# Use variable %player% to show the rescuer player name
rescued-revived-by-subtitle: '&aYou have been revived by &f%player%'

# Successful revive message for the rescued by a player
# Use variable %player% to show the rescuer player name
rescued-revived-by-message: ''

# Title message for the rescued when revived by other reason
rescued-revived-title: '&aYou live again!'

# Subtitle message for the rescued when revived by other reason
rescued-revived-subtitle: '&aYou have been revived'

# Successful revive message for the rescued by other reason
rescued-revived-message: ''

# Message when the player uses /die command and is not knocked out
invalid-die-message: "&cYou can use that command only when knocked out!"

# Message when the player uses /drop command and is not carrying any knocked out player
invalid-drop-message: "&cYou are not carrying any knocked out player!"

# Message when the player uses /carry command and there is no knocked out player nearby
invalid-carry-message: "&cThere is no knocked out player nearby!"

# Message when the player uses /carry command and is already carrying a knocked out player
already-carrying-message: "&cYou are already carrying a knocked out player!"

# Message when the player doesn't have permission to do something
no-permission-message: "&4You don't have permission to do that!"

# Aliases for the commands
# Restart the server after changing the aliases
aliases:
  carry:
    - podnies
    -
  drop:
    - zrzuc
    -
  die:
    - zgin
    -
  knockout:
    - ko

# USE WITH CAUTION
# Commands to run from console.
# Variable %player% is the knocked out player
# Use DELAY <ticks> to delay the command execution
# 20 ticks = 1 second
# Example:
#   - playsound minecraft:entity.zombie.death player %player% ~ ~ ~ 10 1 1
#   - say &cPlayer fainted from breaking his legs
#   - DELAY 40
#   - say &eWill anyone help &f%player%&e?

# Enable console commands.
enable-console-commands: false

# Run console commands when a knockout happens.
console-knockout-commands:
  -

# Run console commands during knockout on a loop.
# Use DELAY <ticks> to delay commands execution or the server will crash
console-knockout-loop-commands:
  -

# Run console commands after knockout.
console-after-knockout-commands:
  -

# Run console commands after revive.
console-after-revive-commands:
  -


Tags: knockout, nokaut, revive, downed, respawn-system, pvp, rpg, survival, minecraft

Similar projects

Plugin →