Chapter Text
The house was quiet.
Too quiet.
Soap was passed out, Price had retreated to the guest room with the haunted look of a man who had seen a little too much of his former Sergeant in eyeliner, and Gaz was curled on the couch, cackling softly into his phone like a gremlin with a secret.
Ghost sat stiff-backed in the recliner, still in full outerwear save for his boots. His balaclava remained in place, shadowing the expression he didn’t want to show. His phone was in his hand, untouched.
He hadn't said a word since the bar.
Not when Soap showed off his TikTok. Not when Gaz found it. Not when Soap leaned in and narrated his own videos in a voice thick with booze and pride. Not even when Price excused himself with the most neutral “Well, goodnight then” he could muster.
Ghost had just… sat there.
Frozen.
Watching. Listening.
Committing every sound, every expression, every filthy fucking caption to memory against his will.
Eventually, Gaz gave up trying to pull him into the conversation and wandered off to his corner of the couch, phone tilted sideways as he giggled at a thirst trap captioned “Let me ruin your life, babe.”
Ghost waited until the living room lights were off.
Waited until Gaz was horizontal and half-asleep, scrolling with lazy flicks of his thumb, occasionally muttering “menace” under his breath.
Then—he opened his phone.
He didn’t go to TikTok.
No, for some reason, he went to Twitter.
He remembered the name. Johnny had said it at the pub. Not Soap ’s name. The other one. The alias. The joke. The stupid goddamn name he’d said with a grin:
JohnnySuds.
Ghost stared at it in the search bar for a long moment.
Then he hit enter.
And the world as he knew it shifted.
The header was a sultry mirror pic. The profile photo was a grainy close-up of his hand gripping the back of a leather couch. The bio read:
professional tease | ex-military menace | link in bio
Ghost clicked the link before his conscience could stop him.
It redirected.
To OnlyFans.
He stared at the page like it might bite.
It was real.
It was so real .
A paywall stared back at him, unapologetic and patient, as if it knew he’d fold eventually.
Ghost sat in the quiet flicker of the screen, jaw tight, pulse a dull roar in his ears. He could close the tab. He should. He should shut the laptop and walk away, pretend he hadn’t seen it, pretend he didn’t know.
But he couldn’t stop thinking about it.
About the glimpse he’d already caught—Soap’s flushed skin, the teasing smirk, the low, familiar sound of his voice curling into something unrecognisable. He hadn’t meant to find it. He shouldn’t have found it. And yet, here he was.
His fingers moved before he could talk himself out of it. Opened a new tab. Entered a burner email he hadn’t used in months. Reached for the card he kept tucked behind his ID.
He hesitated one last time, just long enough to feel like maybe that counted for something—some measure of restraint, some gesture toward decency.
Then he clicked.
Subscription confirmed.
The words flashed in the corner of the screen, cold and final.
And then the page refreshed.
And there he was.
Johnny. Soap. Shirtless and sprawled out on velvet sheets, lashes low over heavy eyes, mouth parted just so. A slow pan of video. A dozen pinned thumbnails. Captions in Soap’s voice—cheeky, vulgar, alive. He looked different like this. Loose. Luminous. Lit like he knew exactly how divine he was.
Ghost stared, frozen, as shame bloomed hot in his chest. This was wrong. This was private. This was Soap in a way he was never meant to see— never meant to touch —but fuck, he couldn’t stop looking.
His mouth was dry. His whole body felt taut, wired too tight beneath the weight of it.
He’d crossed a line.
And he knew, deep down, there was no coming back.
What made it even worse was that Soap was good at it.
He was really, really good at it.
And that was the problem.
Ghost's stomach turned.
Heat rushed up his spine and settled under his skin in a low, electric burn. He felt dizzy. Ashamed. Angry? Maybe. Not at Soap—no, never at Soap—but at himself. At the way he couldn’t look away. At the way it felt like spying, like stealing something sacred. At the way it stirred something feral and aching in the hollow of his chest.
He stood so fast the recliner creaked.
Gaz startled from the couch. “Jesus, mate. You alright?”
Ghost didn’t answer.
He bolted.
Socks slipping across the hardwood like a fucking escape attempt. Tunnel vision. Panic. He didn’t know where he was going—out, anywhere, away —but he didn’t get far.
Gaz caught him in the hall.
A hand to his arm. Firm. Alarmed. “Ghost—”
And that was all it took.
The phone slipped from Ghost’s grip mid-turn. Hit the floor with a dull thud. The volume must’ve cranked from his fumbling, because suddenly—
“Fuck, please—just like that, yeah—fuuuck—”
Soap’s voice. Moaning.
Loud. Wet. Charming Scottish brogue soaked in unrepentant, slutty pleasure.
It echoed through the hallway with the same attention-grabbing obnoxiousness as a blaring neon sign that read ‘the lieutenant is a massive fucking pervert, come have a look.’
Ghost lunged for the phone, snarling, wild-eyed, every nerve in his body screaming abort abort abort —
Gaz held him firm, tugging his lieutenant between himself and the wall. “Wait—wait, Ghost , hold on—”
Ghost thrashed like an animal, reaching out to throttle his sergeant. “ Let go of me! ”
A third voice startled them into stillness.
“What the fuck is going on—?”
Price.
The door was still mid-motion as he stepped into the hall; barefoot, T-shirt wrinkled from sleep, all bleary-eyed and pissed off as he rubs his face with the exhaustion of someone forty years older. “Why the hell are you shouting?”
And then, he heard it.
The moaning.
Still going. Still loud. Soap's voice, curling around the words like someone was dragging them out from behind his teeth.
Price blinked.
Gaz still had Ghost pinned to the wall, but now the man was thrashing —not wildly, not in rage, but with something worse. Silent, panicked, instinctual desperation . Like shame was a fire crawling up his spine and he couldn’t put it out.
“Ghost—mate—calm the fuck down,” Gaz hissed, but Ghost didn’t stop. Couldn’t. His hands were fists. His jaw was clenched so tight it trembled. Every breath dragged in like a snarl.
The phone lay on the floor, still lit. Still playing.
Gaz couldn’t reach it. But Price could.
The captain bent down, slowly, like approaching a live fucking grenade. He picked it up gingerly and tilted the screen up to face him, squinting at the bright light. He winced as his vision swam into focus—
And froze.
Completely, utterly still. “...Is that—”
“Yup,” Gaz said immediately. “That’s our sweet sunshine ex-sergeant, Captain.”
Ghost went completely still. Not calm. Not soothed. Just… limp. Like something in him had snapped .
He stared at the floor.
He didn’t breathe.
Didn’t look .
Didn’t have to. The sound was enough.
Price’s face had gone blank in a very specific way—like he was a civilian watching a car crash in slow motion and couldn't quite believe it, slack and wide eyed and frozen from the sight.
“Jesus Christ,” he muttered.
Gaz didn’t wait, dropping Ghost to the floor in a listless heap of limbs. “Give it.”
“What—no, Kyle—”
“ Give it. ”
Gaz practically ripped the phone out of his hands. His expression shifted immediately—curious, greedy, eyes blown wide like a kid at a candy shop. He scrolled further down the page, tilted the phone, and mouthed “oh my god .”
“This is full production,” he muttered. “He’s got lighting. Scripts. Fuckin’ costumes .”
Ghost made a sound. Not quite a word—closer to a low, strangled growl.
Gaz ignored him. “He actually does this stuff? That’s actually… kind of brilliant. Holy fuck , he’s hot.”
“Language,” Price said faintly, eyes still locked on the screen.
Gaz flopped onto the couch and made room, holding the phone up like a joint at a uni party. “Right. If we’re doing this, we’re doing this properly. Sit the fuck down.”
Price hesitated, and Ghost didn’t move to get up from his collapsed position.
Gaz stared at both of them. “We’ve seen it now. Can’t unsee it. Might as well know what we’re dealing with.”
It was sick.
It was wrong.
It was unbelievably compelling.
Price sat first, slowly. Ghost followed like a man descending into hell, slinking his way over like he was weighed back by a ball-and-chain. He sat stiff, trembling with something inexplainable.
The video played. Soap’s body, framed in perfect lighting—bare, slick, divine . The moan that slipped from his mouth—real, ruined, choked with pleasure—made something break behind Ghost’s ribs.
“Oh my god ,” Gaz whispered again. “That’s the kitchen bench. We’ve eaten off that. ”
Ghost slumped back on the couch, head in his hands. “Shut up,” he croaked.
Price didn’t speak.
The next video autoplayed. A harness, a mirror, and a smile so filthy it should’ve been illegal.
And they watched .
Three grown men— soldiers —in silent, horrified awe, sitting side-by-side on a couch in their ex-teammate's house, letting the blue light of a phone screen wreck them.
Gaz scrolled. “There’s so many.”
Ghost groaned.
Price sighed. “...Play the next one.”
And Gaz did.
Because they were sick little bastards.
And Soap was irresistible .
...The video ended. Another queued.
None of them moved.
The air in the room felt heavy. Not with shock anymore—no, that had passed. What lingered now was worse; sticky and shameful. It was something hungry and ugly and far too warm for comfort.
Price cleared his throat and stood. “Well.” His voice cracked like he’d aged several decades. “I’ll, uh. I’ll give you two a moment.”
He didn’t meet anyone’s eyes as he retreated to the guest room, door closing behind him with a soft finality.
Gaz lingered for all of three seconds before scrambling to his feet like the couch had burned him. He muttered something about brushing his teeth. Loudly. While already halfway down the hall.
That left Ghost.
Still slumped, still silent, still scorched with the image of Soap’s slick, arching body burned behind his eyes like the afterglow of a sun he had no business staring into.
He stood, wobbling as he staggered to his feet. His pants were too tight, his hands were shaking, palms covered in a layer of sweat. The walk down the hall was slow, painful, dragging his feet as he stopped in front of the guest bedroom he and Price were sharing. He can’t go in there now.
The man lugged himself into the bathroom down the hall, shutting the door behind him and tearing off his balaclava with a heavy breath.
And in the heavy, guilty silence that followed—only one truth remained: They were sick fucking bastards.
The tiles were cold beneath his feet. Too clean. Too quiet. The overhead light buzzed faintly, the way it always did, and the mirror over the sink caught his reflection with brutal clarity.
He didn’t look at it.
Couldn’t.
Instead, he set his phone face-down on the counter and braced both hands on either side of the sink, head bowed, chest heaving.
This was a mistake.
This was a massive mistake.
He should’ve stopped before the Twitter. Should’ve shut it all down before it sank its claws into him—before he saw how pretty Soap looked like that. How open. How sweetly, devastatingly filthy.
He could still hear it. Could still feel it. Soap’s voice curled around a moan, coaxing and wrecked and perfect. The kind of sound that hit right in the spine. Right in the gut. Right in the cock.
Ghost squeezed his eyes shut and tried to breathe. He sucked in a breath, counted backwards from ten, and felt his resolve crumble on the exhale.
His hand trembled as it reached for the phone. It lit up the second he touched it— still open . The thumbnail was frozen on Soap’s parted lips, his stomach glistening with sweat, one hand tangled in his own hair.
Ghost’s throat made a raw, broken noise he didn’t recognize.
He couldn’t stop, not now.
He lifted the hem of his shirt and shoved it between his teeth to shut himself up. One hand fumbled with his belt—too loud, too desperate, buckle clinking against the sink—and the other tightened around his phone in a white-knuckled grip.
His boxers were already tight. Painfully so. When he finally got them down, he hissed through clenched teeth, body jolting with the shock of his own arousal.
It shouldn’t have felt like this. Not for a teammate. Not for Soap . Not after everything.
But then the video played.
And it was over.
Soap on his back, one leg hooked over a velvet pillow, his eyes lidded and full of heat. He smiled, all coy and impish, like he knew exactly who was watching. Like he’d always known.
Ghost’s hand wrapped around himself with a ferocity that bordered on violence. No teasing, no foreplay, only punishment. Just the frantic, ugly rhythm of someone trying to chase shame away with friction, slicking himself in his own pre-cum.
“F-fuck,” he gasped into his shirt, hips twitching forward. His thighs trembled. His knees almost buckled.
He didn’t imagine anything soft. Anything sweet. This wasn’t a fantasy—it was a confession. A violation. A sick little indulgence scraped raw from the inside out.
He pumped faster.
The phone slipped from his hand, hitting the tile with a dull thunk . He didn’t stop. Couldn’t. Not with the sound of Soap’s moans spilling up around him like fog. Like fire. Like absolution and damnation rolled into one.
He was sweating. Trembling. His breath came in ragged bursts through gritted teeth, and when he came, it was with a stifled, ruined whimper that felt like it came from some desperate, dogged thing buried deep in his chest.
Silence hit him like firing a shotgun.
The echo of it rang in his ears—sharp, final, blasphemous. It filled the room with something heavier than sound. The quiet was unbearable. It made the act feel real .
His hand stilled. His hand slackened around himself, trembling slightly with the ghost of motion. His knuckles ached. His thighs were slick with sweat and spend. His mouth was dry, salt on his tongue and regret in his teeth.
He didn’t look down.
He couldn’t.
The phone lay face-up on the tile, screen still aglow. The video had stopped. All that remained was the frozen image of Soap’s face mid-laugh, hair mussed, neck flushed, pupils blown wide like he’d been possessed by something divine. Something monstrous.
Ghost stared at it like it was a holy relic he’d defiled.
His knees hit the tile with a dull thud. He didn't mean to kneel. He just... sank. Palms braced flat on the cold porcelain. Head bowed. Shoulders heaving.
It felt like penance.
It felt like worship.
It felt like ruin.
A thin, broken sound rattled from his chest—neither a sob nor a laugh, just some desperate middle ground of breath and shame and blood roaring through his skull.
He had never hated himself more.
Not for the want. He’d lived with that for years. That gnawing, shame-slick craving that lingered every time Soap smiled, every time he said Ghost like it was a nickname for something softer.
No—he hated himself for giving in.
For breaking.
For turning that want into action. For crossing the line. For taking what was never meant for him, not like that, not in the dark, not in secret, not with his hand between his thighs and Soap in the next fucking room .
It was betrayal. Of Soap. Of the team. Of everything he’d ever tried to be.
And worse still—
Worse than the guilt, worse than the nausea rising in his throat—
He wanted more.
He would do it again.
And again. And again. Until it hollowed him out. Until there was nothing left but the memory of Soap’s voice, dragging moans from the depths of him with just a glance, just a tilt of the chin, just a filthy grin and a whisper through the screen.
Ghost curled forward on the floor, head hung limply off his shoulders.
It felt like penance.
But it didn’t feel like enough.
Soap was holy in that light.
And Ghost? Simon?
Simon had never known how to be anything but a sinner.