No announcement yet.

Partial patch to upgrade UT4 clean-master(UE4.15.0) to UE4.19.2

  • Filter
  • Time
  • Show
Clear All
new posts

    [PROTOTYPE] Partial patch to upgrade UT4 clean-master(UE4.15.0) to UE4.19.2

    Here are the initial results from working on a patch to update UT4 to UE4.19.2.

    Quick run through the example map:
    (Sounds are working, but the video seems to have low volume.)

    Very Important:
    -If files from UT4(.uasset) are loaded and saved in this build, they will no longer be able to be loaded in the official UT4 release(build 3525360). This is since .uasset is not a static file format but rather defined by the engine serialization code, which changes from build to build.
    -Do not import or migrate any files into this build without keeping a backup.

    -The video might give the impression that it is close to being fully functional but it should be emphasized that this is really just a starting point.
    -As the server source is not available, this build is limited to offline play.
    -The code in the clean-master branch is outdated(?) compared to the main/internal UT repository, so there will probably be merge conflicts.
    -Would really prefer to be working on art(?) related things, so please do not expect updates at more than a leisurely pace.

    Edit - rewritten for clarity:
    The goal here is mostly to make a preview/test build for UE4.19.2, and hopefully expedite the release of an official patch if/when development resumes. From a personal standpoint, this is done for curiosity's sake.

    Roadmap / things that need to be implemented/fixed/updated in general:
    -Fixing compile warnings (currently the build gives about ~1000 warnings) <- now about ~68 warnings
    -Code in UnrealTournament/Plugins
    -Issues created by changes in the Engine/API

    Probably needs to be done by Epic, but it might be possible to test these with what has already been released on Github:
    -UT4 client compile and test
    -Packaging the main ~17GB UnrealTournament-WindowsNoEditor.pak (excluding community maps and some cosmetics?)
    -Engine customizations made by the UT team

    Needs to be done by Epic:
    -Online/Internet related things (including but not limited to the server source code)

    Features that that have been tested / are working in the editor:
    -Basic game functionality (weapons, movement, firing, pickups, powerups, etc.)
    -Duel/DM/TDM Game mode
    -CTF Game mode (CTF flag capture, halftime, translocator, etc.)
    -UTShowdownGame('Duel Showdown')/UTTeamShowdownGame modes
    -Mutators (tested WeaponArena, Instagib, LowGravity).

    Edit2: see for a to-do list; will 404 without UE source access

    Original post:

    Original Post 2:

    Setup instructions:
    -Using Visual Studio 2017 (VS2017 Community should work, but have only tested with VS2017 Professional)
    -Total filesize for UT4/UE4 when built is ~150GB

    -Get source code for both UE4 and UT4

    -For UE4, pull from the '4.19.2-release' or 'release' branch (08ee319f80ef47dbf0988e14b546b65214838ec4)
    Git: Update README with info about development streams.
    #rb none
    #lockdown Nick.Penwarden
    [CL 4051262 by Ben Marsh in 4.19 branch]
    -Patched UT4 source can be found at branch is 'ue4_19_2_update', alternatively, go to: and click on 'Partial Patch to upgrade to UE4.19.2-release...'
    (Links will 404 if not logged into Github with UE4 source code access)
    it is based on the 'clean-master' branch (9c3ea405d9c3d8c8ba8096750f4cb9f1578798fa)
    UnrealTournamentBuild AssetRegistry build built from changelist 3537909
    [CL 3538627 by buildmachine in UT-Clean branch]

    -Follow all instructions for both UE4 and UT4 up to the point where it says to run 'GenerateProjectFiles.bat'
    (do not run GenerateProjectFiles until the below stage)
    -Move the /UnrealTournament folder into the UE4.19.2 folder
    - /UnrealTournament folder should be in the same one as UE4_19_2 GenerateProjectFiles.bat
    - Note that this is the opposite of what should be done conventionally - we should be copying the /Engine folder and associated files into the UT4 folder. However, doing it this way makes it easier to make the patch. (Edit - doing this also makes the patch smaller incase newer versions of UE4 are relased.)
    -Delete the UnrealTournament/Plugins/Online folder, or move it elsewhere
    -Run UE4_19_2 GenerateProjectFiles.bat to get the UE4.sln
    -Open UE4.sln with VS2017; 'UnrealTournament' should exist under /Games in the Solution Explorer
    -Set build config to 'Development Editor'
    -Build the UnrealTournament project

    -After downloading the UT content from Epic, as in the UT setup instructions, copy
    Content_UE4_19_2_fix/RestrictedAssets to
    This updates the muzzleflash/projectile materials for UE4.19.2

    -To start the edtior, open:
    and click on 'UnrealTournament' in the menu, or run in the command line:
    ...\UE4_19_2\Engine\Binaries\Win64\UE4Editor.exe UnrealTournament
    Last edited by Sereau; 07-09-2018, 06:08 PM. Reason: update instructions

    i think its easier to rebuild UT ground up in blueprint with the allowance of epic, than unpack, upgrade and repack it. but good luck man
    Projects: UT4BombingRun | UTCC wiki


      Originally posted by n0niz
      i think its easier to rebuild UT ground up in blueprint with the allowance of epic, than unpack, upgrade and repack it. but good luck man
      Explain how this is done

      DM-PSi ; DM-Genku ; DM-Untold Storage ; DM-Station (WIP) ; DM-HeatRay Physx (WIP)

      DM/TSD-Formidable (WIP)


        the same way you create other normal games for UE4, i don't explain a whole game developing here for fps, you already got a template, then work on movement, weapons etc. Just server implmeneting could be hard but then plugins would do the work
        Projects: UT4BombingRun | UTCC wiki


          Originally posted by n0niz
          the same way you create other normal games for UE4, i don't explain a whole game developing here for fps, you already got a template, then work on movement, weapons etc. Just server implementing could be hard but then plug-ins would do the work
          My apologies - I thought you meant some variation on cut and paste from one folder to another, followed by some programming Black Magic
          Last edited by Mitch Mitchell; 06-25-2018, 04:11 AM.

          DM-PSi ; DM-Genku ; DM-Untold Storage ; DM-Station (WIP) ; DM-HeatRay Physx (WIP)

          DM/TSD-Formidable (WIP)


            -Fixed the muzzleflash/projectile particle system issues, and
            -Fixed a lot of warnings, mostly renaming variables/function calls to fix deprecation warnings.

            Also ran some more tests:
            -Aside from a few things, there are no glaring differences between the patched and official builds in the editor.
            -One major issue is that the BioRifle can crash the game by triggering an assert, will give more details in the future.
            -Another is that it's not possible to run a dedicated server in the editor, this is probably related to code in UnrealTournament/Plugins
            -Mutators seem to be working, tested WeaponArena, Instagib, LowGravity mutator.


              This fix has been added to the branch on Github.

              The muzzle flash/projectile particle system errors are caused by the Materials in the particle systems, which do not compile as a shader uniform parameter was renamed.

              Example error:
              LogShaderCompilers: /Engine/Generated/Material.ush(1410,8-25): err0r X3004: undeclared identifier 'View_ExposureScale'
              LogShaderCompilers: /Engine/Generated/Material.ush(1410,1-26): err0r X3080: 'CustomExpression0': function must return a value

              The error is caused by a MaterialExpressionCustom Node in the material containing the expression:
              To fix, replace with:

              Click image for larger version

