Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash when executing Kismet Event Commands #68

Closed
DarioVangelista opened this issue Dec 9, 2021 · 3 comments
Closed

Crash when executing Kismet Event Commands #68

DarioVangelista opened this issue Dec 9, 2021 · 3 comments

Comments

@DarioVangelista
Copy link

Hello,
we have encountered a crash on UE 4.27.1 when executing a Kismet Event Command.
We are using v1.3.1 of the importer.

It happens in both our project and the ManiacMansion demo.

Repro steps:

  • press play in the editor
  • open the console
  • type 'ke* StatPerf' (but whatever command will trigger the crash)

From what I understand, the ArticyPackage needs to provide an implementation of UWorld* GetWorld() const;

This is blocking other people on the team from using Kismet Event Commands which is a problem.
I have avoided the crash locally by changing the implementation of UArticyBaseObject::GetWorld() to always return nullptr, but this is clearly not an actual fix and I have no idea how many things it might be breaking in Articy.

What should the actual implementation of UArticyPackage::GetWorld() be?

Thanks,
Dario @ YellowBrickGames

Articy_Crash

.
@peter-sabath
Copy link
Member

Hi Dario,

thanks for reporting this.

We think that the implementation in UArticyPackage::GetWorld() should be

UWorld* UArticyPackage::GetWorld() const
{
	return GetOuter() ? GetOuter()->GetWorld() : nullptr;
}

We will do some further checks for other unwanted side-effects but are confident that this would solve the problem.

@DarioVangelista
Copy link
Author

Hi Peter,
I tried your change and unfortunately it doesnt change the result.

I have UArticyBaseObject::GetWorld() as in the original code:
UWorld* GetWorld() const override { return GEngine->GetWorldFromContextObjectChecked(GetOuter()); }

And UArticyPackage::GetWorld() as you proposed:
UWorld* GetWorld() const override { return GetOuter() ? GetOuter()->GetWorld() : nullptr; }

Thanks,
Dario @ YellowBrickGames
Articy_Crash_2

@christian-schildt
Copy link
Contributor

Hi Dario,

thanks for the further information.

As far as I can tell, your workaround to always return nullptr should be fine for now.

It seems like that overriding GetWorld() in our plugin is no longer needed. A few quick tests confirmed this. Probably, removing GetWorld() will be our solution. But won’t publish the change until the new year.

christian-schildt added a commit that referenced this issue Jan 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants