Morpheus Platform Release v36
See this guide on how to update your existing project to a new editor release.
Version released: 20/03/2025
Static MML rendering with Carnival
MML geometry can now be rendered at scale using Carnival, unlocking new possibilities such as:
- Configurable per-model parameters, including LOD levels, custom depth settings, and more. 
- Trigger volumes for handling overlapping events. 
- Optional physics interactions and visibility to raycasts. 
UE basic name and chat moderation
Basic Unreal chat and nameplate moderation is now included in example assets, and are both turned on by default. Unreal chat moderation is configurable by setting the game live config value "EnableBasicModeration" to true or false. You can also find a list of profanity that is moderated out in live config, and tweak these to your needs.
Nameplate moderation uses the same profanity list, and can be turned on and off via the Settings Menu blueprint (you will need to make your own copy of WBP_M2Example_SettingsMenu in the content folder and adapt this).
Enable Spatial Crowd Audio muting
Spatial Crowd Audio can now be globally muted.
Please note that it is not possible to mute an individual in the crowd.
Visual fixes for scaled characters
Fixes have been implemented for incorrect rendering of large-scaled characters, which previously caused:
- Clipping through the landscape. 
- Incorrect normal maps. 
Observer Control singletons no longer default M2 Singletons
What’s broken and why?
As we move to turning off the M2 Deprecated plugin by default, we are removing dependencies on legacy content. Our Observer role is scheduled to be simplified, but currently it is tied to the legacy classes which means it cannot be a default singleton. Specifically the control panels often used in this mode will not be available and you will see the following logs:
LogBlueprintUserMessages: [BP_ObserverPawn_C_0] Observer Camera Control Panel isn't present in the level! Keybinding will not work.
LogBlueprintUserMessages: [BP_ObserverPawn_C_0] Observer HUD Control Panel isn't present in the level! Keybinding will not work.
How to fix it?
The following needs to be done for any map in which you want to use the Observer role.
- Navigate to World Settings 
- Search for Additional Singletons 
- Add the required Singletons - BPM_ObserverCameraControls 
- BPM_ObserverHUDControls 
 

How to test it?
Ensure Observer functions as expected.
USkeletalCrowdMeshStore removed
What’s broken and why?
USkeletalCrowdMeshStore and UJ_ModularCrowdMeshStore types have been removed.
These were previously optional but deprecated. This change removes support for them in an effort to clean up and simplify the USkeletalAnimatedCrowdData.
USkeletalAnimatedCrowdData::DefaultMeshIndices has also been removed. It was generally unused and no longer makes sense in context.
How to fix it?
Any existing mesh store assets should now be deleted.
USkeletalAnimatedCrowdData data assets will need updating to specify the USkeleton used by the crowd, if this hasn’t been done already. See below:

