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" />
                    
Directory.Packages.props
<PackageReference Include="Ra3.Tools" />
                    
Project file
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
                    
#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
                    
Install as a Cake Addin
#tool nuget:?package=Ra3.Tools&version=2.1.4
                    
Install as a Cake Tool

Ra3 Tools 100px

Ra3.Tools

English | 简体中文

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 like 4.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);
}
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.Installation
  • Ra3.Tools.Configuration
  • Ra3.Tools.Graphics
  • Ra3.Tools.IO
  • Ra3.Tools.Patching
  • Ra3.Tools.Profiles
  • Ra3.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 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.

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