✦ Mechanics deep dive · two meters · every flag ✦

Choices, Approval and Ian's Affection

There is no meter on screen, no percentage and no relationship bar. Two hidden counters decide the whole second half of Helping Your Boyfriend, and a small pile of quiet flags decides the rest. This is the reference for all of it: what each counter measures, the exact thresholds that read them, every flag the script keeps, and three ways to play the game on purpose.

  • Full spoilers
  • Two hidden meters
  • Every flag explained
  • Three proven routes
The old teddy bear Adrian brings home, with heavy black stitching, X-shaped eyes and a torn seam down its belly
The first doll on the table, waiting to be taken apart. Naming the green dinosaur is the first choice of the game, and one of the few that changes nothing at all.

Most visual novels that hide a relationship score hide it so you can grind it. This one hides it so you can be misled by it. Every dialogue option in Helping Your Boyfriend adds to or subtracts from a counter, and the counters are never surfaced, never named on screen, and never explained by Adrian or Ian themselves. Worse, they are not symmetrical: one of them gates an entire route, the other gates a single branch. Once you know which is which, a first playthrough that felt arbitrary turns into something you can steer.

The short version

  • Adrian's counter is a compliance value, not a love meter. Warm answers are worth up to +2, cold or resistant answers down to -2.
  • adrianRelation > -3 sends the Searching scene to #NoSearch. Being agreeable to Adrian is what closes that door.
  • ianRelation > 14 opens IanRoute1. ianRelation >= 40 opens IanRoute2, the route to Ending 04.
  • toldAddress is the switch that turns the escape into Outside2. Without it you get Outside1 and Ending 02.
  • spatPill is the smallest flag in the game and the one with the largest consequence.

The two hidden meters

The protagonist's bedroom on Day 1: a pale blue room with a pink door, shelves of small toys, a dressing table and a wheelchair by the bed
YOUR ROOM, DAY 1Your room on Day 1. The window is the one thing in this house you cannot open, and this is also the room where the pill scene happens.

There are exactly two counters doing this work, and they live under two different names. The first is adrianRelation, described in the script data as Adrian's approval and affection. The second is ianRelation, described simply as Ian's affection. Both move on dialogue choices, and both use the same scale: values are positive for warm answers, up to +2, and negative for cold or resistant answers, down to -2. There is no third meter, no hidden trust score for Oliver, and no counter for how well you have dismantled the dolls.

What the counters buy is completely different, and that is the whole trick. Adrian's counter is what decides whether Adrian hands over the medication in good spirits. That sounds like flavour until you notice how few places the script actually reads it. Ian's counter is the one that gates scenes: at ianRelation > 14 the game opens IanRoute1, with its own #FreeTime and #FlowerShop branches, and at ianRelation >= 40 it opens IanRoute2, the second half of his route and the road to Ending 04. Those thresholds are hard walls. Below them, the scenes simply do not exist.

Adrian Winchester in his white doctor's coat surrounded by pink hearts and three smiling girls, in the game's opening illustration
ADRIAN, INTRODUCEDAdrian as the story introduces him: blonde, red-eyed, always smiling. The smile on this page is the same smile you meet later, and the same approval counter is running behind every line of it.

Neither counter reads the other, and there is no combined check anywhere in the script data. That is worth pausing on, because it kills a very common assumption. You cannot balance a route by being nicely agreeable to Adrian while charming Ian in the same scene; there is no line where the game adds them together and rewards you. Each counter is read at its own moments, against its own thresholds, and the rest of the time it is only shaping tone.

Practically, that means every choice should be asked of in one question: which threshold is this answer feeding? If it is Ian, you are building route access and should treat the answer as an investment. If it is Adrian, ask whether you want him compliant with you or suspicious of you, and know that only a very small number of his thresholds care about the difference.

The thresholds that matter

Three numeric conditions decide the shape of the ending, and three boolean flags decide which branch you are standing on when those conditions are checked. None of them are visible in play. All of them are in the table below.

