Datastore Pro

Official Datastore Pro 1.0 Beta documentation for DataStore exploration, fast record search, data editing, version history, comparison, health checks and request-budget safety in Roblox Studio.

On this page

Quick start

Datastore Pro 1.0 Beta runs inside Roblox Studio and works with the persistent data attached to the currently open experience.

1. Prepare a safe Studio environment

Use a published test experience whenever possible. In Studio, open File → Experience Settings → Security, enable Studio Access to API Services, and save the setting.

Studio can access the same persistent DataStores used by the live experience. Do not experiment with Editing mode against production data.

2. Open Datastore Pro

Install and enable the plugin, then press Datastore Pro in the Studio plugin toolbar. The DockWidget opens with Read Only ON.

3. Open a DataStore

Press Refresh to discover Standard DataStores, or press Open Store and enter an exact DataStore name. Select a DataStore in Explorer to load its record index, then select a record and press Open.

4. Inspect before editing

Expand tables in Stored Data and select a scalar value to see its path and current value. Keep Read Only enabled until you are certain the correct experience, DataStore, scope and key are open.

Safety first

Datastore Pro is designed to make risky operations explicit.

  • Read Only is enabled at every startup. This cannot be disabled in Settings.
  • Local field and raw JSON edits do not immediately write to Roblox.
  • Save Changes always opens a diff for review before writing.
  • Record deletion can require the exact word DELETE.
  • Whole-DataStore deletion requires both the exact store name and a separate confirmation phrase.
  • Session backups can support Undo Write for the most recent save or record deletion made through the plugin.
  • Search, comparison, version diff and Data Health workflows are read-only.

Session backup is not a durable backup system. It exists only for the current Studio session and only covers the most recent reversible write made through Datastore Pro. It does not make whole-DataStore deletion safely reversible.

Workspace overview

Area Purpose
Header Opens Settings and the Search Data, Player Lookup, Compare and Data Health tools
Read Only control Switches between safe browsing and Editing mode
Explorer Lists DataStores and record keys, searches the current tree and opens records
Source bar Switches Standard/Ordered mode, changes scope and opens a store by name
Stored Data Displays the current record as a collapsible typed tree
Record tools Opens Raw Data, Export JSON, Versions, Delete and Save Changes
Status bar Shows current work, request budgets, busy state and Undo Write

The main inspector preserves the selected record’s original persisted value and a separate local working copy. Pending changes are calculated from the difference between those two values.

Explorer

Discover stores

Press Refresh with no DataStore open to call Roblox’s store-listing API. Explorer shows discovered Standard DataStore names. You can also use Open Store when you already know the exact name or when a store is not shown in discovery results.

Open records

Select a DataStore to load its record index. Record keys appear as children of that DataStore. Selecting a record exposes quick actions:

  • Open loads it into Stored Data.
  • Raw loads it and opens the raw JSON editor.
  • History loads it and opens version history.
  • Delete starts the protected record-deletion flow.

Loaded record lists are cached for the current plugin session. Reopening an expanded store can show the cached list immediately; press Refresh when you need a new Roblox response.

Deleted-store names

Roblox may continue returning a deleted or tombstoned DataStore name in listings. When Datastore Pro receives the corresponding deleted-store response, it remembers the name locally and hides it by default. Show deleted DataStores in Settings can display those known names for diagnosis.

Large DataStores

For Standard DataStores, Explorer initially requests up to 200 record keys. If Roblox indicates that more records exist, Datastore Pro enters protected large-store search mode instead of automatically paging through every key and reading player payloads.

Large-store Explorer search follows this order:

  1. Search the keys already cached from the initial request.
  2. For a numeric UserId, use the saved player-key pattern to try an exact record read.
  3. For text, perform a prefix key request and return up to 50 matching keys.
  4. If you need to search inside stored values, use Search Data.

This distinction matters: Explorer search is optimized for record keys and UserIds; Advanced Data Finder is the tool for fields and values.

Record inspector

Stored Data flattens a nested value into a readable tree while preserving hierarchy.

  • Tables and arrays can be expanded or collapsed.
  • Scalar rows display typed icons and previews for strings, numbers, booleans and other supported values.
  • Selecting a scalar row shows its full nested path, such as Currency.Coins.
  • Changed values are marked in the working view.
  • Very large records are capped in the visual tree; Raw Data can show the complete JSON-compatible value.

Datastore Pro keeps the selected scalar’s existing type when you use Edit Value. For example, editing a number expects a valid number rather than silently converting it to a string.

