-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration Guide.md
This page explains how to install, configure, translate, and customize Genius-Homes.
After the plugin starts for the first time, it creates:
plugins/
+-- Genius-Homes/
+-- config.yml
+-- home-icons.yml
+-- home-sounds.yml
+-- language/
| +-- en_US.yml
+-- menus/
+-- home-menu.yml
+-- home-settings-menu.yml
+-- delete-confirm-menu.yml
+-- new-location-confirm-menu.yml
+-- icon-menu.yml
+-- player-heads-menu.yml
+-- sound-menu.yml
+-- rename-menu.yml
Edit plugins/Genius-Homes/config.yml.
Important options:
language: en_US
settings:
debug: false
update-checker: true
bstats: true
mysql:
use: false
homes:
per-world: false
need-permission: true
max-amount: 28
names:
min-length: 1
max-length: 32
allowed-pattern: '^[A-Za-z0-9_-]+$'
rename-permission: false
sound-permission: false
per-sound-permission: falseRestart the server or run:
/reload-home-config
SQLite is used when:
settings:
mysql:
use: falseTo use MySQL:
settings:
mysql:
use: true
table-prefix: homes
host: localhost
port: 3306
database: database
username: root
password: passwordRestart the server after changing database settings.
Home names are validated before creation and rename operations, including text entered through the AnvilGUI input.
settings:
homes:
names:
min-length: 1
max-length: 32
allowed-pattern: '^[A-Za-z0-9_-]+$'allowed-pattern is a Java regular expression. The default allows letters, numbers, underscores, and hyphens.
settings:
homes:
teleport:
cooldown:
enabled: true
cancel-on-move: true
time: 5Players with genius.homes.bypass.cooldown skip the cooldown. You can also use genius.homes.bypass.cooldown.<seconds> for specific overrides.
settings:
homes:
teleport:
cost:
enabled: false
type: XP
item: DIAMOND
amount: 10Supported cost types:
| Type | Notes |
|---|---|
VAULT |
Requires Vault and an economy plugin. |
XP |
Takes experience points. |
LEVEL |
Takes experience levels. |
ITEM |
Takes the configured item material. |
Language files are stored in:
plugins/Genius-Homes/language/
The default file is:
en_US.yml
To create a translation:
- Copy
en_US.yml. - Rename it, for example
da_DK.yml. - Translate the message values.
- Set the active language in
config.yml:
language: da_DKIf the selected language file does not exist, Genius-Homes falls back to en_US.yml. If a translation is missing a message, only that message falls back to en_US.yml.
Menus are stored in:
plugins/Genius-Homes/menus/
Each menu has its own file. Server owners can change the visual layout without editing Java code.
Common options:
rows: 6
title: '&8Menu title'
content-slots: [10-16, 19-25, 28-34, 37-43]
filler:
enabled: true
material: GRAY_STAINED_GLASS_PANE
name: ''
slots: [0-9, 17, 18, 26, 27, 35, 36, 44-53]
buttons:
close:
enabled: true
slot: 49
material: BARRIER
name: '&cClose'
lore: []
custom-model-data: 1001rows controls inventory size. Valid values are 1 through 6.
Slots start at 0. A 6-row inventory has slots 0 through 53.
Slot lists support individual slots and ranges:
content-slots: [10-16, 19-25, 28-34, 37-43]Use filler items to fill empty slots:
filler:
enabled: true
material: GRAY_STAINED_GLASS_PANE
name: ''
slots: []If slots is empty, the plugin fills every empty slot. If slots contains values, only those slots are filled.
Buttons control how visual items appear. Their underlying behavior is still handled by the plugin.
Example:
buttons:
teleport:
slot: 20
material: ENDER_PEARL
name: '&aTeleport'
lore:
- '&7Click to teleport'You can change the material, slot, name, lore, and custom model data. Do not rename button keys such as teleport, close, back, or confirm, because the plugin uses those keys to apply behavior.
Common placeholders:
| Placeholder | Meaning |
|---|---|
%home% |
Home name. |
%current% |
Current amount or page. |
%max% |
Maximum homes. |
%total% |
Total pages. |
%x%, %y%, %z%
|
Home coordinates. |
%world% |
Home world. |
%new_x%, %new_y%, %new_z%
|
New location coordinates. |
%new_world% |
New location world. |
%sound% |
Current sound display name. |
%target% |
Target player name. |
%chat_prefix% |
Configured chat prefix. |
All plugin text that passes through language files, menu files, icon display names, sound display names, chat messages, item names, and item lore supports the same color formats.
Legacy Minecraft color codes:
name: '&aGreen text'
name: '&lBold &cRed'Hex colors:
name: '#55AAFFBlue text'
name: '7AAFFBlue text'
name: '<#55AAFF>Blue text'Gradients:
name: '<gradient:#55AAFF:#FF55FF>Gradient text</gradient>'Multi-stop gradients:
name: '<gradient:#55AAFF:#FFFFFF:#FF55FF>Three color gradient</gradient>'
name: '<gradient:#00FFAA:#55AAFF:#AA55FF:#FF55AA>Four color gradient</gradient>'You can still use normal legacy formatting codes such as &l, &n, and &o outside gradient tags.
Home icon options are configured in:
plugins/Genius-Homes/home-icons.yml
Home sound options are configured in:
plugins/Genius-Homes/home-sounds.yml
If per-sound permissions are enabled, grant:
genius.homes.sounds.<sound>
Example:
genius.homes.sounds.entity_enderman_teleport
Genius-Homes writes warnings and errors to:
plugins/Genius-Homes/debug.log
The debug log includes server version, Bukkit version, and plugin version when the plugin starts. Include this file when reporting bugs, but remove private database credentials if you add config snippets.
If a menu does not look right:
- Check that
rowsis between1and6. - Check that every slot is inside the inventory size.
- Check that all materials are valid Bukkit material names.
- Check the console for Genius-Homes warnings.
- Run
/reload-home-config.
If language text is missing:
- Check
config.ymlhas the correctlanguage:value. - Check that
language/<language>.ymlexists. - Compare your language file against
en_US.yml. - Missing keys automatically fall back to
en_US.yml.
Join the Discord for setup help and support:
When asking for help, include:
- Server software and version
- Java version
- Genius-Homes version
- The relevant config section
- Any console errors
- What you already tried
Report bugs through GitHub Issues.
Include:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Server version
- Plugin version
- Full console error, if any
- Whether the issue still happens with default config files
Do not include private credentials from config.yml.