Unreal Engine 4.20 Released!

In trying to step up to 4.20 from 4.19 we discovered that we can no longer use our custom online subsystem plugin due to changes made in how FUniqueNetIdRepl is serialized with the new encoding scheme.

When trying to connect client and server we are getting an “Error with encoded type hash” message. Digging into this we found a change in the FUniqueNetIdRepl::NetSerialize method that now uses new methods on the online subsystem utils class to convert a hash value to a subsystem FName however there is no way currently to inject a new subsystem to hash mapping for custom plugins.

Is this intended behavior, an oversight or are we missing something with how to add a new custom online subsystem plugin since the 4.20 change?

Thanks

Hello,

I’m game designer of a project made with the asset “Paragon: Minions” and it isn’t compatible with 4.20. The heroes assets are compatible, but we never planned to use them.

Would you recommend us to wait for a compatibility patch or stick with 4.19.2?

We just finished the presentation and send it to the Unreal Dev Grant, it’s a big issue for us! As you can see, we worked really hard the last 2 months and we had almost finished a prototype for Kickstarter:

Thanks!

What is wrong if new Feature on Opegl ES 3.1 , Hardware Occlusion? it seems it will hide quite easily everything a bit far from center of camera view, can we somehow control this? (Snapdragon 820) , Android Oreo .

EDIT : i will add that it seems that it occludes meshes based on their screen size, which its quite obvious when pitching up/down the camera while centered on the object…

it requires something to change so it behaves like pc ( or near as pc) or it is just bugged?

Seeing the same thing on my side.

Anyone have a workaround or fix for this?

After upgrading my projects from 4.19 to 4.20 the tick event has stopped working completely on all of my UMG widgets that have a C++ parent class, which is pretty much all of them. I made a quick test widget without a C++ parent class and the tick event worked fine in it. I tried playing with the new “Tick Frequency” setting on the widgets and got nothing. I tried deleting and re-adding the tick event and got nothing. I tried overriding the tick event in C++ and threw in a debug print on it and got nothing from the native tick either. Ive done the old delete the intermediate folder, rebuild, blah blah. Other things in the widgets like construct event, button clicks, etc work fine. Anyone else having this problem?

Ok so I made a c++ test UserWidget class to use as the parent for the test widget I made. As soon as the parent class is changed and the project recompiled the tick event stops firing. I guess its time to dig through engine code…I suspect it has to do with the new “Tick Frequency” setting. I posted as a bug report on answer hub.

Has anyone been able to package a Win32 plugin? I can’t get a blank Runtime blueprint function library to successfully package. The only warning I get has something to do with Expat.build.cs and there are no errors, but no binaries are generated.


UATHelper: Package Plugin Task (Windows): Running: C:\Program Files\Epic Games\UE_4.20\Engine\Binaries\DotNET\UnrealBuildTool.exe UE4Game Win32 Development -plugin=C:\Users\ABCUSER\Desktop\DoublePlugin\DoublePluginBuild	est420plugin\HostProject\Plugins	est420plugin	est420plugin.uplugin -iwyu -precompile -nosharedpch -noubtmakefiles -receipt=C:\Users\ABCUSER\Desktop\DoublePlugin\DoublePluginBuild	est420plugin\HostProject\Plugins	est420plugin\Binaries\Win32\UE4Game.target -NoHotReload -ignorejunk -log="C:\Program Files\Epic Games\UE_4.20\Engine\Programs\AutomationTool\Saved\Logs\UBT-UE4Game-Win32-Development.txt"
UATHelper: Package Plugin Task (Windows):   Using Visual Studio 2017 14.14.26428 toolchain (C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428) and Windows 10.0.16299.0 SDK (C:\Program Files (x86)\Windows Kits\10).
UATHelper: Package Plugin Task (Windows):   C:\Program Files\Epic Games\UE_4.20\Engine\Source\ThirdParty\Expat\Expat.Build.cs: warning: Referenced directory 'C:\Program Files\Epic Games\UE_4.20\Engine\Source\ThirdParty\Expat\expat-2.2.0\Win32\VS2015\Release' does not exist.
UATHelper: Package Plugin Task (Windows):   Parsing headers for UE4Game
UATHelper: Package Plugin Task (Windows):     Running UnrealHeaderTool UE4Game "C:\Program Files\Epic Games\UE_4.20\Engine\Intermediate\Build\Win32\UE4\Development\UE4Game.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -installed
UATHelper: Package Plugin Task (Windows):   Reflection code generated for UE4Game in 9.2018734 seconds

