In this version we have renamed some Enums that can conflict with other enums from another plugin that share the same name
So if we update the AudioAnalyzer plugin to v3.05 and we open a project that already uses the plugin we can obtain an error in the nodes that are using this enums.
Can’t connect pins xxxx : Convert Byte to xxxx
To fix that references we need to close the project and open the file Config/DefaultEngine.ini of our project with a text editor
We need to add the references redirects so we need to search for the [CoreRedirects] section and add the following lines (If you don’t have this section you can add it at the end of the file):
[CoreRedirects] +EnumRedirects=(OldName="/Script/ParallelcubeAudioAnalyzer.ESpectrumType",NewName="/Script/ParallelcubeAudioAnalyzer.EAA_SpectrumType") +EnumRedirects=(OldName="/Script/ParallelcubeAudioAnalyzer.EChannelSelectionMode",NewName="/Script/ParallelcubeAudioAnalyzer.EAA_ChannelSelectionMode") +EnumRedirects=(OldName="/Script/ParallelcubeAudioAnalyzer.EAudioFormat",NewName="/Script/ParallelcubeAudioAnalyzer.EAA_AudioFormat") +EnumRedirects=(OldName="/Script/ParallelcubeAudioAnalyzer.EAudioDepth",NewName="/Script/ParallelcubeAudioAnalyzer.EAA_AudioDepth")
If we open the project now we can see that the erro has gone.
To do the change permanent we need to edit and save the affected blueprints
Open the blueprint and click Save > Compile > Save
When we have re-saved all the affected blueprints we can reopen the project to check if all broken references have been fixed.
The Message log can be clean but you need to check the Output log.
When the project has no more reference errors in the log we can safely remove the lines of the [CoreRedirects] section of DefaultEngine.ini related to our plugin
If we have changed the Enum value of a node without connect it to other node we will obtain a value change without any warning or error.
For example in a InitSpectrumConfig node we have changed the Type enum to Log in the older version of the project
This enum has two values Linear and Log
If we change the plugin WITHOUT set the CoreRedirects section the project will update the enum with the new name AND reset their value to the default value, this is something that we don’t want.
To avoid that and maintain the enum values with the name conversion we need to use always the CoreRedirects to update the project enum names and remove the section after the project has saved the updated classes
Support this blog!
For the past year I've been dedicating more of my time to the creation of tutorials, mainly about game development. If you think these posts have either helped or inspired you, please consider supporting this blog. Thank you so much for your contribution!