4.20 Update


#1

Hey folks, just a quick update regarding 4.20. We continue to work with Epic to resolve a breaking change in the build system. Apologies for the delay, hoping to have good news soon :smile:


#2

Hi. I just recently discovered SkookumScript, but unfortunately I am using UE 4.20

Any updates on when/if we will get 4.20 SkookumScript plugin? I would really like to try it out!


#3

Hey Kyle, the short version is that we are still working on getting 4.20 running.

For those that want the too many details version. The smoking gun seems to be a refactor to the build process in 4.20. Previous engine versions iterated through a list of foreign plugins and added them to the list of things to build. This step was removed in 4.20 but not replaced with any obvious alternative.

:sk: and other script plugins are built on top of a plugin that Epic provides called ScriptPlugin. The goal of the plugin is to allow 3rd parties to provide scripting support in :ue4: without needing to make any modifications to the engine itself.

Since 4.20, ScriptPlugin itself does not work :sweat_smile:. ScriptPlugin is actually 3 separate plugins and specifically ScriptGeneratorPlugin seems to be the component that’s suffering. Its role in life is to leverage UHT to auto-generate C++ code that binds the scripting language to all of the classes, functions and properties in :ue4:. So when the build process forgets to add things to the build list, those bindings don’t get generated and things don’t work as planned :crying_cat_face:.

We had originally hoped that Epic might take this issue under their wing but understandably the folks at Epic are busy, and to be fair, ScriptPlugin is not the most glamorous/used plugin out there. We are working on resolving the issue internally and submitting a PR to Epic.

I hope this post gives some insight into why it is taking so long to get 4.20 going :snail: .


#4

You guys are now having to take this on Internally, so that does explain the delay.

I guess I am lacking bits of info…
Could you elaborate a little more as to what constitutes a “Foreign” plugin and how does this relate to Marketplace script plugins?

Is there some sense as to the motivation for refactoring the code without the alternative to add foreign plugins into a build?

Let’s hope Epic acknowledges the PR… I am unsure what would happen if they did not.


#5

A foreign plugin is any plugin not shipped with the engine. The problem is a little more complicated than originally described. This has to do with foreign plugins that have modules of type Program with loading phase of type PostConfigInit that require being ran by UnrealHeaderTool.

The epic codebase changes rapidly with many underlying motivations by many contributors. There’s not enough context from the commit notes to glean an overall motivation for the changes other than continued improvement. I’m sure we’ll get this sorted out.


#6

Thanks. That is definitely reassuring. :+1: