We are thrilled to announce the launch of the Unity Mixed Reality Multiplayer Tabletop Template! This template serves as a starting point for cross-platform mixed reality development, illustrating how to set up a project that is ready for a variety of multiplayer mixed reality (MR) use cases.
Similar to the Unity VR Multiplayer Template, the Unity MR Multiplayer Tabletop Template is packed with everything you need for networked interactions, voice chat, lobbies, and more. It also demonstrates how to implement passthrough and position digital content in the physical world to create immersive and engaging MR experiences. Some highlights of this template include:
Sample tabletop experiences including Chess, Slingshot and a physics play area
Passthrough implementation and positioning of play space in the physical world
Cross-platform implementation with OpenXR
Networked avatars and hands, including hand occlusion
Networked interactions via XRI Interaction Toolkit and Netcode for GameObjects
Voice communication via Vivox
Seamless connectivity to anyone, anywhere with Unity Multiplayer Services
This template is compatible with all Meta Quest devices, Android XR, and devices using the OpenXR runtime.
Get Started Today
Check out the quick start guide, and download the Unity MR Multiplayer Tabletop Template for Unity 6 from the Unity Hub.
If you’re looking to learn more about development for VR multiplayer experiences, check out the VR Multiplayer Template and the new guided video walkthrough on how to use the template to set up a VR multiplayer project.
Join the Discussion
We’d love to hear your feedback and see what you create with our template. Post in Discussions or join our Discord to share your projects, ask questions, and collaborate with fellow developers.
Please do share your feedback via our public roadmap where your input will help us improve and expand the template and other XR features in future updates.
How can I tell which version of the template i have installed?
After importing the template there is a file under Assets called DefaultNetworkPrefabs with many entries of which the first 3 are populated, there are a bunch of slots that say missing GameObject and then the last 2 are populated?
Having an issue where I create Table code by clicking on Host table, take the code to another machine and when I click on Enter Code and then type it in, I get Error: Lobby not found. Please try a new Lobby.
Suggestions on what to look at? @Joegre
Can’t build this using Single Pass Instanced rendering (start screen UI only appears in one eye and is all skewed. You can’t click on ‘Skip or Continue’). Changing to Multi-pass fixes the issue but that’s really not ideal.
Unity 6000.0.46, URP no changes made to the template, just building to PC VR
I believe there is a known issue with Single Pass Instanced and PCVR with the Meta-OpenXR package. Are you using Link (cable or air) and a Quest HMD by chance?
Once the table is created, does it show up in the created tables list?
Are you testing on multiple devices (i.e. multiple headsets)? There is also a known limitation where launching multiple instances on the same machine will fail authentication. You can pass in a command line argument to bypass that though.
We have seen some (rare) cases where the Relay/Lobby services fail to connect on some networks. It could possibly be a firewall issue and it might be worth us pinging the Multiplayer Services team. If you are able to access the logs you should get a more in depth log that would be helpful in narrowing down what is happening.
Hi Joe, thank you for the reply. I also posted on the Discord Multiplayer Lobby forum. I have no issues connecting 4 players in MultiPlayerPlayMode on one PC. I have more info but no resolution yet. I seem to have the same issue with VR MP template so it seem more likely to be ISP firewall related. Today I tried connecting one machine via my personal hot spot on my phone and one on my regular network. No joy. Will try both machines on hot spots later tonight. I can tell the request is getting to the Unity servers though as I can see activity in the dashboard.
You’re right, I am using a Quest3 on AirLink. The XR Plug-in Manager is set to OpenXR (the package is com.unity.xr.openxr) not the old Meta version of OpenXR. In fact I don’t even see the old OpenXR Feature Groups as being an option anymore…
What’s especially odd is that it’s not something I’ve experienced on any other project using the same configuration. Is there a ticket I can subscribe to, to get notification of when this bug will be fixed?
Well I should have known better. For some reason, I had it in my head that public meant publicly visible to anyone as long as it was the same code. My two different machines each had their own project created from the template. Different orgs and different projects
Makes sense now that it is only public to any connecting client of the same org and project. When I made a build and used that across two different machines - worked like magic duh!
I’ve installed the simple XR Multiplayer template and when I add the second player in the MP Play Mode it pops up an error about not being able to retrieve package information from the Package Manager. Cannot connect to Unity Package Manager local server. UnityEditor.EditorApplication:Internal_CAllUpdateFunctions()
Note that I did not make any changes to the template. Just following the tutorial
When I press Play it start and then immediately stops (as if I pressed stop) again. When I deactivate the 2nd player the single MainEditor player does work.
Any ideas how to solve the error and get the sample scene to run.