Frequently Asked Questions
How do relationships resolve when there's a faction and an entity override?
The resolver uses a hierarchical lookup: Entity Override (scoped) → Entity Override (default) → Faction (scoped) → Faction (default) → Parent Faction (×inheritanceRate) → None. The first match wins.
Can the same entity pair have multiple relationships?
Yes! With Multi-Dimensional Relationships, you scope relationships to different RelationshipDefinitions. Player↔Merchant can have separate 'Trade Reputation' and 'Personal Trust' dimensions.
What's the difference between symmetric and asymmetric?
Symmetric (default): A↔B is one value. Asymmetric (isSymmetric=false on definition): A→B and B→A are independent — the player can trust a companion, but the companion may distrust the player.
How do I persist relationships?
Add the RelationshipRemember component to the same GameObject as your RelationshipManager. It integrates with GC2's Remember system to automatically save and load all relationship data, including modifiers, caps, runtime factions, and diplomacy states.
What are Stable Entity IDs?
The system uses deterministic IDs that survive play sessions. Set IDs to 'Manual' for scene entities or 'AssetBased' for prefab spawns to ensure save/load reliability.
How do temporary modifiers work?
Modifiers alter relationship change deltas. They can be Flat (+10), Percentage (×1.5), or Override. They support duration-based expiry, target filtering (entity/faction/definition), and GainOnly/LossOnly modes.
Can relationships work in multiplayer?
The current version is designed for single-player. Multiplayer support would require network synchronization which is not included.
How does dynamic inheritance differ from static?
Static (dynamicInheritance=false): Parent values are only used when a child relationship is first created. Dynamic (true): Parent values are scaled by inheritanceRate on every lookup — child relationships reflect parent changes in real-time.
What are Runtime Factions?
Unlike Faction ScriptableObjects (edit-time), RuntimeFactions are created during gameplay for player guilds, dynamic alliances, etc. They integrate fully with the hierarchy, resolver, and save/load systems.
Changelog
Current Version: 1.1.0
Version 1.1.0
Release Date: February 2026
Cap System Improvements
- Directional Clamping — Caps now use directional clamping - only prevents crossing boundaries, doesn't force values into range
- Cap Registrar Component — Visual component for registering caps without code via Inspector
- Entity/Faction ID Fallback — Cap lookup now checks both Entity IDs and Faction IDs with automatic fallback
UI System Enhancements
- Definition-Scoped Views — Views can filter by RelationshipDefinition for multi-dimensional relationships
- Performance Optimizations — GameObject, Entity ID, and Faction caching in RelationshipViewBase
- Frame-Batched Notifications — Multiple rapid changes batched into single notification
New GC2 Components
- Cap Instructions — InstructionSetCap, InstructionRemoveCap for visual scripting
- Cap Conditions — ConditionCapAtMax, ConditionCapAtMin, ConditionHasCap
- UI Instructions — InstructionRefreshRelationshipView for manual UI refresh
Version 1.0.0
Release Date: January 2026
Core System
- Hierarchical Relationship Resolution — Entity Override → Faction → Inherited lookup chain
- Multi-Dimensional Relationships — Definition-scoped relationships for Trust, Respect, Fear, etc.
- Asymmetric/Directional Relationships — A→B can differ from B→A for opinions vs mutual trust
- Faction Inheritance — Configurable inheritance rate (0-100%) from parent factions
Advanced Features
- Temporary Modifiers — Flat/Percentage/Override with duration, filtering, and GainOnly/LossOnly
- Relationship History — Circular buffer audit log with timestamps, deltas, and source labels
- Reputation Caps — Min/max value gates with OnCapReached events
- Diplomacy State Machine — War, Peace, Alliance, Ceasefire, Embargo with threshold-based transitions
- Advanced Decay Curves — Linear, AnimationCurve, and Asymmetric decay modes
- Runtime Factions — Dynamic creation, hierarchy integration, full save/load support
- GC2 Visual Scripting — ~45 Instructions, Conditions, and Events for all features
UI System
- Production-Ready UI Prefabs — Ready-to-use prefabs for common relationship display patterns
- RelationshipBar — value display with level indicators
- FactionCard — faction info with member list and hierarchy
- NotificationToast — relationship change notifications
Version 0.9.0
Release Date: January 2026
- RelationshipManager core system
- CharacterRelationship component
- RelationshipDefinition ScriptableObject
- Faction system with hierarchies
- GC2 Instructions, Conditions, and Events
- Scene Instructions system
- Editor Window with analytics
- UI System with base classes
- Remember component for persistence
- Auto-Hostility component