<span style="color:#821070">''Starfish & Crystallisation''</span> <span style="color:#821070"><p><small>//A Twine Game by Colin Justin Wan//</small></p></span>
[[Synopsis|Synopsis]]
[[Play|Start]]
<span style="color:#821070"><p><small>//Best enjoyed with the volume turned up
and a glass of vodka in hand.
An earpiece wouldn't hurt either.//</small></p></span>
<<audio waveecho volume 0.5 play>>Synopsis:
An unexpected tragedy pulls you back to a night that refuses to fade from your memory, where reality and imagination blur at the edges. As you retrace each moment, you find yourself caught between what was, what could have been, and what still lingers.
[[<<|TitlePage]]
The radio plays Liszt’s Liebesträume No. 3.
Once, its notes serenaded you.
Not anymore.
Now, each note pulls you back
to a memory you’d rather erase.
Your mind hums like a struck bell,
reverberating, unsteady.
Your eyes blur, dry and overworked,
tricking you into seeing things that aren’t there.
You’ve been staring at the monitor since 7:35 p.m.
The only break: biting into a burger,
teeth sinking past the wrapper.
Top right corner of the screen—<div class="fade-in-out"><span style="color:green">10:48 p.m.</span></div>
You’re racing against time to finish the pitch deck—
so your boss can skim it over brunch
before heading to his Saturday golf session.
You shut your eyes.
When you open them again, the text still
[[-_-_-.|dancingtext]]
<<audio radio volume 0 fadein>>
<<audio waveecho stop>>
<div class="pulse"><span style="color:red">''R e C O''</span></div><div class="fade-in-out"><span style="color:red"> ''m m e n''</span></div><div class="pulse"><span style="color:red"> ''d a t i O n S''</span></div>
Inhale.
Hang in there—
you can see the finish line.
Exhale.
Shut your [[eyes.|finaltouch]]
Now, the final touches.
Choices to make—
polish the deck, make it sleek,
professional, visually striking.
You need help.
You’ve never been good with choices.
Run them through your mind,
and they toss, bounce, slide—
until they vanish, lost forever.
You’re left staring, blank. What were the choices again?
Serif or Sans Serif?
If <span style="font-family: 'Times New Roman', monospace;">Serif—Times New Roman, perhaps? Hmm...</span>
Alright, maybe Sans Serif—Roboto:
modern, clean, and sharp.
Or, for the sake of it, just use <span style="font-family: 'Courier', monospace;">Courier—because life, like the news, is dull, monotonous, and quietly tragic.</span>
Click.
Click.
[[Click.|notthisagain]]
<<audio radio stop>>There it is—
the familiar flute introduction.
You thought tuning into a classical station
would keep you safe.
But no. The song finds you anyway.
The only saving grace: it’s an orchestral version.
At least you’re spared from hearing her belt out
"my heart will go on and on…"
until your own heartbeat feels like it’s fading.
You pray the DJ won’t launch into a monologue about
their undying love for the movie.
Product saturation. The law of diminishing returns.
They should teach this. You could teach this.
Not that it matters—you have no desire to watch…
The name of the movie slips away the moment it appears.
Frustrating. You search your mind. You know this.
//My Heart Will Go On//
//Jack and Rose//
//Atlantic Ocean//
Damn … what’s the title of the movie?
<<textbox "$movie" "">>
<div class="fade-in-out"><span style="color:white">Hint: One Word, 7 Letters, Initial Capital</span></div>
[[Nailed it?|news]]
<<if $movie is "Titanic">>
It takes you exactly one song to get the title right.
//Good evening, Singapore. The time is 11 PM—
here’s your latest news update.//
Timing, they say, is everything.
Maybe you should turn off the radio.
The DJ is at it again—this time,
talking about the Singapore plane
that plunged into a river in Sumatra, Indonesia.
Loose ends. Why is it so hard to tie them up?
Block out. Zone in.
There’s still time to join your colleagues at the magazine launch party.
The DJ mumbles:
//Djend dilate ofeiot dkdkk geien…//
You’re doing great—you don’t understand a word.
Just noise—meaningless—
until she rattles off a name
that carries a different vibration through the air.
A name you’d forgotten.
A name that means nothing now.
And yet—your heart skips.
Then, it sinks. Reality catches up.
The name is on the casualty list.
You need to rein in your imagination and
resist the pull of pessimism.
It could be someone else.
Just a coincidence. A shared name.
But you know better. His name was one of a kind.
His parents couldn’t decide, so they compromised—
first syllable of his father’s name,
last syllable of his mother’s.
A name stitched together, unlike any other.
You take a breath. And call him by it.
You spell it out loud:
<<textbox "$name" "">>
[[Whisper his name|name]]
<<else>>
<div class="pulse">Ooops.</div>
[[Try Again|notthisagain]]
<div class="fade-in-out"><span style="color:white">Hint: The name of the ship that sank in 1912</span></div>
<</if>>
@@.blink;$name@@
The name crosses your mind
just as your phone starts ringing.
A pause.
A flicker of hesitation.
You glance at the screen—James.
An army buddy, always first with breaking news,
though about as reliable as a weather forecast.
The ringtone morphs into a siren, relentless,
wailing in your ears—until you
[[give in.|chill]]
//Feel free to help yourself if you need to chill…
relax…keep from collapsing//
Something like that.
You remember Daryl saying
it’s fine to dip into his hidden stash if needed.
You stare at the combination lock,
trying to summon the four digits.
Fidget with it. Turn the dial.
A set of numbers comes to mind.
You try them.
Nothing.
Not the first time your memory has failed you.
Everything is a struggle today. Your mind, thick with fog.
Numbers drift in and out, blurred, just out of reach.
He mentioned changing the code every year.
What year is it now?
You take a breath.
Key in the four-digit code:
<<textbox "$year" "">>
No—what year was it? The one that mattered.
The year Hong Kong was handed back to China.
You take a breath — [[bingo!|bingo]]
<<if $year is "1997">>
Behind the cupboard, a tiny fridge.
Good news—it’s not locked.
You pull it open. A half-empty bottle of Grey Goose,
two lowball glasses.
Waiting.
Between them, a baby blue card,
no bigger than a gift tag,
carrying the scent of sea breeze.
Curious, you pick it up.
On one side, in fluid manuscript handwriting:
//Welcome, Mystery.//
You flip it over:
//Enjoy.//
Your fingers hover over the card.
//Mystery//
Who is that? Who was this meant for?
Maybe it doesn’t matter.
Maybe you weren’t prying.
Maybe you only saw ENJOY.
That’s what you’ll tell yourself.
For now, a different dilemma—choices,
never your strong suit.
//Vodka neat. (Obviously.)//
//Vodka on the rocks. (Pointless. It’s already chilled.)//
//Vodka with orange juice. (Seriously?)//
You pour a generous shot, lift the glass.
Say his name.
//@@.pulse;$name.@@
May you rest in peace.//
The vodka burns, then numbs.
@@.blur;<span style="color:green">''11:08''</span>@@
@@.blurrier;<span style="color:green">''11:13''</span>@@
@@.fade-in-out;<span style="color:lightgreen">''11:27''</span>@@
You’ve lost count.
Then—
a [[pager|paging]] goes off.
<<else>>
<div class="pulse">''LOL''</div>
[[Come on!|chill]]
<div class="fade-in-out"><span style="color:white">Hint: Hello! It’s the year //Titanic// hit the screens.</span></div>
<</if>>You never expected to hear from him so soon.
You had bumped into each other at Plaza Singapura
—unexpected, fleeting.
He mentioned he was leaving the country
to further his studies.
You exchanged pager numbers.
That alone felt like more than you could have hoped for.
8573392
50017
505
07734
4244
2
83312
4 177 177
457
You count to ten, but at seven, your fingers betray you—
<<textbox "$page" "">>
<span style="color:white"><p><small>Key in the numerical page for OK - 3 digits</small></p></span>
[[Page|bar]]
<p><small>[[How to code?|cheatsheet]]
[[Decoded Paging|DecodedMsg]]</small></p>
<<audio heartbeatslowfast volume 0 fadein>>
<<audio beeper2 volume 0.5 play>>''How to Page?''
There are three main methods to code your messages
using numbers 0 to 9.
1st Method – Reading it upside down
07734 – reading it upside down will give you HELLO
87 – Late (L8)
2nd Method – Each number represents the number of letters in each word
143 – I (1 letter) LOVE (4 letters) YOU (3 letters)
24 – I’m home
436 – Hugs & Kisses
43 – F— you
3rd method - Follow this table of numbers that
resemble the letter itself.
A=8 B=8 C=6 D=0 E=3
F=4 G=6 H=4 I=1 J=7
K=15 L=7 M=177 N=17 O=0 P=9
Q=0 R=12 S=5 T=7 U=11
V=11 W=111 X=25 Y=4 Z=2 ?=2
O15 – OK
17701113 2 – Movie?
[[<<|paging]]
<<audio heartbeatslowfast stop>>
<<audio beeper2 stop>>8573392 → Asleep?
50017 → Soon
505 → SOS
07734 → Hello
4244 → Want to come over
2 → ?
83312 → Beer
4 177 177 → Hmm
457 → Home alone tonight
OK → 015
[[Got it!|paging]]
<<audio heartbeatslowfast stop>>
<<audio beeper2 stop>><<if $page is "015">>
//Hark! My boss is nagging,//
//Glory to the damn PowerPoint.//
//All I want is another drink,//
//And not to be alone tonight.//
You belt it out, off-key,
as you grab another Cosmopolitan.
//Hey, we’re heading to Zouk.//
Geraldine leans in, voice low.
//Free flow ends at one.//
You like the energy here.
The music, the glow, the hum of conversation.
Why waste it on a cab ride across town?
You could dance till dawn.
Or call it a night.
Again, you’re in a bind. Too many choices,
each one slipping through your grasp
before you can land on it without stumbling.
Your head throbs, a relentless pulse behind your eyes.
[[You like the vibes here. Why bother to hop into a cab and travel?|stay]]
[[You’re in the mood to put on your dancing shoes.|dance]]
[[You should just head home and call it a night.|cab]]
You don’t remember how you ended up in this corner, arms wrapped around the grandfather clock.
Its face stares at you,
steady and unyielding.
[[Tick Tock! Tick Tock!|timereverse]]
<<else>>
<div class="pulse">No! No! No!</div>
[[Of Course|paging]]
<div class="fade-in-out"><span style="color:white">Hint: 1 digit for O & 2 digits for K</span></div>
<</if>>
<<audio heartbeatslowfast stop>>
<<audio beeper2 stop>>You love Geraldine.
She’s your sweetheart,
your party buddy.
But tonight, you just want to be with strangers.
You want to cast aside your inhibitions and let loose.
Another Cosmopolitan,
whispered to the hunky bartender
before midnight strikes.
You down the glass,
the cool liquid slipping down your throat.
But something isn’t right. A rush, a tightness.
You taste the remnants of dinner—
chilli-ginger sauce, chicken rice.
You bolt for the bathroom.
A hand grabs your arm.
You turn, open your mouth to respond—
and instead, the mixture shoots out,
splattering across his shiny black leather shoes.
You look up, flash a smile.
[[Not the ending you are looking for.|bar]]You saunter up to the entrance,
hands raised in mock surrender.
Come on, baby.
You’re ready—anticipating the slow drag of hands
over your body,
the lingering pat-down from the hunky bouncer.
But he barely glances at you before waving you through.
What a letdown.
Nothing seems to be going your way tonight.
Instead of heading straight for the dance floor,
you drift—pulled by an invisible tide—
toward the restroom.
//No, you haven’t spotted a target to stalk.//
//No, you're not seeking a fleeting rendezvous
in a dimly lit stall.//
//No, it’s not what you think.//
A cubicle door swings open.
You stumble inside just in time to grip the porcelain rim.
And then, it all comes up—
//Grey Goose, Cosmopolitan, Manhattan, White Russian, Chardonnay//
… a tragic, liquid requiem.
//Hey, you.//
A voice.
You lift your head, vision swimming,
and manage a lopsided grin.
[[What a waste!|bar]]Not that song again.
The familiar flute intro seeps into the air,
thick and cloying, pressing down on your chest.
Your head throbs in sync with the melody.
You hesitate, debating whether it would be rude to ask the cab driver to turn off the radio.
Weighing the pros and cons,
running calculations that don’t quite add up—
//Please stop.//
The words break loose before you can catch them.
Even you are startled.
The driver blinks, then slams the brakes.
The cab jerks to a halt.
You shove the door open, stumbling into the night.
The alley swallows you whole, darkness pressing in.
You’re searching for something, but what?
You have no idea.
Yet, somehow, you find it—
your eyes catch on a hole in the wall,
no bigger than a McDonald's pancake.
//Are you all right?//
//Uh huh.//
It’s all you can manage.
A tap on your shoulder.
A pause.
[[Let me dissolve into the earth.|bar]]
<video id="myVideo" autoplay muted loop>
<source src="video/timereverse.mp4" type="video/mp4">
This message will display if your browser does not support HTML5 video. Sorry!
</video>
<span style="color:#ADD8E6"><p><small>
Even though we’ve lost contact,
I keep returning to that night—again and again.
The details blur, shift—
becoming something different,
something I secretly harbour.
The truth doesn’t matter.
What happened that night doesn’t matter.
What matters is how the memory lingers,
how it keeps my heart beating every time I visit it.</small></p></span>
//...$name... Sor—//
He presses a finger to my lips, smiling,
as if to say, it’s okay.
You have no idea how long you’ve been here,
hunched over the bowl,
a memory you once wanted to erase.
But now, when you revisit this scene,
You pretend—pretend you're admiring corals in a deep,
hidden reef, having a quiet conversation with them.
It was a magical night. You're not exaggerating.
Even though we were sitting on a cold bathroom floor,
the room shimmered with stars—
scattered light reflected off crystal surfaces.
Or maybe they were just empty beer bottles.
That’s the thing about memory.
You can bend it, reshape it, perfect it,
a little more each time you wander back.
This time, we kiss.
This time,
[[we dive|starfish]] into the bowl together,
searching for corals,
murmuring nonsense about starfish.
<<audio musicbox volume 0 fadein>><span style="color:#821070">
//I love starfish.//
//Aren’t they dangerous?//
//Why would you think that?//
//Ouch...//
//Are you okay?//
(Soft laughter.)
//I’m fine. But I heard their sting hurts.//
(A chuckle.)
//They don’t sting. You’re thinking of jellyfish.//
//Neither of them are fish, though. Right?//
//Exactly. And starfish don’t bite, either.//
//Ouch. Did you just bite me?//
(Laughter bubbles between you both.)
//Starfish don’t have eyes, but they’re not blind.//
//They don’t swim, either.//
//This is how a starfish moves.//
//And I’m a jellyfish. See how I glide through the water.//
And without warning—
he [[stings|ouch]] me.
</span>
<<audio musicbox volume 0 fadein>>
@@.rumble;//Ouch.//@@
A sharp heel lands squarely on your left foot.
Pain shoots up your leg.
It’s Friday—casual dress code, Bro—
and you’d opted for Vans slip-ons
instead of your Ferragamos.
Maybe not the Ferragamos—
you’d rather not yelp in heartache.
Just like that
—snap—
it feels as if the fluorescent lights buzz to life.
The bar, once bathed in a sultry glow,
now feels overexposed,
leaving you uneasy, vulnerable.
You need air.
Frustrated,
you step out,
drifting into a side alley.
A cigarette.
A slow drag.
Smoke curls toward the sky.
The moon,
impossibly distant yet watching,
smiles down at you.
Your mind reels back—back to that night.
The rush out of your house, the sprint to the bus stop,
the desperate wish to fly,
to collapse the space between you and him.
But distance was a wall,
and impossibility stretched beyond imagining.
Which tunnel will you tumble down this time?
[[When the stars came out to play with the moon.|starsouttoplay]]
[[On the night the bad moon rose.|badmoon]]
[[When the moon drowned in the night.|moondrownedinthenight]]
//Hey//
//Hi//
//Hello//
//Hiya//
//[[Yo|theend]]//
<<audio musicbox stop>>
<<audio starsouttoplay stop>>
<<audio badmoon stop>>
<<audio moondrownedinthenight stop>><span style="color:#821070">
No time to consider your options.
The moment had already unfurled,
drawing you in like a tide pulling
against the shore.
You hesitated.
The act felt both unnatural and inevitable,
as if written long before you ever reached this threshold.
Yet something called you forward—
something soft, inescapable.
The air shimmered with a scent thick and elusive,
lingering just beyond memory.
You followed it, moving as if in a dream.
You gazed at him through half-closed eyes,
as he ate in quiet concentration,
each movement deliberate,
unhurried,
yet carrying the urgency of something unseen.
The rhythm of it mesmerised you—
the way his fingers circling your nipples,
the slow parting of his lips,
the flicker of his throat as he swallowed.
Your body responded before your mind could catch up.
A heat curled through you, delicate at first, then undeniable.
You leaned in, drawn past the threshold of hesitation.
A slip, a miscalculation—
your tongue grazed too deep,
your teeth catching where they shouldn’t.
He inhaled sharply, his chest rising beneath your touch.
His gaze, half-lidded, unreadable,
settled on you with a quiet weight.
You pulled back, breath unsteady,
but the space between you had already changed.
A stillness stretched, thick with something unnamed.
He watched, unmoving, as if waiting—
for you, for the night,
for the inevitable tide to come and
[[take you both.|ouch]]
</span>
<<audio moondrownedinthenight volume 0 fadein>><span style="color:#821070">
You never expected him to page you.
Exchanging pager numbers had felt like
a mere formality—
polite, meaningless.
You’d thought about paging him countless times—
maybe to ask how he was, or something casual—
but every time, you hesitated,
unable to find a reason that didn’t feel flimsy.
So when you finally received his page, doubt crept in.
A mistake?
A wrong number?
A prank?
No—$name wasn’t the type to play games.
He wasn’t that person.
You always looked up to him,
especially back during Basic Military Training
when he was your section commander.
Those nights still linger in your memory,
when he’d walk into the bunk,
a quiet figure in the dark.
He’d check to make sure
every M16 was properly stored,
taking away any rifles left unattended on guard duty.
You remember how he’d always reassure you,
jokingly, that he’d never take yours—
not while you were asleep.
But there were those moments,
in the silence of the night,
when you could swear he’d told you that
you wore a sweet smile while you slept.
It lingered with you, that remark.
It wasn’t much, but it was enough to carve a memory,
one that stayed with you like a faint whisper
you couldn't quite shake.
Most of the nights you spent together
were simply shooting breeze
over gem biscuits, haw flakes.
Though they weren’t grand gestures or
deep conversations,
somehow you felt connected with him.
And yet, somehow, that was enough.
Now, this page. What did it really mean?
[[Hmm...?|ouch]]
</span>
<<audio starsouttoplay volume 0 fadein>><span style="color:#821070">
You marvelled at the beauty of his sculpted build,
the way it filled the space effortlessly,
as if it had always belonged there.
He wore a perfume—
something dark, woody, smoky—
layered over the overwhelmingly sweet coolness of soap,
a contrast that unsettled
and pulled you in at once.
He rose, moving with a slow, deliberate grace,
and for a moment,
you found yourself tracing the lines of him—
the stretch of his long legs,
the way they carried him forward as though
the ground itself conceded beneath his weight.
He smiled at you then, a fleeting, knowing thing,
before the sharp crack of leather against
wood cut through the air.
He had slapped his whip against the table—
not in warning, not in threat,
but as if to mark this moment,
to carve it into time.
His eyes were dancing with joy.
Not amusement. Not cruelty.
Something deeper.
Then, a hand. Firm, certain.
You inhaled sharply,
the air in the room thickening around you.
You moan - [[Ahhh...|ouch]]
</span>
<<audio badmoon volume 0 fadein>>//Hey//
//Hi//
//Hello//
//Hiya//
//Yo//
//Anyone home?//
You glance up from the ground,
a grin forming—until you see her.
Scantily dressed, thick makeup,
reeking of alcohol and cheap perfume—
an assembly that couldn’t be more wrong.
//Can I borrow a lighter?//
You hesitate, then hand it over, saying nothing.
As soon as the flame flickers to life, you turn to leave.
//Hey—//
You don’t stop.
//Hey—//
Frustration flares.
You spin around,
voice sharper than intended.
//Keep it.//
And then—
you see him.
@@.pulse;Daryl.@@
A flush spreads over you,
sudden and overwhelming,
as if you've stepped into a sauna.
//Are you all right?//
//Do I not look all right?//
You break into a shy smile, half teasing, half unsure.
He studies you, head tilted, unreadable.
//You’re a mystery.//
The word hums in your ears,
ringing different this time—
clear, crystalline, untainted.
You laugh,
but it feels distant,
untethered.
Then it hits you all at once.
//Gin, vodka, Cointreau, bourbon, Campari//—
every spirit you'd invited in, now collecting their dues.
Your head sways, lighter and heavier all at once.
You know that to fall in love,
you must first surrender—
soften, weaken.
Suddenly, your knees buckle.
The world tilts, and before you can register the fall,
Daryl’s arms catch you—
solid yet yielding, steady yet weightless.
You feel boneless, a starfish adrift.
//Sorry...//
you murmur, your words slurring at the edges.
//...must be the cocktails.//
Without hesitation, he lifts you effortlessly,
cradling you against him as if you weigh nothing at all.
//My car’s just over there. Just lean back and rest.//
Obediently, you let your head sink against his chest.
His heartbeat is steady, grounding.
Above, the moon lingers, watching.
You steal a glance,
as if seeking an answer from its distant glow.
<span style="color:#add8e6"><p><small>//To forget you is to forget everything.//</small></p></span>
But tonight, something shifts.
The weight in your chest lifts,
if only a little.
Your heart beats to a new rhythm—
wounded, yet healing.
The pain ebbs,
retreating like the tide,
leaving the starfish free to return to the sea,
to rest among the corals [[once more.|bye]]
<span style="color:#821070">
You sneak home just five minutes before eight,
still unwilling to wash his scent from your skin.
You think excitement will keep you awake,
but fatigue creeps in faster than expected,
and soon, exhaustion takes over.
The buzz of your pager jolts you.
Your fingers fumble for it, heart pounding—
only to sink when you see the sender.
Not the one you were hoping for.
You reach for the phone,
take a deep breath, and
make the first move.
436 — Hugs and Kisses
707 — LOL
823 — Thinking of you
10U — Thank You
2 — ?
8 — Bye
You hate jellyfish.
Their sting lingers—
burning,
relentless,
impossible to forget.
[[Echoes & Traces|credits]]
</span>
<<audio heartbreak volume 0 fadein>><<cacheaudio "radio" "audio/radio.mp3">>
<<cacheaudio "musicbox" "audio/musicbox.mp3">>
<<cacheaudio "beeper2" "audio/beeper2.mp3">>
<<cacheaudio "beeper3" "audio/beeper3.mp3">>
<<cacheaudio "beeperlouder" "audio/beeperlouder.mp3">>
<<cacheaudio "heartbeatslowfast" "audio/heartbeatslowfast.mp3">>
<<cacheaudio "heartbreak" "audio/heartbreak.mp3">>
<<cacheaudio "waveecho" "audio/waveecho.mp3">>
<<cacheaudio "badmoon" "audio/badmoon.mp3">>
<<cacheaudio "moondrownedinthenight" "audio/moondrownedinthenight.mp3">>
<<cacheaudio "starsouttoplay" "audio/starsouttoplay.mp3">><span style="color:#821070">
''Echoes & Traces''
Written by Colin Justin Wan
Image, Video & Audio
created by
Colin Justin Wan (unless stated otherwise)
Additional Credits:
Liebesträume No. 3 by Gregor Quendel
<p><small>https://pixabay.com/music/classical-piano-liszt-liebestraum-no-3-love-dream-s-541-187239/
https://pixabay.com/music/lullabies-liszt-liebestraum-no-3-love-dream-arr-for-music-box-172914/ </small></p>
How to Communicate With Pager Codes
<p><small>https://discover.hubpages.com/technology/Pager-Code </small></p>
</span>