Set Homes Two gives every player a menu of their homes. Left-click one to teleport. Right-click it to rename it, move it, change its icon, or delete it.
Source | Report a bug | Donate
- A menu, or a list of commands. Homes live in a chest-style GUI. Players open it with
/homesor by right-clicking the configured "Home Item". - Every home gets its own icon. Pick any Minecraft item when you create a home, or change it later to whatever you are holding. A base, a mine and a farm stop looking identical.
- Rename, move and delete in-game. Right-click any home to manage it. Deleting always asks first, so nobody loses a base to a misclick.
- Teleports that do not kill you. Set Homes Two checks the destination and relocates you to the nearest safe spot rather than dropping you into blocks, lava, or a fall.
- Switch without losing anything. One command imports every home from EssentialsX or Set Homes v1, and shows you exactly what it will do before it does it.
- Per-rank home limits. Give donors more homes than default players with LuckPerms groups, or set one server-wide limit.
- Drop the jar into your
pluginsfolder and restart the server. - Run
/sethome basewhere you are standing. - Run
/homesand click it.
That is genuinely the whole setup. Since 1.1.0 the player-facing permissions default to granted, so your players can create and use homes the moment the plugin loads. You only need a permissions plugin if you want per-rank home limits.
Open your homes with /homes, or right-click the homes item. Then:
| Action | What happens |
|---|---|
| Left-click a home | Teleports you there |
| Right-click a home | Opens the management menu below |
| Rename | Opens an anvil prompt for the new name |
| Move home here | Repoints the home at where you are standing |
| Set icon to held item | The home's icon becomes whatever you are holding |
| Delete | Asks for confirmation first |
Home names are unique per player and ignore case, so base and Base are the same home. Management is controlled by sh2.manage-homes, which defaults to granted.
Changing a home's icon works the same way. Hold the item you want and click Set icon to held item:
By default players wait three seconds before a teleport fires, and moving cancels it, so a home is not a free escape from a fight. Set delay: 0 for instant teleports, or cancelOnMove: false to let players walk during the countdown.
Before it drops anyone anywhere, Set Homes Two checks the destination is safe to stand in. If a home has been built over, flooded with lava, or left hanging above a drop, the player is moved to the nearest safe spot instead, or the teleport is cancelled and they are told why. Turn it off with teleportSafety: false.
Your players keep their homes. The old plugin does not even need to be running, because the importer reads its data files directly.
- Run
/import-homes essentialsx(or/import-homes sethomes). This is a preview only. It reports how many homes it would import and warns about any it would skip, and changes nothing. - Happy with the numbers? Run it again with
confirmon the end. - Existing homes are never overwritten, so re-running it is always safe. Homes in worlds that no longer exist are skipped with a warning naming the world.
Afterwards, remove the old jar. Set Homes Two provides /sethome, /home and /delhome, and two plugins claiming the same commands will fight over them.
| Command | Long form | What it does |
|---|---|---|
/sethome <name> [item] [description] |
/create-home |
Creates a home where you stand. The optional item becomes its icon. |
/home <name> |
/go-home |
Teleports you to a home. |
/homes |
- | Opens the homes menu. |
/delhome <name> |
/delete-home |
Deletes a home. |
/list-homes |
- | Lists your homes in chat. Click a name to teleport. |
/give-homes-item |
- | Gives you the item that opens the menu. |
Admin commands
| Command | What it does |
|---|---|
/set-max-homes [group] <number> |
Sets the home limit, per LuckPerms group or server-wide. |
/get-player-homes <player> |
Lists another player's homes. |
/add-to-blacklist <dimension...> |
Stops homes being set in a dimension. |
/remove-from-blacklist <dimension...> |
Lifts the restriction again. |
/get-blacklisted-dimensions |
Shows which dimensions are blacklisted. |
/import-homes <sethomes|essentialsx> [confirm] |
Imports homes from another plugin. Dry-run unless confirm is given. |
Full permission list
| Permission | Default | Allows |
|---|---|---|
sh2.create-home |
everyone | Creating homes |
sh2.go-home |
everyone | Using the go-home command |
sh2.teleport |
everyone | Actually teleporting to a home |
sh2.list-homes |
everyone | Listing homes in chat, and /homes |
sh2.delete-home |
everyone | Deleting your own homes |
sh2.give-homes-item |
everyone | Getting the menu item |
sh2.manage-homes |
everyone | Renaming, moving, re-iconing and deleting from the GUI |
sh2.set-max-homes |
OP | Setting home limits |
sh2.get-player-homes |
OP | Viewing another player's homes |
sh2.add-to-blacklist |
OP | Blacklisting a dimension |
sh2.remove-from-blacklist |
OP | Un-blacklisting a dimension |
sh2.get-blacklisted-dimensions |
OP | Listing blacklisted dimensions |
sh2.import-homes |
OP | Importing from another plugin |
Settings live in plugins/SetHomesTwo/config.yml on your server, written the first time the plugin starts. Edit it in any text editor, save, then restart the server. There is no in-game reload command, so changes do not apply until the server comes back up.
The file is commented throughout, and every message the plugin sends can be rewritten in it. These are the settings most servers actually change:
| Setting | Default | What it does |
|---|---|---|
delay |
3 |
Seconds you must stand still before teleporting. 0 is instant. |
cancelOnMove |
true |
Cancel the teleport if the player moves during the countdown. |
teleportSafety |
true |
Relocate to the nearest safe spot instead of teleporting into danger. |
maxHomeEnabled |
false |
Turn home limits on. |
maxHomesType |
groups |
singular for one server-wide limit, groups for per-rank limits. |
openHomeItem |
compass |
The item players right-click to open the menu. |
defaultHomeItem |
white_wool |
Icon used when a home is created without one. |
inventoryTitle |
Your homes |
Title of the homes menu. |
maxHomeNameLength |
32 |
Longest home name allowed. |
Per-rank limits need LuckPerms and maxHomesType: groups.
That table is only the common settings. For the complete list, see default-config.yml, the file your config.yml is first written from. Every setting the plugin has is in there, commented in place.
Upgrading? Your existing config.yml will not gain the new settings
Set Homes Two never touches a config.yml that already exists, so settings added in a later release do not appear in a file written by an earlier one. Any missing setting quietly falls back to its default, so nothing breaks, but you cannot change a setting you cannot see.
To pick one up, copy the key you want out of default-config.yml into your file and restart. To start clean, rename your config.yml and restart. A fresh one is written with everything in it, and you can copy your old values across.
How do my players teleport home?
Three ways, all equivalent: /home <name>, opening /homes and left-clicking, or right-clicking the assigned "Home Item" from /give-homes-item.
Only OPs can create homes. How do I let everyone in?
Update to 1.1.0 or later. On older versions every permission defaulted to OP; they now default to granted for players. If you use a permissions plugin that denies unlisted nodes, grant sh2.create-home, sh2.go-home and sh2.teleport.
How do I give donors more homes than everyone else?
Install LuckPerms, set maxHomeEnabled: true and maxHomesType: groups, then run /set-max-homes <group> <number> for each rank.
Can I run it alongside EssentialsX?
Not comfortably. Both register /sethome, /home and /delhome, and whichever loads last wins. Import your homes, then remove EssentialsX.
Where are homes stored?
In a SQLite database in plugins/SetHomesTwo/. Nothing external to install and nothing to configure.
- Paper or Spigot 1.21+
- Java 21, which Minecraft 1.21 servers already require
- Optional: LuckPerms, only for per-rank home limits
Found a bug or want a feature? Open an issue on GitHub. It gets seen faster than a comment on this page.
Source | Report a bug | Donate
- Fixed the update notice repeating on every join. An available release is now announced once and then held back for
updateReminderDays(7 by default) before it is mentioned again; a newer release is still announced straight away. SetupdateReminderDays: 0to announce each release exactly once.
- Added an update notice: the console at startup, and admins holding
sh2.update-notifyas they join, are told when a newer release is on GitHub. SetcheckForUpdates: falseto stop the plugin making the request at all.
Behaviour changes to be aware of before updating:
-
Home names are now unique per player without regard to case, so you can no longer create both
baseandBase. Homes you already have are untouched, including any existing duplicates. -
/delete-homenow deletes a single home. Previously it deleted every home whose name matched, so a player with duplicate names lost all of them at once. -
The plugin now requires Java 21 to run (previously Java 9). Minecraft 1.21 servers already require Java 21, so most setups need no change.
-
Added a home management menu: right-click a home in the homes GUI to rename it, move it to where you are standing, set its icon to the item you are holding, or delete it. Deleting asks for confirmation first, and renaming opens an anvil prompt for the new name.
-
Added a "Right click to edit home" hint to homes in the list, shown only to players who are able to manage them.
-
Added the
sh2.manage-homespermission, which controls the management menu and defaults to granted. -
Added config keys for the management menu:
manageHomeTitle,renamePromptTitle,manageHomeHint,maxHomeNameLength, the button item and name pairs, and the new success and error messages. Seedefault-config.yml. -
Fixed home updates and deletes not being scoped to the owning player.
-
Fixed the homes list hiding a home behind the previous-page button once a player had 46 or more homes, and showing an empty second page to a player with exactly 45 homes.
- Added
/sethome,/delhome, and/homeas classic aliases for/create-home,/delete-home, and/go-home. - Player permissions (create-home, go-home, list-homes, delete-home, teleport, give-homes-item) now default to granted for all players; admin permissions still default to OP.
- Added the
/homescommand, which opens the homes GUI directly;/list-homesstill prints the chat listing. - Added
/import-homesto import homes from Set Homes v1 or EssentialsX (dry-run by default, passconfirmto apply). - Added a teleport safety check that relocates players to the nearest safe spot, or cancels the teleport, when a home would put them in blocks, lava, or a dangerous fall.
- Teleport destination chunks are now loaded during the countdown, so arriving at a distant home is smoother.
- Fixed stale teleport attempts surviving a server restart, which could block a player's next teleport (finishes #14).
- Fixed error when maxHomesType is groups and LuckPerms is not installed. The limit is now skipped with a console warning instead.
- Added go-home and list-homes commands.
- Fixed issue where players missing sh2.teleport could not break blocks.
- Fixed issue where a player who has an open homes gui has their inventory overwritten by the next person to open a homes gui.





