
SwiftTP
SwiftTP is a lightweight, performance-focused TPA + Homes mod for Minecraft.
It does the basic teleport stuff without trying to become a 900-feature essentials mod.
BTW, there is a plugin version of it for servers on : https://www.curseforge.com/minecraft/bukkit-plugins/swifttp-plugins
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
And no, there are no combat checks. I didn't add them. ¯_(ツ)_/¯
🌐 Compatibility
SwiftTP currently supports Fabric for:
- Minecraft 1.20.5
- Minecraft 1.20.6
- Minecraft 1.21.x
- Minecraft 26.1
- Minecraft 26.2
Fabric builds are version-specific.
Make sure you download the SwiftTP build matching your Minecraft version.
Forge / NeoForge SomeDay someHow™
📥 Installation
- Install Fabric Loader for your Minecraft version.
- Install the required Fabric API.
- Download the SwiftTP Fabric build for your Minecraft version.
- Put the
.jar into your mods/ folder.
- 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
SwiftTP creates its configuration after the first server start.
The Fabric configuration uses JSON rather than YAML.
The exact file location/name may depend on the Fabric version and configuration implementation.
Example settings:
{
"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.
Example:
config/
└── 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 teleportation.
Also, I have no idea how this started as a simple /tpa mod and somehow became concurrency-safe.
📄 License
SwiftTP is licensed under the ARR License.
🧪 Status
SwiftTP is still being actively developed.
If something breaks, please report it.
Or pray that it works.
Same thing.