Hi guys. Some of you may know, working directly with the hex and changing the value manually would be a hassle and may lead to a problem.
But, worry not. I've made a tool to accomodate this. It's called Unity Splash Screen Remover (USSR). Check this out!
Please give your feedbacks and don't forget to give it a ⭐ ^0^
Well, pretty damn controversial.., huh?
Are you a Unity Developer? Did you bother this logo appear in your game? Didn't have much money to buy the license? No worry, I will share to you how to remove Unity splash screen for free without any license $hit!
I haven't tried on some platforms because I haven't installed the dependencies needed to build games on those platforms in Unity. But, if you manage to remove the Unity splash screen using the method below, please make an Issue or contact me through my social media and let me know the details so I can get it straight away updating this thread.
Without further ado, let's do it!
By doing this, of course you violate the applicable terms of Unity Technologies. #DWYOR!
Install the following tools before proceed to Step-by-step section:
Install the following tools if you wanna work with another platform:
- Android
- WebGL
- PeaZip (Optional)
Before doing the actual work, don't forget to always backup the original files.
If you build a new game with different Project Settings, you need to remove the splash screen again to avoid any errors. Don't just replacing using the old modded globalgamemanagers or data.unity3d file.
You may want to read PC, Mac, Linux Standalone section first and the rest to know the context then read the Universal section.
Unity will use globalgamemanagers file directly in your game if you choose the Compression Method to Default. While LZ4 & LZ4HC, Unity will pack/compress globalgamemanagers file and other resources file into data.unity3d file. So, removing Unity splash screen will be much more easy if we can get globalgamemanagers directly.
Sadly, if I try to open data.unity3d file using UABE, UABE can't open it.
But, with this great fork of UABE, UABE Avalonia can read data.unity3d file seamlessly. UABEA is similiar with UABE, but the downfall of it is that UABEA didn't support editing like UABE. That's ok, we can edit it with external tools. Okay, let's remove the splash screen.
-
Open
data.unity3dfile using UABEA. If UABEA prompting to decompress the data to File or in Memory, I prefer to Memory. -
Choose
globalgamemanagersthen Export. Save it asglobalgamemanagers-mod(or whatever name you want). -
Start editing
globalgamemanagers-modeither using UABE or HxD. How to do it? Read PC, Mac, Linux Standalone section. -
After removing the splash screen in
globalgamemanagers-mod, back to UABEA. Still choosingglobalgamemanagers, Importglobalgamemanagers-mod, it will replacing the originalglobalgamemanagersfromdata.unity3d. -
You're done! Save it as
data-mod.unity3d. Move or rename originaldata.unity3dtodata-original.unity3d, then renamedata-mod.unity3dtodata.unity3d. -
data.unity3dfile size produced by UABEA is much more larger than the original file, you can compress that. Open moddeddata.unity3din UABEA, then go to File > Compress. Choose either LZ4 or LZMA (LZ4HC), it's up to you.
This is the easiest way to remove Unity splash screen. You just need to edit unity default resources file in your build.
PC: GameTitle_Data/Resources/.
Android: assets/bin/Data/. Steps for decompile & recompile APK file, please refer to Android section.
-
Open
unity default resourcesfile using UABE. -
Search for
UnitySplash-cubewhich is type of Texture2D then view the data. -
Set the
m_Widthandm_Heightvariable to0by double click it. -
Don't forget to set the
Draw ModetoAll Sequentialand Unity logo duration to 2 second, Player will not notice that blank Made with Unity splash. If theDraw ModeisUnity Logo Below, it will resulting in a weird splash screen where your logo isn't in center but on top. -
DONE! Save then replace original
unity default resourcesfile.
-
Prepare your game that has been built.
-
Go to the
Game Title_Datafolder and backup theglobalgamemanagersfile in case of errors. -
Open the
globalgamemanagersfile using Unity Asset Bundle Extractor (UABE). -
Click
globalgamemanagers (Assets)in Files and Components. SelectUnnamed assetwhich is of typePlayerSettingsthen click View Data and... -
BOOM! Error................
This happens because UABE didn't support parsing those particular data.
-
We will fix that problem later. For now, let's see how to work with UABE if your Unity version is fully supported by UABE.
As you can see, we can access PlayerSettings. If we change the value ofm_ShowUnitySplashScreentofalse(by double clicking) then the entire Splash Screen will not appear when starting the game (the Made with Unity logo will also not appear automatically) and as you can guess, if we change the value ofm_ShowUnitySplashLogotofalsethen the Made with Unity logo will not appear.But, by just removing the Made with Unity logo will not work if the Made with Unity splash logo is still listed in
m_SplashScreenLogos. To fix this, we can simply delete the array item that contains the Made with Unity logo. Great!Not tested though. But, it's a great way to ensure that we completely remove the logo.
-
Now let's move on to other settings. Move to Asset List tab and open
BuildSettings: -
Select
hasPROVersionand change the value totrue: -
Save your changes (IDK why Apply does nothing). UABE cannot overwrite the file that being edited, so just save it as
globalgamemanagers-mod. -
Close
globalgamemanagerson UABE or simply close UABE app, delete the originalglobalgamemanagersfile or rename to something else then renameglobalgamemanagers-modtoglobalgamemanagers. -
Try running the game and be surprised!
If you've read all the steps above, you should know what the problem is. UABE can't deserialize some or entire data of globalgamemanagers. That's why the Hex Editor is coming for! We will edit boolean m_ShowUnitySplashScreen and hasPROVersion manually using HxD.
-
Open
globalgamemanagersfile using HxD. -
First, we remove the splash screen. Search your Company Name or Product Name (in my case it's
kiraioandBungaku) until you get like the image below.
Notice the first Question Mark (?) after the product name, right after that there's a hex value01 01(in my case, it's in offset: 1060 and 1061). If you change the hex value of the first01to00then the Splash Screen will be disabled, while the following01sets whether the Made with Unity logo will appear or not. -
Now we need to switch the
hasPROVersionboolean totrue. Search the name of a scene that you included in the build or your Unity version until you get like the image below. The highlighted hex value (offset: E7A4, 20 offset before the Unity version) is the booleanhasPROVersion. Change to01value to enable it. -
Boolean Unity splash screen (
m_ShowUnitySplashScreen) was discovered by the YouTube channel Awesomegamergame in his video https://www.youtube.com/watch?v=xvh0AeZCX9E. But the way he just change the Unity splash screen boolean value to false doesn't work in other versions of Unity. I think this thread as a complement to his tutorial.
-
Prepare your Unity Android game.
In the image, I used the
.apksformat which is basically just a.zipfile, so I just extracted it and got 2 files namelybase.apkandsplit_config.arm64_v8a.apk. After I finished doing the step below, I archived files again to.zipand changed the name of the extension to.apks. -
Open APKToolGUI (Make sure you meet APKToolGUI requirements).
Drag and Drop the APK file (If you using.apksfile, just drop which you guys think is the main APK, in my case isbase.apk) to the APK File section. APKToolGUI will automatically decompile the APK. -
Go to the decompiled APK folder then go to
assets/bin/Datafolder, you will find theglobalgamemanagersfile. -
Do the same as in PC, Mac, Linux Standalone section.
-
After finish editing
globalgamemanagers, go to APKToolGUI and re-compile the decompiled APK folder. -
DONE!
-
For those who have uploaded the game to the App Store (such as Google Play), make sure to sign your APK consistently. If not, when you update your game that is already installed on Android, an error
Signature is inconsistent with an existing applicationwill appear.Not fully tested!
For new apps, it might be time for you to start signing APKs consistently.
You can generate a Keystore in Unity, go to
Project Settings > Publishing Settings > Manage Keystore(Make sure you have switched to Android platform).
If you want an easiest way, please go to Universal: data.unity3d section.
I just discovered that my Unity Android game is using data.unity3d file to store the globalgamemanagers file like in WebGL:
The steps to remove the splash screen is same as before. The boolean m_ShowUnitySplashScreen is same after the first question mark:
While boolean hasPROVersion is slightly different with globalgamemanagers in PC, Mac, Linux Standalone.
12 offset before the 'cutted' Unity version:
I thought I would give up on the WebGL build because I think the globalgamemanagers file was in WebGL.wasm file which is currently there's no good tool to decompile Web Assembly.
But after digging deeper, I found a hint that the globalgamemanagers file is in the WebGL.data file, in the end I was able to remove the Unity splash screen in the WebGL build :)
-
Prepare your Unity WebGL game, then go to
Buildfolder. -
If you build using Brotli (
.br) or Gzip (.gzip) compression, you can install PeaZip or any archiving tool to extractWebGL.data.brorWebGL.data.gzipand get theWebGL.datafile. After removing the splash screen, you can archive it back into the original extension.Did you know? You can unpack the content of
WebGL.datafile using Asset Studio, there you will get this:The
globalgamemanagersfile is insidedata.unity3dfile. I tried to open it in UABE but UABE unable to open it. If you know how to unpack and repackdata.unity3dfile, let me know!Even I can unpack
WebGL.data, still I didn't know how to repack it back :( -
With all the limitations above, there is no other way but to edit the
WebGL.datafile directly. Open theWebGL.datafile using HxD (Don't forget to backup the original file!). -
Search your Company Name or any of string I highlighted below:
-
This time, boolean
m_ShowUnitySplashScreenisn't after the first question mark that appear after the Product Name, but after the Double Quote ("). Change the hex value (in my case, it's offset: 59CEF7) to00to disable the splash screen.If you change the following highlighted hex value:
01to00, will resulting in some sort of Active Input Handler error. So, don't do that! -
Now, we need to search where boolean
hasPROVersionlocated. This is the trickiest part...
I found a hint to search the boolean using the first 40 characters (from the front) ofm_AuthTokenstring.077fc7b716f3938b594d7ec67f4107f3e125c97d
I got it from the
globalgamemanagersfile of my game that was built on another platform.m_AuthTokenis different for every installed machine. So, you need to build your game into another platform first. If you dilligent enough, you can manually search the string from offset5A3E00to offset5A4000or use the string I highlighted below: -
I tried reversing every hex that has
00or01value before the string we are looking for.
Finally, I found it! The red highlighted hex (offset: 5A3EBA) which has a value of01(I have changed it to00in the picture) is the booleanhasPROVersion, while the black highlighted hex (offset: 5A3EBE) is the booleanisDebugBuild.I'm confused why
00which should befalsebecomestrueand vice versa. -
Save & DONE!
- If you choose Compresssion Method in Build Settings to Default, Unity will use
globalgamemanagersdirectly without packing it intodata.unity3dfile. So, it will be much easier to remove the splash screen. - No difference between Development build and Release build.
- No difference either Mono/IL2CPP scripting backend.
Tested and work on games built with the following versions of Unity:
- Unity 2021.3.39f1
- Android (#2)
- Unity 2020.3.39f1
- PC, Mac, Linux Standalone
- Android
- WebGL
- Unity 2019.4.12f1
- PC, Mac, Linux Standalone
- Android
- WebGL
Worked? Please, give it a star ⭐ and tell everyone by making an Issue.
Have a trouble? Make an Issue.
Have another way in mind? Make a Pull Request.
Many thanks to this fellas:
- SeriousCache for Unity Asset Bundle Extractor (UABE)
- nesrak1 for Unity Asset Bundle Extractor Avalonia
- Maël Hörz for HxD Hex Editor
- iBotPeaches for Apktool CLI
- INF1NUM | AndnixSH for APKToolGUI
- Awesomegamergame for discovering splash screen offset
- and others I didn't mention...



