Condition Where it is read What it changes
adrianRelation > -3 StoryGame/Searching Routes to #NoSearch, which blocks the searching branch. Low approval is what keeps the search alive.
ianRelation > 14 IanRoute1 Unlocks Ian's route, including its #FreeTime and #FlowerShop branches.
ianRelation >= 40 IanRoute2 Unlocks the route to Ending 04, Moving Forward. Below 40 the same escape ends in Ending 03, The Empty Cage.
toldAddress LockingDoor2 Routes the escape to Outside2. Without it you land in Outside1, which is Ending 02.
useKnife Day3_Act2 Routes to Attack1. Without it, the scene goes to ICanFixHim.
spatPill Day2Evening Changes the scene. Leave it unset and the scene runs to Midnight2 and then Day3_ED1, the road to Ending 01.

Greater than and greater-or-equal are not interchangeable here, and the difference can cost you an ending. ianRelation of exactly 14 does not open IanRoute1; the check is strictly greater, so you need 15. Exactly 40 does open IanRoute2, because that check is greater-or-equal. The same distinction applies to Adrian's value: -3 is safe for you, because the blocked branch requires a value above -3, so -2 already closes it.

Notice what is missing from this table. There is no threshold that reads adrianRelation to decide whether Adrian loves you, and none that reads ianRelation to decide whether Ian is trustworthy. The script never asks those questions. It asks narrower ones: will Adrian let you search, will Ian show you his route, and do you have the address.

Compliance, not love

The line you will hear in every discussion of this game is that agreeing with Adrian leads you to the wrong ending. That is right about the outcome and misleading about the mechanism, and the difference matters because players who take the shorthand at face value end up cold on purpose for a whole playthrough and then cannot work out why nothing changed.

The precise truth is that adrianRelation behaves like a compliance meter. It does not measure whether Adrian is fond of you. It measures how much your answers let him keep you where he wants you. The script reads it in two places that matter: the Searching scene, where a value above -3 closes the search, and the medication handoff, where the value decides whether Adrian hands the medication over in good spirits. Everywhere else, the number mostly moves the temperature of the room.

The shorthand

Keep Adrian's affection low. Be cold, be resistant, never agree with him. Warm answers are the trap, and high approval is how you end up in the worst place.

The precise version

Only one threshold in the whole game reads Adrian's value for a route. The rest of the time the number is flavour, and being cold everywhere costs you scenes and mood without buying a different ending.

So the shorthand is right in its conclusion and lazy in its reasoning. Being agreeable to Adrian is what closes the door to searching, and searching is what finds the key, the phone and the room behind the locked door. But the meter is not a love meter that unlocks a reward for patience. It is a permission counter, and permission is only ever granted at the point of the request.

The second place Adrian's value is read is the medication itself: the counter is what decides whether Adrian hands the medication over in good spirits. That is worth dwelling on, because it means the compliant ending is not built out of cruelty. You are not making Adrian dislike you. You are making him comfortable enough to keep handing you things, and the horror of Ending 01 is that it works exactly as smoothly as he expects it to.

Two practical consequences follow. First, the moment you understand that the compliance reading is local, you can be warm with Adrian in the scenes where warmth costs you nothing, which in practice means the doll disassembly and the early dialogue, without ever letting approval drift high enough to close the search. Second, you stop treating Ian's counter as a consolation prize for being miserable. ianRelation is the counter that opens scenes, and it is worth far more attention than Adrian's.

Every flag, explained

Fourteen flags do real work in the branching, a handful more record smaller conversations, and one is metadata. Here they are, grouped by what they are for rather than by the order the game asks about them.

One thing to understand before the list: flags are written once and read much later. spatPill is set in the midnight scene and read in Day2Evening. sawParcel is set during the exploring sequence and the thing you saw on that parcel is needed a day later. hasKey is a pickup in the dark, and the escape sequence checks it much later. That gap between setting a flag and reading it is where most players lose track of what they have actually done.

Story-state flags

