How do I install a plugin from github?

I’m trying to install a plugin, this plugin specifically.

It has fairly clear install instructions:

Download the Plugin:
    Download the Poisson Disk Sampler Plugin from the repository or marketplace.

Install the Plugin:
    Extract the PoissonDiskSamplerPlugin folder into your project's Engine/Plugins/Marketplace directory.

Enable the Plugin:
    Open your Unreal Engine project.
    Go to Edit -> Plugins.
    Find the Poisson Disk Sampler Plugin and enable it.
    Restart the editor if prompted.

Far as I can tell there is no repository or marketplace version, so i just downloaded the source code and followed the instructions, only to get this error:

LogLinux: Warning: MessageBox: The following modules are missing or built with a different engine version:

  PoissonPoints

Would you like to rebuild them now?: Missing HordeFighter Modules: No is implied.
LogLinux: Warning: MessageBox: The following modules are missing or built with a different engine version:

  PoissonPoints

Would you like to proceed anyway? Code and content that depends on these modules may not work correctly. Enter at your own risk.: Missing HordeFighter Modules: No is implied.

Which implies the mod is built for another engine version, since it’s just source code i assume it might just be complaining that it’s not actually been built, so I try to build it:

$ /opt/unreal-engine/Engine/Build/BatchFiles/RunUAT.sh BuildPlugin -plugin="/mnt/storage/UE5-Projects/Test/HordeFighter/Plugins/Marketplace/PoissonPointsPlugin-master/PoissonPoints.uplugin" -package="/mnt/storage/Test/"
Full Output
Running AutomationTool...

Setting up bundled DotNet SDK
chmod: changing permissions of '/opt/unreal-engine/Engine/Build/BatchFiles/Linux/../../../Binaries/ThirdParty/DotNet/6.0.302/linux/dotnet': Operation not permitted
Start UAT Interactively: dotnet AutomationTool.dll BuildPlugin -plugin=/mnt/storage/UE5-Projects/Test/HordeFighter/Plugins/Marketplace/PoissonPointsPlugin-master/PoissonPoints.uplugin -package=/mnt/storage/Test/
/opt/unreal-engine/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux/dotnet
Starting AutomationTool...
Parsing command line: BuildPlugin -plugin=/mnt/storage/UE5-Projects/Test/HordeFighter/Plugins/Marketplace/PoissonPointsPlugin-master/PoissonPoints.uplugin -package=/mnt/storage/Test/
Initializing script modules...
Total script module initialization time: 0.16 s.
Using /opt/unreal-engine/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux/dotnet
Executing commands...
Copying 8 file(s) using max 64 thread(s)
Reading plugin from /mnt/storage/Test/HostProject/Plugins/PoissonPoints/PoissonPoints.uplugin...
Building plugin for host platforms: Linux
Running: /opt/unreal-engine/Engine/Binaries/ThirdParty/DotNet/6.0.302/linux/dotnet "/opt/unreal-engine/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll" UnrealEditor Linux Development -Project="/mnt/storage/Test/HostProject/HostProject.uproject" -plugin="/mnt/storage/Test/HostProject/Plugins/PoissonPoints/PoissonPoints.uplugin" -noubtmakefiles -manifest="/mnt/storage/Test/HostProject/Saved/Manifest-UnrealEditor-Linux-Development.xml" -nohotreload -log="/home/cestarian/Library/Logs/Unreal Engine/LocalBuildLogs/UBA-UnrealEditor-Linux-Development.txt"
Log file: /home/cestarian/Library/Logs/Unreal Engine/LocalBuildLogs/UBA-UnrealEditor-Linux-Development.txt
Total execution time: 2.77 seconds
Unhandled exception: System.ArgumentNullException: Value cannot be null. (Parameter 'element')
   at System.Attribute.GetCustomAttributes(MemberInfo element, Type attributeType, Boolean inherit)
   at System.Reflection.CustomAttributeExtensions.GetCustomAttributes[T](MemberInfo element)
   at UnrealBuildTool.ModuleRules.IsValidForTarget(Type moduleType, ReadOnlyTargetRules targetRules, String& invalidReason) in /home/cestarian/.cache/yay/unreal-engine/src/unreal-engine/Engine/Source/Programs/UnrealBuildTool/Configuration/ModuleRules.cs:line 1636
   at UnrealBuildTool.UEBuildTarget.AddAllValidModulesToTarget(ILogger Logger) in /home/cestarian/.cache/yay/unreal-engine/src/unreal-engine/Engine/Source/Programs/UnrealBuildTool/Configuration/UEBuildTarget.cs:line 3938
   at UnrealBuildTool.UEBuildTarget.PreBuildSetup(ILogger Logger) in /home/cestarian/.cache/yay/unreal-engine/src/unreal-engine/Engine/Source/Programs/UnrealBuildTool/Configuration/UEBuildTarget.cs:line 3403
   at UnrealBuildTool.UEBuildTarget.Create(TargetDescriptor Descriptor, Boolean bSkipRulesCompile, Boolean bForceRulesCompile, Boolean bUsePrecompiled, UnrealIntermediateEnvironment IntermediateEnvironment, ILogger Logger) in /home/cestarian/.cache/yay/unreal-engine/src/unreal-engine/Engine/Source/Programs/UnrealBuildTool/Configuration/UEBuildTarget.cs:line 1392
   at UnrealBuildTool.UEBuildTarget.Create(TargetDescriptor Descriptor, BuildConfiguration BuildConfiguration, ILogger Logger) in /home/cestarian/.cache/yay/unreal-engine/src/unreal-engine/Engine/Source/Programs/UnrealBuildTool/Configuration/UEBuildTarget.cs:line 1226
   at UnrealBuildTool.BuildMode.CreateMakefileAsync(BuildConfiguration BuildConfiguration, TargetDescriptor TargetDescriptor, ISourceFileWorkingSet WorkingSet, ILogger Logger) in /home/cestarian/.cache/yay/unreal-engine/src/unreal-engine/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 1114
   at UnrealBuildTool.BuildMode.BuildAsync(List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger, Boolean bSkipPreBuildTargets) in /home/cestarian/.cache/yay/unreal-engine/src/unreal-engine/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 396
   at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in /home/cestarian/.cache/yay/unreal-engine/src/unreal-engine/Engine/Source/Programs/UnrealBuildTool/Modes/BuildMode.cs:line 252
   at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in /home/cestarian/.cache/yay/unreal-engine/src/unreal-engine/Engine/Source/Programs/UnrealBuildTool/UnrealBuildTool.cs:line 660
Took 2.87s to run dotnet, ExitCode=6
UnrealBuildTool failed. See log for more details. (/home/cestarian/Library/Logs/Unreal Engine/LocalBuildLogs/UBA-UnrealEditor-Linux-Development.txt)
AutomationTool executed for 0h 0m 3s
AutomationTool exiting with ExitCode=6 (6)
RunUAT ERROR: AutomationTool was unable to run successfully. Exited with code: 6

But it fails and I don’t understand why, the build attempt does generate some files, and i did try putting those files in the project directory, but I just get the same error i started out with.

Where exactly am I going wrong? How am I actually supposed to do this?

The plugin you’re trying to use seem to be for a different engine version. So what is yor current version of the Unreal editor and for which version should the plugin be?

Could you provide the link to its Github repo?

I did, first line in the op. I’m not sure what version the plugin is for i couldn’t find anything to indicate a specific targeted version. I’m on 5.4.2.

Oh, I was actually so focused on the error message that overlooked the link :slight_smile:

I made it work in UE 5.4.4, here are my install instructions

make an new project or choose the one where you would like to use the plugin

within the project folder create a folder "Plugins", if not already exists

open a terminal window, cd to the "Plugins" folder and clone the repository
"git clone https://github.com/taklegko/PoissonPointsPlugin.git"

open the project, consent the message "Would you like to rebuild..."

wait until the plugin has been compiled and the project opened

You then could either leave it in the plugins folder of the project, or move the PoissonPointsPlugin folder to the …/Engine/Plugins/Marketplace folder of your Unreal Engine installation (not into your project directory)
This would make it available to the editor and you could delete it from local plugins folder. But for such special plugins I recommend to just leave it at your project

I do not get a “Would you like to rebuild…” message. I do not get asked, the message I get is this:

Would you like to rebuild them now?: No is implied.

It just assumes I do not want to rebuild it and I don’t get any say in it. How can I make it actually give me the choice?

Strange, this is what I get:

image