See this guide on how to update your existing project to a new editor release.
Version Released: 06/12/2024
Latest Binary Version 32.0.0
Please note v32 removes support for any build on v27.0.0 on Pixel Streaming.
Improved API for interest level changes for replicated properties
Users previously encountered challenges when attempting to apply net-foreground-only or net-midground-only status effects, such as displaying a specific attachment exclusively in the midground. These effects were inherently implemented using foreground or midground variables and OnReps. However, when a player transitioned to a lower network level, the status effect persisted unintentionally.
To address this, we delivered an API designed for this use case, promoting a design pattern that ensures status effects are properly canceled and re-enabled in response to changes in the network level. While the Morpheus Actor already included a NetworkLevelChangedEvent event, we enhanced functionality by introducing more granular, property-specific handlers to provide finer control.
Cancelled value added to EM2_HttpResponseStatus
Affected Features: Http
What’s broken and why?
We have added a new “Cancelled” status to the EM2_HttpResponseStatus enum. Whilst this in itself is not breaking, users me be using the “Switch” block in blueprint to handle the http results.
If this is the case, the addition of the new Cancelled status will result in an unmapped pin, which may cause your blueprint to not handle the case of cancelled requests. This would only happen if you explicitly cancel a request.
How to fix it?
You have two options:
If you are using the enum and mapping all but the “OK” pin to a failure state, you should swap to using an Equals “OK” and branch node.
If you still wish to use the switch, you must map this to your cancellation handler (or failure case)
How to test it?
Check your http requests are handling the responses you expect.
World Builder settings migration
Affected Features: World Builder
What’s broken and why?
We’ve migrated some settings from DefaultEditorPerProjectUserSettings.ini to DefaultGame.ini. Nothing will break, but some steps are provided to avoid this causing issues with version control.
How to fix it?
We migrate the settings automatically.
If you’re using a version control system, you’ll need to submit the modified Config/DefaultGame.ini as part of the upgrade.
How to test it?
Navigate to Project Settings -> M2 World Builder and ensure your old settings e.g. Mod Id and Maps are still present:
Nothing should be broken. In order to support blend nodes within crowd ABP, this change contains some very fundamental modifications to how crowd animations are running, and as such projects should double check crowd animations are working as expected.
How to test it?
Crowd members should be animating as they used to before the change, precisely what this means will depend on the project.
Pubnub-based Chat simplification
Affected Features: Social (Chat)
What’s broken and why?
As part of the Pubnub-based text chat simplification process, we have ported the chat from C++ to Blueprint to allow customers to take control of the implementation. As a result of this, there is one change that must be addressed when taking this version of MSquared.
In order to continue using the current version of text chat you must add the ps.pndsn.com domain to your Developer Dashboard url allow list settings for the Client. See the next section for details.
Secondly, we have removed the “announcements” support. This feature was not used by any projects as so there should be no project impact.
Additionally, the “Fetch Channel History” function on the UM2_TextChatComponent has changed signature from having a delegate passed in, to using a broadcast delegate for all history messages. This is due to the function implementation being moved from C++ to Blueprint. This should only be impactful if you have implemented a custom chat UI.
How to fix it?
To add the ps.pndsn.comas an allowed domain, you must:
Navigate to your developer dashboard
Select the Admin tab
Select External Urls
Expand the Client section
Set "External Url Access" section to "Allow content to access only URLs with specified domains"
Click “+ Add Domain”
Add "ps.pndsn.com" to the new entry
Click Update to save the setting
If your chat UI is using the announcement messages feature of the M2_TextChatComponent; then it is recommended you begin removing the use of it, as in the future the functions will be removed.
When binding Fetch Channel History, you should now bind to the broadcast delegate “On Chat History Message Received” delegate to continue receiving the historical responses.
How to test it?
General chat should function as normal; minus the ability to receive announcement messages.
Check your history messages still appear
Check you can still send and receive normal chat messages
Cleaned up/consolidated excess DT Roles tables
Affected Features: Roles
What’s broken and why?
The following data tables have been removed:
DT_ApproachabilityGym_Roles
DT_FeatureTestGym_Roles
DT_NexusRoles
DT_QARoles
DT_RolesExampleMap
DT_RolesScaleTestMap
Any uses of them internally have been replaced with our default DT_RolesExample.
The example roles table has also had some changes to it:
The “starting inventory assets” have been removed, since this is a feature that is being deprecated.
The Director role has been granted 4 “sizes” that it can switch between using + and -.
In your level(s), go to the world settings, and filter by “role” - if the default role or data tables arrays have missing values, it may be that you were using one of the removed data tables. This will need to be replaced.
Similarly, if you try to change roles, and see that the roles are missing, or that your startup character isn’t as expected, that could be a sign that the role data table needs updating.
You will also see warnings along these lines:
LogLinker: Warning: [AssetLog] [X]: Failed to load '[Y]': Can't find file.
LogLinker: Warning: [AssetLog] [X]: VerifyImport: Failed to load package for import object '[Y]'
If so, that will highlight the removed data tables that are being referenced.