These record what you did on the timeline rather than how anyone feels about you.

  • tookPill — You swallowed Ian's pill on the first night, at the midnight scene with the hand over your mouth. It is the positive twin of spatPill, and it marks a choice that looked passive in the moment.
  • wentOutside — You left the house at least once. Day2Evening reads it: if it is false, Adrian's bedtime scene branches to #Trusting instead of running on.
  • sawParcel — You found the parcel Adrian brought home. This is the flag that matters most, because the address on that parcel is the address you eventually give Ian, and toldAddress cannot be set without it.
  • spatPill — You spat the pill out. It is checked in Day2Evening and it is the flag that decides which half of the story you are in. It gets its own section below.
  • madeup — You made up an excuse about where you were. A small lie, recorded so the script can acknowledge it later.

Relationship flags

These four record the questions you put to Ian in the free-talk scenes, where his affection is won or lost. The flags name the question; the affection counter moves with your answer to it.

  • ftHereAsked — You asked whether Ian is here.
  • ftKnowAsked — You asked Ian whether he knows something.
  • ftAgeAsked — You asked Ian his age. A strange question to ask a stranger who has just pinned you down, which is exactly why it is worth asking.
  • ftEscapeAsked — You asked Ian about escaping. It is the most direct of the four, and the one most likely to change how he reads you.

Escape flags

These exist only if you are trying to get out of the house. Each one is a step in a chain, and the chain breaks at the first link you skip.

  • hasKey — You are holding the key to the locked room. It also opens the #KeyStub branch of the basement sequence.
  • hasScalpel — You picked up the scalpel. It is the object that makes the act two decision possible.
  • secretRoomVisited — You have been inside the secret room behind the locked door. The escape sequence uses it to decide whether you already know what is down there.
  • toldAddress — You gave Ian the address of the safe place. This is the flag the escape door opens on: LockingDoor2 routes to Outside2 when it is set and to Outside1 when it is not.
  • clickedLivingDoor — You tried the living room door on the run. In LockingDoor2 it is the first check, and it sends you to #Exit.
  • useKnife — You used the knife. Day3_Act2 routes to Attack1 when this is true, and to ICanFixHim when it is false.

Phone flags

All four branch off the single phone screen in PhoneOutside1, after the escape. It is one minigame and four possible records of how you handled it.

  • phoneTried — You tried to dial a number on the phone.
  • phoneCorrect — You dialled the correct number. Two digits of it are written in ink on your arm and they fade, so remember them. This is the flag that gets Oliver Freeman on the line.
  • phoneLeave — You left the phone without calling. The option to walk away is a real option, and the game records it.
  • oliverCallDropped — You dropped Oliver's call. The worst outcome of the four, and the one that leaves you without the one ally who was on his way.

One more flag exists for anyone curious: g_clearedOnce is set after any ending is reached, and marks that you have cleared the game once. It never routes anything. It is the game's way of knowing.

The flags that only exist for the escape route

Six flags have no meaning at all unless you are leaving the house: hasKey, secretRoomVisited, toldAddress, phoneCorrect, hasScalpel and useKnife. They form a chain, and the order is not flexible.

The secret room, lit by a single red lamp: a desk with a typewriter, shelves of equipment, papers pinned on the wall and a chair in the foreground
THE SECRET ROOMThe room behind the locked door, where Adrian works after dark. You only get here if the Searching scene stays open, and the phone you need is in here.

First, hasKey. Without the key to the locked room there is no secret room, and without secretRoomVisited there is no phone. Second, secretRoomVisited. Once you have been inside, the escape sequence in LockingDoor2 knows it, and it checks the flag in order: clickedLivingDoor sends you to #Exit, hasKey sends you to #KeyDoor, and only then does secretRoomVisited decide whether you go to #KeyDoorOpen or on to PhoneOutside1.

