YoTPA

YoTPA is a lightweight and powerful teleport request plugin with adaptive performance optimization. Simple to use, easy to configure, and built for modern Minecraft servers.

389

Quick challenge

How far can you run before the mobs catch you?

YoTPA

Logo

YoTPA

YoTPA is a lightweight and powerful teleport request plugin with adaptive performance optimization. Simple to use, easy to configure, and built for modern Minecraft servers.

Features

Adaptive Performance System

The plugin automatically detects your server's available RAM and optimizes itself accordingly - zero configuration needed!

HIGH_PERFORMANCE - HIGH_PERFORMANCE - For 512 MB - 1 GB RAM (Free/Cheap VPS) - Best for: 5-10 players, minimal plugins - HIGH_PERFORMANCE - For 1-2 GB RAM (Low-end servers) - Best for: 10-15 players, light plugins - HIGH_PERFORMANCE - For 2-4 GB RAM (Mid-range servers) - Best for: 15-25 players, moderate plugins - HIGH_PERFORMANCE - For 4+ GB RAM (High-end servers) - Best for: 25+ players, any plugins

Performance Benefits: - 30-70% less memory usage - 25-60% less CPU usage - Up to 83% faster maintenance tasks - Dynamic optimization based on your server specs

Core Features

- Customizable Messages - Request to teleport to other players or invite them to you - Customizable Messages - Configurable delay before teleporting with visual feedback - Customizable Messages - Clear visual indication of teleport countdown - Customizable Messages - Teleport cancels if player moves during countdown - Customizable Messages - Fully customizable audio feedback using Minecraft's sound registry - Customizable Messages - Prevents server crashes from broken configs with detailed error messages - Customizable Messages - Fine-grained access control - Customizable Messages - Toggle receiving requests, cancel outgoing requests - Customizable Messages - Thread-safe for more concurrent players - Customizable Messages - Fully localizable and configurable messages

Internationalization (NEW in 1.4.0)

Customize all plugin messages in any language with full MiniMessage support:

```yaml prefix: "[YoTPA] "

commands: tpa: sent: "Teleport request sent to {target}" received: "{requester} wants to teleport to you." ``` MiniMessage Features: - Rich text formatting (bold, italic, underlined) - Color gradients: `<gradient:green:aqua>text</gradient>` - Rainbow effect: `<rainbow>text</rainbow>` - Hex colors: `<#FF5733>text</#FF5733>`

Custom Sound Effects

Customize all plugin sounds using Minecraft's sound IDs:

```yaml sounds: countdown: "block.note_block.pling" success: "entity.enderman.teleport" cancel: "entity.villager.no" request: "entity.experience_orb.pickup" ```

Test sounds in-game: `/playsound minecraft:block.note_block.pling master @s`

Configuration

YoTPA's `config.yml` file allows you to customize various aspects of the plugin:

- Request timeout duration - Cooldown between requests - Teleport delay countdown - Performance mode settings - Sound effects for different actions - Feature toggles (statistics, bStats, titles, sounds)

Configuration File

```yaml

YoTPA Configuration v1.3.0-Adaptive

Smart Auto-Optimization for All Server Sizes

Request timeout in seconds (how long before a request expires)

Recommended: 30-120 seconds

request-timeout: 60

Request cooldown in seconds (how long before sending another request)

Recommended: 15-60 seconds

request-cooldown: 30

Teleport delay in seconds (countdown before actual teleport)

Recommended: 3-10 seconds

teleport-delay: 5

Performance mode settings

performance:

Options: AUTO, ULTRA_LIGHT, LIGHT, BALANCED, HIGH_PERFORMANCE

mode: AUTO

Sound effects (use Minecraft sound names)

sounds: countdown: "block.note_block.pling" success: "entity.enderman.teleport" cancel: "entity.villager.no" request: "entity.experience_orb.pickup"

Feature toggles

features: statistics: true bstats: true titles: true sounds: true ```

Messages Configuration (messages.yml)

```yaml

Customize your prefix

prefix: "[YoTPA] "

All messages are customizable

commands: tpa: usage: "Usage: /tpa " sent: "Teleport request sent to {target}" received: "{requester} wants to teleport to you."

teleport: countdown: title: "Teleporting..." subtitle: "Don't move!" message: "Teleporting in {seconds} seconds" ```

Customization Examples

Change Language to Spanish

Edit `messages.yml`: ```yaml prefix: "[YoTPA] "

commands: tpa: usage: "Uso: /tpa " sent: "Solicitud enviada a {target}" received: "{requester} quiere teletransportarse a ti." ```

Then use `/tpareload` to apply changes!

Add Beautiful Gradients

```yaml prefix: "✦ YoTPA ✦ "

teleport: countdown: title: "Teleporting..." message: "Teleporting in {seconds} seconds" ```

Customize Colors

```yaml prefix: "[TPA] "

commands: tpa: sent: "Request sent to {target}" ```

Use Hex Colors

```yaml prefix: "[YoTPA] "

teleport: success: "Teleported to {target} successfully!" ```

Placeholders: - `{player}` - Player name - `{target}` - Target player name - `{requester}` - Requester player name - `{seconds}` - Number of seconds - `{cooldown}` - Cooldown duration

Configuration Sections Explained

General Settings: - `request-timeout` - How long (in seconds) teleport requests remain valid (recommended: 30-120) - `request-cooldown` - Time (in seconds) before a player can send another request (recommended: 15-60) - `teleport-delay` - Countdown time (in seconds) before teleportation happens (minimum: 1)

Performance Settings: - `performance.mode` - AUTO (recommended), ULTRA_LIGHT, LIGHT, BALANCED, or HIGH_PERFORMANCE - AUTO automatically detects your server's RAM and selects the best mode

Sound Settings: - All sounds use Minecraft's sound registry format (lowercase with dots) - The plugin validates sounds on config reload - Full sound list: https://minecraft.wiki/w/Sounds.json

Feature Toggles: - `statistics` - Enable or disable statistics tracking - `bstats` - Enable or disable bStats metrics - `titles` - Enable or disable title animations during countdown - `sounds` - Enable or disable all sound effects

Config Validation

When reloading with `/tpareload`, the plugin validates: - YAML syntax - All values are in valid ranges - Sounds exist in Minecraft's registry - Shows detailed error messages if invalid

Example validation output: ``` Configuration validation failed! ✗ teleport-delay must be at least 1 second ✗ Sound 'countdown' (invalid.sound) not found in registry

Warnings: • request-timeout (5) is very low, recommended: 30-120

Config not applied. Fix errors and try again. Using previous configuration. ```

How to Edit and Reload

1. Edit the `plugins/YoTPA/config.yml` file 2. Save your changes 3. Use `/tpareload` in-game to apply changes with validation

Commands Overview

| Command | Description | Permission | | :------ | :---------- | :--------- | | `/tpa <player>` | Request to teleport to another player | `yotpa.tpa` | | `/tpaccept` | Accept a pending teleport request | `yotpa.tpaccept` | | `/tpadeny` | Deny a pending teleport request | `yotpa.tpadeny` | | `/tpahere <player>` | Request a player to teleport to you | `yotpa.tpahere` | | `/tpacancel` | Cancel your outgoing teleport request | `yotpa.tpacancel` | | `/tpatoggle` | Toggle receiving teleport requests | `yotpa.tpatoggle` | | `/tpareload` | Reload the plugin configuration | `yotpa.reload` | | `/tpainfo` | View plugin information and statistics | `yotpa.info` | | `/tpastats` | View teleport statistics | `yotpa.stats` |

Default: All permissions are granted to all players by default.

Detailed Commands

TPA Command

Send a request to teleport to another player.

``` /tpa <player> ```

| Parameter | Type | Description | | :-------- | :--- | :---------- | | `player` | `string` | Required. The player name you want to teleport to |

Examples: ``` /tpa Steve # Request to teleport to player named Steve /tpa Alex123 # Request to teleport to player named Alex123 ```

TPA Command

Notes: - You cannot send a request to yourself - There is a configurable cooldown between sending requests (default: 30 seconds) - Request will expire after a configurable time (default: 60 seconds) - Target player will receive a notification with clickable accept/deny buttons

---

TPAccept Command

Accept a pending teleport request from another player.

``` /tpaccept ```

No parameters required - accepts the most recent teleport request.

Examples: ``` /tpaccept # Accept the pending teleport request ```

TPAccept Command

