Skip to content

AutoOnboarder (CTMT)

AutoOnboarder is the Content Transport Management Tool (CTMT) service. It manages user state baseline snapshots, game installation, and restores the "Kiosk" user account to a clean state between sessions.

NOTE

In newer bundles, AutoOnboarder co-exists with newer orchestration services (gs2, morph) rather than being the only lifecycle coordinator.

Version

CTMT version 2023.4.6.19552 (DLL: ctmt-plugin.dll)
CTMT Python service: 2023.4.6.9653344

Core Responsibilities

  1. Baseline capture — snapshots the clean Kiosk user account state
  2. State restoration — restores registry, files, Steam account before each session
  3. User save management — uploads/downloads cloud saves
  4. Platform controller — manages game stores (Steam, Epic, etc.)
  5. Content controller — handles game installation and updates

Directory Structure

C:\Asgard\services\AutoOnboarder\
├── baseline\         ← Clean system snapshot
├── user-saves\       ← Per-user cloud save data
├── fpgen\            ← Fingerprint generation
├── misc\             ← Miscellaneous tools
└── plugins\          ← Plugin extensions

Scraper Configuration

scraperConfig.ptxt defines what gets captured in the baseline snapshot:

Captures

  • Registry hives: HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_CLASSES_ROOT
  • User profile: C:\Users\Kiosk\ (excluding Steam user data)
  • NVIDIA config dirs: C:\ProgramData\NVIDIA Corporation\GeForceNOW\

Exclusions

  • C:\ProgramData\NVIDIA\ (driver data)
  • Steam's userdata\ directory
  • Windows system directories

MessageBus Configuration

json
{
  "LogPath": "C:\\asgard\\logs\\AutoOnboarder",
  "LocalConnectionSuffix": "",
  "LogLevel": 5,
  "MessageBusPort": 65000,
  "InstallPath": "C:\\Program Files\\NVIDIA Corporation\\NvContainer"
}

Platform Controller

From platform_controller.txt logs:

The platform controller initializes GfnGuard, then:

  1. Reads content controller config from userdata
  2. Sets up game library (Steam, Epic, etc.)
  3. Responds to prewarm requests
  4. Manages app installation requests

GFN Guard Integration

Content protection is configurable:

json
{
  "gfn_guard": {
    "cloudCheckOperationMode": 0,
    "v2OperationMode": 0,
    "lambdaRate": 1,
    "lambdaOperationMode": "ALLOW_FAILURE",
    "lambdaURL": "https://wyfbw6i2d3j3r736zs7cvsjts40btasy.lambda-url.us-west-1.on.aws/"
  }
}

Prewarm Disabled Games

Some games disable platform prewarming (loaded from config):

101900011, 100282511, 100044011, 101735611, 100229811,
101750911, 101791911, 100901811, 18108011, 100657311,
... (50+ game IDs total)

Network Shader Cache Disabled Games

102631611, 100479111, 102412411, 102333611,
102339511, 100525911, 102061811, 102352611

User Save Connector

Cloud save synchronization:

json
{
  "user_save_connector": {
    "enabled": true,
    "deltaMode": "ENABLED_BY_DEFAULT",
    "deltaPeriodicitySec": 1800,
    "userSaveDataSizeLimitMB": 10737,
    "uploadTimeLimitSec": 900,
    "downloadTimeLimitSec": 120,
    "ncssTokenLifetimeSec": 300,
    "ncssRequestTimeoutMs": 30000,
    "compressionLevel": 0
  }
}

Delta saves trigger every 30 minutes, with a 10GB per-user limit.

Content Config: Volume Setup

json
{
  "volume_setup": {
    "fastInstallImageSizeGB": 250,
    "imageBufferMB": 1024,
    "systemDriveReservedSpaceMB": 4096
  }
}

Masquerade Integration

The masquerade system (IO throttling for game installs):

json
{
  "masquerade": {
    "ioThrottlingEnabled": true,
    "ioThrottlingDelayMs": 1000,
    "touchPriority": 2,
    "threadPoolSize": 2
  }
}

Registry Restoration

From the scraper.log, the scraper restores registry hives between sessions:

  1. Reads baseline registry snapshot
  2. Applies HKEY_CLASSES_ROOT entries
  3. Applies HKEY_CURRENT_USER entries
  4. Restores Steam registry configuration
  5. Validates final state matches baseline

Post-Session Log Merge

post_session_backuplog.bat merges GameStream logs after each session:

batch
python GamestreamLogsMerger.py
python AnalyzeGameStreamMergedLog.py

Output: %AG_LOGS%\gslogs\GameStreamLogs.log

Steam Integration

json
{
  "steam": {
    "steamWhitelisting": true,
    "steamIntegration": true
  }
}

steam_client_init_bat.log shows:

  • Steam Client Service creation with subinacl ACL modifications
  • MBSteamWatcher.exe for Steam event monitoring
  • Steam shortcut monitoring enabled

admindesk.top — Reversed & documented from Asgard rig backups and GCIS plugin binaries.