Skip to main content

FAQ

Are there any dependencies to other plugins?

Yes, ODIN uses Epic's official Audio Capture Plugin to capture audio from input devices, such as microphones. Users have the option to either use the default Audio Capture object provided by the [Create Audio Capture] (https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/AudioCapture/CreateAudioCapture/) method, or the extended Odin Audio Capture object. We recommend using Create Odin Audio Capture due to its superior features, such as the ability to switch capture devices on supported platforms and enhanced Push-To-Talk functionality.

Other than that, ODIN defaults to Unreal's standard audio playback, meaning any voice data played in-game is managed like any other audio source in Unreal. This makes it possible to implement exciting features like Proximity Voice Chat and manage settings like Volume controls using Unreal's existing solutions.

Blueprint Only Projects: My packaged builds crash right after start-up

When the "Odin" plugin is installed directly into a Blueprint Only Unreal Engine project, you may encounter an error when trying to run packaged standalone builds. The error message typically states:

Plugin 'Odin' failed to load because module 'Odin' could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project.

This issue occurs because Unreal Engine processes Blueprint Only projects differently, and fails to correctly package C++ plugins that are installed directly within the project.

Options for Resolving the Issue:

To resolve this issue, there are two options:

  1. Install the Plugin in the Engine: By installing Odin directly into the Unreal Engine's installation directory, Unreal will use a different method to package the Odin module when building a Standalone Version of your project. This method ensures that all required modules are accessible. To install the plugin in the engine you can either:

Use the Marketplace to install the Odin plugin

  • Alternatively, download the appropriate version of the Odin plugin from the Odin SDK Unreal Releases Github page. Extract the plugin into the Engine's marketplace plugins directory, which is typically located at .../Epic Games/UE_x.xx/Engine/Plugins/Marketplace
  1. Convert Your Blueprint Only Project to a C++ Project: Adding C++ files to your project enables support for C++ based plugins like Odin being directly installed in your project folder. Here’s how to perform this conversion inside the Unreal Engine Editor:
  2. In the Unreal Editor, navigate to Tools > New C++ Class > Choose Parent Class None
  3. Give the class a name (e.g. Empty) and press Create Class.
  4. Close down the Editor and open up the newly created Odin_Minimal.sln in your IDE
  5. Build the project (Visual Studio hotkey is Ctrl+Shift+B)

Follow-Up Steps:

After following one of the solutions above, perform the following steps to ensure the Odin plugin loads correctly:

  • Open your Unreal project. If prompted, rebuild the missing modules by clicking Yes.
  • Go to Edit > Plugins in the Unreal Editor, and make sure that the Odin plugin is enabled.
  • Attempt to package your project again. The standalone version should now launch successfully without errors.

Following these guidelines will help you successfully integrate the Odin plugin into your Blueprint Only project or adjust your project's setup to meet the plugin's requirements.

Build-error: building for ... but attempting to link with file built for unknown-unsupported file format

When the "Odin" plugin is installed directly into a Blueprint Only Unreal Engine project, you may encounter an error when trying to run packaged standalone builds. The error message typically states:

Plugin 'Odin' failed to load because module 'Odin' could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project.

This issue occurs because Unreal Engine processes Blueprint Only projects differently, and fails to correctly package C++ plugins that are installed directly within the project.

Options for Resolving the Issue:

To resolve this issue, there are two options:

  1. Install the Plugin in the Engine: By installing Odin directly into the Unreal Engine's installation directory, Unreal will use a different method to package the Odin module when building a Standalone Version of your project. This method ensures that all required modules are accessible. To install the plugin in the engine you can either:
  1. Convert Your Blueprint Only Project to a C++ Project: Adding C++ files to your project enables support for C++ based plugins like Odin being directly installed in your project folder. Here’s how to perform this conversion inside the Unreal Engine Editor:
  2. In the Unreal Editor, navigate to Tools > New C++ Class > Choose Parent Class None
  3. Give the class a name (e.g. Empty) and press Create Class.
  4. Close down the Editor and open up the newly created Odin_Minimal.sln in your IDE
  5. Build the project (Visual Studio hotkey is Ctrl+Shift+B)

Follow-Up Steps:

After following one of the solutions above, perform the following steps to ensure the Odin plugin loads correctly:

  • Open your Unreal project. If prompted, rebuild the missing modules by clicking Yes.
  • Go to Edit > Plugins in the Unreal Editor, and make sure that the Odin plugin is enabled.
  • Attempt to package your project again. The standalone version should now launch successfully without errors.

Following these guidelines will help you successfully integrate the Odin plugin into your Blueprint Only project or adjust your project's setup to meet the plugin's requirements.

How to address build issues with Odin installed in both the Engine and Project

The Odin plugin can be installed either in the Engine's Marketplace Plugins directory or in your current Unreal Engine Project directory. Installing the plugin in both the Engine Marketplace Plugins folder and the Project's Plugins folder can cause conflicts with the UnrealBuildTool. Follow these steps to make sure the plugin is installed correctly and to resolve build issues:

