Sueta

Lobby4PvP [1.18-26.1+] ⚔️ Interactive lobby PvP system ✅

1.8.6

Enable PvP by holding a sword — fully customizable lobby PvP!

·Plugin

Lobby4PvP [1.18–1.21+]
⚔ Interactive Lobby PvP System ⚔
Enable PvP by holding a sword — fully customizable lobby combat experience!

✅ Main Features

  • ⚔ PvP activation by holding a sword
  • ⏳ Configurable activation & deactivation timers
  • Automatic armor equip & removal
  • VIP system (custom armor/sword per permission)
  • Full anti-duplication protection
  • Keep-inventory option for lobby safety
  • ✨ Sound, particle & firework effects
  • PlaceholderAPI support
  • `/lobby4pvp reload` command
  • 100% Paper/Spigot 1.18–1.21+ compatible

⚙ Configuration

All settings are inside config.yml, including:

  • Activation & deactivation timers
  • Armor and VIP armor types
  • Sword slot position
  • Enchantments for each item
  • Messages, sounds & particles
  • Firework-on-kill effect toggle

Everything is clearly commented for easy editing — perfect for server developers!

Example config.yml
# ╔══════════════════════════════════════════════════════════════════════╗
# ║                        Lobby4PvP — v1.8.6                            ║
# ║  Enable PvP in your lobby by holding a sword. Safe, robust, fast.    ║
# ╚══════════════════════════════════════════════════════════════════════╝
#
#  QUICK HELP:
#  • Reload everything live: /lobby4pvp reload
#  • Text supports both legacy '&' colors and MiniMessage
#  • Hotbar slots are 0..8 (0 = far left, 8 = far right)
#  • Java 17+ plugin build; latest Paper 26.1.x servers require Java 25 at runtime
#  • Invalid sounds, particles, materials, enchantments or out-of-range values warn in console and use safe runtime fallbacks
#  • Empty lore lines like "" are valid and kept as intentional spacing
#
#  REFERENCES:
#  • Materials    → https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
#  • Sounds       → https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
#  • Particles    → https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Particle.html
#  • Enchantments → https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/enchantments/Enchantment.html
#
#  NOTE ABOUT STATS:
#  • Player stats (kills, deaths, hits) are stored persistently in 'stats.yml'.
#  • No configuration is required; the file is created and maintained automatically.
#

# ┌──────────────────────────────────────────────────────────────────────┐
# │ Core & Safety                                                       │
# └──────────────────────────────────────────────────────────────────────┘
debug: false                        # Extra console logs (useful for diagnosing conflicts)
check-for-updates: true             # Notify in console if a new version is available
keep-inventory-on-death: true       # Prevent drops/exp on death in the lobby (safe duels)

# ┌──────────────────────────────────────────────────────────────────────┐
# │ PvP Policy (scope & override)                                       │
# └──────────────────────────────────────────────────────────────────────┘
pvp:
  override-others: true             # If true, Lobby4PvP can un-cancel other plugins' PvP blocks
                                    # when BOTH players are in Lobby4PvP mode.
  worlds: ["*"]                     # Where this plugin applies. ["*"] = all worlds.
                                    # Example: ["lobby", "hub1"]
  blocked-message: "&cPvP is blocked here."
                                    # Shown to the attacker when damage is denied by policy.
                                    # Supports legacy '&' colors and MiniMessage.

# ┌──────────────────────────────────────────────────────────────────────┐
# │ Timers (seconds)                                                    │
# └──────────────────────────────────────────────────────────────────────┘
timers:
  activate-seconds: 5               # Hold the sword for X seconds to enter PvP mode
  deactivate-seconds: 10            # After releasing the sword, PvP disables after X seconds
  cooldown-seconds: 0               # Wait time before enabling again (0 = off)

