LPHomes
Lightweight, GUI-based homes plugin. Simple, friendly, and easy to set up.
Set homes, teleport to them, and manage everything from a clean menu. No clutter, no complicated setup — drop it in, tweak the GUI if you want, and you're good.
Features
- Configurable GUI — the homes menu and delete confirmation aren't hardcoded. Change items, slots, lore, titles, and what left/right click do
- Commands & menu — classic
/sethome,/home,/delhome, or open/homesand click around - Pagination — lots of homes? The menu pages through them
- Teleport delay — optional countdown before teleport; moving cancels it
- Safe location check — if a home looks unsafe (lava, void, blocked space…), players get a warning and can still confirm
- Home limits — set a default limit, or give players more with
lphomes.limit.<number> - Admin tools — open and manage another player's homes, reload everything without a restart
- Custom messages — every message lives in
messages.yml(colors, hover, click) - Custom model data & heads — GUI items support model data; you can also use a texture URL for player heads
- Database support — MariaDB or SQLite
- Folia support
Commands
| Command | Description |
|---|---|
/sethome <name> |
Set a home at your location |
/home <name> |
Teleport to a home |
/delhome <name> |
Delete a home |
/homes |
Open the homes GUI |
/homes manage <player> |
Manage another player's homes |
/homes reload |
Reload config, messages & GUI |
/homes confirm |
Confirm teleport after an unsafe-location warning |
Permissions
| Permission | Default | Description |
|---|---|---|
lphomes.command.sethome |
true | Set homes |
lphomes.command.home |
true | Teleport to homes |
lphomes.command.delhome |
true | Delete homes |
lphomes.command.homes |
true | Open the homes GUI |
lphomes.command.homes.others |
op | Manage other players' homes |
lphomes.command.homes.others.teleport |
op | Teleport using another player's home |
lphomes.command.homes.others.delete |
op | Delete another player's home |
lphomes.command.confirm |
op | Confirm unsafe teleports |
lphomes.command.reload |
op | Reload the plugin |
lphomes.cooldown.bypass |
op | Skip teleport delay |
lphomes.admin |
op | Full access |
lphomes.limit.1 / .3 / .5 / .10 |
op | Home limit (use any number) |
Example configs
Click a section below to expand.
config.yml
teleport-time: 5
default-limit: 2
check-for-safe-location: true
use-remote-database: false
database:
hostname: "127.0.0.1"
port: 3306
name: "minecraft"
username: "root"
password: "your_password"
parameters: "useSSL=false&serverTimezone=UTC"
Set use-remote-database: true for MariaDB. Otherwise SQLite is used automatically.
messages.yml
prefix: "&9Homes &f- "
no-perm: "&cYou don't have permission to do this action."
successful-teleport: "&aYou successfully teleported."
cancelled-movement: "&cYou canceled teleportation because you moved"
un-safe-location: "&fThe home location is not safe. <hover:show_text:'Click for teleportation!'><click:run_command:'/homes confirm'><b><green>[TELEPORT]</b></click></hover>"
no-confirm: "&cThere is no action to confirm."
#%time%
time-left: "&cYou have %time% s before teleport. Do not move!"
reload: "&aPlugin successfully reloaded."
reload-fail: "&cPlugin reload failed."
usage:
sethome: "&cUsage: /sethome <name>"
delhome: "&cUsage: /delhome <name>"
invalid-name: "&cThis name is invalid."
home: "&cUsage /home <name>"
#%limit%
limit: "&cYou reached your limit of homes %limit%"
#%name%
same-home: "&cYou already have this home."
#%name%
dont-exist: "&cHome %name% doesn't exist."
manage: "&cUsage: /homes manage <player> "
#%player%
invalid-player: "&cPlayer %player% is not a valid player."
cmd:
#%name%
created: "&aHome %name% successfully created."
#%name%
deleted: "&aHome %name% successfully deleted."
gui/homes.yml
title: "&8Your Homes (Page %current-page%/%max-page%)"
rows: 6
items:
background:
material: GRAY_STAINED_GLASS_PANE
name: " "
slots:
- "0-8"
- "45-53"
home-template:
material: CYAN_BED
name: "&b&lHome: &f%home%"
lore:
- "&aLeft click for Teleport."
- "&cRight click for delete."
left-click-actions:
- teleport
right-click-actions:
- delete
previous-page-button:
material: ARROW
name: "&a&l<- Previous page"
slots:
- "48"
left-click-actions:
- prev_page
next-page-button:
material: ARROW
name: "&a&lNext page ->"
slots:
- "50"
left-click-actions:
- next_page
close-button:
material: BARRIER
name: "&c&lClose menu"
slots:
- "49"
left-click-actions:
- close
GUI actions: teleport, delete, prev_page, next_page, close
gui/del-confirm.yml
title: "&4Delete home %home%?"
rows: 3
items:
background:
material: BLACK_STAINED_GLASS_PANE
name: " "
slots:
- "0-26"
confirm-button:
material: GREEN_STAINED_GLASS_PANE
name: "&a&l[ Confirm ]"
slots:
- "10"
- "11"
- "12"
left-click-actions:
- confirm_delete
cancel-button:
material: RED_STAINED_GLASS_PANE
name: "&c&l[ Cancel ]"
slots:
- "14"
- "15"
- "16"
left-click-actions:
- cancel_delete
GUI actions: confirm_delete, cancel_delete, close
Requirements
- Paper 1.21+ (or Folia)
- Java 21
License
MIT — see LICENSE.

