godseye1311
godseye13112mo ago

Syncing Objects in Normcore

Hey guyz, I have been working on a personal project for practice and stuff. I got advised that using normcore initially would be quite easy. So, I thought to try it and it was surely amazing. Right now, I am facing a problem of syncing the objects over network using normcore. Like I am able to spawn the objects but they are only being viewed locally, not on the network. Although, I am able to listen to other player's voice but I am not able to show them objects which I am spawning through a particular script. The prefabs which I am spawning are also present in Assets\Normal\Resources folder. Also, I haven't added any restrictions related to ownership of objects, I kept the instantiating options to be "DEFAULT", hope that's not the case. Still I am facing that problem. If you need any more information please let me know, and it would be a great help if you have any lead for this. Thank you in advance for your support till now.
5 Replies
kapa.ai
kapa.ai2mo ago
Hi @godseye1311. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- It sounds like you’re able to spawn objects locally, but they aren’t appearing for other players in your Normcore room. This is a common issue, and it’s usually related to how the objects are instantiated. Key things to check: 1. Use Realtime.Instantiate, not Unity’s Instantiate
Normcore requires you to use Realtime.Instantiate() to spawn networked objects. If you use Unity’s standard Instantiate(), the object will only exist locally and won’t be synchronized across the network. Here’s the correct way:
GameObject myObject = Realtime.Instantiate("My Object", ownedByClient: true);

GameObject myObject = Realtime.Instantiate("My Object", ownedByClient: true);

Make sure "My Object" matches the prefab name in your Resources folder (no file extension) and that the prefab has a RealtimeView on its root GameObject. Using Realtime.Instantiate() ensures the object is created on all clients and all RealtimeComponents are properly connected for synchronization Realtime API, Ownership + Lifetime Flags. 2. Prefab must be in a Resources folder and have a RealtimeView
You mentioned your prefabs are in Assets\Normal\Resources, which is correct. Double-check that the prefab’s root GameObject has a RealtimeView component attached. This is required for Normcore to track and sync the object Realtime API. 3. Do not use Unity’s Instantiate or GameObject.Instantiate
If you use Unity’s Instantiate() or GameObject.Instantiate(), the object will not be networked, and other clients will not see it. Always use Realtime.Instantiate() for networked objects Common Questions. 4. No need to set ownership unless you want to restrict who can modify the object
By default, if you don’t specify ownership, any client can modify the object. Ownership only matters if you want to restrict updates to a specific client. For basic syncing, the default is fine. 5. Check for errors in the console
If there are errors about missing models or components, it may indicate the prefab is not set up correctly (e.g., missing RealtimeView or not in the Resources folder). Summary:
Make sure you are using Realtime.Instantiate() to spawn your objects, and that your prefabs are set up with a RealtimeView and are located in a Resources folder. This should resolve the issue of objects not syncing across the network. If you’re still having trouble, double-check the prefab name and ensure there are no errors in the Unity console. If you need to see a code example or have more details about your script, feel free to share them! ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
kapa.ai
kapa.ai2mo ago
<@894251499113291776> Kapa.ai is still learning and improving, please let me know how I did by reacting below.
godseye1311
godseye1311OP2mo ago
Yes I have been using Realtime.Instantiate in order to spawn the objects Also, another problem which I am facing is that when I the face of my firend's headset it has an offset in horizontal plane. I don't know why this happens?! If you guyz have any lead please help me
Mechabit
Mechabit5w ago
have you got a Realtime Transform on the object this can be fixed by adding a child object to the head tracking point with an offset and drop that object into the head slot in avatar manager
godseye1311
godseye1311OP5w ago
Yes I have Realtime Transform on the object since I am also moving them after spawning them even in the default prefab provided by you guyz?! Although I will give it a try Is there something which I am doing or any other information is required?!

Did you find this page helpful?