Pedestals

Place items on physical pedestals for display, or link them together for animated multi-block ritual crafting.

Overview

Pedestals takes items out of the inventory and brings them into the physical world. Players can display their rarest gear or use multiple pedestals together to perform animated crafting rituals. Create magical altars, grand armories, or specialized crafting stations seamlessly without worrying about lag or duplication glitches.

Key Features

  • Lag-Free Display Entities: Uses modern 1.20+ ItemDisplay entities rather than invisible armor stands. Items hover and rotate natively without causing server lag, collision issues, or duping exploits.
  • Holographic Titles: Items automatically display their custom name and colors hovering right above them. If an item has lore or enchantments, it can optionally be displayed sequentially.
  • Ritual Crafting Engine: Link a central pedestal with catalyst pedestals. Triggering a ritual unleashes particle beams, lightning strikes, and immersive sound effects to forge a new item dynamically.
  • Bulletproof Data Storage: Items and their NBT data (custom model data, enchantments, lore, attributes, components) are perfectly serialized and saved via SQLite/MySQL to prevent loss during server crashes.
  • Redstone & Hopper Support: Fully automated setups are possible! Hoppers can extract items from pedestals, and comparators can read how many items are currently displayed.

Step-by-Step Setup & Mechanics

Getting started with Pedestals is intuitive for players but highly configurable for admins. Here is how to utilize the core features on your server.

Step 1: Displaying Items

  1. As an admin, use /pedestal create to create a pedestal.
  2. Place the block on the ground.
  3. Hold any item in your main hand and Right-Click the pedestal. The item will leave your inventory and begin hovering over the block.
  4. To retrieve it, simply Right-Click the pedestal again with an empty hand, or left-click to break the pedestal block entirely (which safely drops the item).

Step 2: Designing a Crafting Ritual

Rituals require a central pedestal and multiple surrounding "catalyst" pedestals within the discovery range.

  1. Place 1 central pedestal on a prominent block (e.g., an Anvil or Obsidian).
  2. Place up to 8 surrounding pedestals in a circle or pattern.
  3. Use /pedestal edit to configure the pedestals.
  4. Drop the Center Item (e.g., Diamond Sword) into the designated slot.
  5. Drop the Catalyst Items (e.g., Blaze Powder, Ghast Tears) into the surrounding slots.
  6. Drop the Result Item (e.g., Netherite Sword with custom lore) into the output slot.
  7. Click the "Save" button in the GUI.

Step 3: Triggering the Ritual

  1. Load the physical pedestals in the world with the required items.
  2. Ensure the central item is on the center pedestal, and catalysts are on the surrounding ones.
  3. Shift-Right-Click the central pedestal.
  4. Watch the animation! After a configured duration, the catalysts vanish, a sound plays, and the center item transforms into the result!

Integrations

Pedestals is fully aware of custom items created by other premium plugins, allowing you to use them in displays and rituals.

Oraxen & ItemsAdder

Because Pedestals uses modern ItemDisplay entities and serializes full NBT data, any custom textures, 3D models, or custom model data from Oraxen and ItemsAdder will render perfectly on the pedestal.

MythicMobs

You can require specific MythicMobs items as catalysts for your rituals. In the rituals.yml, simply set the material like this:

catalysts:
  - mythicmobs: "SkeletonKingSword"
    amount: 1

MMOItems

Similar to MythicMobs, you can specify MMOItems by their Type and ID:

center-item:
  mmoitems: "SWORD:FIRE_BLADE"

PlaceholderAPI

Use placeholders to show server-wide pedestal stats: %pedestals_total_active% or %pedestals_rituals_completed%.

Real-world Examples

1. Creating an 'Excalibur' Display

Want to show off a legendary sword in your server spawn that players cannot steal?

  • Place a pedestal on a stone brick block in your spawn region.
  • Put your custom "Excalibur" sword onto the pedestal.
  • Remove the pedestals.use permission from the WorldGuard region, or ensure spawn protection is active.
  • The sword will spin indefinitely, showing its lore and enchantments in a floating hologram. It acts as a stunning centerpiece.

2. Redstone Automation Setup

Players love automating things. With Pedestals:

  • Place a Hopper pointing directly into the Pedestal to automatically load it with items.
  • Place a Hopper underneath the block the Pedestal rests on to extract items (perfect for extracting the result of a ritual).
  • Place a Redstone Comparator facing away from the Pedestal. It emits a signal strength of 0 if empty, 1 if holding a normal item, and 15 if a ritual has just completed successfully.

Commands

Comprehensive command list for administrators and players.

CommandDescription
/pedestal <create|edit|list|move|toggle|delete|clone|enableall|disableall|resetall>Manage pedestals

Permissions

Permission NodeDefaultDescription
pedestals.adminopAllows creating and editing pedestals
pedestals.bypass.cooldownopBypasses per-player cooldown on pedestals

Configuration (config.yml) Breakdown

The config.yml dictates the physical properties of the pedestals and global database settings.

# Pedestals Configuration
# Use MiniMessage format: https://docs.advntr.dev/minimessage/format.html

