Plumtown is a cozy, browser-based play-to-earn life simulator. Raise a Sim, keep them happy, build a home, climb a career, fall in love, start a family — and every real milestone you hit mints $PLUM you can withdraw on-chain. Built from scratch with vanilla JavaScript, HTML & CSS — no frameworks, no build step, no front-end dependencies.
CA: 5jXuVv7KfWmjCf7PAB1cNXbNieP1fno6eWZDVBLppump
Most "play-to-earn" games are spreadsheets with a wallet button bolted on. Plumtown is a real game first — a deep, systems-driven life sim that's genuinely fun to play — with an honest, non-custodial economy layered on top. You don't grind a token; you live a life, and the rewards follow the story.
- 🎮 A real life sim — 8 needs, emotions, pathfinding, 12 skills, 10 careers, relationships, family generations.
- 🪙 Two coins that make sense — spend ₱ Plumbucks in-game, earn $PLUM for verified achievements, cash out as real SOL.
- 🔒 Non-custodial & server-verified — you hold your own keys; the server caps rewards so it can't be botted or farmed.
- 🌍 A shared neighbourhood — visit other players' homes, see who's online, and chat — from the dashboard or while you play.
- 🎨 Handmade pixel charm — animated characters, a cosy theme, a procedural soundtrack, and a proper loading screen.
- ⚡ Zero front-end dependencies — pure HTML/CSS/JS. Open it in any modern browser.
- How to Play
- Game Systems
- The Economy
- Multiplayer & Chat
- Polish & Presentation
- Tech Stack
- Roadmap
- Credits & License
- Open the site → click Launch App to enter your dashboard.
- Create a Sim — pick their look (skin, hair, outfit), gender, a lifetime aspiration, and 3 personality traits (each with real in-game effects).
- Hit Play → enter the game. A starter home is furnished for you free.
- Live mode — click furniture or use Quick Actions; your Sim walks tile-by-tile and uses it. Watch needs refill, moodlets pop, and the mood crystal change colour with their emotion.
- Build/Buy mode — place, move and sell furniture, and restyle floors & walls. Furniture isn't cosmetic: it satisfies needs and raises home value.
- Get a job, grow skills, make friends, fall in love, raise a family.
- Earn $PLUM from your daily reward, quests, and one-time life milestones — then withdraw it as real SOL from the Wallet tab.
Time runs continuously (pause / normal / fast / ultra) with day–night lighting. Toggle Free Will to let your Sim handle its own urgent needs.
Everything below is implemented and covered by the test suite.
| System | What it does |
|---|---|
| 8 Needs | Hunger, Energy, Bladder, Hygiene, Social, Fun, Comfort & Room — each decays in real time at its own rate, modified by traits. Low energy triggers an exhaustion spiral. |
| Emotions & Moodlets | ~16 emotions (Happy, Energized, Inspired, Flirty, Bored, Tense, Exhausted…) chosen from needs + timed moodlets. Emotion scales work performance & learning, and tints the mood crystal. |
| Pathfinding | Grid BFS movement — the Sim walks to an object's use-tile, then performs the action. Re-routes if you build over the path; idle wandering when free. |
| 12 Skills | Cooking, Handiness, Logic, Creativity, Charisma, Fitness, Programming, Gardening, Writing, Painting, Music, Athletic — XP curve, 10 levels, trait + mood multipliers. |
| 10 Careers | Culinary, Tech, Science, Business, Athletic, Design, Music, Writing, Trades, Medical — 6 levels each, salary scaling, promotions gated by skill + mood. |
| 15 Traits | Ambitious, Genius, Neat, Creative, Romantic, Bookworm, Glutton… each with real mechanical effects on decay, learning, mood, work and romance — shown right in the creator. |
| Relationships | NPCs you meet around town, 8 interactions (chat → confess love), 6 tiers, charisma bonuses, romance gating, and decay over time if neglected. |
| Build & Buy | A full construction system: lay walls, cut doors, place 45+ pixel-art furniture pieces, and restyle floors & walls from real tile sheets. |
| Sim Town | A pixel neighbourhood with 10 venues — Gym, Park, Cafe, Library, Mall, Club, School, Hospital, Restaurant, Beach — each a distinct lot with its own objects and people. |
| Life & Family | Sims age through life stages, move in → marry → try for baby, and children grow into new playable Sims (generations). |
| Aspirations | 5 lifetime goals (Wealth, Knowledge, Family, Creativity, Athletic) with real progress tracking and a big payout on completion. |
| Quests | 13 quests from "First Meal" to end-game goals like Skill Master, Top of the Ladder and Dream Big. |
Plumtown runs two currencies on purpose, so the fun money and the real money never get confused:
Earned from jobs (a daily salary that scales with your career level + performance) and selling furniture. Spend it on furniture, build mode, floors & walls. It's your score and your pocket money — not real money.
Minted by verified achievements, all deduplicated so they can't be farmed:
- Daily login reward
- Quest completions
- One-time life milestones (first friend, first home, mastered skill, career peak, fulfilled aspiration…)
Those verified achievements accrue redeemable credits — a capped, server-authoritative slice of $PLUM. Connect a Phantom wallet, prove it's yours with a free signature, and Withdraw → the backend pays real SOL straight to your wallet.
play & live ──► hit a milestone ──► mint $PLUM ──► withdraw verified credits ──► real SOL
Designed so it can't be drained:
- 🛡️ Server-authoritative — the browser is never trusted with reward amounts. A tampered client mints nothing the server doesn't recognise.
- 🚧 Capped — daily earn caps, minimum withdrawals, daily withdrawal caps, and cooldowns.
- 🔑 Non-custodial — payouts go to your wallet; the operator never holds your funds. The treasury key lives only on the server.
- 🟣 Solana mainnet — real, on-chain SOL payouts, gated behind a master switch only you control.
Plumtown plays great solo, and becomes a shared neighbourhood the moment you deploy the backend:
- 🏘️ Visit real homes — every player has their own house; browse the neighbourhood (live preview thumbnails) and walk through anyone's home.
- 🟢 Live presence — a stats bar shows how many townies there are, how many are playing right now, and the current hotspot venue. Each card shows where that player is.
- 💬 Neighbourhood chat — talk to everyone, from the Community tab and a floating in-game chat widget so you can chat while you play (with a live online count and unread badge).
Out of the box it runs offline with simulated neighbours so everything works with no server; point it at the backend and it becomes a real, shared world.
- Cosy handheld theme — warm "paper" panels, a spinning crystal motif, chunky buttons, pixel-grass textures and animated bobbing townies.
- Loading splash — a branded Plumtown loading screen on the site.
- Procedural soundtrack — a warm, loungey jazz loop generated entirely in Web Audio (no audio files, no copyright), with an in-game 🎵 mute toggle.
- Animated pixel characters — 4-direction facing and a 6-frame walk cycle, with per-Sim variety.
| Layer | Stack |
|---|---|
| Front-end | Vanilla JavaScript, HTML5, CSS3 — no framework, no build step, zero dependencies. Served by a tiny Node static server (serve.js). |
| Game engine | Modular IIFEs on window.LifeSim — state & save-migration, needs, skills, careers, relationships, build, movement (BFS), emotions, locations, life/family, clock & autonomy, FX. |
| Backend | A zero-dependency Node HTTP API — in-memory for local dev, PostgreSQL in production. Players, houses, rewards ledger, chat. |
| Blockchain | Solana payouts via @solana/web3.js (SOL or SPL/USDC), with tweetnacl signature verification. Lazy-loaded so the community backend runs without it. |
| Tests | 110 functional assertions across every system — pathfinding, economy, the whole engine. |
- Core life-sim engine — needs, skills, careers, build, family
- Pixel-art world, animated characters, cosy theme
- $PLUM economy, redeemable credits, non-custodial SOL payouts
- Shared neighbourhood, live presence & chat (dashboard + in-game)
- Real-time co-presence (see players move in the same space live)
- Native mobile clients
- In-game marketplace & cosmetics sink
Pixel art from LimeZu's Modern Interiors & Modern Exteriors packs (limezu.itch.io) — please support the artist and review their licence before redistributing raw tilesets. Music is generated procedurally in-app (no third-party audio).
Code released under the MIT License. Plumtown is an original project — play it, fork it, build on it. 🌳
🌐 playplumtown.com · 𝕏 @playPlumtown
⭐ If Plumtown made you smile, drop a star.