DocsRecordingOverview

Recording

Automatically capture gameplay moments and let players share their best clips.


How It Works

  1. You define events - Boss fights, achievements, speedruns, etc.
  2. Your game triggers recordings - Call the trigger function when events happen
  3. Shard Launcher captures - Records gameplay in the background
  4. Players get clips - Automatic clips appear in their library
┌─────────────┐       HTTP POST       ┌─────────────────┐
│   Your      │──────────────────────►│   Shard         │
│   Game      │  /api/recording/trigger│   Launcher      │
└─────────────┘                       └─────────────────┘


                                      ┌─────────────────┐
                                      │   Video Clip    │
                                      │   Saved         │
                                      └─────────────────┘

Quick Start

1. Create Event IDs with ShardKit CLI

# Initialize your project
npx @shard-dev/shardkit init
# Select your engine and enable Recording
 
# Add recording events
npx @shard-dev/shardkit recording add
# Enter "Boss Defeated" → myGame_e5f6g7h8
 
# Export for distribution
npx @shard-dev/shardkit recording export

2. Trigger Events in Your Game

# Godot 4.x
func _on_boss_defeated():
    ShardSDK.recording.trigger_event("myGame_e5f6g7h8")

Event IDs

Each recording is triggered by an event ID - a unique identifier you create with ShardKit:

npx @shard-dev/shardkit recording add
# Enter "Boss Defeated" → myGame_e5f6g7h8

Event IDs follow the format: {camelCaseGameName}_{8hexChars}


When to Record

Create events for moments players want to share:

  • Boss defeats
  • Achievement unlocks
  • Speedrun completions
  • Rare item drops
  • PvP victories
  • Secret discoveries

Trigger recording at the moment of achievement - the Launcher captures a buffer around the trigger point.


Distribution

Include game_events.json with your game build:

your-game/
├── YourGame.exe (or platform equivalent)
├── game data files
└── game_events.json  ← Required!

The Launcher reads this file to show human-readable event names in the clip library.


Engine-Specific Setup


Next Steps