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

Trying to understand ownership of transforms vs views

Conceptually what does it mean if an object has both a RealtimeView and a RealtimeTransform, but they're owned by different clients? eg if I own the transform and no one owns the View, or I own the transform but someone else owns the view?

Dual User Grabbing

I have a relatively simple setup right now where i have a game object that has an on-selected event hook, when it is grabbed by someone, that person requests ownership. This works mostly fine except in cases where one person is already grabbing it, then when a second person grabs it both people seem to have ownership, and true ownership is only seen when one of them releases the object

Change ownership when RealtimeView owner disconnects?

I have a GameMode manager that is only controllable locally. It works until the host leaves. How would I go about randomly assigning an owner to a realtime view when it's owner leaves the game?

Audio Bandwidth Optimization

How would I reduce audio bandwidth? What are the parameters I can adjust. Mic sample rate? Opus compression settings?

Player Joined Room Callbacks

I'm looking to leverage a callback which gets raised when a player connects to a room which calls on all clients. I use the avatar manager callbacks for this but in this context there is no avatar manager. Are there any realtime callbacks for this?

Order in which player is brought up to speed with realtime models.

When a player connects to a session. I have a setup where the realtime avatar manager generates them a player prefab. But I was wondering if by the time their player avatar is created, are they already up to speed with the sync data in the models? is there a distinct order of operations that occurs regarding the model realtime properties and the player connecting to the room.

realtime.clientID

So i'm using the client id to work out an indexing system for players and am currently looking at reconnecting players who disconnect. I notice when players reconnect to a room. Their client ID stays the same as their previous connection. This is actually very helpful but I want to understand how the client ID works and if it will reliably stay consistent. I'm using this for a webgl project so I need to know this will be consistent behaviour.

Did Change Events for players joining after model has been changed.

So lets say I have a Realtime component with a model. I change some values on that model and the RPC goes off to notify players that a model value has change. Now lets say a new player joins the room after the rpcs have been through current players. Do they just get a single callback to bring them up to date with the current model value or do they receive multiple callbacks for every time the model changed? or None at all.

How to make my voice travel further for all players?

1. "How does Normcore's voice distance falloff work? When I modify the AudioSource component on my local avatar (like changing maxDistance or rolloffMode), does this affect how other players hear my voice, or only how I capture my own voice?" This is the core issue - you need to understand whether modifying your local AudioSource affects voice transmission or just local capture. 2. "Does RealtimeAvatarVoice have built-in properties or methods for controlling voice distance/range? Can I use this component to implement global voice modes instead of modifying AudioSource components directly?" This explores if there's a proper Normcore API for voice control rather than hacking Unity AudioSource settings. 3. "What's the recommended way to implement global voice for moderators in Normcore? Should I modify settings on the sending client, receiving clients, or use a different approach entirely?"...

Gorilla tag fan game head movement

I have a live gorilla tag fan game that uses normcore, and was wondering if you guys at normal knew how to add head movement. Or could make some. Thanks! That game is on meta quest store and it's called Puchin @Max

Random lobby seed

how do I make a room seed that is set when a person joins the lobby and is synced to everyone?

Getting rooms

I'm looking to move over to Normcore from Photon Fusion 2, however I need the ability to list currently available rooms. Additionally I need to store some information per-room (eg. an associated level ID). Is this something that's possible with Normcore or something I could realistically add?...

isOwnedLocallySelf and isOwnedRemotelySelf seem to be false?

I have a MonoBehaviour hook itself up to Realtime's didConnectToRoom event, then when that event is fired it uses Realtime.Instantiate to create a remote character ```cs private void OnConnectedToRoom(Realtime realtime) {...

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....

I am having issues with PreventOwnershipTakeover from being respected.

I am having issues with PreventOwnershipTakeover from being respected. I have an object called HostCore which is intended to be used as a way to have HostActions be run once, and when one person who is the host "leaves" then a new host is determined. Currently the PreventOwnershipTakeover value is true (using realtime view, but I have tried this on the custom model as well) but when any other user RequestsOwnership, it is granted. I am wondering if this is moreso due to how my scene is set up...

What is the order of OnChangedEvent vs OnRealtimeModelReplaced for clients joining room?

I’m having inconsistent behavior in a class that relies on OnModelReplaced functions happening before any OnChangedEvents fire. When the remote client is already in the room, this seems to consistently work, but when the remote client is joining with the existing object already in there it seems the OnChangedEvent is firing before the Replaced function. Is there any recommended workaround or a checkbox maybe I’m missing?

Study Purpose

Hey I am an University student and I want to conduct a study in a vr environment with two persons. Am I allowed to use your service for this purpose and if yes what costs would incurre?

WebGl

Is there a guide somehwere on how to setup for WebGL? We're having issues getting things running in webgl. We're on unity 6. Theres mention of a special plugin we potentially need to get

Disabling registered realtime object

If I've spawned a realtime object that has successfully registered with the datastore and I want to disable that object just for let's say the local client for a time (maybe for area of interest or something like that), if I were to reenable that object would it resync to the current data store state or just break? The edge case I can think of is if the object was destroyed by another client that probably the destroy call wouldn't be synced on reenable so you'd have some phantom local object on one client now, but I could be wrong....

Model spawned under avatar not syncing properly

Hi, quick question. I'm developing an inventory system. The inventory spawns as a child of the player Avatar. The current test item is a megaphone, which has a realtime model to sync some logic. The issue is the megaphone model works fine when it is in the world, but does not sync when it is spawned with the avatar. Any ideas?