How a day works¶
The clock starts at opening time, runs forward and then freezes. It never rolls over on its own: the next day starts when you close the store, on the OPEN sign by the front door.
The settings¶
One asset holds the whole day: Content/GrandOpening/Blueprints/DataAssets/Store/DA_StoreConfig.
| Field | What it does | Shipped |
|---|---|---|
OpeningHour |
The hour a new day starts on | 8 |
ClockStopHour |
The hour the clock freezes at | 22 |
HourDurationSeconds |
Real seconds per game hour | 60 |
StartingBalance |
Money on day 1 | |
StartingRating |
Store rating on day 1 | |
RatingInertia |
How fast the rating follows the day's satisfaction. 0 never moves, 1 snaps |
0.15 |
At the shipped values a day lasts 14 real minutes. For longer days, raise HourDurationSeconds. For more hours in a day, raise ClockStopHour.
ClockStopHour is not a closing time. Nothing shuts at 22:00, customers keep coming and sales keep happening. The clock only stops counting, which gives you as long as you want to finish the queue and tidy up.
Closing the store¶
- Interact with the OPEN sign by the front door.
- Confirm on the modal.
- The day report animates in, line by line.
START A NEW DAYfades to black and starts the next day.
The sign refuses while a customer is still shopping, so you cannot close on someone standing at your till. When it refuses, its outline and prompt disappear entirely.
Going bankrupt¶
The balance can go below zero: wages, rent, utilities and tax are charged at the end of the day whether you can pay them or not. If the balance is still negative when you press START A NEW DAY, the store does not reopen. A centered BANKRUPT screen replaces the report, in the report's own layout: the number of days you stayed open, your final balance, and two buttons, MAIN MENU and QUIT GAME. Nothing is saved at that point, so CONTINUE from the main menu brings back your last save.
The rule lives in one function, IsBankrupt on BP_StoreManager: balance below zero. Change it there (a grace threshold, a debt limit) and the screen follows. The screen itself is BP_GameOverWidget; the player controller picks it from its GameOverClass setting.
What resets between two days¶
| Reset | Kept |
|---|---|
| Every customer in the level | Boxes left on the floor |
| The belt, receipt, basket, till and queue of every checkout | Stock on the shelves |
Your own position, back at the PlayerStart |
Furniture you placed, your balance, your rating |
If you add a system that has to start each day clean, add its call to CleanForNextDay in BP_StoreGameMode. That function is a flat list of calls, so a new line is all it takes.
The daily report¶
The report reads in four blocks:
| Block | Lines |
|---|---|
| Customers | Served, Lost, Stock-outs, Total Customers |
| Store | Rating out of 5 |
| Revenue | Revenue, then Purchases, Wages, Rent, Utilities, Tax and Marketing |
| Result | Expenses, Total Profit, Balance |
Total Customers is Served plus Lost. A stock-out is a customer who also shows up in one of those two, so the four lines are not meant to be added together.
To add a line, drop another BP_ReportRowWidget into the report in the Designer. The reveal cascade follows the order the widgets sit in. No graph to edit.
The HUD while the day runs¶
Top right: the store rating as a coloured ring, the balance in large type, and the day and clock underneath. Top left: notifications, posted when a customer is waiting at an unattended checkout or when the rating crosses a whole number.