Love/Hate

Love/Hate is a relationship and personality simulator for Unity. It models characters’ feelings about each other using emotional states and value-based judgment of deeds, including gameplay actions done by the player.


>> Demo | Manual | Tutorials | Free Trial


Works with Unity 6+ and all Unity versions 2019+ including 2019, 2020, 2021, 2022, and Unity 6+.


With Love/Hate, your characters will…


have personalities and emotional states.

Love/Hate uses powerful, customizable personality and emotional state models.


…maintain relationships.

Love/Hate tracks how different characters and groups (factions) feel about each other, allowing you to define a dynamic web of social ties among your characters.


…judge and remember deeds.

Characters witness deeds committed by others, judge them according to their own personality and relationships, and remember them.


…and gossip with other characters.

Characters share memories realistically, allowing news of actions to spread organically.


Love/Hate lets you create complex characters that react emotionally to what’s actually happening in the game. No scripting required.


Love/Hate is the product of several years of research and development in realtime simulation of emotions and value-based appraisal, incorporating the latest academic and industry strategies.


It works great in 3D, 2D, AR, and VR, and includes complete, fully documented source code as well as support for:


  • Blink's RPG Builder
  • Hutong Games’ PlayMaker
  • Ludiq's Bolt
  • Opsive's Behavior Designer
  • Opsive Character Controllers
  • Eliot AI
  • Catsoft's Game Creator 2 (via Arawn's integration asset)
  • Catsoft's Game Creator 1
  • ICE Creature Control
  • Icebox Studio's Adventure Creator
  • Black Horizon's Emerald AI (including Emerald 2024)
  • Pixel Crushers’ Dialogue System for Unity
  • Pixel Crushers’ Quest Machine
  • Gaming is Love's Makinom
  • Gaming is Love's ORK Framework
  • PLYoung's plyGame and plyBlox
  • Paradox Notion's Node Canvas
  • CallumP's TradeSys
  • UtopiaWorx Zone Controller & Zone Controller Pro

No generative AI was involved in the creation of Love/Hate.


Also looking at the Dialogue System for Unity and Quest Machine?

Check out the Narrative Bundle containing all 3.

Release Notes

Version 1.10.69:

- Improved: Updated for API changes in Unity 6.4 - 6.6.



Version 1.10.68:

- Improved: Made CSVUtility class available to runtime code.



Version 1.10.67:

- Changed: Assigning a value to StringField.text clears StringField.stringAsset and StringField.textTable, and vice versa.

- UniText: Added integration. (unity.lightside.media/unitext)



Version 1.10.65:

- Added: Option in Text Table editor > Import > Fields From Localize UI to automatically add Localize UI components to scene first.

- Added: Option to [ShowIf] attribute to specify to show field if bool value is false.

- Fixed: PositionSaver wasn't reapplying position in additively-loaded scenes when Save Across Scene Changes was ticked.



Version 1.10.64:

- Improved: Updated asmdefs for fewer steps to setup Dialogue System or Quest Machine integrations if desired.

- Fixed: Input Action Registry enables assigned actions on start if they're not already enabled.



Version 1.10.63:

- Improved: Added Skip Save When Changing Scenes option to savers.

- Fixed: InputDeviceManager now handles Input System package device changes when time is paused.



Version 1.10.62:

- Changed: GameObjectUtility.GetComponentAnywhere() is now an extension method for GameObject & Component.

- Added: Extension method GetComponentInChildrenOrParent().

- Improved: Added [ShowIf("bool")] attribute.



Version 1.10.61:

- Save System: Added Order field to saver components.



Version 1.10.60:

- Fixed: Input device check no longer reports (harmless) error if you move Love/Hate out of Plugins.

- Updated link to forum in README.txt.



Version 1.10.59:

- Improved: Updated to handle Unity 6.3 API changes.

- Dialogue System: Updated integration for Unity 6.x API changes.



Version 1.10.58:

- Improved: Added InputDeviceManager.IsKeyUp, IsKeyPressed, IsButtonPressed.

- Emerald AI 2024: Fixed EmeraldAISaver to now correctly save current/max health.

- Rewired: Updated to support InputDeviceManager.IsKeyUp, IsKeyPressed, IsButtonPressed.



Version 1.10.57:

- Fixed: Added missing assembly definition reference to LoveHateAssemblyDefinitions.unitypackage.



Version 1.10.56:

- Improved: When using Input System and switching to an unrecognized device type, InputDeviceManager only reports unknown device type once per run.

- Fixed: Deed template library inspector error message.

- Fixed: If Pixel Crushers Common folder was moved, no longer logs error message when checking input definitions.



Version 1.10.55:

- CHANGED: TriggerEvent & CollisionEvent only invoke events if enabled.

- Improved: When using Input System, InputDeviceManager now checks InputSystem.onEvent for device changes instead of polling in Update.