Third, phoneCorrect. The phone screen is a minigame: dial the right number and Oliver Freeman answers. He has been parked in the alley by Adrian's house, patrolling day and night because he suspected Adrian, and when Ian raises a syringe in the rain Oliver is the one who stops it, having climbed over the fence just in time. Fourth, toldAddress. The address is 742 Silverwood Creek Lane, Silverwood Springs, CA 95401, written on the parcel Adrian brings home. Give it to Ian and LockingDoor2 routes to Outside2, where ianRelation decides between Ending 04 and Ending 03. Withhold it and you get Outside1: Ian walks you into the rain, tells you there is nowhere else that is safe except that house, calls you a fool, and you go back inside with him. That is Ending 02, The cage.

Fifth and sixth, hasScalpel and useKnife. These belong to the act two decision. Pick up the scalpel, use the knife, and Day3_Act2 routes to Attack1, which runs through Attack2 into FinishHim. Do not, and the scene goes to ICanFixHim instead, and from there to Attack4 and the escape sequence.

Ian crouched in the pouring rain outside the house, hugging his knees, with the lit gate and driveway behind him
IAN IN THE RAINIan in the rain, outside the house. He came back to the one house that was never safe for him, which is the whole reason his affection is worth tracking.

None of these six flags is required by a dialogue choice alone, and that is the part people miss. hasKey and hasScalpel are pickups. secretRoomVisited is a place. phoneCorrect is a minigame. toldAddress is a sentence. useKnife is a decision at the worst possible moment. Five separate small acts, and the game treats the chain as one unit. Skip the middle link and the whole chain quietly collapses back into a story about staying inside.

Three ways to play it

These three routes are built from the same script, so you can compare them directly. The first two are short, the third is the longest to set up.

Playstyle A

The compliant route, all the way to Ending 01

TARGET: ENDING 01 · MY BOYFRIEND IS THE BEST

Favour warm and submissive answers for Adrian, and let adrianRelation sit high. Accept the medication he hands over, and do not set spatPill. Keep wentOutside false, which is what keeps Day2Evening branching to #Trusting rather than running on into Midnight2 and Day3_ED1. The ending is a newspaper clipping about Adrian's Outstanding Physician award, the note that the brilliant 30-year-old is still a bachelor, and his refusal to answer questions about his personal life. The surface stays perfectly pleasant. The horror is that the story ends before the horror does.

Playstyle B

The defiant route, and the cage you walk back into

TARGET: ENDING 02 · THE CAGE

Favour cold and resistant answers so that adrianRelation stays low enough for the Searching scene to stay open. Take the key, open the locked room, find the phone and dial Oliver correctly, and get out of the house. Then withhold the address. Leaving toldAddress unset sends LockingDoor2 to Outside1 and Ending 02, where Ian tells you there is nowhere else that is safe except that house, exactly as Adrian told you, and you end up going back in with him. It is the escape that returns you to the cage.

Playstyle C

The Ian route to Ending 04

TARGET: ENDING 04 · MOVING FORWARD

Work on ianRelation first. Ask Ian the four questions that set ftHereAsked, ftKnowAsked, ftAgeAsked and ftEscapeAsked, and answer him warmly so the counter climbs. Above 14, IanRoute1 opens with its #FreeTime and #FlowerShop branches. Keep going to 40 or higher and IanRoute2 opens, which leads to Police2 and Ending 04. Then run the escape chain: hasKey, secretRoomVisited, phoneCorrect, and toldAddress so Outside2 receives you instead of Outside1. Three months later you are in a hospital room, Ian is in a psychiatric hospital and calls you from a mobile phone when the doctors allow it, and he is an even better speaker on the phone than face to face. It is the only ending where somebody is still talking to you.

The inside of a car at night, seen through the rearview mirror with the protagonist and Ian reflected in it
THE DRIVE AWAYBoth escape endings run through the back of Oliver's car. What the rearview mirror shows you is the only thing that differs between them: who is still willing to talk to you.

The three routes share the same three days, so the fastest way to see them all is to change one variable per run: warmth for Adrian in run one, the address in run two, and Ian's affection in run three. Keep a note of the address and the two arm digits between runs and you will never lose them again.

The one-flag trap

Here is the choice that has cost more players their intended ending than anything else in the game, and it is not a dialogue option. It is one button in a four-way timing minigame, and it happens in the dark.

