# TP Home — Version 2.0.7
## Release Date
2026-07-30
## Version Scheme
Each maintained port uses a full version string:
| Port | Version |
|---|---|
| `tphome-neoforge-26.2` | `2.0.7+neoforge+26.2` |
| `tphome-fabric-26.2` | `2.0.7+fabric+26.2` |
| `tphome-neoforge-1.21.1` | `2.0.7+neoforge+1.21.1` |
| `tphome-fabric-1.21.1` | `2.0.7+fabric+1.21.1` |
Format: `2.0.7+{modloader}+{minecraft_version}`
---
## Highlights
1. **Home creation cooldown** — After creating or overwriting a home, players must wait before teleporting to it (default 5 minutes).
2. **Admin feature master switches** — Acceleration, emergency teleport, and death teleport can be disabled; related buttons stay inactive when off.
3. **Per-player join message opt-out** — Players can disable the login tips (not an OP command).
4. **Fixed hardcoded acceleration button labels** — Home and player-teleport cooldown buttons now show dynamic item costs and time reduction, matching death teleport.
5. **End / cross-dimension rules** — Configurable End TPA, set-home-in-End, death-in-End, teleport-to-End-homes, and all-mod cross-dimension teleports.
---
## New Features
### Home Creation Cooldown
- Config: `cooldown.homeCreationCooldownSeconds` (default `300` = 5 minutes; `0` disables)
- Command: `/setcooldown creation <seconds>`
- Behavior: After `/sethome` creates or overwrites a home, `/gohome` and emergency teleport are blocked until the creation lock ends
- GUI: Shows `[New: Xm Ys]`; teleport/emergency buttons are inactive while locked
- Legacy homes without a timestamp are treated as already unlocked
### Feature Master Switches
| Config | Command | Default | Effect |
|---|---|---|---|
| `acceleration.enabled` | `/setfeature acceleration <bool>` | true | Cooldown acceleration (home / TPA / death) |
| `emergency.enabled` | `/setfeature emergency <bool>` | true | Emergency teleport |
| `death.enabled` | `/setfeature death <bool>` | true | Death-location teleport (death points are still recorded) |
- When disabled, the server rejects related actions and client buttons stay inactive
- Settings are synced to clients via `ModSettingsSyncPacket`
### Join Message Preference (per player)
- Commands (no OP required):
- `/tphomemsg off` — disable join tips
- `/tphomemsg on` — re-enable
- `/tphomemsg` / `/tphomemsg status` — show current preference
- Stored in world `homes.json` under the player entry; only affects that player
### Dimension / End Rules (`/setendrule`)
| Subcommand | Config key | Default | Description |
|---|---|---|---|
| `tpa` | `end.allowTpaToPlayersInEnd` | true | Allow TPA to players currently in The End |
| `sethome` | `end.allowSetHomeInEnd` | true | Allow setting homes while in The End |
| `death` | `end.allowDeathTeleportInEnd` | true | Allow death teleport when the death location is in The End |
| `crossdim` | `end.allowCrossDimensionHomeTeleport` | true | Allow **any** mod teleport that changes dimension (home / emergency / TPA / death) |
| `tphome` | `end.allowTeleportToHomesInEnd` | true | Allow teleporting to homes **located in The End** |
- Run `/setendrule` with no args to list current rules
- Editable via config file or commands; changes sync to online players immediately
---
## Bug Fixes
### Hardcoded cooldown acceleration button text
**Issue:** Home and player-teleport acceleration UIs used fixed item counts and fixed “Reduce N min” labels that did not match server logic.
**Fix:**
- **Home acceleration:** Same model as death acceleration — item cost scales with remaining cooldown; time reduction is **50%** of remaining; buttons refresh live
- **Player-teleport acceleration:** Shows real recipe costs and reductions from the server fixed recipes (ender pearls / gold / lapis / emerald, etc.)
- Buttons are inactive when materials are insufficient or the feature is disabled
Previously only some ports were correct; this release unifies the fix across all maintained ports (including previously missed **Fabric 1.21.1**).
---
## Improvements
- `/setcooldown` extended: `home` / `player` / `death` / `delay` / `creation`
- `/resetallconfigs` resets the new settings to defaults
- OP join help text updated for the new commands
- GUI labels: `[Other dim]` when cross-dimension is blocked; `[End blocked]` when End-home teleport is blocked
---
## Commands Reference
### Players
```
/sethome <name>
/gohome <name>
/deletehome <name>
/homelist
/tpa <player> | /tpaccept | /tpdeny
/godeath | /cleardeath
/acceleratehome <home> <recipe>
/acceleratetpa <recipe>
/acceleratedeath <recipe>
/emergencyhome <home>
/tphomemsg on|off|status
```
### Admins (OP)
```
/setcooldown home|player|death|delay|creation <seconds>
/setfeature acceleration|emergency|death <true|false>
/setendrule tpa|sethome|death|crossdim|tphome <true|false>
/setendrule # list current rules
/setemergency baseitems|rate ...
/resetallconfigs
```
---
## Config Keys (new / relevant)
```properties
# cooldown
homeCreationCooldownSeconds=300
# death master switch
death.enabled=true
# end / dimension rules
end.allowTpaToPlayersInEnd=true
end.allowSetHomeInEnd=true
end.allowDeathTeleportInEnd=true
end.allowCrossDimensionHomeTeleport=true
end.allowTeleportToHomesInEnd=true
# existing
acceleration.enabled=true
emergency.enabled=true
```
NeoForge: `config/tphome-common.toml`
Fabric: `config/tphome.properties`
---
## Ports Updated
- `tphome-neoforge-26.2` → `2.0.7+neoforge+26.2`
- `tphome-fabric-26.2` → `2.0.7+fabric+26.2`
- `tphome-neoforge-1.21.1` → `2.0.7+neoforge+1.21.1`
- `tphome-fabric-1.21.1` → `2.0.7+fabric+1.21.1`
**Not included:** all `*-legacy` ports and the Bukkit port.
---
## Upgrade Notes
1. On first launch after upgrade, new config keys are written (defaults are enabled / allowed).
2. Existing homes without `createdAtEpochMs` do **not** get a creation cooldown.
3. Client and server should use the same `2.0.7+…` build series (network packets gained new fields).
4. If you previously customized End/cross-dimension rules, review the `end.*` keys in your config file.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }