Asset Types

Grids supports multiple asset types that can be uploaded to the marketplace, acquired by players, and used in the game world.

Supported Types

TypeExtensionsDescription
Texture.png, .jpg, .jpeg, .webp, .tga2D images used for block faces, decals, and materials
Audio.wav, .ogg, .mp3, .flacSound effects, music, ambient audio
Video.mp4, .webmVideo textures for display blocks and cinematics
Model.gltf, .glb, .fbx, .obj3D models imported as static meshes
Script.luaGameplay scripts for custom block behavior

Asset Lifecycle

1. Upload

Creators upload assets through the web marketplace or via the API. Each upload includes:

2. Marketplace

Published assets appear in the marketplace where other players can browse, search, and acquire them. Assets are stored in Cloudflare R2.

3. Library

When a player acquires an asset, it's added to their personal library. The library is synced to the game client via the API.

4. In-Game Usage

In the game, pressing Tab opens the Asset Browser overlay which displays the player's library. Clicking an asset spawns it in the world (e.g., applying a texture to a block, placing a model, attaching a sound).

Thumbnails

Each asset can have a thumbnail image for display in the marketplace and asset browser. If no thumbnail is provided, a placeholder icon is shown based on the asset type:

TypePlaceholder
Texture🖼️
Audio🔊
Video🎬
Model🧊
Script📜

Asset Protection

Assets are protected during delivery using:

  1. HMAC-Signed URLs — Download URLs expire after a configured TTL and are signed with HMAC-SHA256
  2. XOR Scrambling — Asset data is XOR-scrambled during transfer to prevent casual interception
  3. Sandboxed Rendering — Overlay scripts run in CEF's sandboxed environment without direct filesystem access