[Dedicated Server] Missing SDL3.dll when it starts...

Hello, I’ve been trying to solve this problem for months. I package the dedicated server for distribution, and when I start it, the following message appears: Assertion Failed: Missing SDL3.dll

I’ve already tried copying the dll from another software and putting it in the Win64/Binaries folder, but it didn’t work, I don’t know where this dll is from, if I pack the normal game, this DLL is also not generated and no errors occur.
image

Any type of third party libraries usually go into the “ThirdParty” directory. Check if your packed project has this folder.

Yes, it has

Try putting the dll there maybe. Never had this error personally.

I tried it too and it didn’t work. I put the file explorer to search for SDL3.dll in the editor engine folder and see which plugin it comes from, maybe copying the path of the folder with the dll will make it work again.

I looked for the file, SDL3.dll does not exist anywhere in the engine and does not belong to any plugin, nor do internal or third-party modules, the engine is simply trying to load this DLL from beyond for an unknown reason and no log or debug is generated, it simply shows nothing, practically everything needs to be reverse engineered.

Seems sdl files were needed in some versions of the engine when packing for Linux.

Is this the case with your dedicated server package?

Though it should be done by the engine itself.

I’m packaging for Windows only

Maybe it’s an old bug

1 Like

Interesting, I’ll try that after lunch, thanks, I’ll get back here with news.

Sorry for the delay, after 33 hours of compiling the engine, I found out that it didn’t work, but then I packed the dedicated server to the “Debug” target and it showed this log:


I think this was my Elevator Blueprint, and I believe it is the Text3D component of the Text3D plugin, it seems that this is not being packaged on the Dedicated Server, only on the client, it is the only place in the game that I use this component.

Does the plugin have an option to package it? If so you can copy over the packed plugin and it should work (I do that with custom nodes for bp projects)

I’ll try, but it’s an engine plugin, how do I do that?

Ok that changes the situation a bit. How are you organizing your server? Is it a completely separate project with it’s custom uproject file or is it a mixed client / server project with the server target file?

It’s a mixed project, I’m using the same project for server and client, but I package them into separate folders before updating on Steam.

Ok narrowed down the cause. This is from Text3d.uplugin the plugin’s config for text 3d.

Notice the TargetDenyList Server.
It doesn’t pack by design as ui elements don’t exist on dedicated servers.

You could clone the plugin into your project and remove the deny list entry and in theory it would pack, but the question is why do you need ui elements on the server if there is no graphics there?

the pre processor

#if !UE_SERVER
// your code here
#endif // !UE_SERVER

can be used to strip elements on the server (notice the ! to negate the is server check)

1 Like

Yes, I will do it, just so I don’t have to clone the project, refactor the project code to server mode and wait for hours of compilation, I’m not sure if that’s the exact reason for the error, but I’ll try.

You only need to compile the engine once, unless you need to make engine source changes.

In this case you can just clone the plugin itself and you should be good to go. You might need to temporarily hide it in the engine (you can zip it) so that there is no conflict between the two versions.

I’m waiting for it to finish, it’s impossible to get around this, every time I build just the .sln project it completely compiles the engine, it’s still faster than clicking rebuild, it still takes about 19 hours for each line of C++ code you change. My CPU is an I7 7700K Octa Core 4.20 GHZ and 16GB RAM 2400mhz

Is your project set as the default project in visual studio (it’s name should be in bold letters).

if “UE5” is in bold then you are automatically compiling the engine and not your project.

Should be like this:

1 Like