From bbc5e4a07aa88c015333a4227fc44ddb7cac73d0 Mon Sep 17 00:00:00 2001 From: MrPiglr Date: Sat, 10 Jan 2026 21:11:03 +0000 Subject: [PATCH] feat: add VRChat and RecRoom platform integrations - Create VRChat integration docs with Udon C# examples - Create RecRoom integration docs with Circuits visual scripting - Add VRChat and RecRoom to homepage cross-platform claims - Add routes for /docs/integrations/vrchat and /docs/integrations/recroom - Update DocsIntegrations page with platform showcase cards - Include authentication flows, code examples, and best practices - Cover 30K+ VRChat users and 3M+ RecRoom MAU Closes the gap in cross-platform social VR support --- client/App.tsx | 10 + client/pages/Index.tsx | 4 +- client/pages/docs/DocsIntegrations.tsx | 90 ++++ client/pages/docs/integrations/RecRoom.tsx | 467 +++++++++++++++++++++ client/pages/docs/integrations/VRChat.tsx | 400 ++++++++++++++++++ 5 files changed, 969 insertions(+), 2 deletions(-) create mode 100644 client/pages/docs/integrations/RecRoom.tsx create mode 100644 client/pages/docs/integrations/VRChat.tsx diff --git a/client/App.tsx b/client/App.tsx index 3bdde8fc..86c4a55c 100644 --- a/client/App.tsx +++ b/client/App.tsx @@ -44,6 +44,8 @@ import DocsApiReference from "./pages/docs/DocsApiReference"; import DocsCli from "./pages/docs/DocsCli"; import DocsExamples from "./pages/docs/DocsExamples"; import DocsIntegrations from "./pages/docs/DocsIntegrations"; +import VRChatIntegration from "./pages/docs/integrations/VRChat"; +import RecRoomIntegration from "./pages/docs/integrations/RecRoom"; import DocsCurriculum from "./pages/docs/DocsCurriculum"; import DocsCurriculumEthos from "./pages/docs/DocsCurriculumEthos"; import EthosGuild from "./pages/community/EthosGuild"; @@ -616,6 +618,14 @@ const App = () => ( path="integrations" element={} /> + } + /> + } + /> } /> } /> diff --git a/client/pages/Index.tsx b/client/pages/Index.tsx index 264c0ffd..7dcbb378 100644 --- a/client/pages/Index.tsx +++ b/client/pages/Index.tsx @@ -85,7 +85,7 @@ const features = [ { icon: Layers, title: "Cross-Platform Integration Layer", - description: "One unified API to build across Roblox, Minecraft, Meta Horizon, Fortnite, Zepeto, and more—no more managing separate platform SDKs or gated gardens", + description: "One unified API to build across Roblox, VRChat, RecRoom, Minecraft, Meta Horizon, Fortnite, and Zepeto—no more managing separate platform SDKs or gated gardens", }, { icon: Code2, @@ -110,7 +110,7 @@ const features = [ { icon: Rocket, title: "Ship Everywhere, Fast", - description: "150+ cross-platform code examples, pre-built templates, OAuth integration, Supabase backend, and one-command deployment to every metaverse", + description: "150+ cross-platform code examples, pre-built templates for VRChat, RecRoom, Roblox, and more—OAuth integration, Supabase backend, and one-command deployment to every metaverse", }, ]; diff --git a/client/pages/docs/DocsIntegrations.tsx b/client/pages/docs/DocsIntegrations.tsx index f31fa6fc..2171bbcc 100644 --- a/client/pages/docs/DocsIntegrations.tsx +++ b/client/pages/docs/DocsIntegrations.tsx @@ -28,6 +28,9 @@ import { Palette, AlertTriangle, FileText, + Headset, + Gamepad2, + Boxes, } from "lucide-react"; const connectorFields = [ @@ -107,6 +110,93 @@ export default function DocsIntegrations() {

+ {/* Platform Integrations Showcase */} +
+
+ +

+ Platform Integrations +

+
+

+ Deploy your games and apps across multiple platforms using AeThex's unified API. +

+ +
+ + + + + VRChat + + + + + Build immersive VR worlds with Udon scripting and cross-platform authentication + +
+ Unity + Udon C# + VR +
+ +
+
+ + + + + + RecRoom + + + + + Create social games using Circuits visual scripting for VR and mobile + +
+ Circuits + VR + Mobile + Social +
+ +
+
+ + + + + + More Platforms + + + + + Roblox, Fortnite, Minecraft, Unity, Unreal, and more coming soon + +
+ Roblox + Unity + Unreal +
+ +
+
+
+
+
diff --git a/client/pages/docs/integrations/RecRoom.tsx b/client/pages/docs/integrations/RecRoom.tsx new file mode 100644 index 00000000..3439d6c3 --- /dev/null +++ b/client/pages/docs/integrations/RecRoom.tsx @@ -0,0 +1,467 @@ +import { Badge } from "@/components/ui/badge"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { Gamepad2, Code2, Rocket, ExternalLink, CheckCircle2, AlertTriangle, Package } from "lucide-react"; +import CodeBlock from "@/components/dev-platform/CodeBlock"; + +export default function RecRoomIntegration() { + return ( +
+
+ + + RecRoom Integration + +

+ Build RecRoom Experiences with AeThex +

+

+ Create cross-platform social games for RecRoom's 3M+ monthly active users. Use AeThex's unified API + with RecRoom Circuits for visual scripting, data persistence, and multi-platform deployment. +

+
+ + {/* Quick Stats */} +
+ + +
3M+
+
Monthly Active Users
+
+
+ + +
12M+
+
Created Rooms
+
+
+ + +
VR + Mobile
+
Cross-Platform
+
+
+
+ + {/* Features */} +
+

What You Can Build

+
+ + + + + Persistent Game State + + + + Save player inventory, room configurations, and game progress that persists across VR and mobile sessions + + + + + + + + Unified Leaderboards + + + + Track scores across RecRoom, Roblox, and web platforms with AeThex's cross-platform leaderboard API + + + + + + + + Circuit Automation + + + + Connect RecRoom Circuits to AeThex webhooks for real-time events, triggers, and automated game logic + + + + + + + + Social Features + + + + Link RecRoom profiles to AeThex Passport for friend lists, parties, and social features across platforms + + +
+
+ + {/* Quick Start */} +
+

+ + Quick Start Guide +

+ + + + 1. Install AeThex Circuits Plugin + Add AeThex API chips to your RecRoom Circuits palette + + +

+ In RecRoom's Maker Pen, search for AeThex in the + Circuits V2 palette to find pre-built API chips. +

+
+

Available Chips:

+
    +
  • AeThex API Call - Make HTTP requests to AeThex endpoints
  • +
  • AeThex Auth - Authenticate RecRoom players
  • +
  • AeThex Save Data - Persist player data
  • +
  • AeThex Leaderboard - Fetch/update leaderboard scores
  • +
+
+
+
+ + + + 2. Configure API Credentials + Get your API key from the AeThex Developer Dashboard + + +
    +
  1. + 1. + Visit AeThex Developer Dashboard +
  2. +
  3. + 2. + Create new API key with recroom:read and recroom:write scopes +
  4. +
  5. + 3. + Copy API key to your RecRoom room's configuration chip +
  6. +
+ +
+

+ + Security: Never display your API key in-room. Use the AeThex Config chip which stores credentials securely. +

+
+
+
+ + + + 3. Build Your First Circuit + Create a persistent leaderboard that syncs across platforms + + +

+ Connect the following chips in RecRoom Circuits V2: +

+ +
+
+
Button
+
+
AeThex Auth
+
+
+
AeThex Auth
+
+
Player ID
+
+
+
Player ID
+
+
Get Score
+
+
+
Get Score
+
+
Text Screen
+
+
+ +

+ This circuit fetches a player's score from AeThex when they press a button, displaying it on a text screen. + Scores are shared across RecRoom, Roblox, VRChat, and web platforms. +

+
+
+
+ + {/* Code Examples */} +
+

+ + API Integration Examples +

+ + + + Save Player Progress + Persist inventory and game state across sessions + + + { + const { playerId, inventory, level, checkpoint } = req.body; + + // Save to AeThex backend + await aethex.users.update(playerId, { + recroom_inventory: inventory, + recroom_level: level, + recroom_checkpoint: checkpoint, + last_played_recroom: new Date().toISOString() + }); + + res.json({ success: true, saved_at: new Date() }); +}); + +// Load player progress when they join +app.get('/api/recroom/load-progress/:playerId', async (req, res) => { + const { playerId } = req.params; + + const userData = await aethex.users.get(playerId); + + res.json({ + inventory: userData.recroom_inventory || [], + level: userData.recroom_level || 1, + checkpoint: userData.recroom_checkpoint || 'start' + }); +});`} + language="javascript" + showLineNumbers={true} + /> + + + + + + Cross-Platform Leaderboard + Update scores that sync across RecRoom, Roblox, and web + + + entry.userId === playerId) + 1, + topPlayers: leaderboard + }); + + } catch (error) { + res.status(500).json({ error: error.message }); + } +}`} + language="typescript" + showLineNumbers={true} + /> + + +
+ + {/* Authentication Flow */} +
+

Player Authentication

+

+ Link RecRoom players to AeThex Passport for cross-platform identity. +

+ + + + 3-Step Auth Flow + + +
+
+
1
+
+

Player Enters Room

+

Use RecRoom Circuits to detect player join event

+
+
+ +
+
2
+
+

Generate Auth Code

+

+ AeThex API Call chip requests 6-digit code, displays it on a text board in-room +

+ + POST /api/auth/generate-code
+ → Returns: {`{ code: "ABC123", expires: "2026-01-10T21:00:00Z" }`} +
+
+
+ +
+
3
+
+

Player Links Account

+

+ Player visits aethex.dev/link, enters code, + RecRoom receives webhook with Passport ID +

+
+
+
+
+
+
+ + {/* Best Practices */} +
+

+ + Best Practices & Limitations +

+ +
+ + + RecRoom Circuits Limitations + + +

No native HTTP chips: Use AeThex middleware webhooks instead of direct API calls

+

Response delays: Webhook roundtrips take 1-3 seconds, design UX accordingly

+

Circuit complexity: Max 200 chips per room, optimize with cloud functions

+

Mobile performance: Keep API payloads under 50KB for mobile players

+
+
+ + + + Performance Optimization + + +

Cache results: Store API responses in room variables for 5-10 minutes

+

Batch operations: Group multiple player updates into single API call

+

Lazy loading: Only fetch data when players interact with features

+

Offline mode: Implement fallback gameplay when webhooks fail

+
+
+
+
+ + {/* Resources */} +
+

+ + Resources & Examples +

+ + +
+ + {/* Next Steps */} + + +

Ready to Build?

+

+ Start building cross-platform social games with AeThex. Deploy to RecRoom, VRChat, + Roblox, and web simultaneously with one unified API. +

+ +
+
+
+ ); +} diff --git a/client/pages/docs/integrations/VRChat.tsx b/client/pages/docs/integrations/VRChat.tsx new file mode 100644 index 00000000..73e60d30 --- /dev/null +++ b/client/pages/docs/integrations/VRChat.tsx @@ -0,0 +1,400 @@ +import { Badge } from "@/components/ui/badge"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { Button } from "@/components/ui/button"; +import { Headset, Code2, Rocket, ExternalLink, CheckCircle2, AlertTriangle, Package } from "lucide-react"; +import CodeBlock from "@/components/dev-platform/CodeBlock"; + +export default function VRChatIntegration() { + return ( +
+
+ + + VRChat Integration + +

+ Build VRChat Worlds with AeThex +

+

+ Deploy interactive VR experiences to VRChat's 30K+ concurrent user platform using AeThex's unified API. + Leverage Udon scripting integration, cross-platform authentication, and real-time data sync. +

+
+ + {/* Quick Stats */} +
+ + +
30K+
+
Concurrent Users
+
+
+ + +
250K+
+
Published Worlds
+
+
+ + +
C#
+
Udon Programming
+
+
+
+ + {/* Features */} +
+

What You Can Build

+
+ + + + + Persistent World Data + + + + Store player progress, leaderboards, and world state in AeThex backend with automatic sync across sessions + + + + + + + + Cross-Platform Auth + + + + Link VRChat users to AeThex Passport for unified identity across Roblox, Fortnite, and web platforms + + + + + + + + Real-Time Events + + + + Trigger world events based on API data - sync game state, achievements, or live leaderboards in real-time + + + + + + + + Asset Pipeline + + + + Upload and manage VRChat assets through AeThex API, with automatic versioning and CDN distribution + + +
+
+ + {/* Quick Start */} +
+

+ + Quick Start Guide +

+ + + + 1. Install AeThex Unity SDK + Add the AeThex package to your VRChat Unity project + + + + + + + + + 2. Configure API Credentials + Get your API key from the AeThex Developer Dashboard + + + + + + + + + 3. Create Your First Udon Script + Build a persistent leaderboard that syncs across VRChat sessions + + + ().GetClient(); + } + + public override void OnPlayerJoined(VRCPlayerApi player) + { + // Fetch player's AeThex profile + string playerId = player.displayName; + + aethexClient.GetUserProfile(playerId).Then(profile => + { + Debug.Log($"Player {profile.username} joined with score: {profile.score}"); + UpdateLeaderboard(profile); + }); + } + + public void OnPlayerScored(VRCPlayerApi player, int points) + { + // Update score in AeThex backend + aethexClient.UpdateUserScore(player.displayName, points).Then(() => + { + Debug.Log($"Score updated: +{points} points"); + }); + } + + private void UpdateLeaderboard(UserProfile profile) + { + // Update VRChat UI with leaderboard data + // This syncs across all players in the world + } +}`} + language="csharp" + showLineNumbers={true} + /> + + +
+ + {/* Authentication Flow */} +
+

Cross-Platform Authentication

+

+ Link VRChat players to their AeThex Passport for unified identity across all platforms. +

+ + + + Authentication Flow + + +
    +
  1. + 1. + Player joins VRChat world and interacts with authentication panel +
  2. +
  3. + 2. + World displays unique 6-digit code from AeThex API +
  4. +
  5. + 3. + Player visits aethex.dev/link and enters code +
  6. +
  7. + 4. + VRChat world receives webhook with linked Passport data +
  8. +
  9. + 5. + Player's VRChat profile now syncs with Roblox, Fortnite, web accounts +
  10. +
+ + + { + // Display 6-digit code to player in-world + authCodeText.text = $"Code: {response.code}"; + Debug.Log($"Player should visit: aethex.dev/link?code={response.code}"); + + // Poll for authentication completion + StartCoroutine(PollAuthStatus(response.code)); + }); +} + +private IEnumerator PollAuthStatus(string code) +{ + while (true) + { + yield return new WaitForSeconds(2f); + + var status = await aethexClient.CheckAuthStatus(code); + if (status.authenticated) + { + Debug.Log($"Player linked! Passport ID: {status.passportId}"); + OnPlayerAuthenticated(status.passportId); + break; + } + } +}`} + language="csharp" + showLineNumbers={true} + /> +
+
+
+ + {/* Best Practices */} +
+

+ + Best Practices & Limitations +

+ +
+ + + VRChat Limitations + + +

No direct HTTP requests: Use AeThex SDK which handles async via Unity coroutines

+

Udon C# restrictions: No threading, limited async/await support

+

Rate limits: Max 100 API calls per world per minute

+

Data size: Keep API responses under 100KB for optimal performance

+
+
+ + + + Performance Tips + + +

Cache data: Store frequently accessed data locally, refresh every 5 minutes

+

Batch requests: Use bulk endpoints to fetch multiple players at once

+

Lazy load: Only fetch data when players interact with features

+

Fallback mode: Implement offline mode for when API is unavailable

+
+
+
+
+ + {/* Resources */} +
+

+ + Resources & Examples +

+ + +
+ + {/* Next Steps */} + + +

Ready to Build?

+

+ Start building cross-platform VR experiences with AeThex. Deploy to VRChat, RecRoom, + and web simultaneously with one unified API. +

+ +
+
+
+ ); +}