kapa.ai
NNormal
•Created by mindgeek on 5/9/2025 in #🤝ask-a-question
Plugin Mismatch Error on 2.15.4
----------------------
I'm sorry, but the knowledge sources do not contain specific information about a "plugin mismatch error" in Normcore version 2.15.4 or 2.15.3, nor do they detail cross-platform (WebGL ↔ Android) plugin compatibility issues for these versions. The documentation does mention that Normcore WebGL support is in alpha and that you should use the correct preview package version for WebGL builds, but it does not address plugin mismatch errors or provide troubleshooting steps for this scenario.
If you are experiencing a plugin mismatch error after updating, I recommend double-checking that both your WebGL and Android builds are using the exact same Normcore package version, including any alpha or preview tags required for WebGL (e.g.,
3.0.0-webgl-alpha.X
for WebGL projects). If the issue persists, it may be a bug or a versioning issue not covered in the documentation, and reaching out to the Normcore team or community for direct support would be the best next step.
For reference on WebGL support and known issues, see the Normcore WebGL documentation.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------6 replies
NNormal
•Created by mindgeek on 5/9/2025 in #🤝ask-a-question
Plugin Mismatch Error on 2.15.4
Hi @mindgeek. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
6 replies
NNormal
•Created by rogan2528 on 5/8/2025 in #🤝ask-a-question
When is it safe to retrieve the AudioSource from a peer?
38 replies
NNormal
•Created by rogan2528 on 5/8/2025 in #🤝ask-a-question
When is it safe to retrieve the AudioSource from a peer?
----------------------
I'm sorry, but the knowledge sources do not contain specific information about the voiceData event of the RealtimeAvatarVoice component, its expected behavior, or troubleshooting steps if it is not being called. The documentation does confirm that RealtimeAvatarVoice handles audio streaming and playback, and that you can access the audio via the AudioSource component, but it does not mention the voiceData event or provide details about its usage or requirements Realtime XR Voice Chat.
If you are hearing audio and seeing the meters respond, it suggests that the audio pipeline is functioning correctly, but without more information in the documentation, I cannot provide a definitive answer as to why the voiceData event is not firing.
For further assistance, you may want to reach out to the Normcore community or support channels.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------
38 replies
NNormal
•Created by rogan2528 on 5/8/2025 in #🤝ask-a-question
When is it safe to retrieve the AudioSource from a peer?
Let me check the knowledge base for you again. One moment! :books:
38 replies
NNormal
•Created by rogan2528 on 5/8/2025 in #🤝ask-a-question
When is it safe to retrieve the AudioSource from a peer?
38 replies
NNormal
•Created by rogan2528 on 5/8/2025 in #🤝ask-a-question
When is it safe to retrieve the AudioSource from a peer?
Summary:
If you use the Normcore Meta XR workflow and prefabs, lipsync is handled for you and you do not need to manually set up OvrAvatarLipSyncContext or SetLipSync. The knowledge sources do not provide details for manual integration beyond this workflow Meta Avatars Customization. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
If you use the Normcore Meta XR workflow and prefabs, lipsync is handled for you and you do not need to manually set up OvrAvatarLipSyncContext or SetLipSync. The knowledge sources do not provide details for manual integration beyond this workflow Meta Avatars Customization. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
38 replies
NNormal
•Created by rogan2528 on 5/8/2025 in #🤝ask-a-question
When is it safe to retrieve the AudioSource from a peer?
----------------------
Based on the available knowledge sources, the process for enabling lipsync with Meta Avatars in Normcore involves using the MetaAvatarLipSync component, which is set up automatically when you use the "Set Up Meta Avatar" button on the MetaAvatar component. This setup references the RealtimeAvatarVoice component for voice data, not the OvrAvatarLipSyncContext directly. The documentation does not mention the need to manually add or configure the OvrAvatarLipSyncContext or call SetLipSync on the avatar entity.
When you use the provided workflow (adding the MetaAvatar component and running its setup), the system will:
- Add the MetaAvatarLipSync component and wire it to RealtimeAvatarVoice.
- Handle the connection between voice chat audio and the avatar's lipsync automatically.
If you follow the documented setup, you should not need to manually manage the OvrAvatarLipSyncContext or route audio yourself. The integration is designed to work out of the box with the Normcore Meta XR package and its prefabs Meta Avatars Customization.
If you are building a custom solution outside of the documented workflow, the knowledge sources do not provide enough detail about manual integration with OvrAvatarLipSyncContext or SetLipSync. For advanced or custom setups, you may need to consult the official Meta Avatar SDK documentation for further details.
38 replies
NNormal
•Created by rogan2528 on 5/8/2025 in #🤝ask-a-question
When is it safe to retrieve the AudioSource from a peer?
Let me check the knowledge base for you again. One moment! :books:
38 replies
NNormal
•Created by rogan2528 on 5/8/2025 in #🤝ask-a-question
When is it safe to retrieve the AudioSource from a peer?
38 replies
NNormal
•Created by rogan2528 on 5/8/2025 in #🤝ask-a-question
When is it safe to retrieve the AudioSource from a peer?
----------------------
The knowledge sources do not explicitly mention a dedicated event for when the AudioSource is created by the RealtimeAvatarVoice component. However, they do clarify that RealtimeAvatarVoice will create an AudioSource at runtime if one is not already present, and that this happens when the component is owned by a remote client (i.e., when it needs to play back audio) Realtime XR Voice Chat.
Since there is no documented event for AudioSource creation, polling for the AudioSource reference after the RealtimeAvatarVoice component is initialized is a practical approach. You could, for example, check for the existence of the AudioSource in Update or a coroutine until it becomes available.
If you want to configure the AudioSource in advance, you can add your own AudioSource component to the prefab in the editor; RealtimeAvatarVoice will detect and use it instead of creating a new one. This can help ensure the AudioSource exists as soon as the component is initialized Voice Chat Common Questions.
Summary:
- There is no built-in event for AudioSource creation in RealtimeAvatarVoice. - Polling for the AudioSource is a valid approach. - Alternatively, add an AudioSource to the prefab to guarantee its presence when needed. If you need more precise control, you may consider forking or modifying the RealtimeAvatarVoice script, as the source code is included with Normcore Realtime XR Voice Chat. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
- There is no built-in event for AudioSource creation in RealtimeAvatarVoice. - Polling for the AudioSource is a valid approach. - Alternatively, add an AudioSource to the prefab to guarantee its presence when needed. If you need more precise control, you may consider forking or modifying the RealtimeAvatarVoice script, as the source code is included with Normcore Realtime XR Voice Chat. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
38 replies
NNormal
•Created by rogan2528 on 5/8/2025 in #🤝ask-a-question
When is it safe to retrieve the AudioSource from a peer?
Hi @rogan2528. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
38 replies
NNormal
•Created by Niv on 5/8/2025 in #🤝ask-a-question
is StringKeyDictionary<TValue> a property I can put in models?
4 replies
NNormal
•Created by Niv on 5/8/2025 in #🤝ask-a-question
is StringKeyDictionary<TValue> a property I can put in models?
----------------------
Yes, you can use StringKeyDictionary<TValue> as a property in your RealtimeModel, but with some important requirements:
- TValue must be a RealtimeModel (i.e., a class marked with the [RealtimeModel] attribute). StringKeyDictionary is designed to synchronize collections of models, not arbitrary data types.
- You cannot use primitive types (like int, string, etc.) as TValue; it must be a model class that Normcore can serialize and synchronize.
How to use it:
1. Define your model class for TValue, for example:
2. Then, in your parent model, declare the StringKeyDictionary property:
Usage notes:
- StringKeyDictionary is transactional, meaning changes are only reflected after the server confirms them.
- You interact with the dictionary using methods like Insert, Remove, and TryGetValue, and you can listen to events such as didInsertModelForKey and didRemoveModelForKey for updates.
For more details, see the documentation on StringKeyDictionary and the collections overview.
It is not possible to use built-in C# collections like Dictionary or List in models; you must use Normcore's provided collection types, and the value type must be a model, not a primitive or arbitrary class.Supported Primitives ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
4 replies
NNormal
•Created by Niv on 5/8/2025 in #🤝ask-a-question
is StringKeyDictionary<TValue> a property I can put in models?
Hi @Niv. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
4 replies
NNormal
•Created by RoyNexus on 5/7/2025 in #🤝ask-a-question
RealtimeView.RequestOwnershipOfSelfAndChildren() causes error: Collection was modified
31 replies
NNormal
•Created by RoyNexus on 5/7/2025 in #🤝ask-a-question
RealtimeView.RequestOwnershipOfSelfAndChildren() causes error: Collection was modified
----------------------
I'm sorry, but the knowledge sources do not contain any information about the internal implementation or known issues with
RealtimeView.RequestOwnershipOfSelfAndChildren()
causing a "Collection was modified" error. There is no documentation or troubleshooting guidance for this specific exception in the provided materials.
If you are encountering this error, it may be due to modifying a collection (such as adding or removing child views or components) while iterating over it inside the RequestOwnershipOfSelfAndChildren()
method. However, without explicit documentation or guidance from the knowledge sources, I cannot provide a definitive solution or workaround.
For further assistance, you may want to consult the official Normcore support channels or community forums, as this issue is not covered in the current documentation.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------31 replies
NNormal
•Created by RoyNexus on 5/7/2025 in #🤝ask-a-question
RealtimeView.RequestOwnershipOfSelfAndChildren() causes error: Collection was modified
Hi @RoyNexus. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
31 replies
NNormal
•Created by Alix Ollivier on 5/7/2025 in #🤝ask-a-question
Grabbing object with realtimetransform doesn't sync position across clients.
18 replies