Rent Is Due
What is Rent Is Due? Rent Is Due is a Simulation browser game you can play instantly online with no downloads. Experience realistic simulation and management gameplay.
RENT IS DUE — Complete Game Architecture
Core Structure
Your game is a 100% offline, browser-based landlord simulator built entirely with vanilla JavaScript, HTML5 Canvas, and Web Audio API. No frameworks, no external dependencies—everything runs locally.
File Architecture & Data Flow
1. Entry Point: index.html
Loads all game modules in this order:
data.js — Static game data (property templates, tenant names, personas, furniture items, repair types)
audio.js — Procedurally generated sound system
graphics.js — Canvas-based rendering engine
save.js — LocalStorage save/load system
main.js — Core game logic (simulation loop, time, money, tenants, properties)
ui.js — User interface layer (menus, HUD, laptop, phone, dialogs)
Shows a boot screen while loading, then displays the main menu
2. Data Layer: data.js
Purpose: Game content database
Contains:
Helper functions (rand(), pick(), money(), clamp()) used throughout
Tenant photo files (20 headshots: 10 female, 10 male)
Name pools (first names, last names for procedural tenant generation)
Property templates (20 properties: trailers, houses, duplexes, apartments, commercial)
Personality system (12 tenant personas with reliability/temper/generosity traits)
Furniture catalog (22 items: beds, sofas, appliances, safety equipment)
Repair types (11 emergencies: leaks, mold, HVAC, pests)
Phone call scripts (emergency, late rent, complaints, deposit disputes)
Auction bidder AI (5 personalities with different bidding strategies)
Tutorial steps (10-step guided intro)
Data flows TO: main.js (reads templates to generate game world), ui.js (displays furniture shop, repair costs)
3. Audio Engine: audio.js
Purpose: 100% procedurally generated sound (no audio files)
Features:
Web Audio API synthesis — All sounds created from oscillators and noise buffers at runtime
Sound effects (sfx() function): 40+ sounds like cash, doors, hammers, thunder, phone rings
Adaptive ambient soundscape — Changes based on time of day, weather, tension level
Generative music — Minor/major chord progressions that shift with stress
Dynamic mixing — Separate buses for SFX, ambience, music (user can adjust in settings)
Audio triggers FROM:
ui.js — Button clicks, toasts, laptop opens
main.js — Rent collected, tenant moves in, storm hits
4. Graphics Engine: graphics.js
Purpose: Procedurally render photorealistic building facades and interiors
Key systems:
facade(lot) function — Generates 360×250px building exterior based on:
Building type (trailer, house, duplex, apartment, shop)
Seed number (deterministic randomness for unique appearance)
Condition (0-100% affects grime/weathering)
Renovation level (0-3, affects lighting/trim quality)
Style variant (siding, brick, stucco, garage)
Street rendering (drawStreet()) — Scrolling 2D world with:
Sky gradients with sun halo and clouds
Grass, sidewalk, road layers
Persistent NPC pedestrians (walk, dog walkers, strollers)
Building lots with proper depth shadows
Weather effects (rain particles, lightning flashes)
Move-in trucks appear when tenants arrive
Interior rendering (interior()) — Furnished rooms with furniture, lighting, wear
Caching — Facades are cached by visual state to avoid re-rendering every frame
Graphics called by:
ui.js — Updates canvas 60 times/second, generates property thumbnails for laptop
5. Save System: save.js
Purpose: Local persistence via browser localStorage
Features:
4 save slots (keys: rid_slot_1 through rid_slot_4)
Slot metadata — Saves day number, cash, properties owned for slot selection screen
Full game state — Serializes entire GAME.g object (properties, tenants, loans, time, flags)
Settings persistence — Volume levels, graphics quality, speed, tutorial flags
No server — Everything stays on the player's machine
Save/load flow:
User clicks "Save Game" in pause menu → ui.js calls SaveSys.save(slotIdx, GAME.g, GAME.settings)
User clicks "Continue" → ui.js shows slot picker → loads selected slot → restores GAME.g
6. Core Simulation: main.js
Purpose: Heart of the game—time, money, tenants, properties, loans, weather, economy
Game loop (tick() function):
Advances time — Sim minutes per real second (adjustable speed 0.5×–4×)
Processes queued events — Phone calls, rent due dates, repairs, auction triggers
Updates tenants — Tracks rent status, relationship, stress, eviction stages
Handles weather — Cycles clear/clouds/rain/storm, causes random damage
Manages loans — Weekly auto-payments, credit score impacts
Market cycles — Property values fluctuate, boom/bust periods
Key subsystems:
Property System:
Each property has: id, name, addr, kind, units, cond (0-100%), furnished (0-100%), tenants[], issues[], rent, renovations{}
Value calculation — Base price × condition factor × furnishing factor × renovation multiplier × market trend
Rent estimation — Similar formula, per-tenant share in shared houses
Roommates — Houses/trailers fit 3-6 tenants (each pays their share)
Tenant System:
Generation — Random name, age, job, income, credit, personality from data.js
Photo assignment — Pulls from unused headshots to prevent duplicates
Lease signing — Security deposit collected, rent schedule starts
Rent day (1st of month) — Each tenant pays (or doesn't) based on reliability trait, income, relationship, stress
Rent chasing — Player can knock on doors, offer payment plans, serve late notices
Eviction process — 3-stage system (notice → file → sheriff removes tenant)
Money System:
Income: Rent, property flips, auction wins
Expenses: Property purchases, repairs, furniture, taxes, insurance, loan payments
Loans: Apply at bank (based on credit + income), weekly auto-debit
Ledger: Every transaction logged with category/day/property link
Off-market deals:
Agent (Darla) calls with exclusive listings (below market price)
Player can counter-offer, inspect, pass
Properties may have hidden issues (back taxes, sitting tenants, needed repairs)
Auctions:
Foreclosed properties appear 1st of each month
AI bidders with different strategies (aggressive flipper, cautious investor, corporate buyer)
Player bids against AI in real-time rounds
Renovation system:
DIY repairs — Buy toolbox, use parts from hardware store (saves ~60%)
Contractors — Faster but expensive
Renovation packages — Paint, flooring, kitchen, bath, roof (boosts value/rent)
Construction phase — Scaffolding visible on lot, work truck parked, "RENOVATING" sign
Weather & Events:
Weather cycles — Clear → clouds → rain → storm (random duration)
Storm damage — Can break windows, roof leaks, flood units
Flash storms — Random events trigger repair needs
Data flows:
TO ui.js: Property/tenant data for laptop tabs, current time for HUD
FROM ui.js: Player actions (buy property, sign lease, pay loan)
TO audio.js: Triggers for sound effects, tension level for music
TO graphics.js: Lot data (condition, renovation, occupied) for rendering
7. User Interface: ui.js
Purpose: Everything the player sees and clicks
Screen hierarchy:
Main Menu (showMenu()) — New game, continue, how to play, credits
Game Screen (enterGame()) — World view + HUD + overlays
Laptop (TAB key) — 8 tabs for managing empire
Phone (Q key) — Calls, contacts, voicemail
Dialogs — Property inspection, tenant screening, bank forms
HUD components:
Top bar chips: Cash, debt, reputation, credit, date/time, weather, overdue rent count
Speed controls: 0.5×, 1×, 2×, 4× (pauses when dialogs open)
Quick buttons: Phone, map, laptop, pause menu
Objective tooltip: Current tutorial/goal (dismissible)
Toast notifications: Slide in from top-right (money events, repairs, tenant news)
Laptop tabs:
Market — Browse/buy properties (grid of property cards with photos)
Neighborhood — List all buildings on the street (owned, for sale, amenities)
Tenants — Active leases, applicants, rent status
Money — Ledger, monthly cashflow summary
Bank — Apply for loans, pay down debt, transfer savings
Flips — Renovation tracker (cost invested vs current value)
Court — Eviction cases, legal filings
Settings — Volume sliders, graphics quality, tutorial toggle
Phone interface:
Calls tab — Incoming ring, voicemail queue (red badge counts unseen)
Contacts — Darla (agent), tenants (call to chase rent)
Ring screen — Animated, shows tenant photo + problem quote
Voicemail — Transcripts of missed calls
Property interaction flow:
Player clicks a building on the street → Camera pans to it
Context panel appears at building's location → Shows photo, name, price/value
Player clicks "Interact" → Opens property detail modal:
If for sale: Inspection view (interior photo, condition breakdown, buy button)
If owned: Management panel (tenants list, repair issues, advertise vacancy, renovate options, flip calculator)
Modal system:
Stack-based (modalStack[]) so modals can open over modals
Each modal has title, body HTML, foot buttons
Examples: Tenant screening, auction bidding, loan application, furniture store
Rendering responsibilities:
Calls GFX.drawStreet() every frame to render world canvas
Generates property card thumbnails using GFX.facade()
Displays tenant headshots (loaded from female1.jpg–male10.jpg)
Input handling:
Keyboard: TAB (laptop), Q (phone), M (map), ESC (pause), Arrow keys (select buildings), E (interact)
Mouse: Click buildings to visit, click buttons in HUD/modals
Data-driven actions: Buttons have data-act="buyProp" attributes → bindClick() routes to handler functions
Complete Data Flow Example: Player Buys a Property
User clicks "Market" tab in laptop → ui.js calls showLaptopMarket()
UI renders property cards → Loops through GAME.g.properties.filter(p => p.forSale), generates thumbnails via GFX.facade(lot)
User clicks property card → Opens inspection modal showing interior photo, condition, estimated rent
User clicks "Buy $85,000" → ui.js calls GAME.buyProperty(propId)
main.js checks: GAME.canAfford(85000) → If yes:
Deducts money: GAME.spend(85000, "purchase", "Bought Craftsman Bungalow", propId)
Sets p.owned = true, p.forSale = false
Pushes ledger entry
Triggers toast: UI.toast("Purchase complete", "You own the Craftsman Bungalow", "money")
Plays sound: AudioSys.sfx("cash")
UI refreshes → Laptop market tab removes property, HUD updates cash balance
Building appears gold-tinted on street → graphics.js sees lot.owned = true → Renders with ownership highlight
Style & Polish: styles.css
Dark theme with film grain overlay, vignette, photo-grade filters
Gold accent color (--gold: #d9b36a) for money, ownership, objectives
Cinematic effects: Night desaturation, storm contrast boost, dawn sepia tint
Toasts animate with slide-in + scale
Buttons have hover lift + glow
Laptop has animated open (scale + fade)
Phone mimics iPhone notch + rounded screen
Tech Stack Summary
No frameworks: Pure vanilla JavaScript (ES6)
No bundler: Files loaded via <script> tags in order
No images (except tenant photos): Everything drawn on canvas
No audio files: All procedurally synthesized
No server: Runs entirely in browser (file:// protocol works)
LocalStorage: Saves persist between sessions
Game Win/Lose Conditions
Lose: Cash drops below -$3,000 → "Chapter Two" game over screen
Win: No hard win—sandbox continues forever, player sets own goals (pay off debt, own all properties, reputation 100%)
This architecture creates a self-contained, offline landlord simulation where every system—graphics, audio, persistence, AI—is built from scratch using only browser APIs. The modular design keeps each concern separate (rendering, logic, UI, data) while maintaining tight communication through function calls and shared state (GAME.g object).
Est. Credits Used: 1.26
Elapsed time: 1m 41s
Checkpoint
Restore
give me a full game decription of my game in this app
Kiro
RENT IS DUE — Complete Game Description
Overview
Rent Is Due is a 100% offline, browser-based landlord simulation game where you start with one rusty trailer, $8,000 in cash, and a neighborhood full of opportunity—and risk. Built by happystoner5420 Games, this sandbox simulator lets you build a rental empire through strategic property investment, tenant management, and financial survival. Everything runs locally in your browser with no internet connection required.
The Premise
You own a single trailer called "The Rocket" and live in it. Your goal: acquire rental properties, find tenants, collect rent, and avoid bankruptcy. The city operates on a monthly rent cycle, weekly loan payments, and random events that can make or break your portfolio. Success means juggling cash flow, tenant relationships, property maintenance, and credit worthiness—all while the phone rings at 2 AM with emergencies.
Core Gameplay Loop
1. Acquire Properties
Market Listings:
Browse 19+ properties ranging from $29,000 trailers to $620,000 apartment complexes
Property types: Single-wide trailers, double-wides, starter homes, luxury houses, duplexes (2 units), apartments (4-6 units), commercial storefronts
Each property has: Condition (8-96%), base value, room count, estimated rent potential
Inspect before buying: See interior photos showing furnished level, wear, layout
Off-Market Deals:
Darla Whitfield, your real estate agent, calls with exclusive below-market properties
Hidden catches: Back taxes owed, sitting tenants with leases, needed repairs, title issues
Negotiate: Counter her asking price—she'll meet you halfway or walk
Saved in phone contacts: Call Darla anytime to ask if she has new deals
Auctions:
Opens 1st of each month at the Auction Yard
Foreclosed properties sold to highest bidder (typically 40-60% below market value)
Compete against 5 AI bidders with different strategies:
Marlene Voss (local investor): Conservative budget, patient
Duane Kovac (flipper): Aggressive, deep pockets
Agency Rep (corporate): Highest budget, calculated
Trish Okafor (first-timer): Low budget, nervous bidding
Harold Finch (old-school): Experienced, knows when to fold
Properties come "as-is"—usually need work
2. Fix & Furnish
DIY Repairs:
Buy a toolbox from Ace Hardware ($180) to unlock DIY mode
Purchase parts kits (leaking pipes: $40, broken toilet: $55, appliances: $90, etc.)
Save ~60% vs hiring contractors
Repair types: Plumbing leaks, electrical faults, roof damage, mold, HVAC failure, pest infestations, storm damage
Contractors:
Pay more but work completes instantly
Examples: Fix roof leak (contractor: $560 vs DIY: $130)
Furnishing:
Corner Home Goods sells 22 furniture items
Categories: Bedroom (bed $540, dresser $260), Living (sofa $620, TV $460), Kitchen (fridge $750, stove $680), Laundry (washer/dryer $990), Safety (smoke detectors $60)
Furnished percentage affects rent potential (+22% at 100% furnished)
Properties start with low furnishing (trailers ~0%, homes 28-55%)
Renovation Packages:
Major upgrades via "Manage → Renovate/Flip" menu:
Fresh Coat ($1,200-2,800): Paint all walls, boost curb appeal
Floor Refresh ($3,500-7,500): New flooring throughout
Kitchen Rehab ($8,000-15,000): New cabinets, counters, appliances
Bath Remodel ($6,500-12,000): Fixtures, tile, vanity
Roof & Structure ($9,000-18,000): Full roof replacement, foundation work
Full Flip Bundle (discount package): All of the above
While work happens: Scaffolding appears on building, work truck parked, "RENOVATING" sign visible
Before/after photos shown before you commit
Every dollar tracked in Flips tab: Invested vs current value
3. Find Tenants
Advertising:
Click "Advertise Vacancy" on any property with open slots
3-9 applicants show up (more at higher reputation)
Each applicant has:
Photo (20 unique headshots—10 male, 10 female)
Name, age, job, monthly income
Credit score (380-830)
Personality type (12 personas):
Friendly — Reliable, pays early, leaves cookies
Responsible — 90% reliability, never misses rent
Deadbeat — 14% reliability, always has excuses
Grumpy — Complains but secretly reliable
Manipulator — Charming until rent is due
Nervous — Jumpy, means well, worries constantly
Desperate — Down on luck, wants to pay but can't
Quiet Wealth — Could buy the block, rents anyway
Forgetful — Pays after 3 reminders
Suspicious — Reads fine print twice
Party Animal — Great until Thursday night
Generous — Overpays and says keep the change
Pet preference (no pets, cat, small dog, bird, hamster)
Smoker status (18% chance)
Tenant Screening:
Laptop → Tenants tab shows all applicants
Compare income-to-rent ratio (need 2× rent in income minimum)
Check credit score and personality traits
View relationship level (-100 to +100)
Roommate System:
Houses and trailers fit multiple tenants:
Small trailers: 3 tenants
Mid trailers: 4 tenants
Double-wide trailers & houses: 5-6 tenants
Each roommate signs their own lease
Each pays a share of the total property rent (not split evenly—each pays 54-78% of the whole property's market rent)
Example: A 6-bedroom house worth $1,435/month could earn ~$4,700/month with 6 roommates
Fill one slot at a time: Sign first tenant → Advertise again → Sign next roommate
Apartments/duplexes: 1 tenant per unit (no roommates)
Lease Terms:
Security deposit collected upfront (equal to 1 month rent)
Lease duration: 6-12 months
Rent due: 1st of every month
Late fee: 5% after 5 days overdue
Annual rent increase: 3.5%
4. Collect Rent (or Chase It)
Rent Day — The 1st of Every Month:
All tenants receive rent bills
Outcomes based on personality reliability + income + stress + relationship:
Paid in full (65-85% chance for good tenants) — Money deposited automatically
Late (5-10%) — They call saying "check got messed up, will pay in 2-6 days"
Partial (3-5%) — Pay 50-70%, promise rest soon
Missed (5-20% for bad tenants) — Radio silence, avoid calls
Rent Chasing:
Phone calls: Call tenant from contacts, ask nicely or threaten eviction
In-person: Walk to property, knock on door, confront them
Ask politely — Roll persuasion (based on relationship + their stress)
Offer payment plan — Split into 2 installments
Threaten eviction — Damages relationship but might scare them into paying
Serve late notice — Official warning, starts eviction clock
Phone AI responses: Tenants give excuses based on personality
Friendly: "I'm so sorry, payday is Friday, I'll have it then!"
Deadbeat: "Yeah, I'll get to it. Phone's about to die—" click
Nervous: "Oh god, I thought it auto-paid! I'll fix this right now!"
Eviction Process (3 stages):
Serve Notice — Warning, relationship penalty
File at Court — Pay $180 filing fee, hearing scheduled
Sheriff Removal — Tenant removed, no deposit refund (you keep it)
5. Manage Money & Loans
Income Sources:
Monthly rent from tenants
Security deposits (held, returned when tenant leaves if no damage)
Property flips (buy low, renovate, sell high)
Expenses:
Property purchases
Repairs & maintenance
Furniture
Property tax (annual, ~1.2% of value)
Insurance (annual, ~0.8% of value)
Utilities for vacant units (water/trash: ~$45/month)
Loan payments (weekly auto-debit)
Banking System:
First National Bank (click bank building on street)
Loan application:
Borrow up to: (Credit - 280) × $30 + Last Month Income × 8 - Current Debt × 1.3
Interest rate: 5.8% (excellent credit) to 14.5% (poor credit)
Term: Choose Choose months (4-360 months available)
Weekly auto-payment calculated via amortization
Mortgage option: 30-year loans for large properties
Savings account: Deposit excess cash, earns interest
Credit score: 300-850
Goes DOWN: Missing loan payments, evictions, complaints
Goes UP: Paying loans on time, full portfolio, tenant satisfaction
Loan Payment Flow:
Every 7 days, weekly payment auto-debits from checking
20% of each rent payment auto-pays loan principal (adjustable)
Miss payment → Credit drops 15-30 points, next loan has worse rate
Pay off early: Lump sum payment from loan detail screen
Bankruptcy Condition:
Cash below -$3,000 = Game Over
"Chapter Two" screen appears (restart or load save)
6. Navigate the Neighborhood
The Street (Main World View):
Scrolling 2D side-view of the entire neighborhood
Your properties:
Your trailer (starting home)
Properties you own (gold-tinted, shows occupancy)
Properties for sale (blue-tinted)
Special buildings:
🏛 City Court & Clerk — File evictions, pay fines
🔨 Ace Hardware & Lumber — Buy toolbox ($180) and repair parts
🏦 First National Bank — Loans, savings, transfers
🛋 Corner Home Goods — Furniture store
🔨 Midnight Auction Yard — Monthly foreclosure auctions
Navigation:Click any building → Camera instantly pans to it, context panel appears
Arrow keys → Cycle through buildings left/right
M key or 🗺 button → Opens neighborhood map overlay (all buildings at once, click to visit)
E key → Interact with selected building (enter, knock, inspect)
Monthly Calendar:
Click any building → Camera instantly pans to it, context panel appears
Arrow keys → Cycle through buildings left/right
M key or 🗺 button → Opens neighborhood map overlay (all buildings at once, click to visit)
E key → Interact with selected building (enter, knock, inspect)
Street Dressing (Visual Polish)
Persistent NPCs: 3-7 pedestrians walk their routes
Day: Dog walkers, strollers, casual walkers
Night: Fewer people, hurried pace
Rain: Everyone has umbrellas
Move-in trucks: Box truck appears for 12 hours when tenant moves in/out
Time of day lighting:
Dawn (6-8 AM): Warm orange glow
Day (8 AM-6 PM): Bright, saturated colors
Dusk (6-8 PM): Purple-pink sky
Night (8 PM-6 AM): Desaturated, porch lights on, window glows
Weather cycle: Clear → Clouds → Rain → Storm (random durations)
Storm: Lightning flashes (screen flash + thunder SFX), can damage roofs/windows
7. Handle Events & Emergencies
Phone Calls (Ring at Random):
Emergency repairs:
"Water's coming through the ceiling!"
"The heater's dead and it's freezing!"
"Toilet overflowing, water everywhere!"
Late rent apologies:
"Check got messed up, will pay Friday"
"Lost my job, can we work something out?"
Complaints:
"Neighbor blasting music until 3 AM!"
"Someone's living next door who's NOT on the lease"
"Hallway smells like smoke again"
Thank you calls (rare):
"Thanks for fixing the heater so fast"
"You're actually a good landlord"
Deposit disputes:
"It's been 14 days, where's my deposit?"
"You kept it all for 'cleaning' but I have photos!"
Phone Interface:Animated ring (vibration effect, red notification badge)
Caller photo + name + problem preview
Answer → Opens call screen with tenant portrait + dialogue
Miss call → Goes to voicemail queue
Contacts tab: Call tenants or Darla manually
Storm Damage Events:
Random during storms: "Storm ripped part of the roof off!"
Causes immediate repair need
If ignored: Condition drops, tenant complaints rise
Water damage can cascade into mold if not fixed
Tenant Life Events:
Job loss: Random chance (18% have "laid off soon" flag) → Can't pay rent
Stress accumulation: From unpaid bills, bad conditions, complaints → Affects payment reliability
Move-out: After lease term or eviction → Must find new tenant
Relationship decay: Ignoring repairs, late deposit returns, eviction threats
8. Time & Pacing
Time System:thunder, phone rings)
Adaptive ambient soundscape (birds by day, crickets by night, rain hiss)
Generative music (minor/major chord progressions shift with stress)
Tenants: 20 unique photo headshots, infinite name combinations, 12 personalities
Photo-Realistic Presentation:
Building exteriors look like real estate photos (architectural details, lighting, depth)
Interior photos show furnished rooms with realistic wear
Film grain overlay + vignette + color grading (day/night/storm filters)
Before/after renovation photos show actual visual difference
Realistic Landlord Simulation:
Tenants have memory (remember past interactions)
Relationship system affects payment reliability and complaints
Stress mechanics (job loss, bad conditions) change tenant behavior
Real-time: 1 real sec sim minutes at 1× speed (8 real minutes = 1 game day)
Speed controls: ◐ (half-speed), 1×, 2×, 4×
Time pauses when: Laptop open, phone open, dialogue active
Day/night cycle: 24-hour clock (8:00 AM start each new day)
Monthly Calendar:
thunder, phone rings)
Adaptive ambient soundscape (birds by day, crickets by night, rain hiss)
Generative music (minor/major chord progressions shift with stress)
Tenants: 20 unique photo headshots, infinite name combinations, 12 personalities
Photo-Realistic Presentation:
Building exteriors look like real estate photos (architectural details, lighting, depth)
Interior photos show furnished rooms with realistic wear
Film grain overlay + vignette + color grading (day/night/storm filters)
Before/after renovation photos show actual visual difference
Realistic Landlord Simulation:
Tenants have memory (remember past interactions)
Relationship system affects payment reliability and complaints
Stress mechanics (job loss, bad conditions) change tenant behavior
Legal system: Court filings, eviction hearings, sheriff enforcement
Deposit disputes: Tenants challenge unfair deposit withholding
Market cycles: Property values fluctuate (boom periods every 60 days)
Controls
Keyboard:
TAB / L — Open laptop
Q — Open phone
M — Neighborhood map
ESC — Pause menu (save/quit)
E — Interact with selected building
Arrow keys — Cycle through buildings
1, 2, 3, 4 — Speed controls
Mouse:
Click any building to visit
Click HUD buttons (phone, laptop, map, pause)
Click inside menus/dialogs for all actions
Technical Specs
Engine: Vanilla JavaScript (ES6), no frameworks
Graphics: HTML5 Canvas 2D API
Audio: Web Audio API (procedural synthesis)
Storage: Browser localStorage (saves + settings)
File size: ~2MB total (including 20 tenant photos)
Requirements: Modern browser (Chrome, Firefox, Safari, Edge)
Performance: 60 FPS on any device from 2015+
Tone & Atmosphere
Visual Style:Cinematic photo-realism (not pixel art or cartoon)
Muted earth tones (browns, greens, grays) with gold accents
Film grain + vignette + subtle color grading
Lighting: Dynamic day/night cycle, window glows, porch lamps, storm flashes
Audio Atmosphere:
Sparse, procedural ambient soundscape
Birds chirping (day), crickets (night)
Rain hiss, thunder rumbles, wind
Generative music: Ambient pads with minor/major shifts based on tension
Narrative Tone:
Grounded, realistic landlord struggles
No cartoonish villainy—just financial survival
Tenants are people (not caricatures): Some pay, some don't, all have reasons
Dark humor in flavor text: "Rent's due. The phone will ring. That's the job now."
Game Tagline
"A deadbeat tenant, an overdue loan payment, and a phone ringing at midnight define the uneasy rhythm of property ownership here."
Credits
Design, code, systems, UI, visual direction: happystoner5420 Games
Soundtrack & sound design: Procedurally generated (Web Audio API)
Tenant photography: Local files (20 headshots in game folder)
Version: 2.1
Built: 100% offline. No servers, no CDNs, no accounts, no clouds.
This is Rent Is Due—a complete, self-contained landlord simulator where every mechanic, visual, and sound is crafted to simulate the real stress, strategy, and occasional satisfaction of building a rental empire from one rusty trailer and $8,000 in cash.object).