04. Level Design & Pacing

← Back to index

Main sources: level_rewards.csv [DATA], MissionManager [CODE ✔].

Day Structure

  • Progress is split into Days. Day 1–25 are hand-authored, 120 customers in total.
  • After Day 25 the table is clamped to Day 25 [CODE ✔ GameSettingPrefs.get_GLDDayIndex = min(day, 25)]. Every later day replays Day 25's 6 rows (3★ rewards 581–601, VIP in slot 4). The endgame no longer raises rewards.

Customers per day

Day123456789–1314–25
Customers1223344456

Per-customer columns in level_rewards.csv

ColumnPurpose
phone_type_sourcePhone shape used
prepare_typeMain maker (Spray 63×, Acrylic 56×, Marble 1×)
lock_typeFeature introduced that day
item_require_countNumber of customer requests
one/two/three_star_rewardCoin reward per star count
customer_typeNormal / VIP / etc.
vip_emoji_face_min/maxVIP emoji count

New Phone Shapes & Features Schedule

DayNew phone shapeFeature introduced (lock_type)
1Normal— (Spray tutorial)
2BunnyChain (keychain)
3—Acrylic
4—Decoration (stickers)
5Among-us-likeGlitter
6—Marble (forced once)
8Unicorn
11Pineapple
15Cola
20"StarBucks"
23Foot
25Cactus

Onboarding Curve (FTUE)

DayCustomersWhat's new
11Spray, Normal phone. No choices, so the player gets it right away.
22First VIP, keychain, Bunny phone, Bundles, first Cleaning customer, Acrylic unlocked (GP)
32First Acrylic order, Pop-It, Showcase & Chairs studio categories
43Stencil, Decoration (stickers), Lamp & Sofa
53Glitter, Marble, Rug
64Injection, Liquid Glitter, Plant
74Left Wall Decor (last studio category)
8–254→6New phone shape roughly every 3–5 days, new stickers every 2–3 days

Pattern: up to Day 7, almost every day unlocks something (a maker or a studio category). After that, novelty comes from new phone shapes, new stickers, VIP items and special modes (see 03_Customers.md).

Rhythm Within a Day

  • A VIP every 3 customers, so almost every day has 1–2 "special" moments.
  • prepare_type alternates Spray / Acrylic so the maker keeps changing.
  • Returning / Cleaning levels are slotted in as short "breather" levels (100 leaderboard points instead of 200).

Star Rating

[CODE ✔ MissionManager.GetStarNum]

stars = (Day <= 3 ? 2 : 1)
      + (all requests fulfilled ? 1 : 0)
      + (any decoration / marker used ? 1 : 0)
if maker = Injection / LiquidGlitter / PopIt / StringPull → stars = 3
max 3
  • No randomness.
  • Day 1–3 guarantee at least 2★.
  • Premium makers always give 3★.
  • Worst result is 1★. There is no fail state.

Customer requests (InitMission)

  • Picked at random from {paint color, glitter, 2D sticker, 3D sticker, marker, acrylic}, then filtered by maker and day.
  • The count comes from item_require_count:
ValueMeaning
−1No requests
1One request
0Random 1…N
  • Matching check: colors must match exactly (RGBA). Requested stickers must actually be placed.

Result

  • 1★ / 2★ / 3★ pays the matching reward column.
  • RV "Claim" = coins ×2 for normal customers, ×4 for VIPs.
  • "No thanks" pays the base coins, then shows an interstitial.

Difficulty

  • There is no fail state at all [CODE ✔]. Boss and Unhappy customer features are disabled.
  • The only "penalty" is fewer stars, and only if the player ignores requested colors/stickers or does not decorate.
  • Hidden incentive: premium makers always give 3★ and more leaderboard points, which pushes players to try new makers.
Built with LogoFlowershow