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
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
You mentioned your prefabs are in
If you use Unity’s
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
Make sure you are using
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:
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:
----------------------<@894251499113291776> Kapa.ai is still learning and improving, please let me know how I did by reacting below.
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
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
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?!