8.4.26 Migration Notes
*Note* ValveIndex_Left_Grip_Click and ValveIndex_Right_Grip_Click index keys have been removed from the engine as of 4.26, if you are crashing on button input (on any controller), validate your button mappings and remove them if they exist. The Grip force button will directly replace them.
To prep for a large plugin change in ue5, some of the changes have been ported to the 4.26 version of the plugin.
Several interface functions have been listed as deprecated in their “Object” versions, you should replace these with the interface versions of them instead (In right click BP search just select the version that says interface after it).
ClosestGripSlotInRange and RequestsSocketing overrides on the interactibles will need to be re-created as the old versions will have been changed to a function on the object instead from the links breaking (you can directly copy and paste the old functions implementation to the new override and delete the old function).
IsHeld across the board will likely need to be replaced, just searching for IsHeld will bring you the interface version to slot in the place of the old direct function call.
Generally though just right clicking on a node and hitting “refresh node” should resolve most warnings. (Like shown)
4.26 comes in with a very large re-write to how the characters replicate so I will need to know if any bugs arise from it.
For the template I finally committed to moving over to new gameplay tags names, if you are on a current project I would suggest not moving the gameplay tag change over and leaving your BPs as is to not change workflow. Going forward, new projects will have gameplay tags for primary/secondary grips instead of the trigger/sidegrip names, this should clarify things a lot. Also the Used gameplay tags are gone since we have dedicated input events for them now, all objects will fire OnUsed, you just have to implement the even if you want to use it.
The melee grip script also had some changes, it has been expanded to throw a seperate OnMeleeHit event if a hit didn’t count as a lodge but did meet some parameters for a “hit” (seperate velocity threshold on an impact zone and on a valid surface type). Your surface array will have to be redefined as it also contains not just valid surface types, but also damage scalers for blunt and sharp impacts and a scaler for how easy it is to penetrate the surface type. I also moved the array of valid surfaces to the Projectsettings/VRExpansionSettings area so that you only have to manage one list. Each grip script still has an override array you can use to have custom surface settings on a specific weapon.
The template also removed the auto procedural controller loading and the manual OffsetByControllerProfile pathway for when not using the bOffsetByControllerProfile option on the grip controller. Both of these have had their node setup recorded and uploaded to the website for future reference. They kept causing confusion and were overcomplicating the template. Grasping hands are now the default state of the template, which physics grasping hands still a spawnable option.
*Edit* Some changes later on have some migration notes as well
I changed the template later on in 4.26 as some pivot component changes came down the line, you can read about them in the pivot changes patch notes, however to be used correctly they required the secondary attachments transform being passed in to be changed to the controllers pivot transform (see below).