Runtime bugs are expensive when you find them late. The safest beta workflow is to split testing by what each environment can actually prove.
Preview is fast. Play mode is closer to the real game. Published test places are where saves get real.
Studio play and published-place checks require a current installed runtime. After changing story data, styling, sprite assets, runtime menu fields, or extension settings, compile the project and restart the play session before trusting those checks. Install or update the runtime when the runtime is missing or outdated.
Use preview to check story flow, dialog timing, variables, conditions, choices, presentation nodes, synthetic text input, and simulated wait states.
Use play mode to check runtime menus, story sessions, text input filtering behavior, purchase prompts, player controls, teleporting, sprite activation, world waits, and installed assets.
Use a published test place for save behavior, player rejoin behavior, purchase setup, and persistence across restarts.
- Compile the project.
- Start preview from the scene you changed.
- Step through the main path.
- Choose each available Choice option.
- Check locked choice text.
- Use preview transport from important branch nodes.
- Resolve warnings before moving to runtime testing.
Preview From Here follows a reachable route from the scene start to the selected node, including choice and condition branches, so earlier backgrounds, sprites, audio, variables, and other story state carry into the test. If no route reaches the selected node, Preview reports an error; connect the node before testing from it. It chooses one route, so test alternate branches separately when their state matters.
Also check these authoring behaviors:
- Start autoplay, pause it, and confirm Stop Preview remains available.
- Mute during music playback or a fade, then unmute. Playback should continue from its current point.
- Stop Preview or reach an End node and confirm autoplay resets.
- Fix a Portrait Link, Scroll Sound Link, or disconnected-node warning without compiling. Check that badges and the warning count follow the edit.
- Compile again and confirm Output now reports the current project.
- If a Text Input uses a Speaker setting other than Automatic, preview it after a Dialog line and confirm the speaker name and portrait match your choice.
- Install or update the runtime if it is missing or outdated, then choose Story > Compile Project.
- Start a fresh Studio play session after the compile succeeds.
- Start a new game from the runtime menu.
- In a touch-device emulator, tap a typing dialog line to reveal it, tap again to advance, and drag a long line to confirm scrolling does not advance the story.
- Test continuing a save, returning to the title screen, settings, the log, saving, loading, chapter selection, and any authored Open Runtime Page nodes. See Player Navigation for the available controls.
- Submit text input and confirm normal answers reach later dialog.
- If a Text Input sets Filtered Text to Use Filtered Branch, test the retry or recovery route in play mode.
- Test Prompt Purchase nodes with valid Developer Product or GamePass IDs. For Developer Products, verify that closing the prompt does not select Purchased, then verify that your receipt integration selects it only after the durable grant succeeds. Confirm Cancelled and GamePass-only Already Owned routes where they apply.
- Test each world-facing node in the actual place.
- Recompile and restart play mode after changing story data, assets, styling, or extension settings. Reinstall the runtime only when the installed runtime is missing or outdated.
Menus
Starting and continuing a story, settings, saving, loading, the log, chapter selection, returning to the menu, closing pages, and authored Open Runtime Page moments all depend on runtime requests and player save data.
Timers
Waits, no-input dialog, title cards, and choice timeouts should pause while the runtime menu is open.
Text input
The runtime filters submitted text. Studio may warn and use local text if filtering is unavailable, so test any Use Filtered Branch route in play mode.
World nodes
Touch, click, proximity prompts, teleport, roaming, and sprite activation all need the installed runtime.
Roblox services
Award Badge, Prompt Purchase, GamePass ownership, and Premium checks need the installed runtime and Roblox service setup.
Extensions
Run Function needs the installed runtime, extensions enabled, and trusted extension code.
When testing the responsive runtime, include these
screen sizes alongside your usual story checks:
| Screen | Size |
|---|
| Portrait phone | 360 x 800 |
| Landscape phone | 667 x 375 |
| Tablet | 1024 x 768 |
| Desktop | 1366 x 768 and 1920 x 1080 |
- Open each menu page and confirmation at every size. Check that labels and actions remain visible or reachable by scrolling.
- Play long dialog, a long choice list, text input, and a title card. Check that text remains readable and the story image keeps its intended framing.
- At every size, check the top Auto, Log, and Menu toolbar. Open Menu, visit Save game, Load game, Settings, and Chapters, then use Back and Return to story. Confirm the story stays paused until you return.
- Repeat with touch, keyboard/mouse, and gamepad. Check visible focus, activation, and focus restoration after closing pages.
- Test your existing SVNE, Episode, or custom preset as well as VNC before upgrading a published story.
- Turn off Allow Return to Main Menu and verify Return to title disappears while Menu and the pause controls remain usable. Test Start Story with and without an autosave.
- From the title screen, confirm Continue resumes the autosave and Load game opens the save browser. Pages opened from the title should offer Return to title.
See Player Navigation for the
expected page flow. If you use button extensions, also check their labels,
enabled state, and focus behavior on the redesigned controls.
Local Studio runtime saves are memory-only. A published test place is needed when the question involves real persistence, player rejoin behavior, or save-profile release after a server closes.
- Publish a private test place.
- Enable runtime save access as your experience requires.
- Start a story, make a manual save, and leave.
- Rejoin and test Continue plus manual Load.
- Change settings, leave, and confirm settings persist.
- Test GamePass checks, purchase prompts, badges, and other Roblox service behavior your route depends on.
- Test save/load from more than one route if your story branches heavily.
- Continue says no autosave is available after you expected one.
- A save slot is marked as an outdated save after you removed or moved the chapter, scene, or node it pointed to.
- A save slot loads but returns to the wrong chapter, scene, or node.
- A text input route works in preview but fails in play mode.
- A Text Input retry branch never runs because Filtered Text is still set to Continue Normally, or If Text Is Filtered is empty or points to the wrong node.
- A Prompt Purchase node follows Cancelled in preview. That is expected; use play mode with the installed runtime for real prompt behavior.
- A Developer Product prompt closes but its story remains pending. Confirm the host receipt callback granted the product and called
DeveloperProductReceipts.ReportGranted(receiptInfo).
- A Developer Product reaches Purchased before
ProcessReceipt grants it. Remove any prompt-finished story handling and use the server receipt integration instead.
- A World Wait route never continues because the target path does not resolve or the trigger kind does not match the target.
- An Award Badge node is reached, but the badge is not owned by this experience.
- A Run Function node is reached while extensions are disabled or the selected module is missing.
- A Run Function route remains on the node because the extension yielded and never returned.
- Roaming does not restore controls after returning to normal story mode.
- Runtime menu timers continue while the menu is open.
These are not places to add delay hacks. They are signs to verify the authored fields, installed runtime, and place hierarchy.
Use Troubleshooting for the common causes and first checks behind these failure signs.