BouncePadBlocks icon

BouncePadBlocks -----

Make bounce blocks and other blocks jump high based on the velocity you input for minigames ....




BouncePads — Complete Plugin Documentation

---

Overview

What is BouncePads?

BouncePads is a lightweight, performance-optimized Minecraft plugin that transforms any solid block into a configurable bounce/jump pad. When a player steps on a configured block, they are automatically launched into the air with customizable velocity, direction, sound effects, and particles.

Inspired by popular servers like CubeCraft, Hypixel, and Hive, the plugin brings smooth, lag-free bounce mechanics to your server. Perfect for FFA arenas, BedWars, SkyWars, parkour maps, lobbies, and any gamemode that needs launch pads.

Plugin Information

| Detail | Value |
|--------|-------|
| **Plugin Name** | BouncePads |
| **Version** | 1.0.0 |
| **API Version** | 1.21+ |
| **Supported Versions** | Paper/Spigot 1.21 - 1.21.11 |
| **Server Software** | Paper, Spigot, and all forks |
| **Java Version** | 21+ |
| **Soft Dependencies** | PlaceholderAPI, WorldGuard, Vault |

How It Works

```
Player steps on configured block (or pressure plate above it)


Plugin detects the bounce block


Checks: enabled? world allowed? permission? cooldown?


Calculates velocity (vertical + horizontal + direction + multipliers)


Applies velocity to player


Plays sound effects and particle effects


Applies fall damage protection


Sets cooldown timer
```

Use Cases

| Server Type | How BouncePads Helps |
|-------------|---------------------|
| **FFA / PvP Arenas** | Strategic launch points around the map for quick traversal |
| **BedWars / SkyWars** | Launch pads between islands with directional bouncing |
| **Lobby Servers** | Fun bounce areas to guide players to different games |
| **Parkour Maps** | Momentum-based bounce chains with varying heights |
| **Hub / Spawn** | Directional pads pointing players toward attractions |
| **Minigame Networks** | Configurable per-world launch systems |

---

Features Summary

Core Features
```
✅ Turn any solid block into a bounce pad
✅ Per-block velocity configuration (vertical + horizontal)
✅ Three activation modes: Direct, Pressure Plate, Hybrid
✅ Different bounce strengths for different blocks
✅ Smooth velocity application without potion effects
✅ Works for all players server-wide
✅ Automatic fall damage protection after bouncing
✅ Per-block cooldown system
✅ Per-player toggle (on/off for bouncing, sounds, particles)
```

Directional Bouncing
```
⬆️ VERTICAL_ONLY — Pure upward bounce (default)
PLAYER_FACING — Launch in player's look direction
↗️ PLAYER_FACING_HORIZONTAL — Horizontal look direction + vertical
FIXED_DIRECTION — Always launch toward configured compass direction
AWAY_FROM_CENTER — Launch away from the block's center
```

Pressure Plate System
```
✅ Supports all 15 pressure plate types in Minecraft
✅ Different velocity multipliers per plate type
✅ Weighted pressure plates give stronger bounces
✅ Restrict which plate types work on each block
✅ Player-only activation (excludes mobs and items)
```

Effects System
```
Custom sound effects per block (any Minecraft sound)
Custom particle effects per block (any Minecraft particle)
Particle trails while player is airborne
Launch and landing particle effects
Configurable volume and pitch per block
Per-player sound/particle toggles
```

Preset System
```
8 built-in presets ready to use
Create unlimited custom presets from existing blocks
Apply presets to any block instantly with one command
Built-in presets protected from accidental deletion
All presets saved persistently in presets.yml
```

GUI Management System
```
️ Full inventory-based management GUI
Paginated block list with click-to-edit
✏️ Interactive block editing with increase/decrease buttons
Color-coded toggles and status indicators
Statistics display within GUI
Preset selection and application GUI
⚙️ Personal player settings GUI
✅ Confirmation dialogs for destructive actions
Chat-based input for precise value entry
```

World Restrictions
```
DISABLED mode — bouncing works in all worlds
WHITELIST mode — bouncing only in listed worlds
BLACKLIST mode — bouncing everywhere except listed worlds
Per-world activation mode overrides
Per-world velocity multipliers
️ WorldGuard region-based restrictions
```