Notes: - Only works if you have a pending teleport request - After accepting, the teleportation will begin with a countdown - The player must stay still during the countdown or it will be cancelled - If accepting a `/tpa` request, the requester will teleport to you - If accepting a `/tpahere` request, you will teleport to the requester

---

TPADeny Command

Deny a pending teleport request from another player.

``` /tpadeny ```

No parameters required - denies the most recent teleport request.

Examples: ``` /tpadeny # Deny the pending teleport request ```

TPADeny Command

Notes: - Only works if you have a pending teleport request - The requester will be notified that their request was denied - Request is immediately removed from the system

---

TPAHere Command

Request another player to teleport to your location.

``` /tpahere <player> ```

| Parameter | Type | Description | | :-------- | :--- | :---------- | | `player` | `string` | Required. The player name you want to request to teleport to you |

Examples: ``` /tpahere Steve # Request Steve to teleport to you /tpahere Alex123 # Request Alex123 to teleport to you ```

TPAHere Command

Notes: - You cannot send a request to yourself - There is a configurable cooldown between sending requests (default: 30 seconds) - Request will expire after a configurable time (default: 60 seconds) - The target player must accept with `/tpaccept`

---

TPACancel Command

Cancel your outgoing teleport request.

``` /tpacancel ```

No parameters required - cancels your most recent outgoing request.

Examples: ``` /tpacancel # Cancel your pending request ```

Notes: - Only works if you have an active outgoing request - The target player will be notified that the request was cancelled - Useful if you sent a request by mistake

---

TPAToggle Command

Toggle whether you want to receive teleport requests.

``` /tpatoggle ```

No parameters required - toggles your request reception status.

Examples: ``` /tpatoggle # Toggle receiving teleport requests on/off ```

Notes: - When toggled off, other players cannot send you teleport requests - You will receive a message showing your current status - Your setting persists across server restarts

---

TPAReload Command

Reload the plugin configuration with validation.

``` /tpareload ```

No parameters required - reloads and validates the configuration file.

Examples: ``` /tpareload # Reload the plugin configuration ```

TPAReload Command

Notes: - Requires the `yotpa.reload` permission (default: op only) - Validates YAML syntax and all configuration values - Checks that all sounds exist in Minecraft's registry - Shows detailed errors if config is invalid - Only applies config if all validation passes - Useful after making changes to the config.yml file

---

TPAInfo Command

View plugin information and real-time statistics.

``` /tpainfo ```

No parameters required - displays plugin information.

Examples: ``` /tpainfo # View plugin info and stats ```

Shows: - Current performance mode (auto-detected based on RAM) - Optimization level and settings - Active teleport requests - Ongoing teleports - Memory usage statistics - Plugin version

Notes: - Useful for monitoring plugin performance - Helps diagnose issues - Shows how the plugin has optimized itself for your server

---

TPAStats Command

View teleport statistics and usage data.

``` /tpastats ```

No parameters required - displays teleport statistics.

Examples: ``` /tpastats # View teleport statistics ```

Shows: - Total teleport requests sent - Total teleport requests received - Success rate - Most active players - Other usage metrics

Notes: - Requires `features.statistics: true` in config - Statistics are tracked per player - Data persists across server restarts

Optimization Tips

For FREE/LOW-SPEC servers (512 MB - 1 GB):

- Keep mode as AUTO or ULTRA_LIGHT - Limit total plugins to 5-8 - Set view-distance to 4 in server.properties - Use Paper instead of Spigot - Limit players to 5-10 concurrent

For MID-RANGE servers (2-4 GB):

- Use AUTO or BALANCED mode - Can run 10-15 plugins - view-distance 6-8 - 15-25 players should be fine

For HIGH-END servers (4+ GB):

- Use AUTO or HIGH_PERFORMANCE mode - No significant plugin limitations - view-distance 10-12 - 25+ players supported

Performance

YoTPA is built with performance in mind:

- Lock-Free - Minimal impact on server TPS - Lock-Free - No lag from concurrent operations - Lock-Free - Adapts to your server's resources automatically - Lock-Free - Non-blocking task execution - Lock-Free - No race conditions or deadlocks

Installation

1. Download the latest JAR from the releases 2. Place the JAR in your server's `plugins` folder 3. Restart your server 4. That's it! The plugin will auto-configure based on your server's specs

---

YoTPA bstats

Note: This is my first plugin project!.

ADS