API reference
One page per type: what it is, its members, what each method takes and returns, and when it throws. The guides explain how the pieces fit together; this section is for looking things up.
Setupโ
| Type | Description |
|---|---|
ProjectVSettings | The SDK settings asset. Create it with Assets > Create > SilverTiger > ProjectV SDK > Settings, pick the Environment and fill in its fields in the Inspector. |
ProjectVStartupSettings | Which player data the SDK loads at startup. Every option must stay on; ProjectVSettings.Validate fails when one is off. |
ProjectVEnvironment | The server environment the game connects to. Each one has its own server address in ProjectVSettings. |
Startupโ
| Type | Description |
|---|---|
IProjectVStartupPresenter | The startup contract for the Login scene: start it once the game content is loaded, observe the state, and show the screen that matches each ProjectVStartupStatus. |
ProjectVStartupCommandResult | The outcome of one IProjectVStartupPresenter.StartAsync call. |
ProjectVStartupError | Why startup failed, in a form the Login UI can show or localize. |
ProjectVStartupSnapshot | The startup state the Login scene draws. Read-only; every change arrives as a new instance. |
ProjectVStartupAdmissionOutcome | The server's answer to whether this game build may connect. |
ProjectVStartupStatus | Where game startup is right now; the Login scene shows one screen or message per value. |
Authenticationโ
| Type | Description |
|---|---|
IProjectVAuthenticatedSceneGate | Guards scenes that need a signed-in player. A scene checks IsReady; when it is false, it saves itself with RequestReturnTo and opens Login. After sign-in, Login opens the scene from ConsumeReturnScene. You load the scenes; the gate only remembers where to go. |
IProjectVAuthenticationPresenter | The sign-in contract for the Login scene: observe the state, call a command, redraw on change. Commands return a result for server, network and input failures instead of throwing. A command started while another runs waits for it to finish. |
IProjectVGuestIdentityProvider | Gives the Guest ID for this device, to pass to Guest sign-in. |
ProjectVAuthenticationCommandResult | The outcome of one sign-in command. |
ProjectVAuthenticationError | Why a sign-in command failed, in a form the Login UI can show or localize. |
ProjectVAuthenticationSnapshot | The sign-in state the Login scene draws: status, the signed-in player and the last error. Read-only; every change arrives as a new instance. |
ProjectVGuestIdentityProvider | The standard Guest ID source: it creates a random ID once and keeps it on this device, so the player gets the same Guest account on every launch. The ID is not a secret. Uninstalling the game or clearing its data loses the ID and with it the Guest account. |
ProjectVNativeAuthenticationAvailabilityView | The availability of one sign-in provider, from IProjectVAuthenticationPresenter.GetNativeAvailability. |
ProjectVNativeAuthenticationOptions | Extra options for Google, Apple and Guest sign-in. Passing null instead is fine. |
ProjectVPasswordRegistrationInput | What the player typed into the register form. |
ProjectVAuthenticationStatus | Where the player is in sign-in right now. |
ProjectVNativeAuthenticationAvailability | Whether a Google or Apple sign-in button can work on this device and build. |
ProjectVNativeAuthenticationProvider | A sign-in provider that uses the device's own sign-in prompt. |
Accountโ
| Type | Description |
|---|---|
IProjectVAccountPresenter | The Account contract: logout and two-step account deletion (request, then confirm). Observe the state, call a command, redraw on change. Commands return a result for server and network failures instead of throwing. A command started while another runs waits for it to finish. |
ProjectVAccountCommandResult | The outcome of one Account command. |
ProjectVAccountDeletionChallenge | A pending account deletion that the player still has to confirm. |
ProjectVAccountError | Why an Account command failed, in a form the UI can show or localize. |
ProjectVAccountSnapshot | The Account state the UI draws: status, the pending deletion and the last error. Read-only; every change arrives as a new instance. |
ProjectVAccountStatus | What the Account presenter is doing right now: logout or the two-step account deletion. |
Lobbyโ
| Type | Description |
|---|---|
IProjectVLobbyPresenter | Lower-level Lobby state source. Most screens should use IProjectVLobbyScreen, which loads and redraws for you. |
IProjectVLobbyScreen | The Lobby screen contract: observe the view and redraw on change. Loading and refreshing are handled for you. |
ProjectVLobbyCommandResult | The outcome of IProjectVLobbyPresenter.RefreshAsync. |
ProjectVLobbyError | Why the last Lobby load failed. |
ProjectVLobbyProfile | The player's identity and level as shown in the Lobby. Read-only. |
ProjectVLobbySnapshot | The Lobby presenter state: status, profile and the last error. Read-only; every change arrives as a new snapshot. |
ProjectVLobbyView | Everything the Lobby draws: the confirmed profile, never an in-flight request. |
ProjectVLobbyStatus | What the Lobby presenter is doing right now. |
Headerโ
| Type | Description |
|---|---|
IProjectVHeaderPresenter | Feeds the top-bar header: currency balances and stamina. Subscribe once when the header is shown and dispose the subscription when it is hidden. |
ProjectVHeaderCurrencyBinding | Links one header slot (such as the credit counter) to the wallet currency it shows. |
ProjectVHeaderCurrencyCatalog | The list of currencies the header shows, one binding per header slot. Usually built from a ProjectVHeaderCurrencyCatalogAsset. |
ProjectVHeaderCurrencyCatalogAsset | Inspector asset that lists which currency each header slot shows. Create it from ProjectV/Backend V3/Header Currency Catalog, fill one row per slot, and assign it to the ProjectV presentation scope. |
ProjectVHeaderCurrencyValue | The player's current balance of one header currency, ready to show in its slot. |
ProjectVHeaderSnapshot | Everything the top-bar header shows: currency balances and stamina. Read-only; every change arrives as a new snapshot. |
ProjectVStaminaReading | Stamina at one moment, with the wait until the next point and until it is full. Get one from ProjectVStaminaRecovery.Read. |
ProjectVStaminaRecovery | Live stamina countdown from ProjectVHeaderSnapshot.StaminaRecovery. Stamina keeps recovering between server updates, so call Read every frame or second to show the current value and countdown without asking the server again. |
Characterโ
| Type | Description |
|---|---|
IProjectVCharacterPresenter | The Character presenter. Pages should use IProjectVCharacterScreen instead; use the presenter only for what the screen contract does not cover, such as equipment, backpack, skins and two-step confirmations. Commands run one at a time; a command never throws for a server failure, it returns a failed ProjectVCharacterCommandResult. |
IProjectVCharacterScreen | The Character screen contract: observe the view, call commands, redraw on change. Loading, syncing, retries and double-tap protection are handled for you. Commands run one at a time, and a second tap on a running command returns the same result. |
ProjectVCharacterBackpackSlot | One backpack slot and the item in it. Read-only. |
ProjectVCharacterCastSkill | One cast skill of a character: its level, the skill it unlocks next and the price. Read-only. |
ProjectVCharacterCastSkillCost | One price line of a cast skill upgrade. Read-only. |
ProjectVCharacterCastSkillSet | The cast skills of one character: up to one per slot. Read-only. |
ProjectVCharacterCastSkillUpgradeCost | One price line of a cast skill upgrade next to what the player owns. Read-only. |
ProjectVCharacterCastSkillUpgradeDetails | Whether one cast skill can be upgraded now, with its price next to what the player owns and a ready-made reason when it cannot. Get it from ProjectVCharacterData.GetCastSkillUpgradeDetails. |
ProjectVCharacterCastSkillsSnapshot | The cast skills of every owned character. Read-only. |
ProjectVCharacterCommandResult | The result of a Character presenter command. |
ProjectVCharacterCost | One price line: how much of a resource an upgrade costs. Read-only. |
ProjectVCharacterData | Everything the Character screen shows, as last confirmed by the server: the roster, loadout, skill trees, inventory, wallet, equipment, backpack, skins, EXP items and cast skills. Read-only; a change arrives as a new instance. |
ProjectVCharacterEntry | One owned character or ally: level, EXP, stats and what its next level needs. Read-only. |
ProjectVCharacterEquipment | One piece of equipment from the catalog, owned or not: its slot, level and next upgrade price. Read-only. |
ProjectVCharacterError | Why a Character load or command failed, in a form that is safe to show. |
ProjectVCharacterItemRefund | One item a level reset gives back, and how many. Read-only. |
ProjectVCharacterLevelPolicy | Level-up and level-reset helpers for the Character screen: previews and automatic EXP item picks, worked out from the loaded data without sending anything. |
ProjectVCharacterLevelResetPreview | What resetting a character's level would do: whether it is possible, the message to show and the items it gives back. Get it from ProjectVCharacterLevelPolicy.ResetPreview. |
ProjectVCharacterLevelResetRequirements | Whether the server allows a character's level to be reset, and what it gives back. Read-only. |
ProjectVCharacterLevelStep | One level of a character's level path: the total EXP it needs and the stats it gives. Read-only. |
ProjectVCharacterLoadoutSlot | One loadout slot and the character placed in it. Read-only. |
ProjectVCharacterProgressionPending | A level-up or level reset whose answer was lost. Show it as pending and offer a retry; it keeps its original character and items. Read-only. |
ProjectVCharacterResource | How much of one currency or item the player owns. Read-only. |
ProjectVCharacterResourceNames | English display names for the resources Character upgrades cost. |
ProjectVCharacterSkill | One node of a character's skill tree: its rank, price and what still blocks it. Read-only. |
ProjectVCharacterSkillPrerequisite | A rank another skill must reach before a skill can rank up. Read-only. |
ProjectVCharacterSkillTree | One character's skill tree and its own unspent skill points. Read-only. |
ProjectVCharacterSkillUpgradeCost | One price line of a skill rank next to what the player owns. Read-only. |
ProjectVCharacterSkillUpgradeDetails | Whether one skill can rank up now, with its price next to what the player owns and a ready-made reason when it cannot. Get it from ProjectVCharacterData.GetSkillUpgradeDetails. Read-only. |
ProjectVCharacterSkin | One skin from the catalog, owned or not. Read-only. |
ProjectVCharacterSnapshot | The Character presenter's state at one moment. Read-only; every change is a new snapshot. |
ProjectVCharacterStats | A character's combat stats at one level, as the server sets them. Read-only. |
ProjectVCharacterUpgradeRequirements | What a character's next level needs and gives, as the server sets it. Read-only. |
ProjectVCharacterUpgradeState | Whether a character can level up now, and if not, why, with the price next to the player's balances. Get it from ProjectVCharacterSnapshot.GetUpgradeState or ProjectVCharacterView.UpgradeState. Read-only. |
ProjectVCharacterView | Everything the Character screen draws. It is immutable and always complete: values come from the last confirmed data, never from an in-flight request. |
ProjectVCharacterXpItemDefinition | One kind of EXP item: how much EXP it gives and whether it is for characters or allies. Read-only. |
ProjectVCharacterXpItemSelection | One EXP item the player chose to spend, and how many. Read-only. |
ProjectVCharacterXpUpgradePreview | What leveling a character with a set of EXP items would do: whether it can be sent, the EXP gained, and the level and stats it would reach. Read-only. |
ProjectVCharacterCastSkillCostKind | Where a cast skill cost is paid from. |
ProjectVCharacterCastSkillLockReason | Why a cast skill cannot be upgraded yet. |
ProjectVCharacterCastSkillSlot | Which cast skill slot of a character a skill sits in. |
ProjectVCharacterCastSkillState | Whether a cast skill can be upgraded, as the server reports it. |
ProjectVCharacterProgressionOutcome | What the server confirmed during a level-up or level reset. |
ProjectVCharacterProgressionStage | How far a pending level-up or level reset got before its answer was lost. |
ProjectVCharacterSkillLockReason | Why a skill cannot get its next rank yet. |
ProjectVCharacterSkillState | Whether a skill can get its next rank, as the server reports it. |
ProjectVCharacterStatus | What the Character presenter is doing right now. |
ProjectVCharacterUpgradeBlockReason | Why a character cannot level up right now. |
Allianceโ
| Type | Description |
|---|---|
IProjectVAlliancePresenter | The Alliance presenter: the player's allies, ally selection, leveling with EXP items, weapon skill upgrades and level resets. Pages should use IProjectVAllianceScreen instead; use the presenter only for what the screen contract does not cover. |
IProjectVAllianceScreen | The Alliance screen contract: observe the view, call commands, redraw on change. Loading, synchronisation, retries and double-tap protection are handled for you. |
ProjectVAllianceCommandResult | The result of an Alliance presenter command. |
ProjectVAllianceData | The Alliance data at one moment: the player's allies, the selected ally, and the EXP items and resources used to level them. Read-only; a change arrives as a new instance. |
ProjectVAllianceSnapshot | The Alliance presenter's state at one moment. Read-only; every change is a new snapshot. |
ProjectVAllianceView | Everything the Alliance screen draws. It is immutable and always complete: values are computed from the last confirmed data, never from an in-flight request. |
ProjectVAllyView | One ally the player owns, as the Alliance screen draws it. Read-only. |
ProjectVXpItemView | One kind of EXP item and how many the player owns. |
Campaignโ
| Type | Description |
|---|---|
IProjectVCampaignPresenter | The Campaign presenter: the missions, starting a mission run, and releasing it when its scene cannot load. Pages should use IProjectVCampaignScreen instead; use the presenter only for what the screen contract does not cover. |
IProjectVCampaignScreen | The Campaign screen contract: observe the view, call commands, redraw on change. Loading, retries and double-tap protection are handled for you. |
ProjectVCampaignCommandResult | The result of a Campaign presenter command. |
ProjectVCampaignData | The Campaign missions and the player's total stars. Read-only; a change arrives as a new instance. |
ProjectVCampaignError | Why the last Campaign load or command failed. |
ProjectVCampaignMission | One Campaign mission with the player's progress on it: entry cost, lock state, stars and drops. Read-only; a change arrives as a new instance. |
ProjectVCampaignMissionStars | The star objectives and milestones of a Campaign mission, and the player's best run on it. |
ProjectVCampaignReward | One Campaign reward: a star milestone reward or a mission drop. |
ProjectVCampaignSnapshot | The Campaign presenter's state at one moment. Read-only; every change is a new snapshot. |
ProjectVCampaignStarMilestone | Rewards granted once when a mission's best-run stars reach StarsRequired. |
ProjectVCampaignStarObjective | One star objective of a Campaign mission; the server decides whether a run met it. |
ProjectVCampaignView | Everything the Campaign screen draws: the confirmed missions, never an in-flight request. |
ProjectVCampaignStatus | What the Campaign presenter is doing right now. |
Shopโ
| Type | Description |
|---|---|
IProjectVShopPresenter | The Shop presenter. Pages should use IProjectVShopScreen instead; use the presenter only for what the screen contract does not cover. |
IProjectVShopScreen | The Shop screen contract: observe the view, call commands, redraw on change. Loading, retries and double-tap protection are handled for you. |
ProjectVShopCommandResult | The result of a Shop presenter command. |
ProjectVShopError | Why the last Shop load or purchase failed. |
ProjectVShopOfferView | One Shop offer as the server sells it: price, how many units one purchase may contain, and the purchase limit. Read-only; a change on the server arrives as a new instance. |
ProjectVShopReceiptView | The receipt of the last confirmed purchase. |
ProjectVShopSnapshot | The Shop presenter's state at one moment. Read-only; every change is a new snapshot. |
ProjectVShopView | Everything the Shop screen draws: the confirmed offers, never an in-flight request. |
ProjectVShopLimitKind | How often an offer's purchase limit resets. |
ProjectVShopStatus | What the Shop presenter is doing right now. |
Gameplayโ
| Type | Description |
|---|---|
IProjectVGameplayDataConsumer | Implement on one MonoBehaviour in the mission scene to receive the run's data. When the scene loads for a started run, the SDK calls BindGameplayData on the Unity main thread; the scene must contain exactly one such component. |
IProjectVGameplayDataPolicy | Helpers for the mission scene: the scene reports what happens (enemies spawned and killed, the outcome, the final health) and the SDK works out which drops count and what to send. Every call fails once the presenter is unbound. |
IProjectVGameplayDataPresenter | The mission scene's link to the current run: report skill uses and send the result. You receive it in IProjectVGameplayDataConsumer.BindGameplayData; it also implements IProjectVGameplayDataPolicy. Once unbound, every call fails. |
ProjectVGameplayAllyView | A teammate character that joins the run, with its level, stats and skills for this run. |
ProjectVGameplayCastSkillView | The active skill in one slot for this run. |
ProjectVGameplayClientRewardView | One reward the player picked up, sent with the result when trust client rewards is on. The server grants it only when trust mode is also on there; otherwise it works out rewards itself. |
ProjectVGameplayCompletionView | The result of a run, sent with IProjectVGameplayDataPresenter.CompleteAsync. When you use IProjectVGameplayDataPolicy.CompleteObservedAsync, the SDK builds it for you. |
ProjectVGameplayDataResult | The outcome of a gameplay data call. Failures are returned here, not thrown. |
ProjectVGameplayDropRegistration | Proof that a reward enemy is registered for one activation. Keep the value from IProjectVGameplayDataPolicy.RegisterDropOwner and pass it back when the enemy dies or is deactivated. The default value is not registered. |
ProjectVGameplayDropView | One reward-carrying enemy and the rewards it carries in this run. |
ProjectVGameplayRewardView | One reward a drop or a completed run grants, as decided by the server. |
ProjectVGameplaySkillRankView | One skill-tree node and its rank for this run. |
ProjectVGameplayStarResultView | Stars the server scored for a settled run. |
ProjectVGameplayStartingDataView | Everything the mission scene needs to start the run: the character, its stats and skills, allies and reward enemies. Fixed by the server when the run started; later Character screen changes do not affect it. |
ProjectVGameplayTelemetryView | The character's health and armor at the end of a run, sent with the result. |
ProjectVGameplayDataOutcome | How a mission run ended. |
ProjectVGameplayDataSkillSlot | The two active skill slots of a character in a run. |
Shared typesโ
| Type | Description |
|---|---|
ProjectVBalancePreview | One line of a confirmation dialog: a resource the player has, what the action costs, and what is left. |
ProjectVScreenRecoveryState | Tells a screen what to show while its data loads or fails: the Phase, a player-facing Message, and whether to offer Retry or Sync buttons. |
ProjectVTransactionConfirmation | The content of a confirmation dialog: what the player gets, what it costs, and what they lose. |
ProjectVTransactionConfirmationCoordinator | Drives a confirmation dialog: call Prepare to open it, ConfirmAsync or Cancel from its buttons, and redraw on Changed. Only one action runs at a time. |
ProjectVTransactionResult | The final result of a confirmed action, with text for the player and the next buttons to offer. |
ProjectVScreenPhase | What a screen's data looks like right now; use it to choose between content, spinner, banner or error. |
ProjectVTransactionKind | The kind of action a confirmation dialog asks the player to approve. |
ProjectVTransactionStatus | Where a confirmed action is in its life, from the dialog opening to the final result. |
Common typesโ
| Type | Description |
|---|---|
ProjectVAuthenticatedSceneScope | Base class for the scope of a scene that needs a signed-in player, such as the lobby. Subclass it, register the scene's UI in ConfigureAuthenticated, and inject the ProjectV screens and presenters from it. When no player is signed in with game data ready, the scene is disabled and the player is sent to Login. The scene is saved so Login can open it again with IProjectVAuthenticatedSceneGate.ConsumeReturnScene after sign-in. |
ProjectVBackpackSlotId | A slot in the player's backpack, such as slot-1. Compare with Equals. |
ProjectVCampaignMissionId | The ID of a campaign mission, such as future_city_01. Compare with Equals. |
ProjectVCharacterId | The ID of a playable character or ally, such as PLAYER_SUMIRE. Compare with Equals. |
ProjectVCharacterKind | Whether a character is the main character or an ally, such as character. Use the values in ProjectVCharacterKinds. Compare with Equals. |
ProjectVCharacterKinds | The character kinds the game uses. |
ProjectVCharacterSkillId | The ID of a character skill, such as ad4b85fb7aa64ad196e1f7e0f330b0aa. Compare with Equals. |
ProjectVCurrencyId | The ID of a currency, such as core_dust. Compare with Equals. |
ProjectVEquipmentId | The ID of a piece of equipment, such as rifle. Compare with Equals. |
ProjectVEquipmentSlotId | An equipment slot on a character, such as primary_weapon. Compare with Equals. |
ProjectVGameplayItemId | The ID of an item used during gameplay, such as ITEM_RIFLE. Compare with Equals. |
ProjectVGameplayKey | The key that picks the gameplay scene or content for a mission, such as future_city_first_encounter. Compare with Equals. |
ProjectVGameplaySkillId | The ID of a skill used during gameplay, such as ad4b85fb7aa64ad196e1f7e0f330b0aa. Compare with Equals. |
ProjectVHeaderViewKey | A currency slot in the screen header, such as header.gold. Use the values in ProjectVHeaderViewKeys. Compare with Equals. |
ProjectVHeaderViewKeys | The header currency slots the game uses. |
ProjectVItemId | The ID of an inventory item, such as ITEM_XP. Compare with Equals. |
ProjectVLoadoutSlotId | A loadout slot that holds a character, such as main. Use the values in ProjectVLoadoutSlots. Compare with Equals. |
ProjectVLoadoutSlots | The loadout slots the game uses. |
ProjectVLoginSceneScope | Base class for the Login scene's scope. Subclass it and register the Login UI in ConfigureLogin; the sign-in and startup presenters come from the ProjectV scope. |
ProjectVPresentationLifetimeScope | The root VContainer scope that provides every ProjectV presenter and screen, such as IProjectVLobbyScreen and IProjectVShopScreen. Put it on the same GameObject as an initialized ProjectVSdkProvider. Scene scopes based on ProjectVLoginSceneScope and ProjectVAuthenticatedSceneScope use it as their parent. Only one stays alive; extra copies destroy themselves. |
ProjectVResourceId | The ID of a resource the player owns and spends, such as core_dust. Compare with Equals. |
ProjectVResult | Outcome of a screen command. Message is always text for the player; diagnostics such as cache reads go to the SDK log, never here. |
ProjectVScreens | Creates screens from their presenters when you do not use ProjectVPresentationLifetimeScope, for example in tests or tools. Inside that scope, inject the screen interfaces instead. |
ProjectVShopOfferId | The ID of a Shop offer, such as stamina_pack_small. Compare with Equals. |
ProjectVSkinId | The ID of a character skin, such as skin-default. Compare with Equals. |
ProjectVUiSubscriptions | Subscribes UI to the sign-in, startup and header presenters, and logs when each update has been applied by your callback. Use these instead of SubscribeAsync for UI code. The log entry marks your callback returning, not the frame being drawn or the server finishing. |
ProjectVBackendErrorCategory | The kind of failure behind a screen error. Use it to pick what to show, such as a retry button for Network or a sign-in prompt for Authentication. |
ProjectVUiBindingId | Names the UI binding passed to ProjectVUiSubscriptions, so the SDK log can tell which piece of UI applied an update. Each presenter accepts only its own value. |