I guess you have a compiled DLL with old Slate code that is not compatible with latest api.
When updating I always delete compiled DLLs (UE4Editor-ProjectName.dll) in ProjectName\Binaries\Win64\ folder and then I hit Build for ‘Development’ | ‘Win64’.
My problem now is that I can’t open any of my levels because of a versioning bug. Latest preview has a higher engine version than the final release one.
If in your project you are getting linker errors for unresolved types that are now declared in SlateCore, you may be missing a dependency to 'SlateCore'.
Can you tell me the repro steps for this? At a high level what are you trying to do? You are clearly in the editor, but are you running PIE? How does RenderNetworkMenu get triggered?
And your commandline?
The OnlineSubsystem is trying to figure out if it should be in “server” or “client” mode and it is missing some data at the time of the determination. As a fallback, it calls a function on the UGameEngine by design because it is not standard practice to do “networking/multiplayer” say while running outside of PIE but in the editor.
I need to figure out the combination of things that makes your code run the way it does.
Typically we run multiplayer with the editor executable via -game, -server, or clicking the PLAY button in editor. When running multiplayer in PIE, its usually for a minimal subset of things. You can get Unreal Networking in there and not use the OnlineSubsystem.
It’s hard to explain, so let’s hear what you’re up to and I’ll see what I can do to help you out.
Arr yes, this is probably related to my other post about c++ network. To keep things short, we couldn’t figure out how to always open our packaged game as a listen server without using the command line. So as a work around, we have our game reopen the map with ?listen if it’s a standalone.
I didn’t expect it to crash the 4.2 editor though. Im so sorry if it cause you any trouble. Perhaps there’s a better way to configure our packaged game to always open as a listen server? I notice that shooter demo is configured to do this but I just couldn’t find out how…
Killer Penguin is your issue resolved now? or is there more?
[QUOTE=mordentral;68384]
FStaticPrimitiveDrawInterface::DrawMesh no longer takes 4 arguments.
Old Function
```
virtual void DrawMesh(
const FMeshBatch& Mesh,
float MinDrawDistance,
float MaxDrawDistance,
bool bShadowOnly = false
) = 0;
```
New Function
```
virtual void DrawMesh(
const FMeshBatch& Mesh,
float ScreenSize,
bool bShadowOnly = false
) = 0;
```
Since pretty much every instance of drawmesh was using 0,FLT_MAX anyway I think they felt it appropriate to cut it down to the FLT_MAX.
[/QUOTE]
Thanks for sharing this info Mordentral !
:)
Rama
Well I don’t expect it to crash either, which is why I need to understand better how you are running it. You launch the editor with WHAT for a commandline? And then you do WHAT do start the game? You aren’t just starting a listen server inside the editor while its ticking are you? You use the PLAY button with some configuration?
Launching as a listen server without commandline arguments is demonstrated in ShooterGame. Try the following.
FString NewURL = "mapname";
if (IWantAServer())
{
NewURL += TEXT("?listen"); //and anything else you need
}
World->ServerTravel(NewURL, true, true);
I would really like to repro that crash before you move on. So any details you can give me would be appreciated.
HAHA… man, I’m glad people like you are on these forums Rama. So I’m back today, feeling slightly more rested lol. Just tried to re-compile my 4.2 build from yesterday and no go. I saw that you have some custom private paths, but the issue I’m having now is my custom JoystickState class is complaining that my JoystickDevice.h header cannot be found. However, both of them are sitting in the same directory and same filter in Visual Studio under …/JoystickPlugin/Source/Private. The only other internal folders I have is for …/Source/Classes and also for …/Source/Public. Yesterday, after adding the code to 4.2 in the correct directories, I went into my Project Properties and added my …/Source, /Source/Private, /Source/Public, /Source/Classes and even the Immediate/…/Src directory that contains the generated files but the compiler is still not able to see it. I’m pretty sure I started making these plugins since 4.0.1 and haven’t had a problem with this until now. Let me know what you think and I’ll keep seeing if I can figure out the answer to this one. Thanks!
Yea! Same thing happened to me, being in same directory is not enough! You need to add the private include path for the exact directory they are sitting in.
I’ve not tried to update my plugin yet, so I dont know what exact includes will be needed.
Can you post what exact include paths you are using and what your directory structure is?
Maybe someone from Epic will be able to spot the issue
Ahh I see. Well glad and also not glad, in your case lol, that others are having the same issue. Definitely…
PrivateIncludePaths.AddRange(
new string]
{
"Castellana/JoystickPlugin/Private",
});
I’ve always found it funny how those paths are written and a little confusing. Only because under Plugins its Engine\Plugins\Castellana\JoystickPlugin\Source\JoystickPlugin\Private. I’ll be moving those plugins into another directory when I release them to the community but I just used my last name to distinguish the difference for now.
Here is my structure at the moment for two plugins I developed for my game, right now the JoystickPlugin is complaining but I’m sure my SaitekX52Pro one would and is being masked by the missing header error.
Exactamundo! The reason it’s typed like that is because I ended up following how the BlankPlugin template looked…
PrivateIncludePaths.AddRange(
new string] {
“Developer/BlankPlugin/Private”,
// … add other private include paths required here …
}
The Castellana folder sits in the same root that Developer does and was more or less created to group what I was personally creating.
UPDATE: So I tried this after I started writing this post and now I’m more confused as ever What you said to try actually worked and now looks like this…
PrivateIncludePaths.AddRange(
new string] {
“JoystickPlugin/Private”,
// … add other private include paths required here …
}
The reason I am seriously confused, however excited that it compiled, is because the way I was doing it before worked in all other previous versions of the engine and that my other SaitekX52Pro plugin still at the moment has Castellana as a prefix, only the JoystickPlugin cared about it to compile. Why one cared and not the other is now an unsolved mystery. I’ll test them out to make sure they are fully working but I hope Epic can make some sense of this so I know for my own sanity before I release these to the community.
Thanks Rama, great recommendation… Looks like it saved me!
SECOND UPDATE: Sorry for missing this one, to answer your questions about the Classes folder, no I didn’t. I’ll take care of that now, thx for the heads up on that as well!