NxHomes
Why NxHomes?
NxHomes reimagines the traditional home system by replacing tedious commands with a Professional GUI. Instead of forcing players to type commands to set, delete, or rename homes, everything is handled through an intuitive visual interface.
Players can easily see which slots are empty, which are locked behind permissions, and manage their existing homes with simple clicks (e.g., Shift+Right-Click to delete, Right-Click to rename via a quick chat prompt). The plugin also features a highly polished teleport warmup system complete with action bars, titles, and movement cancellation.
Installation
NxHomes is built for modern Minecraft servers (1.21+) and is plug-and-play ready.
- Download the plugin: Place the
NxHomes.jarfile into your server's/pluginsdirectory. - Restart the server: Let the server generate the default configuration files.
- Set permissions: Grant your players the base
nxhomes.usepermission, and define their maximum home slots usingnxhomes.home.<number>(e.g.,nxhomes.home.4for VIPs). - Customize: Open the config to adjust the teleport warmup delays, GUI layouts, or world blacklists to fit your server.
Commands
Because NxHomes is GUI-driven, command bloat is kept to an absolute minimum.
| COMMAND | DESCRIPTION |
|---|---|
/home | Opens the interactive homes GUI. |
/sethome | An alias that also opens the homes GUI so players can click an empty slot. |
/nxhomes | The main admin command for managing the plugin. |
Permissions
| PERMISSION | EFFECT |
|---|---|
nxhomes.use | Allows the player to use the plugin and open the GUI (Default: true). |
nxhomes.home.<number> | Defines the amount of home slots a player has unlocked. Note: nxhomes.home.2 is granted by default. |
nxhomes.admin | Grants access to the /nxhomes admin command (Default: OP). |
GUI Configuration
The visual layout of the pages, locked slots, and action buttons are fully customizable.
gui:
title: "&8⟦ &b&lNxHomes &8⟧ &7Page &b%current_page%&7/&b%max_pages%"
size: 36
homes_per_page: 4
# slots for each entry (arrays must have at least homes_per_page entries)
bed_slots: [10, 12, 14, 16]
dye_slots: [19, 21, 23, 25]
prev_page_slot: 27
next_page_slot: 35
# decorative filler
fill_name: "&7 "
fill_slots: [0,1,2,3,4,5,6,7,8]
prev_page_name: "&b⬅ &fPrevious Page"
next_page_name: "&fNext Page &b➡"
locked:
name: "&8⟦ &7Locked Slot &8⟧"
lore:
- "&7This home slot is currently unavailable."
- ""
- "&bℹ &7Upgrade your rank to unlock"
- "&7additional home slots."
empty:
name: "&8⟦ &bEmpty Home &8⟧"
lore:
- "&7No home has been assigned"
- "&7to this slot yet."
- ""
- "&b▶ &fLeft-click &7to set your"
- "&7current location as a home."
actions:
name: "&8⟦ &b&lHome Actions &8⟧"
lore:
- "&7Manage this home using the"
- "&7available actions below."
- ""
- "&b▶ &fLeft-click &7Move home"
- "&b▶ &fRight-click &7Rename home"
- "&b▶ &fShift + Right-click &7Delete"
- "&b▶ &fShift + Left-click &7Set as Main"
confirm:
title: "&8⟦ &c&lConfirm Action &8⟧"
confirm_name: "&a✔ &fConfirm %type%"
cancel_name: "&c✖ &fCancel"
Teleport Warmup & Animations
Configure the delay, visuals, and movement cancellation thresholds when a player initiates a teleport.
teleport:
delay_seconds: 3 # Warmup time in seconds
tick_interval_ticks: 5 # How often the task runs (in server ticks). 20 ticks = 1 second; lower = smoother animation.
cancel_on_move: true # Cancel teleport if player changes X/Y/Z or world
cancel_distance: 0.1 # Movement threshold in blocks; squared distance checked
title:
enabled: true
# Optional custom frames: if empty, frames will be auto-generated (Teleporting, Teleporting., Teleporting.., Teleporting...)
frames: []
title_color: "&b&l" # Prefix styling used for the title text when formatting frames
subtitle: "&7Destination: &f%home_display%"
actionbar:
enabled: true
message: "&bTeleporting in &f%seconds% &bsecond(s)..."
particles:
enabled: true
type: DEFAULT
count: 25
offset_x: 0.5
offset_y: 1.0
offset_z: 0.5
sounds:
enabled: true
start: ENTITY_EXPERIENCE_ORB_PICKUP
tick: UI_BUTTON_CLICK
complete: ENTITY_ENDERMAN_TELEPORT
cancel: ENTITY_VILLAGER_NO
volume: 0.8
pitch: 1.0
Messages & World Blacklists
Restrict homes from being set in specific dimensions (like minigame worlds or the end), and customize all chat output.
world-blacklist:
enabled: false
worlds:
- world_nether
- world_the_end
messages:
world_blacklisted: "&cYou cannot use homes in this world."
# Teleport via HomesGUI
teleport: "&8⟦&bNxHomes&8⟧ &fTeleported to &b%home_display% &7(Slot &b%slot%&7)."
# Teleport fallback
teleport_performed: "&8⟦&bNxHomes&8⟧ &aTeleport successful."
# Home set
home_set: "&8⟦&bNxHomes&8⟧ &fHome successfully set in &bSlot %slot%&f."
# Home moved
home_moved: "&8⟦&bNxHomes&8⟧ &fHome in &bSlot %slot% &fhas been relocated."
# Home deleted
home_deleted: "&8⟦&bNxHomes&8⟧ &cHome in &bSlot %slot% &chas been deleted."
# Main home set (with Home object)
set_main: "&8⟦&bNxHomes&8⟧ &f&b%home_display% &fis now your &6Main Home &7(Slot %slot%)."
# Main home set (slot only)
set_main_slot_only: "&8⟦&bNxHomes&8⟧ &fSlot &b%slot% &fis now set as your &6Main Home."
# Rename prompt
rename_prompt: "&8⟦&bNxHomes&8⟧ &fType a new name in chat to rename &bSlot %slot%&f. &7Use &c/cancel &7to abort. &8(30 seconds)"
# No permission
no_permission: "&8⟦&bNxHomes&8⟧ &cYou do not have permission to perform this action."
# Warmup Messages
started: "&8⟦&bNxHomes&8⟧ &fTeleport will begin shortly. Do not move."
cancelled: "&8⟦&bNxHomes&8⟧ &cTeleport cancelled (movement detected)."
completed: "&8⟦&bNxHomes&8⟧ &aTeleported to &b%home_display%&a."