Normal

N

Normal

Join the community to ask questions about Normal and get answers from other members.

Join

🤝ask-a-question

💼jobs-and-opportunities

💾sample-code

🥂project-showcase

💭feature-request

✨normcore

💬chat

🚧wip-and-updates

Multiplayer crash on PS5

Hi, I'm having a big problem with the multiplayer project, I was talking to Max Weisel by email but after I sent him the project and the error logs I didn't get any more answers, I was wondering if someone could help me solve this problem

Is there an easy and fast way to check if user has no network connection?

Is there an easy and fast way to check if user has no network connection?

Is checking Realtime.clientID == 0 the best way to identify if I'm on offline mode?

I want to use Realtime API to identify if I'm on offline mode. The only way I see in the docs to do this is to check for Realtime.clientID == 0 is this correct? Is there other way to do this without custom code? Docs: https://normcore.io/documentation/room/offline-mode#things-to-know...

How to determine the cause of "RealtimeSet received delta update for non-existent key"

Recently we've been getting tons of error logs for "RealtimeSet received delta update for non-existent key". I assume this is because multiple clients are writing to the same object in a room that was destroyed, but is there an easier way to determine which object is causing the error?

Issues after updating Unity to version 2022

Hello! I'm working on a VR project in unity and have been using normcore to sync everything. I have been able to get custom model data flowing between users and everything seemed good, until I updated my unity version to be able to support some new shaders. Now I get errors when trying to access the RealtimeView Component in the editor and when trying to run the application. The in editor error is: TypeLoadException: Could not resolve type with token 010000a4 from typeref (expected class 'UnityEditor.Experimental.SceneManagement.PrefabStageUtility' in assembly 'UnityEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null') and the runtime error is:...

Client Connections

Is there a way to know when another client connects?

Is there a callback when *any* property of a model changes?

In my RealtimeComponent, I have a relatively big model with several properties, is there a way to get a callback when any property changes instead of creating a didChange callback to every property and subscribing/unsubscribing to it?

Custom Model Sync

how do i know when the latest values of a custom model is completely synced on load?

syncing animations

whats the best way to sync an animation, my setup is: an AI spawner spawns multiple AIs that move to the closest block and start destroying it, and im not quite sure on the best way to sync the destroying animation. also, when the ai is spawned, i made it so if you didnt create the room, the ai script gets disabled (this way, only the server owner manages the ai)...

How to optimize normcore?

We're looking to reduce the amount of bandwidth that we use. What are some good practices to reduce the amount of bandwidth being used? What are some good practices to reduce the cost of normcore for our use case?

realtimetransform and rigidbody

im getting this when switching scenes, it seems to still be looking for a rigid body with a realtime transform maybe, MissingReferenceException: The object of type 'Rigidbody' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. UnityEngine.Rigidbody.get_position () (at <51ffba59437e4f058f829821d2a9db18>:0) Normal.Realtime.RealtimeTransformRigidbody.SetModelFromRigidbody (Normal.Realtime.RealtimeTransformModel model) (at <1e560f460ca04c778a16074e4afc44a9>:0) Normal.Realtime.RealtimeTransformRigidbody.OnLocalModelWillWrite (Normal.Realtime.RealtimeTransformModel model) (at <1e560f460ca04c778a16074e4afc44a9>:0)...

how to sync multiple values in a model

how do i have one model script that syncs multiple values

What can I do if I have dependency between RealtimeProperty?

Lets say I have a model with two properties:
[RealtimeProperty(1, true, true)] private string _text;
[RealtimeProperty(2, true, true)] private float _duration;
[RealtimeProperty(1, true, true)] private string _text;
[RealtimeProperty(2, true, true)] private float _duration;
...

Difference between avatar.ownerIDInHierarchy, avatar.ownerIDSelf, and avatar.realtime.clientID?

I'm trying to keep track of the ID of the current client as clients leave and enter the room. I'm finding that avatar.owner.IDSelf always returns -1. avatar.ownerIDInHierachy seems to work but if someone leaves, and rejoins they get assigned to ID 0 even though the former client that had the ID of 1 also gets set to the ID of 0. This causes errors with my system that isn't expecting two clients to both have the ID of 0. avatar.realtime.clientID seems to work but never reassigns the ID's when someone leaves. For example if a room has two clients and client 0 leaves. Client 1 remains as ID 1 but once the client that left, rejoins the game. Their ID gets set to 0....

How can I get the remote ID that an avatar represents?

In the AvatarCreated function avatar.ownerIDSelf returns -1 and avatar.realtime.clientID returns the ID of the local realtime not the remote. I need the ID of the remote client that the avatar is representing.

Is there an ETA for the Room API?

Hi, I'd like to ask if there is an estimation about the release date of the Room API. Not knowing about the active rooms (or checking if a room is active, etc) is a bit making things harder 🥲 And also, is there a roadmap you can share with us (not too detailed of course)?

Is there a way to change ownership automatically when remote rigidbody is owned by another client?

I want ownership to change when an rigidbody owned by client a hits a rigidbody owned by client b. The object rigidbody by client b is automatically moving, not asleep. What is the best way to approach this?

character controller

if i have an xrorigin rig that moves with a character controller and if i disable and re-enable the controller will the avatar model lose track of it

Call DidChange event when value is the same

I basically want to trigger the ValueDidChange every time I assign model.value to something, even if that value is the same as before. For some context, I'm sending a string to all clients when a player scores and if he scores again the string is going to be the same, but I need the StringDidChange event to trigger on all clients to display who scored....

is the ReltimeView property 'preventOwnershipTakeover' synched between the clients?

Meaning, if clientA takes ownership and the sets the 'preventOwnershipTakeover' property to true - will client 'B' observe that property to be true on his end? If it is not synchronized and assuming we have a rigidbody with a RealtimeTransform component that clientA prevented ownership changes on - what would prevent client B from requesting ownership on that rigidbody (and immediately receiving it), only for it to be rolled back by the server. This process can happen again and again over multiple frames (as the rigidbody keeps colliding with clientB owned rigidbodies - creating an unnecessarily janky behavior of that rigidbody....
Next