
SwiftTP
SwiftTP is a lightweight, performance-focused TPA + Homes plugin/mod for Minecraft.
It does the basic teleport stuff without trying to become a 900-feature essentials plugin.
TPA. Homes. That's pretty much it.
✨ Features
/tpa <player>— Request to teleport to another player/tpahere <player>— Request another player to teleport to you/tpaccept— Accept a teleport request/tpdeny— Deny a teleport request- Clickable Accept / Deny buttons in TPA messages
/sethome [name]— Create a home/tphome [name]— Teleport to a home/delhome [name]— Delete a home- Multiple named homes
- Configurable home limits
- TPA request cooldowns
- TPA and home warmups
- Warmups cancel when you move or take damage
- Permission-based bypasses
- Safe request handling to prevent duplicate/racing teleports
- Async home storage
- JSON-based home storage
- Corrupted home-file backups
- Folia-compatible scheduling
And no, there are no combat checks. I didn't add them. ¯(ツ)/¯
🌐 Compatibility
SwiftTP currently supports:
- Paper
- Purpur
- Folia
- Fabric
Fabric builds are version-specific.
Check the release you're downloading for the exact Minecraft version supported.
Forge / NeoForge SomeDay someHow™
📥 Installation
Paper / Purpur / Folia
- Download the SwiftTP
.jarfor your Minecraft version. - Put it in your server's
plugins/folder. - Start/restart the server.
- SwiftTP will generate its configuration automatically.
plugins/
└── SwiftTP.jar
Fabric
- Install Fabric Loader.
- Install the required Fabric API.
- Download the SwiftTP Fabric build for your Minecraft version.
- Put it in
mods/. - Start the server.
mods/
└── SwiftTP-Fabric.jar
Don't use a Fabric jar for a different Minecraft version just because the numbers look close.
⚙️ Configuration
After starting the server, SwiftTP creates its configuration.
For Paper:
plugins/SwiftTP/config.yml
Main settings include:
teleport:
request-expiry-seconds: 30
request-cooldown-seconds: 5
warmup-seconds: 3
homes:
warmup-seconds: 3
max-homes: 5
What they do
| Setting | Description |
|---|---|
request-expiry-seconds |
How long a TPA request lasts |
request-cooldown-seconds |
Delay between TPA requests |
teleport.warmup-seconds |
TPA teleport warmup |
homes.warmup-seconds |
Home teleport warmup |
homes.max-homes |
Maximum homes per player |
Set a warmup to 0 for instant teleportation.
🔐 Permissions
Teleportation
teleport.use
Allows /tpa, /tpahere, /tpaccept, and /tpdeny.
teleport.cooldown.bypass
Bypasses the TPA cooldown.
teleport.warmup.bypass
Bypasses the TPA warmup.
Homes
home.use
Allows /sethome, /tphome, and /delhome.
home.warmup.bypass
Bypasses home warmups.
home.limit.bypass
Bypasses the home limit.
Bypass permissions default to OP.
🏠 Homes
Homes are stored per-player using their UUID.
Paper stores them under:
plugins/SwiftTP/homes/
Example:
plugins/SwiftTP/homes/
└── <player-uuid>.json
Example usage:
/sethome base
/tphome base
/delhome base
If you run /sethome base again, the existing home is updated.
🛡️ Teleport Safety
SwiftTP isn't just:
/tpa → click accept → YOLO
Requests properly handle things like:
- Expiration
- Player disconnects
- Duplicate requests
- Conflicting requests
- Moving during warmup
- Taking damage during warmup
- Repeated accept/deny attempts
The goal is to make teleport requests predictable without adding unnecessary server overhead.
💡 Why SwiftTP?
SwiftTP is a passion project focused on doing a small number of things well:
TPA + Homes.
No economy. No shops. No claims. No giant GUI. No 700 unrelated commands. Just For A Friends SMP type thing
Just teleportation.
Also, My firends wanted a teleportation mod that was easy what started as a simple /tpa plugin and somehow became concurrency-safe.
📄 License
SwiftTP is licensed under the ARR.
🧪 Status
SwiftTP is still being actively developed.
If something breaks, please report it.
Or pray that it works.
Same thing.

