MCPcopy Index your code
hub / github.com/HouraiTeahouse/bevy_steamworks

github.com/HouraiTeahouse/bevy_steamworks @0.17

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.17 ↗ · + Follow
11 symbols 12 edges 2 files 3 documented · 27%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

bevy-steamworks

crates.io Documentation License

This crate provides a Bevy plugin for integrating with the Steamworks SDK.

Installation

Add the following to your Cargo.toml:

[dependencies]
bevy-steamworks = "0.15"

The steamworks crate comes bundled with the redistributable dynamic libraries of a compatible version of the SDK. Currently it's v158a.

If you wish to enable serde support add the following:

[dependencies]
bevy-steamworks = { version = "0.15", features = ["serde"] }

Usage

To add the plugin to your app, simply add the SteamworksPlugin to your App. This will require the AppId provided to you by Valve for initialization.

```rust no_run use bevy::prelude::; use bevy_steamworks::;

fn main() { // Use the demo Steam AppId for SpaceWar App::new() // it is important to add the plugin before RenderPlugin that comes with DefaultPlugins .add_plugins(SteamworksPlugin::init_app(480).unwrap()) .add_plugins(DefaultPlugins) .run() }


The plugin adds `Client` as a Bevy ECS resource, which can be
accessed like any other resource in Bevy. The client implements `Send` and `Sync`
and can be used to make requests via the SDK from any of Bevy's threads.

The plugin will automatically call `SingleClient::run_callbacks` on the Bevy
every tick in the `First` schedule, so there is no need to run it manually.

All callbacks are forwarded as `Messages` and can be listened to in a
Bevy idiomatic way:

```rust no_run
use bevy::prelude::*;
use bevy_steamworks::*;

fn steam_system(steam_client: Res<Client>) {
  for friend in steam_client.friends().get_friends(FriendFlags::IMMEDIATE) {
    println!("Friend: {:?} - {}({:?})", friend.id(), friend.name(), friend.state());
  }
}

fn main() {
  // Use the demo Steam AppId for SpaceWar
  App::new()
      // it is important to add the plugin before `RenderPlugin` that comes with `DefaultPlugins`
      .add_plugins(SteamworksPlugin::init_app(480).unwrap())
      .add_plugins(DefaultPlugins)
      .add_systems(Startup, steam_system)
      .run()
}

Bevy Version Supported

Bevy Version bevy_steamworks
0.17 0.15
0.16 0.14
0.15 0.13
0.14 0.12
0.13 0.10, 0.11
0.12 0.9
0.11 0.8
0.10 0.7
0.9 0.6
0.8 0.5
0.7 0.4
0.6 0.2, 0.3
0.5 0.1

Core symbols most depended-on inside this repo

deref
called by 0
src/lib.rs
init_app
called by 0
src/lib.rs
init
called by 0
src/lib.rs
build
called by 0
src/lib.rs
run_steam_callbacks
called by 0
src/lib.rs
steam_system
called by 0
examples/basic.rs
main
called by 0
examples/basic.rs

Shape

Method 4
Function 3
Class 2
Enum 2

Languages

Rust100%

Modules by API surface

src/lib.rs9 symbols
examples/basic.rs2 symbols

For agents

$ claude mcp add bevy_steamworks \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact