Skip to content

UGC & Bundles

BlackICE supports user generated content in the form of UGC bundles. Bundles allow running server and client code in a sandboxed WebAssembly environment, packaged together with optional web content for UI. Client code is streamed to every peer that connects to your server. Bundles allow a server to vastly modify the game state and implement many different game modes.

Bundles typically ship one component per realm, and the two sides communicate over the network.

The word realm is used to describe on which "side" code is running. Bundle code can either run on:

  • The game server, which handles:
    • Connection and player management
    • VOIP management
    • Client spawning logic
    • Confidential logic that should not be available to clients
  • Connected game clients, who handle:
    • Modifying base game state via Events, Hooks or by modifying scripting state
    • Listening to user input to trigger logic
    • Communicating with the ReUI layer to hydrate and render custom web content

Who is this section for?

Boundaries and trust model

Both audiences should read The Networking Model

Creators need to write secure code with proper validation, server owners need to be aware of risks a certain type of bundle can introduce