Build Issues
.NET SDK Problems
SDK version not found
SDK version not found
Error:Cause: Missing or incorrect .NET SDK version.Solutions:
Let build script download SDK
The build scripts automatically download the correct SDK:SDK is downloaded to
.nuke/temp/dotnet-win or .nuke/temp/dotnet-unixManual SDK installation
SDK rollforward errors
SDK rollforward errors
Error:Solution:
The SDK will roll forward to newer minor versions. Ensure you have at least version
10.0.0 or let the build script handle it.Check installed SDKs:Preview SDK required
Preview SDK required
Error:Solution:
The This is required because Dalamud uses
global.json enables preview features:LangVersion: preview for C# language features.MSBuild and C++ Compilation
MSBuild not found
MSBuild not found
Error:Solutions:
-
Install Visual Studio 2022
- Download from visualstudio.microsoft.com
- Install with “Desktop development with C++” workload
-
Use Developer Command Prompt
- Open “Developer Command Prompt for VS 2022”
- Navigate to Dalamud directory
- Run
./build.ps1
-
Add MSBuild to PATH
Platform Toolset v143 missing
Platform Toolset v143 missing
Error:Cause: Missing C++ build tools for Visual Studio 2022.Solution:
Run Visual Studio Installer:
- Modify your VS 2022 installation
- Select “Desktop development with C++”
- Ensure these components are checked:
- MSVC v143 - VS 2022 C++ x64/x86 build tools
- Windows 10 SDK (latest version)
- C++ CMake tools for Windows
Windows SDK not found
Windows SDK not found
Error:Solution:
Install Windows 10 SDK:
- Via Visual Studio Installer (Individual Components tab)
- Or download standalone from Microsoft
MASM not found
MASM not found
Error:Cause: Dalamud.Boot uses MASM for assembly files (
rewrite_entrypoint_thunks.asm).Solution:
Install via Visual Studio Installer:- Individual Components → Compilers → MASM (x64)
Submodule Issues
Submodule not initialized
Submodule not initialized
Error:Cause: Git submodules not initialized.Solution:Verify submodules:
Submodule detached HEAD
Submodule detached HEAD
Warning:Explanation: This is normal for submodules. They’re pinned to specific commits.To update submodule:
Submodule permission denied (SSH)
Submodule permission denied (SSH)
Error:Solution:
Convert submodule URLs from SSH to HTTPS:
Dependency Problems
NuGet restore failures
NuGet restore failures
Error:Solutions:
-
Check network connectivity
-
Clear NuGet cache
- Check firewall/proxy settings Configure NuGet proxy if behind corporate firewall
Package version conflicts
Package version conflicts
Error:Cause: Dalamud uses Central Package Management (Version is defined in
Directory.Packages.props).Solution:
Package versions are centrally managed. Don’t specify versions in individual projects:Directory.Packages.props:Missing native dependencies
Missing native dependencies
Error:Cause: Native C++ DLLs not built.Solution:
Ensure full build completes:Check that these exist in
bin/Debug or bin/Release:cimgui.dllcimplot.dllcimguizmo.dllDalamud.Boot.dll
Runtime Issues
Dalamud fails to inject
Dalamud fails to inject
Symptoms: Game launches but Dalamud doesn’t load.Debug steps:
-
Check XIVLauncher logs
%APPDATA%\XIVLauncher\output.log- Look for injection errors
-
Verify Dalamud files
%APPDATA%\XIVLauncher\addon\Hooks\dev\- Ensure all DLLs are present
-
Check for antivirus interference
- Add exception for XIVLauncher directory
- Add exception for FFXIV directory
-
Test with clean profile
- Rename
%APPDATA%\XIVLaunchertemporarily - Launch with fresh configuration
- Rename
Plugin compatibility errors
Plugin compatibility errors
Error:Cause: Breaking API changes in your build.Solution:
Check API compatibility:If intentional breaking change:
- Update
DalamudVersioninDalamud.csproj - Document migration path
- Update changelog
Game crashes on startup
Game crashes on startup
Possible causes:
- Invalid hooks
- Memory corruption
- Incompatible game version
-
Enable crash dumps
- DalamudCrashHandler should generate dumps
- Check
%APPDATA%\XIVLauncher\crashes\
-
Test without plugins
- Disable all third-party plugins
- Narrow down to specific component
-
Check game version
- Ensure FFXIVClientStructs is up to date
- Game updates may break hooks
Test Failures
Tests not discovered
Tests not discovered
Symptoms: Test Explorer shows no tests.Solutions:
-
Rebuild test project
-
Verify xunit packages
-
Check test class is public
File not found in tests
File not found in tests
Error:Cause: Test data files not copied to output.Solution:
Add to Or use
.csproj:Assembly.GetExecutingAssembly().Location to locate files.Tests pass locally, fail in CI
Tests pass locally, fail in CI
Common causes:
-
Culture differences
-
Path separators
-
Missing dependencies
- Check CI logs for missing files
- Ensure test data is committed to repo
Performance Issues
Slow build times
Slow build times
Solutions:
-
Disable virus scanning for build directories
- Exclude project directory
- Exclude
.nuke,bin,objfolders
-
Use incremental builds
-
Close other applications
- MSBuild is CPU/memory intensive
- Close Visual Studio when using command line builds
-
Check disk I/O
- Use SSD for source code
- Consider RAM disk for temp files
High memory usage during build
High memory usage during build
MSBuild node reuse:The build scripts disable node reuse for clean builds:For development, you can enable it for faster builds:
Platform-Specific Issues
Windows
Long path errors
Long path errors
Error:Solution:
Enable long path support:Or clone to shorter path:
Execution policy errors
Execution policy errors
Error:Solution:
Linux
Cannot build C++ components
Cannot build C++ components
Expected behavior: Linux builds skip native components.The build system detects this and skips:
CompileCImGuiCompileCImPlotCompileCImGuizmoCompileDalamudBootCompileDalamudCrashHandler
Permission denied on build.sh
Permission denied on build.sh
Error:Solution:
Getting Help
Discord Server
Ask in #dev channel for development questions
GitHub Issues
Report bugs or search existing issues
Build Logs
Always include full build output when asking for help
System Info
Provide OS, .NET version, and Visual Studio version
Diagnostic Commands
Run these to gather information for bug reports:Next Steps
Building Dalamud
Return to build instructions
Contributing
Learn how to contribute