# ZaminShop

ZaminShop is a pack-driven GUI shop plugin for Bukkit, Spigot, Paper, and legacy-compatible server stacks that need more than a single `/shop` menu.

It was built for server owners who care about three things at the same time:

* a polished player-facing shop experience
* an economy that does not quietly break under bad pricing or bad configs
* a file layout that still makes sense once the server grows beyond one category menu

## Why premium?

Good shop systems are not hard because of the first menu.

They are hard because of everything that happens after launch:

* prices drift over time
* admins add packs and event shops
* players find sell loops
* custom items and hooked items have to keep working across versions
* YAML mistakes should be readable, not a wall of SnakeYAML stack traces
* menu behavior has to stay consistent across search, recent, favorites, sell flows, and category shops

ZaminShop has been shaped around those production problems instead of pretending they are edge cases.

If your server needs a shop that feels deliberate, safe, and maintainable, this is what the plugin is built to do.

## What ZaminShop actually gives you

* self-contained shop packs loaded from `plugins/ZaminShop/shops/<pack>/`
* pack main menus plus category shop files
* configurable GUI menus for sell, search, favorites, recent, amount selector, and bulk flows
* shared pagination layouts with first-page, middle-page, last-page, and single-page behavior
* placeholder-aware menu rendering
* configurable category commands and subcommands
* transaction locking and rollback protection
* sell limits and suspicious transaction monitoring
* cross-shop and cross-pack risk guard checks
* multi-economy routing
* modern item directives with legacy runtime compatibility
* custom item and spawner hooks
* readable validation and startup diagnostics

## Who this plugin is for

ZaminShop is a strong fit for:

* survival servers with a real economy
* SMP servers where buy and sell volume matters
* prison or grind servers with heavy item throughput
* mixed-mode servers that want separate shop experiences
* donor or premium packs that must stay isolated
* seasonal servers that rotate shop content often

## Start here

### I want a shop online quickly

* [Install and Launch Your First Shop](/en-us/readme/setup.md)
* [First Shop Pack Walkthrough](/en-us/readme/shops/first-shop-pack.md)
* [Commands](/en-us/readme/commands.md)

### I want to understand the system before I configure it

* [Why ZaminShop Exists](/en-us/readme/why-zaminshop.md)
* [What ZaminShop Does](/en-us/readme/overview.md)
* [Core Feature Areas](/en-us/readme/features.md)

### I want to build my own packs and menus

* [Build Shop Packs](/en-us/readme/shops.md)
* [Shop Pack File Format](/en-us/readme/shops/shop-file-format.md)
* [Menu File Format](/en-us/readme/gui/menu-file-format.md)

### I want to protect the economy first

* [Safety, Risk Guard, and Audit](/en-us/readme/configuration/safety.md)
* [Sell Limits and Suspicious Transactions](/en-us/readme/configuration/sell-limits.md)
* [Price Modifiers](/en-us/readme/configuration/price-modifiers.md)

## Documentation standard

This wiki is written for operators, not just developers.

Each major section is meant to answer:

* what the feature does
* why it exists
* when to use it
* how to configure it
* common mistakes
* what happens at runtime

Where implementation details matter, they are explained. Where they do not, the docs stay focused on the job of running a real server.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://abasing.gitbook.io/en-us/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
