[Bug?] Config files not always updating

Hi,

I edited the Default ini files present inside my project folder, it appears that Rocket read them randomly. Unfortunately I can’t provide exact data as I don’t know why Rocket choose to ignore sometimes my changes. In UDK every time I updated my default files got the new values updated inside the generated config file. It seems currently that Rocket generate a weird type of ini file that doesn’t write any data changed.

For example, with my DefaultEngine.ini file :

[URL]
Map=/Game/Maps/test_exil
LocalMap=/Game/Maps/test_exil
TransitionMap=/Game/Maps/test_exil
GameName=EXIL

[Engine.Engine]
+ActiveGameNameRedirects=(OldGameName="TP_ThirdPerson",NewGameName="/Script/EXIL")
+ActiveGameNameRedirects=(OldGameName="/Script/TP_ThirdPerson",NewGameName="/Script/EXIL")
+ActiveClassRedirects=(OldClassName="TP_ThirdPersonGameInfo",NewClassName="EXILGameInfo")
+ActiveClassRedirects=(OldClassName="TP_ThirdPersonCharacter",NewClassName="EXILCharacter")
bSmoothFrameRate=true
MinSmoothedFrameRate=22
MaxSmoothedFrameRate=62
NearClipPlane=1.0

[SystemSettings]
; NOTE THAT ANY ITEMS IN THIS SECTION WILL AFFECT ALL PLATFORMS!!!
r.TemporalAA=0
r.SSR=0

; Default game resolution to 720p
ResX=1280
ResY=720

UseVsync=False
Fullscreen=False

[UnrealEd.EditorEngine]
bSmoothFrameRate=true
MinSmoothedFrameRate=15
MaxSmoothedFrameRate=62
NearClipPlane=1.0

Notice the r.SSR=0 property, unless I deleted the config folder inside Project\Saved\, this value was kept as r.SSR=1 (in editor the rendering was still with the Screen Space Reflection while my ini file told the engine to not to use it). Same thing happened the other day with the NearClipPlane property, the value was updated after a reboot of my computer. That’s very strange because my [URL] section seems to be read correctly.

Also, the file Engine.ini saved inside the Project\Saved\Windows\Config folder do not store any values typed inside DefaultEngine.ini file, why ?

Maybe it’s a bug, maybe the engine don’t see correclty the updated ini files ? That’s painful when you are tweaking the engine and need to relaunch a dozen of time to get the change applied.

One more idea: If you modify and save the ini file located in “project”/Config, and then you delete all the ini files located in “project”/Saved/Config, and then launch the editor, does this fix the issue?

Ha nice, it looks like it fixed the problem when removing the Saved\Config this time (it had no effect in the previous beta, that’s why I didn’t tried that until now). Thanks !

Okay, the new beta (build 1808360) is even worse on this subject :
I simply can’t change the clipping plane. No matter where I change the value (BaseEngine.ini or DefaultEngine.ini in my Project folder). 20 by default is way too much.

I would really like to see a fix about these config file, because it start to be hard to work normally.

Hi Fabrice,

Again, this is not an issue that occurs for us. I tested in Beta 4 by setting up a scene with a Camera and noted the clipping distance. I then closed the Editor and modified the BaseEngine.ini by setting the NearClipPlane to 5.0. When I re-opened the Editor and checked the scene, the clip distance had clearly changed.

So, some questions for you again.

  • Is this new issue (the clipping plane) occurring in both our included Sample projects (like ShooterGame) as well as your own custom project?
  • Do you have Administrator access on your laptop?

Thanks!

Hi,

I’m full administrator of my Computer, Rocket is located under “C:\Rocket\”, my projects under “C:\Rocket\Projects\”.

I have tested this issue on 3 projects :

-ShooterGame : In the Default.Engine.ini, the clipping is at 3.0, I put it at 20.0 to see. No change at all.

-My EXIL Project (created with beta 4, not inherited from beta 3) : 1.0 in DefaultEngine.ini, no change : it’s like it is currently at 10.0.

-A new FPS template project : The clipping plane here was modified in BaseEngine.ini before creating the project. The clipping seems fine. I’m able to update it by modifying DefaultEngine.ini.

I have no idea why it works with my new project and not on the two other. I’m using exactly the same lines in the config files (I copy/paste them) :

[/Script/Engine.Engine]
NearClipPlane=1.0


[/Script/UnrealEd.EditorEngine]
NearClipPlane=1.0

For the example with ShooterGame: after you set the value to 20.0, and you save DefaultEngine.ini, close it, open ShooterGame in editor (and see no change)… if you then close the editor and open DefaultEngine.ini again, what value is saved in the file? Does it keep your change of 20.0, or does it revert to the original 3.0?

The value doesn’t change in the file, I put it at 20.0, it stays at this value. No change, no warning that the file as been changed (since I keep it opened in notepad++).

