AT-ShoppingMall
Rentable and buyable shop plots inside a managed mall, all run through GUIs
By zArrowTan.
Rentable and buyable shop plots inside a managed mall, all run through GUIs
By zArrowTan.
AT-ShoppingMall turns any area into a managed shopping mall. Admins carve out 3D plots with a wand, set a rent price or a sale price, and players rent or buy them to run their own shops. The plugin handles the whole lifecycle: scheduled rent, overdue fees, grace periods, auto-eviction, item recovery, ranks, holograms, warps, alerts, and a full audit trail. Almost every screen is a GUI, and almost every string and menu is editable, so you can theme and translate it without touching code.
Browsing and renting through the main /sm menu
- GUI-first, not sign-first: browsing, renting, buying, admin, audit, holograms, and warps are all menus.
- Player-to-player leasing: owners can sub-lease plots to other players, with an admin-reviewed eviction flow.
- Full eviction and recovery: evicted players' blocks and chest items are saved and reclaimable, with configurable re-rent policies and cooldowns.
- Storage choice: YAML, SQLite, or MySQL/MariaDB, with live runtime switching.
- Discord webhook mirroring: rich embeds with per-event toggles.
- Deep customization: every message and menu, hex and gradient colors, configurable GUI slots, and PlaceholderAPI support.
- Developer API: other plugins can query plots and register shop-cleanup providers for any chest-shop plugin.
- 3D cuboid plots created with a wand: left-click corner 1, right-click corner 2
- Automatic snapshot saving of plot contents
- Region protection for plot areas
- Redefine plot boundaries after creation
The plot selector wand
Selecting corner 1 and corner 2 with the wand
Requires Vault plus an economy plugin.
- Server-owned and player-to-player renting and selling
- Set rent (
/sm setrent) or purchase price (/sm setprice) - Admin force variants to bypass checks (
/sm forcesetrent,/sm forcesetprice) - Configurable currency symbol (cosmetic, Vault controls the real currency)
- Scheduled rent on a configurable interval (default 7 days)
- Overdue detection with a grace period (default 3 days, 0 evicts immediately)
- Late fees as a percentage of rent or a flat amount
- Separate maintenance fee on its own interval for upkeep regardless of tenancy
- Auto-eviction once overdue past the grace window
- On eviction, the tenant's blocks and chest items are saved for later recovery
- Players reclaim items via
/sm claim-evicted - Recovery items expire after a configurable number of days (default 30, 0 keeps forever)
- Re-rent policies: ALLOW, SAME_PLOT_TIMED, SAME_OWNER_TIMED, SAME_PLOT_PERMANENT, SAME_OWNER_PERMANENT, with a configurable cooldown for the timed ones
- Owners can clear restrictions with a pardon flow
The force-evict menu
Leaving a plot and reclaiming items from the recovery menu
- Plot owners can sub-lease to other players
- Eviction request and deny system with admin approval required
- Configurable cooldown between eviction requests
- Options for whether an owner can leave while a tenant is renting
- Auto-relist on tenant leave, with optional clearing of the shop warp
🛠 Admin Panel
- Full GUI management with filter, search, fuzzy matching, stats, and bulk actions
- Mark server-owned plots UNAVAILABLE (on-hold or maintenance), with an optional required reason
- Show nearby plot outlines with a particle preview (
/sm showplots)
Browsing the admin panel
Managing a single plot from the admin panel
Three search methods: exact name, closest match, and by player name
🛡 Protection
- Block break and place, containers, explosions, fire, PVP toggle, armor stands, item frames, and respawn anchors
- Coexists with WorldGuard global deny regions, so plot members can still build inside their plot
- PVP can be toggled live with
/sm togglepvp
Requires DecentHolograms.
- Floating text above plots
- GUI positioning with a Y offset, and optional boundary checking so holograms stay in bounds
- Rank-based limits on hologram line counts
The per-plot hologram menu
A default plot hologram
- Configurable rank tiers that control plot limits and hologram line limits
- Players view and upgrade ranks in a GUI
- Rank menu layout lives in a single
ranks.ymlfile - Add or edit ranks with no restart, just edit
ranks.ymland run/sm reload
The ranks menu
- Mall warps: named admin teleport points in a paginated GUI
- Player warps: tenants and owners set custom shop warps with a name, description, and location, shown in a searchable public directory
Mall warps, set with /sm setwarp
The player warps directory
- Detailed action history with filters by type, actor, and month
- Pagination, sort, click-to-teleport to the affected plot, and auto-purge by age
- Configurable timezone for timestamps and a retention period (default 90 days)
The audit log with filters and click-to-teleport
- Opt-in notifications when new plots are listed for rent or sale
- Per-context self-notification toggles for admin and player listings
- Mirror plugin events to a Discord channel via an incoming webhook
- Rich embeds (colored cards with fields) or plain one-line messages
- Per-event toggles for new listing, create, delete, evict, eviction request, reset, delist, price change, redefine, PVP toggle, preset save, availability, rent, and more
- Configurable embed colors per event, plus title, footer, username, and avatar
- YAML by default, no setup
- SQLite (single file, no server)
- MySQL or MariaDB with HikariCP connection pooling
- Live runtime switching between backends, with auto-migration on first switch
- Database drivers are runtime-loaded, not shaded into the jar
- Public
ShoppingMallAPI, obtained from Bukkit's services manager - Query methods: is-a-plot, get plot, get all plots, get owner, get tenant, get region, get status (AVAILABLE, RENTED, PURCHASED, UNAVAILABLE), and is-rented
- ChestShopProvider extension point: other plugins teach AT-ShoppingMall how to delete shops from any chest-shop plugin (ChestShop, EconomyShopGUI, ShopChest, and so on) when a plot is cleared. The built-in QuickShop hook is the reference implementation.
- Providers register and unregister at runtime, and eviction and reset flows call every registered provider
🎛 Menu Customization
- Resource pack ready: every menu icon supports custom
model-data, so you can swap in your own textures for a fully themed mall - Simple sizing: set menu height with
rows: 1-6instead of raw slot counts, and oldsize:keys convert automatically - Auto or manual layout: let the plugin arrange icons by
order, or pin each one to its ownslotwith themenu.manual-slotstoggle - Fully editable: every menu including the admin search menu
- Safe updates: menu files auto-update on new versions, new keys are added while your edits stay intact
- All messages editable
- All GUI menus editable: titles, items, slots, materials, filler, and decorations
- Hex and gradient colors with a global RGB toggle
- PlaceholderAPI support (20+ placeholders for scoreboards, TAB, and more)
- Bundled languages plus drop-in custom language files loaded from disk
- Configs auto-migrate on update: new keys are added with defaults, existing values preserved
Fully translated out of the box: English, Spanish, French, and Indonesian. More languages ship too, and you can drop in your own.
AT-ShoppingMall ships with 25 bundled language files, every player-facing string ready to go.
20 real languages: English (US, UK, IN), French, Spanish, Filipino, Indonesian, Cantonese, Mongolian, Tok Pisin, Swahili, Icelandic, Maori, Welsh, Basque, Navajo, Hawaiian, Mongolian script, Esperanto, and Middle Korean.
5 just for fun: Klingon, Toki Pona, Egyptian hieroglyphs, Kryptonian, and Victorian English.
Missing a language? Drop your own file in the folder and select it. No recompile needed.
Main command
/sm (alias /mall).Player Commands
/smopen the main menu/sm plotsview your plots/sm tp <plot>teleport to a plot/sm pay [plot]pay rent/sm balancecheck balance and plot info/sm members add/remove <player>manage plot members/sm ranksview and upgrade ranks/sm warpsopen mall warps/sm pwarpsopen the player warps directory/sm pwarp <name>teleport to a player warp/sm hologrammanage your plot hologram/sm setentranceset the plot entrance location/sm renthistoryview rent payment history/sm claim-evictedrecover evicted items/sm alertstoggle listing notifications/sm help [page]player help
Admin Commands
/sm wandget the selection tool/sm create <id>create a plot/sm delete <plot>delete a plot/sm redefine <plot>redefine plot boundaries/sm setrent <plot> <amount>and/sm setprice <plot> <amount>/sm forcesetrentand/sm forcesetpriceforce variants/sm delist <plot>clear listings/sm forceevict <plot>force-evict the occupant/sm adminopen the admin panel/sm auditopen the audit log/sm viewrequestsview pending eviction requests/sm showplotsshow nearby plot outlines/sm savepreset <plot>re-save the plot snapshot/sm togglepvptoggle PVP in plots/sm setwarp,/sm delwarp,/sm listwarpmanage mall warps/sm pardon <player>clear a re-rent restriction/sm migrate <yaml|sqlite|mysql> [confirm]switch storage backend at runtime/sm reloadreload configuration
Player help (
Admin help (
/sm help)Admin help (
/sma)shoppingmall.usebasic usage (everyone)shoppingmall.adminall admin commands (op)shoppingmall.tpteleport to plots (everyone)shoppingmall.rentrent plots (everyone)shoppingmall.buybuy plots (everyone)
- Minecraft: 1.21 line (tested), with 1.18 to 1.20 supported after a boot check
- Server software: Spigot, Paper, or Purpur (tested on Purpur 1.21.10)
- Java: 17 or higher
- Required: Vault plus an economy plugin (for example EssentialsX)
Optional integrations that work automatically when present:
- DecentHolograms floating text holograms
- QuickShop Hikari chest shop validation inside plots
- WorldGuard coexistence with global deny regions
- PlaceholderAPI 20+ placeholders
- Drop the jar into
plugins/. - Install Vault and an economy plugin.
- Restart the server.
- Run
/sm wand, left-click corner 1, right-click corner 2. - Run
/sm create <id>, then/sm setrent <id> <price>or/sm setprice <id> <price>. - Players use
/smto browse and rent or buy.
Console startup
- Do I need WorldGuard? No, it's optional and only adds coexistence with global deny regions.
- Do I need a database? No, YAML works out of the box. SQLite and MySQL are optional.
- Do holograms work without DecentHolograms? No, holograms need DecentHolograms installed.
- Can players rent to other players? Yes, through the leasing system, with admin-reviewed evictions.
- Can I translate it? Yes, edit the language files or drop in your own.
- What happens to a tenant's stuff when evicted? It's saved and reclaimable, if item recovery is on.
- Is there a developer API? Yes, query plots and register shop-cleanup providers via
ShoppingMallAPI.
This plugin uses bStats to collect anonymous usage stats. You can opt out anytime in
plugins/bStats/config.yml.Full documentation is available online. Need help, found a bug, or want to suggest a feature? Join the Discord.
Read the documentation
Click here to join the Discord
Build the mall. Rent the plots. Run the economy.
Click here to join the Discord
Build the mall. Rent the plots. Run the economy.
