Actions

Work Header

Rating:
Archive Warning:
Category:
Fandom:
Relationship:
Characters:
Additional Tags:
Language:
English
Stats:
Published:
2025-04-10
Completed:
2025-04-10
Words:
4,074
Chapters:
5/5
Comments:
4
Kudos:
7
Hits:
64

Stars in Our Hands

Summary:

sapnap isnt nice to karl.
george comforts him.
sapnap gets jealous.
enjoy!

Notes:

(See the end of the work for notes.)

Chapter Text

Karl wasn’t the type to cry easily.
He laughed too loud, loved too much, and got excited over things like glitter glue and soup in thermoses. But when it came to himself—his feelings, his needs—he always dimmed himself down, like turning down the brightness on a screen so no one could see the cracks.

George noticed it before anyone else.
How Karl smiled just a little too big when Sapnap snapped at him during streams. How his voice would drop a few tones lower when no one was listening. And how tonight… he didn’t say anything at all.

Sapnap had been in a mood.
The kind of mood that made him sharp and fast with his words. His aim had always been good. But this time, the target had been Karl.

“You never take anything seriously,” Sapnap had muttered, biting and bitter. “It’s like dating a cartoon character.”

He didn’t even look at Karl when he said it. Just kept playing. Like it meant nothing.
Like Karl meant nothing.

Karl had laughed it off. Everyone else did too. But George had seen the way his hands trembled slightly, the way he muted his mic and didn’t come back for the rest of the stream.

So now it was past midnight. The house was mostly quiet, the glow of monitors dimmed.
And George found himself standing at Karl’s door, hoodie sleeves too long and heart way too full.

He knocked once, then cracked the door open.

“Karl…? You good?”

Karl didn’t turn. He was curled up, blanket up to his chin, staring at a wall like it had all the answers he didn’t.

“Yeah. No. I don’t know,” he mumbled.

George didn’t hesitate. He walked in, sat down at the edge of the bed, and stayed quiet for a second.

“I saw what Sapnap said earlier,” he said finally. “That wasn’t cool.”

Karl shrugged. The kind of shrug that screamed ‘I care way more than I want to admit.’

“He didn’t mean it,” Karl said softly. “He was just tired or annoyed or… something.”

“But he still said it.”

Karl blinked hard. George could tell he was trying not to cry again.

“I just… I try so hard, you know? To make things fun. To make him happy.”
His voice cracked. “And maybe I am annoying. Maybe I am too much.”

George got up.

“Wait here,” he said.

Karl blinked as he left, confused. But he didn’t move. Just sniffled and wiped at his face with his sleeves.

When George came back, he was holding a mismatched mug, steam rising from it. Inside was hot chocolate, warm and perfect, with exactly three marshmallows—just how Karl always made it.

George held it out with a soft smile.

“You’re not allowed to cry while drinking this. It’s the rule.”

Karl let out a watery laugh. Took the mug, cradled it like it was a lifeline.

“You didn’t have to do this.”

“I wanted to.”

The room fell quiet except for the soft sound of the TV George turned on—some dumb cooking show they both secretly loved. George stayed. He didn’t hover. Didn’t press. Just… existed with Karl.

Slowly, Karl leaned against his shoulder, hot chocolate balanced carefully in his hands.

“You know you’re not too much, right?” George said, his voice low.

Karl didn’t answer, but his head tilted, just a little closer to George’s.

“If someone makes you feel like this again… even if it’s him… I’m always gonna be here, okay?”

A beat. Then Karl nodded.

“Okay.”

George didn’t push for more. He didn’t have to.

They just stayed like that.
In the quiet, in the glow of fairy lights and TV flickers, wrapped in warmth and kindness and marshmallow-sweet peace.

And Karl didn’t let go of George’s hand the rest of the night.

Chapter 2: chapter 2

Chapter Text

The morning after didn’t come with sunlight.
It came with a quiet hum, pale grey light through the window, and the soft realization that George had fallen asleep with Karl’s head on his shoulder and their hands still tangled together.

Karl stirred first. Sleepy and slow, hair a mess, eyes still a little puffy.

“Did we… fall asleep?” he mumbled.

George rubbed his eyes. His shoulder was numb, but he didn’t care.

“Yeah. You drooled on me, by the way.”

Karl gasped. “No I didn’t.”

“You definitely did. I’m suing.”

Karl laughed—soft, but real. George would bottle that sound if he could.

And then Karl looked down at their hands.
Still intertwined. Still warm.

