Skip to content

Testing Runtime

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.

  1. Compile the project.
  2. Start preview from the scene you changed.
  3. Step through the main path.
  4. Choose each available Choice option.
  5. Check locked choice text.
  6. Use preview transport from important branch nodes.
  7. 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 the selected node has no reachable route, Preview starts directly at that node instead. It chooses one route, so test alternate branches separately when their state matters.

  1. Install or update the runtime.
  2. Start a Studio play session.
  3. Start a new game from the runtime menu.
  4. 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.
  5. Test Continue, Return to Menu, Settings, Log, Save, Load, Chapter Select, and any authored Open Runtime Page nodes.
  6. Submit text input and confirm normal answers reach later dialog.
  7. If a Text Input sets Filtered Text to Use Filtered Branch, test the retry or recovery route in play mode.
  8. 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.
  9. Test each world-facing node in the actual place.
  10. 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

New Game, Continue, Settings, Save, Load, Log, Chapter Select, Return, Close, Open Menu, 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 unpublished 0.7.0-beta.1 responsive runtime, include these screen sizes alongside your usual story checks:

ScreenSize
Portrait phone360 x 800
Landscape phone667 x 375
Tablet1024 x 768
Desktop1366 x 768 and 1920 x 1080
  1. Open each menu page and confirmation at every size. Check that labels and actions remain visible or reachable by scrolling.
  2. 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.
  3. On compact layouts, open More and check Log, Settings, Menu, and any extension actions.
  4. Repeat with touch, keyboard/mouse, and gamepad. Check visible focus, activation, and focus restoration after closing pages.
  5. Test your existing SVNE, Episode, or custom preset as well as VNC before upgrading a published story.

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.

  1. Publish a private test place.
  2. Enable runtime save access as your experience requires.
  3. Start a story, make a manual save, and leave.
  4. Rejoin and test Continue plus manual Load.
  5. Change settings, leave, and confirm settings persist.
  6. Test GamePass checks, purchase prompts, badges, and other Roblox service behavior your route depends on.
  7. 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.