Growth & updates
Roblox Experiments: how to run A/B tests and improve your game
Randomly split players into two groups, show them different variants of a change, and compare retention, playtime, and revenue over the same period.
Full guide
1. Which Decisions Call for This Tool
| Producer's challenge | What to compare | What benefit to look for |
|---|---|---|
| New players leave quickly | Two ways to explain the first action | More players reach the engaging part of the game on their own |
| The game feels slow | Two early-progression settings | Players feel their growth and return without exhausting the content too quickly |
| The shop performs poorly | Button placement, offer timing, and value explanation | Revenue per participant grows without harming the player experience |
| Players do not return | A clear next goal or continuation of the quest | Return rate increases, rather than just the length of the first session |
| Playing together is inconvenient | A way to invite or match players | Starting a shared activity becomes easier without making solo play worse |
Fix broken features immediately. If the cause of drop-off is unknown, observe playthroughs first. Run an A/B test when you have a specific hypothesis and two working variants.
With a small audience, test substantial changes to onboarding, difficulty, or progression. Detecting a small effect such as a button color change requires more participants.
2. What the Developer Needs to Do First
Connect Experience configs and use their values in game code. For example, onboardingHintMode must actually switch between the old and new hints. Creating a key in the dashboard does not change the game by itself. Configure your experience.
Player-specific variants use ConfigService:GetConfigForPlayerAsync(player). The standard GetConfigAsync() method is intended for shared configuration and does not enroll the player in an experiment. Reading the relevant key through GetValue() on the player-specific snapshot triggers participation in that key's test. This makes the exact moment when the code first reads the value important. Adding Experiments to your code.
Testing the shop layout: enroll players before the window first appears. Testing the visibility of the shop button: enroll before showing the button. Including only players who opened the shop would bias the second test.
- The value is read separately for the relevant player and actually changes the intended behavior.
- Enrollment happens before the change can first have any effect, at the same point for A and B.
- If the read fails, a safe default behavior is used; the error is tracked separately and is not recorded as a successful assignment to A.
- Both behaviors, rejoining, and a player with existing progress have been tested in a test environment.
- The server validates rewards, progress, and purchases; the client does not determine their authoritative values.
- There is a way to stop applying the change, and the team understands what will happen to rewards and saved progress that players have already received.
Validate staged configurations in Studio before publishing. A ConfigSnapshot does not refresh itself: apply new values at an appropriate moment, such as between rounds. Refresh configurations.
3. How to Create Your First Experiment in Creator Hub
Creator Hub → Creations → your game → Experiments → Create experiment.
- Select In-experience when changing behavior through a config. Matchmaking serves a separate purpose: comparing player-matching settings.
- Name the test after the change, for example
First-upgrade hint — v1. - Select the primary metric, or goal metric.
- Set the planned duration. Roblox's current range is 14–60 days.
- Set the rollout: the share of eligible players who will participate in the experiment.
- Configure control A and variant B, including their values and allocation.
- Define the target audience if needed.
- Review the settings, MDE estimate, and schedule, then launch at the agreed time.
For a first test, use one control and one variant with a 50/50 allocation. Roblox allows a control and up to two alternatives in this type of experiment, but extra variants require more data. Once an experiment has been scheduled, its parameters cannot be freely edited; a running test also locks its key and related conditions. The control receives the result of the active config rules, which is not necessarily one value for everyone. Creating an experiment.
Rollout sets test coverage; A/B allocation divides participants within it. For example, a 40% rollout among 10,000 eligible players enrolls about 4,000. A 50/50 split assigns 2,000 to A and 2,000 to B. The other 6,000 are not part of the reported control group.
A small rollout limits the impact of errors but slows data collection. Validate the implementation first and choose sufficient coverage before launch: you cannot adjust it daily in a running test.
4. Which Metrics to Read and What They Mean
Roblox Experiments tracks D1 and D7 retention, Playtime, Session time, ARPU, ARPPU, and Payer conversion rate; selecting a goal metric does not disable the others. Playtime and monetary metrics in this report cover the experiment period. They should not automatically be treated as daily metrics from another report. Experiments metrics.
| Metric | Question it helps answer | Common mistake |
|---|---|---|
| D1 / D7 retention | Do participants return after a day / a week? | Drawing a conclusion about D7 before the relevant cohorts have had a full week to mature |
| Playtime | How much time does each player spend on average over the period? | Treating every increase in time as an improvement, even when players are simply stuck at an obstacle for longer |
| Session time | What is the average session length? | Confusing time per session with time per user |
| ARPU | How much revenue does each user generate? | Comparing it with ARPDAU for a single day, or with a different currency and period |
| ARPPU | How much revenue does each paying user generate? | Celebrating growth while the number of paying users falls sharply |
| Payer conversion rate | What share of users makes a purchase? | Declaring victory based on the number of purchases without checking total revenue per user |
ARPU = payer share × ARPPU with the same period, audience, and revenue definition. Example: in A, 2% pay 100 Robux each — ARPU = 2. In B, 3% pay 60 Robux each — ARPU = 1.8. More buyers, less revenue per user.
Assign three metric roles: primary — the goal; diagnostics — the explanation; guardrails — the acceptable cost of improvement. Microsoft experimentation practices.
For onboarding: use D1 as the primary metric, first-upgrade completion and time to upgrade as diagnostics, and D7 and errors as guardrails. A better funnel without higher D1 does not confirm a hypothesis about player returns.
5. Find Where Players Drop Off First
Map actual actions: join → first action → reward → upgrade → use the upgrade → next goal. Adapt the steps to the mechanics of the game.
Look at two kinds of conversion: the share of everyone who joined and the share that advances from the previous step. A large loss at an early step usually leaves more room for improvement than a small loss at a stage reached by very few players. First, however, validate the event itself: a missing record does not necessarily mean the player did not perform the action.
Roblox funnels have some important behaviors: recording a later step while skipping an earlier one may automatically count the preceding steps; repeating a step does not represent another unique completion; and filters are tied to the first step. Incorrect logging can show an improvement that never happened. Custom event fields can be used to compare variants. Funnel events.
Watch a few playthroughs with participants’ consent. Ask them to complete a task and explain their expectations without prompting them. “I do not understand why I need the upgrade” calls for a different test from “it takes too long to save for it.”
6. Eight Experiments for a Game
| Priority and hypothesis | What B receives | Primary metric | Diagnostics and guardrails |
|---|---|---|---|
| 1. The player does not know where to go after the first action | A contextual hint with one specific goal instead of a general explanation | D1 | Reaching the first upgrade; time to reach it; errors; D7 |
| 2. The first upgrade feels useless | A clear display of the upgrade's effect, without changing its actual power | D1 | Purchasing and using the upgrade; subsequent progress |
| 3. The early obstacle requires too much repetitive activity | A lower cost for the first upgrade only, such as a 0.8 multiplier | D1 | Reaching the next zone; D7; rate of content and currency consumption |
| 4. The player completes the first goal and loses direction | The next achievable goal appears immediately after the previous one is completed | D7 | Returns; progression; absence of artificial waiting |
| 5. The shop window appears before the player understands the game | The offer appears after the first meaningful achievement instead of being shown early | ARPU | Share who saw the offer; purchases; D1 and D7 |
| 6. The item's value is unclear | A specific description or demonstration of the effect instead of an abstract name, at the same price | ARPU | Conversion; ARPPU; the buyer's subsequent behavior |
| 7. A brief free trial helps players understand the upgrade | A limited trial, if it is safe for the economy and does not involve deception | ARPU | Retention; repeat purchases; effect of the free grant on the economy |
| 8. A shared activity is difficult to start | A convenient prompt to join at the moment when it helps with the task | Playtime | Shared sessions; returns; no disruption for solo players |
Prioritize understanding → first useful reward → early progression → return → monetization. Address a confirmed loss of players in the core loop first.
Test related changes sequentially: easier progression can affect demand for a boost. Testing them as a bundle measures the bundle’s effect, not each individual change.
7. A Fully Worked First Test
Consider this hypothesis: new players do not understand how the first upgrade changes what they can do; if its effect is shown immediately, more players will return the next day.
A keeps the current hint. B adds a short, clear explanation of what will become stronger and which action will become easier. The cost, upgrade power, reward, shop, and in-game advertising remain unchanged. This isolates the player's understanding of the upgrade's value.
For the audience, select players who reach this early stage and define the enrollment point in advance. The primary metric is D1. Completing the upgrade is a diagnostic. D7, revenue per user, and technical errors are guardrails.
Before launch, set a minimum useful D1 increase and the maximum acceptable D7 decline. Choose thresholds based on the game’s economy, baseline metrics, and maintenance cost.
- Before launch: verify both variants, events, default behavior on error, and the rollback plan.
- At launch: record the settings, game version, dates, and state of advertising traffic.
- First day: check technical errors and confirm that different values are being received. Do not assess a winner.
- During the test: monitor safety, data completeness, and group sizes; do not reshape the hypothesis to fit the chart.
- On the planned decision date: check whether the required metrics have matured, review uncertainty intervals, and apply the guardrails.
- After the decision: document the outcome and monitor whether the benefit persists after the change is rolled out.
If first-upgrade completion improves but D1 does not, test the goal that follows the upgrade next: a clear first step does not necessarily give players a reason to return.
8. How to Avoid Mistaking Chance for a Win
MDE is the minimum effect a test can detect with sufficient confidence under the selected plan. Review it before launch. If you care about a 5% improvement and the MDE is around 25%, the plan is poorly suited to answer your question. The options are more eligible participants, a longer test, fewer variants, or a more substantial hypothesis. Low DAU makes the task harder, but there is no universal “possible / impossible” threshold: the metric, its variation, and actual player enrollment all matter. Planning Experiments.
CCU is not a substitute for participant count here. A player who joins every day does not become seven independent players. And running a test for 14 days does not guarantee a sufficient sample for an infrequent purchase or expensive item.
Do not confuse percentages with percentage points. An increase in D1 from 10% to 11% is +1 percentage point and +10% relative to the baseline. Recording both values is useful for planning.
The uncertainty interval matters more than a single green number. In Roblox, it is available through View confidence; when the interval for the change crosses zero, you cannot confidently determine the direction of the effect under the chosen criterion. Interpreting results.
| Illustrative result | Sound decision |
|---|---|
| D1 +6%, interval from +2% to +10%; guardrails are satisfied | There is a positive signal. Check its practical value and the quality of the measurement |
| D1 +6%, interval from −4% to +16% | Uncertainty is high: the data allows for both harm and benefit. There is no winner |
| ARPU +8%, but D7 −12% with a convincing negative signal | This is a tradeoff, not an unconditional win; apply the guardrails agreed in advance |
| The difference is small, the interval is narrow, and it lies entirely within the predefined zone of negligible effect | The difference may be practically insignificant for this specific decision |
“Not statistically significant” does not mean “the variants are identical.” Conversely, a small but convincing improvement is not always worth expensive ongoing maintenance. Consider the expected value at the game's scale, code complexity, content workload, and player feedback when making the decision.
The more metrics, variants, and segments you inspect, the easier it becomes to find something green by chance. The main decision should therefore rely on the goal chosen in advance; an unexpected improvement in another metric is a reason for careful follow-up, not a reason to rename the hypothesis after the fact.
Daily monitoring is appropriate for detecting failures. The danger lies in checking every day for a convenient moment to declare victory. Set the planned duration and primary criterion in advance. If a serious failure occurs, stop the test to protect players and describe it as stopped for a technical reason, not as completed evidence for the hypothesis.
9. Practices That Make Tests More Useful
Compare all enrolled participants. Selecting only buyers or players who reached the final stage depends on the variant and biases its measured effect.
Define important segments in advance. An unexpected win in one of dozens of countries is a hypothesis for a new test, not sufficient reason to declare victory.
Compare A and B over the same period. A new traffic mix can lift both groups. The conclusion applies to enrolled participants; a result among shop visitors does not automatically describe all players.
Check group balance. A substantial, unexplained deviation from the expected allocation is a reason to investigate enrollment, errors, and logging before interpreting the result. It is not a reason to manually remove excess players from a group. This issue is known as Sample Ratio Mismatch; Microsoft researchers include it among experiment quality checks. SRM analysis.
Do not assign different versions of one shared mechanic to individual players without validating the design. If variants change a shared boss's health, a shared reward, the trading economy, or PvP rules, players affect one another. A player-level config may be technically contradictory or contaminate the comparison. The test needs a separate design with an appropriate unit of assignment; a simple per-player toggle may not be enough.
Plan separately for returning participants. Roblox reevaluates target audience conditions across sessions. A player may stop qualifying and return to the normal config. For a scenario that requires continuity between sessions, the developer must provide it explicitly and account for attribution rules. Experiments targeting.
Rolling back a config does not roll back a player's history. A resource was already granted, a zone was already completed, or a purchase was already made. This is why early experiments are better suited to reversible hints and information presentation than to irreversible changes to saved progress.
Record exactly what failed. “The hint increased completion but not returns” points to the next test more clearly than “it did not work.”
10. What Other Game Creators Tested
The following results were published in a Roblox Staff collection of creator stories:
| Game and creator | What they changed | What they reported |
|---|---|---|
| Weird Gun Game — Napo5000 | Replaced a traditional shop with a level-based progression system | 10% increase in D1 |
| Build a Crazy Tower — CrazyBellum | Compared block sets that affect difficulty | 50% increase in payer conversion and 10% increase in session length |
| Flight World — Bourgist | Improved mobile altitude controls | 8.2% increase in playtime and 23% increase in revenue |
In the same post, MikkelDevs describes an interim 30% ARPU increase falling to 3% the next day: early results can change substantially.
The authors did not disclose sample sizes, baselines, or intervals. Percentages are reproduced as reported; for rate metrics, they must not be converted into percentage points.
11. Take Special Care with Monetization
Separate three questions: does the player see the offer, understand its value, and accept its price? Test them separately to identify the cause of the result.
Do not assume that a number in a Config automatically changes the actual Robux price of a developer product or pass. Roblox provides a separate Managed Pricing / Price optimization mechanism for those prices; the shop interface should retrieve the current price rather than display a hard-coded constant. Before the test, verify that the displayed price matches the system purchase prompt. Price optimization.
Start with the item description, a benefit demonstration, or offer timing at the existing price. This keeps the result separate from the response to a discount.
When purchases are rare, average revenue can change sharply because of a few payers. Check the number of buyers and the concentration of revenue. You cannot manually remove an inconvenient large buyer from only one group: rules for handling unusual observations must be consistent and defined in advance.
12. How to Use Experiments Together with MARPLA
Before the test, find funnel drop-offs and review retention, revenue, and traffic mix. Check data coverage: missing events do not mean zero completions.
Create a milestone with a link to the experiment card, the game version, and concurrent changes. Add the result and decision afterward. A milestone preserves context but does not prove an effect.
Verify A/B results in Creator Hub. Aggregate MARPLA charts and before/after comparisons do not replace a breakdown by participants and variants of the specific experiment.
Log the experiment identifier and the variant actually applied in custom events. Do not infer A/B from the date, country, or intended player assignment.
13. Experiment Card You Can Copy
Name:
Observed problem: which real data or playthroughs demonstrate it.
Hypothesis: if we change …, then …, because …
Audience and enrollment point: who enters the test, when, and why.
Control A / variant B: exact values and behavior; what remains the same.
Primary metric: one metric; its exact definition, period, and basis of calculation.
Diagnostics: funnel steps and events that explain the mechanism.
Guardrails: which regressions are unacceptable and how they will be checked.
Measurement plan: rollout, allocation, duration, MDE, audience sufficiency, and D7 maturity.
Technical validation: both variants, errors, logging, and default behavior on failure.
Emergency stop conditions: a failure, loss of progress, or another material harm defined in advance.
Decision: implement / keep A / insufficient data / run a new test. Results, intervals, and limits of the conclusion.
After implementation: who checks the result, when, and which signals would require a return to the previous behavior.
Before selecting Make decision, review the proposed config changes. According to the current documentation, choosing a winning untargeted variant makes it the new default value and removes the conditional values for that key. This is an actual change to the game, not just a label in the report. Separate rules apply when transferring conditions for a targeted winner. Applying the result.
Based on Roblox Creator Docs, Roblox Corporation, CC BY 4.0. Adapted and expanded.
Primary sources
Put this into practice in MARPLA
Find early drop-off in the funnel, review retention and mark the test launch as a milestone. Evaluate the randomized A/B result in Roblox Creator Hub: MARPLA’s overall charts help select a hypothesis and understand context, but do not replace a comparison of experiment participants.
- View custom eventsCustom events track in-game actions, such as completing stages.Step-by-step guide →
- Add a milestone and track its resultA milestone marks a game change: an update, advertising, a new price or artwork.Step-by-step guide →
- Compare your game with benchmarksBenchmark scales show how your game performs alongside other projects.Step-by-step guide →



Discussion0
Loading comments…