Name:	fix_view_exposurescale.png
Views:	1030
Size:	240.9 KB
ID:	400856

              In all the materials the MaterialExpressionCustom Node is frequently named 'ExposureBias'. Created a material function to replace the node so that it can be changed in case the fix is incorrect.
              When the fix is applied, there is a sort of lens flare/camera effect when testing in the example_map, but it is probably not related since the effect appears elsewhere.

              In C++:

              UT4 clean-master

              UE4.19.2 ExposureScale seems to be renamed to:

              Full list of materials that need to be changed:


                Did you make vehicle's happen yet?
                Running the Mega Hub for everyone to enjoy!


                  Originally posted by Megasporwic
                  Did you make vehicle's happen yet?
                  There are some pretty nifty blueprints on the marketplace for that already, it would be good to add/amend/append that code. You also got the option of delving into the UT3 Kismet. And UDK has most of the vehicles, too.

                  DM-PSi ; DM-Genku ; DM-Untold Storage ; DM-Station (WIP) ; DM-HeatRay Physx (WIP)

                  DM/TSD-Formidable (WIP)


                    This branch is limited to updating the engine, and is not adding new features such as vehicles.

                    -Fixed Blueprint error with Shock Rifle and Stinger impact
                    -Starting to work on updating UnrealTournament/Plugins

                    Here is a montage showing what the build looks like now:

                    -Note the lens flare/camera effect when firing(most visible with link gun); not sure if it was added in UE4.16-4.19 or disabled in UT.
                    -Lighting of wood beams on DM-Chill in the video is messed up; rebuilding the lighting fixes it.
                    -In general the lighting seems to be brighter in 4.19 compared to 3525360.

                    -Most of the work from this point onwards will be focused on fixing things that cannot really be demonstrated by video and are not visible to players.
                    -UE 4.20 release is coming soon, considering migrating the branch to it but it's probably better to wait until the last 4.20.x hotfix is released.
                    -Will probably post short summaries in the future rather than documenting each fix to avoid cluttering the thread unless it's especially notable.
                    -Details on issues will be posted at the fork on Github: (will 404 without UE source access)

                    More testing in editor:
                    -Duel/TDM are working
                    -Both showdown game modes are working
                    -UTFlagRunGame - nothing happens when run in editor(this occurs with build 3525360 editor as well)
                    -UTFlagRunPvEGame - crashes in the editor after enemies spawn(this occurs with build 3525360 editor as well)
                    -Lighting/NavMesh/BSP build is working in the example_map

                    -Playername is not displayed correctly in the UI for all game modes; is always 'Player'
                    -Shock combo works in 'offline mode', but does not work on listen server in editor (shock ball blocks the beam but does not explode)

                    Notes on UnrealTournament/Plugins:

                    -Seems to be from Engine/Plugins/Online, for many .h/.cpp files the only difference is in header #include(s)
                    -Deleting and copy over from Engine/ folder compiles, but need to check if this is a viable solution.
                    -Of course, doing this does not account for any changes made by the UT team, and those changes will need to be found by browsing through the commit history.
                    -In the commit history of clean-master, there are only 10 commits that touch UnrealTournament/Plugins/Online/*, one of these is the engine update to 4.15

                    -This plugin is not actually used, and is not included with UT4 3525360 client/editor so it can be safely deleted.
                    -Plugin is also outdated(UE4 4.13 / plugin version 2016 Sep 01) and does not compile in UT4 clean-master as well.
                    -Substance plugin is maintained by Allegorithmic; newer versions can be found at:

                    UT4 exclusive plugins:
                    UnrealTournament/Plugins/PackageContent Implements the 'share' button in the editor
                    UnrealTournament/Plugins/ContentOnly Example plugin; not actually a C++ plugin
                    UnrealTournament/Plugins/CustomBot Example plugin
                    UnrealTournament/Plugins/SampleGameMode Example plugin
                    UnrealTournament/Plugins/SampleMutator Example plugin
                    UnrealTournament/Plugins/WebMRecord Implements UTVideoRecordingFeature, which seems to be related to replays
                    UnrealTournament/Plugins/CorsairRGB Integrates Corsair CUE SDK into UT4 for keyboard/peripherial lighting (Windows exclusive?)
                    UnrealTournament/Plugins/RazerChroma Integrates Razer Chroma SDK into UT4 for keyboard/peripherial lighting


                      that looks pretty solid already, seems to work better than thought
                      Projects: UT4BombingRun | UTCC wiki


                        I think a Trello page will help us to help you. This is impressive progress and I think there is much to do. Let's track this and see how long each chunk takes, get a progress time log and perhaps, make a new process for future updating in GitHub?

                        This level of excellence needs recognition Epic Games...

                        DM-PSi ; DM-Genku ; DM-Untold Storage ; DM-Station (WIP) ; DM-HeatRay Physx (WIP)

                        DM/TSD-Formidable (WIP)


                          Awesome! I must applaud you sir for taking a lot of your free time to work on this game!
                          It is also so much motivating than thousands of other posts on this forum just explaining what should be done and doing nothing. You just sit and make things happen!


                            Nice work i will test it later this week if it compile too on linux os.


                              It's not clear what needs to be done exactly at this point, so would prefer to avoid making a Trello board for the time being. Additionally, most of the work at this point involves C++ and it's more convenient to keep those on Github issues since we can reference commits directly as well as other things.

                              Have not tested with Linux so not sure if it will work.

                              Before contributing to this effort, it is worth considering that:
                              -UT EULA does not permit distribution of binaries and the main .pak / other files so this branch can't be used without a compiler unless Epic either permits the community to distribute UT, or evaluates and distributes the custom UT build themselves.
                              -There is a good chance that Epic's internal UE4 branch differs from what is available on Github. As a result, they might not want to accept this patch. Alternatively, more work might be needed in order to adapt the UT4 source to the internal UE4 branch.
                              -The 'master server' code which is needed for internet play is not available, not likely to be released, and probably needs considerable effort from Epic in order to be updated. In the current situation it will probably be quite some time before that is possible.

                              Main question at this point is whether it is possible to:
                              -Test the UT4 game/client, including cooking UnrealTournament-WindowsNoEditor.pak and other files
                              -Test the UT4 dedicated server, including cooking UnrealTournament-WindowsServer.pak / UnrealTournament-LinuxServer.pak and other files

                              It's probably not a good idea for the larger community to work on this until the items above have been demonstrated as feasible, or until there is a clearer idea of the amount of effort needed to implement them.

                              Progress Update:
                              -'Development/Shipping Client' now successfully builds UE4-UnrealTournament.dll.
                              -'Development/Shipping Server' now successfully builds UE4Server-UnrealTournament.dll.
                              -Not sure if they can actually be run however, as that requires cooking the main .pak file and it is not clear whether any code is missing.

                              -Fixed a complicated bug with BlueprintContext module that caused Play-In-Editor(PIE) to fail when spawning additional processes in the editor.
                              -Starting a dedicated server in the editor with PIE mode works now.

                              -Started looking into cooking maps/packages in the editor; the 'Share' button exists now but the backend functionality needs to be updated.

                              Also updated the instructions; since the UT exclusive plugins are now compiling it is no longer necessary to delete all files in

                              instead, delete or move:
                              /UnrealTournament/Plugins/Substance (this was removed in a recent update but an older repository might have it)

                              After pulling the latest changes make sure to run GenerateProjectFiles.bat again, or else the build might fail.
                              Last edited by Sereau; 07-09-2018, 06:18 PM. Reason: fix formatting