How to test it?
Test that crowd continues to work as before.
Network Level callbacks renamed to Net Relevancy
What’s broken and why?
The OnNetworkLevelChanged callback has been renamed OnNetRelevancyLevelChanged.
The NetworkLevel struct has been renamed NetRelevancyLevel.
How to fix it?
There are core redirectors so these renames will be automatically be applied in your project, but you should use the new names where possible.
How to test it?
Project compiles.
Made the example map use simplified base classes (e.g. M2M_CharacterBase instead of JM_CharacterBase)
M2M_CharacterBase instead of JM_CharacterBase)What’s broken and why?
As part of our planned simplification work, we are cleaning up the logic in our Example content, removing deprecated features and providing simplified alternatives to core/example features that we are cleaning up.
We have now reparented the example content to new base classes (e.g. M2M_CharacterBase, instead of JM_CharacterBase, where the former is a parent of the latter). This means that a bunch of the logic added at the JM_CharacterBase level or below has been removed.
This includes:
- Character resizing (awaiting simplification) 
- Roles (awaiting simplification) 
- Capabilities (can be re-added in downstream projects if desired) 
- Out of bounds auto-respawning (awaiting simplification) 
- Camera zoom 
- Approachability movement (click to move, etc.) 
- Sliding & bounce components 
- Motion warping 
- motion capture 
- traversals 
- over-the-shoulder/topdown cameras 
- "inhibitor component"/Player capture component 
- Interaction 
- focus cam 
- Inventory/equipment 
- deprecated chat 
- Ability system 
- debug command component (looks unused, part of the old live config system?) 
If you are using the deprecated character (e.g. basing your character off of BPM_Origin_PlayerCharacter, or accessing the JM_CharacterBase directly), there should be no changes. If you are basing your character off of e.g. BPM_M2Example_PlayerCharacter, some functionality will have been removed.
How to fix it?
If you depend on any of the features removed, get in touch - the features will either be re-added in due time, or are not being supported by MSquared. If any are absolutely essential to your project, you can fall back to using the deprecated Origin classes for now, but this is not advised in the long run.
How to test it?
Review the removed features, check your core functionality is still as expected.
Deprecation of Juno/M2 Activities and Venue_Orb Map
What’s broken and why?
The legacy Activities system has been deprecated. This was used extensively in the Venue_Orb map. The blueprint facing API has been deprecated and all assets referencing these functions have either been deleted or modified to remove the references, depending on complexity of their connection to this system.
Areas of note:
- Venue_Orb_P - Removed entirely 
 
- BP_PlayerController - References to Activity widget removed 
 
- BP_OrbUtility - Handle teleport logic removed 
 
- BPM_FadeToBack - No longer gated behind a capability that was previously removed from the platform (Capabilities.ActivityControls) 
 
- For a full list of affected classes, please refer to ActivityDeprecationCodeChanges.txt 
- For a full list of affected assets, please refer to ActivityDeprecationChanges.txt 
If you have content that was built on the Activities API, you will find the deprecation warnings will cause a warning at compile time for your blueprints. If you use our asset linter, assets using this API will fail the linting rules due to these warnings.
How to fix it?
The general advice here is to remove all references to this system ahead of taking this update. Soon we will remove this functionality altogether, which means anything that is still using it will break entirely.
If you are unsure as to whether or not you have used this, you can do a dry run on taking this update and see if there are any new warnings created when linting your content.
If there are warnings and you are not yet ready to remove the content, you can get the linter to ignore these for the time being. To do this, you’ll need to ensure your linting rules use a modified version of JLR_BP_Compiles and you need to add the specific strings to be ignored in the “Allowed Blueprint Warnings Regex” array. This will not work once we fully remove the underlying C++, so please plan accordingly.

If your project relies on any content removed as part of this process, you will need to create duplicates of the affected assets and keep them in project-space to avoid unwanted changes. If these assets inherit from Activity related classes, you must anticipate that these classes will also be removed in the near future.
How to test it?
Check all affected content works as expected.
Performance regression at 18K CCU on Windows native
We are currently investigating a performance regression which was identified during our scale tests using 18000 bots when using an AMD Ryzen 9 5900X / NVIDIA GeForce RTX 3080 device.
This results on framerates of ~20FPS, rather than our 30FPS target.
Unreal D3D12 Memory Leak in cooked clients if minimised
It was observed that if you minimize the game client, it may eventually crash. The resulting callstack may vary, with one observed example being:
[2025.03.26-08.26.30:297][400]LogD3D12RHI: OnlineHeap RollOver Detected. Increase the heap size to prevent creation of additional heaps
[2025.03.26-08.26.30:398][406]LogD3D12RHI: Error: Interfaces.CopyCommandList->Close() failed 
 at C:\b\Game\Engine\Source\Runtime\D3D12RHI\Private\D3D12CommandList.cpp:284 
 with error E_OUTOFMEMORYAhead of such crashes, it is clear that memory is leaking, by observing logs along the lines of [2025.03.27-09.26.37:982][760]LogJunoMetrics: Process memory high water mark: 17554MB physical, 22196MB virtual. Until this is fixed, we recommend advising users to not minimize their  game window.
Last updated
Was this helpful?

