Vip Docs: UE5 Systems and Blueprints Table

Blueprint Name Category Description
GI_VipGameInstance Core System The root of the game used to handle persistent global variables across level changes (e.g., moving from the main menu to therapy). Includes save directories, persistent references to runtime variables (client structs, game modes, therapy types), and a library of in-therapy "objectives."
WB_CharacterSelector UI / Data Loading Orchestrates client loading. Populates lists of WB_PatientSelectButton from the VipSaveData directory. On session start, it parses JSON data into a client struct and passes it to the Game Instance so the client is properly initialized on loading the therapy level.
WB_PatientSelectButton UI / Selection Sets the therapy type and current client reference. There are three variants: WB_PatientSelectButton (Open), WB_PatientSelectButton1 (Structured), and WB_PatientSelectButton2 (OneStep).
WB_TreatmentRoomUI HUD / Input The main gameplay HUD. Manages text input and tracks player note-taking. Notes are saved to the notebook (Note: Saving is currently exclusive to Structured Mode).
WB_Feedback Logic / Analytics Handles post-session processing. Displays AI-generated feedback, saves client memories, and updates gameplay stats (hours played, sessions completed). It also scores the client and assigns/saves performance ratings.
WB_MainMenuUINew UI / Navigation Logic for the main menu. Selecting different game mode cards sets the GameMode variable within GI_VipGameInstance.
WB_CharacterCreator UI / Creation Manages the creation of new clients. Critical for ensuring character data is formatted correctly for all downstream systems.
Player_Controller Input / Streaming Logic for user input and user-facing functionality: Voice capture (Pixel Streaming and local), Pixel Streaming config, input handling (browser/connection events), hashing usernames, and the pause menu.
BP_ISNCharacter1 Actor / Client The main blueprint for clients. Acts as a lightweight nexus connecting the mesh, animation blueprints, and the ISNAILink component. Generally stable and rarely requires modification.
BP_ISNAILink_Component AI / Integration The bridge to the AI backend. Handles speech-to-speech requests, processes responses (Base64 to audio, subtitle extraction), and sends morph target weight matrices to the face animation blueprint.
Face_AnimBPISN Animation Controls the client's face. Updates morph target weights frame-by-frame based on data from BP_ISNAILink_Component. Includes idle behaviors like saccades and additive emotional layers.
ABP_ISNCharacter3 Animation Controls client body animations. Driven by factors such as gender, body type, and emotion provided by the character blueprint and AI link component.

Vip Docs: UE5 Systems and Blueprints

Important blueprints

  • GI_VipGameInstance - This blueprint is the root of the game and therefore is used to handel persistent global variables even as level change (e.g. moving from the main menu to therapy). Currently includes things such as: Directories such as save directory, Persistent referneces to important runtime game variables such as struct of the current client, current game mode, current therapy type etc., and a library of in-therapy "objectives".
  • WB_CharacterSelector - What looks like another UI blueprint is actually extremely important. Loads clients from the VipSaveData Dir to populate lists of WB_PatientSelectButton('s) for each gamemode allowing to select which client. On clicking start session, all client information will be loaded from a JSON in a corresponding save directory based on which WB_PatientSelectButton is currently selected. This JSON data will be used to create a struct that hold all client information. It is pased to GI_VipGameInstance so that the client can be properly initialised on loadeing the therapy level.
  • WB_PatientSelectButton - Selecting these sets the therapy type and the struct that serves as a reference to the current client. There is actually three of these, one for each gamemode: WB_PatientSelectButton for open, WB_PatientSelectButton1 for structured, and WB_PatientSelectButton2 for onestep.
  • WB_TreatmentRoomUI - Manages text input and is the main HUD during gameplay in any therapy session. Also responsible for tracking player note taking, which gets saved as players add new notes to the notebook (ONLY SAVE IN STRUCTURED MODE)
  • WB_Feedback - Another deceptively important blueprint. On the surface, this blueprint shows players AI - generated feedback based on their session. Under the hood, this blueprint does all the progress management handingling such as saving client memories, and updating gameplay stats for the player (like hours played, sessions completed, etc). Also scores the client and assigns / saves performance ratings.
  • WB_MainMenuUINew - Logic for the main menu where you select which gamemode to play. Selecting different cards sets the gamemode var on the GI_VipGameInstance.
  • WB_CharacterCreator - Blueprint that manages client creation. Very important this is right because if a character is not created properly they dont work as intended.
  • Player_Controller - Contains logic for most user input, and user facing or user related fucntionality, such as: Voice caputre (pixel streaming and local), pixel streaming config, pixel streaming input handeling (info from the browser, driving events from new connections or closed connections), hashing username from pixel stream, pause game.
  • BP_ISNCharacter1 - The main blueprint for the clients. Very lightweight, mostly just a nexsus of all the things that make up the client including their mesh, animation blueprint, face animation blueprint, and ISNAILink component. Very stable and never needs to be touched except for big changes to anim or new clients.
  • BP_ISNAILink_Component - This is the blueprint responsible for most of the calls to the AI backend, and is responsible for all AI driven interactions with the client. Handles all speech-to-speech request, processes responses from the ai backend (converts base64 to audio, extracts subtitles, and extracts morphtarget weight matrices to animation and sends to Face_AnimBPISN), update rapport requests, and check objective requests.
  • Face_AnimBPISN - Controls the clients face. Speech animation is set each frame by taking a matrix of morph target weights given to it by BP_ISNAILink_Component. Also has idle face animation like saccades. Has weights for different emotions as well that allow emotional expressions to be set on top of other activate face animations.
  • ABP_ISNCharacter3 - Controls the client animations. Irina is the master of this domain. Animations are driven by factors such as gender + bodytype + emotion which it gets from things like BP_ISNCharacter1 and BP_ISNAILink_Component.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9