Performance Optimizations
```
⚡ Optimized movement event handling with early exits
Concurrent data structures for thread safety
⏱️ Debounce system prevents double-processing
️ Automatic expired cooldown cleanup
Asynchronous data saving
Configurable cache limits
Minimal TPS impact even with 100+ concurrent players
Efficient HashSet/HashMap lookups for O(1) block detection
```

Integrations
```
PlaceholderAPI — 10+ placeholders available
️ WorldGuard — Region-based bounce restrictions
Vault — Economy support prepared for future features
bStats — Anonymous usage metrics
```

Configuration
```
Every message customizable in messages.yml
⚙️ Every setting configurable in config.yml
Block data stored separately in data/blocks.yml
Presets stored separately in data/presets.yml
Player data stored separately in data/players.yml
Full color code support (& codes + hex &RRGGBB)
Hot-reload without server restart via /bp reload
```

---

Installation Guide

Requirements

| Requirement | Details |
|-------------|---------|
| **Server Software** | Paper or Spigot (or any fork) |
| **Minecraft Version** | 1.21 through 1.21.11 |
| **Java Version** | Java 21 or higher |
| **Disk Space** | Less than 1MB |

Optional Dependencies

| Plugin | Purpose | Required? |
|--------|---------|-----------|
| **PlaceholderAPI** | Display bounce stats in chat, scoreboard, etc. | No |
| **WorldGuard** | Region-based bounce pad restrictions | No |
| **Vault** | Economy integration (prepared for future) | No |

Step-by-Step Installation

**Step 1: Download the Plugin**
```
Download BouncePads-1.0.0.jar from the official download page
```

**Step 2: Install the JAR**
```
Place BouncePads-1.0.0.jar into your server's plugins/ folder

Server/
├── plugins/
│ ├── BouncePads-1.0.0.jar ← Place here
│ └── ... other plugins
├── server.jar
└── ...
```

**Step 3: Start or Restart Your Server**
```
The plugin will generate its configuration files automatically:

plugins/BouncePads/
├── config.yml ← Main configuration
├── messages.yml ← All messages
└── data/
├── blocks.yml ← Bounce block data
├── presets.yml ← Preset templates
└── players.yml ← Player preferences and stats
```

**Step 4: Verify Installation**
```
Check console for startup message:

[BouncePads] ========================================
[BouncePads] BouncePads v1.0.0
[BouncePads] Server: Paper 1.21.1
[BouncePads] Bounce Blocks: 2
[BouncePads] Presets: 8
[BouncePads] Loaded in 45ms
[BouncePads] ========================================
```

**Step 5: Configure and Add Blocks**
```
Use in-game commands to add bounce blocks:
/bp add slime_block 1.5
/bp add emerald_block 3.0

Or edit config files and reload:
/bp reload
```

Upgrading

```
1. Stop your server (recommended) or use /bp reload after replacing
2. Replace the old JAR with the new version
3. Start your server
4. Check console for any migration messages
5. All data and configurations are preserved automatically
```

---

Quick Start Guide

Your First Bounce Pad (30 seconds)

```bash
Step 1: Add a slime block as a bounce pad with velocity 1.5
/bp add slime_block 1.5

Step 2: Place a slime block anywhere in your world

Step 3: Step on it and bounce!
```

Setting Up Multiple Blocks with Different Powers

```bash
Low bounce - for subtle movement
/bp add honey_block 0.8

Medium bounce - standard jump pad
/bp add slime_block 1.5

High bounce - significant height
/bp add emerald_block 2.5

Super launch - extreme height
/bp add diamond_block 4.0

Directional launch - forward momentum
/bp add gold_block 2.0
/bp set gold_block direction player_facing
/bp set gold_block horizontal 1.5
```

Velocity Reference Guide

| Velocity | Approximate Height | Best For |
|----------|-------------------|----------|
| 0.5 | ~1.5 blocks | Small hop, decoration |
| 0.8 | ~2.5 blocks | Gentle bounce, lobby |
| 1.0 | ~3 blocks | Short jump, parkour |
| 1.5 | ~5 blocks | Standard jump pad |
| 2.0 | ~8 blocks | High jump, FFA |
| 2.5 | ~12 blocks | Very high jump |
| 3.0 | ~18 blocks | Extreme jump, BedWars |
| 4.0 | ~25+ blocks | Launch pad, SkyWars |
| 5.0+ | ~35+ blocks | Cannon-style launch |