He didn’t pull away.

George swallowed.

There was something thick in his chest, like all the things he’d kept locked up were trying to crawl out.

Karl glanced at him. “What?”

George looked at him for a long second.
All the words were already there. He just had to choose to say them.

“Karl…”

“Mhm?”

“I meant it. What I said last night. About being here. Always.”

Karl blinked. “I know. And… thank you. You were the only one who noticed.”

George smiled, but it was tight. Nervous.

“There’s more.”

Karl tilted his head.

“I’ve always been here for you, but it’s not just because we’re friends. I mean, we are friends. Obviously.”
He rambled, voice picking up speed. “But I think I also care about you in this… kinda stupid, kinda heart-racing, kinda ‘please don’t like Sapnap more than me’ kind of way.”

Silence.

George froze.

“I—ugh—this is dumb. Forget I said that, I’m just tired and—”

But Karl cut him off. Not with words.

With his hand. Tightening around George’s.

And then, a soft whisper:
“Why do you think I only drool on you, idiot?”

George blinked. “Wait—”

“I like you too,” Karl said, cheeks pink. “A lot. I’ve just been too scared to mess everything up.”

George stared at him for a second. Then he laughed. Out of shock. Joy. Relief. All of it.

“I literally thought I was gonna throw up saying that,” he confessed.

Karl giggled. “You looked like you were about to.”

They sat there. Just smiling at each other like idiots in love. Like maybe the bad stuff—Sapnap’s words, the hurt, the doubts—wasn’t the ending. Maybe it was just the plot twist before the soft part.

George finally said, “So, like… do we hug now? Kiss? High-five?”

Karl snorted. “We start with pancakes.”

And they did.

George made the batter (burned the first one), Karl picked the toppings (strawberries and a ridiculous amount of syrup), and the morning turned golden.

Later, Sapnap would apologize.

Later, things would get messy and then okay again.

But right now? Right now, it was just them.
Karl and George. Laughter and pancakes.
And a confession made in the softest hour of the day.

Chapter 3: chapter 3

Chapter Text

The day after George and Karl’s quiet confession was supposed to be simple.
There was still the quiet buzz of morning, still the quiet comfort of being together.
But then came the knock on the door.

Sapnap.

He stood there, hands shoved in the pockets of his hoodie, posture tight. His eyes were heavy. Tired. But there was something else in his gaze—something like regret, mixed with bitterness.

Karl didn’t know how to feel.
George was there too, standing a little behind him, watching, waiting for the other shoe to drop.

“Can we talk?” Sapnap asked, his voice flat.

Karl nodded. He wasn’t sure what to expect. But it wasn’t this.

Sapnap stepped inside. There was a strange, strained silence as he stood there, hands still shoved deep into his pockets. George’s arms crossed instinctively, the tension in the air palpable.

Karl didn’t know what to say. He didn’t even know how to feel.

After everything that had happened between them—the teasing, the sharp words, the way Sapnap had tried to push him away like he wasn’t worth caring about—Karl didn’t know if he wanted to listen. But George had that look in his eyes—the look that said, You have to give him a chance.

“Okay…” Karl said slowly. “What’s up, Sap?”

Sapnap exhaled, his chest rising and falling in a way that seemed to carry all his frustration. “I… I’m sorry. I shouldn’t have said what I said the other night. It was… It was out of line.”

Karl glanced over at George, unsure what to say. He could feel the heat in his cheeks, that unspoken tension. He could feel himself torn, not wanting to be unloyal but also not sure if he was ready to face the truth of his feelings.

“I was pissed, okay?” Sapnap’s voice cracked slightly. “I was angry at myself. At everything. But… I shouldn’t have taken it out on you, Karl. I was jealous.”

The word hit Karl like a punch. Jealous?

George stood still, watching Sapnap with narrowed eyes, arms still crossed.

“I didn’t—” Sapnap continued, his gaze flickering away from Karl, towards the floor. “I didn’t think you’d get so close to him. I didn’t think it’d matter.”

Karl blinked, his heart pounding. “What do you mean?”

Sapnap’s eyes met his then, and Karl could see something else. Something darker. “I never thought you’d fall for him. Not like that. And I couldn’t deal with it. Not when I still…” He stopped himself, biting his lip. “Not when I still care about you.”

Karl’s mind was racing. This wasn’t the apology he’d expected. Not the apology he needed. It was tangled, messy, as if Sapnap was apologizing but also still holding onto something that wasn’t quite right.

