Slice Station
A design brief for a Roblox mini-game that teaches equivalent fractions. It's written for the game production team, so every mechanic is tied to the lesson objective and every rule can be tested.
1. The one-line pitch
Pupils run a pizza kitchen. Orders come in as fractions ("2⁄3 pepperoni, please"), but the pizza on the counter is already cut into 6, 9 or 12 slices. To fill the order, players have to work out how many of these slices make 2⁄3.
The maths is the mechanic. A child can't fill an order by luck or by tapping quickly, only by seeing that cutting a pizza into more slices doesn't change how much pizza there is.
2. Learning objective
| Objective | How the game asks for it |
|---|---|
| Recognise and name equivalent fractions using diagrams | Levels 1–2: the order and the counter pizza are both visible, and players top slices until they match |
| Find a missing numerator or denominator, e.g. 2⁄3 = ?⁄6 | Level 3: the slicing tool is locked, so players have to say how many slices before they can top any |
| Simplify, going the other way: 8⁄12 = ?⁄3 | Level 4: orders arrive in twelfths and the counter pizza is in thirds or quarters |
| Compare fractions using equivalence (sets up adding related fractions) | Level 5: two customers argue over who ordered more, 3⁄4 or 5⁄8, and players re-cut one pizza to settle it |
Denominators stay at 12 or below, in line with the P3 fractions content. MOE's own syllabus suggests using games to reach mastery of equivalent fractions, so this game puts that suggestion into practice.
3. Misconceptions the game must catch
| Code | Wrong idea | What the player does | How the game responds |
|---|---|---|---|
| E1 | "Add the same to top and bottom" | Order 2⁄3, counter in sixths, tops 5 slices (3 was added to the bottom, so they add 3 to the top: 5⁄6) | The two pizzas are overlaid and the extra topping glows: "Your pizza has more topping than the order." No buzzer. |
| E2 | "Only the top number changes" | Tops 2 slices of a 6-slice pizza for a 2⁄3 order | Same overlay. The customer says "That's only a third!" |
| E3 | "Bigger bottom number means bigger fraction" | Says 5⁄8 is more than 3⁄4 in Level 5 | The re-cut animation turns 3⁄4 into 6⁄8 next to 5⁄8, and the player votes again |
4. Core loop (30–60 seconds per order)
- Order ticket drops in: a fraction plus the topping.
- Pizza slides in, already cut. The number of slices is chosen so the answer is a whole number of slices.
- Player tops slices by walking around the pizza and using a ProximityPrompt on each slice. Tapping a slice again removes the topping, so mistakes are cheap.
- Serve with the bell. The server checks the answer and sorts any wrong one into E1, E2 or E3.
- Feedback (see section 6), then the next ticket. Five correct orders clear a shift.
5. Difficulty ramp
| Level | Order denominators | Counter pizza | New rule | To pass |
|---|---|---|---|---|
| 1 | 2, 4 | 4, 8 | Order pizza shown next to the counter pizza | 5 orders, any time |
| 2 | 3, 6 | 6, 9, 12 | Order pizza fades after 3 s, so players must hold it in their head | 5 orders |
| 3 | 2–6 | up to 12 | Before topping, players enter the number of slices on a number pad | 5 orders, first try ≥ 4 of 5 |
| 4 | 12, 8, 6 | 3, 4, 2 | Goes the other way, from a bigger denominator to a smaller one | 5 orders, first try ≥ 4 of 5 |
| 5 | mixed | re-cut tool | Compare two orders. The re-cut tool turns one pizza into the other's slices | 4 of 5 comparisons |
Generating orders. The game picks a pair (order fraction, counter denominator) from a fixed list of allowed pairs, never at random, so every answer is a whole number of slices and every pair is worth practising.
-- ReplicatedStorage/Orders.lua (server reads the same table)
return {
[1] = { {1,2,4}, {1,2,8}, {3,4,8}, {1,4,8} }, -- {num, den, counterSlices}
[2] = { {1,3,6}, {2,3,6}, {2,3,9}, {1,3,12}, {5,6,12} },
[3] = { {2,3,12}, {3,4,12}, {2,5,10}, {1,6,12}, {4,6,12} },
[4] = { {8,12,3}, {9,12,4}, {6,8,4}, {4,6,3}, {10,12,6} },
}
6. Feedback rules
Correct: the customer cheers, the slices flash, and a coin goes into the shared tip jar (co-op, not competitive). On Level 3+, the equation appears for a moment: 2⁄3 = 4⁄6, so the picture and the notation stay linked.
Wrong: nothing is taken away. The two pizzas are overlaid so the difference is visible, and the player can try again straight away. After two wrong tries, a hint draws the cut lines of the order pizza onto the counter pizza.
Things to avoid: timers before Level 3 (they reward guessing), penalties that spiral (one wrong order shouldn't cost the shift), and rewards for speed over accuracy.
7. Data the game sends to the curriculum team
Every order served logs one event. This is what lets the curriculum team see which misconception a pupil has, not just their score.
-- Telemetry is a small server module: it sends the full record to the
-- curriculum dashboard, plus a slimmer event to Roblox AnalyticsService.
Telemetry.log(player, "order_served", {
level = 3, order = "2/3", counter = 12,
answer_slices = 11, correct = false,
error = "E1", -- 2/3 -> 11/12: added 9 to top and bottom
attempt = 1, seconds = 14,
})
| Signal | Meaning | What the teacher does |
|---|---|---|
| ≥ 3 E1 errors in one shift | Additive thinking about fractions | Flag the pupil for a fraction-strip activity in the next live class |
| Passes Level 2, stuck on Level 3 | Can match with a picture, not without one | Expected. Assign the Level 3 homework set, then look again in a week |
| Correct but slow (> 30 s) on Level 1 | Counting slices one by one | Fine for now. Check again after 2 sessions |
8. Acceptance criteria for the game team
- A player who taps slices at random can't pass Level 3 (tested with a bot that tops a random 1–N slices).
- Every pair in
Orders.luahas a whole-number answer (unit test over the table). - The answer is checked on the server through a RemoteEvent, so a client can't fake a correct order.
- Every wrong answer is classified as E1, E2, E3 or "other" in the log, never left blank.
- No timer is visible on Levels 1–2.
- Readable on a phone: fraction tickets use 48 px text or larger.
9. Playtest plan
Five P3 pupils, one 20-minute session each, with a 6-question paper check before and after (2 matching, 2 missing-number, 2 comparing). The game is ready when: (a) the average score goes up by at least 2 questions, (b) at least 4 of 5 pupils want to play another shift, and (c) the team watching sees no "button-mash" wins on Level 3.