Develop

Platform SDK test environment

Updated: Sep 5, 2026
The VR Platform SDK integration on Meta Spatial Simulator supports APIs that read and write local sample data, return fixed responses, show simulated dialogs, or require backend access. APIs that use local sample data can be called offline. APIs that require backend access return an error when access is unavailable. See Test with Platform SDK.

Default state

Spatial Simulator starts with a pre-populated data set, so you can exercise Platform SDK features without building one. The database can be reset to its default state using a CLI command:
adb shell "am broadcast -n horizon.platform.spatialsim/.CommandReceiver --es COMMAND \"common.reset_data\""
Note: You can reset the data to its default state, but not clear it entirely.

Users

The local database is keyed to the seeded test user Sir Lancelot, user ID 084275158957381.
User IDDisplay NameOculus IDFriendBlockedNotes
939717494984112
Lord Blackwood
blackwood
Yes
No
 
084275158957381
Sir Lancelot
lancelot
N/A
N/A
Local test-data user
123915701840108
Lady Alethea
alethea
Yes
No
 
87357015031456
Sir Gawain the Valiant
gawain
Yes
No
 
013850318958091
Sir Percival the Pure
percival
Yes
No
 
359783519751315
Lady Guinevere
guinevere
Yes
No
 
081357031758135
Mordecai the Enchanter
mordecai
Yes
No
 
47651909218124
Isolde of the Lake
isolde
No
No
 
78935613805
Rowena the Swift
rowena
No
No
 
77153185351035
Sir Galahad the Just
galahad
No
No
 
210975017290283
Thorne
thorne
No
Yes
 

In-App Purchases (IAP)

By default, the Spatial Simulator test environment is pre-populated with 9 products and 2 purchases.

Billing Compatibility SDK

The Meta Horizon Billing Compatibility SDK (version 2.0.0 and above) is supported in the Spatial Simulator. Use it to test your billing integration through the Google Play Billing-compatible API.
The Billing Compatibility SDK lets you test the following in the Spatial Simulator:
  • Purchases: querying purchases and launching checkout flows read the local data. No real transaction is made.
  • Fetching products: querying product details requires backend access and returns an error when access is unavailable.

Products

NameSKUFormatted PriceType
Freshly Baked Bread Loaf
sku1
$5.00
Consumable
Herbal Remedy Kit for Common Ailments
sku2
$10.00
Consumable
Warm Woolen Cloak with Hood
sku3
$15.00
Durable
Royal Castle Access Subscription
sku4
$20.00
Subscription
Dragon’s Breath Potion
sku5
$8.99
Consumable
Knight’s Steel Sword
sku6
$19.99
Durable
Mystic’s Crystal Ball
sku7
$4.99
Consumable
Royal Suit of Armor
sku8
$29.99
Durable
Witch’s Brew
sku9
$6.99
Consumable

Purchases

By default, the local test-data user, Sir Lancelot, has already made the following purchases:
Product NamePurchase IDSKUType
Freshly Baked Bread Loaf
12409214701
sku1
Consumable
Warm Woolen Cloak with Hood
32507325022
sku3
Durable

Leaderboards

The default environment includes 1 leaderboard with pre-populated entries.

Leaderboard: gold_leaderboard

RankDisplay NameUser IDScore
1
Sir Lancelot
084275158957381
10,000 pts
2
Lord Blackwood
939717494984112
9,999 pts
3
Lady Alethea
123915701840108
8,888 pts
4
Sir Gawain the Valiant
87357015031456
7,000 pts
5
Sir Percival the Pure
013850318958091
6,889 pts
6
Lady Guinevere
359783519751315
5,000 pts
7
Mordecai the Enchanter
081357031758135
4,444 pts
8
Isolde of the Lake
47651909218124
3,333 pts
9
Rowena the Swift
78935613805
2,121 pts
10
Sir Galahad the Just
77153185351035
2,120 pts
11
Thorne
210975017290283
2,001 pts

Group Presence

Group presence is initially null for all users. Group presence can be set via Group Presence APIs such as GroupPresence.set and GroupPresence.setIsJoinable.

Application Data

Application Version

The Application.getVersion API returns fixed values:
PropertyValue
currentVersionCode
1
currentVersion
“1.0”
latestVersionCode
0
latestVersion
””
releaseDate
1
size
””

Launch Details

The ApplicationLifecycle.getLaunchDetails API returns:
PropertyValue
launchType
NORMAL

User Age Category

UserAgeCategory().get() is a suspend call returning a UserAccountAgeCategory. In the sandbox it resolves to the adult category:
PropertyValue
ageCategory
AD

Challenges

All Challenges APIs make real GraphAPI calls when authenticated. There is no local test data for Challenges in the Spatial Simulator - all data is fetched from the backend. This requires logging in to use Challenges functionality.

Modifying test data

You can modify the test environment data using CLI commands:
  • Create new users using users.create_user command.
  • Create new products using iap.create_product command.
  • Block/unblock users using users.block_user/users.unblock_user commands.

Data persistence

  • All changes made to the test environment are persisted across sessions of Meta Spatial Simulator.
  • Data persists until the emulator is reset or the database is cleared.
  • Use the common.reset_data CLI command to return to the original default state.