Editing and saving

Enable Editing mode

Press Read Only ON only after confirming the correct environment and record. The control changes to Editing ON. Enabling Editing does not write anything by itself.

Edit a field

  1. Select a scalar row in Stored Data.
  2. Press Edit Value.
  3. Enter the replacement value.
  4. Press Apply locally.
  5. Review the pending-change count and changed rows.

Save changes

Press Save Changes to open the mandatory review. The review lists changed paths with old and new previews. Confirm the DataStore and record key, then press Save to DataStore.

When session backups are enabled, Datastore Pro keeps the previous value before the write. It writes with SetAsync(), reloads the saved record and updates the inspector from the persisted response.

Delete a record

Record deletion uses RemoveAsync(). With destructive confirmations enabled, type DELETE exactly before the request is sent. If session backups are enabled, Undo Write can restore the deleted record during the same Studio session.

Delete a whole DataStore

Right-click a DataStore and open its properties or context menu. Whole-store deletion only appears in Editing mode and requires strict confirmation. It removes keys in budget-aware batches and cannot be practically backed up by the plugin. Treat this as irreversible.

Raw JSON and export

Raw Data

Raw Data opens the complete current working value as JSON. In Editing mode, Apply JSON validates the text and replaces only the local working copy. A separate reviewed save is still required.

OrderedDataStore values must remain numeric, so the raw editor rejects non-number replacements in Ordered mode.

Export JSON

Export JSON opens a read-only formatted copy for selecting and copying outside the plugin. Export does not write to Roblox or create an external file automatically.

Advanced Data Finder

Search Data is available for Standard DataStores. Open a store first, then press Search Data or use Ctrl+Q.

Quick Search can match record keys, partial identifiers, field names, nested paths and saved values. Enter a term, choose the scan range, then press Search.

Scan range

  • Use Amount accepts a limit from 1 to 1,000 records.
  • Scan All explicitly authorizes an exhaustive scan of the current DataStore.
  • A running scan can be cancelled.

Bounded scans are the safer default. Scan All can take a long time and consume meaningful read/list budget on a large store.

Structured filters

Add up to four field or path rules. A path can be a leaf name such as Coins or a nested path such as Currency.Coins.

Supported operators are:

contains  =  !=  >  <  >=  <=  exists  missing

Use Match ALL when every active rule must match the same record, or Match ANY when one matching rule is enough.

Saved searches

Save Search stores the current finder text, rules and range selection in local plugin settings. Saved Searches can load or remove those setups. Saving a search does not contact a game DataStore.

Player Lookup

Player Lookup resolves a username or UserId and converts it into a record key using a configurable pattern.

The default pattern is:

Player_%USERID%

Available placeholders are:

  • %USERID% — the resolved numeric Roblox user ID
  • %USERNAME% — the resolved Roblox username

Examples:

Player_%USERID%       → Player_1451803
Profile:%USERNAME%    → Profile:ExamplePlayer

The chosen pattern is saved in plugin settings. Player Lookup performs an exact read and opens the matching record when a value exists.

Compare records

Compare reads two exact keys from the currently open Standard DataStore and produces a path-by-path diff. It does not copy values between records and never writes either record.

Use comparison to diagnose schema changes, progression differences or unexpected player-state divergence. Keys must be entered exactly; large stores do not need to be fully listed first.

Version history

Version history is available for Standard DataStore records, not OrderedDataStores.

  1. Open a record.
  2. Press Versions or choose History from the Explorer record actions.
  3. Choose Compare Version for a read-only historical-versus-current diff.
  4. Choose Load Version to place the snapshot in the local working copy.
  5. Review the pending diff and use the normal save confirmation only if you intend to restore it.

Loading a historical version does not restore data by itself. The current persisted record remains unchanged until Editing is enabled and the reviewed save completes.

Data Health

Data Health performs a read-only structural audit of selected records. It reports two primary problem types:

  • Different Types — a field is a number in most checked records but a string, boolean or other type in some records.
  • Missing Common Fields — a field appears in nearly all checked records but is absent from a smaller subset.

The target can be left blank to sample the current DataStore or can identify a username, UserId, exact key or key prefix. Prefixes such as key: and prefix: can force interpretation. Max records limits how many records may be read, with a hard cap of 1,000 per run.

Data Health identifies structural inconsistencies; it does not decide which value is correct and does not repair records automatically.

Ordered and scoped stores

OrderedDataStores

Switch the source bar from Standard to Ordered, then use Open Store because ordered stores cannot be reliably discovered through the same listing workflow. Ordered entries are loaded in sorted order and values must be numeric.

