How to set up a Romance/Dating Sim system using Blueprints

I want to have Romanceable Characters in my game but have no idea where to even find how to set that up in Blueprints.

Ideally I’d at least be able to:

  1. Give Characters an Affection Level
  2. Make it so certain dialogue options/story choices/activities (Giving gifts, going out on dates/spending time together) can increase or decrease that affection level
  3. Have a way to track that character’s affection level throughout the game

Any advice or points in the right direction would be greatly appreciated!

Hey there @channingellison! Welcome to the community!

Here’s a tutorial series that makes a Dating Sim from scratch:

Disclaimer: One or more of these links are unaffiliated with Epic Games. Epic Games is not liable for anything that may occur outside of this Unreal Engine domain. Please exercise your best judgment when following links outside of the forums.

1 Like

In my opinion, you should start by learning basic programming principles. Even if you stick to a blueprint-only solution, the same principles apply. Tracking affection levels will be one of the most trivial problems for you to tackle:

  1. Assign an affection level to each character as a variable
  2. Create struct(s) that hold affection modifiers; you may need more than one type of struct to represent activities, choices, etc if they need to hold different types of metadata
  3. Add a ModifyAffection function to the class for your characters
  4. You can chain function calls together to handle different types of scenarios: i.e. ReceiveGift(GiftStruct) >> if you need to do anything with the metadata, you can do so here >> ModifyAffection(GiftStruct.AffectionModifier)

As I said, this will be one of the easiest hurdles to overcome. You’ll likely have a much tougher time puzzling out things like scene management, branching story paths, dialog trees, etc.