Haberdashery (ShopGUI)

A ShopGUI+ alternative for Fabric Servers

Haberdashery (the name for a sewing/fabric supply store in the UK) is a Fabric Shop GUI Mod. It's a pun.

Haberdashery supports multiple Impactor currencies, item currencies, infinite shops, buying & selling products to shops, and multiple types of products:

  • Commands (for purchasing things like claim blocks, or integrating with 3rd party mods)

  • Items (traditional ShopGUI+ - you define an item & a sell/buy price)

The goal for Haberdashery is to support ShopGUI+ config files as well, so you can start off with the many available ShopGUI+ templates for survival servers.

Haberdashery will also come with Cobblemon NPCs templates, so you can quickly setup NPCs without any configuration or datapacks needed! It already includes an Entity Shop mode, that lets you set any entity (Pig, Cow, NPC, Pokemon) as a Shop Keeper - when a player right clicks it, that shop's menu opens.

Shop access

Players can open shops in three ways:

  • /shop to open the main shops menu

  • /shop <shop> to open a specific shop by ID

  • Right-click an entity bound with /setupShopEntity <shop>

Haberdashery Config

All runtime data lives under /config/Haberdashery:

  • config/Haberdashery/Shops/*.json - shop definitions (a blocks.json example is copied on first run)

  • config/Haberdashery/GUI/Menus/*.json - GUI layouts (default_shop.json and shops_menu.json are copied by default)

  • config/Haberdashery/GUI/item_definitions.json - shared GUI item definitions

  • config/Haberdashery/messages.json - messages and lore text

  • config/Haberdashery/config.json - mod config (including defaultCurrency and defaultShopGui)

  • config/Haberdashery/shop_entities.json - entity UUID to shop ID bindings

  • config/Haberdashery/Shops/PlayerAccounts/*.json - per-player purchase limits

GUI menus

Menu layouts live in config/Haberdashery/GUI/Menus and are identified by their id:

  • default_shop is used for individual shops unless overridden by gui

  • shops_menu is used by /shop (which lists all shops)

Both menus use the paginated X element:

  • Shop list menus inject all shops into the X element

  • Shop menus inject all products into the X element

Messages and lore

Messages and lore lines are configured in config/Haberdashery/messages.json.

Last updated