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 | |
prandomtp.bypass | Ignora cooldown | |
prandomtp.free | Usa RTP sem custo (Vault) | |
prandomtp.world.* | Permite selecionar qualquer mundo com /rtp | |
prandomtp.admin | Acesso ao /rtp reload | |
prandomtp.tier.vip | Tier customizado (cooldown menor, +raio) | |
prandomtp.tier.legend | Tier customizado (cooldown muito menor, +raio) |
| 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..allow: false no config.yml.
📊 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 | |
prandomtp.bypass | Ignores cooldown | |
prandomtp.free | RTP without cost (Vault) | |
prandomtp.world.* | Allows teleporting to any world with /rtp | |
prandomtp.admin | Access to /rtp reload | |
prandomtp.tier.vip | Custom tier (shorter cooldown, larger radius) | |
prandomtp.tier.legend | Custom tier (much shorter cooldown, big radius) |
⌨️ 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!
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Plasmo Voice
A proximity voice chat mod with audio positioning and lots of features
4.1MSueta
ItemSwapper
Inventory update concept for hotswapping items.
2.1MSueta