rlTrails - The Ultimate Particle Trail Plugin!
Version 1.0 - Create Your Unique Path!
rlTrails is a feature-rich, highly customizable Minecraft plugin that lets players leave stunning particle trails and unique visual effects wherever they go! With an intuitive in-game GUI, extensive configuration options, and advanced animation types, rlTrails offers an unparalleled cosmetic experience for your server.
✨ Key Features ✨
- Dynamic Trail Types: Choose from a wide variety of effects including:
- TRAIL: Classic particle stream behind you.
- FOOTPRINT: Leave unique marks on the ground (e.g., Stone, Lily Pad, Creeper Heads!).
- CIRCLE: A captivating, spinning ring of particles at your feet (e.g., Sorcerer's Circle).
- HELIX: Beautiful particle strands spiraling upwards around you (e.g., DNA Helix).
- VORTEX: A downward-spiraling double helix, creating a mini-vortex effect (e.g., Void Vortex).
- WINGS: Elegant, animated wings of particles on your back (e.g., Angel Wings, Rainbow Wings!).
- SPHERE: A mesmerizing sphere of particles surrounding your body (e.g., Guardian Sphere, Galaxy Sphere).
- WAVE: An expanding ring of particles that ripples outwards along the ground (e.g., Ground Wave).
- Ultimate Particle Customization:
- Any Bukkit Particle: Use any vanilla Minecraft particle.
- Custom Colors: Define particles with any hex color code (e.g., #FF0000 for red).
- RGB Rainbow Effect: Set particles to cycle through all colors of the rainbow!
- Block-Based Particles: Use specific block materials for particles (e.g., BLOCK_CRACK with STONE).
- Interactive Multi-Page GUI:
- Players can easily browse and select from an extensive collection of 25+ trails with a user-friendly, paginated menu.
- "Next" and "Previous" page buttons for seamless navigation.
- Dedicated "Disable Trail" button.
- Placeholder support in GUI titles (`{page}/{pages}`).
- Admin Management Panel:
- A dedicated `/trails admin` command opens a multi-page GUI listing all online players.
- Click a player's head to open a custom trail selector specifically for them.
- Admins can set, change, or clear any online player's trail directly from the GUI.
- Trail Persistence: Players' selected trails are automatically saved to individual data files and re-activated upon rejoining the server.
- Extensive Configuration: Customize almost every aspect of the plugin via `config.yml` and `messages.yml`.
- Adjust particle task update speed for performance or smoothness.
- Define GUI titles, item display names, lore, materials, and slots.
- Configure radius, width, speed, strands, and density for advanced trails.
- Set individual permissions for each trail.
- Lightweight & Efficient:
Optimized particle spawning and asynchronous tasks ensure minimal impact on server performance.
- Custom Messages: Fully customizable `messages.yml` for server localization and branding, with cool symbols and placeholders.
Commands
Code (Text):
/trails - Opens your personal trail selection GUI.
/trails off - Disables your currently active trail.
/trails toggle - Toggles your current trail ON/OFF (re-activates last used trail).
/trails list - Shows a list of all trails you have access to.
/trails version - Displays the plugin version and author.
# --- Admin Commands (Requires 'rltrails.admin' or specific permissions) ---
/trails reload - Reloads the plugin's configuration files.
/trails set <player> <trail_id|off> - Sets a specific trail for a player, or turns it off.
/trails admin - Opens the Admin GUI for managing player trails.
/trails forceopen <player> - Forces the trail selection GUI to open for another player.
/trails info <trail_id> - Displays detailed information about a specific trail.
Permissions
Code (Text):
rltrails.admin: # Grants access to all admin commands (default: op)
- rltrails.command.reload
- rltrails.command.set
- rltrails.command.admin
- rltrails.command.forceopen
- rltrails.command.info
rltrails.command.open: # Allows players to open the GUI (default: true)
rltrails.command.off: # Allows players to turn off their trail (default: true)
rltrails.command.toggle: # Allows players to use /trails toggle (default: true)
rltrails.command.list: # Allows players to use /trails list (default: true)
rltrails.command.version: # Allows viewing plugin version (default: true)
rltrails.trail.*: # Grants access to ALL trails (default: op)
# Individual trail permissions (defined in config.yml, example below):
rltrails.trail.flame
rltrails.trail.rgb
rltrails.trail.angel_wings
rltrails.trail.creeper_path
# ... and so on for every trail you define!
Configuration Examples
rlTrails is incredibly flexible. Here are a few examples from the `config.yml` to show the power of customization. Your plugin automatically generates `config.yml` and `messages.yml` on first run.
1. Basic RGB Trail (TRAIL Type):
Code (Text):
rgb_trail:
display-name: "&cR&6G&eB &bTrail"
type: TRAIL
particle:
name: REDSTONE # For colored dust, use REDSTONE (DUST in newer MC versions)
data:
color: "RGB" # Special keyword for rainbow effect!
size: 1.1
permission: "rltrails.trail.rgb"
gui-item: { material: RED_WOOL, lore: ["&7A vibrant, color-changing trail.", "", "{status}"] }
2. Angel Wings (WINGS Type - Advanced):
Code (Text):
angel_wings:
display-name: "&f&lAngel Wings"
type: WINGS
particle: { name: REDSTONE, data: { color: "#FFFFE0", size: 1.0 } } # Light Yellow particles
permission: "rltrails.trail.angel_wings"
options:
width: 1.2 # How wide the wings spread
speed: 0.8 # How fast the wings flap
density: 5 # Number of particles per wing section
gui-item: { material: FEATHER, lore: ["&7Graceful wings of light follow you.", "", "{status}"] }
3. Creeper's Path (FOOTPRINT Type - Custom Block):
Code (Text):
creeper_path:
display-name: "&a&lCreeper's Path"
type: FOOTPRINT
particle: BLOCK_CRACK # For block-based particles, use BLOCK_CRACK or BLOCK_DUST
data: { block-material: CREEPER_HEAD } # Specify the block here!
permission: "rltrails.trail.creeper_path"
gui-item: { material: CREEPER_HEAD, lore: ["&7That's a very nice trail you have there...", "", "{status}"] }
Installation Guide
- Download the `rlTrails-1.0.jar` file.
- Place the `.jar` file into your server's `/plugins` folder.
- Start or restart your Minecraft server.
- The plugin will generate `config.yml` and `messages.yml` in `/plugins/rlTrails/`.
- (Optional) Customize the generated configuration files to your liking.
- Use the command `/trails reload` (or restart the server) to apply any changes made to the config.
Screenshots
Please replace these placeholders with your actual screenshots and/or a video showcasing your amazing trails!
Developer API
rlTrails provides a simple, accessible API for other plugins to integrate with player trails.
You can easily get the API instance via
Code (Text):
RlTrails.getInstance().getApi()
.
Available API Methods:
-
Code (Text):
Optional<Trail> getActiveTrail(Player player);
- Get the currently active trail for a player.
-
Code (Text):
boolean setTrail(Player player, String trailId);
- Set a trail for a player by its ID. Returns true if successful.
-
Code (Text):
void clearTrail(Player player);
- Clear a player's active trail.
-
Code (Text):
Set<String> getAvailableTrailIds();
- Get a set of all loaded trail IDs.
Example Usage:
Code (Text):
// Get the API instance
RlTrailsAPI api = RlTrails.getInstance().getApi();
// Set 'flame' trail for a player
api.setTrail(myPlayer, "flame");
// Check if a player has an active trail
Optional<Trail> currentTrail = api.getActiveTrail(myPlayer);
currentTrail.ifPresent(trail -> {
Bukkit.getLogger().info(myPlayer.getName() + " has " + trail.getDisplayName() + " active!");
});
// Clear a player's trail
api.clearTrail(myPlayer);
Thank you for choosing rlTrails!
Made with passion by Redstone Labs.