George didn’t say anything. He didn’t need to. He stood behind Karl, silent, but his presence was enough.

“I don’t know what you want me to say,” Karl said softly, trying to push through the confusion. “I don’t know what you want from me.”

Sapnap took a step closer, his eyes desperate now. “I want you to choose. I want you to choose me, Karl. Please.”

Karl’s stomach dropped. There it was. The pressure. The guilt.

He had been so torn between wanting to stay loyal to Sapnap, wanting to make things right between them, but at the same time, the deeper truth had settled into his chest.
It wasn’t that he didn’t care for Sapnap. He did. But he couldn’t ignore how he felt about George. How much he felt about George.

“I—” Karl struggled to find the words, but they didn’t come. Instead, he felt the weight of it all—of Sapnap’s jealousy, his anger, his unspoken expectations—and Karl realized how much of it had been toxic. The way Sapnap had never really let him go. The way he’d pushed Karl to pick between them when the truth was, Karl had already made his choice. Without even realizing it, George had become his anchor, the person he cared about more than anything.

“I can’t choose,” Karl said softly, almost apologetically. “I love you, Sap. I do. But I…” His eyes flickered to George, who was still standing there, calm and patient, waiting. “I love him. I love George. More than anything.”

The silence after his words felt too heavy, too thick with unsaid things.
Sapnap’s face hardened, the tension in his jaw visible. “So that’s it, then. You’re just… over me?” His voice was low, venomous now. “You think he is better than me?”

George stepped forward now, his voice steady. “This isn’t about being better, Sapnap. This is about Karl making a choice. And Karl’s allowed to choose who he wants to be with.”

The words stung. They were sharp. But Sapnap didn’t back down.

“You’re so quick to take his side,” Sapnap snapped, eyes narrowing. “You don’t get it. I was his first, George. And you think you can just waltz in and—”

“Karl doesn’t owe you anything,” George cut in, his tone growing more frustrated. “You can’t keep holding him back just because you’re jealous.”

Sapnap looked at George for a long moment, then turned his gaze back to Karl, his expression colder than Karl had ever seen it. “Fine. So this is how it is, huh?” he muttered, his voice laced with bitterness.

“I’m sorry, Sap,” Karl said quietly, but firmly. “I never wanted to hurt you. But I need to be honest with myself.”

Without another word, Sapnap turned and walked out, slamming the door behind him with a force that rattled the walls. The finality of it left Karl feeling empty and conflicted, but he couldn’t deny the weight lifting off his shoulders. He had made his choice.

The silence between Karl and George was heavy, but it wasn’t uncomfortable. It was a silence that spoke of understanding.

George stepped closer to Karl, placing a hand on his shoulder.

“Are you okay?” he asked softly.

Karl nodded, but his heart was still heavy. He wasn’t sure how to make things right with Sapnap. He wasn’t sure if he even could.

But as George’s hand rested on his shoulder, Karl realized that maybe, just maybe, he didn’t need to fix everything. Not everything could be fixed. Not when it came to feelings.

And right now, he was exactly where he needed to be.

Chapter 4: chapter 4

Chapter Text

Karl couldn’t shake the feeling.

It lingered in his chest, tight and uncomfortable. A knot he hadn’t been able to untangle since Sapnap had walked out of their house. The words had been left hanging in the air like unfinished sentences, like half-formed apologies that never got the chance to fully spill out.

It wasn’t right.

He knew it.

He couldn’t just leave things like that, with Sapnap so angry, so confused. He needed to at least try to fix it. Maybe it wasn’t going to go back to the way it was before, but Karl couldn’t live with the guilt of just leaving Sapnap behind without making some attempt at mending things. Even if he didn’t want to be with Sapnap anymore, even if his heart had already found George, he didn’t want to be that guy—the one who just cut people off and left them in the dust.

So, here he was. Standing outside Sapnap’s door, heart hammering in his chest, trying to ignore the voice in the back of his mind that told him this was a terrible idea.

He knocked.

It was the most awkward knock he had ever delivered. He winced at the sound, hoping Sapnap wouldn’t be too angry to hear him out.

A few long seconds passed before the door creaked open. Sapnap stood there, hoodie pulled tight around his shoulders, eyes unreadable. His gaze flickered over Karl, then to the ground, avoiding eye contact.

Karl opened his mouth to speak but then hesitated. “Hey…”

