v8.2
Updates to ODK's project schema
Date of change: 02/07/2025
Affected Features: Users with existing ODK projects
What’s broken and why?
Currently ODK schema is embedded within the `ODK` section within the project.schema. For legacy reasons, the ODK schema was instantiated with each template, rather than stored with the plugin content itself. To ensure you're operating with the latest, correct ODK schema, please integrate the latest schema here into your project.
How to fix it?
Retrieve the latest `project.schema.json` from the ODK. Accessible here, or within any v8.2 template. Merge this file with the existing project.schema.json
that lives at <project_workspace>\Config\LiveConfig\Schemas
. If you haven't made any local project edits, you can safely just replace the file, otherwise you should merge the content with your local changes.
Connect Button on the Dashboard redirects to https://o7e.preview.msquared.io/ instead of the GFN Stream.
Date of change: 30/06/2025
Affected Features: Otherside Dashboard and GFN streams.
What’s broken and why?
Due to us needing to authenticatee with Privy we need the Connect button on the dashboard to send the user via the web app rather then the legacy GFN streaming page. This means that users on older versions of the ODK will be unable to launch streams via the dashboard.
How to fix it?
Upgrade your project to ODK 8.2, this will then ensure that you are using Privy as authentication in your project and the Connect button will work again
Bubbles Content Moved
Date of change: 27/06/2025
Affected Features: Bubbles
What’s broken and why?
The bubbles chat feature has been isolated into it's own template within the ODK ecosystem.
How to fix it?
If reliant on the bubbles feature, please integrate the Bubbles Template from the ODK Launcher, and migrate the content within to your project.
ODK Settings Menu
Date of change: 18/06/2025
Affected Features: Pause/Settings Menu
What’s broken and why?
The default Pause/Settings menu widget is now set on the PlayerController > BPC_ODK_PauseMenuControlComponent
and the default widget has been changed from the M2 settings menu to WBP_ODKSettings
widget that leverages the ODK Base UI
How to fix it?
If you have previously used a custom settings widget, this should be set on the BPC_ODK_PauseMenuControlComponent
component.
Inspector Admin Capability Update
Date of change: 12/06/2025
Affected Features: Inspector Admin
What’s broken and why?
As part of the class hierarchy rework, the way we determine if you can access the Inspector has been updated.
How to fix it?
For any role that you want to have access to the Inspector (historically just Director) add the Capabilities.Morpheus.InspectorEnabled
capability to the GrantedCapabilities
field within your data table for those roles.
Retirement of Avatar Selector
Date of change: 11/06/2025
Affected Features: Avatar Selector
What’s broken and why?
As we've moved to using the Web UI for more in-game functionality, we've retired the existing avatar selector (BPC_AvatarSelector
and associated content).
How to fix it?
If you were previously relying on explicitly triggering the avatar selector during gameplay, instead you should use the Web UI for selecting a player character. To do so call OpenAvatarOverlay
on the BP_WebBrowserWorldService
and the web browser will present the user's avatars to them.
How to test it?
Validate that your users can correctly update their avatars when you trigger the avatar selector.
Crowd Audio Component Change
Date of change: 11/06/2025
Affected Features: Crowd Audio
What’s broken and why?
We have moved away from the soon to be depreciated crowd audio component and have our own ODK version.
How to fix it?
Simply switch out the BPMC_CrowdAudio
component to BPMC_ODK_CrowdAudioComponent
. They should have the same interface.
Attachments Component
Date of change: 02/06/2025
Affected Features: Attachments
What’s broken and why?
Logic that handled adding attachments to the player has been moved to a new morpheus component: BPMC_ODK_AttachmentsComponent
. This functionality was moved off BPM_ODK_PlayerCharacterBase
. This means you may have some bad references in your projects
How to fix it?
Simply grab the component off your morpheus player character and use that instead of directly interfacing with BPM_ODK_PlayerCharacterBase
.
UI Mode Component
Date of change: 02/06/2025
Affected Features: UI Mode
What’s broken and why?
The UI mode world service has been moved to a component on the player controller. Some functions that were previously on the player controller have been moved to this component. Additionally, now it supports changing UI mode from anywhere, not just widgets. If you interfaced with the UI mode world service directly, you should now go through the player controller component.
How to fix it?
Update you blueprint logic to use the new player controller component.
Update to Profile Data Provider class
Date of change: 23/05/2025
Affected Features: Profiles
What’s broken and why?
With the move to a new authentication backend, we have a new mechanism for retrieving your user's profile infomation.
How to fix it?
For any prior levels, you need to manually update the "Profile Data Provider Class" to
BP_ODK_WPProfileDataProvider
How to test it?
Log in and validate that your characters are retrieving their player names and other profile information correctly.
Moved default emote definition to BPC_ODK_EmotesComponent
Date of change: 20/05/2025
Affected Features: Emotes
What’s broken and why?
Previously, the default emote array was defined in the roles Data Table, while CoOp emotes were specified in the BPMC_CoopEmote
component and purchasable emotes in the BPC_ODK_EmotesComponent
. These separate configurations have now been unified into a single location: the BPC_ODK_EmotesComponent
on the Player Character.
This consolidation simplifies emote management by centralizing all emote definitions—default, purchasable, and CoOp—in one place and enables runtime overrides of the emote list, for both default and CoOp emotes.
The current roles data table definitions will still work, but will likely be deprecated in the future and this workflow will no longer be supported.
How to fix it?
• Remove the emote definition from the roles data table.
• Create a Data Asset of type PDA_ODKEmoteCollection
with your defined emotes
• On your Player Character, find the BPC_ODK_EmotesComponent
and assign the Data Asset to the ODKEmoteCollection
variable

