1 Save Slots
The Mandalay Bay persists your progress across sessions using a save library with up to 5 slots.
1.1 Save library location
Default path:
~/.mandalay_bay/saves/
├── library.json # Index + recent-play order
├── slot_1.json
├── slot_2.json
...
Override with --save-dir /path/to/saves or the MANDALAY_BAY_SAVE_DIR environment variable.
1.2 Entering the casino
On launch, you see the Save Library screen before the casino floor:
Save options:
1) Load a save slot
2) Create new save in empty slot
3) Delete a save slot
4) Refresh library
5) Exit without playing
Occupied slots show player name, chip balance, and last played time. Most recently played saves appear first.
1.3 What is saved
| Data | Saved |
|---|---|
| Player name | Yes |
| Chip balance | Yes |
| Transaction ledger | Yes |
| Activity stats (visits, net) | Yes |
| Save label & slot number | Yes |
| Display preferences | Yes |
| RPG position & quest flags (pixel mode) | Yes, when present |
| Open sports book tickets | No (settle before saving) |
| Hotel state & room amenities (v4+) | Yes |
| Pool complex progress | Yes |
| Shopping / bar purchases | Yes |
1.4 Hotel save schema (v4+)
When present, hotel includes:
{
"propertyId": "mandalay_bay",
"reservationCode": "MB-4821",
"roomType": "standard",
"nightsRemaining": 2,
"resortTime": 0,
"roomAmenities": {
"tvChannel": "aquarium",
"channelsWatched": ["aquarium"],
"minibarPurchases": ["salted_almonds"],
"minibarTab": 18,
"phoneCalls": ["concierge"],
"decisions": ["balcony"],
"unlockedEvents": ["shark_whisperer"],
"eventLog": ["You narrate the aquarium feed…"],
"amenityActions": 4,
"wakeUpScheduled": false,
"checkedOut": false
}
}Cross-system event requirements also read poolComplex.visitedZones, amenities.purchasedItems, and MGM Rewards tier from rewards.lifetimeWagered.
1.5 World cycle (real-time day/night)
2 hours real time = 1 in-game resort day. Phase within the day: dawn → midday → neon dusk → 2 AM clarity.
{
"worldCycle": {
"clockAnchorMs": 1717580000000,
"processedDay": 3,
"roomEvicted": false,
"overdueBalance": 0,
"lastRolloverMessages": ["Day 3 — Phone then desk…"]
}
}Each new day: - Posts daily room + resort + parking charges (varies by room type) - Rotates reservation requirement (phone / desk / both / net-positive whale check-in) - Resets hallway and reservation confirmation - Evicts room access if charges cannot be paid (settle at front desk or win on the floor)
1.6 RPG state (browser pixel mode)
When present, rpg on a save slot includes:
{
"mapId": "main_resort",
"x": 15,
"y": 26,
"playerSprite": "weekend_warrior",
"archetype": "weekend_warrior",
"quests": {
"shark_photos": { "stage": 2, "target": 5 },
"dana_lucky_hand": { "stage": "complete" }
},
"flags": { "tutorial_complete": true, "easter_cherry": true },
"playTimeMinutes": 12,
"worldTime": 720,
"reputation": { "whales": 0, "staff": 1, "tourists": 0 }
}worldTime is minutes 0–1439 (day/night tint). Archetypes: weekend_warrior, high_roller, convention_goer, local. Shared with terminal mode via localStorage key mandalay-bay-library.
1.7 Auto-save
Progress saves automatically when:
- You leave the casino (option 8)
- You return to the lobby after any floor activity
- You press Ctrl+C (interrupt)
Manual save anytime via lobby Save Game (option 6).
1.8 CLI reference
1.8.1 List saves
python3 -m mandalay_bay --list-savesOutput:
Save Library (most recent first):
Slot 2: High Roller — Ace, 4,250 chips (last played 2026-07-04 17:30)
Slot 1: [Empty]
...
1.8.2 Load a slot directly
python3 -m mandalay_bay --slot 2Skips the save library menu and loads slot 2 immediately.
1.8.3 Create a new save in a slot
python3 -m mandalay_bay --slot 3 --new-save --name "Lucky" --chips 2500 --save-label "Vegas Trip"Creates (or overwrites with confirmation) a new game in slot 3.
1.8.4 Custom save directory
python3 -m mandalay_bay --save-dir ./my_casino_saves
python3 -m mandalay_bay --list-saves --save-dir ./my_casino_savesUseful for backups, multiple profiles, or testing.
1.9 In-game
The lobby shows your active slot:
Save slot 2: High Roller
Chips: $4,250
Lobby option 6) Save Game writes progress immediately without leaving.
1.10 File format
Save files use JSON (version 1). The library index tracks metadata for quick listing; full session data lives in slot_N.json (where N is 1–5).
1.11 Tips
- Use descriptive save labels (“High Roller”, “Weekend Trip”)
- Delete old slots to free space for new runs
--list-savesis safe to run anytime to check progress