Am setting up Unreal engine 5.6 plugins. Just the basis and turn off everything I do not need for a begging learner – I will be using at least Niagara – please create a table with all of the plugin I need on – all that is not marked on will be OFF. No need to list the OFF ones.
TL;DR: Keep it ultra-lean. Turn **ON only the items below**; everything else stays OFF.
| Plugin (exact name) | Category (UE) | Why it’s on | Notes |
|—|—|—|—|
| **Niagara** | FX | Core VFX system you’ll be learning. | This single toggle brings in Niagara editor/runtime + its dependencies automatically. citeturn0search15turn0search2 |
| **Level Sequence Editor** | Cinematics | Lets you preview timing and trigger Niagara systems in sequences. | Simple way to animate/preview effects timelines without extra gameplay code. |
| **Movie Render Pipeline** | Rendering | High-quality offline rendering of your Niagara shots. | Use with Sequencer to export test reels; the plugin supplies the Movie Render Queue. |
| **Movie Render Queue: Additional Render Passes** | Rendering | Extra render passes (e.g., motion vectors, custom passes) useful for breakdowns/compositing of Niagara renders. | Optional but handy for learning/portfolio shots. |
| **Niagara Fluids** *(optional)* | FX | Grid-based smoke/fire/liquid sims directly in Niagara. | Great to explore later; needs modern GPU/SM5 and can be heavy. citeturn0search9 |
| **Editor Scripting Utilities** *(optional)* | Scripting | One-click batch ops (rename, migrate, automate setup). | Skip if you want the absolute minimum; enables simple Blueprints automation. |
| **Modeling Tools Editor Mode** *(optional)* | Modeling | Quick block-outs/emitters’ collision/mesh tweaks inside the editor. | Useful for simple test geometry without external DCC. |
| **Enhanced Input** *(optional)* | Input | If you plan interactive Niagara demos (keypress to trigger effects). | Not needed for pure cinematics; useful for play-in-editor tests. |
**Notes**
– Enabling **Niagara** will pull in any required submodules automatically; you don’t need to hunt dependencies. citeturn0search15
– You can keep everything else OFF; turn things on later only when a tutorial explicitly needs them. For general plugin management guidance, see Epic’s official Plugins docs. citeturn0search3
**a.** Want me to generate a one-click `.uproject` snippet (JSON) that pins exactly these plugins ON?
**b.** Do you want the “ultra-minimal” profile (only Niagara) exported as step-by-step toggles for UE 5.6 UI?
Running AutomationTool…
Using bundled DotNet SDK version: 8.0.300 win-x64
Starting AutomationTool…
Parsing command line: BuildPlugin -Unversioned -Plugin=C:UsersSarahAppDataLocalTempUnrealLinkXozewyqRiderLink.uplugin -Package=C:UsersSarahAppDataLocalTempUnrealLinkFudylon
Initializing script modules…
Total script module initialization time: 0.56 s.
Using C:Program Files (x86)Microsoft Visual Studio2022BuildToolsMSBuildCurrentBinMSBuild.exe
Executing commands…
Copying 414 file(s) using max 64 thread(s)
Reading plugin from C:UsersSarahAppDataLocalTempUnrealLinkFudylonHostProjectPluginsRiderLinkRiderLink.uplugin…
Building plugin for host platforms: Win64
Running: C:Program FilesEpic GamesUE_5.6EngineBinariesThirdPartyDotNet8.0.300win-x64dotnet.exe “C:Program FilesEpic GamesUE_5.6EngineBinariesDotNETUnrealBuildToolUnrealBuildTool.dll” UnrealEditor Win64 Development -Project=”C:UsersSarahAppDataLocalTempUnrealLinkFudylonHostProjectHostProject.uproject” -plugin=”C:UsersSarahAppDataLocalTempUnrealLinkFudylonHostProjectPluginsRiderLinkRiderLink.uplugin” -noubtmakefiles -manifest=”C:UsersSarahAppDataLocalTempUnrealLinkFudylonHostProjectSavedManifest-UnrealEditor-Win64-Development.xml” -nohotreload -log=”C:UsersSarahAppDataRoamingUnreal EngineAutomationToolLogsC+Program+Files+Epic+Games+UE_5.6UBA-UnrealEditor-Win64-Development.txt”
Log file: C:UsersSarahAppDataRoamingUnreal EngineAutomationToolLogsC+Program+Files+Epic+Games+UE_5.6UBA-UnrealEditor-Win64-Development.txt
Unhandled exception: ArgumentNullException: Value cannot be null. (Parameter ‘element’)
at System.ArgumentNullException.Throw(String paramName)
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 D:build++UE5SyncEngineSourceProgramsUnrealBuildToolConfigurationModuleRules.cs:line 1795
at UnrealBuildTool.UEBuildTarget.AddAllValidModulesToTarget(ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolConfigurationUEBuildTarget.cs:line 4493
at UnrealBuildTool.UEBuildTarget.PreBuildSetup(ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolConfigurationUEBuildTarget.cs:line 3943
at UnrealBuildTool.UEBuildTarget.Create(TargetDescriptor Descriptor, Boolean bSkipRulesCompile, Boolean bForceRulesCompile, Boolean bUsePrecompiled, UnrealIntermediateEnvironment IntermediateEnvironment, ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolConfigurationUEBuildTarget.cs:line 1391
at UnrealBuildTool.UEBuildTarget.Create(TargetDescriptor Descriptor, BuildConfiguration BuildConfiguration, ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolConfigurationUEBuildTarget.cs:line 1221
at UnrealBuildTool.BuildMode.CreateMakefileAsync(BuildConfiguration BuildConfiguration, TargetDescriptor TargetDescriptor, ISourceFileWorkingSet WorkingSet, ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolModesBuildMode.cs:line 1115
at UnrealBuildTool.BuildMode.BuildAsync(List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger, Boolean bSkipPreBuildTargets, String ActionTypeFilter) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolModesBuildMode.cs:line 402
at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolModesBuildMode.cs:line 253
at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolUnrealBuildTool.cs:line 653
Result: Failed (OtherCompilationError)
Total execution time: 13.31 seconds
Took 13.45s to run dotnet.exe, ExitCode=6
UnrealBuildTool failed. See log for more details. (C:UsersSarahAppDataRoamingUnreal EngineAutomationToolLogsC+Program+Files+Epic+Games+UE_5.6UBA-UnrealEditor-Win64-Development.txt)
AutomationTool executed for 0h 0m 15s
AutomationTool exiting with ExitCode=6 (6)
BUILD FAILED
Failed to build RiderLink plugin for C:Program FilesEpic GamesUE_5.6
Failed to build RiderLink plugin
**TL;DR:** This RiderLink build crash on UE **5.6** is a known/recurring UBT null-attr bug + version mismatch. Fix it by updating Rider/RiderLink to a build that explicitly supports **UE 5.6.x**, reinstall RiderLink **into the Engine**, and clear stale temp/build folders. Details below.
—
## Do this (order matters)
1) **Update to versions that work with UE 5.6.x**
– Install the latest Rider **2025.2.x** (or newer) and its bundled **UnrealLink**. JetBrains notes RiderLink compatibility can break when the Engine version changes; newer Rider builds usually ship a matching RiderLink. citeturn1search6turn1search5
2) **Install RiderLink *into the Engine*** (not just per-project)
– In Rider: *Settings → Languages & Frameworks → Unreal Engine → Install/Update RiderLink → “Install into Engine”*. JetBrains’ docs: Rider installs RiderLink and offers engine-wide install. citeturn1search5
3) **Purge stale partial installs**
– Close UE/Rider.
– Delete these if they exist (they often cause the `ArgumentNullException ‘element’` in UBT scans):
– `%LOCALAPPDATA%UnrealLink` (your temp **HostProject** and copies live here)
– `UE_5.6EnginePluginsMarketplaceRiderLink` (if a broken copy exists)
– Your project’s `Binaries/`, `DerivedDataCache/`, `Intermediate/` (safe to regenerate)
– Reopen the project in Rider and let it reinstall RiderLink cleanly. (Multiple reports tie this exact null-attr stack to stale/bad plugin rules.) citeturn0search2turn0search1
4) **Patch level matters**
– If you’re on **UE 5.6.0**, update to **5.6.1+** (Epic patch builds often fix UBT edge cases; JetBrains also references 5.6.1 in repro steps). citeturn1search1
5) **Re-run the install from Rider (preferred)**
– Open your UE project in Rider → accept the **Install RiderLink** prompt. Don’t manually run `BuildPlugin` unless you need a package; Rider’s flow handles proper params. Docs: “Rider installs RiderLink; no manual install needed.” citeturn1search5
6) **If you must build manually, use a clean HostProject**
– From a **non-Administrator** path (avoid `C:Program Files` for outputs), and ensure only RiderLink is present to reduce UBT scanning other faulty modules (another common trigger for this exact null exception). citeturn0search7
7) **As a last resort (temporary workaround)**
– Some users “hotfix” UBT’s `ModuleRules.IsValidForTarget` null path (defensive check) and rebuild UBT to avoid the crash. This is a hack; prefer official updates first. citeturn1search16
—
## Why this happened (quick)
– The stack trace shows UBT calling `Attribute.GetCustomAttributes` with a **null MemberInfo** while enumerating modules (`IsValidForTarget → AddAllValidModulesToTarget`). That’s typically triggered by a malformed/partially-installed plugin rules type or stale compiled rules left in temp/Engine plugin folders—RiderLink installs often leave these when interrupted or version-mismatched. JetBrains documents RiderLink↔UE version drift as a known source of failures. citeturn0search6
—
## After the cleanup/update, verify
– In UE Editor: **Edit → Plugins → Installed** → RiderLink is Enabled (no warnings).
– In Rider: **Unreal tool window** loads, code model OK, and **Run/Debug** attaches to **UnrealEditor**.
If it still fails, please paste the contents of:
“`
C:UsersSarahAppDataRoamingUnreal EngineAutomationToolLogsC+Program+Files+Epic+Games+UE_5.6UBA-UnrealEditor-Win64-Development.txt
“`
That log will show the *first* offending module name before the null crash.
—
**a.** Want a tiny PowerShell script to purge the temp **UnrealLink** folders and reinstall RiderLink cleanly?
**b.** Need a version-pin matrix (Rider ↔ RiderLink ↔ UE) so you know exactly which builds pair safely for 5.6.x?
I am downloading the source code ro ue5.7 from git. How do I instaqll it?
**TL;DR:** On Windows: **clone 5.7 → `Setup.bat` → `GenerateProjectFiles.bat` → build `UnrealEditor` (Dev, Win64)** in VS 2022 or via `Build.bat`. Prereqs: **Git LFS** + **VS 2022** with Desktop C++ + Game Dev workloads + Win10/11 SDK. citeturn0search2turn0search0turn0search3turn0search9
—
## Plan (pseudocode)
1. Verify: Git with LFS; Visual Studio 2022 w/ required workloads + Windows SDK. citeturn0search9
2. `git lfs install`; `git clone -b 5.7 EpicGames/UnrealEngine`.
3. In repo root: run `Setup.bat` (fetches deps). citeturn0search2
4. Run `GenerateProjectFiles.bat` (creates `UE5.sln`). citeturn0search0
5. Build **UnrealEditor | Development Editor | Win64** in VS, or run `EngineBuildBatchFilesBuild.bat UnrealEditor Win64 Development`. citeturn0search2
6. Launch editor: `EngineBinariesWin64UnrealEditor.exe`.
7. (Optional) Build ShaderCompileWorker once for faster compiles: add `ShaderCompileWorker Win64 Development` to the build.
8. Keep repo up to date: pull latest 5.7 + re-run `GenerateProjectFiles.bat` after large syncs. citeturn0search2
—
### One-shot Windows setup (PowerShell)
> Save as `install-ue57.ps1`, **Run in an elevated PowerShell**.
> Minimal comments; it checks basics, then automates clone, setup, project-file gen, and build.
“`powershell
# File: tools/install-ue57.ps1
param(
[string]$RepoDir = “C:DevUE5.7-src”,
[string]$Branch = “5.7”,
[switch]$SkipBuild
)
# Fail fast on errors
$ErrorActionPreference = “Stop”
function Assert-Cmd($cmd, $hint) {
if (-not (Get-Command $cmd -ErrorAction SilentlyContinue)) {
throw “Missing `$cmd`. $hint”
}
}
Write-Host “== UE 5.7 Source Install ==”
# 1) Prereqs: Git + Git LFS + VS 2022 present (via vswhere)
Assert-Cmd git “Install Git: https://git-scm.com”
Assert-Cmd git-lfs “Install Git LFS: https://git-lfs.com”
$vswhere = “${env:ProgramFiles(x86)}Microsoft Visual StudioInstallervswhere.exe”
if (-not (Test-Path $vswhere)) { throw “Visual Studio 2022 not found. Install VS 2022 with ‘Desktop development with C++’ + ‘Game development with C++’ workloads and Windows 10/11 SDK.” }
$vs = & $vswhere -latest -requires Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.Workload.NativeGame -property installationPath
if (-not $vs) { throw “VS 2022 workloads missing. Modify VS: Desktop C++ + Game Dev + Windows SDK (10.0.18362+).” }
# 2) Clone Epic repo (requires Epic↔GitHub linked account) into $RepoDir
if (-not (Test-Path $RepoDir)) { New-Item -ItemType Directory -Path $RepoDir | Out-Null }
Push-Location (Split-Path $RepoDir)
if (-not (Test-Path $RepoDirEngine)) {
Write-Host “Cloning UE branch $Branch to $RepoDir …”
git lfs install
git clone –branch $Branch –single-branch https://github.com/EpicGames/UnrealEngine.git $RepoDir
} else {
Write-Host “Repo exists, pulling latest…”
Push-Location $RepoDir
git fetch origin $Branch
git checkout $Branch
git pull –ff-only
Pop-Location
}
# 3) Run Setup.bat (downloads deps) 4) GenerateProjectFiles.bat
Push-Location $RepoDir
Write-Host “Running Setup.bat (this can take a while) …”
cmd /c “.Setup.bat”
Write-Host “Generating project files …”
cmd /c “.GenerateProjectFiles.bat”
# 5) Optional build
if (-not $SkipBuild) {
Write-Host “Building UnrealEditor Win64 Development …”
$build = “.EngineBuildBatchFilesBuild.bat”
& $build UnrealEditor Win64 Development -WaitMutex -NoHotReloadFromIDE
}
# 6) Done: print launch path
$editor = Join-Path $RepoDir “EngineBinariesWin64UnrealEditor.exe”
if (Test-Path $editor) {
Write-Host “`nLaunch: $editor”
} else {
Write-Warning “Editor binary not found yet. Open UE5.sln and build ‘UnrealEditor | Development Editor | Win64’.”
}
Pop-Location; Pop-Location
Write-Host “== Done ==”
“`
#### Manual commands (if you prefer)
“`bat
:: In a Developer PowerShell / regular cmd:
git lfs install
git clone -b 5.7 –single-branch https://github.com/EpicGames/UnrealEngine.git C:DevUE5.7-src
cd C:DevUE5.7-src
Setup.bat
GenerateProjectFiles.bat
EngineBuildBatchFilesBuild.bat UnrealEditor Win64 Development -WaitMutex
EngineBinariesWin64UnrealEditor.exe
“`
**Notes**
– You must have Epic GitHub linked to access `EpicGames/UnrealEngine`.
– Re-run `GenerateProjectFiles.bat` after large pulls; it’s expected. citeturn0search2
– VS 2022 workloads + Win10/11 SDK are required; Microsoft’s guide lists components. citeturn0search9turn0search1turn0search5
**a.** Want me to tailor the script to also build `ShaderCompileWorker` and `UnrealPak`?
**b.** Do you need a VS 2022 “silent install” command with the exact workload/component IDs?
I have the files unzipped on my drive. I would like to have the shaddercompilers for faster rebuild
**TL;DR:** From your UE 5.7 source folder, run:
`Setup.bat` → `GenerateProjectFiles.bat` → **build ShaderCompileWorker** once:
`EngineBuildBatchFilesBuild.bat ShaderCompileWorker Win64 Development`
This removes the slow “first shader build” tax on every clean rebuild.
—
## Plan (pseudocode)
1. Validate repo root path.
2. Run `Setup.bat` (deps) if needed.
3. Run `GenerateProjectFiles.bat` if `UE5.sln` missing/outdated.
4. Build `ShaderCompileWorker Win64 Development` (and optional `DebugGame`).
5. (Optional) Build `UnrealEditor Win64 Development` next to fully avoid toolchain bootstrap.
6. Print launch paths & tips (XGE off by default; leave threaded shader compile on).
“`powershell
# File: tools/build-shader-worker.ps1
param(
[string]$RepoDir = “C:DevUE5.7-src”, # Plugins > Installed: verify RiderLink is enabled.”
“`
—
### Notes & expectations
– **Compatibility model:** JetBrains ties **RiderLink** to the **Rider** version (they ship together). For **UE 5.6.1**, use **current Rider 2025.2.x**; JetBrains continues to fix 5.6 build issues in 2025.2 bugfixes. If you still hit failures, try the latest 2025.2.x or 2025.1.x as a fallback. citeturn0search8turn0search5
– **Known 5.6 pain points:** users reported **“Failed to build RiderLink… UE_5.6”** and UBT null exceptions; cleanup + engine-wide install typically fixes it. citeturn0search0
– **When to build manually:** Prefer Rider’s installer. Only if needed, build via UBT with a clean HostProject; avoid protected paths for outputs. citeturn0search12
**a.** Want me to generate a *step-by-step* screenshot checklist (Rider + UE plugin screens) so you can confirm each flag?
**b.** Should I tailor the PowerShell to also verify VS workloads/SDK and prompt-reinstall RiderLink automatically?
Result: Failed (OtherCompilationError)
Total execution time: 2.17 seconds
Took 2.24s to run dotnet.exe, ExitCode=6
UnrealBuildTool failed. See log for more details. (C:UsersSarahAppDataRoamingUnreal EngineAutomationToolLogsC+Program+Files+Epic+Games+UE_5.6UBA-UnrealEditor-Win64-Development.txt)
AutomationTool executed for 0h 0m 2s
AutomationTool exiting with ExitCode=6 (6)
BUILD FAILED
Failed to build RiderLink plugin for C:Program FilesEpic GamesUE_5.6
Failed to build RiderLink plugin
**TL;DR:** Your RiderLink build is still dying with generic **ExitCode=6**. Do a **clean reset** of RiderLink + deps, then reinstall Rider **just to install RiderLink into the Engine**, and rebuild once. Use the scripts below to 1) **purge all stale RiderLink** and 2) **verify VS workloads** and 3) **rebuild RiderLink with full logs** so we can see the *first* real error.
—
## Plan (pseudocode)
1) Kill Unreal/Rider → delete **%LOCALAPPDATA%UnrealLink** and any **RiderLink** under project & engine.
2) Verify **VS 2022** workloads & SDK via `vswhere`.
3) Reinstall Rider (temporarily OK) → **Install RiderLink into Engine** (engine-wide).
4) Build RiderLink **with full verbosity** outside `Program Files`, capture log, and copy into Engine.
5) If it still fails, open the captured UBT log and check the **first** error line (not the last exception).
6) Share the captured log section (first 100 lines around the first `[Error]`) if needed.
—
### 1) Clean reset + reinstall flow (PowerShell)
> Save as `toolsriderlink-reset.ps1` and run in an **elevated PowerShell**.
“`powershell
# File: tools/riderlink-reset.ps1
param(
[string]$EngineDir = “C:Program FilesEpic GamesUE_5.6”, # UE 5.6.1 root
[string]$ProjectDir = “D:ProjectsMyUE56Project” # your project (optional)
)
$ErrorActionPreference = “Stop”
function Remove-IfExists($p){ if(Test-Path $p){ Write-Host “Removing $p”; Remove-Item $p -Recurse -Force } }
Write-Host “== Reset RiderLink ==”
# 0) Kill processes
Get-Process UnrealEditor -ErrorAction SilentlyContinue | Stop-Process -Force
Get-Process rider64 -ErrorAction SilentlyContinue | Stop-Process -Force
# 1) Purge temp UnrealLink host projects
Remove-IfExists “$env:LOCALAPPDATAUnrealLink”
# 2) Remove project-level RiderLink (we want engine-level)
if ($ProjectDir -and (Test-Path $ProjectDir)) {
Remove-IfExists (Join-Path $ProjectDir “PluginsRiderLink”)
}
# 3) Remove engine-level RiderLink if present (we’ll reinstall clean)
$enginePlugin = Join-Path $EngineDir “EnginePluginsMarketplaceRiderLink”
Remove-IfExists $enginePlugin
Write-Host “`nNext:”
Write-Host ” 1) Install/launch JetBrains Rider.”
Write-Host ” 2) Open your UE 5.6.1 project in Rider; accept ‘Install RiderLink’ and choose ‘Install into Engine’.”
Write-Host ” 3) Close Rider, then run tools\riderlink-build.ps1 to build & verify.”
Write-Host “== Done ==”
“`
—
### 2) Verify VS toolchain (PowerShell)
> Confirms VS 2022 + critical workloads + SDK.
“`powershell
# File: tools/check-vs.ps1
$ErrorActionPreference = “Stop”
$vswhere = “${env:ProgramFiles(x86)}Microsoft Visual StudioInstallervswhere.exe”
if (-not (Test-Path $vswhere)) { throw “vswhere not found. Install Visual Studio 2022.” }
$vs = & $vswhere -latest -products * -requires Microsoft.Component.MSBuild -property installationPath
if (-not $vs) { throw “VS 2022 not found.” }
$req = @(
“Microsoft.VisualStudio.Workload.NativeDesktop”,
“Microsoft.VisualStudio.Workload.NativeGame”,
“Microsoft.VisualStudio.Component.VC.Tools.x86.x64”,
“Microsoft.VisualStudio.Component.Windows10SDK.19041” # any Win10/11 SDK ≥ 19041 is OK
)
$cat = & $vswhere -latest -format json -prerelease | ConvertFrom-Json
$comp = $cat.packages.id
$missing = $req | Where-Object { $_ -notin $comp }
if ($missing) {
Write-Warning “Missing VS components:`n – $($missing -join “`n – “)”
Write-Host “Open VS Installer and add: Desktop C++, Game Dev C++, and a recent Windows 10/11 SDK.”
} else {
Write-Host “VS 2022 workloads look OK.”
}
“`
—
### 3) Build RiderLink with **full logs** (PowerShell)
> Build outside `Program Files` to avoid permission issues, then copy into Engine.
“`powershell
# File: tools/riderlink-build.ps1
param(
[string]$EngineDir = “C:Program FilesEpic GamesUE_5.6”,
[string]$StagingDir = “D:_BuildRiderLinkPkg”, # writable path
[string]$LogDir = “$env:LOCALAPPDATAUnrealBuildLogs” # extra copy of logs
)
$ErrorActionPreference = “Stop”
function Need($p){ if(-not (Test-Path $p)){ throw “Not found: $p” } }
function RunUAT($args) {
$uat = Join-Path $EngineDir “EngineBuildBatchFilesRunUAT.bat”
Need $uat
Write-Host “RunUAT $args”
& $uat $args
if ($LASTEXITCODE) { throw “UAT failed with ExitCode=$LASTEXITCODE” }
}
# 0) Locate RiderLink.uplugin that Rider installed into the Engine
$riderEnginePlugin = Join-Path $EngineDir “EnginePluginsMarketplaceRiderLinkRiderLink.uplugin”
Need $riderEnginePlugin
# 1) Prepare
New-Item -ItemType Directory -Force -Path $StagingDir | Out-Null
New-Item -ItemType Directory -Force -Path $LogDir | Out-Null
# 2) Build the plugin package (Win64 host)
$pluginArg = “BuildPlugin -Unversioned -Verbose -NoHostPlatform -Plugin=`”$riderEnginePlugin`” -Package=`”$StagingDir`””
RunUAT $pluginArg
# 3) Copy built plugin back into Engine (overwriting)
$builtPlugin = Join-Path $StagingDir “EnginePluginsMarketplaceRiderLink”
if (-not (Test-Path $builtPlugin)) {
# some UAT layouts put the plugin at root; fallback scan
$builtPlugin = Get-ChildItem $StagingDir -Recurse -Directory | Where-Object { Test-Path (Join-Path $_.FullName “RiderLink.uplugin”) } | Select-Object -First 1
if (-not $builtPlugin) { throw “Built RiderLink not found under $StagingDir” }
$builtPlugin = $builtPlugin.FullName
}
$target = Join-Path $EngineDir “EnginePluginsMarketplaceRiderLink”
if (Test-Path $target) { Remove-Item $target -Recurse -Force }
Copy-Item $builtPlugin $target -Recurse
Write-Host “`nRiderLink built and copied to:”
Write-Host $target
# 4) Extra: copy UAT/UBT logs to an easy location for sharing
$autoLog = Join-Path $env:APPDATA “Unreal EngineAutomationToolLogs”
if (Test-Path $autoLog) {
Copy-Item $autoLog $LogDir -Recurse -Force
Write-Host “Logs copied to $LogDir”
} else {
Write-Host “AutomationTool log folder not found (yet).”
}
“`
—
### Quick checklist (do in order)
1. Run `toolsriderlink-reset.ps1`.
2. **Install Rider** → open your UE 5.6.1 project → **Install RiderLink into Engine** when prompted.
3. Run `toolscheck-vs.ps1` and fix any missing workloads/SDK.
4. Run `toolsriderlink-build.ps1` (stage build outside `Program Files`).
5. Launch UE → **Edit → Plugins → Installed** → confirm **RiderLink** is enabled, no warnings.
6. If failure repeats: open the copied logs in `%LOCALAPPDATA%UnrealBuildLogs…`, find the **first** `[Error]` or exception *before* the final `ExitCode=6`, and paste ~50–100 lines here.
—
**a.** Want me to extend `riderlink-build.ps1` to also build `UnrealEditor Win64 Development` and `ShaderCompileWorker` right after?
**b.** Prefer a `.bat` version of these scripts instead of PowerShell?
Running AutomationTool…
Using bundled DotNet SDK version: 8.0.300 win-x64
Starting AutomationTool…
Parsing command line: BuildPlugin -Unversioned -Plugin=C:UsersSarahAppDataLocalTempUnrealLinkTofivihRiderLink.uplugin -Package=C:UsersSarahAppDataLocalTempUnrealLinkKajuhyx
Initializing script modules…
Total script module initialization time: 0.16 s.
Using C:Program Files (x86)Microsoft Visual Studio2022BuildToolsMSBuildCurrentBinMSBuild.exe
Executing commands…
Copying 414 file(s) using max 64 thread(s)
Reading plugin from C:UsersSarahAppDataLocalTempUnrealLinkKajuhyxHostProjectPluginsRiderLinkRiderLink.uplugin…
Building plugin for host platforms: Win64
Running: C:Program FilesEpic GamesUE_5.6EngineBinariesThirdPartyDotNet8.0.300win-x64dotnet.exe “C:Program FilesEpic GamesUE_5.6EngineBinariesDotNETUnrealBuildToolUnrealBuildTool.dll” UnrealEditor Win64 Development -Project=”C:UsersSarahAppDataLocalTempUnrealLinkKajuhyxHostProjectHostProject.uproject” -plugin=”C:UsersSarahAppDataLocalTempUnrealLinkKajuhyxHostProjectPluginsRiderLinkRiderLink.uplugin” -noubtmakefiles -manifest=”C:UsersSarahAppDataLocalTempUnrealLinkKajuhyxHostProjectSavedManifest-UnrealEditor-Win64-Development.xml” -nohotreload -log=”C:UsersSarahAppDataRoamingUnreal EngineAutomationToolLogsC+Program+Files+Epic+Games+UE_5.6UBA-UnrealEditor-Win64-Development.txt”
Log file: C:UsersSarahAppDataRoamingUnreal EngineAutomationToolLogsC+Program+Files+Epic+Games+UE_5.6UBA-UnrealEditor-Win64-Development.txt
Unhandled exception: ArgumentNullException: Value cannot be null. (Parameter ‘element’)
at System.ArgumentNullException.Throw(String paramName)
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 D:build++UE5SyncEngineSourceProgramsUnrealBuildToolConfigurationModuleRules.cs:line 1795
at UnrealBuildTool.UEBuildTarget.AddAllValidModulesToTarget(ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolConfigurationUEBuildTarget.cs:line 4493
at UnrealBuildTool.UEBuildTarget.PreBuildSetup(ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolConfigurationUEBuildTarget.cs:line 3943
at UnrealBuildTool.UEBuildTarget.Create(TargetDescriptor Descriptor, Boolean bSkipRulesCompile, Boolean bForceRulesCompile, Boolean bUsePrecompiled, UnrealIntermediateEnvironment IntermediateEnvironment, ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolConfigurationUEBuildTarget.cs:line 1391
at UnrealBuildTool.UEBuildTarget.Create(TargetDescriptor Descriptor, BuildConfiguration BuildConfiguration, ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolConfigurationUEBuildTarget.cs:line 1221
at UnrealBuildTool.BuildMode.CreateMakefileAsync(BuildConfiguration BuildConfiguration, TargetDescriptor TargetDescriptor, ISourceFileWorkingSet WorkingSet, ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolModesBuildMode.cs:line 1115
at UnrealBuildTool.BuildMode.BuildAsync(List`1 TargetDescriptors, BuildConfiguration BuildConfiguration, ISourceFileWorkingSet WorkingSet, BuildOptions Options, FileReference WriteOutdatedActionsFile, ILogger Logger, Boolean bSkipPreBuildTargets, String ActionTypeFilter) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolModesBuildMode.cs:line 402
at UnrealBuildTool.BuildMode.ExecuteAsync(CommandLineArguments Arguments, ILogger Logger) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolModesBuildMode.cs:line 253
at UnrealBuildTool.UnrealBuildTool.Main(String[] ArgumentsArray) in D:build++UE5SyncEngineSourceProgramsUnrealBuildToolUnrealBuildTool.cs:line 653
Result: Failed (OtherCompilationError)
Total execution time: 2.28 seconds
Took 2.37s to run dotnet.exe, ExitCode=6
UnrealBuildTool failed. See log for more details. (C:UsersSarahAppDataRoamingUnreal EngineAutomationToolLogsC+Program+Files+Epic+Games+UE_5.6UBA-UnrealEditor-Win64-Development.txt)
AutomationTool executed for 0h 0m 3s
AutomationTool exiting with ExitCode=6 (6)
BUILD FAILED
Failed to build RiderLink plugin for C:Program FilesEpic GamesUE_5.6
Failed to build RiderLink plugin
**TL;DR:** The crash is UBT reflecting module attributes and hitting a **null `MemberInfo`**. That’s usually a **stale/bad Engine plugin** or a **broken RiderLink temp HostProject**. Fix path (in order): **isolate Engine plugins → clean RiderLink temps → rebuild**. If it still dies, apply a **tiny UBT null-guard hotfix** and rebuild UBT.
—
### Plan (pseudocode)
1) Kill UE/Rider.
2) **Isolate Engine plugins** (temporarily disable all Marketplace plugins except RiderLink) → retry build.
3) **Purge RiderLink temps + project copies** → reinstall RiderLink **into Engine** from Rider.
4) Build RiderLink via UAT to a **writable staging dir**, then copy back to Engine.
5) If still crashing: apply **defensive null-check** in UBT (`ModuleRules.IsValidForTarget`) and rebuild UBT once.
6) Re-run BuildPlugin; if it works, restore Engine plugins gradually.
—
### Scripts + hotfix
“`powershell
# File: tools/ue56-riderlink-repair.ps1
# WHY: Fast triage: isolate plugins, clean temps, rebuild RiderLink with full logs.
param(
[string]$EngineDir = “C:Program FilesEpic GamesUE_5.6”,
[string]$StageDir = “D:_BuildRiderLinkPkg”,
[switch]$OnlyClean
)
$ErrorActionPreference = “Stop”
function Remove-IfExists($p){ if(Test-Path $p){ Write-Host “Removing $p”; Remove-Item $p -Recurse -Force } }
function Need($p){ if(-not (Test-Path $p)){ throw “Not found: $p” } }
function Move-Safe($src,$dst){ if(Test-Path $src){ if(Test-Path $dst){ Remove-Item $dst -Recurse -Force }; Move-Item $src $dst } }
# 0) Kill processes
Get-Process UnrealEditor -ErrorAction SilentlyContinue | Stop-Process -Force
Get-Process rider64 -ErrorAction SilentlyContinue | Stop-Process -Force
# 1) Isolate Engine Marketplace plugins (keep RiderLink only)
$mp = Join-Path $EngineDir “EnginePluginsMarketplace”
$mpOff = “$mp.off”
if (Test-Path $mp) {
Write-Host “Isolating Marketplace plugins…”
Move-Safe $mp $mpOff
New-Item -ItemType Directory -Force -Path $mp | Out-Null
if (Test-Path (Join-Path $mpOff “RiderLink”)) {
Copy-Item (Join-Path $mpOff “RiderLink”) (Join-Path $mp “RiderLink”) -Recurse
}
}
# 2) Clean RiderLink temps & any project copies
Remove-IfExists “$env:LOCALAPPDATAUnrealLink”
# If you also have a project-level PluginsRiderLink, remove it (we want engine-wide).
# Example (uncomment and set your project path):
# Remove-IfExists “D:ProjectsMyUE56ProjectPluginsRiderLink”
if ($OnlyClean) { Write-Host “Clean-only mode done.”; exit 0 }
# 3) Build RiderLink to a writable staging dir, then copy to Engine
$riderUplugin = Join-Path $EngineDir “EnginePluginsMarketplaceRiderLinkRiderLink.uplugin”
Need $riderUplugin
New-Item -ItemType Directory -Force -Path $StageDir | Out-Null
$uat = Join-Path $EngineDir “EngineBuildBatchFilesRunUAT.bat”; Need $uat
Write-Host “Building RiderLink package (verbose)…”
& $uat “BuildPlugin -Unversioned -Verbose -Plugin=`”$riderUplugin`” -Package=`”$StageDir`””
if ($LASTEXITCODE) { throw “BuildPlugin failed with ExitCode=$LASTEXITCODE” }
# Copy the built plugin back into Engine
$built = Get-ChildItem $StageDir -Recurse -Filter “RiderLink.uplugin” | Select-Object -First 1
if (-not $built) { throw “Built RiderLink not found under $StageDir” }
$builtRoot = Split-Path $built.FullName -Parent
$target = Join-Path $EngineDir “EnginePluginsMarketplaceRiderLink”
if (Test-Path $target) { Remove-Item $target -Recurse -Force }
Copy-Item $builtRoot $target -Recurse
Write-Host “`nRiderLink rebuilt and installed at: $target”
Write-Host “If this succeeded, restore other Marketplace plugins by moving ‘$mp.off’ back to ‘$mp’ later.”
“`
“`diff
# File: Engine/Source/Programs/UnrealBuildTool/Configuration/ModuleRules.cs
# WHY: Defensive null-guard to stop the ArgumentNullException crash and surface the real offending module.
@@
– var attributes = Attribute.GetCustomAttributes(element, typeof(SomeAttribute), inherit: true);
+ if (element == null)
+ {
+ invalidReason = “Null MemberInfo while reflecting module attributes (defensive guard).”;
+ return false; // skip this type instead of throwing
+ }
+ var attributes = Attribute.GetCustomAttributes(element, typeof(SomeAttribute), inherit: true);
“`
“`powershell
# File: tools/rebuild-ubt.ps1
# WHY: Rebuild UBT after the above tiny guard (Launcher install includes UBT sources).
param([string]$EngineDir = “C:Program FilesEpic GamesUE_5.6”)
$ErrorActionPreference = “Stop”
$csproj = Join-Path $EngineDir “EngineSourceProgramsUnrealBuildToolUnrealBuildTool.csproj”
$dotnet = Join-Path $EngineDir “EngineBinariesThirdPartyDotNet8.0.300win-x64dotnet.exe”
if (-not (Test-Path $csproj)) { throw “UBT csproj not found. You may need a Source-built engine for this hotfix.” }
& $dotnet build $csproj -c Release /nologo
if ($LASTEXITCODE) { throw “UBT rebuild failed ($LASTEXITCODE)” }
Write-Host “UBT rebuilt. Retry your BuildPlugin command.”
“`
—
### What to do now (exact)
1) **Run** `ue56-riderlink-repair.ps1` → it isolates Engine plugins, clears temps, and rebuilds RiderLink to a clean staging folder, then copies it back.
2) Retry your **BuildPlugin** flow (or simply open your project in Rider; RiderLink should already be built and present).
3) If the crash **still** happens, apply the **null-guard hotfix** in `ModuleRules.cs`, run `rebuild-ubt.ps1`, then retry.
4) Once fixed, restore other Marketplace plugins by moving `EnginePluginsMarketplace.off` back to `Marketplace`, and reintroduce plugins gradually to catch the offender if any.
**Why this works:** The exception is thrown **before** UBT reports which module is bad. Isolating plugins and adding the guard prevents the fatal crash, letting the build continue or at least fail on the **real** first bad module with a readable error. Stale Marketplace plugins and partial RiderLink temp copies are common causes.
—
**a.** Want me to modify the repair script to auto-restore Marketplace plugins one-by-one and pinpoint the exact offending plugin?
**b.** Do you prefer a `.bat` version of these scripts?
where shoul i run this file?
**TL;DR:** Save each `.ps1` anywhere you like (e.g. `D:UEtools`). Open **Windows PowerShell as Administrator** in *any* folder and run it with `-ExecutionPolicy Bypass -File `. Adjust the `-EngineDir` / `-ProjectDir` paths.
—
### Plan
1) Create a folder for scripts (e.g. `D:UEtools`).
2) Save the script there (e.g. `ue56-riderlink-repair.ps1`).
3) Open **PowerShell (Admin)** → run with full path + parameters.
4) Quotes are required for paths with spaces (like `C:Program Files…`).
5) Run the scripts from **any directory**; they don’t need to sit inside UE.
—
### Minimal commands you can paste
“`powershell
# 0) Open PowerShell as Administrator (Start Menu → “Windows PowerShell” → Right-click → Run as administrator)
# 1) (Optional) Go to your tools folder
Set-Location “D:UEtools”
# 2) Run the clean-reset script from ANY location (use your real paths)
powershell -ExecutionPolicy Bypass -File “D:UEtoolsriderlink-reset.ps1” `
-EngineDir “C:Program FilesEpic GamesUE_5.6” `
-ProjectDir “D:ProjectsMyUE56Project”
# 3) Build RiderLink with verbose logs (stage outside Program Files)
powershell -ExecutionPolicy Bypass -File “D:UEtoolsriderlink-build.ps1” `
-EngineDir “C:Program FilesEpic GamesUE_5.6” `
-StagingDir “D:_BuildRiderLinkPkg”
# 4) Full repair (isolate plugins → clean → rebuild RiderLink)
powershell -ExecutionPolicy Bypass -File “D:UEtoolsue56-riderlink-repair.ps1” `
-EngineDir “C:Program FilesEpic GamesUE_5.6” `
-StageDir “D:_BuildRiderLinkPkg”
# 5) Check VS workloads/SDK
powershell -ExecutionPolicy Bypass -File “D:UEtoolscheck-vs.ps1”
# 6) (ONLY if you applied the UBT source hotfix; requires source UBT present)
powershell -ExecutionPolicy Bypass -File “D:UEtoolsrebuild-ubt.ps1” `
-EngineDir “C:Program FilesEpic GamesUE_5.6”
“`
**Notes**
– **Admin PowerShell** is recommended (so scripts can write under `C:Program FilesEpic GamesUE_5.6…`).
– If UE is Launcher-installed (binary), the **UBT hotfix** step may **not** be available; only run `rebuild-ubt.ps1` if `UnrealBuildTool.csproj` exists under your Engine.
– Replace example paths with yours. Keep quotes around paths with spaces.
**a.** Want a single “one-click” script that chains reset → build → verify in one run?
**b.** Prefer `.bat` equivalents instead of PowerShell?
yes bat and the marketplace is not here – kust use the plugins folder
**TL;DR:** Here are **.bat** versions. They work with **`EnginePlugins`** (no `Marketplace`). Run in an **elevated CMD**. Edit `ENGINE_DIR`, `PROJECT_DIR`, `STAGE_DIR` at the top as needed.
## Plan (pseudocode)
– `riderlink-reset.bat`: kill UE/Rider → delete `%LOCALAPPDATA%UnrealLink` → remove project-level `PluginsRiderLink` → remove engine `PluginsRiderLink`.
– `riderlink-build.bat`: UAT **BuildPlugin** RiderLink from engine `PluginsRiderLink` → stage to writable dir → copy back to `EnginePluginsRiderLink`.
– `ue56-riderlink-repair.bat`: isolate other engine plugins (move to `Plugins.off`, keep RiderLink only) → clean temps → BuildPlugin → copy back.
“`bat
:: =====================================================================
:: File: D:UEtoolsriderlink-reset.bat
:: Purpose: Clean RiderLink (engine + project) and UnrealLink temp.
:: =====================================================================
@echo off
setlocal EnableExtensions
rem — EDIT THESE —
set “ENGINE_DIR=C:Program FilesEpic GamesUE_5.6”
set “PROJECT_DIR=D:ProjectsMyUE56Project”
rem ——————
echo == Reset RiderLink ==
echo Killing UnrealEditor / Rider if running…
for %%P in (UnrealEditor.exe rider64.exe) do (
taskkill /F /IM %%P >nul 2>&1
)
echo Removing %LOCALAPPDATA%UnrealLink …
if exist “%LOCALAPPDATA%UnrealLink” rmdir /s /q “%LOCALAPPDATA%UnrealLink”
if defined PROJECT_DIR if exist “%PROJECT_DIR%PluginsRiderLink” (
echo Removing project RiderLink: “%PROJECT_DIR%PluginsRiderLink”
rmdir /s /q “%PROJECT_DIR%PluginsRiderLink”
)
if exist “%ENGINE_DIR%EnginePluginsRiderLink” (
echo Removing engine RiderLink: “%ENGINE_DIR%EnginePluginsRiderLink”
rmdir /s /q “%ENGINE_DIR%EnginePluginsRiderLink”
)
echo Done. Open your project in Rider and choose “Install RiderLink into Engine”.
exit /b 0
“`
“`bat
:: =====================================================================
:: File: D:UEtoolsriderlink-build.bat
:: Purpose: Build RiderLink via UAT and install to EnginePluginsRiderLink.
:: =====================================================================
@echo off
setlocal EnableExtensions
rem — EDIT THESE —
set “ENGINE_DIR=C:Program FilesEpic GamesUE_5.6”
set “STAGE_DIR=D:_BuildRiderLinkPkg”
rem ——————
set “UAT=%ENGINE_DIR%EngineBuildBatchFilesRunUAT.bat”
set “ENGINE_RIDER=%ENGINE_DIR%EnginePluginsRiderLinkRiderLink.uplugin”
if not exist “%UAT%” (
echo ERROR: RunUAT not found: %UAT%
exit /b 1
)
if not exist “%ENGINE_RIDER%” (
echo ERROR: Engine RiderLink not found: %ENGINE_RIDER%
echo If Rider didn’t install it yet, open project in Rider and install RiderLink into Engine.
exit /b 2
)
if not exist “%STAGE_DIR%” mkdir “%STAGE_DIR%”
echo == BuildPlugin RiderLink (staging: %STAGE_DIR%) ==
call “%UAT%” BuildPlugin -Unversioned -Verbose -Plugin=”%ENGINE_RIDER%” -Package=”%STAGE_DIR%”
if errorlevel 1 (
echo BuildPlugin failed. See AutomationTool logs under %%APPDATA%%Unreal EngineAutomationToolLogs
exit /b 3
)
echo Locating built RiderLink…
set “BUILT_PLUGIN=”
for /f “delims=” %%F in (‘dir /b /s “%STAGE_DIR%RiderLink.uplugin” 2^>nul’) do (
set “BUILT_PLUGIN=%%~dpF”
)
if not defined BUILT_PLUGIN (
echo ERROR: Built RiderLink not found under %STAGE_DIR%
exit /b 4
)
echo Installing to EnginePluginsRiderLink …
if exist “%ENGINE_DIR%EnginePluginsRiderLink” rmdir /s /q “%ENGINE_DIR%EnginePluginsRiderLink”
mkdir “%ENGINE_DIR%EnginePluginsRiderLink” 2>nul
xcopy /e /i /y “%BUILT_PLUGIN%” “%ENGINE_DIR%EnginePluginsRiderLink” >nul
if errorlevel 1 (
echo ERROR: Copy failed. Try running CMD as Administrator.
exit /b 5
)
echo RiderLink installed: “%ENGINE_DIR%EnginePluginsRiderLink”
exit /b 0
“`
“`bat
:: =====================================================================
:: File: D:UEtoolsue56-riderlink-repair.bat
:: Purpose: Isolate engine plugins -> clean temps -> rebuild RiderLink.
:: =====================================================================
@echo off
setlocal EnableExtensions
rem — EDIT THESE —
set “ENGINE_DIR=C:Program FilesEpic GamesUE_5.6”
set “STAGE_DIR=D:_BuildRiderLinkPkg”
rem ——————
set “PLUGINS=%ENGINE_DIR%EnginePlugins”
set “PLUGINS_OFF=%ENGINE_DIR%EnginePlugins.off”
set “UAT=%ENGINE_DIR%EngineBuildBatchFilesRunUAT.bat”
set “ENGINE_RIDER=%ENGINE_DIR%EnginePluginsRiderLinkRiderLink.uplugin”
echo == Isolate EnginePlugins (keep RiderLink only) ==
if exist “%PLUGINS_OFF%” rmdir /s /q “%PLUGINS_OFF%”
if exist “%PLUGINS%” (
move “%PLUGINS%” “%PLUGINS_OFF%” >nul
) else (
echo WARN: Plugins folder not found at: %PLUGINS%
)
mkdir “%PLUGINS%” >nul 2>&1
if exist “%PLUGINS_OFF%RiderLink” (
xcopy /e /i /y “%PLUGINS_OFF%RiderLink” “%PLUGINS%RiderLink” >nul
) else (
echo NOTE: No RiderLink in Plugins.off. Install from Rider first, then rerun.
)
echo == Clean UnrealLink temp ==
if exist “%LOCALAPPDATA%UnrealLink” rmdir /s /q “%LOCALAPPDATA%UnrealLink”
if not exist “%UAT%” (
echo ERROR: RunUAT not found: %UAT%
exit /b 1
)
if not exist “%ENGINE_RIDER%” (
echo ERROR: Engine RiderLink not found: %ENGINE_RIDER%
echo Open project in Rider and install RiderLink into Engine, then rerun this script.
exit /b 2
)
if not exist “%STAGE_DIR%” mkdir “%STAGE_DIR%”
echo == BuildPlugin RiderLink ==
call “%UAT%” BuildPlugin -Unversioned -Verbose -Plugin=”%ENGINE_RIDER%” -Package=”%STAGE_DIR%”
if errorlevel 1 (
echo BuildPlugin failed. See AutomationTool logs under %%APPDATA%%Unreal EngineAutomationToolLogs
exit /b 3
)
echo == Install built RiderLink back to Engine ==
set “BUILT_PLUGIN=”
for /f “delims=” %%F in (‘dir /b /s “%STAGE_DIR%RiderLink.uplugin” 2^>nul’) do (
set “BUILT_PLUGIN=%%~dpF”
)
if not defined BUILT_PLUGIN (
echo ERROR: Built RiderLink not found under %STAGE_DIR%
exit /b 4
)
if exist “%ENGINE_DIR%EnginePluginsRiderLink” rmdir /s /q “%ENGINE_DIR%EnginePluginsRiderLink”
mkdir “%ENGINE_DIR%EnginePluginsRiderLink” 2>nul
xcopy /e /i /y “%BUILT_PLUGIN%” “%ENGINE_DIR%EnginePluginsRiderLink” >nul
if errorlevel 1 (
echo ERROR: Copy failed. Run CMD as Administrator.
exit /b 5
)
echo == Done ==
echo RiderLink installed at: “%ENGINE_DIR%EnginePluginsRiderLink”
echo If stable, restore other plugins by merging “%PLUGINS_OFF%” back into “%PLUGINS%” (except known bad ones).
exit /b 0
“`
**How to run**
1) Open **Command Prompt as Administrator**.
2) Run:
“`bat
D:
cd UEtools
:: Clean everything (engine+project RiderLink, UnrealLink temp)
riderlink-reset.bat
:: (Open project in Rider → install RiderLink into Engine)
:: Build and install RiderLink to EnginePluginsRiderLink
riderlink-build.bat
:: If UBT still crashes, isolate all other plugins and rebuild RiderLink
ue56-riderlink-repair.bat
“`
**a.** Want me to add a script to restore plugins from `Plugins.off` one-by-one to find the exact offender automatically?
**b.** Do you also want a `.bat` that builds `ShaderCompileWorker` + `UnrealEditor` after RiderLink is installed?
0>VisionOS.Automation.csproj: Error NU1701 : Warning As Error: Package ‘Microsoft.IO.Redist 6.1.0’ was restored using ‘.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1’ instead of the project target framework ‘net8.0’. This package may not be fully compatible with your project.
**TL;DR:** It’s a **NuGet TFMs mismatch**. UE’s VisionOS tool project targets **net8.0**, but `Microsoft.IO.Redist 6.1.0` only ships **.NET Framework** TFMs → **NU1701** escalates to error. Quickest fix (no code changes): **silence NU1701 for Engine tool projects** via a `Directory.Build.props`. See the `.bat` below. (You can later try upgrading the package, but suppressing is the least risky for a Launcher/Engine install.) citeturn0search4turn0search0
—
### Do this (no IDE needed)
1) **Create a props override** under `EngineSourcePrograms` that disables NU1701 as an error for those MSBuild tool projects.
2) Re-run your RiderLink build.
#### 1) One-shot `.bat` to suppress NU1701 for Engine tool builds
> Save as `D:UEtoolsfix-nu1701.bat`, then run in **elevated CMD**.
“`bat
:: File: D:UEtoolsfix-nu1701.bat
@echo off
setlocal EnableExtensions
rem === EDIT THIS to your engine path ===
set “ENGINE_DIR=C:Program FilesEpic GamesUE_5.6”
set “PROGS=%ENGINE_DIR%EngineSourcePrograms”
set “PROPS=%PROGS%Directory.Build.props”
if not exist “%PROGS%” (
echo ERROR: Not found: %PROGS%
exit /b 1
)
echo Creating/Updating %PROPS% …
> “%PROPS%” (
echo ^
echo ^
echo ^
echo ^$(NoWarn);NU1701^
echo ^false^
echo ^
echo ^
)
if errorlevel 1 (
echo ERROR: Could not write %PROPS%. Run CMD as Administrator.
exit /b 2
)
echo Done. NU1701 will be ignored for tools under EngineSourcePrograms.
exit /b 0
“`
#### 2) Rebuild your plugin (example)
“`bat
:: (Run as Admin)
D:
cd UEtools
fix-nu1701.bat
:: then your usual RiderLink build step, e.g. via UAT:
“C:Program FilesEpic GamesUE_5.6EngineBuildBatchFilesRunUAT.bat” ^
BuildPlugin -Unversioned -Plugin=”%LOCALAPPDATA%UnrealLinkKajuhyxHostProjectPluginsRiderLinkRiderLink.uplugin” ^
-Package=”%LOCALAPPDATA%UnrealLinkKajuhyx”
“`
—
### Why this works
– **NU1701** = NuGet restored a package using **different target frameworks** than your project (here, .NET Framework vs **net8.0**). It’s a **warning** by default, but many UE tool projects treat warnings as errors. Suppressing **NU1701** for Engine **tooling-only** projects is safe and common. citeturn0search4
– `Microsoft.IO.Redist` is a **downlevel System.IO shim**; older versions don’t ship net8 TFMs, so they trigger NU1701 while still functioning. Upgrading may help, but UE csproj files are vendor-managed. citeturn0search0
—
### Optional (if you prefer upgrading instead of suppressing)
– Try bumping `Microsoft.IO.Redist` to **6.1.3+** in the affected `*.csproj` (if present there) or in a local `Directory.Packages.props`. This can remove the warning if the newer package adds compatible TFMs. Be aware: **editing Engine packages** is brittle across updates. citeturn0search0
—
**a.** Want a `.bat` that also re-runs your full RiderLink **clean → build → install** after dropping the props file?
**b.** Prefer targeting **only** `VisionOS.Automation.csproj` in the props (instead of all tool projects)? I can scope it with an MSBuild Condition.
EpicGames.BuildGraph -> C:Program FilesEpic GamesUE_5.6EngineSourceProgramsSharedEpicGames.BuildGraphbinDebugnet8.0EpicGames.BuildGraph.dll
CONSOLE: C:Program FilesEpic GamesUE_5.6EngineBuildBatchFilesBuild.bat A25sept25Editor Win64 Development -Project=”D:UNREAL P)ROJECTSA25sept25A25sept25.uproject” -WaitMutex -FromMSBuild
0>Using bundled DotNet SDK version: 8.0.300 win-x64
0>Running UnrealBuildTool: dotnet “….EngineBinariesDotNETUnrealBuildToolUnrealBuildTool.dll” A25sept25Editor Win64 Development -Project=”D:UNREAL P)ROJECTSA25sept25A25sept25.uproject” -WaitMutex -FromMSBuild
0>Log file: C:UsersSarahAppDataLocalUnrealBuildToolLog.txt
0>Creating makefile for A25sept25Editor (.uproject file is newer)
0>Unable to find plugin ‘RiderLink’ (referenced via A25sept25.uproject). Install it and try again, or remove it from the required plugin list.
0>
0>Result: Failed (OtherCompilationError)
0>Total execution time: 1.08 seconds
CONSOLE: C:Program FilesEpic GamesUE_5.6EngineBuildBatchFilesBuild.bat LiveLinkHub Win64 Development -Project=”D:UNREAL P)ROJECTSA25sept25A25sept25.uproject” -WaitMutex -FromMsBuild -FromMSBuild
1>Using bundled DotNet SDK version: 8.0.300 win-x64
1>Running UnrealBuildTool: dotnet “….EngineBinariesDotNETUnrealBuildToolUnrealBuildTool.dll” LiveLinkHub Win64 Development -Project=”D:UNREAL P)ROJECTSA25sept25A25sept25.uproject” -WaitMutex -FromMsBuild -FromMSBuild
1>Log file: C:UsersSarahAppDataLocalUnrealBuildToolLog.txt
1>Creating makefile for LiveLinkHub (no existing makefile)
1>Unable to find plugin ‘RiderLink’ (referenced via A25sept25.uproject). Install it and try again, or remove it from the required plugin list.
1>
1>Result: Failed (OtherCompilationError)
1>Total execution time: 0.94 seconds
**TL;DR:** Your project **requires RiderLink** but the Engine doesn’t have it → UBT bails. Either **A) remove RiderLink from the project** (fastest), or **B) install RiderLink into `EnginePluginsRiderLink`**. Pick one below.
—
## Plan
1) Quick detect: check if your `.uproject` has `”Name”: “RiderLink”` under `”Plugins”`.
2) **Option A (recommended now):** strip RiderLink from the `.uproject`, clean `Intermediate/DerivedDataCache`, rebuild.
3) **Option B:** install RiderLink engine-wide, rebuild.
—
## a) Remove RiderLink from the project (fastest)
> Saves you from needing Rider installed right now. You can re-enable later.
“`bat
:: File: D:UEtoolsremove-riderlink-from-uproject.bat
@echo off
setlocal EnableExtensions
:: === EDIT THIS ===
set “UPROJ=D:UNREAL P)ROJECTSA25sept25A25sept25.uproject”
if not exist “%UPROJ%” (
echo ERROR: .uproject not found: %UPROJ%
exit /b 1
)
echo Removing RiderLink from “%UPROJ%” …
:: Use PowerShell to safely edit JSON
powershell -NoLogo -NoProfile -Command ^
“$p=’%UPROJ%’;” ^
“$j=Get-Content $p -Raw | ConvertFrom-Json;” ^
“if($j.Plugins){$j.Plugins=$j.Plugins | Where-Object { $_.Name -ne ‘RiderLink’ }};” ^
“($j | ConvertTo-Json -Depth 100) | Out-File -Encoding UTF8 -LiteralPath $p”
if errorlevel 1 (
echo ERROR: Failed to update .uproject
exit /b 2
)
echo Cleaning project caches…
for %%D in (“Intermediate” “DerivedDataCache” “SavedCooked”) do (
if exist “%~dp0..%%~D” rmdir /s /q “%~dp0..%%~D” >nul 2>&1
)
echo Done. Re-run your build. If UE was open, restart it.
exit /b 0
“`
Run (in elevated **CMD**):
“`bat
D:
cd UEtools
remove-riderlink-from-uproject.bat
“`
—
## b) Install RiderLink engine-wide (if you want Rider integration)
1) Install **JetBrains Rider** (latest).
2) Open your UE 5.6.1 project in Rider → accept **Install RiderLink → Install into Engine**.
3) Verify RiderLink exists at:
`C:Program FilesEpic GamesUE_5.6EnginePluginsRiderLinkRiderLink.uplugin`
4) Rebuild.
If Rider isn’t installed right now, stick to **Option A**, then add Rider later.
—
## Extra: quick checker (optional)
“`bat
:: File: D:UEtoolscheck-riderlink.bat
@echo off
setlocal
set “ENGINE_DIR=C:Program FilesEpic GamesUE_5.6”
set “UPROJ=D:UNREAL P)ROJECTSA25sept25A25sept25.uproject”
if exist “%ENGINE_DIR%EnginePluginsRiderLinkRiderLink.uplugin” (
echo Engine RiderLink: PRESENT
) else (
echo Engine RiderLink: NOT FOUND
)
powershell -NoLogo -NoProfile -Command ^
“$j=Get-Content ‘%UPROJ%’ -Raw | ConvertFrom-Json;” ^
“if($j.Plugins){$r=$j.Plugins | Where-Object Name -eq ‘RiderLink’; if($r){‘Project requires RiderLink: YES’} else {‘Project requires RiderLink: NO’}} else {‘Project requires RiderLink: NO’}”
“`
—
### Why you’re failing
Your log shows:
“`
Unable to find plugin ‘RiderLink’ (referenced via A25sept25.uproject)
“`
So the `.uproject` **requires** RiderLink, but the Engine **doesn’t have it** under `EnginePluginsRiderLink`. Removing the requirement or installing the plugin fixes it.
**a.** Want a script that toggles RiderLink ON/OFF in the `.uproject` instead of hard-removing it?
**b.** Want a `.bat` that builds `ShaderCompileWorker` + `UnrealEditor` right after fixing the `.uproject`?