A life-simulation mod for Minecraft 1.20.1 (Forge 47.x): you spawn into a large, purpose-built town and live a "real life" — earn and spend Saudi Riyals, carry a phone, open a bank account, use ATMs, shop at a supermarket (with a cashier and VAT), and deal with the consequences of crime (police, jail, and even a bank-robbery vault).
This mod is early and unfinished. It already does a surprising amount (see below), but there are rough edges, missing polish, and features that are only half-built. It is published under the MIT license specifically so that anyone who shares the vision — a realistic life / life-simulation experience inside Minecraft — can continue it and build on top of it.
In the author's words: "mymod is a Real Life mod for Minecraft. It's incomplete and needs improvement, but the idea is excellent — I'm publishing it so anyone who wants to continue it and shares the same goal can build on it."
Contributions are very welcome — issues, ideas, and pull requests. See Ideas / roadmap / how to contribute.
"Real Life" means turning survival Minecraft into a small, believable society. Instead of dropping into empty wilderness, the player begins as a resident of a town that has money, shops, a bank, services, and rules. The long-term goal is a systemic life sim: a working economy, jobs, property, services, laws and law-enforcement, and social interaction — all layered onto vanilla Minecraft through Forge.
The current build lays the foundations of that world: a generated town, a physical currency, a phone as the player's interface, banking, retail with tax, and a crime/policing loop.
This list is an honest account based on reading the actual source (~47 classes). Everything below is real, working code — though not all of it is polished.
- On a player's first login to the overworld, the mod flattens a large area near world spawn and procedurally builds an entire ordered town on a street grid, then teleports the player there and sets world spawn to the town center.
- The town mixes real vanilla plains-village building templates (houses, butcher, library, stable, animal pens, temple, etc. loaded from Minecraft's own
.nbtstructures) with several custom-built modern skyscrapers, a vanilla fountain town center, street lamps, and spawned iron golems, cats, and farm animals. - Dedicated buildings: a bank tower (with a gold-trimmed lobby and teller), a large supermarket, and a jail.
- State is saved per-world (
VillageState/SavedData), and there are legacy-world upgrade paths that retrofit the bank, store, POIs, and jail into worlds that were created by older versions of the mod. - Admin command
/mymod rebuildregenerates the town.
- Physical cash as stackable items in denominations 1 / 5 / 10 / 20 / 50 / 200 / 500 SAR (stack count = number of notes).
- Greedy change-making, plus helpers to give/count/pay cash and return change.
- A separate bank balance stored in the player's persistent data.
- Commands:
/mymod balance,/mymod pay <player> <amount>,/mymod give <player> <amount>(op),/mymod tax(total VAT collected).
- A craftable phone item (glass pane + iron + redstone + copper). Given to the player automatically on first join; recipe is unlocked in the recipe book.
- Right-click = toggle a mini phone HUD overlay you can keep open while walking. Shift+right-click (or the H key) opens a full drawn phone UI with a status bar/clock, a balance card, and an app grid.
- Phone apps: Bank, Grocery, Map, About — each a custom-drawn screen.
Banking & cards (BankEvents, BankAccount, BankData, RegistrationScreen, BankAppScreen, CardScreen, BankCardItem)
- Interact with the bank teller villager to open an account via a registration screen (age + a hand-drawn signature stored as a bitmap). You receive a bank card item.
- Globally-allocated account numbers (
BankData), replacement cards, and bank transfers by account number.
- A custom ATM block (two-block-tall model, faces the player, emits light). Right-click while holding your card to open the ATM screen.
- Card activation with a PIN, cash withdrawal (with a 10,000 SAR daily limit), deposit all cash, and PIN verification.
Supermarket, shopping & theft (buildSupermarket, GroceryEvents, GroceryScreen, ShopCatalog, StoreItems, CashierEvents, TheftEvents)
- A large supermarket whose shelves are stocked with barrels holding goods tagged "unpaid" (via NBT).
- Buy/sell through the Grocery app / counter with 15% VAT applied and tracked.
- A cashier villager: right-click to pay for all unpaid goods in your inventory at once.
- Theft detection: leaving the store with unpaid goods broadcasts a "thief!" alert in chat with your name.
- Attacking villagers or breaking blocks inside town = a MINOR crime; attacking the bank teller = a ROBBERY.
- Fast iron-golem "police" (rendered with a blue uniform layer) spawn and chase the offender.
- Caught players are teleported to a jail cell, held for a sentence, then released. There are escape-by-distance/time mechanics.
- Hitting the teller opens a shaft and (once per world) builds an underground vault full of colored-concrete "money blocks", sealed behind a lodestone combination-lock dial.
- Right-clicking the dial opens a lock-picking minigame; success removes the seal. Breaking money blocks drops real cash. The whole thing triggers a 5-minute police chase.
- All villager and wandering-trader trades are converted from emeralds to Riyals (1 emerald = 10 SAR).
- Villagers drop cash when killed.
- The phone Map app lists points of interest (bank, supermarket, ATMs, jail).
- Large floating bilingual (EN/AR) labels are rendered in-world above key buildings so you can navigate to them.
- A custom network channel with 15 packet types for economy/account sync, shop actions, ATM operations, transfers, POI sync, and the vault.
- Bilingual language files: English (
en_us) and Arabic (ar_sa).
Please read these before building on the mod — they are the most important "unfinished" parts:
- Town generation is a heavy, one-time world edit at spawn. It flattens a large area (~208×208 blocks) around world spawn. On a fresh world this is fine, but it can be destructive to pre-existing terrain/builds near spawn.
- The wanted/police state is runtime-only (not saved to disk). Relogging during a chase loses the wanted status.
- Bank transfers only work when the recipient is currently online.
- Most in-game text is hard-coded Arabic, not routed through the
langfiles, so it isn't fully localizable yet. - The police render layer is attached via reflection onto the vanilla iron-golem renderer (wrapped in try/catch, so it degrades gracefully across mappings, but it is fragile).
- Everything runs in the overworld only.
- The codebase is a single flat package (
com.saudismart.mymod, ~47 classes) with no sub-packages — it would benefit from refactoring. - Only a handful of custom textures exist (ATM, phone, money, bank card, police golem); most structures reuse vanilla blocks.
- JDK 17 (Minecraft 1.20.1 targets Java 17).
- Minecraft 1.20.1 with Forge 47.x (the project targets
47.3.0). - Internet access on the first build (Gradle/ForgeGradle downloads Minecraft, Forge, and dependencies and decompiles Minecraft — this first run is slow).
./gradlew buildThe finished mod jar is written to build/libs/. Copy it into your Minecraft instance's mods/ folder (a matching Forge 47.x install for 1.20.1).
./gradlew runClientThis launches a dev instance of Minecraft with the mod loaded. ./gradlew runServer launches a dev dedicated server.
Tip: the very first
gradlewinvocation downloads a lot and can take many minutes; subsequent builds are fast.
This mod is meant to be continued. Some directions that fit the vision:
- Persistence & multiplayer: save the wanted/police state; make bank transfers work offline; test and harden dedicated-server play.
- Non-destructive town generation: build the town away from existing structures, or make it opt-in / relocatable, or use a proper structure/worldgen approach instead of a spawn-time flatten.
- Full localization: move hard-coded strings into the
langfiles and add more languages. - More life systems: jobs and salaries, rent/property ownership, utility bills, food/health needs, shops run by players, more services (hospital, police station interior, school).
- Deeper crime/law system: fines, bail, wanted levels, courts.
- Content & art: custom models/textures, custom villager professions, more building types.
- Code health: split the single package into sub-packages, add data generation for models/lang, add tests where feasible.
To contribute: open an issue to discuss an idea, or send a pull request. Keep changes focused and describe what you changed and why.
Released under the MIT License — see LICENSE. Created by Azzam Al-Mutairi.
mymod هو مود "الحياة الواقعية" (Real Life) لماين كرافت (Forge 1.20.1). عند أول دخول للعالم، يبنى لك بلدة كبيرة مرتّبة برمجياً (بيوت قرى الفانيلا الحقيقية + ناطحات سحاب + بنك + سوبر ماركت + سجن)، وتُنقل إلى وسطها لتعيش حياة واقعية:
- اقتصاد بالريال السعودي كنقد فيزيائي بفئات (١ حتى ٥٠٠) + رصيد بنكي.
- جوال حقيقي فيه تطبيقات (البنك، البقالة، الخريطة، حول) وواجهة كاملة وأخرى مصغّرة أثناء المشي.
- بنك (فتح حساب بالتوقيع، بطاقة، تحويلات) وصرّاف آلي (تفعيل PIN، سحب بحد يومي، إيداع).
- سوبر ماركت ببضاعة موسومة "غير مدفوع"، كاشير للدفع، ضريبة ١٥٪، وكشف سرقة ("حرامي تعال").
- شرطة وسجن (جولم شرطة يطاردك) وسطو على البنك بخزنة تحت الأرض ولعبة فتح قفل.
- كل القرويين يتاجرون بالريال بدل الزمرّد ويسقطون فلوساً.
المشروع غير مكتمل ومنشور برخصة MIT ليكمله كل من يشاركه الرؤية. المساهمات مرحّب بها. لأهم الملاحظات والقيود الحالية راجع قسم Known limitations أعلاه (أبرزها أن بناء البلدة يسوّي مساحة كبيرة حول نقطة الظهور، وحالة المطلوبية لا تُحفظ).
- تحتاج JDK 17 وماين كرافت 1.20.1 + Forge 47.x.
./gradlew buildوالناتج فيbuild/libs/../gradlew runClientلتشغيل نسخة تطوير. أول بناء يحمّل تبعيات كثيرة وياخذ وقتاً.