Installation and Troubleshooting:

  1. Close Your Project: Ensure that Unreal Engine is not running and your project is closed.
  2. Clean Temporary Folders: Navigate to your project directory and delete the Binaries, Build, DerivedDataCache, and Intermediate folders.
  3. Remove Redundant Plugin Installations: Ensure that the Odin plugin is only installed in one location. Remove it from the Engine's Marketplace Plugins folder if it's already in your Project's Plugins folder.
  4. Download and Install Plugin: Download the latest release of the Odin plugin for your Unreal Engine version from the Odin SDK Unreal Releases GitHub page. For a clean install, please make sure to first completely remove the old Odin plugin folder. Then extract the downloaded release into your Project's Plugins folder. The folder hierarchy should look similar to this: ../[ProjectName]/Plugins/Odin/Odin.uplugin
  5. Regenerate Project Files: Right-click your project's .uproject file, select "Generate Visual Studio project files", and allow the process to complete.
  6. Open Your Project and Rebuild: Double-click the .uproject file to open your project. If prompted, rebuild the missing modules by clicking 'Yes'.
  7. Reattempt the Build: Try to build a standalone version of your project again to see if the issue is resolved.

Following these steps will ensure that your plugin installation does not interfere with the UnrealBuildTool and your project builds successfully.

C++ only: JoinRoom does not trigger callbacks on Android / Meta Quest

This is most likely an issue with using the standard FVector2D() constructor when setting the initialPosition of UOdinRoomJoin::JoinRoom. The standard FVector2D() will not explicitly initialize values.

This doesn't seem to be an issue on Windows, which will simply set the vector's parameters to zero. Android, on the other hand, will require you to explicitly initialize the initialPosition with FVector2D(0,0) (or other explicit values).

This is not an issue when calling the Join Room node in Blueprint.

LogUObjectGlobals: Warning: [AssetLog] ... Can't find file Error when running a packaged build

If you encounter a warning that says

LogUObjectGlobals: Warning: [AssetLog] PATH_TO_ASSET\.uasset: Failed to load '/Script/Odin': Can't find file.

while running your packaged Unreal Engine build, it typically indicates issues with asset redirectors. To resolve this, follow these steps:

Fixing Asset Redirectors:

  1. Open Unreal Editor: Launch your Unreal Editor and open your project.
  2. Select the Content Folder: In the Content Browser, right-click the root Content folder.
  3. Fix up Redirectors: Choose "Fix up Redirectors" from the context menu. This action helps ensure all references are correctly updated and pointing to the valid assets.

After performing these steps, run your build again to check if the issue is resolved.

Cross-Platform / Cross-Engine is great. Inside the web client I can hear the UE client, but I cannot hear web clients inside the UE client. Why does it not work?

Each client integrates their own MediaStream into the chat room, as detailed in our Unreal Manual. Once added, these streams are automatically transmitted to the ODIN server and then multicast to every peer in the same room.

By linking the MediaStream of each remote peer to a SynthComponent (for example, on a player character), audio communication is enabled among all participants. This setup allows everyone to hear each other, irrespective of the client type they are using. For more details on this process, refer to the OnMediaAdded event.

info

Excursion: Handling non-UE ODIN peers inside UE

Usually, every player character inside UE is spawned as soon as replicated by the network engine, i.e. Unreal networking. When an ODIN peer joins that cannot be replicated, you should either spawn a placeholder object "On Peer Joined" or you can attach the synth component of non-UE clients somewhere else "On Media Added". For instance, you could attach it to your local player character to hear web clients with 2D audio like they are "on the phone". Or you can put a virtual radio box inside the level to let web clients speak through that object. It is also possible to create a second ODIN room (e.g. "global chat") and inside let all players from all client types communicate in 2D - in addition to the in-game (UE-only) spatial audio voice.

Remember to detach / destroy objects from non-UE ODIN peers when they leave the room.

Do you have sound occlusion built-in?

Yes, the audio is played via a synth component (see

Add Odin Synth Component

) and this integrates natively into the entire Unreal Audio Engine with all the features that come with it. This also means that you can use any other 3rd party audio plugin to improve or to add new effects.

Do you support Unreal Engine 5.x?

Yes, we do. Our internal development team uses the latest officially released version of Unreal Engine for development. Testing and packaging are done for versions starting from UE 4.26.

I cannot find the Capture Audio nodes?

If you have any issues finding nodes in Blueprint, make sure the Audio Capture plugin is enabled. In the Unreal Editor, open Plugins (Menu -> Edit -> Plugins) and make sure that in the Audio Section the Audio Capture plugin is activated like shown in this screenshot:

Enabling the Audio Capture Plugin

I'm having Issues with Echo Cancellation, what can I do?

If you're encountering issues with echo cancellation, we recommend a specific Audio Processing Module (APM) setup to optimize your voice chat experience. A good starting point is to refer to the following APM configuration example, which can serve as a guideline:

APM configuration for Echo Cancellation

However, since audio performance can vary based on different hardware and environmental conditions, it's beneficial to experiment with the settings to find what works best for your specific use case.

