
P_Randomtp
Plugin de Random Teleport RTP otimizado Optimized Random Teleport RTP plugin
🌍 P_Randomtp
Plugin de Random Teleport (RTP) otimizado para servidores Paper/Spigot 1.21+.
Permite que jogadores se teleportem para locais aleatórios seguros em um mundo, evitando lag e falhas típicas de plugins de RTP.
✨ Recursos
- 🔄 Teleporte Aleatório Seguro – evita líquidos, blocos perigosos e tetos do Nether.
- 🧭 Raio adaptativo – expande automaticamente a área de busca se não encontrar local válido.
- ⚡ Busca fatiada por tick – executa tentativas de forma distribuída, sem travar o servidor.
- 📦 Carregamento assíncrono de chunks – garante RTP rápido mesmo em distâncias grandes.
- 🛡️ Integração com WorldGuard (opcional) – respeita regiões protegidas.
- 💰 Integração com Vault (opcional) – cobra valores customizados por mundo.
- ⏳ Warmup, cooldown e tiers por permissão – configurações flexíveis para balancear o uso.
- 🌐 Multi-idioma (pt_br, en_us) – mensagens personalizadas por idioma ou forçadas no
config.yml.
📥 Instalação
- Baixe o arquivo
.jarcompilado do plugin. - Coloque em
plugins/no seu servidor Paper 1.21+. - Reinicie o servidor para gerar os arquivos de configuração.
- Edite
config.ymlconforme necessário. - (Opcional) Instale Vault para cobrar por RTP e WorldGuard para respeitar proteções.
⚙️ Configuração
O arquivo config.yml possui várias opções.
Exemplo de configuração otimizada (trecho):
settings:
cooldown-seconds: 60
warmup-seconds: 3
per-tick-attempts: 6
loaded-chunks-only: false
allow-chunk-load: true
async-chunk-loads-parallel: 8
max-attempts: 120
adaptive-radius:
enabled: true
step-percent: 25
max-multiplier: 3.0
| Permissão | Descrição | Default |
|---|---|---|
prandomtp.use | Permite usar /rtp | ✅ todos |
prandomtp.bypass | Ignora cooldown | ❌ apenas OP |
prandomtp.free | Usa RTP sem custo (Vault) | ❌ apenas OP |
prandomtp.world.* | Permite selecionar qualquer mundo com /rtp | ❌ apenas OP |
prandomtp.admin | Acesso ao /rtp reload | ❌ apenas OP |
prandomtp.tier.vip | Tier customizado (cooldown menor, +raio) | ❌ apenas VIP |
prandomtp.tier.legend | Tier customizado (cooldown muito menor, +raio) | ❌ apenas Legend |
| Comando | Uso | Descrição |
|---|---|---|
/rtp | /rtp | Teleporta para um local aleatório no mundo atual |
/rtp <mundo> | /rtp world_nether | Teleporta para outro mundo (se permitido) |
/rtp reload | /rtp reload | Recarrega a configuração e mensagens |
🧩 Integrações
-
Vault – cobra valor configurado por mundo (economy.cost.per-world).
-
WorldGuard – impede teleporte em áreas protegidas.
-
bStats – envia métricas anônimas (opcional).
🔌 API Pública (para outros plugins)
-
Interface disponível via ServicesManager:
-
RtpService service = Bukkit.getServicesManager().load(RtpService.class);
-
// Encontrar um local seguro Location safe = service.findSafeLocation(player, world);
-
// Solicitar RTP completo (como se fosse /rtp) service.requestRtp(player, world);
-
Eventos disponíveis (RtpEvents):
-
WarmupStartEvent
-
WarmupCancelEvent
-
SuccessEvent
-
FailEvent
🚀 Otimização
-
Use allow-chunk-load: true e async-chunk-loads-parallel ajustado conforme o hardware.
-
Ajuste per-tick-attempts (4–8 é ideal).
-
Use adaptive-radius para reduzir falhas em seeds com muitos oceanos.
-
Se for servidor com muito player simultâneo, limite RTPs concorrentes (semáforo global).
❓ FAQ
❓ - O RTP falha em mundos com muito oceano, e agora?
Ative adaptive-radius e aumente max-attempts para permitir expandir além dos oceanos.
❓ - Dá lag quando o jogador usa RTP de 2000 blocos.
Certifique-se de estar no Paper 1.21+ e habilite allow-chunk-load: true. O carregamento é assíncrono, não trava o tick.
❓ - Como adicionar mais idiomas?
Crie arquivos em plugins/P_Randomtp/idiomas/ com o código da língua, ex.: es_es.yml.
❓ - Posso desativar RTP em mundos específicos?
Sim, configure worlds.
📊 bStats
👨💻 Autor
- Desenvolvido por Pedro. Sugestões, bugs ou PRs são bem-vindos!
🌍 P_Randomtp
An optimized Random Teleport (RTP) plugin for Paper/Spigot 1.21+ servers.
Allows players to safely teleport to random locations in a world, avoiding lag and common RTP plugin issues.
✨ Features
- 🔄 Safe Random Teleport – avoids liquids, dangerous blocks, and Nether ceilings.
- 🧭 Adaptive radius – automatically expands the search area if no valid spot is found.
- ⚡ Per-tick sliced search – spreads attempts across ticks to avoid server freezes.
- 📦 Asynchronous chunk loading – ensures fast RTP even at large distances.
- 🛡️ WorldGuard integration (optional) – respects protected regions.
- 💰 Vault integration (optional) – charge custom prices per world.
- ⏳ Warmup, cooldown, and permission tiers – flexible settings to balance usage.
- 🌐 Multi-language (pt_br, en_us) – customizable messages per language or forced in
config.yml.
📥 Installation
- Download the compiled
.jarfile of the plugin. - Place it inside the
plugins/folder of your Paper 1.21+ server. - Restart the server to generate the configuration files.
- Edit
config.ymlas needed. - (Optional) Install Vault to charge for RTP and WorldGuard to respect protections.
⚙️ Configuration
The config.yml file contains several options.
Example of an optimized setup (snippet):
settings:
cooldown-seconds: 60
warmup-seconds: 3
per-tick-attempts: 6
loaded-chunks-only: false
allow-chunk-load: true
async-chunk-loads-parallel: 8
max-attempts: 120
adaptive-radius:
enabled: true
step-percent: 25
max-multiplier: 3.0
🔑 Permissions
| Permission | Description | Default |
|---|---|---|
prandomtp.use | Allows using /rtp | ✅ everyone |
prandomtp.bypass | Ignores cooldown | ❌ OP only |
prandomtp.free | RTP without cost (Vault) | ❌ OP only |
prandomtp.world.* | Allows teleporting to any world with /rtp | ❌ OP only |
prandomtp.admin | Access to /rtp reload | ❌ OP only |
prandomtp.tier.vip | Custom tier (shorter cooldown, larger radius) | ❌ VIP only |
prandomtp.tier.legend | Custom tier (much shorter cooldown, big radius) | ❌ Legend |
⌨️ Commands
| Command | Usage | Description |
|---|---|---|
/rtp | /rtp | Teleports to a random location in the current world |
/rtp <world> | /rtp world_nether | Teleports to another world (if allowed) |
/rtp reload | /rtp reload | Reloads configuration and messages |
🧩 Integrations
- Vault – charges configured cost per world (
economy.cost.per-world). - WorldGuard – prevents teleportation into protected regions.
- bStats – sends anonymous metrics (optional).
🔌 Public API (for other plugins)
Available through ServicesManager:
RtpService service = Bukkit.getServicesManager().load(RtpService.class);
// Find a safe location
Location safe = service.findSafeLocation(player, world);
// Request a full RTP (same as /rtp)
service.requestRtp(player, world);
📡 Events (RtpEvents)
WarmupStartEventWarmupCancelEventSuccessEventFailEvent
🚀 Optimization
- Use
allow-chunk-load: trueand tuneasync-chunk-loads-parallelaccording to your hardware. - Adjust
per-tick-attempts(4–8 is ideal). - Use
adaptive-radiusto reduce failures on seeds with large oceans. - For high player count servers, limit concurrent RTPs (global semaphore).
❓ FAQ
❓ RTP fails in worlds with too many oceans, what now?
Enable adaptive-radius and increase max-attempts to expand beyond oceans.
❓ There's lag when players RTP 2000+ blocks away.
Make sure you are on Paper 1.21+ and enable allow-chunk-load: true.
Loading is asynchronous and will not freeze the main tick.
❓ How to add more languages?
Create files in plugins/P_Randomtp/languages/ with the language code, e.g. es_es.yml.
❓ Can I disable RTP in specific worlds?
Yes, set worlds.<name>.allow: false in config.yml.
📊 bStats
(Optional) Anonymous metrics are collected via bStats.
👨💻 Author
- Developed by Pedro. Suggestions, bug reports, and PRs are welcome!
