✨ CustomJoinItems v1.1 – Full Update for 1.21.6+
CustomJoinItems is a lightweight and powerful plugin built for
Paper/Spigot 1.21.6+. It gives players custom items when they
join or
respawn, with full
PlaceholderAPI support and several utility features designed for lobbies and hubs.
✅ What's New in This Version
New Teleport Bow
Shoot an arrow and teleport exactly where it lands! The arrow is automatically placed
outside the hotbar (slot 35).
♂️
Visibility Toggle Item (ON/OFF)
Toggle player visibility in the lobby with a single click. The item dynamically changes color (green/red) based on the state.
⚙️
Full PlaceholderAPI Support
Use placeholders in item names, lores, and commands with seamless integration.
Per-Item Command or BungeeCord Redirection
You can define either a command or a server to send the player to per item.
Debug Mode
Enable it via config.yml to help debug item interactions, events, and command executions.
Give Items on Death
Items can also be given on player death — fully configurable.
Optional MySQL Support
Enable MySQL integration from config.yml to store player data.
Double Jump & Jump Pads
Enabled via permissions and customizable through config.yml.
.nbs Music Support (NoteBlockAPI)
Automatically plays songs from the /songs folder on server start using NoteBlockAPI.
⚙️ General Features
- Give players custom items on join and respawn.
- Full PlaceholderAPI integration for dynamic content.
- Execute commands or teleport to BungeeCord/Velocity servers.
- Full control over item slots, including off-hotbar support (e.g., slot 35).
- Player visibility toggle with dynamic ON/OFF item.
- Teleport Bow with optional arrow delivery.
- Debugging tools for developers and admins.
- Automatically assign PLAYER_HEAD items with player skins.
- Music playback using NoteBlockAPI and .nbs files.
Installation
1️⃣ Drop CustomJoinItems-1.1.jar into your /plugins folder.
2️⃣ Install
PlaceholderAPI (required for placeholder support).
3️⃣ Restart your server or run /customjoinitems reload.
4️⃣ Configure config.yml to suit your needs.
5️⃣ You're all set! Enjoy the most complete join item system for your hub.
Commands
- /customjoinitems reload – Reload the plugin configuration.
Permissions
- customjoinitems.menu – Grants the menu item.
- customjoinitems.perfil – Grants the profile item.
- customjoinitems.doublejump – Enables double jump.
- customjoinitems.jumppad – Enables use of jump pads.
- customjoinitems.teleportbow – Grants access to teleport bow.
Requirements & Dependencies
- ✅ Paper or Spigot server version 1.21.5 or higher.
- ✅ PlaceholderAPI (recommended).
- ⚠️ NoteBlockAPI (optional – for music playback via .nbs files).
- ✅ BungeeCord & Velocity compatible (via configurable commands).
Technical Notes
- If an item has both command and server defined, command has priority.
- When using PLAYER_HEAD, the item automatically shows the player's skin.
- You can assign items to any inventory slot, including slot 35 (outside the hotbar).
- Double jump and jump pad functionality is fully permission-based and customizable.
Code (YAML):
# ✅ Enable or disable debug mode. If true, useful messages will be shown in console.
debug
: false
# Custom music settings
music
:
# Link to a video or song that will be shown in chat when the player joins (e.g., a YouTube video)
link
:
"https://youtu.be/TuLinkDeEjemplo"
# If enabled, the song will play automatically when the server starts
autoPlayOnStart
: true
# List of sound notes to be played at the start. Each entry has:
# - delay: time in ticks (20 ticks = 1 second)
# - sound: a valid sound like BLOCK_NOTE_BLOCK_*
# - pitch: pitch of the note
notes:
- { delay
: 0, sound
: BLOCK_NOTE_BLOCK_BASS, pitch
: 0.5
}
- { delay
: 4, sound
: BLOCK_NOTE_BLOCK_BELL, pitch
: 1.0
}
- { delay
: 8, sound
: BLOCK_NOTE_BLOCK_HAT, pitch
: 1.2
}
- { delay
: 12, sound
: BLOCK_NOTE_BLOCK_GUITAR, pitch
: 0.8
}
- { delay
: 16, sound
: BLOCK_NOTE_BLOCK_PLING, pitch
: 1.5
}
# Sound when changing slots in the hotbar
hotbar-switch:
enabled
: true
# true to enable the effect
sound
: BLOCK_NOTE_BLOCK_BIT
volume
: 1.0
pitch
: 1.0
# Worlds where items will be automatically given to players
allowed-worlds
:
- Lobby
# List of item identifiers that will be given to the player. Referenced below in item-settings.
items
:
- menu
- perfil
- Coleccionables
- visibility_toggle
# Individual item configuration
item-settings:
menu:
enabled
: true
material
: COMPASS
name
:
"<dark_aqua><bold>Game Menu</bold> <white>(Right Click)"
lore
:
-
"<gold>▸ <white>Explore all our game modes and events"
-
"<aqua><italic>Right click to open the menu!</italic>"
slot
: 0
permission
:
"customjoinitems.menu"
command
:
"menu_bb"
worlds
:
- Lobby
Coleccionables:
enabled
: true
material
: CLOCK
name
:
"<green><bold>Collectibles</bold> <gray>(Right Click)"
lore:
- "<gold>Mystery Dust
: <white>
{mystery_dust
}
"
- "<white><italic>Discover unique cosmetics!</italic>
"
slot: 8
permission: "customjoinitems.perfil
"
command: "gm 3
"
worlds:
- Lobby
perfil:
enabled: false
material: PLAYER_HEAD # Automatically gives the player's head
name: "<green><bold>My Profile</bold> <white>
(Right Click
)
"
lore:
- "<gold>▸ <white>Check your stats and achievements
"
slot: 1
permission: "customjoinitems.perfil
"
command: "gm 3
"
worlds:
- Lobby
visibility_toggle:
enabled: false
slot: 7
permission: "customjoinitems.visibility
"
visible: # Item shown when players are visible
material: LIME_DYE
name: "<red>Hide Players
"
lore:
- "<gray>Click to hide other players.
"
hidden: # Item shown when players are hidden
material: RED_DYE
name: "<green>Show Players
"
lore:
- "<gray>Click to show players again.
"
worlds:
- Lobby
Lobby:
enabled: true
material: RED_BED
name: "<red>Return to Lobby <gray>
(Right Click
)
"
lore:
- "<gray>Right click to return to the lobby
"
slot: 8
permission: "customjoinitems.perfil
"
server: "lobby
" # If no "command
" is set, this item will send the player to a server
worlds:
- Lobby
# Teleport Bow – teleports the player where the arrow lands
teleport-bow:
enabled: true
slot: 4
material: BOW
name: "<light_purple><bold>Teleport Bow</bold> <white>
(Right Click
)
"
lore:
- "<gray>Shoot to teleport.
"
give-arrow: true # If true, gives an arrow automatically
arrow-slot: 35 # Inventory slot for the arrow (outside hotbar)
cooldown: 2 # Cooldown in seconds
cooldown-message: "<gray>
[<gold>Code</gold>
] Wait <white>
%seconds%</white>s to use the bow again."
cooldown-sound
: BLOCK_NOTE_BLOCK_BASS
cooldown-particle
: SMOKE
shoot-sound
: ENTITY_ARROW_SHOOT
shoot-particle
: CRIT
hit-sound
: ENTITY_ENDERMAN_TELEPORT
hit-particle
: PORTAL
worlds
:
- Lobby
# Jump Pad – launches player when stepping on a block
jump-pad:
enabled
: true
permission
:
"customjoinitems.jumppad"
cooldown
: 5
sound
: BLOCK_AMETHYST_BLOCK_CHIME
particle
: SPELL_INSTANT
vertical_multiplier
: 1.0
forward_multiplier
: 4.1
# Double Jump – allows a second jump mid-air
double-jump:
enabled
: true
permission
:
"customjoinitems.doublejump"
cooldown
: 10
sound
: BLOCK_AMETHYST_BLOCK_CHIME
particle
: CLOUD
vertical_multiplier
: 1.2
forward_multiplier
: 2.1
# Database configuration (MySQL)
database:
enabled
: false
host
:
"localhost"
port
:
"3306"
name
:
"minecraft"
user
:
"root"
password
:
"password"
# Whether to give items on death (true = yes, false = only on join)
give-items-on-death
: true
# Customizable messages sent to players
messages:
visibility-on
:
"<green>You can now see all players."
visibility-off
:
"<red>You have hidden all players."
protection-enabled
:
"<green>Item protection enabled."
protection-disabled
:
"<red>Item protection disabled."
protection-no-permission
:
"<red>You don't have permission to use this command."
protection-usage
:
"<yellow>Usage: /cji toggle"
# Item protection toggle – /cji toggle command config
cji:
protection:
permission
:
"customjoinitems.admin"
cooldown
: 5
sound
: ENTITY_EXPERIENCE_ORB_PICKUP
particle
: CLOUD
# Custom command aliases
commands:
visibility
:
"visibility"
aliases:
leave
:
"bb leave"
# ⚠️ Do not modify this structure unless you know what you're doing!