Hmm, on updating this Blueprint-only project to 4.20 from 4.19, I crash when trying to play my Persistent Level with this:


[2018.07.21-04.54.53:589][477]PIE: New page: PIE session: SGR_Persistent_001 (22 Jul 2018 12:54:53 am)
[2018.07.21-04.54.53:589][477]LogPlayLevel: Creating play world package: /Game/UEDPIE_0_SGR_Persistent_001
[2018.07.21-04.54.53:685][477]LogPlayLevel: PIE: StaticDuplicateObject took: (0.095888s)
[2018.07.21-04.54.53:686][477]LogAIModule: Creating AISystem for world SGR_Persistent_001
[2018.07.21-04.54.53:688][477]LogPlayLevel: PIE: World Init took: (0.003628s)
[2018.07.21-04.54.53:689][477]LogPlayLevel: PIE: Created PIE world by copying editor world from /Game/SGR_Persistent_001.SGR_Persistent_001 to /Game/UEDPIE_0_SGR_Persistent_001.SGR_Persistent_001 (0.099852s)
[2018.07.21-04.54.53:755][477]LogInit: XAudio2 using 'Speakers (Realtek High Definition Audio)' : 2 channels at 48 kHz using 32 bits per sample (channel mask 0x3)
[2018.07.21-04.54.53:780][477]LogInit: FAudioDevice initialized.
[2018.07.21-04.54.53:830][477]LogLoad: Game class is 'InFluxGameMode_C'
[2018.07.21-04.54.54:561][477]LogWindows: Windows GetLastError: The operation completed successfully. (0)
[2018.07.21-04.54.57:859][477]LogWindows: Error: === Critical error: ===
[2018.07.21-04.54.57:859][477]LogWindows: Error: 
[2018.07.21-04.54.57:859][477]LogWindows: Error: Fatal error: [File:D:\Build\++UE4\Sync\Engine\Source\Runtime\RenderCore\Private\RenderResource.cpp] [Line: 128] 
[2018.07.21-04.54.57:859][477]LogWindows: Error: **A FRenderResource was deleted without being released first!**

Smaller levels work, and this project doesn’t do anything with render targets, which is all I get on googling this error.

So whats going on with the plug ins? I have a bunch of meshes to paint in substance to start building a level. hopefully we have a full non beta release soon so all my ue4 goodies are good to go.

Had the same problem (I think).Its probably the way you create the Blutility in the first place. Coincidentally, there’s a nice video explaining it here:

Thanks yeah I just found the video… didn’t know there was an alternate way to create blutilities, I always just created them like a normal blueprint.

I had the same problem. Something to add in the documentation.

Widget: Get brush is now read only, my set struct members can’t work now, it was very useful since I could change multiple properties quickly.

Mobile Hardware Occlusion isn’t supported by Non-HDR mode? can an EPIC stuff answer this? is there any workaround on using LDR? thanks!

Any issues with a blueprint only project? Planning to upgrade from 4.18 to 4.20

When launching 4.20 for the first time the prerequisites stage made my system reboot (or at least tried to). If I need to reboot for the prerequisites install it’s fine but it would be nice to get a confirmation or anything (reboot now? etc). Just blindly restarting the system isn’t anything I’ve seen in other software.

Went smooth! However, there are some class issues and icons not showing. THis can be fixed with setting icon borders to alpha 0.

Agreed, I was playing a very interesting game in hearthstone while downloading the new version and then bam computer restarting…

I cant get ANY includes to work, i cant even include coremiminial.h after converting my project, what do i have to do to include files? This is insane, none of my modules work.

Use the path relative to “Public” or “Classes”. For example, if you previously had ‘include “SomeFile.h”’ and it was located in Classes/SomeFolder/OtherFolder/SomeFile.h, you would use ‘include “SomeFolder/OtherFolder/SomeFile.h”’.