Using Presets

```bash
View available presets
/bp preset list

Apply a preset to a block
/bp preset apply slime_block super_launch

Save your custom block as a preset
/bp preset save my_custom_pad emerald_block

Apply your custom preset to another block
/bp preset apply gold_block my_custom_pad
```

Built-in Presets

| Preset Name | Velocity | Horizontal | Direction | Description |
|-------------|----------|------------|-----------|-------------|
| `small_hop` | 0.8 | 0.0 | Vertical | Subtle movement |
| `medium_jump` | 1.5 | 0.0 | Vertical | General purpose |
| `high_launch` | 2.5 | 0.0 | Vertical | Significant height |
| `super_launch` | 4.0 | 0.0 | Vertical | Extreme height |
| `directional_push` | 1.0 | 1.5 | Player Facing | Forward momentum |
| `elytra_launcher` | 3.0 | 2.0 | Player Facing | Elytra takeoff |
| `slime_authentic` | 1.2 | 0.0 | Vertical | Realistic slime feel |
| `trampoline` | 1.0 | 0.0 | Vertical | Continuous bouncing |

Using the GUI

```bash
Open the main management GUI
/bp gui

The GUI provides:
- Block List: View and edit all configured blocks
- Presets: Browse and apply presets
- Settings: Toggle your personal preferences
- Statistics: View bounce statistics
- Reload: Reload configuration
```

---

Activation Modes

Mode Overview

BouncePads supports three activation modes that determine how players trigger bounce pads. Each block can have its own mode, or you can set a global default.

| Mode | Trigger Method | Best For |
|------|---------------|----------|
| **DIRECT** | Step directly on the block | FFA, PvP arenas, fast response |
| **PRESSURE_PLATE** | Step on pressure plate above block | BedWars, controlled activation |
| **HYBRID** | Either method works | Flexible setups, mixed maps |

DIRECT Mode

```
Players bounce immediately when stepping on the configured block.
No pressure plate needed. Fastest response time.

Player

[Bounce Block] ← Player steps here, bounces immediately
```

**Setup:**
```bash
/bp add slime_block 1.5
/bp set slime_block mode direct
```

PRESSURE_PLATE Mode

```
Requires a pressure plate placed on top of the bounce block.
Players only bounce when the pressure plate is triggered.

Player

[Pressure Plate] ← Player steps here
[Bounce Block] ← This provides the bounce
```

**Setup:**
```bash
/bp add iron_block 2.0
/bp set iron_block mode pressure_plate

Then place a pressure plate on top of the iron block in-game
```

HYBRID Mode

```
Both direct stepping and pressure plates work.
Most flexible option.

Player Player
↓ ↓
[Bounce Block] [Pressure Plate]
[Bounce Block]

Both trigger the bounce!
```

**Setup:**
```bash
/bp add gold_block 1.5
/bp set gold_block mode hybrid
```

Setting Global Mode

```bash
Set default mode for ALL blocks
/bp mode direct
/bp mode pressure_plate
/bp mode hybrid
```

Per-World Mode Override

```yaml
In config.yml
world-restrictions:
world-modes:
pvp_arena: DIRECT
bedwars: PRESSURE_PLATE
lobby: HYBRID
```

Pressure Plate Multipliers

Different pressure plate types can apply different velocity multipliers.

| Plate Type | Default Multiplier | Effect |
|-----------|-------------------|--------|
| All Wood Plates | 1.0x | Standard bounce |
| Stone Plate | 1.2x | 20% stronger |
| Polished Blackstone | 1.2x | 20% stronger |
| Light Weighted (Gold) | 1.5x | 50% stronger |
| Heavy Weighted (Iron) | 2.0x | Double power |

**Example:** Block velocity 2.0 + Heavy Weighted Plate = 2.0 × 2.0 = **4.0 actual velocity**

Restricting Plate Types Per Block

```bash
Only allow stone and heavy weighted plates on this block
(Set in blocks.yml manually)
```

```yaml
In data/blocks.yml
IRON_BLOCK:
mode: PRESSURE_PLATE
allowed-plates:
- STONE_PRESSURE_PLATE
- HEAVY_WEIGHTED_PRESSURE_PLATE
```

---

Commands Reference

Main Command

```
/bouncepad (aliases: /bounce, /bp, /jumppad, /launchpad)
```

Block Management Commands

| Command | Description | Permission |
|---------|-------------|------------|
| `/bp add <block> <velocity> [mode]` | Add a new bounce block | `bouncepad.add` |
| `/bp remove <block>` | Remove a bounce block | `bouncepad.remove` |
| `/bp set <block> <setting> <value>` | Modify a block's setting | `bouncepad.set` |
| `/bp list [page]` | List all configured blocks | `bouncepad.list` |
| `/bp info <block>` | Show detailed block info | `bouncepad.info` |

**Examples:**
```bash
Add blocks
/bp add slime_block 1.5
/bp add emerald_block 3.0 hybrid
/bp add diamond_block 2.0 pressure_plate

Remove a block
/bp remove emerald_block

List all blocks
/bp list
/bp list 2

View detailed info
/bp info slime_block
```

Block Setting Commands

| Command | Value Type | Example |
|---------|-----------|---------|
| `/bp set <block> velocity <number>` | Decimal number | `/bp set slime_block velocity 2.5` |
| `/bp set <block> horizontal <number>` | Decimal number | `/bp set slime_block horizontal 1.5` |
| `/bp set <block> direction <mode>` | Direction name | `/bp set slime_block direction player_facing` |
| `/bp set <block> mode <mode>` | Activation mode | `/bp set slime_block mode pressure_plate` |
| `/bp set <block> sound <sound/none>` | Sound name | `/bp set slime_block sound entity_slime_jump` |
| `/bp set <block> particle <particle/none>` | Particle name | `/bp set slime_block particle cloud` |
| `/bp set <block> cooldown <ms>` | Milliseconds | `/bp set slime_block cooldown 1000` |
| `/bp set <block> falldamage <true/false>` | Boolean | `/bp set slime_block falldamage true` |
| `/bp set <block> permission <perm/none>` | Permission string | `/bp set slime_block permission vip.bounce` |
| `/bp set <block> enabled <true/false>` | Boolean | `/bp set slime_block enabled false` |

Global Settings Commands

| Command | Description | Permission |
|---------|-------------|------------|
| `/bp mode <direct/pressure_plate/hybrid>` | Set global activation mode | `bouncepad.mode` |
| `/bp reload` | Reload all configuration files | `bouncepad.reload` |

Player Commands

| Command | Description | Permission |
|---------|-------------|------------|
| `/bp toggle` | Toggle bouncing on/off | `bouncepad.toggle` |
| `/bp toggle sounds` | Toggle bounce sounds | `bouncepad.toggle.sounds` |
| `/bp toggle particles` | Toggle bounce particles | `bouncepad.toggle.particles` |
| `/bp toggle all` | Toggle everything | `bouncepad.toggle` |

World Management Commands

| Command | Description | Permission |
|---------|-------------|------------|
| `/bp world mode <disabled/whitelist/blacklist>` | Set restriction mode | `bouncepad.world` |
| `/bp world add <world>` | Add world to list | `bouncepad.world` |
| `/bp world remove <world>` | Remove world from list | `bouncepad.world` |
| `/bp world list` | Show world configuration | `bouncepad.world` |

**Examples:**
```bash
Only allow bouncing in specific worlds
/bp world mode whitelist
/bp world add pvp_arena
/bp world add bedwars_lobby

Block bouncing in specific worlds
/bp world mode blacklist
/bp world add creative_world

Show current configuration
/bp world list
```

Preset Commands

| Command | Description | Permission |
|---------|-------------|------------|
| `/bp preset list` | List all presets | `bouncepad.preset` |
| `/bp preset apply <block> <preset>` | Apply preset to block | `bouncepad.preset` |
| `/bp preset save <name> <block>` | Save block as preset | `bouncepad.preset` |
| `/bp preset delete <name>` | Delete custom preset | `bouncepad.preset` |