Sapnap didn’t respond right away. He leaned against the doorframe, arms crossed, his whole posture tense and closed off.

Karl cleared his throat. “I… I wanted to apologize. I shouldn’t have just ignored you, and I shouldn’t have said what I said. I know that’s not fair to you.”

Sapnap’s lips twisted into something between a smirk and a sneer. “Yeah, I know. You finally came around.”

Karl felt a wave of unease crash over him. Sapnap’s words weren’t exactly what he’d hoped to hear. There was no softness in the way Sapnap spoke—no acceptance. Just that edge of bitterness.

“I… I know it probably doesn’t mean much coming from me now, but I didn’t want to hurt you,” Karl continued, his voice quieter this time, tinged with guilt. “But I didn’t handle this well. I didn’t consider how you felt. I was just so focused on myself, and I’m sorry for that.”

Sapnap stepped back slightly, but his eyes never left Karl’s face. The silence stretched on for a second too long before Sapnap’s voice broke it.

“I knew you’d come around eventually,” he said, almost smugly. There was something cold in his tone now, something calculated. “You’re too nice, Karl. You’d never leave things like this. You’re too soft-hearted.”

Karl’s stomach twisted. There was something about Sapnap’s words that felt off, like he was enjoying this moment of power. The way Sapnap was speaking made Karl feel smaller, like maybe this wasn’t about the apology anymore—it was about Sapnap needing to win.

Karl swallowed, the words catching in his throat. “I—” He cut himself off. “I don’t want to play these games, Sapnap. I’m sorry, I just… I’m not sure what you want me to do here.”

“Oh, I’m sure you do,” Sapnap replied, his voice dripping with sarcasm. “But let’s be real, Karl. You wouldn’t be standing here if you didn’t want things to go back to normal. You wouldn’t be apologizing if you didn’t need my approval.”

Karl’s eyes widened. “What are you saying? You think I’m just doing this for you?”

Sapnap stepped closer, his gaze darkening. “Isn’t that the truth? You’ve been running away from the truth for so long, it’s almost pathetic.” His voice was a low growl now. “You’ve been holding onto George like he’s the one who matters. But I’m the one who was there for you first, Karl. I was the one who stuck around, and now you’re choosing him over me.”

Karl’s heart thudded painfully in his chest. The words felt like a slap—harsh, unforgiving. Sapnap’s jealousy, his need to control, it was suffocating. And Karl was starting to realize just how toxic this whole dynamic had become.

“No, Sap,” Karl said, his voice shaking with frustration. “I’m not choosing him over you. I’m choosing me. And right now, I’m not okay with this. I’m not okay with you thinking you can control me or hold this over my head.”

Sapnap’s eyes flashed with something darker. “So, that’s it then? You just walk away from everything we had? Just like that?”

Karl swallowed hard, the weight of the situation crashing down on him. “I’m not walking away from everything we had. But I can’t keep pretending like it’s healthy to stay in this toxic space with you. I don’t want to fight. I don’t want to feel like I’m walking on eggshells. And I don’t want to feel like you’re trying to guilt-trip me into being with you.”

Sapnap’s face contorted into something twisted with anger and hurt. He stepped back, raising his hands up in mock surrender.

“Fine. Do what you want, Karl. But don’t act like I didn’t warn you. I always get what I want in the end. Always.”

Karl’s breath hitched in his chest, the heavy tension in the air making his skin prickle. There was something chilling in Sapnap’s words now, something that felt manipulative.

“I choose you.'

"What?"

“I… I can’t just leave,” Karl whispered, defeated.

Sapnap’s lips curled into a smile, though it was a dark, triumphant one. He stepped forward, closing the distance between them, his hand brushing Karl’s shoulder in a gentle, yet possessive motion. “I knew you’d come back to me, Karl. You can’t resist me.”

Karl’s throat felt tight as he nodded, the weight of his decision sinking in. He had given in. He had let Sapnap win. The guilt churned in his stomach, but it was easier this way, wasn’t it? At least Sapnap wouldn’t have to be angry with him anymore. At least Sapnap wouldn’t push him away.

But deep down, Karl knew. He knew this was wrong. He knew he was hurting himself by choosing Sapnap—by staying in this toxic relationship. But it felt like there was no way out, not with the way Sapnap had him twisted.

“Good boy,” Sapnap murmured, his hand running through Karl’s hair as he pulled him closer, as if claiming him all over again. The possessiveness, the control—it made Karl feel like he was drowning. But at the same time, he couldn’t help but feel a flicker of relief. The manipulation had worked. Sapnap had won.