The protagonist's bedroom at night, washed in cold blue moonlight through the window with the shadow of a figure on the bed
THE SAME ROOMMidnight. The room is the same room. The light is completely different, and so is everything the game is willing to ask you in it.
The bedroom at night with Ian leaning over the bed, one hand pinning the protagonist down and a pill held in front of their face
MIDNIGHTTake this, or you die. The pill scene offers four labelled outcomes — OpenEyes, Take, Refuse and Vanish — and one of them is the flag that decides your route.

At Midnight1 a weight settles on you in the dark, a man's shadow falls over the bed, a hand clamps over your mouth and a pill is held in front of your face. It is a timed decision under the weight of a body, and both mouse and keyboard matter: a brief press reads, a held press confirms. The four outcomes are labelled #OpenEyes, #Take, #Refuse and #Vanish, and two of them leave a permanent record. Taking the pill sets tookPill. Spitting it out sets spatPill.

Where the flag actually bites

spatPill is checked in Day2Evening, hours later, and that is the point. Set it and the scene changes. Leave it unset and Day2Evening runs on to Midnight2 and then Day3_ED1, which is the road to Ending 01. A single reflex in a minigame decides which half of the story you are in, and you will not be warned.

So the trap is not that spitting the pill is wrong. The trap is that people assume resistance is a character trait and stay passive in a timed press, then arrive at Day2Evening with no idea that a flag set in the dark has already chosen for them. If you want the second half of the game, spatPill has to be set, and it has to be set deliberately. And when you do set it, Midnight2 comes back around, the pill scene is revisited, and the story turns.

Frequently asked questions

What are the two hidden meters in Helping Your Boyfriend?

They are adrianRelation, which tracks Adrian's approval and affection, and ianRelation, which tracks Ian's affection. Every dialogue choice adds to one of them or subtracts from it, with warm answers worth up to plus two and cold or resistant answers down to minus two.

Should I keep Adrian's affection low?

Lowering it is what opens the escape route, because the script blocks the searching branch once adrianRelation rises above minus three. But it is a compliance value rather than a love meter, so cold answers only pay off in the specific places where the script reads it.

What does adrianRelation greater than minus three do?

In the Searching scene the check is adrianRelation greater than minus three, and when it is true the scene routes to NoSearch, which blocks the searching branch. The house only gets searched while your approval of Adrian stays low.

How do I reach Ending 04, Moving Forward?

You need ianRelation at 40 or higher so that Outside2 routes into IanRoute2, and you need toldAddress set so that the escape sequence reaches Outside2 rather than Outside1. IanRoute2 leads to Police2 and Ending 04.

What is the difference between Ending 03 and Ending 04?

Both are reached from Outside2, and both need toldAddress. The split is Ian's affection: at 40 or higher, Outside2 routes to IanRoute2 and Ending 04. Below 40 it routes to Police1 and Ending 03, The Empty Cage.

What does spatPill actually change?

It changes the Day2Evening scene. Leave spatPill unset and that scene runs on to Midnight2 and then Day3_ED1, which is the road to Ending 01. Set it and the night branches away from the default line instead.

Which flags do I need for the escape route?

hasKey so you can open the locked door, secretRoomVisited so the escape sequence finds the phone, phoneCorrect so Oliver Freeman answers, and toldAddress so the escape ends at Outside2 instead of Outside1. hasScalpel and useKnife belong to the attack side of act two.

How do I make Ian trust me?

Warm answers to Ian move ianRelation in the same way warm answers move Adrian's value. The questions you ask him are recorded separately as ftHereAsked, ftKnowAsked, ftAgeAsked and ftEscapeAsked. Ian's route opens at ianRelation greater than 14 and his second half opens at 40 or higher.

Does the game mark any ending as the good one?

No. There is no official good or bad ending classification. The four endings split along how much you trust Adrian, how much you trust Ian, and whether you ever get out of the house.

Every flag, threshold and variable on this page was read straight out of the game's own script data. If something here disagrees with what you remember seeing, the script is right.

Browse all six guides