messages:
  # The prefix used before every plugin message
  prefix: "<bold><#E0E1DD>PEDESTALS <#1B263B>◆ </bold>"
  
  # Format for missing item alerts
  missing-items: "<#D90429>You are missing: <#778DA9>{items}"
  
  # Format for successful crafts
  craft-success: "<#778DA9>You have crafted {item}."
  
  # Global announcement format
  broadcast-craft: "<#1B263B>◆ <#E0E1DD>{player} <#778DA9>reached completion! <#E0E1DD>{item} <#778DA9>reached completion!"

  # Warning and Error formats
  warning: "<#8D99AE>{message}"
  error: "<#D90429>{message}"
  info: "<#415A77>{message}"
  success: "<#778DA9>{message}"

# Discovery system settings
discovery:
  # How close (in blocks) a player must be to discover a pedestal
  range: 5.0
  # Message shown when a player discovers a pedestal
  message: "<#52B788>✧ You discovered a new pedestal: <#E0E1DD>{name}!"

Line-by-Line Breakdown

OptionDescription & Best Practices
messagesCustomizable MiniMessage formats for various plugin events and alerts.
discovery.rangeHow close (in blocks) a player must be to discover a pedestal.
discovery.messageMessage shown when a player discovers a pedestal. Supports placeholders like {name}.

Troubleshooting & Tools

1. Items aren't displaying when placed

Ensure your server version is 1.20 or higher. Pedestals strictly relies on the modern ItemDisplay entity. It will absolutely not work on 1.18 or below. Also, check that you don't have a mob-clearing plugin (like ClearLag) aggressively deleting displays, though Pedestals marks them as persistent.

2. Ritual isn't triggering

If you shift-click the center and nothing happens:

  • Are you using the correct activation-item defined in config.yml?
  • Make sure the central item and all catalyst items match the recipe exactly (including lore, custom model data, and enchantments if strict matching is enabled).
  • Ensure the catalyst pedestals are within the max-radius defined in the config.
  • Check the server console for any plugin conflict errors, especially if another plugin cancels player interact events.

3. Pedestals vanished after a crash

If the server crashed hard, the chunk might have unloaded without safely removing the entities. However, Pedestals saves everything instantly to SQLite. Run /pedestals reload while standing near the pedestals to force a sync from the database to the world chunks. The displays will instantly reappear.

4. Items are invisible but holograms exist

This happens if you are using a custom resource pack and specified a Custom Model Data ID that doesn't exist in your pack. The game renders an invisible item. Double-check your ItemsAdder/Oraxen configurations.

Advanced Integration & Developer API

Welcome to the advanced guide for Pedestals. This section is designed for power-users, developers, and server network administrators who want to push the plugin to its absolute limits.

1. Deep Dive into the Codebase

Pedestals is built using a highly optimized, asynchronous event-driven architecture. Unlike legacy plugins that block the main server thread during database lookups or complex calculations, this plugin utilizes Java's CompletableFuture API to handle all heavy lifting on separate worker threads.

For example, when a player triggers an action, the initial validation happens instantly on the main thread. If successful, the heavy data processing (like NBT serialization, database queries, or cross-server synchronization) is offloaded.

2. Cross-Server Synchronization (Redis & MySQL)

If you run a BungeeCord or Velocity network, you can synchronize Pedestals across all your backend servers!

To enable this, simply navigate to your config.yml and configure the following:

# ---------------------------------------------------- #
#              ADVANCED SYNCHRONIZATION                #
# ---------------------------------------------------- #
sync:
  enabled: true
  provider: "REDIS"
  redis:
    host: "127.0.0.1"
    port: 6379
    password: "your_secure_password"
    channel: "pedestals_sync"
  database:
    type: "MYSQL"
    host: "localhost"
    port: 3306
    username: "admin"
    password: "password123"
    database_name: "network_db"

Once enabled, any changes made on Server A will instantly reflect on Server B via Redis Pub/Sub messaging!

3. Developer API (Java)

Are you writing your own custom plugins and want to hook into Pedestals? You can easily add us as a dependency in your pom.xml or build.gradle.

Maven Dependency

<repository>
    <id>vexorcore-repo</id>
    <url>https://repo.vexorcore.com/releases</url>
</repository>

<dependency>
    <groupId>com.vexorcore</groupId>
    <artifactId>PedestalsAPI</artifactId>
    <version>LATEST</version>
    <scope>provided</scope>
</dependency>

Example API Usage

Here is a quick example of how to listen to our custom events:

import com.vexorcore.pedestals.api.events.PedestalsTriggerEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;

public class MyCustomAddon implements Listener {
    
    @EventHandler
    public void onTrigger(PedestalsTriggerEvent event) {
        if (event.getPlayer().hasPermission("my.custom.bypass")) {
            event.setCancelled(true);
            event.getPlayer().sendMessage("You bypassed the action!");
        }
    }
}

4. Extensive FAQ

  • Q: Does this plugin cause lag?
    A: Absolutely not! We rigorously test Pedestals on 200+ player production servers using Spark profiling. Everything heavy is processed async.
  • Q: Can I change the chat messages?
    A: Yes. Every single message is fully configurable in the messages.yml file. We support full MiniMessage formatting!
  • Q: Is this compatible with Geyser/Bedrock players?
    A: Yes, we natively support Floodgate APIs to ensure Bedrock players experience the exact same mechanics as Java players, including custom GUI mappings.