@indiegems/gem-web-sdk 10.1.0 → 10.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/game.d.ts +3 -0
- package/dist/gem-web-sdk.bridge.js +1 -1
- package/dist/gem-web-sdk.esm.js +2 -2
- package/dist/gem-web-sdk.function.js +2 -2
- package/dist/gem-web-sdk.game.js +2 -2
- package/dist/gem-web-sdk.min.js +2 -2
- package/dist/gem-web-sdk.sdk.js +2 -2
- package/dist/gem-web-sdk.server-api.js +1 -1
- package/dist/gem-web-sdk.server.js +2 -2
- package/dist/index.d.ts +13 -3
- package/dist/sdk.d.ts +114 -11
- package/dist/server-api.d.ts +70 -2
- package/dist/server.d.ts +103 -3
- package/docs/api/api-reference-game.md +104 -8
- package/docs/api/api-reference-server.md +244 -4
- package/docs/api/reference.json +319 -11
- package/docs/changelog.md +22 -0
- package/docs/getting-started.md +1 -1
- package/docs/manifest.json +10 -10
- package/docs/rooms-and-matches.md +7 -0
- package/docs/server-bundles.md +46 -2
- package/docs/what-a-game-must-do.md +38 -0
- package/package.json +1 -1
- package/schema/bridge.v1.json +93 -1
- package/schema/capabilities.public.json +6 -0
package/dist/server.d.ts
CHANGED
|
@@ -201,7 +201,16 @@ type AnalyticsRejection$1 = {
|
|
|
201
201
|
"code": string;
|
|
202
202
|
"index": number;
|
|
203
203
|
};
|
|
204
|
+
type BackfillPolicy = "fill_existing_first" | "prefer_new_match";
|
|
205
|
+
type BackfillSettings = {
|
|
206
|
+
"enabled": boolean;
|
|
207
|
+
"policy"?: BackfillPolicy;
|
|
208
|
+
};
|
|
204
209
|
type BadgeKind = "platform" | "game";
|
|
210
|
+
type BadgeLabel = {
|
|
211
|
+
"lang": string;
|
|
212
|
+
"text": string;
|
|
213
|
+
};
|
|
205
214
|
type BatchOrderItem = {
|
|
206
215
|
"nonce"?: string | null;
|
|
207
216
|
"operations": OperationRequest[];
|
|
@@ -277,6 +286,10 @@ type ChallengePeriodResponse = {
|
|
|
277
286
|
"window": WindowKind;
|
|
278
287
|
};
|
|
279
288
|
type ClientPlatform = "universal" | "mobile" | "web";
|
|
289
|
+
type ConfigAssignmentNotice = {
|
|
290
|
+
"code": string;
|
|
291
|
+
"message": string;
|
|
292
|
+
};
|
|
280
293
|
type ConfigChannelAssignmentResponse = {
|
|
281
294
|
"assigned_at": string;
|
|
282
295
|
"assigned_by": string;
|
|
@@ -284,6 +297,7 @@ type ConfigChannelAssignmentResponse = {
|
|
|
284
297
|
"config_url"?: string | null;
|
|
285
298
|
"config_version": number;
|
|
286
299
|
"content_hash"?: string | null;
|
|
300
|
+
"notices"?: ConfigAssignmentNotice[];
|
|
287
301
|
"published_at"?: string | null;
|
|
288
302
|
};
|
|
289
303
|
type CreateOrderRequest = {
|
|
@@ -415,6 +429,7 @@ type GameRoomResponseV2 = {
|
|
|
415
429
|
"name": string;
|
|
416
430
|
"room_args"?: Record<string, unknown> | null;
|
|
417
431
|
"room_args_template"?: null | RoomArgsTemplate;
|
|
432
|
+
"self_hosted"?: boolean;
|
|
418
433
|
"settings"?: unknown;
|
|
419
434
|
"started_at"?: number | null;
|
|
420
435
|
"status": string;
|
|
@@ -459,6 +474,7 @@ type GameRoomTemplateResponse = {
|
|
|
459
474
|
"idle_timeout_seconds"?: number | null;
|
|
460
475
|
"is_active": boolean;
|
|
461
476
|
"match_type": MatchType;
|
|
477
|
+
"matchmaking"?: null | MatchmakingSettings;
|
|
462
478
|
"max_match_duration_seconds": number;
|
|
463
479
|
"max_players": number;
|
|
464
480
|
"min_players": number;
|
|
@@ -629,7 +645,41 @@ type LootRollResultResponse = {
|
|
|
629
645
|
"roll_number": number;
|
|
630
646
|
"was_replacement": boolean;
|
|
631
647
|
};
|
|
648
|
+
type MatchBackfillRequest = {
|
|
649
|
+
"open": boolean;
|
|
650
|
+
"seats"?: number | null;
|
|
651
|
+
};
|
|
652
|
+
type MatchBackfillResponse = {
|
|
653
|
+
"open": boolean;
|
|
654
|
+
"seats"?: number | null;
|
|
655
|
+
};
|
|
656
|
+
type MatchPlayerReport$1 = {
|
|
657
|
+
"player_id": string;
|
|
658
|
+
"state": MatchPlayerState;
|
|
659
|
+
};
|
|
660
|
+
type MatchPlayerReportOutcome = "recorded" | "removed" | "not_a_member";
|
|
661
|
+
type MatchPlayerReportResult$1 = {
|
|
662
|
+
"outcome": MatchPlayerReportOutcome;
|
|
663
|
+
"player_id": string;
|
|
664
|
+
};
|
|
665
|
+
type MatchPlayerState = "connected" | "no_show" | "left";
|
|
666
|
+
type MatchPlayersReportRequest = {
|
|
667
|
+
"players": MatchPlayerReport$1[];
|
|
668
|
+
};
|
|
669
|
+
type MatchPlayersReportResponse = {
|
|
670
|
+
"players": MatchPlayerReportResult$1[];
|
|
671
|
+
};
|
|
632
672
|
type MatchType = "dedicated" | "p2p" | "none";
|
|
673
|
+
type MatchmakingSettings = {
|
|
674
|
+
"backfill"?: null | BackfillSettings;
|
|
675
|
+
"cluster_stagger_seconds"?: number;
|
|
676
|
+
"enabled": boolean;
|
|
677
|
+
"fill_window_seconds"?: number;
|
|
678
|
+
"strategy"?: MatchmakingStrategy;
|
|
679
|
+
"ticket_expiry_seconds"?: number | null;
|
|
680
|
+
};
|
|
681
|
+
type MatchmakingStrategy = "fifo";
|
|
682
|
+
type MilestoneMetric = "total_points" | "qualifying_unlocks";
|
|
633
683
|
type NameStyle = {
|
|
634
684
|
"fallback"?: null | ThemedColors;
|
|
635
685
|
"item_id": string;
|
|
@@ -723,7 +773,7 @@ type OrderResponse = {
|
|
|
723
773
|
"order_id": string;
|
|
724
774
|
"status": OrderStatus;
|
|
725
775
|
};
|
|
726
|
-
type OrderSource = "real_money_purchase" | "real_money_refund" | "full_game_purchase" | "full_game_refund" | "platform_purchase" | "reward" | "admin" | "system" | "promo" | "game_consume" | "play" | "recipe" | "transfer" | "platform_funded_game_inventory_purchase" | "earning_reset";
|
|
776
|
+
type OrderSource = "real_money_purchase" | "real_money_refund" | "full_game_purchase" | "full_game_refund" | "platform_purchase" | "reward" | "admin" | "system" | "promo" | "game_consume" | "play" | "recipe" | "transfer" | "platform_funded_game_inventory_purchase" | "earning_reset" | "test_account_provision" | "developer_grant";
|
|
727
777
|
type OrderStatus = "completed" | "failed";
|
|
728
778
|
type OverflowBehavior = "fail" | "clamp" | "allow";
|
|
729
779
|
type PaginatedCollectionCurrencyBalanceResponse = {
|
|
@@ -752,6 +802,7 @@ type PaginatedCollectionProgressionStateResponse = {
|
|
|
752
802
|
"achievements"?: ProgressionAchievementState[];
|
|
753
803
|
"achievements_unavailable"?: boolean;
|
|
754
804
|
"completion_count": number;
|
|
805
|
+
"completion_threshold"?: number | null;
|
|
755
806
|
"current_value": number;
|
|
756
807
|
"is_completed": boolean;
|
|
757
808
|
"progression_definition_id": string;
|
|
@@ -793,6 +844,10 @@ type PlayerBadge = {
|
|
|
793
844
|
"icon_url": string;
|
|
794
845
|
"item_id": string;
|
|
795
846
|
"kind": BadgeKind;
|
|
847
|
+
"label"?: null | BadgeLabel;
|
|
848
|
+
"tier"?: number | null;
|
|
849
|
+
"tier_count"?: number | null;
|
|
850
|
+
"track"?: null | MilestoneMetric;
|
|
796
851
|
};
|
|
797
852
|
type PlayerGameProfileResponse = SubjectIdentityFields & {
|
|
798
853
|
"achievement_score"?: number | null;
|
|
@@ -806,6 +861,7 @@ type PlayerIdentityFields = {
|
|
|
806
861
|
"discriminator"?: string | null;
|
|
807
862
|
"display_name"?: string | null;
|
|
808
863
|
"display_tag"?: string | null;
|
|
864
|
+
"is_test_account"?: boolean | null;
|
|
809
865
|
"name_animation"?: null | NameStyle;
|
|
810
866
|
"name_color"?: null | NameStyle;
|
|
811
867
|
"player_id"?: string;
|
|
@@ -851,6 +907,9 @@ type ProgressionResetRequest = {
|
|
|
851
907
|
"reason"?: string | null;
|
|
852
908
|
};
|
|
853
909
|
type ProgressionStateOverride = {
|
|
910
|
+
"cycle_frozen_at"?: string | null;
|
|
911
|
+
"cycle_period_id"?: string | null;
|
|
912
|
+
"cycle_threshold"?: number | null;
|
|
854
913
|
"last_reset_at"?: string | null;
|
|
855
914
|
"last_reset_period_id"?: string | null;
|
|
856
915
|
"last_window_id"?: string | null;
|
|
@@ -861,6 +920,7 @@ type ProgressionStateResponse = {
|
|
|
861
920
|
"achievements"?: ProgressionAchievementState[];
|
|
862
921
|
"achievements_unavailable"?: boolean;
|
|
863
922
|
"completion_count": number;
|
|
923
|
+
"completion_threshold"?: number | null;
|
|
864
924
|
"current_value": number;
|
|
865
925
|
"is_completed": boolean;
|
|
866
926
|
"progression_definition_id": string;
|
|
@@ -1025,6 +1085,7 @@ type SubjectIdentityFields = {
|
|
|
1025
1085
|
"discriminator"?: string | null;
|
|
1026
1086
|
"display_name"?: string | null;
|
|
1027
1087
|
"display_tag"?: string | null;
|
|
1088
|
+
"is_test_account"?: boolean | null;
|
|
1028
1089
|
"name_animation"?: null | NameStyle;
|
|
1029
1090
|
"name_color"?: null | NameStyle;
|
|
1030
1091
|
"player_id": string;
|
|
@@ -1083,6 +1144,7 @@ type SuppliedPeriodProgressRow = {
|
|
|
1083
1144
|
};
|
|
1084
1145
|
type SuppliedProgressionRow = {
|
|
1085
1146
|
"completion_count": number;
|
|
1147
|
+
"completion_threshold"?: number | null;
|
|
1086
1148
|
"current_value": number;
|
|
1087
1149
|
"is_completed": boolean;
|
|
1088
1150
|
"progression_definition_id": string;
|
|
@@ -1393,12 +1455,18 @@ declare function putShowcaseValue(api: GameApi, player_id: string, key: string,
|
|
|
1393
1455
|
declare function rejectTransfer(api: GameApi, transfer_id: string, options?: {
|
|
1394
1456
|
signal?: AbortSignal;
|
|
1395
1457
|
}): Promise<TransferResponse>;
|
|
1458
|
+
declare function reportMatchPlayers(api: GameApi, match_id: string, body: MatchPlayersReportRequest, options?: {
|
|
1459
|
+
signal?: AbortSignal;
|
|
1460
|
+
}): Promise<MatchPlayersReportResponse>;
|
|
1396
1461
|
declare function requestSaveUploadUrl(api: GameApi, entity_type: string, entity_id: string, key: string, body: SaveUploadUrlRequest, options?: {
|
|
1397
1462
|
signal?: AbortSignal;
|
|
1398
1463
|
}): Promise<SaveUploadUrlResponse>;
|
|
1399
1464
|
declare function resetEntityProgression(api: GameApi, entity_type: string, entity_id: string, progression_definition_id: SlugOrId, body: ProgressionResetRequest, options?: {
|
|
1400
1465
|
signal?: AbortSignal;
|
|
1401
1466
|
}): Promise<OrderResponse>;
|
|
1467
|
+
declare function setMatchBackfill(api: GameApi, match_id: string, body: MatchBackfillRequest, options?: {
|
|
1468
|
+
signal?: AbortSignal;
|
|
1469
|
+
}): Promise<MatchBackfillResponse>;
|
|
1402
1470
|
declare function simulateEntityOrder(api: GameApi, entity_type: string, entity_id: string, body: SimulateOrderRequest, options?: {
|
|
1403
1471
|
signal?: AbortSignal;
|
|
1404
1472
|
}): Promise<SimulateOrderResponse>;
|
|
@@ -1415,7 +1483,10 @@ type generated_AdminActionRequest = AdminActionRequest;
|
|
|
1415
1483
|
type generated_AnalyticsBatchRequest = AnalyticsBatchRequest;
|
|
1416
1484
|
type generated_AnalyticsBatchResponse = AnalyticsBatchResponse;
|
|
1417
1485
|
type generated_AnalyticsEventSubmission = AnalyticsEventSubmission;
|
|
1486
|
+
type generated_BackfillPolicy = BackfillPolicy;
|
|
1487
|
+
type generated_BackfillSettings = BackfillSettings;
|
|
1418
1488
|
type generated_BadgeKind = BadgeKind;
|
|
1489
|
+
type generated_BadgeLabel = BadgeLabel;
|
|
1419
1490
|
type generated_BatchOrderItem = BatchOrderItem;
|
|
1420
1491
|
type generated_BatchOrderItemResult = BatchOrderItemResult;
|
|
1421
1492
|
type generated_BatchOrderRequest = BatchOrderRequest;
|
|
@@ -1427,6 +1498,7 @@ type generated_CatalogRecipe = CatalogRecipe;
|
|
|
1427
1498
|
type generated_ChallengeListResponse = ChallengeListResponse;
|
|
1428
1499
|
type generated_ChallengePeriodResponse = ChallengePeriodResponse;
|
|
1429
1500
|
type generated_ClientPlatform = ClientPlatform;
|
|
1501
|
+
type generated_ConfigAssignmentNotice = ConfigAssignmentNotice;
|
|
1430
1502
|
type generated_ConfigChannelAssignmentResponse = ConfigChannelAssignmentResponse;
|
|
1431
1503
|
type generated_CreateOrderRequest = CreateOrderRequest;
|
|
1432
1504
|
type generated_CreateSessionRequest = CreateSessionRequest;
|
|
@@ -1464,7 +1536,16 @@ type generated_LeaderboardPeriodFields = LeaderboardPeriodFields;
|
|
|
1464
1536
|
type generated_LeaderboardResponse = LeaderboardResponse;
|
|
1465
1537
|
type generated_ListTransfersResponse = ListTransfersResponse;
|
|
1466
1538
|
type generated_LootRollResultResponse = LootRollResultResponse;
|
|
1539
|
+
type generated_MatchBackfillRequest = MatchBackfillRequest;
|
|
1540
|
+
type generated_MatchBackfillResponse = MatchBackfillResponse;
|
|
1541
|
+
type generated_MatchPlayerReportOutcome = MatchPlayerReportOutcome;
|
|
1542
|
+
type generated_MatchPlayerState = MatchPlayerState;
|
|
1543
|
+
type generated_MatchPlayersReportRequest = MatchPlayersReportRequest;
|
|
1544
|
+
type generated_MatchPlayersReportResponse = MatchPlayersReportResponse;
|
|
1467
1545
|
type generated_MatchType = MatchType;
|
|
1546
|
+
type generated_MatchmakingSettings = MatchmakingSettings;
|
|
1547
|
+
type generated_MatchmakingStrategy = MatchmakingStrategy;
|
|
1548
|
+
type generated_MilestoneMetric = MilestoneMetric;
|
|
1468
1549
|
type generated_NameStyle = NameStyle;
|
|
1469
1550
|
type generated_OperationRequest = OperationRequest;
|
|
1470
1551
|
type generated_OrderListResponse = OrderListResponse;
|
|
@@ -1594,13 +1675,15 @@ declare const generated_putEntityGameSetting: typeof putEntityGameSetting;
|
|
|
1594
1675
|
declare const generated_putRoomArgs: typeof putRoomArgs;
|
|
1595
1676
|
declare const generated_putShowcaseValue: typeof putShowcaseValue;
|
|
1596
1677
|
declare const generated_rejectTransfer: typeof rejectTransfer;
|
|
1678
|
+
declare const generated_reportMatchPlayers: typeof reportMatchPlayers;
|
|
1597
1679
|
declare const generated_requestSaveUploadUrl: typeof requestSaveUploadUrl;
|
|
1598
1680
|
declare const generated_resetEntityProgression: typeof resetEntityProgression;
|
|
1681
|
+
declare const generated_setMatchBackfill: typeof setMatchBackfill;
|
|
1599
1682
|
declare const generated_simulateEntityOrder: typeof simulateEntityOrder;
|
|
1600
1683
|
declare const generated_transferHostV2: typeof transferHostV2;
|
|
1601
1684
|
declare const generated_updateGameRoomV2: typeof updateGameRoomV2;
|
|
1602
1685
|
declare namespace generated {
|
|
1603
|
-
export { type generated_AchievementUnlockOutcome as AchievementUnlockOutcome, type generated_ActiveWindowResponse as ActiveWindowResponse, type generated_AdminActionRequest as AdminActionRequest, type generated_AnalyticsBatchRequest as AnalyticsBatchRequest, type generated_AnalyticsBatchResponse as AnalyticsBatchResponse, type generated_AnalyticsEventSubmission as AnalyticsEventSubmission, type AnalyticsRejection$1 as AnalyticsRejection, type generated_BadgeKind as BadgeKind, type generated_BatchOrderItem as BatchOrderItem, type generated_BatchOrderItemResult as BatchOrderItemResult, type generated_BatchOrderRequest as BatchOrderRequest, type generated_BatchOrderResponse as BatchOrderResponse, type generated_BucketBalanceResponse as BucketBalanceResponse, type generated_CatalogItem as CatalogItem, type generated_CatalogPrice as CatalogPrice, type generated_CatalogRecipe as CatalogRecipe, type generated_ChallengeListResponse as ChallengeListResponse, type generated_ChallengePeriodResponse as ChallengePeriodResponse, type generated_ClientPlatform as ClientPlatform, type generated_ConfigChannelAssignmentResponse as ConfigChannelAssignmentResponse, type generated_CreateOrderRequest as CreateOrderRequest, type generated_CreateSessionRequest as CreateSessionRequest, type generated_CurrencyBalanceResponse as CurrencyBalanceResponse, type generated_CurrencyResetOverride as CurrencyResetOverride, type generated_DropRateEntry as DropRateEntry, type generated_DropRatesResponse as DropRatesResponse, type generated_EarningResetActorKind as EarningResetActorKind, type generated_EarningResetGameFigure as EarningResetGameFigure, type generated_EntityLeaderboardEntryResponse as EntityLeaderboardEntryResponse, type generated_EntityLeaderboardResponse as EntityLeaderboardResponse, type generated_EntityType as EntityType, type generated_ErrorDetail as ErrorDetail, type generated_ErrorResponse as ErrorResponse, type generated_EventDefinitionResponse as EventDefinitionResponse, type generated_EventListResponse as EventListResponse, type generated_EventStatusInfo as EventStatusInfo, type generated_FidelityReport as FidelityReport, type generated_GameApi as GameApi, type generated_GameChannel as GameChannel, type generated_GameRoomMemberResponseV2 as GameRoomMemberResponseV2, type generated_GameRoomResponseV2 as GameRoomResponseV2, type generated_GameRoomSummaryResponse as GameRoomSummaryResponse, type generated_GameRoomTemplateListResponse as GameRoomTemplateListResponse, type generated_GameRoomTemplateResponse as GameRoomTemplateResponse, type generated_GameRoomsListResponse as GameRoomsListResponse, type generated_InitiateTransferRequest as InitiateTransferRequest, type generated_InventoryChange as InventoryChange, type generated_InventoryResponse as InventoryResponse, type generated_InventoryScopeResponse as InventoryScopeResponse, type generated_ItemCategory as ItemCategory, type generated_ItemInstanceResponse as ItemInstanceResponse, type generated_LeaderboardEntryResponse as LeaderboardEntryResponse, type generated_LeaderboardPeriodFields as LeaderboardPeriodFields, type generated_LeaderboardResponse as LeaderboardResponse, type generated_ListTransfersResponse as ListTransfersResponse, type generated_LootRollResultResponse as LootRollResultResponse, type generated_MatchType as MatchType, type generated_NameStyle as NameStyle, type generated_OperationRequest as OperationRequest, type generated_OrderListResponse as OrderListResponse, type generated_OrderRecordResponse as OrderRecordResponse, type generated_OrderResponse as OrderResponse, type generated_OrderSource as OrderSource, type generated_OrderStatus as OrderStatus, type generated_OverflowBehavior as OverflowBehavior, type generated_PaginatedCollectionCurrencyBalanceResponse as PaginatedCollectionCurrencyBalanceResponse, type generated_PaginatedCollectionItemInstanceResponse as PaginatedCollectionItemInstanceResponse, type generated_PaginatedCollectionProgressionStateResponse as PaginatedCollectionProgressionStateResponse, type generated_PaginatedResponseSaveDataResponse as PaginatedResponseSaveDataResponse, type generated_PeriodProgressResponse as PeriodProgressResponse, type generated_PlatformGrantClamp as PlatformGrantClamp, type generated_PlatformGrantOutcome as PlatformGrantOutcome, type generated_PlayerBadge as PlayerBadge, type generated_PlayerGameProfileResponse as PlayerGameProfileResponse, type generated_PlayerIdentityFields as PlayerIdentityFields, type generated_PlayerTitle as PlayerTitle, type generated_PrerequisiteType as PrerequisiteType, type generated_ProfileShowcaseEntry as ProfileShowcaseEntry, type generated_ProgressionAchievementState as ProgressionAchievementState, type generated_ProgressionAddRequest as ProgressionAddRequest, type generated_ProgressionClaimRequest as ProgressionClaimRequest, type generated_ProgressionMaxRequest as ProgressionMaxRequest, type generated_ProgressionResetRequest as ProgressionResetRequest, type generated_ProgressionStateOverride as ProgressionStateOverride, type generated_ProgressionStateResponse as ProgressionStateResponse, type generated_PurchaseCatalogResponse as PurchaseCatalogResponse, type generated_PutSettingRequest as PutSettingRequest, type generated_PutShowcaseRequest as PutShowcaseRequest, type generated_ReceiptPrincipal as ReceiptPrincipal, type generated_RecipeAvailabilityResponse as RecipeAvailabilityResponse, type generated_RecipeExecuteRequest as RecipeExecuteRequest, type generated_RecipeExecuteResponse as RecipeExecuteResponse, type generated_RecipeLockReason as RecipeLockReason, type generated_RecipePrerequisite as RecipePrerequisite, type generated_RecipeUsageListResponse as RecipeUsageListResponse, type generated_RecipeUsageResponse as RecipeUsageResponse, type generated_RoomArgType as RoomArgType, type generated_RoomArgsResponse as RoomArgsResponse, type generated_RoomArgsTemplate as RoomArgsTemplate, type generated_SaveDataResponse as SaveDataResponse, type generated_SaveFinalizeRequest as SaveFinalizeRequest, type generated_SaveUploadUrlRequest as SaveUploadUrlRequest, type generated_SaveUploadUrlResponse as SaveUploadUrlResponse, type generated_SettingResponse as SettingResponse, type generated_SettingsListResponse as SettingsListResponse, type generated_ShowcaseValueResponse as ShowcaseValueResponse, type generated_SimulateOrderRequest as SimulateOrderRequest, type generated_SimulateOrderResponse as SimulateOrderResponse, type generated_SimulationFailure as SimulationFailure, type generated_SimulationOutcome as SimulationOutcome, type generated_SimulationOverrides as SimulationOverrides, type generated_SlugOrId as SlugOrId, type generated_SubjectIdentityFields as SubjectIdentityFields, type generated_SuppliedBucketRow as SuppliedBucketRow, type generated_SuppliedCurrencies as SuppliedCurrencies, type generated_SuppliedCurrencyRow as SuppliedCurrencyRow, type generated_SuppliedInventory as SuppliedInventory, type generated_SuppliedItemRow as SuppliedItemRow, type generated_SuppliedItems as SuppliedItems, type generated_SuppliedPeriodProgressRow as SuppliedPeriodProgressRow, type generated_SuppliedProgressionRow as SuppliedProgressionRow, type generated_SuppliedProgressions as SuppliedProgressions, type generated_SuppliedScope as SuppliedScope, type generated_ThemedColors as ThemedColors, type generated_TransferCurrencyRequest as TransferCurrencyRequest, type generated_TransferItemRequest as TransferItemRequest, type generated_TransferResponse as TransferResponse, type generated_UnavailabilityReason as UnavailabilityReason, type generated_UpdateGameRoomRequest as UpdateGameRoomRequest, type generated_UpdateRoomArgsRequest as UpdateRoomArgsRequest, type generated_WindowKind as WindowKind, type generated_WindowPreviewResponse as WindowPreviewResponse, generated_acceptTransfer as acceptTransfer, generated_addEntityProgression as addEntityProgression, generated_adminAction as adminAction, generated_cancelInventoryTransfer as cancelInventoryTransfer, generated_claimEntityProgressionRewards as claimEntityProgressionRewards, generated_closeGameRoom as closeGameRoom, generated_createEntityBatchOrder as createEntityBatchOrder, generated_createEntityOrder as createEntityOrder, generated_createSession as createSession, generated_deleteEntityGameSetting as deleteEntityGameSetting, generated_deleteEntitySave as deleteEntitySave, generated_deleteSession as deleteSession, generated_deleteShowcaseValue as deleteShowcaseValue, generated_executeEntityRecipe as executeEntityRecipe, generated_finalizeSaveUpload as finalizeSaveUpload, generated_getChannelAssignment as getChannelAssignment, generated_getDropRates as getDropRates, generated_getEntityCurrency as getEntityCurrency, generated_getEntityGameSetting as getEntityGameSetting, generated_getEntityInventory as getEntityInventory, generated_getEntityInventoryItem as getEntityInventoryItem, generated_getEntityLeaderboard as getEntityLeaderboard, generated_getEntityOrder as getEntityOrder, generated_getEntityProgression as getEntityProgression, generated_getEntityRecipeAvailability as getEntityRecipeAvailability, generated_getEntityRecipeUsage as getEntityRecipeUsage, generated_getEntitySave as getEntitySave, generated_getEvent as getEvent, generated_getGameRoomV2 as getGameRoomV2, generated_getLeaderboard as getLeaderboard, generated_getPlayerGameProfile as getPlayerGameProfile, generated_getPurchaseCatalog as getPurchaseCatalog, generated_getResolvedTemplate as getResolvedTemplate, generated_getRoomArgs as getRoomArgs, generated_getShowcaseValue as getShowcaseValue, generated_getTransferDetails as getTransferDetails, generated_ingestAnalyticsEvents as ingestAnalyticsEvents, generated_initiateInventoryTransfer as initiateInventoryTransfer, generated_invokeFunction as invokeFunction, generated_kickPlayer as kickPlayer, generated_listChallenges as listChallenges, generated_listEntityGameSettings as listEntityGameSettings, generated_listEntityOrders as listEntityOrders, generated_listEntityProgressions as listEntityProgressions, generated_listEntitySaves as listEntitySaves, generated_listEvents as listEvents, generated_listGameRooms as listGameRooms, generated_listResolvedTemplates as listResolvedTemplates, generated_listTransfers as listTransfers, generated_maxEntityProgression as maxEntityProgression, generated_putEntityGameSetting as putEntityGameSetting, generated_putRoomArgs as putRoomArgs, generated_putShowcaseValue as putShowcaseValue, generated_rejectTransfer as rejectTransfer, generated_requestSaveUploadUrl as requestSaveUploadUrl, generated_resetEntityProgression as resetEntityProgression, generated_simulateEntityOrder as simulateEntityOrder, generated_transferHostV2 as transferHostV2, generated_updateGameRoomV2 as updateGameRoomV2 };
|
|
1686
|
+
export { type generated_AchievementUnlockOutcome as AchievementUnlockOutcome, type generated_ActiveWindowResponse as ActiveWindowResponse, type generated_AdminActionRequest as AdminActionRequest, type generated_AnalyticsBatchRequest as AnalyticsBatchRequest, type generated_AnalyticsBatchResponse as AnalyticsBatchResponse, type generated_AnalyticsEventSubmission as AnalyticsEventSubmission, type AnalyticsRejection$1 as AnalyticsRejection, type generated_BackfillPolicy as BackfillPolicy, type generated_BackfillSettings as BackfillSettings, type generated_BadgeKind as BadgeKind, type generated_BadgeLabel as BadgeLabel, type generated_BatchOrderItem as BatchOrderItem, type generated_BatchOrderItemResult as BatchOrderItemResult, type generated_BatchOrderRequest as BatchOrderRequest, type generated_BatchOrderResponse as BatchOrderResponse, type generated_BucketBalanceResponse as BucketBalanceResponse, type generated_CatalogItem as CatalogItem, type generated_CatalogPrice as CatalogPrice, type generated_CatalogRecipe as CatalogRecipe, type generated_ChallengeListResponse as ChallengeListResponse, type generated_ChallengePeriodResponse as ChallengePeriodResponse, type generated_ClientPlatform as ClientPlatform, type generated_ConfigAssignmentNotice as ConfigAssignmentNotice, type generated_ConfigChannelAssignmentResponse as ConfigChannelAssignmentResponse, type generated_CreateOrderRequest as CreateOrderRequest, type generated_CreateSessionRequest as CreateSessionRequest, type generated_CurrencyBalanceResponse as CurrencyBalanceResponse, type generated_CurrencyResetOverride as CurrencyResetOverride, type generated_DropRateEntry as DropRateEntry, type generated_DropRatesResponse as DropRatesResponse, type generated_EarningResetActorKind as EarningResetActorKind, type generated_EarningResetGameFigure as EarningResetGameFigure, type generated_EntityLeaderboardEntryResponse as EntityLeaderboardEntryResponse, type generated_EntityLeaderboardResponse as EntityLeaderboardResponse, type generated_EntityType as EntityType, type generated_ErrorDetail as ErrorDetail, type generated_ErrorResponse as ErrorResponse, type generated_EventDefinitionResponse as EventDefinitionResponse, type generated_EventListResponse as EventListResponse, type generated_EventStatusInfo as EventStatusInfo, type generated_FidelityReport as FidelityReport, type generated_GameApi as GameApi, type generated_GameChannel as GameChannel, type generated_GameRoomMemberResponseV2 as GameRoomMemberResponseV2, type generated_GameRoomResponseV2 as GameRoomResponseV2, type generated_GameRoomSummaryResponse as GameRoomSummaryResponse, type generated_GameRoomTemplateListResponse as GameRoomTemplateListResponse, type generated_GameRoomTemplateResponse as GameRoomTemplateResponse, type generated_GameRoomsListResponse as GameRoomsListResponse, type generated_InitiateTransferRequest as InitiateTransferRequest, type generated_InventoryChange as InventoryChange, type generated_InventoryResponse as InventoryResponse, type generated_InventoryScopeResponse as InventoryScopeResponse, type generated_ItemCategory as ItemCategory, type generated_ItemInstanceResponse as ItemInstanceResponse, type generated_LeaderboardEntryResponse as LeaderboardEntryResponse, type generated_LeaderboardPeriodFields as LeaderboardPeriodFields, type generated_LeaderboardResponse as LeaderboardResponse, type generated_ListTransfersResponse as ListTransfersResponse, type generated_LootRollResultResponse as LootRollResultResponse, type generated_MatchBackfillRequest as MatchBackfillRequest, type generated_MatchBackfillResponse as MatchBackfillResponse, type MatchPlayerReport$1 as MatchPlayerReport, type generated_MatchPlayerReportOutcome as MatchPlayerReportOutcome, type MatchPlayerReportResult$1 as MatchPlayerReportResult, type generated_MatchPlayerState as MatchPlayerState, type generated_MatchPlayersReportRequest as MatchPlayersReportRequest, type generated_MatchPlayersReportResponse as MatchPlayersReportResponse, type generated_MatchType as MatchType, type generated_MatchmakingSettings as MatchmakingSettings, type generated_MatchmakingStrategy as MatchmakingStrategy, type generated_MilestoneMetric as MilestoneMetric, type generated_NameStyle as NameStyle, type generated_OperationRequest as OperationRequest, type generated_OrderListResponse as OrderListResponse, type generated_OrderRecordResponse as OrderRecordResponse, type generated_OrderResponse as OrderResponse, type generated_OrderSource as OrderSource, type generated_OrderStatus as OrderStatus, type generated_OverflowBehavior as OverflowBehavior, type generated_PaginatedCollectionCurrencyBalanceResponse as PaginatedCollectionCurrencyBalanceResponse, type generated_PaginatedCollectionItemInstanceResponse as PaginatedCollectionItemInstanceResponse, type generated_PaginatedCollectionProgressionStateResponse as PaginatedCollectionProgressionStateResponse, type generated_PaginatedResponseSaveDataResponse as PaginatedResponseSaveDataResponse, type generated_PeriodProgressResponse as PeriodProgressResponse, type generated_PlatformGrantClamp as PlatformGrantClamp, type generated_PlatformGrantOutcome as PlatformGrantOutcome, type generated_PlayerBadge as PlayerBadge, type generated_PlayerGameProfileResponse as PlayerGameProfileResponse, type generated_PlayerIdentityFields as PlayerIdentityFields, type generated_PlayerTitle as PlayerTitle, type generated_PrerequisiteType as PrerequisiteType, type generated_ProfileShowcaseEntry as ProfileShowcaseEntry, type generated_ProgressionAchievementState as ProgressionAchievementState, type generated_ProgressionAddRequest as ProgressionAddRequest, type generated_ProgressionClaimRequest as ProgressionClaimRequest, type generated_ProgressionMaxRequest as ProgressionMaxRequest, type generated_ProgressionResetRequest as ProgressionResetRequest, type generated_ProgressionStateOverride as ProgressionStateOverride, type generated_ProgressionStateResponse as ProgressionStateResponse, type generated_PurchaseCatalogResponse as PurchaseCatalogResponse, type generated_PutSettingRequest as PutSettingRequest, type generated_PutShowcaseRequest as PutShowcaseRequest, type generated_ReceiptPrincipal as ReceiptPrincipal, type generated_RecipeAvailabilityResponse as RecipeAvailabilityResponse, type generated_RecipeExecuteRequest as RecipeExecuteRequest, type generated_RecipeExecuteResponse as RecipeExecuteResponse, type generated_RecipeLockReason as RecipeLockReason, type generated_RecipePrerequisite as RecipePrerequisite, type generated_RecipeUsageListResponse as RecipeUsageListResponse, type generated_RecipeUsageResponse as RecipeUsageResponse, type generated_RoomArgType as RoomArgType, type generated_RoomArgsResponse as RoomArgsResponse, type generated_RoomArgsTemplate as RoomArgsTemplate, type generated_SaveDataResponse as SaveDataResponse, type generated_SaveFinalizeRequest as SaveFinalizeRequest, type generated_SaveUploadUrlRequest as SaveUploadUrlRequest, type generated_SaveUploadUrlResponse as SaveUploadUrlResponse, type generated_SettingResponse as SettingResponse, type generated_SettingsListResponse as SettingsListResponse, type generated_ShowcaseValueResponse as ShowcaseValueResponse, type generated_SimulateOrderRequest as SimulateOrderRequest, type generated_SimulateOrderResponse as SimulateOrderResponse, type generated_SimulationFailure as SimulationFailure, type generated_SimulationOutcome as SimulationOutcome, type generated_SimulationOverrides as SimulationOverrides, type generated_SlugOrId as SlugOrId, type generated_SubjectIdentityFields as SubjectIdentityFields, type generated_SuppliedBucketRow as SuppliedBucketRow, type generated_SuppliedCurrencies as SuppliedCurrencies, type generated_SuppliedCurrencyRow as SuppliedCurrencyRow, type generated_SuppliedInventory as SuppliedInventory, type generated_SuppliedItemRow as SuppliedItemRow, type generated_SuppliedItems as SuppliedItems, type generated_SuppliedPeriodProgressRow as SuppliedPeriodProgressRow, type generated_SuppliedProgressionRow as SuppliedProgressionRow, type generated_SuppliedProgressions as SuppliedProgressions, type generated_SuppliedScope as SuppliedScope, type generated_ThemedColors as ThemedColors, type generated_TransferCurrencyRequest as TransferCurrencyRequest, type generated_TransferItemRequest as TransferItemRequest, type generated_TransferResponse as TransferResponse, type generated_UnavailabilityReason as UnavailabilityReason, type generated_UpdateGameRoomRequest as UpdateGameRoomRequest, type generated_UpdateRoomArgsRequest as UpdateRoomArgsRequest, type generated_WindowKind as WindowKind, type generated_WindowPreviewResponse as WindowPreviewResponse, generated_acceptTransfer as acceptTransfer, generated_addEntityProgression as addEntityProgression, generated_adminAction as adminAction, generated_cancelInventoryTransfer as cancelInventoryTransfer, generated_claimEntityProgressionRewards as claimEntityProgressionRewards, generated_closeGameRoom as closeGameRoom, generated_createEntityBatchOrder as createEntityBatchOrder, generated_createEntityOrder as createEntityOrder, generated_createSession as createSession, generated_deleteEntityGameSetting as deleteEntityGameSetting, generated_deleteEntitySave as deleteEntitySave, generated_deleteSession as deleteSession, generated_deleteShowcaseValue as deleteShowcaseValue, generated_executeEntityRecipe as executeEntityRecipe, generated_finalizeSaveUpload as finalizeSaveUpload, generated_getChannelAssignment as getChannelAssignment, generated_getDropRates as getDropRates, generated_getEntityCurrency as getEntityCurrency, generated_getEntityGameSetting as getEntityGameSetting, generated_getEntityInventory as getEntityInventory, generated_getEntityInventoryItem as getEntityInventoryItem, generated_getEntityLeaderboard as getEntityLeaderboard, generated_getEntityOrder as getEntityOrder, generated_getEntityProgression as getEntityProgression, generated_getEntityRecipeAvailability as getEntityRecipeAvailability, generated_getEntityRecipeUsage as getEntityRecipeUsage, generated_getEntitySave as getEntitySave, generated_getEvent as getEvent, generated_getGameRoomV2 as getGameRoomV2, generated_getLeaderboard as getLeaderboard, generated_getPlayerGameProfile as getPlayerGameProfile, generated_getPurchaseCatalog as getPurchaseCatalog, generated_getResolvedTemplate as getResolvedTemplate, generated_getRoomArgs as getRoomArgs, generated_getShowcaseValue as getShowcaseValue, generated_getTransferDetails as getTransferDetails, generated_ingestAnalyticsEvents as ingestAnalyticsEvents, generated_initiateInventoryTransfer as initiateInventoryTransfer, generated_invokeFunction as invokeFunction, generated_kickPlayer as kickPlayer, generated_listChallenges as listChallenges, generated_listEntityGameSettings as listEntityGameSettings, generated_listEntityOrders as listEntityOrders, generated_listEntityProgressions as listEntityProgressions, generated_listEntitySaves as listEntitySaves, generated_listEvents as listEvents, generated_listGameRooms as listGameRooms, generated_listResolvedTemplates as listResolvedTemplates, generated_listTransfers as listTransfers, generated_maxEntityProgression as maxEntityProgression, generated_putEntityGameSetting as putEntityGameSetting, generated_putRoomArgs as putRoomArgs, generated_putShowcaseValue as putShowcaseValue, generated_rejectTransfer as rejectTransfer, generated_reportMatchPlayers as reportMatchPlayers, generated_requestSaveUploadUrl as requestSaveUploadUrl, generated_resetEntityProgression as resetEntityProgression, generated_setMatchBackfill as setMatchBackfill, generated_simulateEntityOrder as simulateEntityOrder, generated_transferHostV2 as transferHostV2, generated_updateGameRoomV2 as updateGameRoomV2 };
|
|
1604
1687
|
}
|
|
1605
1688
|
type AnalyticsValue = string | number;
|
|
1606
1689
|
interface AnalyticsRejection {
|
|
@@ -1683,12 +1766,29 @@ interface GemServerIdentity {
|
|
|
1683
1766
|
type ServerApi = {
|
|
1684
1767
|
[K in keyof typeof generated as (typeof generated)[K] extends (api: GameApi, ...rest: never[]) => unknown ? K : never]: (typeof generated)[K] extends (api: GameApi, ...rest: infer A) => infer R ? (...args: A) => R : never;
|
|
1685
1768
|
};
|
|
1769
|
+
interface MatchPlayerReport {
|
|
1770
|
+
readonly playerId: string;
|
|
1771
|
+
readonly state: "connected" | "no_show" | "left";
|
|
1772
|
+
}
|
|
1773
|
+
interface MatchPlayerReportResult {
|
|
1774
|
+
readonly playerId: string;
|
|
1775
|
+
readonly outcome: "recorded" | "removed" | "not_a_member" | (string & {});
|
|
1776
|
+
}
|
|
1777
|
+
interface MatchBackfillState {
|
|
1778
|
+
readonly open: boolean;
|
|
1779
|
+
readonly seats: number | null;
|
|
1780
|
+
}
|
|
1686
1781
|
interface GemServer {
|
|
1687
1782
|
readonly identity: GemServerIdentity;
|
|
1688
1783
|
readonly client: GemClient;
|
|
1689
1784
|
readonly api: ServerApi;
|
|
1690
1785
|
readonly match: {
|
|
1691
1786
|
end(signal?: AbortSignal): Promise<void>;
|
|
1787
|
+
setBackfill(options: {
|
|
1788
|
+
readonly open: boolean;
|
|
1789
|
+
readonly seats?: number;
|
|
1790
|
+
}, signal?: AbortSignal): Promise<MatchBackfillState>;
|
|
1791
|
+
reportPlayers(reports: readonly MatchPlayerReport[], signal?: AbortSignal): Promise<MatchPlayerReportResult[]>;
|
|
1692
1792
|
};
|
|
1693
1793
|
readonly analytics: ServerAnalytics;
|
|
1694
1794
|
readonly functions: FunctionsApi;
|
|
@@ -1790,4 +1890,4 @@ interface AchievementReceipt {
|
|
|
1790
1890
|
readonly reason?: string;
|
|
1791
1891
|
}
|
|
1792
1892
|
declare function achievementReceipts(order: unknown): AchievementReceipt[];
|
|
1793
|
-
export { type AchievementReceipt, type AnalyticsFlushResult, type AnalyticsRejection, type AnalyticsValue, AuthError, type AuthFailure, type AuthState, type Base64String, type BroadcastOptions, type BytesResponse, CONDITIONAL_HEADERS, type Challenge, type ChallengeWindow, type ClientOptions, type Clock, type ConditionalRequestHeaders, type FunctionFailure, type FunctionInvokeOptions, type FunctionResult, FunctionsApi, type GameApi, GemApiError, GemClient, type GemErrorReason, GemFunctionError, type GemMatchServer, type GemServer, type GemServerBundle, type GemServerFactory, type GemServerHost, type GemServerHostProfile, type GemServerIdentity, type GemServerLifecycle, type GemServerOptions, type GemServerProfile, type HostTokenSource, type HostTokenSourceOptions, PlayerText, type RequestOptions, type RoomArgValue, type RuntimeShutdownPayload, type SendOptions, type ServerAnalytics, type ServerApi, type ServerBundleHost, type ServerChallenges, type ServerListChallengesOptions, type ServerShutdownInfo, type ServerTokenGrant, type TokenGrant, type Transport, TransportRefusal, type TransportRequest, type TransportResponse, type VersionedGetOptions, type VersionedResponse, achievementReceipts, asPlayerText, createGemServer, createHostTokenSource, createMatchServer, defineServer, systemClock, text, toBase64 };
|
|
1893
|
+
export { type AchievementReceipt, type AnalyticsFlushResult, type AnalyticsRejection, type AnalyticsValue, AuthError, type AuthFailure, type AuthState, type Base64String, type BroadcastOptions, type BytesResponse, CONDITIONAL_HEADERS, type Challenge, type ChallengeWindow, type ClientOptions, type Clock, type ConditionalRequestHeaders, type FunctionFailure, type FunctionInvokeOptions, type FunctionResult, FunctionsApi, type GameApi, GemApiError, GemClient, type GemErrorReason, GemFunctionError, type GemMatchServer, type GemServer, type GemServerBundle, type GemServerFactory, type GemServerHost, type GemServerHostProfile, type GemServerIdentity, type GemServerLifecycle, type GemServerOptions, type GemServerProfile, type HostTokenSource, type HostTokenSourceOptions, type MatchBackfillState, type MatchPlayerReport, type MatchPlayerReportResult, PlayerText, type RequestOptions, type RoomArgValue, type RuntimeShutdownPayload, type SendOptions, type ServerAnalytics, type ServerApi, type ServerBundleHost, type ServerChallenges, type ServerListChallengesOptions, type ServerShutdownInfo, type ServerTokenGrant, type TokenGrant, type Transport, TransportRefusal, type TransportRequest, type TransportResponse, type VersionedGetOptions, type VersionedResponse, achievementReceipts, asPlayerText, createGemServer, createHostTokenSource, createMatchServer, defineServer, systemClock, text, toBase64 };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# The browser surface — API reference
|
|
2
2
|
|
|
3
|
-
Generated from `@indiegems/gem-web-sdk/sdk` v10.
|
|
3
|
+
Generated from `@indiegems/gem-web-sdk/sdk` v10.2.0, the version of the package this file ships in. Every symbol below carries an explicit anchor, its `anchor` in `reference.json` beside this file.
|
|
4
4
|
|
|
5
5
|
`@indiegems/gem-web-sdk/sdk` is the one import a game writes, wherever its code runs. `@indiegems/gem-web-sdk/game` exports exactly the symbols on this page and nothing else, for a build that wants only this half.
|
|
6
6
|
|
|
@@ -5198,6 +5198,24 @@ arcade that handles share.
|
|
|
5198
5198
|
up, for an arcade that does not handle share, and past this frame's own
|
|
5199
5199
|
limit of six a minute.
|
|
5200
5200
|
|
|
5201
|
+
<a id="gemframe-requestavatarpicker"></a>
|
|
5202
|
+
|
|
5203
|
+
## GemFrame.requestAvatarPicker
|
|
5204
|
+
|
|
5205
|
+
```ts
|
|
5206
|
+
requestAvatarPicker(): boolean
|
|
5207
|
+
```
|
|
5208
|
+
|
|
5209
|
+
Ask the arcade to open its own avatar picker over your game. Nothing comes
|
|
5210
|
+
back: a changed portrait arrives as a new `gem.player`, through `onPlayer`.
|
|
5211
|
+
|
|
5212
|
+
Prefer `gem.openAvatarPicker`, which documents what a game does with the
|
|
5213
|
+
change.
|
|
5214
|
+
|
|
5215
|
+
**Returns.** whether the message left the frame — `false` before the bridge is
|
|
5216
|
+
up, for an arcade that has no avatar picker here, and past this frame's
|
|
5217
|
+
own limit of six a minute.
|
|
5218
|
+
|
|
5201
5219
|
<a id="gemframe-requestvibrate"></a>
|
|
5202
5220
|
|
|
5203
5221
|
## GemFrame.requestVibrate
|
|
@@ -5332,7 +5350,10 @@ The precomposed `Name#0001`. It contains the name, so it is
|
|
|
5332
5350
|
readonly avatarIconId?: string
|
|
5333
5351
|
```
|
|
5334
5352
|
|
|
5335
|
-
The id of the player's portrait item, when they have one
|
|
5353
|
+
The id of the player's portrait item, when they have one — what a game
|
|
5354
|
+
that draws Arcade avatars keys its own model on. On `gem.player` it
|
|
5355
|
+
changes when the player wears another portrait, and `onPlayer` runs again;
|
|
5356
|
+
see `gem.openAvatarPicker`.
|
|
5336
5357
|
|
|
5337
5358
|
<a id="friend-avatariconurl"></a>
|
|
5338
5359
|
|
|
@@ -7137,7 +7158,10 @@ The precomposed `Name#0001`. It contains the name, so it is
|
|
|
7137
7158
|
readonly avatarIconId?: string
|
|
7138
7159
|
```
|
|
7139
7160
|
|
|
7140
|
-
The id of the player's portrait item, when they have one
|
|
7161
|
+
The id of the player's portrait item, when they have one — what a game
|
|
7162
|
+
that draws Arcade avatars keys its own model on. On `gem.player` it
|
|
7163
|
+
changes when the player wears another portrait, and `onPlayer` runs again;
|
|
7164
|
+
see `gem.openAvatarPicker`.
|
|
7141
7165
|
|
|
7142
7166
|
<a id="gemplayer-avatariconurl"></a>
|
|
7143
7167
|
|
|
@@ -8108,6 +8132,63 @@ shareButton.onclick = () => {
|
|
|
8108
8132
|
|
|
8109
8133
|
**Guides.** [getting-started](../getting-started.md)
|
|
8110
8134
|
|
|
8135
|
+
<a id="gem-avatarpickeravailable"></a>
|
|
8136
|
+
|
|
8137
|
+
## Gem.avatarPickerAvailable
|
|
8138
|
+
|
|
8139
|
+
```ts
|
|
8140
|
+
readonly avatarPickerAvailable: boolean
|
|
8141
|
+
```
|
|
8142
|
+
|
|
8143
|
+
Whether the arcade will open its avatar picker for [Gem.openAvatarPicker](#gem-openavatarpicker)
|
|
8144
|
+
here. Decide from it whether to show your own "Change avatar" button, and
|
|
8145
|
+
read it again in the click handler — it is read live.
|
|
8146
|
+
|
|
8147
|
+
`false` outside the arcade, before the bridge is up, after the session
|
|
8148
|
+
ends, and under an embedder that has no avatar picker.
|
|
8149
|
+
|
|
8150
|
+
<a id="gem-openavatarpicker"></a>
|
|
8151
|
+
|
|
8152
|
+
## Gem.openAvatarPicker
|
|
8153
|
+
|
|
8154
|
+
```ts
|
|
8155
|
+
openAvatarPicker(): boolean
|
|
8156
|
+
```
|
|
8157
|
+
|
|
8158
|
+
Open the arcade's avatar picker over your game, so the player can change
|
|
8159
|
+
the Arcade avatar they wear without leaving it. For a game that draws
|
|
8160
|
+
Arcade avatars — whole characters the player owns as Arcade items — put a
|
|
8161
|
+
"Change avatar" button in your own UI and call this from it:
|
|
8162
|
+
|
|
8163
|
+
```js
|
|
8164
|
+
changeAvatar.hidden = !gem.avatarPickerAvailable;
|
|
8165
|
+
changeAvatar.onclick = () => {
|
|
8166
|
+
if (!gem.openAvatarPicker()) changeAvatar.hidden = true;
|
|
8167
|
+
};
|
|
8168
|
+
```
|
|
8169
|
+
|
|
8170
|
+
**The change arrives as a new player, not as an answer.** Nothing comes
|
|
8171
|
+
back from this call. When the player picks a different avatar, the arcade
|
|
8172
|
+
pauses your game while the picker is open, then sends the player again —
|
|
8173
|
+
your `onPlayer` callback runs and [Gem.player](#gem-player) holds the new
|
|
8174
|
+
[PlayerIdentity.avatarIconId](#playeridentity-avatariconid) — and resumes it. Redraw from
|
|
8175
|
+
`onPlayer`, which also runs when the player changes their avatar from the
|
|
8176
|
+
arcade's own menu without your game asking. A player who closes the picker
|
|
8177
|
+
unchanged produces nothing at all.
|
|
8178
|
+
|
|
8179
|
+
**Your server learns it only when it reads the room again.** A
|
|
8180
|
+
server-authoritative game reads each member's `avatar_icon_id` from the
|
|
8181
|
+
room read (`GET /v1/games/{game_id}/game-rooms/{game_room_id}`, or
|
|
8182
|
+
`gem.room.get()` on a dedicated server); nothing tells the server the
|
|
8183
|
+
player changed. So when `onPlayer` brings a different `avatarIconId`, have
|
|
8184
|
+
your client tell your server, and have the server re-read the room — never
|
|
8185
|
+
trust the id the client sends.
|
|
8186
|
+
|
|
8187
|
+
**Returns.** `true` when the arcade was asked; `false` when it was not and
|
|
8188
|
+
never will be for this call — outside the arcade, before the bridge is
|
|
8189
|
+
up, under an embedder with no avatar picker, or past six asks a minute.
|
|
8190
|
+
It never throws and never waits.
|
|
8191
|
+
|
|
8111
8192
|
<a id="gem-vibration"></a>
|
|
8112
8193
|
|
|
8113
8194
|
## Gem.vibration
|
|
@@ -9686,7 +9767,10 @@ The precomposed `Name#0001`. It contains the name, so it is
|
|
|
9686
9767
|
readonly avatarIconId?: string
|
|
9687
9768
|
```
|
|
9688
9769
|
|
|
9689
|
-
The id of the player's portrait item, when they have one
|
|
9770
|
+
The id of the player's portrait item, when they have one — what a game
|
|
9771
|
+
that draws Arcade avatars keys its own model on. On `gem.player` it
|
|
9772
|
+
changes when the player wears another portrait, and `onPlayer` runs again;
|
|
9773
|
+
see `gem.openAvatarPicker`.
|
|
9690
9774
|
|
|
9691
9775
|
<a id="playeridentity-avatariconurl"></a>
|
|
9692
9776
|
|
|
@@ -12239,7 +12323,10 @@ The precomposed `Name#0001`. It contains the name, so it is
|
|
|
12239
12323
|
readonly avatarIconId?: string
|
|
12240
12324
|
```
|
|
12241
12325
|
|
|
12242
|
-
The id of the player's portrait item, when they have one
|
|
12326
|
+
The id of the player's portrait item, when they have one — what a game
|
|
12327
|
+
that draws Arcade avatars keys its own model on. On `gem.player` it
|
|
12328
|
+
changes when the player wears another portrait, and `onPlayer` runs again;
|
|
12329
|
+
see `gem.openAvatarPicker`.
|
|
12243
12330
|
|
|
12244
12331
|
<a id="leaderboardentry-avatariconurl"></a>
|
|
12245
12332
|
|
|
@@ -13681,7 +13768,10 @@ The precomposed `Name#0001`. It contains the name, so it is
|
|
|
13681
13768
|
readonly avatarIconId?: string
|
|
13682
13769
|
```
|
|
13683
13770
|
|
|
13684
|
-
The id of the player's portrait item, when they have one
|
|
13771
|
+
The id of the player's portrait item, when they have one — what a game
|
|
13772
|
+
that draws Arcade avatars keys its own model on. On `gem.player` it
|
|
13773
|
+
changes when the player wears another portrait, and `onPlayer` runs again;
|
|
13774
|
+
see `gem.openAvatarPicker`.
|
|
13685
13775
|
|
|
13686
13776
|
<a id="playerprofile-avatariconurl"></a>
|
|
13687
13777
|
|
|
@@ -15996,7 +16086,10 @@ The precomposed `Name#0001`. It contains the name, so it is
|
|
|
15996
16086
|
readonly avatarIconId?: string
|
|
15997
16087
|
```
|
|
15998
16088
|
|
|
15999
|
-
The id of the player's portrait item, when they have one
|
|
16089
|
+
The id of the player's portrait item, when they have one — what a game
|
|
16090
|
+
that draws Arcade avatars keys its own model on. On `gem.player` it
|
|
16091
|
+
changes when the player wears another portrait, and `onPlayer` runs again;
|
|
16092
|
+
see `gem.openAvatarPicker`.
|
|
16000
16093
|
|
|
16001
16094
|
<a id="roommember-avatariconurl"></a>
|
|
16002
16095
|
|
|
@@ -16761,7 +16854,10 @@ The precomposed `Name#0001`. It contains the name, so it is
|
|
|
16761
16854
|
readonly avatarIconId?: string
|
|
16762
16855
|
```
|
|
16763
16856
|
|
|
16764
|
-
The id of the player's portrait item, when they have one
|
|
16857
|
+
The id of the player's portrait item, when they have one — what a game
|
|
16858
|
+
that draws Arcade avatars keys its own model on. On `gem.player` it
|
|
16859
|
+
changes when the player wears another portrait, and `onPlayer` runs again;
|
|
16860
|
+
see `gem.openAvatarPicker`.
|
|
16765
16861
|
|
|
16766
16862
|
<a id="showcasefriendentry-avatariconurl"></a>
|
|
16767
16863
|
|