The config system has been changed to only save out values that differ from the defaults to the Saved .ini file. It is possible that a bug was introduced that always saves out this value, even if it did not change. I have added a TTP to investigate this specific problem.

I’m still blocking on this problem, this time for registering a binding. No matter what Key I try to register. I even tried to remove the full config folder in the saved folder of my project, it doesn’t change anything.

[Engine.PlayerInput]
+ActionMappings=(ActionName="Jump", Key=SpaceBar)
+ActionMappings=(ActionName="Jump", Key=XboxTypeS_A)
+ActionMappings=(ActionName="exitgame", Key=Escape)

and

void AEXILCharacter::SetupPlayerInputComponent(class UInputComponent* InputComponent)
{
	Super::SetupPlayerInputComponent(InputComponent);

	BIND_ACTION(InputComponent, "Jump", IE_Pressed, &AEXILCharacter::OnStartJump);
	BIND_ACTION(InputComponent, "Jump", IE_Released, &AEXILCharacter::OnStopJump);
	
	BIND_ACTION(InputComponent, "exitgame", IE_Pressed, &AEXILCharacter::ExitGame);
	BIND_ACTION(InputComponent, "exitgame", IE_Released, &AEXILCharacter::ExitGame);
}

void AEXILCharacter::ExitGame()
{
	elog("Exit");
}

My log function is never called. It’s starting to be very annoying to work. :'|

Deleting your saved folder should have removed all possibility of a stale config file. Maybe the escape key is getting handled before your code has a chance to process it. Try some other unused key. Escape should be usable by game code, but there is a chance something else erroneously handles it first. (Escape is used to exit PlayInEditor, so maybe that is affecting your binding)

I already tried, like “P”, “NumPad0”, “Enter”, and so on. Even the xbox controller inputs. None of them worked.

Does Jump work in that example? If you make a new project using the “Third Person” code template can you jump?

Yes, I can jump, I can even change the key of the jump call by the way. But my own “ActionName” is not registered.

Sorry if this comment appears twice, but it seems as though I accidentally deleted the first one.

I recreated your environment by creating a new project using the “Third Person” template. I modified SetupPlayerInputComponent like so (just like yours):

void AMyProject19Character::SetupPlayerInputComponent(class UInputComponent* InputComponent)
{
	Super::SetupPlayerInputComponent(InputComponent);

	BIND_ACTION(InputComponent, "Jump", IE_Pressed, &AMyProject19Character::OnStartJump);
	BIND_ACTION(InputComponent, "Jump", IE_Released, &AMyProject19Character::OnStopJump);

	BIND_ACTION(InputComponent, "exitGame", IE_Pressed, &AMyProject19Character::ExitGame);
	BIND_ACTION(InputComponent, "exitGame", IE_Released, &AMyProject19Character::ExitGame);
}

And added ExitGame like so:

void AMyProject19Character::ExitGame()
{
	GLog->Logf(TEXT("ExitGamePressed"));
}

And modified DefaultInput.ini like so (similar to yours, but I used P instead of escape so to not conflict with exiting out of PlayInEditor when I press it):

[Engine.PlayerInput]
+ActionMappings=(ActionName="Jump", Key=SpaceBar)
+ActionMappings=(ActionName="Jump", Key=XboxTypeS_A)
+ActionMappings=(ActionName="exitGame", Key=P)

I compiled in Development, ran the editor, entered PlayInEditor, and pressed P. It caused the log “ExitGamePressed” to appear as expected.

Can you try to reproduce using the same steps I did on your machine? Maybe there is something special about your dev environment (hardware or OS updates) that is affecting this.

I just created a new project and copied the code you typed to be sure I didn’t made any mistake. I also changed the DefaultInputs.ini file of course.

Unfortunately, no changes : even with a fresh project the input is not recognized.

I have asked the QA Team to attempt to reproduce your issue, we will see if they can learn something.

It sounds like your project is configured correctly. The only other thing I can think of is that maybe your game is not loading the code you think it is loading. Be certain that you are building your MyGameEditor target in Win64 Development and that the build is successful. Write a new function, call it from your constructor and put a breakpoint in it to make sure the code you are writing is actually being built and loaded.

Thanks, I can assure you that I built the project in the Development mode (win64). :slight_smile:

Hi Fabrice, EngineQA has not been able to reproduce your issue yet. I have some questions:

  • Which Rocket build are you using? (Beta 3, or Beta 3 version 2)
  • What are the basic system specs of the system you are using?
  • Are you able to test this issue on another computer?
  • When you are editing and saving DefaultEngine.ini, are you doing it in VisualStudio, or are you editing the file directly in Notepad?

Thanks for any more information you can provide.

Two more questions to add to the list:

  • Besides “Third Person (C++)”, do you experience this issue with other types of projects?
  • Where are you saving the projects when you create them? (MyDocuments, Desktop, Program Files, etc?)

Thanks!