**Examples:**
```bash
List all available presets
/bp preset list

Apply built-in preset
/bp preset apply slime_block super_launch

Save current block configuration as custom preset
/bp preset save my_launch_pad emerald_block

Apply custom preset to another block
/bp preset apply gold_block my_launch_pad

Delete a custom preset
/bp preset delete my_launch_pad
```

Information Commands

| Command | Description | Permission |
|---------|-------------|------------|
| `/bp stats [player]` | View statistics | `bouncepad.stats` |
| `/bp gui` | Open management GUI | `bouncepad.gui` |
| `/bp help [command]` | Show help | `bouncepad.use` |
| `/bp debug` | Show debug info | `bouncepad.debug` |

---

Permissions Reference

User Permissions

| Permission | Description | Default |
|------------|-------------|---------|
| `bouncepad.use` | Use bounce pads | `true` |
| `bouncepad.toggle` | Toggle personal settings | `true` |
| `bouncepad.toggle.sounds` | Toggle sounds | `true` |
| `bouncepad.toggle.particles` | Toggle particles | `true` |
| `bouncepad.gui` | Open settings GUI | `true` |
| `bouncepad.stats` | View own statistics | `true` |

Admin Permissions

| Permission | Description | Default |
|------------|-------------|---------|
| `bouncepad.admin` | All admin permissions (parent node) | `op` |
| `bouncepad.add` | Add bounce blocks | `op` |
| `bouncepad.remove` | Remove bounce blocks | `op` |
| `bouncepad.set` | Modify block settings | `op` |
| `bouncepad.list` | List all blocks | `op` |
| `bouncepad.info` | View block details | `op` |
| `bouncepad.mode` | Change global mode | `op` |
| `bouncepad.reload` | Reload configuration | `op` |
| `bouncepad.world` | Manage world restrictions | `op` |
| `bouncepad.preset` | Manage presets | `op` |
| `bouncepad.stats.others` | View other players' stats | `op` |
| `bouncepad.debug` | Use debug commands | `op` |
| `bouncepad.gui.admin` | Admin GUI features | `op` |

Bypass Permissions

| Permission | Description | Default |
|------------|-------------|---------|
| `bouncepad.bypass` | All bypass permissions (parent node) | `op` |
| `bouncepad.bypass.cooldown` | Skip cooldowns | `op` |
| `bouncepad.bypass.world` | Ignore world restrictions | `op` |
| `bouncepad.bypass.region` | Ignore WorldGuard regions | `op` |
| `bouncepad.bypass.permission` | Ignore per-block permissions | `op` |
| `bouncepad.bypass.falldamage` | Always have fall protection | `op` |

Block-Specific Permissions

```
bouncepad.block.<material_name>

Examples:
bouncepad.block.slime_block
bouncepad.block.emerald_block
bouncepad.block.diamond_block
```

Set per-block permission requirement:
```bash
/bp set slime_block permission bouncepad.block.slime_block
```

Wildcard

| Permission | Description | Default |
|------------|-------------|---------|
| `bouncepad.*` | Every BouncePads permission | `op` |

Permission Setup Examples

**LuckPerms — Give all players access to basic bouncing:**
```bash
/lp group default permission set bouncepad.use true
/lp group default permission set bouncepad.toggle true
```

**LuckPerms — VIP gets bypass cooldowns:**
```bash
/lp group vip permission set bouncepad.bypass.cooldown true
```

**LuckPerms — Admin gets everything:**
```bash
/lp group admin permission set bouncepad.* true
```


blocks.yml — Block Configuration

Each bounce block entry supports these settings:

PlaceholderAPI Support

Requirements
- PlaceholderAPI plugin installed on your server
- `integrations.placeholderapi.enabled: true` in config.yml (default)

Available Placeholders

