Linux Arm 64 problem thats not pressent in editor

Hey every1 i alrdy posted about this but now i learned that i was wrong about the problem and its another problem.

When i package my build for linux arm 64 and press a button in the charachter select it works , except if theres a cast to gameinstance after, it also wont go into the failed section of the cast it just refuses to do something, but only when theres a cast to gameinstance. Has any1 else ever had this problem?

The two symptoms together (button still changes look, but neither the success pin nor Cast Failed runs, and a Print String in that same graph also never shows on the Pi) usually mean the cooked OnClicked graph for that button is not the graph you are looking at in the Windows editor.

A cast whose target class is missing from the LinuxArm64 cook does this. The cooker drops the event rather than emitting a cast that fails at runtime, so you never enter Cast Failed. PIE and a Windows package can still work because they are using a different Game Instance class than the Linux cook.

Check these in order:

  1. Project Settings, Maps and Modes, Game Instance Class. Set it to the exact Blueprint or C++ class you cast to, not the engine GameInstance. A level World Settings override or an editor Play override applies in PIE and is ignored by the packaged Linux game.

  2. That class has to actually be in the Linux cook. If it is a Blueprint, keep it under Content (not an editor-only or Never Cook directory), and make sure every plugin it depends on is enabled for Linux. After a Linux cook, search the log for that asset name. A line about it being unreferenced or not cooked is the confirmation. Also open the packaged log on the Pi under Saved/Logs.

  3. Separate the click from the cast. Delete the cast, put a Print String as the first node of that button’s OnClicked, and recook Linux. Do not rely on an incremental cook. If the print then appears, the click is fine and only the cast target was missing. If the print still never appears, the widget running on device is not this graph: character buttons created in a loop often show the pressed style from the widget tree while OnClicked was bound only on the template, or bound to a local that the loop overwrote. Bind OnClicked inside the loop with a Create Event on the instance you just created.

  4. Once the print is visible, cast only after printing Get Game Instance, then Get Class, then Get Name. If that name is not your class, the project setting did not make it into the Linux package. Casting to the base GameInstance (no custom class) is a useful temporary bypass to prove the rest of the select logic.

The class button in the same child widget working just means that event does not reference the missing class, so it survived the cook.