Create public, private, and personal teleport links with GUIs, effects, and more!
### Overview / Descripción General
english overview
Tired of complex warp plugins or limited vanilla portals? LinkBlocks offers a powerful, flexible, and intuitive solution to connect your Minecraft world like never before!
Create seamless public transport networks between key locations, offer secure private teleport blocks for ranks or staff areas, and empower your players to build their own personal links between bases or farms! All integrated with Vault economy, PlaceholderAPI support, intuitive GUIs, customizable effects, and a unique lost block recovery system.
Why Choose LinkBlocks?
- Ultimate Flexibility: Combines public warps (fixed coordinates), secure private links (item-based, owner/friend), and player-owned personal links (buyable, placeable) in ONE plugin.
- Deep Customization: Control everything! Player limits & cooldowns via permissions, individual block recovery costs, messages (multi-language!), sounds, particles, GUIs, and more via configuration.
- Player Engagement: Adds valuable utility, economy sinks (buying/recovering blocks), and social interaction (friends system for both global and personal blocks).
- Admin Friendly: Easy setup, clear commands (with
/lbs help
), detailed configuration files, and useful GUIs (including Lost & Found!). - Performance Focused: Built with an internal caching system for block locations to ensure smooth teleports without lagging your 1.21+ server.
- Secure: Prevents item dropping and unauthorized removal of LinkBlocks from containers.
descripción general en español
¿Cansado de plugins de warps complejos o portales limitados? ¡LinkBlocks ofrece una solución potente, flexible e intuitiva para conectar tu mundo de Minecraft como nunca antes!
Crea fluidas redes de transporte público entre lugares clave, ofrece bloques de teletransporte privados y seguros para rangos o zonas de staff, y empodera a tus jugadores para construir sus propios enlaces personales entre bases o granjas. Todo integrado con economía Vault, soporte PlaceholderAPI, GUIs intuitivas, efectos personalizables y un sistema único de recuperación de bloques perdidos.
¿Por Qué Elegir LinkBlocks?
- Flexibilidad Máxima: Combina warps públicos (coordenadas fijas), enlaces privados seguros (basados en item, dueño/amigo) y enlaces personales propiedad del jugador (comprables, colocables) en UN SOLO plugin.
- Personalización Profunda: ¡Contrólalo todo! Límites y cooldowns de jugador vía permisos, costos de recuperación individuales por bloque, mensajes (¡multi-idioma!), sonidos, partículas, GUIs y más vía configuración.
- Engancha a los Jugadores: Añade utilidad valiosa, sumideros económicos (compra/recuperación de bloques) e interacción social (sistema de amigos para bloques globales Y personales).
- Fácil para Admins: Instalación sencilla, comandos claros (con
/lbs help
), archivos de configuración detallados y GUIs útiles (¡incluyendo recuperación de bloques perdidos!). - Enfocado en Rendimiento: Construido con un sistema de caché interno para ubicaciones de bloques que asegura teletransportes fluidos sin laggear tu servidor 1.21+.
- Seguro: Previene el dropeo de items y la extracción no autorizada de LinkBlocks de contenedores.
### Dependencies / Dependencias
- Vault: Required / Obligatorio (+ Economy Plugin like EssentialsX, CMI, etc.)
- PlaceholderAPI: Optional / Opcional (For placeholders in messages / para placeholders en mensajes)
### Installation / Instalación
- Download the latest
LinkBlocks-X.Y.Z.jar
. / Descarga el últimoLinkBlocks-X.Y.Z.jar
. - Ensure Vault (+ Economy) and optionally PlaceholderAPI are installed on your 1.21+ Spigot/Paper server. / Asegúrate de tener Vault (+ Economía) y PlaceholderAPI (opcional) en tu servidor Spigot/Paper 1.21+.
- Place the LinkBlocks JAR in your
plugins
folder. / Coloca el JAR de LinkBlocks en tu carpetaplugins
. - Restart your server. / Reinicia tu servidor.
- Configure permissions, edit
config.yml
(especiallysettings.lang
), andmessages_XX.yml
. Define blocks via commands orconfig.yml
. Use/lbs reload
after config edits! / Configura permisos, editaconfig.yml
(especialmentesettings.lang
), ymessages_XX.yml
. Define bloques con comandos o enconfig.yml
. ¡Usa/lbs reload
tras editar la config!
### Commands / Comandos (Main '/linkblocks' Alias principal: '/lbs')
click to show commands / clic para mostrar comandos
/lbs help - Shows the command list based on your permissions. / Muestra la lista de comandos según tus permisos.
/lbs create <name> - Creates a PRIVATE global block entry (hold an item). / Crea entrada para bloque global PRIVADO (sostén item).
/lbs public create <name> - Creates a PUBLIC global block entry (no item needed). / Crea entrada para bloque PÚBLICO.
/lbs delete <name> - Deletes a global block definition (public or private). / Elimina definición de bloque global.
/lbs set1 <name> - Defines point 1 (destination/link) for a global block. / Define punto 1 para bloque global.
/lbs set2 <name> - Defines point 2 (return/link) for a global block. / Define punto 2 para bloque global.
/lbs give <name> <player> - Gives the item of a PRIVATE global block. / Da item de bloque global PRIVADO.
/lbs pgive <p_id> <player> - [Admin] Gives items for an already bought personal block. / [Admin] Da items de bloque personal YA COMPRADO.
/lbs list - Lists defined global blocks (indicates public/private). / Lista bloques globales definidos.
/lbs reload - Reloads configuration, messages, and caches. / Recarga configs, mensajes y cachés.
/lbs add <name> <player> - Adds a friend to your placed PRIVATE global block. / Añade amigo a tu bloque global PRIVADO.
/lbs remove <name> <player> - Removes a friend from your placed PRIVATE global block. / Quita amigo de tu bloque global PRIVADO.
/lbs leave <name> <owner> - Leave access to another player's PRIVATE global block. / Abandona acceso a bloque global PRIVADO ajeno.
/lbs padd <p_id> <player> - Adds a friend to your PERSONAL block link. / Añade amigo a tu bloque PERSONAL.
/lbs premove <p_id> <player> - Removes a friend from your PERSONAL block link. / Quita amigo de tu bloque PERSONAL.
/lbs globalblocks - Opens the GUI for available PRIVATE global blocks. / Abre GUI bloques globales PRIVADOS.
/lbs personalblocks - Opens the shop GUI for personal blocks. / Abre tienda de bloques personales.
/lbs lostblocks - Opens the GUI to recover your lost blocks. / Abre GUI para recuperar bloques perdidos.
/lbs myblocks - Opens a GUI showing your placed/owned blocks and their status. / Abre GUI de tus bloques.
### Permissions / Permisos
click to show permissions / clic para mostrar permisos
Admin (linkblocks.admin
, default: op): Grants access to all management commands and bypasses. Includes children:
linkblocks.admin.create
: Use/lbs create
.linkblocks.admin.public.create
: Use/lbs public create
.linkblocks.admin.delete
: Use/lbs delete
.linkblocks.admin.set1
: Use/lbs set1
.linkblocks.admin.set2
: Use/lbs set2
.linkblocks.admin.give
: Use/lbs give
.linkblocks.admin.pgive
: Use/lbs pgive
.linkblocks.admin.list
: Use/lbs list
.linkblocks.admin.reload
: Use/lbs reload
.linkblocks.admin.break
: Break other players' LinkBlocks (sends to lostblocks).linkblocks.admin.bypass.global
: Use any private global block, ignoring owner/friends.linkblocks.admin.bypass.personal
: Use any personal block, ignoring owner/friends and cooldown.linkblocks.admin.bypass.chest
: Take other players' LinkBlocks from containers.linkblocks.cooldown.personal.0
: Grants no cooldown for personal blocks.linkblocks.personal.limit.99
: Grants a very high limit for personal blocks.- (Also inherits all
linkblocks.player
permissions)
Player (linkblocks.player
, default: true): Grants basic access. Includes children:
linkblocks.command.use
: Use/lbs help
and the base command.linkblocks.command.globalblocks
: Use/lbs globalblocks
.linkblocks.command.personalblocks
: Use/lbs personalblocks
.linkblocks.command.lostblocks
: Use/lbs lostblocks
.linkblocks.command.myblocks
: Use/lbs myblocks
.linkblocks.command.add
: Use/lbs add
for own blocks.linkblocks.command.remove
: Use/lbs remove
for own blocks.linkblocks.command.leave
: Use/lbs leave
.linkblocks.command.padd
: Use/lbs padd
for own personal blocks.linkblocks.command.premove
: Use/lbs premove
for own personal blocks.linkblocks.use.global
: Place and use obtained private global blocks.linkblocks.use.personal
: Buy, place, and use personal blocks.linkblocks.personal.limit.X
: (Assign ONE, e.g.,.limit.3
here) Sets the personal block limit if no higher permission is found. Should matchdefault_personal_block_limit
in config for the base group.
Cooldown Permissions:
linkblocks.cooldown.personal.X
: (Assign ONE, e.g.,.cooldown.5
to VIPs) Sets the personal block cooldown in seconds. Plugin uses the LOWEST number the player has permission for. If none, uses default from config.
Limit Permissions:
linkblocks.personal.limit.X
: (Assign ONE per rank, e.g.,.limit.4
to VIPs,.limit.5
to MVIPs) Sets the maximum number of personal block TYPES the player can own. Plugin uses the HIGHEST number the player has permission for. If none, uses default from config.
Video Tutorial Español (¡Recomendado!)
### Configuration (config.yml) / Configuración
click to show default config.yml / clic para mostrar config.yml por defecto
click to show default config.yml / clic para mostrar config.yml por defecto
# ------------------------------------ #
# LinkBlocks Configuration #
# Version ~1.2.0 #
# ------------------------------------ #
# Prefix shown before plugin messages
prefix: "&8[&aLinkBlocks&8] &r"
# General plugin settings
settings:
# --- Language ---
lang: "en" # Language code to use (e.g., "es", "en"). Must match a messages_XX.yml file
# --- Cooldowns & Limits (Personal Blocks) ---
personal_block_cooldown: 10 # DEFAULT cooldown in seconds (if player lacks specific linkblocks.cooldown.personal.X permission)
min_cooldown_check: 0 # Minimum cooldown value to check for permissions (e.g., linkblocks.cooldown.personal.0 for no cooldown)
default_personal_block_limit: 3 # DEFAULT limit of personal block types a player can own (if player lacks specific linkblocks.personal.limit.X permission)
max_limit_check: 10 # Maximum limit value to check for permissions (will check up to linkblocks.personal.limit.10)
# --- Recovery (Lost Blocks) ---
default_lost_block_recovery_cost: 50.0 # Default recovery cost if a specific cost is not defined for the block type
# --- Global Blocks ---
global_block_cooldown: 5 # Cooldown in seconds for using ALL global blocks (public and private)
# --- GUIs ---
fill_empty_slots_gui: true # Fill empty GUI slots with the item below? (true/false)
fill_item_material: "GRAY_STAINED_GLASS_PANE" # Material used for filling empty slots
# --- Teleport Effects ---
teleport_sounds:
enabled: true # Enable sounds? (true/false)
volume: 1.0 # Volume (0.0 to 1.0+)
pitch: 1.0 # Pitch (0.5 to 2.0)
# Bukkit Sound Names: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
departure: "ENTITY_ENDERMAN_TELEPORT" # When leaving the TP location (private or public)
arrival: "ENTITY_PLAYER_LEVELUP" # When arriving at the TP destination (private or public)
# Optional: You can add return_departure and return_arrival for different sounds on PRIVATE global returns
# return_departure: "BLOCK_PORTAL_TRAVEL" # Sound when leaving global set2 (private)
# return_arrival: "BLOCK_BEACON_ACTIVATE" # Sound when arriving back at placed block (private)
teleport_particles:
enabled: true # Enable particles? (true/false)
# Bukkit Particle Names: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html
departure: # Particles on departure (private or public)
type: "PORTAL" # Particle Type
count: 40 # Amount/Count
offset_x: 0.5 # Spread (offset) X
offset_y: 0.8 # Spread (offset) Y
offset_z: 0.5 # Spread (offset) Z
speed: 0.1 # Speed/Extra data (often 0.0 for visual effects)
# data: null # Required for types like REDSTONE, BLOCK_DUST, ITEM_CRACK
arrival: # Particles on arrival (private or public)
type: "END_ROD"
count: 25
offset_x: 0.3
offset_y: 0.5
offset_z: 0.3
speed: 0.0
# data: null
# Optional: You can add 'return_departure' and 'return_arrival' sections for different private return particles
# --- Message section removed - Messages are now in messages_en.yml / messages_es.yml ---
# --- Global Block Definitions ---
global_blocks:
# Example PRIVATE Global Block
VipZone:
public: false # Is private
slot: 10 # Slot in /lbs globalblocks GUI
item_material: "GOLD_BLOCK" # Item Material
name: "&6VIP Access" # Item Display Name
lore:
- "&7Exclusive teleport to the"
- "&7VIP lounge."
- ""
- "&ePurchase Cost: &610000"
buy_cost: 10000.0 # Cost to buy it in the GUI
recovery_cost: 500.0 # <<< Cost to recover if lost
set1: # Destination (VIP Room)
world: "world"
x: 100.5
y: 75.0
z: -200.5
yaw: 90.0
pitch: 5.0
set2: # Return Point (Near VIP entrance)
world: "world"
x: 105.5
y: 75.0
z: -200.5
yaw: -90.0
pitch: 0.0
# Example PUBLIC Global Block
MarketShortcut:
public: true # Is public!
# slot, item_material, name, lore, buy_cost ARE IGNORED
recovery_cost: 0.0 # Recovery cost (0 as it shouldn't be lost)
set1: # Entry/Exit Point 1 (e.g., Near spawn)
world: "world"
x: -50.5
y: 64.0
z: 100.5
yaw: 0.0
pitch: 0.0
set2: # Entry/Exit Point 2 (e.g., Inside market)
world: "world"
x: 300.5
y: 68.0
z: 550.5
yaw: 180.0
pitch: 0.0
# --- Personal Block Definitions (for /lbs personalblocks shop) ---
personal_block_definitions:
pblock1:
slot: 10
buy_cost: 500.0
recovery_cost: 25.0 # <<< Specific recovery cost
shop_item_material: "ENDER_PEARL"
shop_item_name: "&aBasic Personal Link"
shop_item_lore:
- "&7Create your own quick"
- "&7teleport link."
- ""
- "&eCost: %cost%"
given_item_material: "OBSIDIAN"
given_item_name_set1: "&5Basic Link &8(&dEntry&8)"
given_item_name_set2: "&5Basic Link &8(&dExit&8)"
given_item_lore:
- "&7Place both blocks"
- "&7to activate your link."
- "&8ID: pblock1"
pblock2:
slot: 11
buy_cost: 1500.0
recovery_cost: 75.0 # <<< Specific recovery cost
shop_item_material: "ENDER_EYE"
shop_item_name: "&bAdvanced Personal Link"
# ... (rest of definition) ...
# --- GUI Settings ---
global_blocks_gui_settings:
title: "&1Available Global Blocks" # English default
size: 27
personal_blocks_gui_settings:
title: "&1Personal Block Shop" # English default
size: 27
lost_blocks_gui_settings:
title: "&4Recover Lost Blocks" # English default
size: 54
myblocks_gui_settings: # New GUI settings
title: "&3My LinkBlocks" # English default
size: 27 # Adjust size as needed