| Placeholder | Description | Example Output |
|-------------|-------------|---------------|
| `%bouncepad_enabled%` | Player's bounce toggle | `true` |
| `%bouncepad_sounds%` | Player's sound toggle | `true` |
| `%bouncepad_particles%` | Player's particle toggle | `false` |
| `%bouncepad_total_blocks%` | Total configured blocks | `5` |
| `%bouncepad_total_bounces%` | Player's total bounces | `1234` |
| `%bouncepad_server_bounces%` | Server-wide total bounces | `98765` |
| `%bouncepad_cooldown%` | Current cooldown remaining | `2.5s` or `Ready` |
| `%bouncepad_last_block%` | Last block bounced on | `SLIME_BLOCK` |
| `%bouncepad_world_allowed%` | Current world allows bouncing | `true` |
| `%bouncepad_mode%` | Global activation mode | `Direct` |
| `%bouncepad_bounces_<material>%` | Bounces on specific block | `500` |

Block-Specific Bounce Placeholders

```
%bouncepad_bounces_slime_block% → 500
%bouncepad_bounces_emerald_block% → 123
%bouncepad_bounces_diamond_block% → 42
%bouncepad_bounces_gold_block% → 78
```

Usage Examples

**Scoreboard (using any scoreboard plugin):**
```
&aBounces: %bouncepad_total_bounces%
&eStatus: %bouncepad_enabled%
```

**Tab List:**
```
&7[&a%bouncepad_total_bounces% bounces&7]
```

**Chat Format:**
```
%bouncepad_total_bounces% bounces | %player_name%
```

FAQ

General Questions

**Q: What versions does BouncePads support?**
A: Paper and Spigot versions 1.21 through 1.21.11. All subversions are fully tested and supported.

**Q: Does it work with Folia?**
A: The current version is designed for Paper/Spigot. Folia compatibility may be added in a future update.

**Q: Is there a block type limit?**
A: No. You can configure as many different block types as bounce pads as you want.

**Q: Does it affect server performance?**
A: BouncePads is heavily optimized. The movement event handler uses early-exit checks, debouncing, and caching. Most servers report zero measurable TPS change even with 100+ players.

**Q: Can I use any block as a bounce pad?**
A: Any solid block can be used. Blocks like signs, banners, buttons, and pressure plates themselves cannot be bounce pads (pressure plates go ON TOP of bounce blocks).

Configuration Questions

**Q: Can I have different velocities for different worlds?**
A: Yes. Use `world-restrictions.world-multipliers` in config.yml to set per-world velocity multipliers.

**Q: Can I make a block only work with specific pressure plates?**
A: Yes. Set the `allowed-plates` list for that block in blocks.yml to restrict which plate types trigger it.

**Q: Can I have different activation modes in different worlds?**
A: Yes. Use `world-restrictions.world-modes` in config.yml to override the global mode per world.

**Q: How do I change all messages?**
A: Every single message is in messages.yml. Edit the file and run `/bp reload`.

Gameplay Questions

**Q: Do mobs trigger bounce pads?**
A: In Pressure Plate mode with `player-only: true` (default), mobs cannot trigger bounces. In Direct mode, only player movement is checked.

**Q: Can players bypass cooldowns?**
A: Players with `bouncepad.bypass.cooldown` permission skip all cooldowns.

**Q: Does the plugin use Jump Boost potion effect?**
A: No. BouncePads applies direct velocity to the player, not potion effects. This is smoother and more controllable.

**Q: Can I disable fall damage from bounces?**
A: Yes. Each block has a `fall-damage-protection` setting. When enabled, players won't take fall damage after bouncing for a configurable duration.

**Q: Can players disable bouncing for themselves?**
A: Yes. Players can use `/bp toggle` to turn bouncing on/off for themselves without affecting other players.

Technical Questions

**Q: Can other plugins interact with BouncePads?**
A: Yes. The plugin provides a complete public API with custom events. Other plugins can add/remove blocks, bounce players, listen to bounce events, and more.

**Q: How is data stored?**
A: All data is stored in YAML files in the `plugins/BouncePads/data/` folder. No database required.

**Q: Can I reload without restarting?**
A: Yes. Use `/bp reload` to reload all configuration files without server restart.

**Q: How do I reset everything?**
A: Stop the server, delete the `plugins/BouncePads/` folder entirely, and restart. All default files will be regenerated.

---

Troubleshooting

Common Issues

Bounce pads not working

