Way Network Blueprint Examples
March 7, 2026 · View on GitHub
Overview
This document provides copy-paste Blueprint node setups for integrating Way Networks into your game. All examples use visual scripting only—no C++ required.
Example 1: Register All Networks on Game Start
Purpose: Automatically register all network Data Assets when game begins
Location: Game Mode Blueprint → Event BeginPlay
Blueprint Nodes
Event BeginPlay
│
├─→ Get Game Instance
│ └─→ Get Subsystem (VerseSubsystem)
│ │
│ ├─→ Load Asset (DA_Network_CraftsmenCompact)
│ │ └─→ Register Network
│ │
│ ├─→ Load Asset (DA_Network_FrontierAlliance)
│ │ └─→ Register Network
│ │
│ ├─→ Load Asset (DA_Network_HonorCircle)
│ │ └─→ Register Network
│ │
│ ├─→ Load Asset (DA_Network_MerchantCoalition)
│ │ └─→ Register Network
│ │
│ └─→ Load Asset (DA_Network_ScholarsSyndicate)
│ └─→ Register Network
│
└─→ Print String: "Way Networks Initialized"
Step-by-Step Setup
- Open your Game Mode Blueprint
- Find or create Event BeginPlay
- Drag from execution pin → Get Game Instance
- Drag from Game Instance → Get Subsystem
- Select Class:
VerseSubsystem
- Select Class:
- For each network:
- Add Load Object node
- Set Object Class:
WayNetworkDataAsset - Set Path: Your network asset path
- Drag from loaded object → Register Network on VerseSubsystem
- Connect all Register Network nodes in sequence
- Add Print String at end for confirmation
Example 2: Display Network Information Widget
Purpose: Show player's standing with a specific network
Location: Custom Widget Blueprint (WBP_NetworkInfo)
Widget Structure
Canvas Panel
├─ Vertical Box (Network_Container)
│ ├─ Text (Network_Name)
│ ├─ Text (Network_Description)
│ ├─ Progress Bar (Reputation_Bar)
│ ├─ Text (Reputation_Label)
│ └─ Scroll Box (Member_List)
│ └─ [Dynamically added member widgets]
└─ Button (View_Benefits_Button)
Blueprint Graph - On Construct
Event Construct
│
├─→ Get Game Instance
│ └─→ Get Subsystem (VerseSubsystem)
│ │
│ ├─→ Variable: Store as "Verse System"
│ │
│ └─→ [Network Asset Variable]
│ │
│ ├─→ Get Network Name
│ │ └─→ Set Text (Network_Name)
│ │
│ ├─→ Get Description
│ │ └─→ Set Text (Network_Description)
│ │
│ ├─→ Get Network Verse Score (VerseSubsystem)
│ │ │
│ │ ├─→ Divide by 100.0 (normalize to 0-1)
│ │ │ └─→ Set Percent (Reputation_Bar)
│ │ │
│ │ └─→ Format Text: "Reputation: {0}"
│ │ └─→ Set Text (Reputation_Label)
│ │
│ ├─→ Qualifies For Network Bonuses (VerseSubsystem)
│ │ └─→ Branch
│ │ ├─ True → Set Is Enabled (View_Benefits_Button) = True
│ │ └─ False → Set Is Enabled (View_Benefits_Button) = False
│ │
│ └─→ Get Members
│ └─→ ForEachLoop
│ │
│ └─→ Create Widget (WBP_MemberListItem)
│ │
│ ├─→ Set Member Way Name
│ ├─→ Set Influence Level
│ ├─→ Set Commitment Level
│ │
│ └─→ Add Child to Scroll Box (Member_List)
Variables Needed
-
Network Asset (WayNetworkDataAsset Reference)
- Instance Editable: True
- Category: "Configuration"
-
Verse System (VerseSubsystem Reference)
- Local variable in function
Example 3: Award Feat with Network Effects
Purpose: Complete a quest and award Feat with automatic network spillover
Location: Quest Completion Function
Blueprint Nodes
Custom Event: OnQuestCompleted
│
├─→ Get Game Instance
│ └─→ Get Subsystem (VerseSubsystem)
│ │
│ └─→ Variable: [Feat Asset to Award]
│ └─→ Record Feat With Network Effects
│ ├─ Feat To Record: [Your Feat Asset]
│ ├─ Apply Network Effects: TRUE
│ │
│ └─→ Branch
│ ├─ Success:
│ │ └─→ Show Notification: "Feat Achieved!"
│ │
│ └─ Failure:
│ └─→ Print String: "Feat already completed"
With Notification Details
Record Feat With Network Effects (Success Branch)
│
├─→ Get Networks For Way ([Quest Giver Way])
│ └─→ ForEachLoop
│ │
│ └─→ Get Network Verse Score
│ └─→ Branch (Score > 25)
│ │
│ └─ True:
│ └─→ Show UI Notification
│ ├─ Title: "Network Reputation Increased"
│ ├─ Message: "[Network Name] approves of your actions"
│ └─ Icon: [Network Icon]
Example 4: Network-Based Discount System
Purpose: Apply trading discounts for network members
Location: Trading Post Blueprint → On Player Interact
Blueprint Nodes
Event OnPlayerInteract
│
├─→ Get Station Faction Way
│ │
│ └─→ Get Game Instance
│ └─→ Get Subsystem (VerseSubsystem)
│ │
│ └─→ Get Networks For Way (Station Faction)
│ │
│ └─→ ForEachLoop
│ │
│ └─→ Qualifies For Network Bonuses
│ └─→ Branch
│ │
│ ├─ True:
│ │ │
│ │ ├─→ Set Variable: Base Discount = 10%
│ │ │
│ │ ├─→ Get Network Verse Score
│ │ │ └─→ Divide by 1000 (bonus discount)
│ │ │ └─→ Add to Base Discount
│ │ │ └─→ Clamp (0, 25)
│ │ │ └─→ Apply Discount Multiplier
│ │ │
│ │ └─→ Show UI: "Network Member Benefits Active"
│ │
│ └─ False:
│ └─→ Normal Prices
Discount Calculation Details
Calculate Network Discount Function
│
Input: Network (WayNetworkDataAsset)
Output: Discount Percent (Float)
│
├─→ Get Network Verse Score (VerseSubsystem)
│ │
│ ├─→ Base Discount = 10.0
│ │
│ ├─→ Bonus Discount = (Score / 10.0)
│ │ └─→ Clamp (0, 15)
│ │
│ └─→ Total Discount = Base + Bonus
│ └─→ Clamp (10, 25)
│ └─→ Return Value
Example 5: Network Quest Generator
Purpose: Generate quests that benefit entire network
Location: Quest Manager Blueprint
Blueprint Nodes
Function: Generate Network Quest
│
Input: Quest Giver Way (WayDataAsset)
Output: Quest Data (Struct)
│
├─→ Get Game Instance
│ └─→ Get Subsystem (VerseSubsystem)
│ │
│ └─→ Get Networks For Way (Quest Giver)
│ │
│ ├─→ Array Length > 0
│ │ └─→ Branch
│ │ │
│ │ ├─ True (In Network):
│ │ │ │
│ │ │ ├─→ Select Random Network
│ │ │ │ │
│ │ │ │ ├─→ Create Quest: "Network Defense"
│ │ │ │ │ ├─ Objective: Defend all member stations
│ │ │ │ │ ├─ Reward: Rep with ALL members
│ │ │ │ │ └─ Bonus: Network-exclusive item
│ │ │ │ │
│ │ │ │ └─→ OR Create Quest: "Joint Research"
│ │ │ │ ├─ Objective: Gather resources for network
│ │ │ │ ├─ Reward: Rep + Credits
│ │ │ │ └─ Bonus: Unlocks network technology
│ │ │ │
│ │ │ └─→ Return Quest Data
│ │ │
│ │ └─ False (Solo):
│ │ └─→ Create Standard Quest
│ │ └─→ Return Quest Data
│ │
│ └─→ Return Value
Network Quest Types
Select Network Quest Type
│
├─→ Random Integer (1-5)
│ │
│ ├─ Case 1: Network Defense
│ │ ├─ Description: "Defend network members from pirate attack"
│ │ ├─ Objectives: Protect X member stations
│ │ └─ Reward: High rep with all members + credits
│ │
│ ├─ Case 2: Joint Research
│ │ ├─ Description: "Collect samples for network research project"
│ │ ├─ Objectives: Gather Y resources from Z locations
│ │ └─ Reward: Rep with all members + special module
│ │
│ ├─ Case 3: Diplomatic Mission
│ │ ├─ Description: "Negotiate on behalf of the network"
│ │ ├─ Objectives: Complete dialogue challenges
│ │ └─ Reward: Network rep + diplomatic access
│ │
│ ├─ Case 4: Supply Run
│ │ ├─ Description: "Deliver supplies to all network members"
│ │ ├─ Objectives: Visit all member stations with cargo
│ │ └─ Reward: Network rep + trading discount voucher
│ │
│ └─ Case 5: Network Expansion
│ ├─ Description: "Help recruit new member to network"
│ ├─ Objectives: Complete favor for potential member
│ └─ Reward: Network rep + possible new member
Example 6: Network Rivalry System
Purpose: Create competing networks with player choice
Location: Story Event Blueprint
Blueprint Nodes
Event: Player Must Choose Network
│
Input: Network A, Network B (both WayNetworkDataAssets)
│
├─→ Show UI: Network Choice Dialog
│ │
│ ├─→ Display Network A Info
│ │ ├─ Name, Description, Members
│ │ ├─ Shared Precepts
│ │ └─ Benefits if chosen
│ │
│ ├─→ Display Network B Info
│ │ └─ [Same as above]
│ │
│ └─→ Wait for Player Choice
│ │
│ ├─→ Button A Clicked:
│ │ │
│ │ ├─→ Increase Rep with Network A (+ 50 all members)
│ │ ├─→ Decrease Rep with Network B (- 30 all members)
│ │ ├─→ Set Quest Flag: "Supports_Network_A"
│ │ └─→ Show Consequence Dialog
│ │
│ └─→ Button B Clicked:
│ └─→ [Mirror of Button A logic]
Consequence Tracking
Function: Apply Network Choice Consequences
│
Input: Chosen Network, Rival Network
│
├─→ Get Game Instance
│ └─→ Get Subsystem (VerseSubsystem)
│ │
│ ├─→ Get Members (Chosen Network)
│ │ └─→ ForEachLoop
│ │ └─→ [Store member Ways to "Allied" list]
│ │
│ ├─→ Get Members (Rival Network)
│ │ └─→ ForEachLoop
│ │ └─→ [Store member Ways to "Hostile" list]
│ │
│ └─→ Update Quest System
│ ├─ Enable quests from Allied members
│ ├─ Disable quests from Hostile members
│ └─ Trigger rivalry events
Example 7: Dynamic Network Formation
Purpose: Form new networks based on player actions
Location: Reputation Manager Blueprint
Blueprint Nodes
Function: Check For Dynamic Network Formation
│
Called: After any reputation change
│
├─→ Get All Ways Player Has Rep With
│ └─→ Filter: Rep > 50
│ │
│ └─→ ForEachLoop (Combination Pairs)
│ │
│ └─→ Check Shared Precepts
│ │
│ ├─→ Count Common Precepts >= 2
│ │ └─→ Branch
│ │ │
│ │ └─ True:
│ │ │
│ │ ├─→ Check: Network Already Exists?
│ │ │ └─→ Branch
│ │ │ │
│ │ │ └─ False:
│ │ │ │
│ │ │ ├─→ Create Network Asset (Runtime)
│ │ │ │ ├─ Add both Ways as members
│ │ │ │ ├─ Set Shared Precepts
│ │ │ │ └─ Set default mechanics
│ │ │ │
│ │ │ ├─→ Register Network (VerseSubsystem)
│ │ │ │
│ │ │ └─→ Show Event: "New Alliance Formed!"
│ │ │ └─→ Display network info to player
│ │
│ └─→ Continue loop
Example 8: Network Benefits UI Panel
Purpose: Show all active network benefits
Location: Player Menu Widget (WBP_NetworkBenefits)
Widget Graph
Event Construct
│
├─→ Get Game Instance
│ └─→ Get Subsystem (VerseSubsystem)
│ │
│ └─→ Get All Registered Networks (custom function)
│ │
│ └─→ ForEachLoop
│ │
│ └─→ Qualifies For Network Bonuses
│ └─→ Branch
│ │
│ └─ True:
│ │
│ └─→ Create Widget (WBP_NetworkBenefitCard)
│ │
│ ├─→ Set Network Name
│ ├─→ Set Network Icon
│ │
│ ├─→ Calculate Active Benefits:
│ │ ├─ Trading discount %
│ │ ├─ Reputation bonus multiplier
│ │ ├─ Access to exclusive items
│ │ └─ Available network quests
│ │
│ └─→ Add to Benefits Panel
Benefit Card Structure
WBP_NetworkBenefitCard (Widget Component)
│
├─ Image: Network Icon
├─ Text: Network Name
├─ Text: "Active Benefits:"
└─ Vertical Box:
├─ Text: "• Trading Discount: X%"
├─ Text: "• Reputation Bonus: X.Xx"
├─ Text: "• Exclusive Access: [items]"
└─ Text: "• Network Quests: X available"
Helper Functions
Get All Networks For Player
Function: Get Player Active Networks
│
Output: Array of WayNetworkDataAssets
│
├─→ Get Game Instance
│ └─→ Get Subsystem (VerseSubsystem)
│ │
│ └─→ Get All Registered Networks (iterate internally)
│ │
│ └─→ ForEachLoop
│ │
│ └─→ Qualifies For Network Bonuses
│ └─→ Branch
│ │
│ ├─ True → Add to Output Array
│ └─ False → Skip
│
└─→ Return Output Array
Calculate Total Network Influence
Function: Calculate Player Network Power
│
Output: Float (0-100)
│
├─→ Get Player Active Networks
│ │
│ └─→ ForEachLoop
│ │
│ ├─→ Get Network Verse Score
│ │ └─→ Add to Running Total
│ │
│ └─→ Get Member Count
│ └─→ Multiply total by member count
│
└─→ Divide by 100 → Clamp (0, 100) → Return
Testing Blueprints
Test Harness Blueprint
Actor: BP_NetworkTestHarness
│
├─→ Event BeginPlay
│ │
│ ├─→ Register Test Networks
│ │
│ ├─→ Create Test Player Reputation
│ │ ├─ Way A: 40 rep
│ │ ├─ Way B: 60 rep
│ │ └─ Way C: 20 rep
│ │
│ └─→ Run Test Sequence
│
├─→ Custom Event: Test Spillover
│ └─→ Award Feat
│ └─→ Log reputation changes
│
├─→ Custom Event: Test Bonuses
│ └─→ Check qualifications
│ └─→ Log which bonuses active
│
└─→ Custom Event: Test Network Formation
└─→ Try dynamic network creation
└─→ Log success/failure
Common Patterns
Pattern: Check Before Action
Before granting network benefit:
│
├─→ Is Network Active?
├─→ Does Player Qualify?
├─→ Are prerequisites met?
│
└─→ Branch → Grant or Deny
Pattern: Safe Network Access
Get Network Asset:
│
├─→ Is Valid?
│ └─→ Branch
│ ├─ True → Use Network
│ └─ False → Log Warning, Use Fallback
Pattern: Multi-Network Iteration
For all player's networks:
│
└─→ ForEachLoop
│
├─→ Is Valid and Active?
├─→ Process Network
└─→ Continue
Summary
Key Blueprint functions:
- Register Network: On game start
- Get Networks For Way: Find Way's networks
- Get Network Verse Score: Player's network rep
- Qualifies For Network Bonuses: Check threshold
- Record Feat With Network Effects: Auto spillover
Create these Blueprints first:
- Network Manager (registers all networks)
- Network Info Widget (displays rep)
- Network Benefits UI (shows bonuses)
- Quest Generator (network quests)
All examples are copy-paste ready and require no C++ knowledge!