Fantasy Writing Prompt
JavaScript is required. Please enable it to continue.
Your browser lacks required capabilities. Please upgrade it or switch to another to continue.
Loading…
<<script>> UIBar.stow();<</script>> <div class="flexitem"> <h1> <div id="everything"> <span id="adjective"> <span class="animated bounceInLeft indieflower lime glowblack" style="display: inline-block;"> <<link $randomadjective>> <<audio "setting" volume 0.5 play>> <<set $adjective.delete($randomadjective)>> <<if $adjective.includesAny($backupadjective)>> <<set $randomadjective to $adjective.random()>> <<else>> <<set $adjective to $backupadjective>> <<goto [[display]]>> <</if>> <<replace "#adjective" t8n>> <<include [[adjectivereset]]>> <</replace>> <</link>> </span> </span> <span id="character"> <span class="animated bounceInRight merriweather maastrichtblue glowwhite" style="display: inline-block;"> <<link $randomcharacter>> <<audio "character" volume 0.5 play>> <<set $malecharacter.delete($randomcharacter)>> <<set $femalecharacter.delete($randomcharacter)>> <<if $playergender is "male" and $malecharacter.includesAny($backupmalecharacter)>> <<set $randomcharacter to $malecharacter.random()>> <<elseif $playergender is "female" and $femalecharacter.includesAny($backupfemalecharacter)>> <<set $randomcharacter to $femalecharacter.random()>> <<else>> <<set $malecharacter to $backupmalecharacter>> <<set $femalecharacter to $backupfemalecharacter>> <<goto [[display]]>> <</if>> <<replace "#character" t8n>> <<include [[characterreset]]>> <</replace>> <</link>> </span> </span> <span id="setting"> <span class="animated bounce indieflower apple glowblack" style="display: inline-block;"> <<link $randomsetting>> <<audio "setting" volume 0.5 play>> <<set $setting.delete($randomsetting)>> <<if $setting.includesAny($backupsetting)>> <<set $randomsetting to $setting.random()>> <<else>> <<set $setting to $backupsetting>> <<goto [[display]]>> <</if>> <<replace "#setting" t8n>> <<include [[settingreset]]>> <</replace>> <</link>> </span> </span> <span class="grey merriweather">$He</span> <span id="problem"> <span class="animated flipInY merriweather maastrichtblue glowwhite" style="display: inline-block;"> <<link $randomproblem>> <<audio "problem" volume 0.5 play>> <<set $problem.delete($randomproblem)>> <<if $problem.includesAny($backupproblem)>> <<set $randomproblem to $problem.random()>> <<else>> <<set $problem to $backupproblem>> <<goto [[display]]>> <</if>> <<replace "#problem" t8n>> <<include [[problemreset]]>> <</replace>> <</link>> </span> </span> <span class="grey merriweather">but uses</span> <span id="item"> <span class="animated swing indieflower apple glowblack" style="display: inline-block;"> <<link $randomitem>> <<audio "item" volume 0.5 play>> <<set $item.delete($randomitem)>> <<if $item.includesAny($backupitem)>> <<set $randomitem to $item.random()>> <<else>> <<set $item to $backupitem>> <<goto [[display]]>> <</if>> <<replace "#item" t8n>> <<include [[itemreset]]>> <</replace>> <</link>> </span> </span> <span class="grey merriweather">to</span> <span id="response"> <span class="animated fadeInUp merriweather lime glowblack" style="display: inline-block;"> <<link $randomresponse>> <<audio "response" volume 0.5 play>> <<set $response.delete($randomresponse)>> <<if $response.includesAny($backupresponse)>> <<set $randomresponse to $response.random()>> <<else>> <<set $response to $backupresponse>> <<goto [[display]]>> <</if>> <<replace "#response" t8n>> <<include [[responsereset]]>> <</replace>> <</link>> </span> </span> </div> </h1> <p></p> <h3> /*BUTTON NOW ALSO DELETES AND REPLENISHES ELEMENTS*/ <<button "GENERATE!">> <<audio "generate" volume 0.6 play>> /*DELETING CURRENT RANDOM ELEMENT FROM EACH CATEGORY*/ <<if $playergender is "male">> <<set $malecharacter.delete($randomcharacter)>> <<else>> <<set $femalecharacter.delete($randomcharacter)>> <</if>> <<set $setting.delete($randomsetting)>> <<set $problem.delete($randomproblem)>> <<set $item.delete($randomitem)>> <<set $response.delete($randomresponse)>> /*ADJECTIVE*/ <<if $adjective.includesAny($backupadjective)>> <<set $randomadjective to $adjective.random()>> <<else>> <<set $adjective to $backupadjective>> <</if>> /*CHARACTER*/ <<if $playergender is "male" and $malecharacter.includesAny($backupmalecharacter)>> <<set $randomcharacter to $malecharacter.random()>> <<elseif $playergender is "female" and $femalecharacter.includesAny($backupfemalecharacter)>> <<set $randomcharacter to $femalecharacter.random()>> <<else>> <<set $malecharacter to $backupmalecharacter>> <<set $femalecharacter to $backupfemalecharacter>> <</if>> /*SETTING*/ <<if $setting.includesAny($backupsetting)>> <<set $randomsetting to $setting.random()>> <<else>> <<set $setting to $backupsetting>> <</if>> /*PROBLEM*/ <<if $problem.includesAny($backupproblem)>> <<set $randomproblem to $problem.random()>> <<else>> <<set $problem to $backupproblem>> <</if>> /*ITEM*/ <<if $item.includesAny($backupitem)>> <<set $randomitem to $item.random()>> <<else>> <<set $item to $backupitem>> <</if>> /*RESPONSE*/ <<if $response.includesAny($backupresponse)>> <<set $randomresponse to $response.random()>> <<else>> <<set $response to $backupresponse>> <</if>> /*RELOAD DIV*/ <<replace "#everything" t8n>> <<include [[everythingreset]]>> <</replace>> <</button>> </h3> </div>
<<set $malecharacter= [ "dwarf", "skeleton", "wizard", "halfling", "goblin", "Knight", "merchant", "man", "prince", "gnome", "elf", "baker", "bandit", "blacksmith", "hermit" ]>> <<set $femalecharacter= [ "witch", "woman", "princess", "sorceress", "farm girl", "fortune teller", "dwarf", "skeleton", "halfling", "duchess", "merchant", "gnome", "elf", "bandit", "blacksmith" ]>> <<set $backupmalecharacter to $malecharacter>> <<set $backupfemalecharacter to $femalecharacter>> 20 characters
<<set $problem= [ "loses $his weapon", "is attacked by a bloodthirsty goblin", "is tricked by a slippery creature", "loses $his sister", "is plagued by a ghoul", "is injured in a fight", "awakens a horde of angry gnomes", "accidentally freezes time", "is turned into a toad", "is caught in a fire", "opens a dark portal", "is hunted by a beast", "falls under a dark spell", "finds out $his $wife has been captured", "touches a cursed relic", "is betrayed by $his friend", "is sealed underground", "eats a poisonous mushroom", "is surrounded by skeleton minions", "is pinned under a rock"]>> <<set $backupproblem to $problem>> 20 problems
<<include [[adjective]]>> <<include [[characters]]>> <<include [[settings]]>> <<include [[problems]]>> <<include [[responses]]>> <<include [[items]]>> <<set $randomsetting to $setting.random()>> <<set $randomproblem to $problem.random()>> <<set $randomitem to $item.random()>> <<set $randomresponse to $response.random()>> <<set $randomcharacter to $malecharacter.random()>> <<set $randomadjective to $adjective.random()>> /*TEMPLATE FOR SOUNDS <<set _bgm = setup.SoundPath + "StartMusic.mp3">> <<cacheaudio "start_bgm" _bgm>>*/ <<set _bgm = setup.SoundPath + "generate.mp3">> <<cacheaudio "generate" _bgm>> <<set _bgm = setup.SoundPath + "character.mp3">> <<cacheaudio "character" _bgm>> <<set _bgm = setup.SoundPath + "setting.mp3">> <<cacheaudio "setting" _bgm>> <<set _bgm = setup.SoundPath + "problem.mp3">> <<cacheaudio "problem" _bgm>> <<set _bgm = setup.SoundPath + "item.mp3">> <<cacheaudio "item" _bgm>> <<set _bgm = setup.SoundPath + "response.mp3">> <<cacheaudio "response" _bgm>>
<<set $setting= [ "is lost in a dark wood.", "is caught in a giant spider's web.", "has just woken a sleeping dragon.", "wakes up in an underground dungeon.", "is trying to cross a murky swamp.", "is looking for a magical pearl in lake.", "has just heard a strange voice on a mountaintop.", "has been banished to a Werewolf's lair.", "has found gold a hidden valley.", "has found a huge egg in the city sewer system.", "has just stepped into a troll's lair.", "has discovered a mysterious fungus beneath the town.", "has discovered an abandoned tower in the forest.", "has just stepped into a haunted cavern.", "has just heard $his brother's voice at the bottom of a well."]>> <<set $backupsetting to $setting>> 15 Setting/starts
<<set $response= [ "rescue $his friend.", "find $his family.", "break a spell.", "escape the darkness.", "make a sacrifice to save others.", "find treasure.", "get $his revenge.", "avenge $his father.", "catch an enemy.", "close a portal.", "light a fire.", "turn $himself into a beast.", "drive off goblins.", "kill a monster.", "make a deal with a dragon.", "free the town." ]>> <<set $backupresponse to $response>> 16 responses
<<nobr>> <span class="animated swing merriweather maastrichtblue glowwhite" style="display: inline-block;"> <<link $randomcharacter>> <<audio "character" volume 0.5 play>> <<set $malecharacter.delete($randomcharacter)>> <<set $femalecharacter.delete($randomcharacter)>> <<if $playergender is "male" and $malecharacter.includesAny($backupmalecharacter)>> <<set $randomcharacter to $malecharacter.random()>> <<elseif $playergender is "female" and $femalecharacter.includesAny($backupfemalecharacter)>> <<set $randomcharacter to $femalecharacter.random()>> <<else>> <<set $malecharacter to $backupmalecharacter>> <<set $femalecharacter to $backupfemalecharacter>> <<goto [[display]]>> <</if>> <<replace "#character" t8n>> <<include [[characterreset]]>> <</replace>> <</link>> </span> <</nobr>>
<<nobr>> <span class="animated bounce indieflower apple glowblack" style="display: inline-block;"> <<link $randomsetting>> <<audio "setting" volume 0.5 play>> <<set $setting.delete($randomsetting)>> <<if $setting.includesAny($backupsetting)>> <<set $randomsetting to $setting.random()>> <<else>> <<set $setting to $backupsetting>> <<goto [[display]]>> <</if>> <<replace "#setting" t8n>> <<include [[settingreset]]>> <</replace>> <</link>> </span> <</nobr>>
<<nobr>> <span class="animated flipInY merriweather maastrichtblue glowwhite" style="display: inline-block;"> <<link $randomproblem>> <<audio "problem" volume 0.5 play>> <<set $problem.delete($randomproblem)>> <<if $problem.includesAny($backupproblem)>> <<set $randomproblem to $problem.random()>> <<else>> <<set $problem to $backupproblem>> <<goto [[display]]>> <</if>> <<replace "#problem" t8n>> <<include [[problemreset]]>> <</replace>> <</link>> </span> <</nobr>>
<<nobr>> <span class="animated swing indieflower apple glowblack" style="display: inline-block;"> <<link $randomitem>> <<audio "item" volume 0.5 play>> <<set $item.delete($randomitem)>> <<if $item.includesAny($backupitem)>> <<set $randomitem to $item.random()>> <<else>> <<set $item to $backupitem>> <<goto [[display]]>> <</if>> <<replace "#item" t8n>> <<include [[itemreset]]>> <</replace>> <</link>> </span> <</nobr>>
<<nobr>> <span class="animated fadeInUp merriweather lime glowblack" style="display: inline-block;"> <<link $randomresponse>> <<audio "response" volume 0.5 play>> <<set $response.delete($randomresponse)>> <<if $response.includesAny($backupresponse)>> <<set $randomresponse to $response.random()>> <<else>> <<set $response to $backupresponse>> <<goto [[display]]>> <</if>> <<replace "#response" t8n>> <<include [[responsereset]]>> <</replace>> <</link>> </span> <</nobr>>
<<set $item= [ "a magical rope", "a flaming torch", "a smelly onion", "a golden key", "a magic carpet", "an ancient sword", "$his wits", "a spell", "a talking pig", "an old prophecy", "$his pet", "dragon fire", "a potion", "an enchanted lute", "a crossbow", "a staff", "a magic mirror", "a trick", "a trap", "an invisibility cloak"]>> <<set $backupitem to $item>> 20 items
<span id="adjective"> <span class="animated bounceInLeft indieflower lime glowblack" style="display: inline-block;"> <<link $randomadjective>> <<audio "setting" volume 0.5 play>> <<set $adjective.delete($randomadjective)>> <<if $adjective.includesAny($backupadjective)>> <<set $randomadjective to $adjective.random()>> <<else>> <<set $adjective to $backupadjective>> <<goto [[display]]>> <</if>> <<replace "#adjective" t8n>> <<include [[adjectivereset]]>> <</replace>> <</link>> </span> </span> <span id="character"> <span class="animated bounceInRight merriweather maastrichtblue glowwhite" style="display: inline-block;"> <<link $randomcharacter>> <<audio "character" volume 0.5 play>> <<set $malecharacter.delete($randomcharacter)>> <<set $femalecharacter.delete($randomcharacter)>> <<if $playergender is "male" and $malecharacter.includesAny($backupmalecharacter)>> <<set $randomcharacter to $malecharacter.random()>> <<elseif $playergender is "female" and $femalecharacter.includesAny($backupfemalecharacter)>> <<set $randomcharacter to $femalecharacter.random()>> <<else>> <<set $malecharacter to $backupmalecharacter>> <<set $femalecharacter to $backupfemalecharacter>> <<goto [[display]]>> <</if>> <<replace "#character" t8n>> <<include [[characterreset]]>> <</replace>> <</link>> </span> </span> <span id="setting"> <span class="animated bounce indieflower apple glowblack" style="display: inline-block;"> <<link $randomsetting>> <<audio "setting" volume 0.5 play>> <<set $setting.delete($randomsetting)>> <<if $setting.includesAny($backupsetting)>> <<set $randomsetting to $setting.random()>> <<else>> <<set $setting to $backupsetting>> <<goto [[display]]>> <</if>> <<replace "#setting" t8n>> <<include [[settingreset]]>> <</replace>> <</link>> </span> </span> <span class="grey merriweather">$He</span> <span id="problem"> <span class="animated flipInY merriweather maastrichtblue glowwhite" style="display: inline-block;"> <<link $randomproblem>> <<audio "problem" volume 0.5 play>> <<set $problem.delete($randomproblem)>> <<if $problem.includesAny($backupproblem)>> <<set $randomproblem to $problem.random()>> <<else>> <<set $problem to $backupproblem>> <<goto [[display]]>> <</if>> <<replace "#problem" t8n>> <<include [[problemreset]]>> <</replace>> <</link>> </span> </span> <span class="grey merriweather">but uses</span> <span id="item"> <span class="animated swing indieflower apple glowblack" style="display: inline-block;"> <<link $randomitem>> <<audio "item" volume 0.5 play>> <<set $item.delete($randomitem)>> <<if $item.includesAny($backupitem)>> <<set $randomitem to $item.random()>> <<else>> <<set $item to $backupitem>> <<goto [[display]]>> <</if>> <<replace "#item" t8n>> <<include [[itemreset]]>> <</replace>> <</link>> </span> </span> <span class="grey merriweather">to</span> <span id="response"> <span class="animated fadeInUp merriweather lime glowblack" style="display: inline-block;"> <<link $randomresponse>> <<audio "response" volume 0.5 play>> <<set $response.delete($randomresponse)>> <<if $response.includesAny($backupresponse)>> <<set $randomresponse to $response.random()>> <<else>> <<set $response to $backupresponse>> <<goto [[display]]>> <</if>> <<replace "#response" t8n>> <<include [[responsereset]]>> <</replace>> <</link>> </span> </span>
<h1><p class="merriweather"> merriweather </p> <p class="bangers"> bangers </p> <p class="acme"> acme </p> <p class="indieflower"> indie flower </p> <p class="bowlby"> bowlby </p> <p class="luckiestguy"> luckiestguy </p> <p class="lacquer"> lacquer </p> <p class="nanum"> nanum </p> <p class="changa"> changa </p> </h1> <span class="grey">to</span> <<button "poo">> <<audio "character" volume 1 play>> <</button>>
@@.smear;This text should be smeared@@ @@.shadow;This text should have a shadow@@ @@.emboss;This text should be embossed@@ @@.blur;This text should be blurred@@ @@.blurrier;This text should be blurrier@@ @@.smear;This text should be smeared@@ @@.mirror;This text should be mirrored@@ @@.upside-down;This text should be upside-down@@ @@.fade-in-out;This text should fade in and out@@ @@.rumble;This text should be rumbling@@ @@.shudder;This text should be shuddering@@ @@.fade-in;TEXT GOES HERE@@ <span class="animated bounce" style="display: inline-block;">Hello! (Animates once)</span> <span class="animated NAMEOFANIMATION" style="display: inline-block;"> <span class="animated hinge" style="display: inline-block;">test</span> <span class="animated fadeIn" style="display: inline-block;">test</span> <span class="animated fadeOutUp" style="display: inline-block;">test</span> <span class="custom-light-speed" style="display: inline-block;">Custom</span>
<h1> <span id="alldone"> Loading <span id="drink"> essential game files </span>... </span> <<timed 0.2s t8n>> <<replace "#drink">>less essential game files<</replace>>\ <<next>><<replace "#drink">>smarter AI<</replace>>\ <<next>><<replace "#drink">>witty comebacks<</replace>>\ <<next>><<replace "#drink">>irrelevant trivia<</replace>>\ <<next>><<replace "#drink">>random sheep<</replace>>\ <<next>><<replace "#drink">>obnoxious puns<</replace>>\ <<next>><<replace "#drink">>triumphant laughter<</replace>>\ <<next>><<replace "#alldone">> Main character gender: <<button "male">> <<set $playergender to "male">> <<set $he to "he">> <<set $him to "him">> <<set $his to "his">> <<set $himself to "himself">> <<set $He to "He">> <<set $Him to "Him">> <<set $His to "His">> <<set $Himself to "Himself">> <<set $son to "daughter">> <<set $witch to "witch">> <<set $wife to "wife">> <<set $randomcharacter to $malecharacter.random()>> <<goto [[display]]>> <</button>> <<button "female">> <<set $playergender to "female">> <<set $he to "she">> <<set $him to "her">> <<set $his to "her">> <<set $himself to "herself">> <<set $He to "She">> <<set $Him to "Her">> <<set $His to "Her">> <<set $son to "son">> <<set $witch to "wizard">> <<set $wife to "husband">> <<set $Himself to "Herself">> <<set $randomcharacter to $femalecharacter.random()>> <<goto [[display]]>> <</button>> <</replace>> <</timed>> </h1>
<<set $adjective= [ "A cynical", "A poor", "A lonely", "A friendly", "An old", "A starving", "A stubborn", "A young", "An ambitious", "A timid", "An angry", "A sick" ]>> <<set $backupadjective to $adjective>> 12 adjectives
<span class="animated bounceInLeft indieflower lime glowblack" style="display: inline-block;"> <<link $randomadjective>> <<audio "setting" volume 0.5 play>> <<set $adjective.delete($randomadjective)>> <<if $adjective.includesAny($backupadjective)>> <<set $randomadjective to $adjective.random()>> <<else>> <<set $adjective to $backupadjective>> <<goto [[display]]>> <</if>> <<replace "#adjective" t8n>> <<include [[adjectivereset]]>> <</replace>> <</link>> </span>
A fun writing tool, by Gil Walker 2020 /*HIEV'S FULLSCREEN BUTTON (StoryCaption)*/ <input type="checkbox" id="fullscreen"><label for="fullscreen" class="gofullscreen"><img src="data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m82 324v87c0 11 8 19 19 19h88c15 0 22-17 11-29l-27-28 83-83 83 83-27 28c-11 11-4 29 11 29h88c11 0 19-8 19-19v-87c0-15-17-23-29-12l-28 27-83-83 83-83 28 27c11 11 29 3 29-12v-87c0-11-8-19-19-19h-88c-15 0-22 17-11 29l27 28-83 83-83-83 27-28c11-11 4-29-11-29h-88c-11 0-19 8-19 19v87c0 15 17 23 29 12l28-27 83 83-83 83-28-27c-12-11-29-4-29 12zm374 188h-400c-30 0-56-26-56-56v-400c0-30 26-56 56-56h400c30 0 56 26 56 56v400c0 30-27 56-56 56zm-5-471h-390c-14 0-20 10-20 20v390c0 19 15 20 20 20h390c12 0 20-7 20-20v-390c0-17-11-20-20-20z' fill='%23fff' /%3E%3C/svg%3E" alt="Go full screen" title="Go full screen" class="fullscreenImg"></label><label for="fullscreen" class="exitfullscreen"><img src="data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m65 99 83 83-27 28c-11 11-4 29 11 29h88c11 0 19-8 19-19v-87c0-15-17-23-29-12l-28 27-83-83zm117 265 28 27c11 11 29 3 29-12v-87c0-11-8-19-19-19h-88c-15 0-22 17-11 29l27 28-83 83 34 34zm265 49-83-83 27-28c11-11 4-29-11-29h-88c-11 0-19 8-19 19v87c0 15 17 23 29 12l28-27 83 83zm-117-265-28-27c-12-11-29-4-29 12v87c0 11 8 19 19 19h88c15 0 22-17 11-29l-27-28 83-83-34-34zm126 364h-400c-30 0-56-26-56-56v-400c0-30 26-56 56-56h400c30 0 56 26 56 56v400c0 30-27 56-56 56zm-5-471h-390c-17 0-20 10-20 20v390c0 16 10 20 20 20h390c8 0 20-4 20-20v-390c0-18-12-20-20-20z' fill='%23fff' /%3E%3C/svg%3E" alt="Exit full screen" title="Exit full screen" class="fullscreenImg"></label>
<h1><div id="passwordArea">
Welcome! Before you begin, please enter your game code below:
</div> <<textbox "$password" "">><<button "Go!">> <<set $password to $password.toLowerCase()>> <<if $password.indexOf('gilbogabbins') > -1>> <<goto [[loading]]>> <<audio "setting" volume 0.5 play>> <<else>> <<replace "#passwordArea">>Hmm that doesn't look right...<</replace>> <</if>> <</button>></h1> <h2>(ask your teacher if you don't know)</h2> <<script>>UIBar.stow()<</script>>
Double-click this passage to edit it.