```
1. Check if plugin is enabled:
→ Verify "general.enabled: true" in config.yml

2. Check world restrictions:
→ Run /bp debug to see if world is allowed
→ Check world-restrictions section in config.yml

3. Check block is configured:
→ Run /bp list to see all configured blocks
→ Run /bp info <block> for specific block

4. Check activation mode:
→ If mode is PRESSURE_PLATE, a plate must be on top
→ Run /bp debug to see current mode

5. Check permissions:
→ Player needs bouncepad.use (default: true)
→ Check if block has specific permission requirement

6. Check player toggle:
→ Player may have disabled bouncing: /bp toggle
→ Run /bp debug to check bouncing-enabled status
```

Players taking fall damage after bouncing

```
1. Check fall damage protection is enabled:
→ /bp info <block> shows fall-damage setting
→ Enable: /bp set <block> falldamage true

2. Check protection duration:
→ Default is 5000ms (5 seconds)
→ Increase in config.yml: fall-damage.protection-duration

3. Check if cleared on teleport:
→ config.yml: fall-damage.clear-on-teleport
```

Sounds or particles not working

```
1. Check global toggles:
→ config.yml: sounds.enabled and particles.enabled

2. Check per-block settings:
→ /bp info <block> shows sound and particle settings

3. Check player preferences:
→ Player may have toggled off: /bp toggle sounds

4. Check sound/particle names:
→ Must be valid Minecraft names
→ Case-insensitive, but UPPER_CASE recommended
```

GUI not opening

```
1. Check GUI is enabled:
→ config.yml: gui.enabled: true

2. Check permission:
→ Player needs bouncepad.gui

3. Try command version instead:
→ /bp list, /bp info <block>, etc.
```

Config not reloading

```
1. Check YAML syntax:
→ Use a YAML validator (yamllint.com)
→ Common issues: tabs instead of spaces, missing colons

2. Check console for errors:
→ Look for "Failed to reload" messages

3. Try regenerating:
→ Delete the problematic file
→ Run /bp reload to regenerate defaults
```

Debug Mode

Enable debug mode for verbose console output:

```yaml
config.yml
general:
debug: true
```

Then check console for detailed logs about bounce detection, velocity calculations, permission checks, and more.

Performance Issues

```
If you experience TPS drops:

1. Increase movement threshold:
performance.movement-threshold: 0.2 (default 0.1)

2. Increase debounce time:
performance.bounce-debounce: 200 (default 100)

3. Increase cleanup interval:
performance.cleanup-interval: 2400 (default 1200)

4. Reduce particle counts:
particles.max-per-bounce: 20 (default 50)

5. Disable trails:
particles.show-trail: false
```

Getting Help

```
If you can't resolve your issue:

1. Enable debug mode and reproduce the issue
2. Copy the relevant console output
3. Note your server version and plugin version
4. List any other plugins that might conflict
5. Contact support (see below)
```

---

Support & Contact

Getting Support

| Channel | Link | Best For |
|---------|------|----------|
| **Bug Reports** | https://discord.gg/xctckUQukB | Reporting bugs with reproduction steps |
| **Feature Requests** | https://discord.gg/xctckUQukB | Suggesting new features |
| **Discord** | https://discord.gg/xctckUQukB | Quick questions, community help |

When Reporting Bugs

Please include the following information:

```
1. Server software and version (e.g., Paper 1.21.1)
2. BouncePads version (e.g., 1.0.0)
3. Java version (e.g., Java 21)
4. Other plugins installed (plugin list)
5. Steps to reproduce the bug
6. Expected behavior vs actual behavior
7. Console errors (if any)
8. config.yml settings (relevant sections)
```

Performance Metrics

| Metric | Value |
|--------|-------|
| Event Processing | < 0.5ms per bounce |
| Memory Footprint | < 5MB base |
| TPS Impact | Negligible with 100+ players |
| Startup Time | < 200ms |
| JAR Size | ~150KB |

License

```
ARR License
Copyright (c) 2026 geturplugins
```

Credits

```
Developer: geturplugins
Tested on: Paper 1.21 - 1.21.11
Built with: Maven, Spigot API, Paper API
Metrics: bStats
```

---

**Thank you for using BouncePads!**
Resource Information
Author:
----------
Total Downloads: 1
First Release: Mar 21, 2026
Last Update: Mar 21, 2026
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings