Player-run hotels, protected rooms, StormEconomy rent, leases, reviews, staff, NPCs, and village bed rentals.
StormHotels
Player-run hotels and motels with protected rooms, StormEconomy-backed rent, leases, staff, reviews, NPCs, and village bed rentals.
StormHotels is a Paper plugin for creating and managing rentable hotels, motels, and rooms on a Minecraft server. Players can create hotels, define room regions, charge rent, offer leases, manage staff, protect rooms, register containers and signs, and let guests rent rooms through commands or GUI browsing.
StormHotels uses StormEconomy for money actions when it is installed. Browsing, diagnostics, storage, and non-money management remain available without economy support.
Features
- Browse published hotels with
/hotels. - Open room browsing GUIs for a selected hotel.
- Create player-owned hotels with a two-corner selection wand.
- Create protected rooms inside hotel regions.
- Configure prepaid stays with custom prices and durations.
- Configure recurring leases with custom prices and lease periods.
- Rent rooms, lease rooms, renew bookings, and check out.
- Review rooms after stays with 1-5 ratings and optional comments.
- Protect rented room access for doors, beds, buttons, containers, and build/break actions.
- Let hotel owners and managers link room containers.
- Let hotel owners and managers register room rental signs.
- Support hotel staff roles for receptionists and managers.
- Assign online players as human receptionists.
- Create optional NPC receptionist locations when NPCs is installed.
- Add hotel and room amenities.
- Purchase hotel and room upgrades.
- Enable or disable room auto-pricing.
- Preview stay and lease prices before renting.
- Store item recovery entries in player claim boxes for forced clean-up and eviction flows.
- Support forced admin eviction.
- Support configurable hotel and room size limits.
- Support configurable maximum hotels per owner and maximum rooms per hotel.
- Support configurable rent caps, stay limits, lease limits, lease grace periods, hotel tax, upgrade costs, and auto-pricing weights.
- Support allowed-world restrictions for hotel creation.
- Expose status and storage diagnostics for administrators.
- Expose a public API for other plugins to inspect hotels, rooms, active bookings, access rules, and hotel stats.
- Provide system-safe hotel and room upsert APIs for integrations.
- Refuse system takeovers of existing player hotels unless owner and bank identity match.
- Support VillagePolitics village bed rentals, with rent routed into an existing village bank.
Storage And Security
- SQLite storage is the default.
- YAML, SQLite, MySQL, and MariaDB storage are supported through the shared secure storage layer.
- SQLite paths are confined to the plugin data folder.
- Example MySQL and MariaDB URLs use certificate and hostname verification.
- JDBC credentials are handled through the shared secure storage layer.
- Hotel owners, tenants, staff, bookings, and reviews use UUID-backed identity.
- Room access checks validate owners, managers, staff, tenants, active bookings, and admin bypass permission.
- Hotel and room cuboids are bounded by configurable volume limits.
- Room regions must be inside their hotel region.
- Overlapping rooms are rejected.
- Rent, lease, tax, upgrade, refund, and settlement flows use StormEconomy when available.
- Pending settlements are tracked so money operations can be retried safely.
- Claim-box entries are capped by config to avoid unbounded item recovery storage.
- System integration upserts validate ownership and bank routing before modifying hotel records.
Commands
Main command aliases:
/hotels/hotel/stormhotels
Browsing commands:
/hotels/hotels [hotel]/hotel list
Creation and room setup:
/hotel help/hotel wand/hotel create <id> <name...>/hotel room list <hotel>/hotel room create <hotel> <room> <price> [duration] [name...]/hotel room lease <hotel> <room> <price> [period]
Guest commands:
/hotel rent <hotel> <room>/hotel lease <hotel> <room>/hotel renew <hotel> <room>/hotel checkout <hotel> <room>/hotel review <hotel> <room> <1-5> [comment]/hotel price <hotel> <room>/hotel claimbox
Management commands:
/hotel container <hotel> <room>/hotel sign <hotel> <room>/hotel staff <hotel> <online-player> <receptionist|manager>/hotel receptionist <hotel> <online-player>/hotel npc <hotel>/hotel amenity hotel <hotel> <amenity>/hotel amenity room <hotel> <room> <amenity>/hotel upgrade hotel <hotel>/hotel upgrade room <hotel> <room>/hotel autoprice <hotel> <room> on|off
Admin commands:
/stormhotels status/stormhotels storage/stormhotels save/stormhotels backup/stormhotels reload/stormhotels evict <hotel> <room>/stormhotels claimbox
Permissions
Normal player access defaults to everyone.
Grant normal player access:
stormhotels.defaults
Individual player permissions:
stormhotels.usestormhotels.rentstormhotels.createstormhotels.managestormhotels.staff
Every administrative permission defaults to operator access.
Grant everything:
stormhotels.admin
Or assign individual admin permissions:
stormhotels.admin.commandstormhotels.admin.bypassstormhotels.admin.storagestormhotels.admin.savestormhotels.admin.backupstormhotels.admin.reloadstormhotels.admin.evict
Optional Integrations
StormHotels is usable on its own for browsing, setup, storage, and diagnostics, but it can work with other plugins when they are installed.
- StormEconomy handles rent, lease, renewal, upgrade, tax, refund, and settlement money actions.
- NPCs can provide NPC receptionist support for hotels.
- VillagePolitics can create system-owned village hotels and village bed rooms, then route rental income into a village bank.
These hooks are optional. If StormEconomy is missing, money-backed rental actions are unavailable but hotel records, browsing, diagnostics, and storage remain available. If NPCs is missing, command, GUI, sign, and human receptionist access continue to work normally.
Notes
StormHotels is designed for servers that want player-owned accommodation, inns, rentable rooms, motels, apartments, or village bed rental systems without requiring a large external hotel platform.
Normal use does not require an external database. SQLite is the default, while YAML, MySQL, and MariaDB are available for servers that prefer a different persistence backend.
StormHotels 0.1.0 is also ready for VillagePolitics integration. Mayors can rent out remembered village beds through VillagePolitics when StormHotels and StormEconomy are installed, and the money can be deposited into the village's bank account.