G-Less / Unreal / API

Unreal SDK API reference

Standalone web API reference for the G-Less game telemetry SDK. The Agent Skill is a separate integration asset and does not replace this page.

SDK version

0.6.0

HTTP API

v1

Event protocol

4

CFG

Configuration fields

DefaultGame.ini · [GlessTelemetry]
FieldType / exampleMeaning
Endpointhttps://g-less.com/api/v1/telemetry/ingestUse the versioned HTTPS endpoint.
ProjectIdUUIDProject ID from the workspace.
WriteKeygls_pk_…Append-only key; never commit it.
Channeldemo | playtest | retail | developmentStable release environment.
BuildIdstringUnique for every materially different binary.
EnabledByDefaultboolDefault privacy choice; still expose an in-game toggle.
CapturePlatformAccountIdboolSends only a project-scoped pseudonym, never the raw platform ID.

API

Configuration and state

5 methods

SetTelemetryEnabled

#
void SetTelemetryEnabled(bool bEnabled)

Applies player opt-in or opt-out immediately.

IsTelemetryEnabled

#
bool IsTelemetryEnabled() const

Whether the configured subsystem currently accepts events.

SetReleaseContext

#
void SetReleaseContext(const FString& InChannel, const FString& InBuildId)

Overrides channel and Build ID before the session starts.

GetSessionId

#
FString GetSessionId() const

Returns the anonymous active application-session ID.

HasActiveRun

#
bool HasActiveRun() const

Whether collection is enabled and a run is active.

API

Runs and progression

6 methods

StartRun

#
FString StartRun(const FString& Mode = TEXT("default"))

Starts a simple gameplay attempt.

StartRunWithCategory

#
FString StartRunWithCategory(const FString& Category, const FString& Mode, int32 PlayerCount, int32 TeammateCount, bool bMatchmakingAttempted, bool bMatchmakingSucceeded)

Starts a run with game-defined category and population context.

EndRun

#
void EndRun(const FString& Outcome, float Score = 0.0f)

Ends the active run with outcome, score, duration and maximum depth.

SetProgress

#
void SetProgress(float DepthMeters, const FString& Stage = TEXT(""))

Updates exact progress/depth and optional stage.

UpdateRunPopulation

#
void UpdateRunPopulation(int32 PlayerCount, int32 TeammateCount)

Records changed run population.

TrackProgression

#
void TrackProgression(const FString& Progression, const FString& Status, float Value = 0.0f)

Records a stable progression lifecycle step.

API

Matchmaking and interaction

3 methods

TrackMatchmakingAttemptWithCategory

#
void TrackMatchmakingAttemptWithCategory(const FString& Category, const FString& Mode, int32 PartySize)

Records an accepted queue attempt with a game-defined category.

TrackMatchmakingResultWithCategory

#
void TrackMatchmakingResultWithCategory(const FString& Category, const FString& Mode, bool bSucceeded, const FString& Result, int32 PartySize, int32 TeammateCount, float DurationSeconds)

Records a terminal matchmaking result.

TrackCategorizedInteraction

#
void TrackCategorizedInteraction(const FString& Action, const FString& Surface, const FString& Target, const FString& Category = TEXT(""), const FString& Mode = TEXT(""))

Records a low-cardinality accepted UI action.

API

Economy, progression and combat

8 methods

TrackResourceTransaction

#
void TrackResourceTransaction(Direction, Currency, Amount, Reason, ItemCategory, ItemId, BalanceAfter)

Records a resource source or sink.

TrackUpgrade

#
void TrackUpgrade(UpgradeId, UpgradeCategory, LevelBefore, LevelAfter, Result, CostCurrency, CostAmount)

Records upgrade outcomes and cost.

TrackChestOpened

#
void TrackChestOpened(ChestType, Tier, Source, Result, RewardItemCount, RewardCurrency, RewardAmount)

Records a chest-open outcome and bounded reward summary.

TrackQuest

#
void TrackQuest(QuestId, QuestCategory, Status, ProgressValue)

Records quest lifecycle state.

TrackDamageDealt / Taken

#
void TrackDamageDealt(float Damage, bool bCritical = false, bool bHit = true); void TrackDamageTaken(float Damage)

Adds values to the in-memory combat summary without I/O.

TrackEnemyKilled

#
void TrackEnemyKilled(bool bElite = false, bool bBoss = false)

Adds one confirmed kill to the combat summary.

TrackPlayerDeath

#
void TrackPlayerDeath(const FString& Cause, const FString& EnemyCategory = TEXT(""))

Records a death and flushes the pending combat summary.

TrackBankruptcy

#
void TrackBankruptcy(const FString& Reason, const FString& Currency, float BalanceBefore = 0.0f)

Records a player-facing bankruptcy state.

API

Custom, diagnostics and delivery

5 methods

TrackCustomEvent

#
void TrackCustomEvent(Name, StringProperties, NumberProperties, BooleanProperties)

Records a typed custom event with bounded properties.

TrackPerformanceSnapshot

#
void TrackPerformanceSnapshot(float AverageFps, float P95FrameTimeMs)

Records a low-frequency performance snapshot.

TrackNetworkQuality

#
void TrackNetworkQuality(AveragePingMs, MinPingMs, MaxPingMs, SampleCount, JitterMs, InPacketLoss, OutPacketLoss, InKbps, OutKbps, NetworkMode)

Records a low-frequency network-quality window; loss is 0..1.

ReportError

#
void ReportError(const FString& ErrorCode, const FString& Context = TEXT(""))

Records an already-handled anonymous error.

Flush

#
void Flush()

Schedules asynchronous upload; failed batches remain queued.