Chapter 5: chapter 5

Chapter Text

Karl’s heart was heavy.

The past few weeks had been a blur. After the night he chose Sapnap, he had hoped things would settle. But no matter how hard he tried, the nagging feeling in his chest never went away. There were moments when Sapnap seemed distant, colder than before. It wasn’t long before Karl started noticing the little signs—texts Sapnap tried to hide, his frequent late nights, the way he acted possessive but strangely detached.

And then, Karl found the proof. It wasn’t anything obvious at first—just a small conversation he shouldn’t have seen, a name that wasn’t his own.

He couldn’t ignore it any longer.

"Sapnap," Karl called, voice trembling with a mix of confusion and fear. "We need to talk."

Sapnap looked up from his phone, eyes narrowing. "What now, Karl?"

Karl took a deep breath, gathering all the courage he had left. "I know about her. You’re cheating on me."

For a moment, there was silence. Sapnap’s face shifted from confusion to a smirk, almost as if he was amused.

"Oh, that?" Sapnap chuckled, leaning back in his chair. "You’re being dramatic, Karl. It’s not a big deal. You’re overreacting."

Karl’s stomach churned. "No, Sapnap. That’s not okay. You can’t just… do this to me. We’re supposed to be together. Why would you—"

Before Karl could finish, Sapnap stood up, his expression darkening. He was taller than Karl, and in that moment, the space between them felt like a chasm. "You’re making a big deal out of nothing. You don’t own me, Karl."

The words were like a slap, but the physical push that followed was worse. Sapnap shoved Karl against the wall with a force that knocked the wind out of him.

"Don’t act like you’re some innocent little angel," Sapnap hissed, stepping closer. "I gave you a chance, Karl. But you’re too soft. Too weak."

Karl’s breath hitched. "Sapnap, stop—" he gasped, but Sapnap didn’t listen.

The door suddenly burst open, and George stormed in, eyes wild with fury. "What the hell is going on?" he shouted, his voice filled with panic.

Sapnap turned, a twisted grin on his face. "Mind your own business, George."

But George didn’t back down. He rushed over to Karl, who was slumped against the wall, shaking. "Karl!" George’s voice softened immediately when he saw the look of terror in Karl’s eyes. "Are you okay?"

Karl couldn’t form words. He was too numb, too broken to speak.

George shot a searing look at Sapnap. "You’re a monster, Sapnap. You’re disgusting. I’m taking Karl away from you. You’ll never hurt him again."

Sapnap’s jaw clenched, but he didn’t move to stop them. His face twisted in frustration, but he said nothing as George gently lifted Karl, leading him out of the room.

George’s room felt like a safe haven.

Karl didn’t know how he’d gotten there—one moment, he was with Sapnap, the next, George was guiding him through his bedroom door. The world felt like it was spinning. His mind raced with confusion and betrayal.

"Hey, hey, breathe," George’s voice was soft as he guided Karl to the bed, sitting him down gently. "You’re safe now. I’ve got you."

Karl couldn’t look George in the eyes. His hands trembled, and he felt sick. "I— I should’ve known, George. I should’ve seen it coming."

George shook his head, kneeling in front of Karl. "You didn’t deserve any of this, Karl. Not one bit."

He moved to grab a blanket, draping it over Karl’s shoulders as he sat next to him. "You don’t have to talk about it if you don’t want to. Just let me take care of you. You’ve been through too much already."

Karl nodded, tears threatening to spill. "I’m sorry, George. I never wanted to hurt you."

George’s expression softened, his hand brushing Karl’s cheek. "You didn’t hurt me. You never did. You’ve been so strong, but you don’t have to do it alone anymore. I’m here. Always."

Karl leaned into George’s touch, his heart aching. The guilt, the shame, the heartbreak—they were still there, but now, there was something else. Safety. Peace. Love.

"Thank you," Karl whispered, his voice breaking.

George’s voice was steady as he spoke again, his hand resting on Karl’s. "You don’t have to thank me, Karl. You’re not alone anymore. And I’m not going anywhere."

And in that moment, Karl finally felt the weight begin to lift, knowing that he didn’t have to fight this battle by himself anymore. George was there, unwavering, and for the first time in a long time, Karl allowed himself to believe that maybe, just maybe, he could heal.

Notes:

LEAVE FEEDBACK OR IDEAS! LOVE YOU AND HAVE A NICE DAY