ifBars-SteamNetworkLib_Mono icon

SteamNetworkLib Mono

A streamlined, object-oriented Steam networking library designed specifically for Schedule 1 mods.

Last updated 3 days ago
Total downloads 20
Total rating 0 
Categories Libraries Mono
Dependency string ifBars-SteamNetworkLib_Mono-1.0.0
Dependants 0 other packages depend on this package

README

SteamNetworkLib

A streamlined, object-oriented Steam networking library designed specifically for MelonLoader mods. This library dramatically simplifies Steam lobby management, data synchronization, and P2P communication compared to using Steamworks.NET directly.

πŸš€ Key Features

🏒 Lobby Management

  • Create/Join lobbies with async/await support
  • Automatic member tracking with join/leave events
  • Steam overlay integration for invites

πŸ“Š Data Synchronization

  • Lobby Data: Global key-value storage for all players
  • Member Data: Per-player data visible to everyone
  • Automatic caching and change detection
  • Event-driven updates when data changes

🌐 P2P Communication

  • Type-safe message system with automatic serialization
  • Broadcast or direct messaging between players
  • Built-in message types: Text, DataSync, DataRequest, FileTransfer
  • Custom message support via inheritance

πŸ”§ MelonLoader Optimized

  • No complex setup - just initialize and go
  • Automatic resource cleanup on dispose
  • Mod compatibility checking (like BetterJukebox track manifests)
  • Error handling that won't crash your mod

πŸ› οΈ Requirements

  • .NET Framework 4.7.2+ or .NET 6.0+
  • Steamworks.NET (included with game)
  • Steam
  • MelonLoader (for mod development)

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Third-Party Dependencies

SteamNetworkLib uses several third-party libraries, all of which are compatible with the MIT License:

  • Steamworks.NET (MIT License) - Steam API wrapper
  • OpusSharp (MIT License) - Audio compression for streaming examples (Mono runtime only)
  • MelonLoader (MIT License) - Mod loader framework (examples only)

Note: OpusSharp is only used in Mono builds due to IL2CPP compatibility issues.

Disclaimer

This library is provided "as-is" under the MIT License. The author is not responsible for any misuse, damages, or violations arising from the use of this wrapper. Users are responsible for complying with Valve’s Steamworks SDK license and any applicable laws.


Built for the Schedule 1 modding community Making Steam networking accessible to everyone.