Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/mukybaby/Simple-Shop-Sim/llms.txt

Use this file to discover all available pages before exploring further.

Simple Shop Sim is a lightweight, terminal-based shop management game written entirely in Python. It puts you in the role of a small shop owner — stocking shelves, serving customers, striking bargains, and keeping the lights on as rent climbs each day. Whether you’re a developer looking for a fun Python project to tinker with, a hobbyist who enjoys simulation games, or a learner wanting to explore object-oriented Python in a real context, Simple Shop Sim offers an immediately playable and easily hackable experience with zero external dependencies.

What is Simple Shop Sim?

Each session of Simple Shop Sim follows a satisfying loop that deepens as the days tick by. You start by naming your shop, which sets the tone for your budding enterprise. From there the cycle repeats:
  1. Restock — Browse your inventory and spend cash to top up the stock of any item you carry.
  2. Open for the day — Flip the sign to open and a fresh wave of customers walks through the door. The number of customers grows with each passing day, ramping up the pressure.
  3. Serve customers — Each customer arrives with a name, a budget, and a specific item in mind. You work through the queue one by one.
  4. Bargain (or don’t) — When serving a customer you can attempt to bargain with them. If the bargain succeeds, the price increases and the customer leaves without buying; if it fails, the price drops by 10% and the customer buys at the lower price. Skipping the bargain sells at the listed price. It’s a calculated risk every time.
  5. End the day — Close up shop, pay the day’s rent (which scales as day × $10), and advance to the next morning.
  6. Repeat — Return to the top of the loop with a little more experience, a slightly heavier rent bill, and more customers waiting tomorrow.
Note that your cash decreases through restocking and daily rent — sales reduce customer budgets and item stock, but do not directly add to your cash. The challenge is to manage your spending and keep enough cash on hand to pay rent each day.

Key features

Inventory management

Browse your full stock list, see current quantities and prices at a glance, and restock any item on the fly — as long as your cash holds out.

Customer bargaining

Every customer interaction includes an optional bargaining round driven by a random chance mechanic. Play it safe or push your luck for a higher margin.

Day/night cycle with escalating rent

Each new day brings more customers and a higher rent bill (day × $10). The pacing naturally escalates the challenge without any complex configuration.

Fully customizable via JSON data files

The item catalogue and customer name pool live in plain JSON files. Swap in your own items, prices, and names to create an entirely different shop experience.

Project structure

Simple-Shop-Sim/
├── main.py                   # Game entry point and main loop
├── res/
│   ├── shop.py               # Item, Customer, Shop classes and make_customers()
│   ├── items.json            # Default shop inventory (name, price pairs)
│   └── customer_names.json   # Pool of customer names
  • main.py — Bootstraps the game, loads JSON data, and runs the while True game loop. All player input and match/case routing live here.
  • res/shop.py — Defines the three core classes (Item, Customer, Shop) and the make_customers() factory function that generates a day’s worth of customers scaled to the current day number.
  • res/items.json — A JSON array of [name, price] pairs that seeds the starting inventory. The default catalogue includes Apple (5),Bread(5), Bread (10), and Potion ($25).
  • res/customer_names.json — A flat list of names drawn at random when generating customers each day.
Simple Shop Sim is open source and built to be modified. You’re encouraged to patch any bugs you find, swap in your own item data, or extend the game with new mechanics. The README puts it simply: alter any of the code, fix what’s broken, and have fun.

Build docs developers (and LLMs) love