
Racial_Town
Territory × Race Evolution, creating immersive RPG survival experience.
HotelRoom - Territory × Race Evolution RPG Plugin
📌 Plugin Overview
HotelRoom is a high-quality RPG enhancement plugin designed for Minecraft Paper servers, perfectly combining Territory Management with Race Evolution System. Players can build their homes while experiencing unique growth paths of different races, creating an immersive survival adventure experience.
✨ Core Features
🏠 Territory System
Complete territory management system with three territory types:
| Type | Description | Use Case |
|---|---|---|
| Private Territory | Player's exclusive private space with full protection | Personal residence, private storage |
| Public Territory | Multi-player shared area, claimable | Apartment buildings, community housing |
| Official Territory | Server official managed areas | Shops, office areas, public facilities |
Key Features:
- 🔒 Complete block protection mechanism
- 👥 Member permission management
- 🏆 Honor threshold settings
- 💾 Auto facade snapshot, auto-restore after restart
- 🗺️ Intuitive GUI navigation interface
🧬 Race Evolution System
Rich race system giving each player a unique growth path:
Race Features:
- 🧝 Multiple race choices (Human, Elf, Dwarf, etc.)
- 📈 Level growth system, attributes increase with level
- 🔄 Race evolution paths, unlock new abilities
- 🎨 Race-exclusive appearance changes
- 🎙️ Race-exclusive voice chat channel
Growth Mechanics:
- Kill monsters to gain race experience
- Complete quests for bonus experience rewards
- Race evolution unlocks powerful skills
⚔️ Custom Attribute System
Powerful attribute system supporting 20+ attributes:
Offensive Attributes:
| Attribute | Description |
|---|---|
| Physical Damage | Increases normal attack damage |
| Magic Damage | Increases magic attack damage |
| Crit Rate | Probability of triggering critical hit |
| Crit Damage | Damage multiplier on critical hit |
| Armor Penetration | Ignores target armor value |
| Magic Penetration | Ignores target magic defense |
Defensive Attributes:
| Attribute | Description |
|---|---|
| Physical Defense | Reduces physical damage taken |
| Magic Defense | Reduces magic damage taken |
| Armor Value | Base armor damage reduction |
| Dodge Rate | Probability of completely dodging attack |
| Block Rate | Probability of blocking attack |
Survival Attributes:
| Attribute | Description |
|---|---|
| Health | Maximum health cap |
| Health Regen | Health restored per second |
| Lifesteal | Restore health on attack |
| Mana | Mana cap |
| Mana Regen | Mana restored per second |
Utility Attributes:
| Attribute | Description |
|---|---|
| Movement Speed | Movement speed bonus |
| Attack Speed | Attack frequency bonus |
| Cooldown Reduction | Skill cooldown reduction |
| EXP Bonus | Increased experience gain |
| Drop Bonus | Item drop rate increase |
Equipment Attributes:
- Support adding attributes in item Lore
- Auto-apply when equipment is worn
- Support percentage and fixed value bonuses
👨👩👧👦 Family System
Complete family social system:
Family Features:
- 🏰 Create family, establish power
- 👥 Invite members, grow team
- 📊 Family level, unlock privileges
- 💬 Family chat, exclusive channel
- 🎯 Family positions, permission management
Position System:
| Position | Permissions |
|---|---|
| Leader | Full management permissions |
| Deputy | Invite/kick members |
| Member | Basic family features |
🎮 Commands
Territory Commands
/hrlist - Open territory list and navigation
/hotelroom [subcommand] - Main command
/createhotel <name> [system] - Create territory (Admin)
/createpublichotel <name> - Create public territory (Admin)
/createofficialhotel <type> <name> - Create official territory (Admin)
/givehotel <territory> <player> - Gift territory (Admin)
/removehotel <territory> - Remove territory (Admin)
/abandon [territory] - Abandon territory
Attribute Commands
/attr check [player] - Check attributes
/attr set <player> <attr> <value> - Set attribute (Admin)
/attr add <player> <attr> <value> - Add attribute (Admin)
/attr reset <player> - Reset attributes (Admin)
/attr reload - Reload config (Admin)
/attr item add <attr> <value> - Add attribute to item (Admin)
/attr item remove <line> - Remove item attribute (Admin)
/attr item list - View item attribute list
Race Commands
/racegui - Open race evolution interface
/changerace <race> - Change race
/racevoice - Race voice chat
/raceexp give <player> <amount> - Give race experience (Admin)
/raceexp set <player> <level> - Set race level (Admin)
/raceexp check <player> - Check race info (Admin)
Family Commands
/family - Open family main interface
/family create <name> - Create family
/family invite <player> - Invite player
/family kick <player> - Kick member
/family leave - Leave family
/family info - View family info
🔌 API & PAPI Variables
PlaceholderAPI Variables
Player Related:
%hotelroom_player_honor% - Player honor value
%hotelroom_player_health% - Current health
%hotelroom_player_max_health% - Max health
%hotelroom_player_health_percent% - Health percentage
Attribute Related:
%hotelroom_attr_<attribute>% - Specified attribute value
%hotelroom_all_attributes% - All attributes list
Territory Related:
%hotelroom_in_land% - Whether in territory
%hotelroom_land_name% - Current territory name
%hotelroom_land_owner% - Territory owner
%hotelroom_land_honor% - Territory honor threshold
%hotelroom_in_public_hotel% - Whether in public hotel
%hotelroom_public_members_count% - Public territory member count
Race Related:
%hotelroom_race% - Current race name
%hotelroom_race_name% - Race internal ID
%hotelroom_is_race_<race>% - Whether specified race
Family Related:
%hotelroom_family_name% - Family name
%hotelroom_family_position% - Family position
%hotelroom_family_level% - Family level
%hotelroom_family_member_count% - Member count
Mob Related:
%hotelroom_mob_health% - Targeted mob current health
%hotelroom_mob_max_health% - Targeted mob max health
%hotelroom_mob_health_percent% - Targeted mob health percentage
%hotelroom_mob_name% - Targeted mob name
Developer API
// Get attribute manager
AttributeManager manager = AttributeManager.getInstance();
// Get player attributes
PlayerAttribute attr = manager.getPlayerAttribute(player.getUniqueId());
double damage = attr.getAttribute("physical_damage");
// Set player attribute
manager.setPlayerAttributeValue(uuid, "physical_damage", 50.0);
manager.refreshPlayerAttributes(player);
// Get territory info
HotelInfo hotel = SelectionMgr.HOTELS.get("territory_name");
if (hotel != null) {
UUID owner = hotel.owner;
boolean isPublic = hotel.isPublic;
Location[] corners = hotel.corners;
}
// Check if player is in territory
HotelInfo currentHotel = ProtectionListener.getHotelAt(player.getLocation());
⚙️ Configuration Files
File Structure
plugins/HotelRoom/
├── config.yml # Main config file
├── hotels.db # SQLite database
├── attributes/
│ └── attributes.yml # Attribute system config
└── races/
├── human.yml # Human race config
├── elf.yml # Elf race config
└── dwarf.yml # Dwarf race config
Custom Attribute Configuration
custom-attributes:
true_damage:
display-name: "§c⚡ True Damage"
default-value: 0.0
min-value: 0.0
max-value: 1000.0
type: offensive
trigger: on_attack
formula: "damage + {true_damage}"
ignore-defense: true
description: "Deals defense-ignoring extra damage"
📋 Permissions
| Permission | Description | Default |
|---|---|---|
hotelroom.admin | Admin permission | OP |
hotelroom.attr.others | View others' attributes | OP |
hotelroom.race.gui | Use race evolution GUI | Everyone |
hr.family.use | Use family system | Everyone |
hr.family.create | Create family | Everyone |
hr.family.admin | Family admin | OP |
hr.family.invite | Invite family members | OP |
hr.family.kick | Kick family members | OP |
📥 Installation Guide
Requirements
- Server: Paper 1.21.4 or higher
- Java: JDK 21 or higher
- Optional Dependencies:
- PlaceholderAPI (Recommended)
- MythicMobs (Optional)
- CustomMoney (Optional)
Installation Steps
- Download the latest HotelRoom.jar
- Place the file in server's
pluginsfolder - Start server, wait for config files to generate
- Modify config files as needed
- Use
/attr reloadto reload config or restart server