How to test it?
Play in editor and bring up your emote wheel. The defined emotes should appear on the wheel.
Koda Lod Level replacement with BPDA_LODLevelsByAvatar
Date of change: 18/05/2025
Affected Features: Avatars
What’s broken and why?
We've modified the way crowd animations are setup per avatar type. If you had previously customized the Koda Lod Levels property on a derived class of BPM_ODK_PlayerCharacterBase
, you'll need to update your usage.
How to fix it?
Create a new DA from
BPDA_LODLevelsByAvatar
Set your existing
BPDA_LODLevels
properties per avatarSet your new DA as the default instance on your derived
BPM_ODK_PlayerCharacterBase
class
How to test it?
Validate that your characters use the correct ABP content when being rendered in the crowd
Editor Sign-in Changes
Date of change: 18/05/2025
Affected Features: PIE session
What’s broken and why?
The way you login needs to be updated to use our new authentication system
How to fix it?
For any existing project, you'll need to modify your authentication settings. 1. Open to Editor Preferences -> General: Sign In Settings 2. Expand Per Client Sign In Settings 3. Modify each client's sign-in settings to: "Custom" : "https://o7e.preview.msquared.io/api/editor/login" 4. Restart your editor
How to test it?
Start a PIE session and ensure your client can connect to your local deployment.
Jump Component
Date of change: 15/05/2025
Affected Features: Player Character
What’s broken and why?
We moved some of our jump logic inside a component to manage jumping.
How to fix it?
Interface with the new component to enable and disable jumping.
Text Chat Update
Date of change: 14/05/2025
Affected Features: Text Chat
What’s broken and why?
We have updated text chat in the ODK to use a purely unreal base solutions.
How to fix it?
You will need to add WBP_ODK_TextChat
to your HUD to use the text chat functionality.
How to test it?
Test the newly added widget works in game.
Persistence Update
Date of change: 13/05/2025
Affected Features: Persistence
What’s broken and why?
The persistence world service has had it's API updated.
How to fix it?
Simply update your blueprint logic to use the new API. The biggest change is that now after registering interst in a value, you will not have the callback executed with the current value. You should use the read API after subscribing to get the initial value.
How to test it?
Ensure your persistence logic is still working.
Removal of Vending Machines
Date of change: 02/05/2025
Affected Features: Vending Machines
What’s broken and why?
Removed the user collection vending machines. New vending machines should use the overlay rather than in game UI. An example of the overlay vending machine is in the new Boneyard Template.
How to fix it?
Not necessarily something you can fix. Vending machines would have to be redesigned from scatch.
Asset removals
Date of change: 18/03/2025
Affected Features: Various
What’s broken and why?
There are a number of redundant assets in the ODK we are removing. Downstream projects may be using these and could potentially be affected.
List of assets: - BPMC_PlayerTags - BPMC_PickupManager now move to the base template from the ODK plugin
How to fix it?
This probably wont affect anyone. If it does reach out to your Yuga Representative with any problems.
Interaction Refactor
Date of change: 17/03/2025
Affected Features: Interaction System
What’s broken and why?
We wanted to revist the interaction system and make sure it was up to date. Some configuration properties on interactable component may need updating.
How to fix it?
The only thing that should be broken are the configuration properties on the interactable component.
How to test it?
Reconfigure the configuration properties on the interactable component if needed.
Selfie Camera Refactor
Date of change: 26/02/2025
Affected Features: Selfie Camera
What’s broken and why?
Wanted to refactor the selfie cam to make some paths simpler. If you have tinkered with the core selfie cam classes (which you likely have not) you may be affected. How we structure data regarding scanned objects in screenshots has changed. This will affect anyone attempting to read this data.
How to fix it?
Reach out to your Yuga Representative with any problems.
World Services update
Date of change: 21/02/2025
Affected Features: Widget Handler and Persistence Manager
What’s broken and why?
We are moving these system over to use the "World Service" pattern that was not available when first created. If you are using BP_PersistenceManager
or BPC_ODK_WidgetHandlerComponent
directly, you will run into issue.
How to fix it?
Instead of using BP_PersistenceManager
, you can now call GetPersistenceWorldService
from BPFL_ODK_PersistenceWorldService
. The returned world service should have the same API as the old BP_PersistenceManager
. If you were using BPC_ODK_WidgetHandlerComponent
, you should instead use BPFL_ODK_WidgetHandler
. It has a similar API that should be easy to move over.
Reparenting of Base Classes
Date of change: 26/02/2025
Affected Features: Core player classes updated to remove BP_Origin_PlayerCharacter
, BPM_Origin_PlayerCharacter
, BP_M2_PlayerCharacterBase
, BPM_M2_PlayerCharacterBase
, BP_PlayerController
, BP_ODK_PlayerControllerBase
, J_CharacterBase
and JM_CharacterBase
from our hierarchy.
What’s broken and why?
To provide a less opinionated, and more streamlined base ODK experience, and in conjunction with M2, we've deprecated some content that was consider superfluous for ODK purposes. For the purposes of this change, these include the player character classes mentioned above. Any class that derives from the BP_ODK_PlayerCharacterBase
,BPM_ODK_PlayerCharacterBase
, BP_M2_PlayerCharacterBase
, BPM_M2_PlayerCharacterBase
, J_CharacterBase
, JM_CharacterBase
, BP_ODK_PlayerControllerBase
, BP_PlayerController
or interacts with those classes might be impacted. Any content functionality that has been removed from the base hierarchy, you're free to move to your project's character classes.
How to fix it?
Any components or variables that were resident on the classes listed above, that are still in use by your project, will need to be migrated to your base class version of that class. For example if you were using the BPMC_ApproachabilityFollowTarget
component in your morpheus actor character class, you'd readd an instance of that component to your project's verison of the class, and then fixup any references. If in doubt, please reach out in support. Any reference to these class needs to be updated. This includes casts and properties.
How to test it?
Run a linter pass on your Blueprint content that confirms all content compiles as expected. Additionally make sure all your game features work as intended.
Last updated