Version 1.10.54:

- Improved: Installation now automatically adds TMP_PRESENT symbol in Unity 6.0+, not just 6.1+.

- Improved: Disambiguates use of UnityEditor.Editor to work around bug in Unity AI Toolkit prerelease.



Version 1.10.53:

- Adventure Creator: Moved custom action scripts into integration's Third Party Support folder.

- Visual Scripting: Updated integration.



Version 1.10.52:

- Fixed: Issue where creating a StringAsset in a StringField could log a harmless error message in the editor.

- Save System: Handles savers that destroy themselves in BeforeSceneChange().



Version 1.10.51:

- Improved: Added InputDeviceRegistry component for easier Input System support.

- Improved: When using Input System package, InputDeviceManager no longer allocates any memory each frame.

- Improved: KeepRectTransformOnscreen does a better job of keeping entire RectTransform onscreen.

- Fixed: If using Input System package, UIButtonKeyTrigger component doesn't disable input action by default.

- Fixed: Memory leak in FactionManager.ResetAll().

- Fixed: SaveSystem.ResetGameState/RestartGame() tells FactionManagerSaver to reset data.

- Fixed: Saving data when switching text tables.



Version 1.10.50:

- Improved: Added exceptions list to DeselectPreviousOnPointerEnter.

- Improved: When using Input System package, can assign input action references to UIButtonKeyTrigger component.



Version 1.10.49:

- Updated for Unity 6 LTS.



Version 1.10.48.1:

- Fixed: Deserialization (saved game restoration) of factions that were created at runtime and saved.

- Fixed: PersistentFactionMember error if component was used before Awake() ran.

- Fixed: AnimatorSaver no longer saves trigger parameters multiple times on subsequent saves.

- Improved: Added Activate On Enable checkbox to TimedEvent.



Version 1.10.48:

- Updated asmdefs with references to Addressables, Cinemachine, Input System, TextMesh Pro, and Timeline in case those packages are installed.

- Dialogue System: PersistentFactionMember uses persistent data name now instead of (malleable) Display Name.

- Super Text Mesh: LocalizeUI now works with Super Text Mesh.



Version 1.10.47:

- Improved: Deed Reaction Events no longer requires an Animator component; exposed public properties for private variables.

- Save System: Added Loading Screen Progress Bar component.



Version 1.10.46:

- Updated for Unity 6.

- Improved: Added InputDeviceManager.cursorLockMode if you want to change default cursor lock mode from Locked to Confined.

- Fixed: SaveSystem.saveDataApplied is now still invoked even if scene has no savers.

- Emerald AI 2024: Backported code for compatibility with Unity versions older than 2022.2.5.

- Input System: Monitors InputSystem.onDeviceChange. No need to configure Joystick/Keyboard inputs To Watch.

- RPG Builder: Fixed bug that caused the wrong RPG Builder faction to be updated.



Version 1.10.45:

- Emerald AI 2024: Added support.



Version 1.10.44:

- Dialogue System: Fixed Lua registration issue when domain reloading is disabled.

- Save System: Spawned Object Manager can now restore saved data to respawned objects even when Frames To Wait is zero; restoring savers on respawned objects is now on by default.



Version 1.10.43:

- Fixed: FactionManager serialization/deserialization now supports runtime-added factions.

- Improved: Text Table Editor now has gear menu > Import > From Localize UI menu feature.

- Fixed: SetLocalizedFonts now listens for UILocalizationManager.languageChanged events.



Version 1.10.42:

- Added: FactionManager.ResetAll() and FactionMember.ResetAll().

- Improved: Can now export multiple text tables to CSV in one operation.

- Improved: Added UILocalizationManager.languageChanged event.

- Fixed: Corrected code comments mentioning trait alignment range [-1,+1]. Correct range is [0,+1].

- Localization Package: Added integration.

- Odin Inspector: Disabled drawing of HelpBoxes in custom inspectors until stack overflow bug in Odin is fixed.

- RPG Builder: Added integration.



Version 1.10.41:

- Updated common library code.

- Save System: Now supports loading scenes from Addressables.



Version 1.10.40.1:

- Fixed: UIUtility.Select() issue when using multiple EventSystems that didn't update the current EventSystem.



Version 1.10.40:

- CHANGED: If using Unity navmesh navigation, you *must* now enable integration by selecting Tools > Pixel Crushers > Common > Misc > Use NavMesh.

- Improved: UIs now support different EventSystems for local multiplayer games.



Older release notes are in the product's RELEASE_NOTES.txt file.

Basic Information
Latest Version
1.10.69 (09 Apr 2026)
Publisher
Pixel Crushers
Category
Tools/Behavior AI
Size
4.6 MB
Price
€32.2
Asset Rating
(82)
Extended Information
Unity Versions
2020.3.0, 6000.0.0
Render Pipelines
BIRP URP HDRP
State
Published