Diese Referenz enthält alle öffentlichen Typen, Felder und Enumwerte des HUD-Vertrags aus dem mitgelieferten SDK. Die TypeScript-Schreibweise beschreibt die JSON-Daten; sie setzt keine Verwendung von TypeScript voraus. Für Quellen, Zeitpunkte und fachliche Bedeutung lies die HUD-API-Anleitung.
Vollständige Typdefinitionen herunterladen (contracts.d.ts)
Die Referenz lesen
Ein Wert mit | null kann fehlen. Array<T> bezeichnet eine Liste, Record<K, V> eine Zuordnung. Geschlossene Zustände sind als wörtliche Stringwerte aufgeführt. unknown bezeichnet einen unbekannten Zustand und ist nicht gleich null. Die Daten werden in camelCase übertragen. Zahlen mit Seconds im Feldnamen sind Sekunden. Die Vertragsdatei gehört zum SDK-Stand dieser Website; verwende für ein HUD zusammenpassende Verträge und Clients.
BombState
export interface BombState {
state: BombStatus | null;
playerSteamId: string | null;
position: Vector3State | null;
secondsRemaining: number | null;
}BombStatus
export type BombStatus = "unknown" | "carried" | "dropped" | "planting" | "planted" | "defusing" | "defused" | "exploded";CompetitionSectionKind
export type CompetitionSectionKind = "unknown" | "region" | "division" | "phase" | "group" | "round" | "other";CountdownPhase
export type CountdownPhase = "unknown" | "warmup" | "freezeTime" | "live" | "over" | "bomb" | "defuse" | "timeoutCounterTerrorists" | "timeoutTerrorists" | "paused" | "gameOver";CountdownState
export interface CountdownState {
phase: CountdownPhase | null;
secondsRemaining: number | null;
}DataFreshness
export type DataFreshness = "unknown" | "waiting" | "live" | "stale" | "disconnected";DraftStatus
export type DraftStatus = "unknown" | "live";DraftTeam
export interface DraftTeam {
id: number | null;
name: string | null;
}FeedConnectionStatus
export type FeedConnectionStatus = "unknown" | "connecting" | "connected" | "disconnected";FlamePoint
export interface FlamePoint {
id: string;
position: Vector3State;
}GameMode
export type GameMode = "unknown" | "competitive" | "casual" | "deathmatch" | "wingman" | "armsRace" | "demolition" | "custom" | "cooperative" | "skirmish" | "training" | "scrimCompetitive5v5";GameState
export interface GameState {
map: string | null;
phase: MatchPhase | null;
roundNumber: number | null;
roundPhase: RoundPhase | null;
ct: SideState | null;
t: SideState | null;
observedPlayer: PlayerState | null;
players: Array<PlayerState>;
managedMatch: ManagedMatch | null;
radar: RadarState | null;
killFeed: Array<KillFeedEntry>;
mapKind: MapKind | null;
provider: ProviderState | null;
tournamentDraft: TournamentDraftState | null;
matchesToWinSeries: number | null;
currentSpectators: number | null;
souvenirsTotal: number | null;
roundWinReason: RoundWinReason | null;
availableSections: Array<GsiSection>;
currentPlayer: PlayerState | null;
mode: GameMode | null;
roundWinner: TeamSide | null;
roundBomb: BombStatus | null;
roundWins: Array<RoundResult> | null;
countdown: CountdownState | null;
bomb: BombState | null;
grenades: Array<GrenadeState> | null;
}GrenadeKind
export type GrenadeKind = "unknown" | "smoke" | "flashbang" | "highExplosive" | "molotov" | "incendiary" | "decoy" | "inferno" | "firebomb";GrenadeState
export interface GrenadeState {
id: string;
type: GrenadeKind | null;
ownerSteamId: string | null;
position: Vector3State | null;
velocity: Vector3State | null;
lifetimeSeconds: number | null;
effectTimeSeconds: number | null;
flames: Array<FlamePoint> | null;
}GsiSection
export type GsiSection = "unknown" | "provider" | "map" | "round" | "player" | "allPlayers" | "phaseCountdowns" | "bomb" | "grenades" | "tournamentDraft";HudPanelAction
export interface HudPanelAction {
id: string;
section: string;
name: string;
value: string | null;
}HudPanelChoice
export interface HudPanelChoice {
name: string;
label: string;
}HudPanelFieldType
export type HudPanelFieldType = "text" | "checkbox" | "select" | "player" | "team" | "match" | "image" | "images" | "action";HudPanelInput
export interface HudPanelInput {
type: HudPanelFieldType;
name: string;
label: string;
values: Array<HudPanelChoice> | null;
}HudPanelMessage
export interface HudPanelMessage {
hudId: string;
version: string;
state: HudPanelState | null;
action: HudPanelAction | null;
}HudPanelReference
export interface HudPanelReference {
id: string;
name: string | null;
image: string | null;
teamId: string | null;
missing: boolean;
}HudPanelSection
export interface HudPanelSection {
name: string;
label: string;
inputs: Array<HudPanelInput>;
}HudPanelState
export interface HudPanelState {
revision: number;
values: Record<string, Record<string, unknown>>;
references: Record<string, Record<string, HudPanelReference>>;
}KillFeedEntry
export interface KillFeedEntry {
id: number;
connectionId: string;
epoch: number;
gameTimeSeconds: number;
killer: KillParticipant | null;
victim: KillParticipant;
assister: KillParticipant | null;
weapon: string;
weaponKind: WeaponKind;
flashAssist: boolean;
headshot: boolean;
wallbang: boolean;
attackerBlind: boolean;
throughSmoke: boolean;
noScope: boolean;
}KillParticipant
export interface KillParticipant {
entityIndex: number;
steamId: string | null;
name: string | null;
side: TeamSide | null;
}LiveSnapshot
export interface LiveSnapshot {
schemaVersion: number;
sessionId: string;
revision: number;
receivedAt: string | null;
freshness: DataFreshness;
game: GameState | null;
managedMatch: ManagedMatch | null;
}LocalDiagnostics
export interface LocalDiagnostics {
accepted: number;
rejected: number;
subscribers: number;
snapshot: LiveSnapshot;
}ManagedCompetition
export interface ManagedCompetition {
id: string;
name: string;
seasonId: string | null;
seasonName: string | null;
sections: Array<ManagedCompetitionSection>;
round: string | null;
logo: string | null;
sponsors: Array<ManagedCompetitionSponsor> | null;
sectionId: string | null;
structure: ManagedCompetitionStructure | null;
}ManagedCompetitionSeason
export interface ManagedCompetitionSeason {
id: string;
competitionId: string;
name: string;
}ManagedCompetitionSection
export interface ManagedCompetitionSection {
id: string;
name: string;
kind: CompetitionSectionKind;
}ManagedCompetitionSponsor
export interface ManagedCompetitionSponsor {
id: string;
name: string;
image: string;
}ManagedCompetitionStructure
export interface ManagedCompetitionStructure {
seasons: Array<ManagedCompetitionSeason>;
sections: Array<ManagedCompetitionStructureSection>;
}ManagedCompetitionStructureSection
export interface ManagedCompetitionStructureSection {
id: string;
competitionId: string;
seasonId: string | null;
parentId: string | null;
name: string;
kind: CompetitionSectionKind;
}ManagedMatch
export interface ManagedMatch {
id: string;
name: string;
bestOf: number;
teamA: ManagedTeam;
teamB: ManagedTeam;
ct: TeamSideResolution;
t: TeamSideResolution;
startsAt: string | null;
maps: Array<ManagedMatchMap>;
vetos: Array<ManagedVeto>;
competition: ManagedCompetition | null;
}ManagedMatchMap
export interface ManagedMatchMap {
id: string;
name: string;
gameName: string;
number: number;
kind: MapKind | null;
status: MapResultStatus | null;
scoreA: number | null;
scoreB: number | null;
winnerTeamId: string | null;
}ManagedTeam
export interface ManagedTeam {
id: string;
name: string;
shortName: string;
logo: string | null;
seriesWins: number;
}ManagedVeto
export interface ManagedVeto {
mapId: string;
name: string;
gameName: string;
type: MapDecisionKind;
teamId: string | null;
number: number;
playNumber: number | null;
}MapDecisionKind
export type MapDecisionKind = "unknown" | "pick" | "ban" | "decider";MapKind
export type MapKind = "unknown" | "dust2" | "mirage" | "inferno" | "nuke" | "overpass" | "ancient" | "anubis" | "vertigo" | "train" | "cache" | "office" | "italy" | "assault" | "aztec" | "cobblestone" | "tuscan" | "canals" | "agency" | "baggage" | "shoots" | "lake" | "safehouse" | "shortDust" | "shortNuke" | "rialto" | "stMarc" | "bank" | "sugarcane" | "monastery" | "dizzy";MapResultStatus
export type MapResultStatus = "unknown" | "pending" | "live" | "completed";MatchPhase
export type MatchPhase = "unknown" | "warmup" | "live" | "intermission" | "gameOver";MatchStats
export interface MatchStats {
kills: number | null;
assists: number | null;
deaths: number | null;
mvps: number | null;
score: number | null;
}PlayerActivity
export type PlayerActivity = "unknown" | "menu" | "playing" | "textInput";PlayerState
export interface PlayerState {
steamId: string | null;
name: string | null;
side: TeamSide | null;
activity: PlayerActivity | null;
health: number | null;
activeWeapon: WeaponState | null;
isAlive: boolean | null;
clan: string | null;
xpOverloadLevel: number | null;
spectationTargetSteamId: string | null;
observerSlot: number | null;
armor: number | null;
helmet: boolean | null;
defuseKit: boolean | null;
money: number | null;
equipmentValue: number | null;
flashed: number | null;
smoked: number | null;
burning: number | null;
roundKills: number | null;
roundHeadshotKills: number | null;
roundDamage: number | null;
position: Vector3State | null;
forward: Vector3State | null;
stats: MatchStats | null;
recordedStats: RecordedPlayerStats | null;
weapons: Array<WeaponState> | null;
}ProviderState
export interface ProviderState {
name: string | null;
appId: number;
version: number | null;
steamId: string | null;
timestampUnixSeconds: number | null;
}RadarPlayer
export interface RadarPlayer {
steamId: string;
pawnHandle: number;
position: Vector3State;
forward: Vector3State;
health: number;
}RadarState
export interface RadarState {
connectionId: string;
epoch: number;
sequence: number;
gameTimeSeconds: number;
receivedAt: string;
players: Array<RadarPlayer>;
}RecordedPlayerStats
export interface RecordedPlayerStats {
rounds: number;
damage: number;
kills: number;
headshotKills: number;
coversWholeMatch: boolean;
headshotPercentage: number | null;
averageDamagePerRound: number | null;
}RoundPhase
export type RoundPhase = "unknown" | "freezeTime" | "live" | "over";RoundResult
export interface RoundResult {
roundNumber: number;
winner: TeamSide;
reason: RoundWinReason;
}RoundWinReason
export type RoundWinReason = "unknown" | "elimination" | "bombExploded" | "bombDefused" | "timeExpired" | "hostageRescued";SideState
export interface SideState {
name: string | null;
score: number | null;
flag: string | null;
consecutiveRoundLosses: number | null;
timeoutsRemaining: number | null;
matchesWon: number | null;
}TeamRecognitionStatus
export type TeamRecognitionStatus = "unknown" | "noMatch" | "tied" | "conflicting" | "recognized" | "inferred" | "manual";TeamSide
export type TeamSide = "unknown" | "counterTerrorists" | "terrorists" | "spectator";TeamSideResolution
export interface TeamSideResolution {
side: TeamSide;
status: TeamRecognitionStatus;
teamId: string | null;
teamAScore: number;
teamBScore: number;
}TournamentDraftState
export interface TournamentDraftState {
state: DraftStatus | null;
eventId: number | null;
eventName: string | null;
stageId: number | null;
stageName: string | null;
firstTeam: DraftTeam;
secondTeam: DraftTeam;
}Vector3State
export interface Vector3State {
x: number;
y: number;
z: number;
}WeaponCategory
export type WeaponCategory = "unknown" | "knife" | "pistol" | "submachineGun" | "rifle" | "sniperRifle" | "shotgun" | "machineGun" | "grenade" | "bomb" | "equipment" | "stackableItem" | "tablet" | "fists" | "breachCharge" | "melee";WeaponKind
export type WeaponKind = "unknown" | "ak47" | "aug" | "awp" | "bayonet" | "ppBizon" | "c4" | "cz75Auto" | "desertEagle" | "decoy" | "dualBerettas" | "famas" | "fiveSeven" | "flashbang" | "g3Sg1" | "galilAr" | "glock18" | "healthshot" | "highExplosiveGrenade" | "p2000" | "incendiaryGrenade" | "defaultCtKnife" | "butterflyKnife" | "survivalKnife" | "paracordKnife" | "classicKnife" | "falchionKnife" | "flipKnife" | "gutKnife" | "navajaKnife" | "karambit" | "kukriKnife" | "m9Bayonet" | "nomadKnife" | "shadowDaggers" | "skeletonKnife" | "stilettoKnife" | "bowieKnife" | "defaultTKnife" | "huntsmanKnife" | "ursusKnife" | "talonKnife" | "goldenKnife" | "m249" | "m4A4" | "m4A1S" | "mac10" | "mag7" | "molotov" | "mp5Sd" | "mp7" | "mp9" | "negev" | "nova" | "p250" | "p90" | "r8Revolver" | "sawedOff" | "scar20" | "sg553" | "smokeGrenade" | "ssg08" | "zeusX27" | "tec9" | "ump45" | "uspS" | "xm1014";WeaponState
export interface WeaponState {
slot: string;
name: string | null;
type: WeaponCategory | null;
state: WeaponStatus | null;
paintKit: string | null;
ammoClip: number | null;
ammoClipMax: number | null;
ammoReserve: number | null;
kind: WeaponKind | null;
}WeaponStatus
export type WeaponStatus = "unknown" | "active" | "holstered" | "reloading";