# ┌──────────────────────────────────────────────────────────────────────┐
# │ Display (all channels are consistent)                               │
# └──────────────────────────────────────────────────────────────────────┘
display:
  actionbar: true                   # Show progress/status in the action bar
  bossbar: false                    # Show progress/status in a BossBar
  chat: true                        # Also print clean, non-spam chat messages
  bossbar-color: GREEN              # GREEN, BLUE, RED, PURPLE, PINK, WHITE, YELLOW
  bossbar-style: SOLID              # SOLID, SEGMENTED_6, SEGMENTED_10, SEGMENTED_12, SEGMENTED_20

# ┌──────────────────────────────────────────────────────────────────────┐
# │ Default Sword (non-VIP profile)                                     │
# └──────────────────────────────────────────────────────────────────────┘
sword:
  give-on-join: true                # Give players the lobby sword on join
  slot: 2                           # Desired hotbar slot (0..8)
  material: IRON_SWORD              # Any valid Bukkit material
  display-name: "&aLobby Sword"
  lore:
    - ""
    - "&8-----------------------"
    - "&oHold to enable PvP"
    - "&oFun & safe duels in the lobby!"
    - "&8-----------------------"
  lock: true                        # Prevent moving/dropping plugin items (anti-dup)
  enchantments:
    - SHARPNESS:4
    - UNBREAKING:4

# ┌──────────────────────────────────────────────────────────────────────┐
# │ Default Armor (auto-equipped while PvP is ACTIVE)                   │
# └──────────────────────────────────────────────────────────────────────┘
armor:
  helmet:
    material: IRON_HELMET
    display-name: "&aLobby Helmet"
    lore: []
    enchantments: ["PROTECTION_ENVIRONMENTAL:3"]
  chestplate:
    material: IRON_CHESTPLATE
    display-name: "&aLobby Chestplate"
    lore: []
    enchantments: ["PROTECTION_ENVIRONMENTAL:3"]
  leggings:
    material: IRON_LEGGINGS
    display-name: "&aLobby Leggings"
    lore: []
    enchantments: ["PROTECTION_ENVIRONMENTAL:3"]
  boots:
    material: IRON_BOOTS
    display-name: "&aLobby Boots"
    lore: []
    enchantments: ["PROTECTION_FALL:4"]

# ┌──────────────────────────────────────────────────────────────────────┐
# │ VIP Profile (permission: lobby4pvp.vip)                             │
# └──────────────────────────────────────────────────────────────────────┘
vip:
  enabled: true
  permission: lobby4pvp.vip

  sword:
    enabled: true                   # If false, VIPs use the default sword profile
    slot: 2                         # Desired slot for VIP sword (can differ from non-VIP)
    material: DIAMOND_SWORD
    display-name: "&bVIP Lobby Sword"
    lore:
      - ""
      - "&8-----------------------"
      - "&oExclusive VIP sword"
      - "&oHold to enable PvP"
      - "&8-----------------------"
    enchantments:
      - SHARPNESS:5
      - UNBREAKING:3

  armor:
    helmet:
      material: DIAMOND_HELMET
      display-name: "&bVIP Helmet"
      lore: []
      enchantments: ["PROTECTION_ENVIRONMENTAL:4", "UNBREAKING:3"]
    chestplate:
      material: DIAMOND_CHESTPLATE
      display-name: "&bVIP Chestplate"
      lore: []
      enchantments: ["PROTECTION_ENVIRONMENTAL:4"]
    leggings:
      material: DIAMOND_LEGGINGS
      display-name: "&bVIP Leggings"
      lore: []
      enchantments: ["PROTECTION_ENVIRONMENTAL:4"]
    boots:
      material: DIAMOND_BOOTS
      display-name: "&bVIP Boots"
      lore: []
      enchantments: ["PROTECTION_FALL:4", "DEPTH_STRIDER:3"]

# ┌──────────────────────────────────────────────────────────────────────┐
# │ Item Flags                                                          │
# └──────────────────────────────────────────────────────────────────────┘
items:
  unbreakable: true                 # Make all plugin items unbreakable

