<span class="intro">"The spice belongs to no House. Only the bold. And none are bolder than we."</span>
The desert eats everything. The worms take the rest.
You wake buried in sand, wreckage smoldering around you. A broken rig. Blood in your mouth. A whisper over your comm:
<span class="quote">“If you're hearing this, then you're not dead. Good. You're Pact now.”</span>
<br><br>
What is your name, scavver?
<input id="nameInput" type="text" maxlength="20">
<br>
<<link "Confirm Name">>
<<script>>
var name = document.getElementById("nameInput").value.trim();
if (name === "") {
document.getElementById("error").innerHTML = "You need a name to walk with the Pact.";
} else {
State.variables.name = name;
Engine.play("Choose Role");
}
<</script>>
<</link>>
<div id="error" style="color: red;"></div>
The voice returns, grainy but alive. You hear static, the low thrum of a rig engine, and the sound of someone lighting a burner.
<span class="quote">“Alright, you’re breathing — that’s already better than the last three we pulled outta the sand.”</span><br>
<span class="quote">“You want to walk with the Pact, fine. But deadweight gets stripped for parts. What’s your cut?”</span>
<div class="choices">
<<link "Scavenger">>
<<set $role to "Scavenger">>
<<replace "#response">>
<span class="quote">“Scav, huh? Digging through bones, crawling old husks for anything still breathing. Takes guts — or a death wish.”</span><br>
<<link "Move out.">><<goto "Role Confirm">><</link>>
<</replace>>
<</link>> — Pickin' clean the old bones. Rigs, wrecks, vaults. You got a nose for dead tech?
<<link "Miner">>
<<set $role to "Miner">>
<<replace "#response">>
<span class="quote">“Miner? You like the grind. Dust lungs, sand rot, and maybe a few crystals worth dying for. Fine by me.”</span><br>
<<link "Load the rig.">><<goto "Role Confirm">><</link>>
<</replace>>
<</link>> — Deep drills, cracked salt, water pockets if you’re lucky. Sandworms if you’re not.
<<link "Smuggler">>
<<set $role to "Smuggler">>
<<replace "#response">>
<span class="quote">“You move shadow. I respect that. But if you cut the Pact out of a deal, I’ll know — and I’ll carve it outta your spine.”</span><br>
<<link "Deal struck.">><<goto "Role Confirm">><</link>>
<</replace>>
<</link>> — Spice, bile, relics, and sins. If it fits in a crate, you’ll find a buyer.
<<link "Mercenary">>
<<set $role to "Mercenary">>
<<replace "#response">>
<span class="quote">“Steel and blood, then. You’ll fit right in. Just keep your blade sharp and your mouth shut.”</span><br>
<<link "Locked and loaded.">><<goto "Role Confirm">><</link>>
<</replace>>
<</link>> — Blades, bullets, and bounty. You don’t ask who — just how many.
</div>
<div id="response"></div>
<<if $role == "Scavenger">>
<span class="quote">“$name. Scavenger. Dust-hunter. Wreck-sifter. Just don’t come cryin’ when the vault collapses on your head.”</span>
<</if>>
<<if $role == "Miner">>
<span class="quote">“$name the Miner. Down in the crust where worms stir and salt cuts skin. Hope you like the dark.”</span>
<</if>>
<<if $role == "Smuggler">>
<span class="quote">“$name. One more rat in the cargo lines. Just make sure the spice flows, and nobody smells it burnin’.”</span>
<</if>>
<<if $role == "Mercenary">>
<span class="quote">“$name. Blade-for-hire. Bullet-kin. Pact pays in blood, and you’ll get your cut. If you live long enough.”</span>
<</if>>
The comm crackles again.
<span class="quote">“Get ready. Harkonnen ops wants a sweep out past the Eastern Vermillius Gap. Dead zone, but full of salvage. Worm territory. Real nasty.”</span>
<span class="quote">“You’ve got one shot to prove you’re Cthon Pact. Don’t waste it.”</span>
<<link "Begin your first op">>
<<run window.open("https://discord.gg/p8vQaxhHJp", "_blank")>>
<</link>>