The script that works is small: this thing happened, it landed like this, here's what I'd want instead. One incident, not a highlight reel. One named feeling, not a diagnosis of their character. You're not filing charges — you're handing a friend the information they need to keep being your friend.
Before you say anything
Say it soon — days, not months — because hurt that sits around doesn't stay still; it ferments into distance, sarcasm, and the kind of "fine" that fools absolutely nobody who knows you. Say it in private: no group dinners, no audiences, no cc'ing the group chat — a friend who feels watched will defend; a friend who feels safe might actually hear you. And say it when you're at about a four out of ten, not a nine — you want enough heat to be honest and enough calm to be hearable. The goal going in is repair, not a verdict. Conflict handled directly is one of the documented ways friendships get stronger, not weaker; it's the unspoken version that quietly ends them. Friendships rarely die from one fight — they die from accumulated unsaid things, each one small enough to swallow at the time.
One more pre-flight check: know your ask before you start. "I want an apology," "I want this to not happen again," and "I just want you to know" are three different conversations, and if you don't know which one you're having, your friend definitely won't. Most fizzled confrontations fail right here — the hurt got expressed, but nothing got requested.
The scripts
The opener, when you don't know how to start:
"Hey — can I talk to you about something that's been sitting with me? It's not some huge dramatic thing, but I don't want it to become one because I ignored it."
Why it works: it sizes the conversation honestly, which lowers their guard before the content even arrives.
The core script, for a specific incident:
"When you canceled on my birthday dinner an hour before, I felt like an optional plan. I know things come up — it's more that it's the third time. I'd rather get a real no upfront than a yes that evaporates."
Why it works: incident, feeling, ask — in that order, with the pattern named once instead of prosecuted.
Over text, when in person keeps not happening:
"Saying this over text because I keep chickening out in person: the comment about my job at brunch stung. I know you meant it as a joke — it didn't land like one. Not looking for a big apology tour. I just want you to know, instead of me being weird and distant about it."
Why it works: it confesses its own medium, gives them an out on intent, and asks for almost nothing — which makes it easy to take well.
When it's a pattern, not a one-off:
"I've noticed that when I share good news, the subject changes fast — and I've caught myself not telling you things anymore. I hate that. I'm telling you because I want to be able to share my life with you, not to put you on trial."
Why it works: "I've started not telling you things" shows the cost to the friendship, which is more persuasive than any accusation.
When they embarrassed you in front of people:
"I didn't say anything at dinner because I didn't want to make it a scene, but that story about me wasn't yours to tell. I need to know that what I tell you privately stays private. Can you do that?"
Why it works: it explains the delay, names the boundary, and ends on a yes-or-no question they have to actually answer.
What NOT to say
The alternatives to saying it straight all promise less conflict and all deliver more — just later, with interest. Here's what they look like in the wild.
- "It's fine." Followed by three weeks of one-word replies. That's not peace, it's passive aggression on layaway — and they'll feel the cold without knowing the cause.
- The sarcastic jab. "Oh wow, you actually showed up this time" delivers the grievance with deniability, which means it can be laughed off and nothing changes.
- The ambush with an audience. Raising it at the group hangout recruits witnesses, and people defend themselves in front of witnesses instead of hearing you.
- "You ALWAYS do this." Always converts one fixable incident into a character verdict, and character verdicts get appealed, not apologized for.
If they respond badly
A wobbly first reaction isn't the verdict — most people need a beat to get past the sting of hearing they hurt someone. Judge the second response, not the first.
If you get the non-apology — "I'm sorry you feel that way":
"That's an apology for my feelings, not for the thing. I'm not asking you to grovel — I'm asking you to get why it landed badly. Can we try that part again?"
Why it works: it names the dodge in one sentence and immediately offers a way back, so calling it out doesn't end the conversation.
If they counter-attack with your own offenses:
"If I've hurt you, I genuinely want to hear about it — separately, and I'll take it seriously. But this conversation is about the birthday thing, and if we trade charges, neither of us gets heard."
Why it works: it accepts their grievance as real without letting it function as a shield against yours.
A friend who can hear "you hurt me" and stay in the room is a friend worth the awkward ten minutes. A friend who punishes you every time you're honest is answering a bigger question than the one you asked. And once it's repaired, let it be repaired — no anniversary citations, no saving it as ammunition for the next disagreement. The point of saying it out loud was to put it down.