HowtoFishIdentityAPI
HowtoFishIdentityAPI is a shared identity verification API for How to Fish mods. It gives server-authoritative mods a stable, verified player key.
About this mod Machine translation
Note: This description is bilingual. The Chinese section is provided below the English section.
Note: This description is a bilingual version in Chinese and English. The Chinese content is located below the English content.
HowtoFishIdentityAPI (English)
HowtoFishIdentityAPI is a shared identity verification API for How to Fish mods. It gives server-authoritative mods a stable, verified player key.
Main Features
- Verifies Steam players with the SteamID confirmed by the game's Steam transport.
- Verifies non-Steam players with a local RSA key and a server-issued challenge.
- Exposes a stable key such as steam: or key: after verification.
- Uses dedicated FishNet broadcasts for the handshake.
- Provides a verification event so dependent mods can initialize server-side player data.
For Players
This mod is an API/dependency. It does not add gameplay, UI, commands, or currency by itself.
Install it when another How to Fish mod lists HowtoFishIdentityAPI as a requirement. If the dependent mod is multiplayer, the host and participating clients should install the required dependency as instructed by that mod.
Non-Steam identity keys are stored locally in:
Saves/HowtoFishIdentityAPI.identity
Do not share this file. A copied non-Steam identity file can be used to impersonate that identity. This API confirms possession of the key; it is not a permission, ban, or anti-cheat system.
For Mod Authors
Reference HowtoFishIdentityAPI.dll and add a hard BepInEx dependency:
using BepInEx;
using FishNet.Connection;
using HowtoFishIdentityAPI.Api;
[BepInPlugin(PluginInfo.PLUGIN_GUID, "My Mod", "1.0.0")]
[BepInDependency("IceBoxStudio.HowToFish.IdentityAPI", "1.0.1")]
public sealed class MyPlugin: BaseUnityPlugin
{
private void Awake()
{
IdentityApi.Verified += OnVerified;
}
private void OnVerified(NetworkConnection connection)
{
if (IdentityApi.TryGetKey(connection, out string key))
{
// Load or create server-side data using key.
}
}
}
Useful API methods:
- IdentityApi.IsVerified(NetworkConnection) checks whether a connection has completed verification.
- IdentityApi.IsVerified(Player) checks a player's current connection.
- IdentityApi.TryGetKey(NetworkConnection, out string key) returns the verified stable key.
- IdentityApi.TryGetKey(Player, out string key) returns the verified key for a player.
- IdentityApi.TryGetLocalKey(Player, out string key) resolves the local player's key on the client for UI filtering; it is not a server authorization check.
- IdentityApi.IsSteam(NetworkConnection) and IdentityApi.IsSteam(Player) identify Steam transport identities.
- IdentityApi.Verified fires on the server after a connection is verified.
The identity handshake uses IdentityHelloBroadcast, IdentityChallengeBroadcast, and IdentityProofBroadcast. Do not patch or read Server.RpcReader___SendChatMessage___3264264606 for custom protocols.
Compatibility
- Game version: 1.0.12+
- BepInEx: 5.4.23.5+
Bug Reports & Feature Suggestions
If you have any questions or feature suggestions, please submit them through GitHub Issues, contact me on Discord at iceboxcool, or email 764884112@qq.com or ibox2333@gmail.com.
If you enjoy my mods, feel free to support me! / If you like my mods, please support me!
HowtoFishIdentityAPI (Chinese)
HowtoFishIdentityAPI is a shared authentication API used by the How to Fish module. It provides stable, verified player identities for mods that require a server's authoritative identity.
Main functions
- Authenticate Steam players using the SteamID confirmed by the game's Steam transfer.
- Authenticate non-Steam players using client local RSA keys and server random challenges.
- Provide a stable identity key after verification, such as steam: or key:.
- Complete handshake using standalone FishNet Broadcast.
- Provide authentication completion events to facilitate other modules to initialize player data on the server side.
to players
This is an API/dependency mod and does not add gameplay, UI, command or money …
Install & use Install: follow the bundled instructions
- Unzip the archive from playbuff and read the bundled readme / instructions first.
- Most mods rely on the game's mod loader — the usual route is a community mod manager (such as r2modman): pick this game, install, and it handles the loader and dependencies.
- For a manual install, put the mod files into the matching Mod / plugins folder inside the game directory.
- Launch the game to confirm it loaded; mods with listed dependencies need those installed as well.
Install locations vary a lot between mods — the bundled readme is the most reliable guide.
Install these first, or the mod will not work: