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_ODKSettingswidget 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?

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

  1. Create a new DA from BPDA_LODLevelsByAvatar

  2. Set your existing BPDA_LODLevels properties per avatar

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