Develop
Develop
Select your platform

Horizon Platform SDK on Meta Spatial Simulator - Spatial Simulator Sandbox Environment

Updated: Jan 8, 2026
The Horizon Platform SDK integration on Meta Spatial Simulator interacts with a local database that stores the state of the application and its users. The local database does not use real data. It has no connection to the production database. Horizon Platform SDK APIs do not make any network requests in Spatial Simulator, so they can be called offline.

Default state

The Spatial Simulator environment comes with a default state with pre-populated values meant to make testing Platform SDK features easier. 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\""
Known limitation: There is no way to reset the database to an empty state, only to reset it to its default data.

Users

The user logged into the Horizon Platform SDK has a user ID 084275158957381 and alias lancelot. The currently logged in user cannot be changed.
User IDDisplay NameOculus IDFriendBlockedNotes
939717494984112
Lord Blackwood
blackwood
Yes
No
 
084275158957381
Sir Lancelot
lancelot
N/A
N/A
Currently logged in 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. This allows you to test your billing integration using 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 will use data from the local database. No real transactions are made.
  • Fetching products: Querying product details will make a real Graph API call if the user is authenticated. If not authenticated, the call will fail.

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 logged in 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 GroupPresence APIs such as GroupPresence.set, GroupPresence.setIsJoinable, GroupPresence.setDestination, GroupPresence.setLobbySession, and GroupPresence.setMatchSession.

Application Data

Application Version

The Application.getVersion API returns hardcoded values:
PropertyValue
currentCode
1
currentName
“1.0”
latestCode
0
latestName
””
releaseDate
1
size
””

Launch Details

The ApplicationLifecycle.GetLaunchDetails API returns:
PropertyValue
launchType
NORMAL
The ApplicationLifecycle.LogDeeplinkResult API returns sample deeplink data:
PropertyValue
deeplinkMessage
“horizon://worlds/10039306392756518”
destinationApiName
“world_name”
launchSource
“DIRECT_DESTINATION”
launchType
“DEEPLINK”
trackingId
“1010”
users
List with 1 user (ID: “084275158957381”, Display Name: “SirLancelot”)

User Age Category

The UserAgeCategory.userAccountAgeCategory API returns the adult age category:
PropertyValue
ageCategory
AD

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.
  • Create new leaderboards using leaderboards.create_leaderboard command.
  • Block/unblock users using users.block_user/users.unblock_user commands.
  • Accept/decline invites using application.invite_accept/application.invite_decline 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.
Did you find this page helpful?