When a player enters a room code, Victor Launcher fetches a signed manifest envelope from the configured Supabase endpoint. The envelope contains aDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/stevensonhouset5-sys/Victor-Launcher/llms.txt
Use this file to discover all available pages before exploring further.
ModManifest — a description of every file that belongs to a mod pack. Victor Launcher uses this manifest to plan the install: resolving dependencies, detecting conflicts, and mapping each file to its destination on disk.
ModManifest fields
Unique identifier for this manifest. Victor Launcher uses this ID — not any DLL filename — when checking dependencies and conflicts against other installed manifests.
Human-readable display name shown in the launcher UI (for example,
"My Mod Pack").Version string for the mod pack (for example,
"1.0.0"). Victor Launcher records this in the state snapshot but does not enforce semver.The Among Us version this pack targets (for example,
"2024.3.5"). Informational only; Victor Launcher does not block installs based on this value.The mod loader this pack requires. Defaults to
"BepInEx". Victor Launcher only manages BepInEx DLL plugins.List of manifest IDs that must already be installed before this pack can be installed. Victor Launcher reports any missing IDs as
MissingDependencies on the install plan.Dependencies are matched by manifest ID (the
id field), not by DLL filename.List of manifest IDs that must not be installed alongside this pack. Victor Launcher reports any present IDs as
ActiveConflicts on the install plan.Conflicts are also matched by manifest ID. Victor Launcher surfaces the conflict but does not automatically uninstall the conflicting pack.
Ordered list of files to download and install. See ModFile fields below.
Signed manifest envelope
The Supabase endpoint does not return a rawModManifest. It returns a SignedManifestResponse that wraps a SignedManifestEnvelope. The outer wrapper lets Victor Launcher verify that the manifest has not been tampered with.
SignedManifestResponse (outer wrapper)
| Field | Description |
|---|---|
signingKeyId | Identifies which public key to use for verification. Self-hosted deployments set the matching public key in the BepInEx config. |
canonicalPayload | The envelope JSON serialized as a string. The signature covers exactly this string. |
signature | Base64url-encoded RSA-SHA256 signature over canonicalPayload. If verification fails, Victor Launcher shows "The room manifest signature could not be verified." |
SignedManifestEnvelope (inner payload)
| Field | Description |
|---|---|
roomCode | The room code players enter in the launcher. Case-insensitive. |
roomName | Display name of the room or session. |
manifestVersion | Schema version for forward compatibility. Currently 1. |
issuedAtUtc | UTC timestamp when the manifest was signed. |
expiresAtUtc | UTC timestamp after which the manifest is rejected. Expired manifests produce "The room manifest has expired. Try again in a moment." |
manifest | The full ModManifest object described above. |
Minimal manifest example
The following is a complete, minimal manifest embedded inside a signed envelope. ThecanonicalPayload field in the actual response would be this object serialized as an escaped JSON string.