Skip to content

Releases

Marvel Rivals Anim Notifies 1.0.1 — packaging fix

Choose a tag to compare

@X-zant X-zant released this 12 Sep 07:07

Fixes packaging failing after you add this pack. If a project cooked fine before installing it and stopped afterwards, this is that bug. Upgrade by replacing the MarvelRivalsAnimNotifies folder in Plugins/.

What was wrong

Unreal's UObject.Class AttemptToFindUninitializedScriptStructMembers test fails when a USTRUCT has plain members with no default value, and the errors it logs fail a cook. Every property in this pack is generated from the game's SDK dump — a description of a class's layout, which carries no defaults — so all 92 plain members across the script structs came out bare:

UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Notify")
bool bRecoverDefaultValue;      // no default — reading it is undefined

It surfaced as a wall of errors naming Module:Marvel and Module:Hero_1056:

LogClass: Error: BoolProperty FAccessoryMaterialCurveParam::bRecoverDefaultValue
          is not initialized properly. Module:Marvel File:Public/MarvelTypes.h
...
LogClass: Display: 92 Uninitialized script struct members found

Worth saying plainly: the errors named Marvel, never KawaiiPhysics. If you hit this while also installing the physics plugin, that plugin was not the cause.

The fix

Each member now gets the zero value its memory already effectively held, so nothing about behaviour or serialization changes — it only becomes defined. Enum members get their real zero-valued enumerator rather than a cast, and FLinearColor uses ForceInitToZero so alpha stays 0 instead of jumping to 1 as ::Black would. Members that already had proper constructors (FName, FString, TArray, TMap, TObjectPtr, TSoftObjectPtr, FGameplayTag*) are untouched — they were never flagged.

Measured in a 5.3.2 host project by running the test directly:

errors logged test result
before 360 Fail
after 0 Success

Binaries are rebuilt, which is the part that actually matters for most people: a Blueprint-only project loads the prebuilt DLL, so fixed headers alone would have changed nothing.

Unchanged from 1.0.0

Still requires KawaiiPhysicsRivals — drop both into Plugins/. The separate note in the README about property defaults still stands: these stubs start at C++ zero, which is not necessarily the game's own default, so a value you set that happens to match the stub default is not written to the asset and falls back to the game's value in game. That is inherent to working from a layout dump, and this release does not change it.

Marvel Rivals Anim Notifies 1.0.0

Choose a tag to compare

@X-zant X-zant released this 11 Sep 21:10

Author Marvel Rivals montages in a stock Unreal Engine 5.3.2 editor, with every anim notify the game has, spelled the way the game spells it.

Install

Download MarvelRivalsAnimNotifies.zip, extract into <YourProject>/Plugins/, open the project. That is the whole install.

This pack requires KawaiiPhysicsRivals — drop that into Plugins/ as well. If it is missing, the editor says so plainly on startup:

This project requires the 'KawaiiPhysics' plugin. Install it and try again,
or remove it from the project's required plugin list.

What this is

A montage does not store a notify's settings and leave the class implied — it stores the notify's class path, e.g. /Script/Marvel.AnimNotifyState_TimedNiagaraEffectEx. When the game loads your montage it resolves that string against its own classes, so the only thing your editor has to get right is the name: the module, the class, and the properties. The code behind them is never run.

That is also why this cannot be a Blueprint pack. A Blueprint notify lives at a content path the game has nothing at — it would look correct in the editor and do nothing in game, with no error to say why.

23 modules of stubs, generated from the game's SDK dump. Nothing is guessed from a name: a class is a notify because its ancestry reaches UAnimNotify/UAnimNotifyState, its module is the one the dump states, and its properties are the ones the dump declares, with the editor visibility specifiers the dump records.

No game code, assets or content are included or redistributed.

Why the Kawaii Physics dependency

The game's two Kawaii Physics notifies live in the KawaiiPhysics module, which belongs to a plugin rather than to the game.

Only one module named KawaiiPhysics can exist in a project, and that name is the /Script/ package path cooked assets reference — so neither side can rename to avoid the other. Earlier builds of this pack shipped their own 2-class stub, which collided with the real plugin and made its editor module fail to load with GetLastError=127 as the imports bound to the wrong DLL.

This release drops the stub and declares the dependency instead, so installing both needs no manual reconciliation. The two classes come from the real plugin, with the same three properties in the same order, so montages authored against the old stub keep working.

If you want notifies without the physics plugin, delete the KawaiiPhysics entry from the Plugins array in MarvelRivalsAnimNotifies.uplugin; those two notifies then will not exist in your editor.

Verified

Both plugins load together in a 5.3.2 host project with 0 errors and 0 warnings, and the affected notify classes resolve.