How are projects with plugins on unsupported platforms supposed to work?

I have a question that is born out of pure ignorance.

On a very basic level, how are plugins that only work on one platform handled on a unsupported platform? I ask because I would have assumed that trying to build a Win64-only plugin on Mac would fail, but it doesn’t appear to. It doesn’t actually build any of the source files, but it does something and apparently returns success?

Say I - for instance - have a plugin for performing some Steam task, and this plugin is only lists Win64 in its PlatformAllowList. Now if I enable this plugin in a project, is the idea that this project should not be possible to open on a Mac or Linux, or is the idea that the project will still work on Mac and Linux, but it is up to the blueprint (in this case) developer must add runtime checks to avoid attempting to use the plugin on Mac and Linux?

depends on the plugin.

you should think about the platformAllowList as a “whitelist”. which means platforms that the dev has ensured (hopefully) that it works.

if the plugin depends on binaries, (.dlls, .so, etc) or other scripts for a specific platform, or the code itself calls APIs/code only available on a specific platform, then it will require work to make it work.

if the plugin is just code, and if it’s only unreal code (e.g. only working with ue classes and types), then chances is it will work out of the box.

there are some differences between platforms though, so sometimes they behave differently.

1 Like

Often plugin creators don’t have access to a mac so they don’t say it’s supported, even though more often than not, it will work fine.

It would actually be really handy if mac users were to contact the plugin developers and let them know if there are problems or if it works correctly - often they’ll get it working if there are issues, or if it works fine, then they are able to add mac to the supported list.

2 Likes

Yes, we have actually encountered that with one of the plugins we’re using – just adding Mac to the list and building it yielded a functional plugin (from what we’ve seen so far). We will definitely contact the developer and let them know.

But we also have another plugin that won’t build; first errors were easy to fix, but after that we got to the point where it was missing a bunch of expected symbols in a library, and that’s when I gave up. It is for this plugin I was specifically wondering how lack of platform support in a plugin is supposed to work on those platforms that can not build plugin.

I got to the point where I could test this in theory, and it seems like the Unreal Editor accepts the plugins, but it’ll end up complain about missing functions in it.

1 Like

yes it depends.

what RecourseDesign says is very true.

this is what most devs on Linux do. the authors usually don’t test it on linux so they don’t mark it as supported, but they’re pretty easy to make them run. Usually the issue is with case sensitive includes and things like that.

sometimes you can contact the author of the plugin to get some help on how to make it run.

2 Likes