Ra3.Tools
2.1.4
dotnet add package Ra3.Tools --version 2.1.4
NuGet\Install-Package Ra3.Tools -Version 2.1.4
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Ra3.Tools" Version="2.1.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Ra3.Tools" Version="2.1.4" />
<PackageReference Include="Ra3.Tools" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Ra3.Tools --version 2.1.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Ra3.Tools, 2.1.4"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Ra3.Tools@2.1.4
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Ra3.Tools&version=2.1.4
#tool nuget:?package=Ra3.Tools&version=2.1.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Ra3.Tools
Windows-only RA3 SDK for local installation management, launch helpers, SkuDef editing, 4GB patching, display advice, and file utilities.
Features
- RA3 installation validation and known path discovery
- Registry read, repair, and language switching
- Launch helpers for normal, browser, and windowed modes, with optional SkuDef config
- SkuDef load/save with raw line preservation
- 4GB patch enable/disable for
ra3_1.12.game - Display mode enumeration and RA3 resolution recommendation
- Map package (zip) installation with Zip Slip protection
- Steam AppID generation (
steam_appid.txt) - RA3 online profile parsing (GameSpyLogin.ini accounts with password decryption, ProfileData.ini player ID)
- Shared file access and CRC32C checksum helpers
- RA3 version parsing and matching (
1.12,1.13, channel letters like4.02N)
Package
dotnet add package Ra3.Tools
Examples
Read install path
using Ra3.Tools.Installation;
var registry = new Ra3Registry();
var installPath = registry.GetInstallPath();
var installation = new Ra3Installation(installPath);
if (Ra3InstallationValidator.HasRequiredGameFiles(installation.RootPath))
{
Console.WriteLine(installation.GameDataExecutablePath);
}
Rebuild registry
using Ra3.Tools.Installation;
var registry = new Ra3Registry();
registry.Rebuild(@"D:\Games\Red Alert 3", "YOUR-CD-KEY");
registry.TrySetLanguage(@"D:\Games\Red Alert 3", "english");
Edit SkuDef
using Ra3.Tools.Configuration;
var document = SkudefSerializer.Load(@"D:\Games\Red Alert 3\example.skudef");
var updated = document with
{
Entries = document.Entries
.Concat(new SkudefEntry[]
{
new AddBigEntry(@"D:\Mods\example.big")
})
.ToArray()
};
SkudefSerializer.Save(@"D:\Games\Red Alert 3\example.skudef", updated);
Toggle 4GB patch
using Ra3.Tools.Patching;
var patchService = new Ra3LargeAddressPatchService();
var gamePath = @"D:\Games\Red Alert 3\Data\ra3_1.12.game";
if (!patchService.IsEnabled(gamePath))
{
patchService.Enable(gamePath);
}
Get recommended display mode
using Ra3.Tools.Graphics;
var displayService = new WindowsDisplayService();
var supported = displayService.GetSupportedDisplayModes();
var current = displayService.GetCurrentDisplayMode();
var recommended = Ra3DisplayAdvisor.GetRecommendedDisplayMode(supported, current);
Install map package
using Ra3.Tools.IO;
using Ra3.Tools.Installation;
var installed = ZipMapInstaller.InstallMapPackage(@"D:\Downloads\map_pack.zip", Ra3KnownPaths.MapsDirectoryPath);
Generate Steam AppID
using Ra3.Tools.Installation;
if (Ra3InstallationValidator.NeedsSteamAppId(@"D:\Games\Red Alert 3"))
{
Ra3InstallationValidator.GenerateSteamAppId(@"D:\Games\Red Alert 3");
}
Parse online profile data
using Ra3.Tools.Profiles;
var login = GameSpyLoginDocument.Load(@"%appdata%\Red Alert 3\Profiles\PlayerOne\GameSpyLogin.ini");
foreach (var account in login.Accounts)
{
Console.WriteLine($"{account.Email} / {account.Nickname} / {account.DecryptPassword()}");
}
var identity = Ra3ProfileData.Load(@"%appdata%\Red Alert 3\Profiles\PlayerOne\ProfileData.ini");
Console.WriteLine(identity.PublicKey); // player ID (PPK)
Namespaces
Ra3.Tools.InstallationRa3.Tools.ConfigurationRa3.Tools.GraphicsRa3.Tools.IORa3.Tools.PatchingRa3.Tools.ProfilesRa3.Tools.Versioning
Notes
- Target framework:
net10.0-windows7.0 - This package only contains local RA3 tooling. It does not include updater, downloader, platform networking, or product-specific mod logic.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows7.0 is compatible. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0-windows7.0
- AsmResolver.PE (>= 6.0.0)
- Crc32.NET (>= 1.2.0)
- System.Management (>= 10.0.10)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.1.4 | 110 | 8/29/2026 |
| 2.1.3 | 105 | 8/24/2026 |
| 2.1.2 | 121 | 8/12/2026 |
| 2.1.1 | 102 | 8/12/2026 |
| 2.1.0 | 102 | 8/12/2026 |
| 1.1.2 | 1,149 | 2/14/2023 |
| 1.1.1 | 972 | 11/13/2022 |
| 1.1.0 | 1,993 | 5/28/2022 |
| 1.0.9 | 955 | 5/8/2022 |
| 1.0.8 | 838 | 1/5/2022 |
| 1.0.7 | 1,148 | 9/1/2020 |
| 1.0.6 | 1,052 | 9/1/2020 |
| 1.0.5 | 1,032 | 8/31/2020 |
| 1.0.4 | 991 | 8/31/2020 |
| 1.0.3 | 1,022 | 8/18/2020 |
| 1.0.2 | 1,156 | 8/15/2020 |
| 1.0.1 | 1,083 | 8/14/2020 |
| 1.0.0 | 1,056 | 8/14/2020 |