Skip to content

Event Reference

You can subscribe to events emitted by VRTI. Please see Subscribing to events for more information on how to subscribe to events.

Some events will be emitted in response to commands you issue. You do not have to subscribe to these events to receive them as a responses. Which commands will send response events is documented in the Command Reference.

TreadmillStateUpdated

Emitted when the treadmill state changes.

Event Payload
{
"connected": boolean, // Whether a treadmill is currently connected
"running": boolean, // If the treadmill's belt is currently running
"currentSpeed": number, // The treadmill's current speed in km/h
"targetSpeed": number, // The set target speed in km/h
"userSpeedLimit": number, // The user configured maximum speed limit in km/h
"stepsSupported": boolean, // Whether the treadmill supports step counting
"distanceSupported": boolean, // Whether the treadmill supports distance tracking
"deviceSpeedRange": {
"min": number, // The minimum speed of the treadmill in km/h
"max": number, // The maximum speed of the treadmill in km/h
"step": number // The minimum increment of the treadmill speed in km/h
}
}

AutoWalkSettingsUpdated

Emitted when the auto walk settings change.

Event Payload
{
"enabled": boolean, // Whether the auto walk feature is enabled
"speedMultiplier": number, // The current speed multiplier of the auto walk feature
"inputMode": 'VRChatOSC' | 'XInput', // The mode of input used by the auto walk feature
"yawLock": boolean, // Whether the yaw lock is active
"speedOverride": number | null, // Speed override value (0.0-1.0), or null if disabled
"speedOffset": number // Temporary speed offset (-1.0 to 1.0)
}

AutoWalkSpeedUpdated

Emitted when the auto walk speed sent to the game changes.

Event Payload
{
"speed": number // The final calculated auto walk speed (0.0-1.0) being sent to the game
}

YawLockCentered

Emitted when the yaw lock is centered.

StatisticsUpdated

Emitted when the currently tracked statistics for the active session change.

Event Payload
{
"steps": number, // The number of steps taken in the current session
"distance": number, // The distance covered in kilometers in the current session
"time": number // The active walking time in seconds in the current session
}

HistoricMonthlyStatsResult

Emitted in response to the GetHistoricMonthlyStats command.

Contains monthly aggregated statistics for the requested date range.

Event Payload
{
"stats": [
{
"month": string, // Month in YYYY-MM format (e.g., "2024-01")
"activeTimeMs": number, // Total active walking time for the month in milliseconds
"steps": number, // Total steps taken in the month
"distance": number // Total distance walked in the month in meters
}
]
}

HistoricDailyStatsResult

Emitted in response to the GetHistoricDailyStats command.

Contains daily aggregated statistics for the requested date range.

Event Payload
{
"stats": [
{
"date": string, // Date in YYYY-MM-DD format (e.g., "2024-01-15")
"activeTimeMs": number, // Total active walking time for the day in milliseconds
"steps": number, // Total steps taken on the day
"distance": number // Total distance walked on the day in meters
}
]
}

HistoricSessionsResult

Emitted in response to the GetHistoricSessions command.

Contains all historic sessions for the requested date range, sorted by start time.

Event Payload
{
"sessions": [
{
"id": string, // Unique session identifier (UUID)
"date": string, // Session start date in local timezone (YYYY-MM-DD format)
"startTime": number, // Session start timestamp (Unix milliseconds)
"endTime": number, // Session end timestamp (Unix milliseconds)
"activeTimeMs": number, // Total active walking time in milliseconds
"distance": number, // Total distance walked in meters
"steps": number // Total steps taken
}
]
}