# ┌──────────────────────────────────────────────────────────────────────┐
# │ Effects                                                             │
# └──────────────────────────────────────────────────────────────────────┘
fx:
  sound: ENTITY_PLAYER_LEVELUP      # Played when enabling PvP
  particle: CRIT_MAGIC              # Spawned around the player when enabling PvP
  disable-sound: ENTITY_ITEM_PICKUP # Played when disabling PvP
  disable-particle: CRIT            # Spawned around the player when disabling PvP

# ┌──────────────────────────────────────────────────────────────────────┐
# │ Kill Celebration                                                    │
# └──────────────────────────────────────────────────────────────────────┘
kill-firework:
  enabled: true
  power: 1                          # 1..4 (higher = higher flight)
# Safe-state recovery applied when PvP is manually disabled
safe-state:
  auto-heal:
    enabled: true
    health: 20.0                    # Clamped to the player's max health
  auto-feed:
    enabled: true
    food-level: 20                  # 0..20
    saturation: 0.0                 # 0.0..20.0

# ┌──────────────────────────────────────────────────────────────────────┐
# │ Messages (supports '&' colors and MiniMessage)                      │
# │ {seconds} is dynamically replaced                                   │
# └──────────────────────────────────────────────────────────────────────┘
messages:
  prefix: "&aLobby4PvP &8» "
  enable: "&a&lPvP mode enabled.&r &7Prepare for battle."
  disable: "&7PvP mode disabled. You are now safe."
  hold: "&7Hold your sword for &f{seconds}s &7to enable &aPvP mode&7."
  already-active: "&7PvP mode is already active."
  deactivate-progress: "&7PvP mode will disable in &f{seconds}s&7."
  deactivate-cancelled: "&7Deactivation cancelled."
  cooldown: "&7Wait &f{seconds}s &7before enabling &aPvP mode&7 again."
  world-pvp-disabled: "&cWorld PvP is globally disabled here. Lobby4PvP cannot enable combat in this world."

# ┌──────────────────────────────────────────────────────────────────────┐
# │ PlaceholderAPI formatting                                           │
# │ Optional visual wrappers for numeric stats (use {value})            │
# │ Supports legacy '&' colors and MiniMessage                          │
# └──────────────────────────────────────────────────────────────────────┘
placeholders:
  status:
    enabled: "&aenabled"
    disabled: "&cdisabled"
  vip:
    true: "&btrue"
    false: "&7false"
  stats:
    kills: "&6⚔ {value}"
    deaths: "&c✖ {value}"
    hits: "&e☄ {value}"
    kdr: "&aKDR: {value}"

Commands & Permissions

  • `/lobby4pvp` — Show plugin info/status — Permission: lobby4pvp.info (✅ Default)
  • `/lobby4pvp reload` — Reload configuration — Permission: lobby4pvp.reload ( OP only)
  • `VIP players only` — Grants VIP sword and armor set automatically — Permission: lobby4pvp.vip

Additional Info

PlaceholderAPI
Available placeholders (if PlaceholderAPI is installed):

PlaceholderDescription
%lobby4pvp_status%Shows whether the player’s PvP mode is currently enabled or disabled
%lobby4pvp_vip%Indicates if the player has VIP privileges (true/false)
%lobby4pvp_kills%Displays the total number of kills made by the player
%lobby4pvp_deaths%Displays the total number of deaths of the player
%lobby4pvp_hits%Shows how many successful PvP hits the player has landed
%lobby4pvp_kdr%Shows Kill/Death ratio (KDR) of the player with 2 decimal precision
%lobby4pvp_cooldown%Shows remaining cooldown time (in seconds) before PvP can be reactivated
%lobby4pvp_version%Displays the current Lobby4PvP plugin version


JAVA:
17 or higher
Tested On: 1.18 - 1.21+
Dependencies: PlaceholderAPI (necessary), bStats (included)


Developed with ❤️ by TharialSniper
bStats Page

Need help?

Click the image above to join our Discord for support!

Similar projects

Plugin →