To enhance user experience, consider allowing players to adjust these settings according to their individual hardware setups. When implementing user-adjustable options, it's advisable to streamline the number of controls to avoid overwhelming the user. Here are a couple of suggestions:

  1. Voice Activity Detection (VAD) Adjustments: You can provide a single slider for users to adjust the VAD settings. The Attack and Release probabilities should have an offset of 0.1 (e.g., if the Attack is set to 0.6, then the Release should be 0.5). This single slider approach simplifies the user interaction while effectively managing the VAD parameters behind the scenes.
  2. Volume Gate Settings: For Volume Gate, ensure that the Attack value has an offset of 10 from the Release value (for example, if the Attack is -30, then the Release should be -40). This method maintains a balanced dynamic between the Attack and Release phases, which is crucial for effective volume gating.

These tailored adjustments can significantly improve the audio experience for users.

My blueprint nodes are broken after upgrading to a new Unreal Engine version. What's wrong?

When upgrading to a new version of Unreal Engine, it is crucial to ensure that the Odin plugin is installed before opening your project in the new engine version. Following these steps can prevent the loss of blueprint functionality:

  • Pre-upgrade preparation: Before upgrading to a newer Unreal Engine version, confirm that the Odin plugin is available and supported in the new version.
  • Install before opening: Install the Odin plugin in the new version of Unreal Engine before opening your project. This helps to ensure that all Odin-related blueprints and functionalities remain intact.
  • Delete Intermediate and Binaries folders: To avoid any intermediate files conflicting with newer Engine or Plugin versions, delete the Binaries, Build, DerivedDataCache, and Intermediate folders in your project directory and the Binaries and Intermediate folders in your [Projectfolder]/Plugins/Odin directory.
  • Do not compile without Odin: Avoid compiling any of your blueprint nodes if the Odin plugin is not installed in the new Unreal Engine version. Compiling without the plugin can lead to irreversible damage to Odin-dependent blueprints.
  • Handling accidental compiles: If you have accidentally compiled one of your blueprints without the Odin plugin, attempt to revert to a previous stable version of your project using your source control system.

Following these guidelines will help you maintain the integrity of your project and avoid potential setbacks when transitioning between Unreal Engine versions with the Odin plugin installed.

My issue is not listed in the FAQs, what should I do?

If you encounter an issue with your project that isn't covered in our FAQs, here are some troubleshooting steps you can try before looking for further assistance:

  1. Delete Intermediate Folders: This can resolve issues caused by corrupted files. Close Unreal Engine, navigate to your project directory, and delete the Binaries, Build, DerivedDataCache, and Intermediate folders. If Odin is installed in the project, navigate to the Plugin directory ([Project Path]/Plugins/Odin) and delete the Binaries and Intermediate folders.
  2. Regenerate Visual Studio Project Files (for C++ projects): Right-click your .uproject file and select "Generate Visual Studio project files".
  3. Install the Plugin Directly in the Project: We recommend installing the Odin plugin directly in your project. This approach enhances compatibility and ensures that the plugin is included in your source control, making it available to all project members. To install the plugin in your project:
  • Download the latest plugin version for your Unreal Engine version from Odin SDK Unreal Releases.
  • Extract the plugin into your project's Plugins folder. If this folder does not exist, create it.
  • Restart Unreal Engine and enable the plugin through the 'Plugins' menu.

Further Assistance:

If the issue is still present after following the above steps, you can ask for further assistance through our Discord:

  • Join Our Discord: Join here if you're not already a member.
  • Post in the Support Channel: Navigate to the #odin-unreal channel and describe your issue. Include the following:
  • A detailed description of the problem.
  • Any relevant screenshots or error logs.
  • The Odin plugin version and the Unreal Engine version used in your project.
  • Steps you have already tried.

Our community and support team will then take a look at your request and help you as quickly as possible. Thank you for your patience!

Spatial audio does not work. What is wrong?

If the voice chat is working and you managed to hear other players, but it sounds like they are always "inside your head," please look here and check if you set the right target for the Odin Synth Component (

Add Odin Synth Component

).

If you used this blueprint example, you have to be careful to choose the right player character for every single event, as mentioned in the info box below.

info

In a real 3D shooter with 3D audio, you would not choose the local player, but map the Odin Peer Id with your Unreal Player Id and then assign the Media to the corresponding player character. This way, Unreal will automatically process the audio in its audio engine and apply attenuation, i.e., dampen the volume the farther away the player is from the listener.

If everything is connected correctly, more details on Sound Attenuation can be found in the Unreal Documentation.

Explore our comprehensive Unreal Tech Demo Project for a hands-on learning experience on setting up Proximity Voice Chat in a Multiplayer Game. This demo project is designed to guide you through the key steps and considerations for integrating proximity-based voice communications effectively.

For a more interactive learning journey, we also offer an extensive Unreal video tutorial series. This series provides step-by-step instructions on configuring Proximity Voice Chat, ensuring a thorough understanding of the process from start to finish.

Update Peer Position does not work or works incorrectly

Please make sure to follow these tips:

What if I do not want to have spatial audio, just like in my favourite conferencing software?

Like in the answer to the question above "Spatial audio does not work. What is wrong?" you can do the contrary and set the synth component to playback only in 2D. Look in the Unreal Documentation here.