Advanced Data Finder, record comparison and version history are limited to Standard DataStores.

All scopes

In Standard mode, switch global to All scopes to open the current DataStore through DataStoreOptions.AllScopes. This lets key listing include named scopes. Changing the scope clears the current record state and reloads the store context.

Request budgets

Every DataStore operation passes through one centralized request runner.

  • Requests are separated by Roblox request type: read, write, remove and list, including Ordered variants.
  • Only one request of a given type is issued at a time.
  • The plugin waits for a budget reserve before sending a request.
  • List requests use wider spacing because list budgets are small.
  • Throttling and temporary server errors trigger an automatic exponential cooldown.
  • Retries stop after a bounded number of attempts.
  • The status bar shows current Standard read, write, list and remove budgets when Roblox exposes them.

Budget-aware behavior reduces request bursts; it does not make scans free or guarantee that Roblox will accept every operation.

Settings

Settings are split into Behavior, Appearance, Safety and Shortcuts.

Behavior

  • Show or hide scalar value previews.
  • Show record-count indicators in Explorer.
  • Show known deleted DataStores.
  • Toggle detailed neutral status messages.
  • Review the large-DataStore protection behavior.

Appearance

Choose one of twelve dark themes:

Midnight  Graphite  Contrast  Violet
Ocean     Emerald   Ember     Rose
Royal     Solar     Cherry    Arctic

Density options are Comfortable, Compact and Super Compact. Typography controls include font family, font weight and a proportional text-outline scale from 0 to 4.

Safety

  • Confirm destructive actions controls record-delete confirmation.
  • Session backups controls the most-recent-write backup used by Undo Write.
  • Read Only on startup is locked on.
  • Save review is always enabled.

Keyboard shortcuts

Shortcut Action
Ctrl+F Focus Explorer search
F5 Refresh the current DataStore or DataStore list
Ctrl+Q Open Advanced Data Finder
Ctrl+S Review and save pending changes

Shortcuts only act when Datastore Pro has the relevant context. For example, saving still requires Editing mode, a loaded record and the mandatory review.

  1. Use a separate published test experience with Studio API access enabled.
  2. Open Datastore Pro and leave Read Only on.
  3. Confirm Standard/Ordered mode and scope.
  4. Open the exact DataStore and record.
  5. Export JSON or make an independent backup for important data.
  6. Use Compare, Versions or Data Health to understand the issue.
  7. Enable Editing only when the intended change is clear.
  8. Apply the smallest possible local change.
  9. Review every path in the save diff.
  10. Save, reload and verify the persisted result.
  11. Disable Editing or close the plugin when finished.

Troubleshooting

Studio reports that API access is not enabled

Publish the experience, then enable Studio Access to API Services under Experience Settings → Security. Use a test experience rather than enabling production access casually.

A DataStore does not appear in Explorer

Press Refresh, verify Standard mode and scope, or use Open Store with the exact name. OrderedDataStores should be opened manually in Ordered mode.

Explorer only shows a search box for records

The store exceeded the protected 200-key Explorer threshold. Search by key or UserId, or use Advanced Data Finder when you need to inspect saved values.

A search or audit appears to pause

Datastore Pro may be waiting for Roblox request budget or an automatic cooldown after throttling or a temporary server error. Read the status bar before retrying; repeated clicks do not create more budget.

Save Changes is unavailable

Confirm that Editing is enabled, a record is loaded and the working copy differs from the persisted original.

Undo Write is unavailable

Undo requires Session backups to have been enabled when the most recent save or record delete was performed. It is session-only and supports one reversible plugin write.

Version history is unavailable

Version history is limited to Standard DataStore records. Open a Standard record first.

Limitations

  • Datastore Pro is a Studio plugin; it is not an in-game admin panel or an Open Cloud client.
  • It only accesses DataStores available to the currently open experience and Studio user.
  • Studio API access can expose production data. Environment separation remains the developer’s responsibility.
  • Explorer intentionally does not auto-load every record from large stores.
  • Exhaustive searches can be slow and consume substantial Roblox request budget.
  • Data Health finds structural differences but does not validate game-specific business rules.
  • The visual tree caps extremely large records; use Raw Data for the complete JSON-compatible value.
  • OrderedDataStores support numeric values and do not provide the full Standard DataStore feature set.
  • Session backups do not survive Studio restarts and do not cover whole-store deletion.
  • The 1.0 release is still a beta and may contain small bugs.