Zehs.TwitchChatAPI 2.0.0

dotnet add package Zehs.TwitchChatAPI --version 2.0.0
                    
NuGet\Install-Package Zehs.TwitchChatAPI -Version 2.0.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="Zehs.TwitchChatAPI" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Zehs.TwitchChatAPI" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Zehs.TwitchChatAPI" />
                    
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 Zehs.TwitchChatAPI --version 2.0.0
                    
#r "nuget: Zehs.TwitchChatAPI, 2.0.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 Zehs.TwitchChatAPI@2.0.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=Zehs.TwitchChatAPI&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Zehs.TwitchChatAPI&version=2.0.0
                    
Install as a Cake Tool

TwitchChatAPI

GitHub Thunderstore Version Thunderstore Downloads NuGet Version

Add Twitch chat integration to your Unity game mods! Subscribe to events like Messages, Cheers, Subs, and Raids. No Twitch authentication or connections required.

<ins>Who needs this mod installed for it to work?</ins> Only you!

API Usage

<details><summary>Click to Expand</summary>

<br>

Reference TwitchChatAPI in your project's .csproj file.

Add TwitchChatAPI as a dependency to your plugin class.

[BepInDependency(TwitchChatAPI.MyPluginInfo.PLUGIN_GUID, BepInDependency.DependencyFlags.HardDependency)]
[BepInPlugin("You.YourMod", "YourMod", "1.0.0")]
[BepInDependency(TwitchChatAPI.MyPluginInfo.PLUGIN_GUID, BepInDependency.DependencyFlags.HardDependency)]
public class YourMod : BaseUnityPlugin
{
    // ...
}

API

https://github.com/ZehsTeam/TwitchChatAPI/blob/main/TwitchChatAPI/API.cs

namespace TwitchChatAPI;

public static class API
{
    public static string Channel { get; }

    public static ConnectionState ConnectionState { get; }
    public static event Action<ConnectionState> OnConnectionStateChanged;

    public static event Action OnConnect;
    public static event Action OnDisconnect;
    public static event Action<TwitchMessage> OnMessage;
    public static event Action<TwitchCheerEvent> OnCheer;
    public static event Action<TwitchSubEvent> OnSub;
    public static event Action<TwitchRaidEvent> OnRaid;
    public static event Action<TwitchRoomState> OnRoomStateUpdate;

    public static IReadOnlyCollection<TwitchUser> Users { get; }

    public static void Connect();
    public static void Connect(string channel);

    public static void Disconnect();    

    public static bool TryGetUserByUsername(string username, out TwitchUser twitchUser);
    public static bool TryGetUserByUserId(string userId, out TwitchUser twitchUser);
    public static TwitchUser[] GetUsersSeenWithin(TimeSpan timeSpan);
}

TwitchUser

https://github.com/ZehsTeam/TwitchChatAPI/blob/main/TwitchChatAPI/Objects/TwitchUser.cs

TwitchMessage

https://github.com/ZehsTeam/TwitchChatAPI/blob/main/TwitchChatAPI/Objects/TwitchMessage.cs

TwitchEvents (Cheer, Sub, Raid)

https://github.com/ZehsTeam/TwitchChatAPI/blob/main/TwitchChatAPI/Objects/TwitchEvents.cs

Example

using TwitchChatAPI;
using TwitchChatAPI.Enums;
using TwitchChatAPI.Objects;
using UnityEngine;

public class TwitchChatExample : MonoBehaviour
{
    private void OnEnable()
    {
        // Subscribe to Twitch events
        API.OnMessage += HandleMessage;
        API.OnCheer += HandleCheer;
        API.OnSub += HandleSub;
        API.OnRaid += HandleRaid;
    }

    private void OnDisable()
    {
        // Unsubscribe to avoid memory leaks
        API.OnMessage -= HandleMessage;
        API.OnCheer -= HandleCheer;
        API.OnSub -= HandleSub;
        API.OnRaid -= HandleRaid;
    }

    private void HandleMessage(TwitchMessage message)
    {
        Debug.Log($"[{message.User.DisplayName}]: {message.Message}");
    }

    private void HandleCheer(TwitchCheerEvent cheer)
    {
        Debug.Log($"{cheer.User.DisplayName} cheered {cheer.CheerAmount} bits!");
    }

    private void HandleSub(TwitchSubEvent sub)
    {
        //...
    }

    private void HandleRaid(TwitchRaidEvent raid)
    {
        Debug.Log($"Raid incoming! {raid.User.DisplayName} is raiding with {raid.ViewerCount} viewers!");
    }
}

</details>

Developer Contact

Report bugs, suggest features, or provide feedback:

Discord Server Forum Post
Lethal Company Modding #mod-releases TwitchChatAPI
Unofficial Lethal Company Community #mod-releases TwitchChatAPI
R.E.P.O. Modding Server #released-mods TwitchChatAPI

<img src="https://i.imgur.com/duJZQTS.png" width="200px">

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  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. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos 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
2.0.0 155 5/20/2025