Packaging Problem: Bug only occurs in "Shipping" Build and only for one person

I have a gamebreaking bug that only occurs with a single tester, but only in the shipping build. If I package a “Development” build, the problem doesn’t occur.
Since the problem only occurs with him and then only in the shipping version, I don’t know how to fix the problem. Has anyone ever had a similar problem?

Here is the specific description of the error:
I have built a Match-3 game and have all input events (e.g. mouse clicks) in MyPlayerController, which then controls the matching of the tiles. However, none of these input events triggers, neither “pressed” nor “released” (neither Mouse-Input nor Key-Inputs)! He can open menus normally though, so it really only affects the InputEvents in MyPlayerController.
And the strangest thing is, if I send him the exact same version as a “developer” build, everything works. So the bug only occurs in the “Shipping” build and only with him. Everything works perfectly for me and others.
I’ve already sent him several shipping versions, but the bug always occurs. So the problem must be somewhere in the packaging, but I don’t know what to do.

I tried both packaging methods:

  • File → Package Project → Windows (64bit)
  • Windows → Project Launcher

Attached all packaging settings as screenshots


Is it possible that the inputs are being consumed by another input action? Maybe triggered by something in the UI settings he might be selecting?

Hm could be, there is a HUD/Widget opend the whole time. Is there a way to check if Inputs are consumed by another Input? But the question is why should it work in Development Build but not in the shipping Build.
Settings for my InputActions are: Consume Input: Check; Execute when Paused: Uncheck and Override Parent Binding: Check.

I had a similar problem with a gamepad input that wasnt working. Particularly the circle button. I found that I had an input event in the level blueprint (i dont know what I was thinking) that no matter what I tried it wouldnt allow input.

I checked my input actions and found I had two different actions using the same button. I deleted the input in the level bp and it suddenly worked… I guess for whatever reason despite having consume input unchecked it still consumed it. Possibly because it was being called in different blueprints…

Maybe the widget is doing the same to you in a similar way…? I’d probably do some digging into those input actions and see if you cant find some discrepancies.

It is weird only doing it on development… Perhaps because you have the extra functionality for debugging in the development and not shipment?

The input node has an option to “consume input” or not.
Setting it to not consume would have it correvlty run both function calls.

Some times, there are reasons to have input stuff not be inside a character - rare as it may be.

I only use the MouseInputClick at this one point in the project. Also tried new InputEvents, doesn’t work.

I removed all Widgets from the game → Bug still there.

I was able to test it a bit more now. The person cannot trigger any input events, neither in the title screen nor in the game (two different maps, two different player controllers)! However, he can select and confirm menus with the mouse and can navigate the menu with TAB+Arrow Keys (so keyboard/mouse works).
But none of the InputEvents ever trigger “Pressed” or “Released”!
Problem only happens in Shipping build, not in developent build.

I’m completely stumped at this point. :frowning:

Could the shipping build simply be missing the input mapping?

1 Like

How could that happen?
Also the bug occurs only with one person. When I test it, everything works. Also if others person test it, everything works.

A missing or corrupted .ini file.

I think we are missing something here (or maybe i didn’t read it right).

Is this an actually shipped and distributed product for which you received a bug report?

If it is, then the user has to use whatever method they have for obtaining your product to verify the integrity of their files.

If you really want to be a “grat” indy dev, you may consider mailing him a zipped build to test which you absolutely know works.
Personally, I wouldn’t. The distributor is in charge of that stuff for various reasons. Nothing prevents this person from taking what you gave them to re-distribute it free of charge to others.
What you could do, is mail them an INI file to manually replace whatever file he’s got - thats probably also unnecessary since eveyrithing should be restored to be exactly what you packaged for release.

The only other thing you could do is to try and acquire the game as you would if you were a customer by granting an account you know a free license.
Assuming you can then install and run thing’s just fine, you know for sure that the person reporting the issue has a corrupted set of files…

It’s on Steam and he wrote me an mail with that bug.
I wrote to him and sent him a shipped version via zip (which works for me without any problems). I also watched with him via screen share and played through various things (“Printing” to textblocks on screen so I know if InputEvents trigger or not).
I know he could resell this version, but I also sell my game on itch io, so he could also do it with this version from there.

So he has exactly the same version as me, except that it doesn’t work for him. Don’t you know why something should be missing from him? The Version also doesn’t install, it’s just the .exe.

It may be a bug, but what MostHost_LA said about the INI might be corrupted. Can you see the mappings in the INI?

I see all binding in my DefaultInput.ini, but only in my project folder. The shipped version combines all files into .pak files, so there is no .ini file.
Or does unreal create these .ini files somewhere else?

Usually, the ini should be encrypted.
Not sure if it’s possible that this is the issue if you have that setting checked.

IF things work for you - but not for the user - perhaps the user has something wrong with their machine.
You could ask for an MsInfo32 to poke through the various drivers/peripherals and see just what that may be… (even then, it’s nothing but an educated guess really?)

1 Like

Its my understanding pak file or not the INI is accessed anyway somewhere in the files at start. Have you perhaps renamed the project or is the default engine INI file showing your project name correctly at the top? If something in the directories is misspelled or named differently it might not recognize the INI… Hope you can get this resolved.

1 Like

To that affect - if you aren’t on Windows, file paths ARE case sensitive.
Never really been a problem on anything I published so far, not even for android, but if you typed in a path manually somewhere for whatever reason and you know this, Maybe, it’s a case sensitive issue…

I had everything unchecked for crypto. Maybe that was the problem.
I now packaged my project with everything checked like in the documentation. But still there are no .ini files in my packaged project.
The only thing that is in my packaged project is:
Folder: “[ProjectName]”, Folder: “Engine”, “[ProjectName].exe”, “Manifest_DebugFiles_Win64.txt” and “Manifest_NonUFSFiles_Win64.txt”.
Did I miss something?

Whether I check or uncheck the “Excrypt Pak Ini Files” in ProjectSettings-Crypto, I don’t have any .ini files in my packaged/shipped project.
Didn’t rename my project. The “DefaultEngine.ini” in my project folder has the same Project Name like in my Project Settings.

Also I’m on windows.

Sounds about right to me.
To not package the .ini file you need to take special steps anyway Usually. Unless maybe the project came from a very old version of the engine and was upgraded - maybe.
In reality, even the project I ported from .14 doesn’t have a non packaged ini file when published for shipping…

That said, have a look inside the engine folder - just to make sure.

1 Like

I just upgraded the project from V4.25 to V4.27.
I don’t have an .ini file anywhere (searched for it). The only thing I have is my “[ProjectName]-WindowsNoEditor.pak” under [ProjectName]\Content\Paks
Is it the problem that I pack it as WindowsNoEditor?
Where should the .ini files normally be located?

No. WindowsNoEditor simply means that the EXE/Pack are set up to function without the editor.
Try this process, see if it changes anything.

You should probably set up a clean VM, install the thing from steam, launch it, and search for it.
It’s probably something like
%AppData%\..\Local\<UE4 Project Name>\Saved\

If you look on your machine, you may find some .ini files into that too.
I actually haven’t ran my own stuff locally in over a year. So even though I checked my local app data and roaming folders, there’s nothing there.
I won’t have time to run a test until next week the way things are currently…

Check your local save folders - Also, on the customer machine, you could suggest attempting to run the game as administrator. The thought being that maybe UAC is preventing the unpacking of the needed files?

1 Like