Wonderland Engine VIVERSE Example
Integration example of VIVERSE Avatar SDK with Wonderland Cloud networking for multiplayer VR experiences.
Introduction
In November 2025, VIVERSE and the Wonderland Engine team collaborated to develop a plugin allowing developers to publish to VIVERSE from directly within the Wonderland Engine editor. In addition, we developed examples of using the VIVERSE Avatar and Account SDKs with Wonderland's multiplayer SDK.
This document is a copy of the Wonderland Engine document covering the plugin: https://github.com/WonderlandEngine/viverse-example/tree/main
Overview
This repository is a template project that demonstrates how to integrate the VIVERSE Avatar SDK with Wonderland Cloud networking. It provides a compact, production-minded workflow to:
Spawn and persist user data (name, avatar) via the VIVERSE Avatar SDK
Relay avatar + presence state to Wonderland Cloud for performant, medium-scale multiplayer sessions
Use spatial audio for immersive multiplayer experiences
Designed for quick iteration and easy publishing through the VIVERSE / Wonderland tooling.
Live Demo: https://worlds.viverse.com/k99xkYZ
Features
The example project includes the following key features:
VIVERSE Avatar SDK Integration: Login, avatar spawn, and user metadata management
Wonderland Cloud Networking: Client + server template for multiplayer functionality
VIVERSE CLI Plugin: Simple integration for publishing and previewing projects
Example Components: Pre-configured components showing where to place
appidand server pathSpatial Audio: Avatar position replication with spatial audio for medium-scale sessions
Project Structure
The repository contains the following directories and files:
js/- JavaScript/TypeScript source filesmodels/- 3D model assetsplugins/viverse-publish-plugin/- VIVERSE CLI plugin for publishingserver/- Wonderland Cloud server packageshaders/- Custom shader filesstatic/- Static assetsapp.js- Main application entry pointpackage.json- Node.js dependencies and scriptstsconfig.json- TypeScript configurationviversecli.wlp- VIVERSE CLI configuration file
Quick Setup (Editor)
Scene Configuration
Networking Setup (Wonderland Cloud)
Publish & Preview
Guest Preview Testing
From the VIVERSE Creator page, use the Guest Preview link. Share this link with others for testing. Test multiplayer functionality with multiple devices/accounts, verify that avatars appear correctly for all users, and test spatial audio and networking in production-like conditions.
Component Configuration Details
VIVERSE Provider Component
The Viverse Provider component (or viverse-provider-component) handles authentication and avatar management:
App ID: Your VIVERSE application identifier (required)
Avatar Spawning: Automatically spawns user avatars based on VIVERSE account
User Metadata: Retrieves and stores user name and avatar data
Simple Example Client Component
The simple-example-client component manages networking:
Server Path: WebSocket URL to your Wonderland Cloud server (required)
Connection Management: Handles connection/disconnection events
Avatar Replication: Syncs avatar positions and states across clients
Presence State: Manages user presence in the multiplayer session
Troubleshooting
Avatars Not Appearing
Problem: Avatars don't spawn or appear in the scene.
Solutions:
Verify the App ID is set correctly in both:
The VIVERSE Publish Plugin
The
VrmDynamic -> Viverse Providercomponent
Check that the App ID matches the one from VIVERSE Studio
Ensure you're logged in with a valid VIVERSE account
Check browser console (F12) for authentication errors
Verify CORS settings in VIVERSE Studio if using custom domains
Networking Failures
Problem: Multiplayer connectivity issues or connection errors.
Solutions:
Re-check that the uploaded server package matches the server entry on
cloud.wonderland.devConfirm the server path is pasted correctly in the
simple-example-clientcomponentVerify the server path format (should start with
wss://)Check that the server is running and accessible
Review browser console (F12) for WebSocket connection errors
Ensure firewall/network settings allow WebSocket connections
Preview URL Issues
Problem: Preview URL doesn't work or shows errors.
Solutions:
Use the plugin Preview URL to test cross-device connectivity before submitting
Check that the build was published successfully
Verify all required assets are included in the build
Clear browser cache and try again
Test in different browsers (Chrome, Firefox, Edge)
Browser Console Errors
Problem: Errors appear in browser console (F12).
Solutions:
Check browser console logs for helpful client-side errors
Common issues include:
Auth errors: Verify App ID and VIVERSE credentials
CORS errors: Check VIVERSE Studio CORS settings
Network errors: Verify server path and connectivity
Look for specific error messages and error codes
Check network tab for failed requests
Server Upload Issues
Problem: Server package upload fails or server doesn't deploy.
Solutions:
Verify the server package file exists:
server/wonderland-cloud-example-simple-1.0.0.tgzCheck file size limits on Wonderland Cloud
Ensure the package is not corrupted
Try re-uploading the server package
Check Wonderland Cloud dashboard for server status
Build and Publishing Issues
Problem: Build fails or publishing doesn't complete.
Solutions:
Ensure all required dependencies are installed
Check that all scene files are saved
Verify project structure matches expected format
Review build logs for specific errors
Try rebuilding the project from scratch
Check Wonderland Editor console for errors
Additional Resources
Documentation Links
Wonderland Engine Documentation: https://wonderlandengine.com/
VIVERSE Documentation: https://docs.viverse.com/
Wonderland Cloud: https://cloud.wonderland.dev/
Support
If you need help setting up this template for your project:
Reach out via Discord (Wonderland Engine community)
Check the GitHub repository for issues and discussions
Review the example code in the repository for implementation details
Contributing
Pull requests are welcome for improvements to this template: https://github.com/WonderlandEngine/viverse-example/tree/main
Keep changes small and well-documented
Open an issue for feature requests or bugs
Follow the existing code style and structure
Technical Details
Project Dependencies
The project uses the following key technologies:
Wonderland Engine: Web-based 3D engine for VR/AR experiences
VIVERSE Avatar SDK: Avatar system and user authentication
Wonderland Cloud: Multiplayer networking infrastructure
TypeScript/JavaScript: Application logic and components
File Structure Details
js/- Contains component scripts and application logicmodels/- 3D models and avatar assetsserver/- Wonderland Cloud server implementationplugins/viverse-publish-plugin/- Editor integration for publishingstatic/- Static web assets (images, fonts, etc.)shaders/- Custom shader code for rendering
Build Process
Development: Edit scenes and components in Wonderland Editor
Configuration: Set App ID and server path in components
Publishing: Use VIVERSE CLI plugin to build and upload
Deployment: Preview and submit through VIVERSE Creator
Multiplayer Architecture
The example uses a client-server architecture:
Client: Wonderland Engine application running in browser
Server: Wonderland Cloud server handling networking
Communication: WebSocket connection for real-time updates
State Sync: Avatar positions and presence state synchronized across clients
Last updated
Was this helpful?