Slippi.NET 0.1.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Slippi.NET --version 0.1.0
                    
NuGet\Install-Package Slippi.NET -Version 0.1.0
                    
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="Slippi.NET" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Slippi.NET" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Slippi.NET" />
                    
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 Slippi.NET --version 0.1.0
                    
#r "nuget: Slippi.NET, 0.1.0"
                    
#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 Slippi.NET@0.1.0
                    
#: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=Slippi.NET&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Slippi.NET&version=0.1.0
                    
Install as a Cake Tool

Slippi.NET

This project is a port of slippi-js to modern .NET while maintaining more or less the same API surface.

Internally an attempt is made to use stack-allocated System.Span<byte> wherever possible, which significantly improves performance over GC-allocated byte[].

Usage

Just as in slippi-js, the main entrypoint is SlippiGame, taking either a filepath or a byte buffer.

SlippiGame game = new SlippiGame('./game.slp');
// do things with game

Utils

Utility functions are scattered, to name a few:

Slippi.NET.Melee

namespace Slippi.NET.Melee;

static class StageUtils
{
    static StageInfo GetStageInfo(int stageId);
    // etc.
}

static class MoveUtils
{
    static Move GetMoveInfo(int moveId);
    // etc.
}

static class CharacterUtils
{
    static CharacterInfo GetCharacterInfo(int characterId);
    static List<CharacterInfo> GetAllCharacters();
    // etc.
}

Slippi.NET.Stats

namespace Slipp.NET.Stats;

static class ActionUtils
{
    static bool IsMissGroundTech(State animation);
    // etc.
}

static class InputUtils
{
    static JoystickRegion GetJoystickRegion(float x, float y);
    // etc.
}

Slippi.NET.Utils

namespace Slippi.NET.Utils;

static class WinnerCalculator
{
    static IList<Placement> GetWinners(
        GameEnd gameEnd,
        GameStart settings,
        IList<PostFrameUpdate> finalPostFrameUpdates);
}

Connection

ConsoleConnection is implemented but currently untested.

Using DolphinConnection is very straightforward, create a new DolphinConnection and call Connect with an IP address and port. You can listen to the events defined on the base Connection class for updates and information on the Dolphin instance.

If Dolphin is local, you can use 127.0.0.1. The Ports enumeration provides common values for ports, with Default (51441) being the standard one that Dolphin uses.

You can find an example in src/DolphinConnectionTestApp/.

Development

Restore and build Slippi.NET.sln from the root of the project.

Currently all projects target .NET 9 to make use of the latest Span improvements to the standard library.

Tests

The Slippi.NET.Tests contains all unit tests for the project. All tests have been ported from slippi-js.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
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
0.9.0 101 1/13/2026
0.8.3 91 1/13/2026
0.8.0 210 12/7/2025
0.7.1 194 8/31/2025
0.7.0 315 8/25/2025
0.6.0 109 8/23/2025
0.5.0 178 8/21/2025
0.4.2 161 8/9/2025
0.4.1 105 8/2/2025
0.4.0 153 7/28/2025
0.3.2 175 7/13/2025
0.3.1 169 7/13/2025
0.3.0 180 6/25/2025
0.2.0 184 5/26/2025
0.1.0 268 5/13/2025