<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected {color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
;1-2
:Communication attempt
;3-4
:Contest
;5-6
:Conversation
;7-8
:Defection
;9-10
:Disease outbreak
;11-12
:Dream
;13-14
:Equipment failure
;15-16
:Escape
;17-18
:Fight
;19-20
:Hijacking
;21-22
:Hired as scapegoat
;23-26
:Hired for job
;27-28
:Hired to test foe
;29-30
:Hired to test location
;31-32
:Hired to test PC
;33-34
:Hired under false pretences
;35-36
:Illness
;37-38
:Infiltration
;39-40
:Kidnapping
;41-42
:Lost item
;43-44
:Man-made disaster
;45-46
:Mistaken identity
;47-50
:Murder
;51-52
:Natural disaster
;53-54
:Old friend
;55-56
:Poisoning
;57-58
:Prophesy
;59-60
:Race
;61-64
:Regular patrol
;65-66
:Rescue
;67-68
:Revelation
;69-70
:Sabotage
;71-72
:Unprovoked assault
;73-74
:Upset neighbours
;75-76
:Vehicle failure
;77-78
:Visitation
;79-80
:Wakes in strange place
;81-82
:War
;1-10
:Car
;11-14
:Climb
;15-16
:Fall
;17-18
:Fighter
;19-28
:Foot
;29-30
:Helicopter
;31-36
:Horse
;37-38
:Jet
;39-40
:Jetski
;41-48
:Motorbike
;49-50
:Plane
;51-52
:Pushbike
;53-60
:Free Running
;61-64
:Scuba
;65-66
:Skydiving
;67-68
:Spaceship
;69-70
:Speedboat
;71-72
:Submarine
;73-74
:Truck
;1-4
:Forensic clue
;5-8
:Future logical clue
;9-14
:Future physical clue
;15-18
:Future verbal clue
;19-24
:Future written clue
;25-30
:Immediate logical clue
;31-38
:Immediate physical clue
;39-44
:Immediate verbal clue
;45-48
:Immediate written clue
;49-50
:Red herring
;1-4
:Blinding lights [-2]
;5-6
:Blizzard [-2]
;7-30
:Blustery [-1]
;31-34
:Dust [-1]
;35-40
:Earthquake [-2]
;41-60
:Flashing lights [-1]
;61-68
:Foggy [-2]
;69-72
:Gale [-3]
;73-92
:Glare [-1]
;93-102
:Gravel [-1]
;103-106
:Hail [-1]
;107-108
:Hurricane [-2]
;109-118
:Icy [-1]
;119-122
:Insect cloud [-1]
;123-132
:Loose footing [-1]
;133-180
:Loud noise
;181-186
:Low light [-1]
;187-194
:Misty [-1]
;195-218
:Mud [-1]
;219-222
:Pitch dark [-3]
;223-230
:Pot Holes [-1]
;231-240
:Raining [-1]
;241-264
:Sand [-1]
;265-274
:Slanted [-1]
;275-284
:Sleet [-1]
;285-294
:Slippery [-1]
;295-304
:Sloped [-1]
;305-310
:Smoke [-1]
;311-314
:Snow [-1]
;315-318
:Storm [-1]
;319-320
:Tornado [-2]
;321-322
:Typhoon [-1]
;323-328
:Unstable [-1]
;329-360
:Windy [-1]
;361-362
:Avalanche
;363-364
:Fog of tiny insects
;365-366
:Meteor Shower
;367-368
:Mud Slide
;369-370
:Thick Crowd [-2]
;371-372
:Crowd [-1]
;373-374
:Cover [-1]
;375-376
:Traffic [-1]
* Battle
* Campaign
* Crusade
* Insurrection
* Rebellion
* Revolt
* Revolution
* Struggle
* Uprising
* War
* Challenge
* Clash
* Conflict
* Confrontation
* Controversy 
* Demonstration 
* Discord
* Dispute
* Dissension
* Disturbance
* Encounter
* Fray 
* Insurgence
* Meeting
* Mutiny
* Skirmish
* Raid
* Assault
* Siege
* Offensive
* Charge
* Revolt
* Struggle
;1-6
:Area guards
;7-10
:Automated defences
;11-12
:Collapsing sections
;13-14
:Disease risk
;15-16
:Earthquake
;17-18
:Explosion
;19-20
:Explosive gas
;21-26
:Falling
;27-32
:Fire
;33-36
:Flood
;37-38
:Fragile items
;39-40
:Geographic isolation
;41-42
:Humiliation
;43-44
:Independent fight
;45-48
:Lose objects
;49-50
:Public exposure
;51-54
:Security system
;55-56
:Snakes, spiders, etc
;57-58
:Strange customs
;59-60
:Surface
;61-62
:Theft
;63-64
:Toxic gas
;65-66
:Underwater
;67-68
:Unrelated death
;69-70
:Vehicle crash
;71-76
:Wrong information
[[Plot]]
* north
* south
* east
* west
!!Rollon Macro
Usage {{{<<rollon tablename|table:string|dice_expression [times|times:number or dice_expression] [dice:dice_expresssion] [separator:sep_string] [resultName:string] [force:number]>>}}}
!!!Parameters
Parameters may be surrounded by quotes if they are to contain spaces, e.g. table:"My Table"  Any parameter except table may be passed "prompt" in order to cause the macro to prompt you for that value when it's run.
*table - the name of the table to roll on, or a dice expression like 3d6+1.  Required
*times - the number of times to roll, or a dice expression.  Defaults to 1.  Prompt will prompt for a number or dice expression when you click
*dice - dice to use when rolling.  If not provided, rollon will roll a die precisely as large as the list or, for definition lists, as large as the highest number in the final entry in the list
*separator - character to use to separate multiple results if times > 1.  Use {{{<br>}}} for line breaks
*resultName - name of the tiddler to place the result in.  Otherwise will default to the name of the tiddler the macro is in, with " Result (n)" appended, where n is 1 higher than the highest like-named tiddler
*force - force the number rolled to be a particular number.  Primarily used for debugging
!!!Tables
Tables are any Tiddler that contains:
* an unordered list (introduced with {{{*}}})
* an ordered list (introduced with {{{#}}})
* a definition list (introduced with {{{;}}} on the term line and {{{:}}} on the definition line.  Be careful that you alternate definitions and terms... you can tell if it's right by whether the terms are bold and the definitions below and indented)
* a sequence of lines beginning with numbers (and optionally having a {{{.}}} after the number)

If the Tiddler has any prefatory material prior to the start of the first list in the Tiddler, that text is copied into the result.
If the Tiddler has any postscript material after the end of the last list in the Tiddler, that text is ignored.  This is useful for notes and annotations.

Lists don't actually have to be contiguous.  That is, since rollon is using a textual search, it will consider two lists in the same Tiddler as being the same as one.  That's probably a bug, but doesn't seem worth eliminating.  I wouldn't advise counting on that behavior to continue in future versions of Rollon Plugin.
;1-2
:as part of a Job,
;3-4
:because of information,
;5-8
:because they have the widget,
;9-12
:because they want the widget,
;13-14
:due to a special Person,
;15-16
:due to accidental,
;17-18
:as caught in crossfire,
;19-20
:due to Location,
;21-22
:due to their past,
;23-24
:for information,
;25-28
:for money,
;1-6
:bat
;7-12
:cat
;13-18
:ferret
;19-24
:fox
;25-30
:hawk
;31-36
:mouse
;37-42
:octopus
;43-48
:owl
;49-54
:rat
;55-60
:raven
;61-66
:seagull
;67-72
:shrew
;73-78
:squirrel
;79-84
:tiny snake
;85-90
:thrush
;91-96
:toad
;97-102
:vulture
;103-108
:weasel
;109-111
:butterfly
;112-114
:chameleon
;113-117
:cricket
;118-120
:dove
;121-123
:gecko
;124-126
:hedgehog
;127-129
:hermit crab
;130-132
:humming bird
;133-135
:lizard
;136-138
:locust
;139-141
:mantis
;142-144
:parrot
;145-147
:rabbit
;148-150
:scorpion
;151-153
:slug
;154-156
:snail
;157-159
:tarentella
;160-162
:turtle
;163
:blink dog
;164-165
:celestial hawk
;166-167
:construct (reroll)
;168
:deathfang
;169-170
:dire rat
;171-175
:wyrmling dragon
;176-177
:fiendish tiny viper
;178
:flying snake
;179-180
:formian worker
;181-182
:giant lizard
;183
:hell hound
;184
:hippogriff
;185-186
:homunculus
;187-188
:ice mephit
;189-190
:imp
;191-192
:leopard
;193-194
:medium-size viper
;195-196
:pseudodragon
;197-198
:quasit
;199-200
:shocker lizard
;201-202
:small air elemental
;203-204
:small earth elemental
;205-206
:small fire elemental
;207-208
:small water elemental
;209-210
:stitched flesh (reroll)
;211-212
:stirge
;213-214
:token (reroll)
;215-216
:undead (reroll)
;217-218
:wolverine
;219
:howler
;220
:krenshar
;221
:lynx
;222
:osquip
;223
:spitting crawler lizard
;224
:tressym
;225
:winter wolf
* New year
* Christmas
* bazaar
* cavalcade
* carnival
* circus
* episode
* exhibition
* fair
* feast
* festival
* festivity
* fiesta
* gala
* holiday
* jamboree
* merriment
* pageant
* parade
* party
* revel
* anniversary
* banquet
* birthday
* celebration
* commemoration
* funeral
* wedding
* harvest
* birth
* death
* affair
* buffet
* event
* fĂȘte
* occasion
* trade event
* trade fair
* traveling fair
* harvest fair
* spring fair
* All Saint's Day
* All Soul's Day
* "Deity" Day
* bicentenary
* bicentennial
* centenary
* centennial
* new moon
* full moon
* waning moon
* winter solstice
* spring equinox
* summer solstice
* autumnal equinox
#Sloping floor
#Clutching weeds
#Collapsing floor
#Deep moss
#Deep puddles
#Dirt road
#Dusty floor
#Flagstones
#Icy floor
#Loose Gravel
#Mosaic tiles
#Muddy ground
#Paved road
#Pot holed road
#Sandy floor
#Slimy rocks
#Slippery lino
#Spiked floor
#Steeply Slanted
#Tiled floor
#Angled floor
#Uneven grass
#Unstable floor
#Wooden boards
;1-4
:Be a dangerous animal
;5-6
:Be a friend
;7-10
:Be a monster
;11-18
:Be a recurring foe
;19-20
:Be a superior officer
;21-22
:Be dishonest
;23-24
:Be driven by Revenge
;25-26
:Be immune to direct conflict
;27-28
:Be immune to pc powers
;29-30
:Be respected public figure
;31-32
:Blackmail
;33-34
:Capture x
;35-36
:Cause trouble
;37-38
:Delay x
;39-40
:Deny other danger
;41-42
:Distract x
;43-44
:Dob pc`s in to authorities
;45-46
:Elude
;47-48
:Escape in vehicle
;49-50
:Find x
;51-52
:Flee x
;53-54
:Follow x
;55-56
:Have fooled locals
;57-58
:Have good reasons
;59-60
:Have insurance
;61-62
:Have loyalty of locals
;63-64
:Have picked pc to fail
;65-66
:Have safe location
;67-68
:Keep pc`s imprisoned
;69-70
:Kill x
;71-72
:Lure x
;73-74
:Prevent pc spreading info
;75-76
:Protect
;77-78
:Protect location
;79-80
:Stop x
;81-82
:Take advantage of good deeds
;83-84
:Take x
;85-86
:Threaten x
;87-88
:Try to hide
;89-90
:Watch x
;1-2
:bright
;3-4
:dark
;5-6
:dry
;7-8
:fragrant
;9-10
:polished
;11-12
:pristine
;13-14
:slick
;15-16
:smelly
;17-18
:stained
;19-20
:sticky
;21-22
:wet
;1-2
:Broken
;3-4
:Compelling
;5-6
:Elaborate
;7-8
:Exotic
;9-10
:Fine
;11-12
:Majestic
;13-14
:Mysterious
;15-16
:Neat
;17-18
:New
;19-20
:Old
;21-22
:Ornate
;23-24
:Rough
;25-26
:Stained
;27-28
:Strange
;1-12
:A
;13-14
:A couple of
;15-18
:A few
;19-20
:Several
;21
:Lots of
;1-2
:Alter
;3-4
:Arch
;5-6
:Armchair
;7-8
:Barrels
;9-10
:Bed
;11-12
:Cabinet
;13-14
:Ceiling
;15-16
:Chair
;17-18
:Column
;19-20
:Crates
;21-22
:Dome
;23-24
:Door
;25-26
:Fireplace
;27-28
:Fountain
;29-30
:Fresco
;31-32
:Magic Circle
;33-34
:Mosaic
;35-36
:Passage
;37-38
:Pedestal
;39-40
:Pillar
;41-42
:Pit
;43-44
:Pool
;45-46
:Room
;47-48
:Secret Door
;49-50
:Shrine
;51-52
:Stairway
;53-54
:Statue
;55-56
:Table
;57-58
:Tapestry
;59-60
:Throne
;61-62
:Vegetation
;63-64
:Wall
1 Alpha
2 Beta
3 Gamma
4 Delta
5 Epsilon
6 Zeta
7 Eta
8 Theta
9 Iota
10 Kappa
11 Lambda
12 Mu
13 Nu
14 Xi
15 Omicron
16 Pi
17 Rho
18 Sigma
19 Tau
20 Upsilon
21 Phi
22 Chi
23 Psi
24 Omega
{{{''bold''}}} = ''bold''
{{{__underline__}}} = __underline__
{{{//italics//}}} = //italics//
{{{@@highlight@@}}} = @@highlight@@
{{{~~subscript~~}}} = ~~subscript~~
{{{^^superscript^^}}} = ^^superscript^^
{{{!subheading}}} = !subheading
{{{!!subsubheading}}} = !!subsubheading
{{{!!!subsubsubheading}}} = !!!subsubsubheading

{{{
table = |table|
Link = [[phrase]]
AutoLink = AutoLink
NonAutoLink = ~NonAutoLink 
<<<
quote text
<<<
---- = horozontal line
[[text|url]]

macros
<<list>> = lists all tiddlers in alphabetical order
<<tag word>> = lists all of the tiddlers with tag of "word".
<<slider chkSlider Welcome slider "Click here to slide out the Welcome message">> = a single button which slides out a full tiddler, and shows the mesage when mous over'ed.
<<tabs tabsClass
Macros "A description of macros in TiddlyWiki" Macros
Tags "A description of how tags work in TiddlyWiki" Tags
>> = multiple sliders
<<sparkline 163 218 231 236 232 266 176 249 289 1041 1835 2285 3098 2101 1755 3283 3353 3335 2898 2224 1404 1354 1825 1839 2142 1942 1784 1145 979 1328 1611>> = creates nifty bar graphs.
}}}
;1-24
:_
;25-40
:elevated
;41-54
:sunken
;55-64
:cliff
;65-72
:underground
;73-78
:island
;79-82
:underwater
;1-2
:Across A Chasm
;3-4
:Behind a fake wall
;5-6
:Buried
;7-8
:Chained up
;9-10
:Hanging
;11-12
:Mounted
;13-14
:Underwater
;15-16
:In a pool
;17-18
:Invisible
;19-20
:Nearby
;21-22
:Vehicle
;23-24
:In Tree Tops
;25-26
:Force field
;27-28
:Inside an enemy
;29-30
:Levitating
;31-32
:Locked Chest
;33-34
:On a body
;35-36
:Across a bridge
;37-38
:Natural feature
;39-40
:Worn by a foe
;41-42
:Worn by an ally
<<rollon "Item roller">>
;1-2
:-2
;3-10
:-1
;11-50
:0
;51-130
:+1
;131-160
:+2
;161-172
:+3
;173-178
:+4
;179-180
:+5
;1-14
:Ability
;15-28
:Abjuration
;29-40
:Absorption
;41-60
:Abundance
;61-78
:Acid
;79-80
:Adaptation
;81-90
:Aerial servant
;91-92
:Aging
;93-110
:Aiding
;111-172
:Air
;173-174
:Alchemy
;175-190
:Allseeing Eye
;191-208
:Alter self
;209-214
:Anger
;215-222
:Animal control
;223-224
:Animal form
;225-240
:Animals
;241-272
:Animate dead
;273-292
:Animating
;293-302
:Annihilate
;303-312
:Anti - magic
;313-326
:Antidote
;327-332
:Apathy
;333-334
:Aquatic
;335-360
:Armour piercing
;361-370
:Assessment
;371-382
:Astral form
;383-390
:Astral gate
;391-402
:Atonement
;403-406
:Attacking
;407-408
:Attraction
;409-428
:Audible glamour
;429-446
:Augury
;447-458
:Avoidance#
;459-502
:Banishment
;503-518
:Banquet
;519-520
:Banshee
;521-558
:Barkskin
;559-574
:Bastion
;575-586
:Battle
;587-592
:Battlemaster
;593-608
:Beacon
;609-612
:Beguiling
;613-628
:Benight
;629-630
:Berserk
;631-654
:Binding
;655-660
:Bird shot
;661-672
:Birds
;673-686
:Blasting
;687-688
:Blending
;689-708
:Blessing#
;709-732
:Blindness
;733-748
:Blinking
;749-756
:Blizzard
;757-774
:Blur
;775-788
:Bravery#
;789-790
:Brilliance
;791-794
:Brittleness
;795-796
:Bubbles
;797-798
:Building
;799-830
:Burning
;831-848
:Camouflage
;849-868
:Cantrips
;869-896
:Change
;897-914
:Chanting
;915-926
:Chaos
;927-994
:Charm
;995-1004
:Choking
;1005-1056
:Clairaudience
;1057-1122
:Clairvoyance
;1123-1216
:Climbing
;1217-1222
:Cloning
;1223-1224
:Closing
;1225-1236
:Clouds
;1237-1248
:Cold
;1249-1250
:Collapsing
;1251-1272
:Colour
;1273-1932
:Combat
;1933-1934
:Comfort
;1935-1978
:Command
;1979-2002
:Commune
;2003-2006
:Conflagration
;2007-2028
:Confusion
;2029-2082
:Conjuring
;2083-2084
:Constriction
;2085-2096
:Contact planes
;2097-2110
:Contagion
;2111-2120
:Contingency
;2121-2154
:Continual light#
;2155-2166
:Contrary
;2167-2406
:Control
;2407-2414
:Control undead
;2415-2458
:Control weather
;2459-2474
:Create food#
;2475-2502
:Create water#
;2503-2532
:Creation
;2533-2540
:Creeping doom
;2541-2544
:Crushing
;2545-2546
:Crystal
;2547-2554
:Cure blindness#
;2555-2562
:Cure deafness#
;2563-2588
:Cure disease#
;2589-2708
:Cure Poison
;2709-2724
:Curses
;2725-2734
:Cutting
;2735-2772
:Daemons
;2773-2774
:Damned
;2775-2784
:Damocles
;2785-2794
:Dancing
;2795-2814
:Dancing lights
;2815-2850
:Darkness
;2851-2868
:Dazzle
;2869-2888
:Deafness
;2889-2938
:Death
;2939-2946
:Deathlight
;2947-2962
:Deceit
;2963-2978
:Defender
;2979-2986
:Delay
;2987-3050
:Delusion
;3051-3056
:Demand
;3057-3074
:Depths
;3075-3084
:Destiny
;3085-3102
:Detect aura
;3103-3120
:Detect charm#
;3121-3136
:Detect Enemy
;3137-3174
:Detect evil#
;3175-3204
:Detect gold
;3205-3222
:Detect invisible
;3223-3236
:Detect lie#
;3237-3366
:Detect Magic
;3367-3386
:Detect Metal
;3387-3396
:Detect path#
;3397-3416
:Detect poison
;3417-3430
:Detect scrying
;3431-3476
:Detect Traps
;3477-3496
:Detect undead
;3497-3498
:Detection
;3499-3548
:Devils
;3549-3550
:Devouring
;3551-3770
:Dexterity
;3771-3788
:Digging
;3789-3802
:Dimension door
;3803-3804
:Dimensional hole
;3805-3876
:Diminution
;3877-3878
:Direction
;3879-3892
:Disease
;3893-3902
:Dishearten
;3903-3914
:Disintegration
;3915-3918
:Disjunction
;3919-3930
:Dismissal
;3931-3942
:Dispel Evil#
;3943-3984
:Dispel Magic
;3985-3986
:Displacement
;3987-3996
:Disruption
;3997-4006
:Distance
;4007-4018
:Distortion
;4019-4044
:Divination
;4045-4048
:Djinni
;4049-4060
:Domination
;4061-4062
:Doppleganger
;4063-4082
:Dragonbreath
;4083-4130
:Dreams
;4131-4138
:Duel
;4139-4148
:Dwarven
;4149-4160
:Earthquake
;4161-4164
:Elven
;4165-4178
:Embog
;4179-4192
:Emotion
;4193-4216
:Enchantment
;4217-4236
:Endurance
;4237-4242
:Energy Bolt
;4243-4246
:Energy Drain
;4247-4262
:Enhancement
;4263-4290
:Enlarge#
;4291-4300
:Ensnarement
;4301-4352
:Entangle
;4353-4384
:Enthral
;4385-4386
:Entrapment
;4387-4406
:Erasure
;4407-4462
:ESP
;4463-4500
:Ethereal
;4501-4572
:Evaporation
;4573-4594
:Evil
;4595-4600
:Evil eye
;4601-4608
:Exaction
;4609-4624
:Explosion
;4625-4660
:Extension
;4661-4670
:Extinguish
;4671-4680
:Eyebite
;4681-4692
:Fabrication
;4693-4712
:Faire fire
;4713-4744
:Faith
;4745-4772
:Falsehood
;4773-4792
:Familiar
;4793-4794
:Fashion
;4795-4858
:Fear
;4859-4918
:Fearless
;4919-4928
:Feasting
;4929-4960
:Feather fall
;4961-4972
:Feeblemind
;4973-5004
:Feign death
;5005-5064
:Fire
;5065-5096
:Fire trap
;5097-5104
:Fissure
;5105-5150
:Flame
;5151-5166
:Flame walk
;5167-5328
:Flaming
;5329-5336
:Flash
;5337-5356
:Floating
;5357-5420
:Flying
;5421-5424
:Flying Steed
;5425-5460
:Fog
;5461-5462
:Folding
;5463-5480
:Food
;5481-5498
:Foolishness
;5499-5540
:Force
;5541-5560
:Force Field
;5561-5570
:Foreboding
;5571-5588
:Forgeting
;5589-5606
:Fortune
;5607-5618
:Fossilise
;5619-5626
:Fragmentation
;5627-5642
:Freezing
;5643-5648
:Frenzy
;5649-5690
:Friendship
;5691-5710
:Frost
;5711-5726
:Fumbling
;5727-5738
:Gate
;5739-5748
:Geas
;5749-5764
:Gel round
;5765-5774
:Glass
;5775-5780
:Glassteel
;5781-5798
:Glitter
;5799-5800
:Golem
;5801-5808
:Grasping
;5809-5814
:Gravity
;5815-5834
:Grease
;5835-5910
:Growth#
;5911-5938
:Hallucination
;5939-5954
:Haste
;5955-5970
:Havoc
;5971-6482
:Healing
;6483-6508
:Health
;6509-6526
:Heat
;6527-6538
:Hellfire
;6539-6574
:Heroism
;6575-6588
:Hiding
;6589-6608
:Hold portal
;6609-6618
:Hollow point
;6619-6620
:Holocaust
;6621-6636
:Holy
;6637-6638
:Hostility
;6639-6654
:House
;6655-6656
:Hunger
;6657-6696
:Hypnosis
;6697-6744
:Ice
;6745-6764
:Identification
;6765-6806
:Illumination
;6807-6946
:Illusion
;6947-6966
:Immune Cutting
;6967-6986
:Immune Damage
;6987-7006
:Immune Disease
;7007-7026
:Immune Lethal
;7027-7046
:Immune Magic
;7047-7066
:Immune Poisons
;7067-7070
:Impregnable Sphere
;7071-7074
:Imprisonment#
;7075-7080
:Incendiary
;7081-7084
:Influence
;7085-7100
:Infravision
;7101-7120
:Inmw
;7121-7138
:Inquiry
;7139-7164
:Insect#
;7165-7184
:Insw
;7185-7200
:Intangibility
;7201-7226
:Intelligence
;7227-7230
:Intelligent
;7231-7250
:Invis to animals
;7251-7270
:Invis to undead
;7271-7378
:Invisibility
;7379-7380
:Invoking
;7381-7444
:Invulnerability
;7445-7462
:Irritation
;7463-7478
:Item
;7479-7498
:Jumping
;7499-7516
:Knock#
;7517-7552
:Know alignment#
;7553-7554
:Knowledge
;7555-7566
:Lamentation
;7567-7588
:Languages#
;7589-7622
:Lasersight
;7623-7640
:Laughter
;7641-7646
:Leadership
;7647-7732
:Levitation
;7733-7784
:Life
;7785-7788
:Life stealing
;7789-7828
:Light#
;7829-7928
:Lightning
;7929-7984
:Location
;7985-8056
:Longevity
;8057-8084
:Looks
;8085-8094
:Lore
;8095-8166
:Love
;8167-8172
:Luck
;8173-8268
:Lycanthrope
;8269-8280
:Madness
;8281-8502
:Magic
;8503-8520
:Magic lock
;8521-8560
:Magic missiles
;8561-8578
:Magic mouth
;8579-8580
:Magic tricks
;8581-8600
:Magical Aura
;8601-8616
:Magnetic
;8617-8618
:Magnification
;8619-8624
:Maze
;8625-8636
:Meditation
;8637-8672
:Melding
;8673-8696
:Memory
;8697-8716
:Mending
;8717-8754
:Message
;8755-8774
:Meteors
;8775-8780
:Mind blank
;8781-8796
:Mind cloak
;8797-8814
:Mind trap
;8815-8816
:Mind wipe
;8817-8822
:Mindpool
;8823-8826
:Miracle cure
;8827-8856
:Mirage
;8857-8876
:Mirror image
;8877-8890
:Mirrors
;8891-8908
:Misdirection
;8909-8918
:Mislead
;8919-8920
:Missiles
;8921-8932
:Monstrous
;8933-8944
:Moonbeam
;8945-8964
:Moonglow
;8965-8984
:Mount
;8985-8994
:Move earth
;8995-9010
:Murmurs
;9011-9112
:Negation
;9113-9120
:Nemesis
;9121-9134
:Night
;9135-9396
:Nightvision
;9397-9416
:Nigtsight
;9417-9424
:Nobility
;9425-9440
:Nourish
;9441-9448
:Nova
;9449-9458
:Oak
;9459-9470
:Obedient parts
;9471-9488
:Obscuring
;9489-9490
:Obsession
;9491-9634
:Occult
;9635-9636
:Opening
;9637-9664
:Oracle
;9665-9672
:Pacify
;9673-9674
:Panic
;9675-9744
:Paralysis
;9745-9764
:Part water
;9765-9776
:Pass Unseen
;9777-9788
:Passwall
;9789-9794
:Path
;9795-9814
:Peril
;9815-9820
:Permanency
;9821-9856
:Persuasion
;9857-9908
:Petrification
;9909-9952
:Phantasm
;9953-9968
:Phantom steed
;9969-9984
:Phasing
;9985-9986
:Piercing
;9987-9988
:Pilfering
;9989-10002
:Plane shift
;10003-10038
:Plant control
;10039-10068
:Plant growth
;10069-10080
:Plant passage
;10081-10200
:Poison
;10201-10260
:Polymorph
;10261-10280
:Portal
;10281-10344
:Possession
;10345-10348
:Power
;10349-10366
:Prayer
;10367-10384
:Prismatic
;10385-10392
:Prophesy
;10393-10468
:Protection
;10469-10476
:Psychic chains
;10477-10502
:Psychic Talent
;10503-10604
:Purification
;10605-10656
:Pyrotechnics
;10657-10668
:Quest
;10669-10670
:Rage
;10671-10690
:Rain
;10691-10716
:Rainbow
;10717-10746
:Raise Dead
;10747-10766
:Read magic
;10767-10796
:Reflect Spells
;10797-10810
:Reflecting
;10811-10830
:Reflection
;10831-10852
:Regeneration
;10853-10876
:Reincarnation
;10877-10906
:Remove curse#
;10907-10926
:Remove fear#
;10927-10942
:Remove paralysis
;10943-10952
:Repel animals
;10953-10966
:Repel insects
;10967-10978
:Repel plants
;10979-10996
:Repel undead
;10997-11012
:Repel undead
;11013-11084
:Replenish
;11085-11094
:Reptiles
;11095-11104
:Repulsion
;11105-11114
:Resist Cold
;11115-11188
:Resist damage
;11189-11204
:Resist detection
;11205-11234
:Resist disease
;11235-11304
:Resist Evil#
;11305-11322
:Resist Fear
;11323-11356
:Resist Fire
;11357-11370
:Resist lightning
;11371-11404
:Resist magic
;11405-11432
:Resist missiles
;11433-11448
:Resist negative
;11449-11484
:Resist poison
;11485-11504
:Resist tracking
;11505-11512
:Restoration#
;11513-11560
:Resurrection#
;11561-11578
:Retreat
;11579-11586
:Reverse gravity
;11587-11604
:Reverse personality
;11605-11606
:Rotting
;11607-11646
:Ruin
;11647-11652
:Rune
;11653-11664
:Salt round
;11665-11684
:Sanctuary
;11685-11724
:Scope
;11725-11730
:Screening
;11731-11750
:Scrying
;11751-11778
:Secrets
;11779-11792
:Secure shelter
;11793-11794
:Seeing
;11795-11804
:Seeking
;11805-11816
:Seeming
;11817-11828
:Sending
;11829-11856
:Sentinels
;11857-11864
:Sequester
;11865-11876
:Serpents
;11877-11878
:Sex change
;11879-11912
:Shadow
;11913-11922
:Shadow magic
;11923-11934
:Shadow monster
;11935-11940
:Shadow mount
;11941-11948
:Shadow walk
;11949-11962
:Shadowbolt
;11963-11980
:Shadowself
;11981-11992
:Shapeshifting
;11993-11994
:Sharpness
;11995-12012
:Shattering
;12013-12094
:Shielding
;12095-12114
:Shocking
;12115-12118
:Shooting stars
;12119-12132
:Shouting
;12133-12136
:Sight
;12137-12194
:Silence
;12195-12216
:Silencer
;12217-12218
:Silver
;12219-12230
:Simulacrum
;12231-12234
:Singing
;12235-12240
:Sinking
;12241-12242
:Skill
;12243-12260
:Slaying
;12261-12318
:Sleep
;12319-12354
:Slipperiness
;12355-12382
:Slow
;12383-12386
:Smiting
;12387-12568
:Smoke
;12569-12570
:Smothering
;12571-12588
:Snake charming
;12589-12604
:Snakes
;12605-12606
:Sneezing
;12607-12636
:Solid slugs
;12637-12654
:Soul storing
;12655-12660
:Soul Trap
;12661-12672
:Soulbane
;12673-12700
:Speak with animals
;12701-12716
:Speak with dead
;12717-12730
:Speak with plants
;12731-12842
:Speed
;12843-12846
:Spell storing
;12847-12864
:Spiders
;12865-12892
:Spikes
;12893-12896
:Spinning
;12897-12906
:Stalking
;12907-12908
:Stargate
;12909-12926
:Stargaze
;12927-12942
:Starshine
;12943-12952
:Steel Claw
;12953-12966
:Sticks to snakes#
;12967-12984
:Stinking cloud
;12985-13068
:Stone
;13069-13096
:Stone shape
;13097-13120
:Stone to mud#
;13121-13134
:Stoneskin
;13135-13144
:Stonespeak
;13145-13158
:Storm
;13159-13436
:Strength
;13437-13452
:Striking
;13453-13460
:Stunning
;13461-13462
:Submission
;13463-13474
:Succour#
;13475-13500
:Suggestion
;13501-13676
:Summoning
;13677-13692
:Sunlight
;13693-13728
:Superheroism
;13729-13738
:Survival
;13739-13758
:Suspend Animation
;13759-13764
:Swiftness
;13765-13778
:Swimming
;13779-13792
:Symbol
;13793-13812
:Taunt
;13813-13904
:Telekinesis
;13905-13922
:Telepathy
;13923-13972
:Teleporting
;13973-13982
:Teleporting via plants
;13983-13996
:Tentacles
;13997-14010
:Thunder
;14011-14034
:Tides
;14035-14038
:Time
;14039-14050
:Timestop
;14051-14080
:Tongues#
;14081-14094
:Tracers
;14095-14112
:Tracking
;14113-14118
:Trance
;14119-14136
:Tranq round
;14137-14148
:Transfix
;14149-14232
:Transform
;14233-14242
:Transmutation
;14243-14262
:Trapping
;14263-14264
:Travel
;14265-14300
:Treasure finding
;14301-14326
:Trickery
;14327-14344
:Tripping
;14345-14366
:True seeing#
;14367-14414
:Truth
;14415-14416
:Tsunami
;14417-14418
:Tunnelling
;14419-14454
:Undead control
;14455-14550
:Undeath
;14551-14552
:Unholy
;14553-14578
:Unrestricted movement
;14579-14598
:Unseen servant
;14599-14612
:Vacancy
;14613-14628
:Vampiric touch
;14629-14636
:Vanish
;14637-14646
:Vaporise
;14647-14656
:Veil
;14657-14676
:Ventriloquism
;14677-14690
:Vitality
;14691-14700
:Vorpal
;14701-14726
:Wall of fire
;14727-14746
:Wall of fog
;14747-14758
:Wall of force
;14759-14772
:Wall of ice
;14773-14784
:Wall of iron
;14785-14798
:Wall of magic
;14799-14820
:Wall of stone
;14821-14830
:Wall of thorns
;14831-14874
:Warding
;14875-14886
:Warmth
;14887-15076
:Warning
;15077-15104
:Warp wood#
;15105-15182
:Water
;15183-15308
:Water Breathing
;15309-15328
:Water to dust
;15329-15370
:Water walking
;15371-15388
:Wave Mastery
;15389-15444
:Weaken
;15445-15456
:Wealth
;15457-15466
:Weather
;15467-15484
:Web
;15485-15488
:Weird
;15489-15506
:Whispering
;15507-15518
:Willpower
;15519-15554
:Wind
;15555-15592
:Wind walk
;15593-15594
:Winged
;15595-15614
:Wish
;15615-15622
:Withering
;15623-15642
:Wizard mark
;15643-15658
:Wolfcall
;15659-15684
:Wonder
;15685-15714
:Wood
;15715-15734
:Wounding
;15735-15750
:Wraithform
;15751-15754
:X-ray vision
;15755-15756
:Yearning
;15757-15792
:Zombie creation
<<rollon "Item bonus">> <<rollon "Item what">> <<rollon "Item effect">>.
<<rollon "Item bonus">> <<rollon "Item what">> <<rollon "Item effect">>.
<<rollon "Item bonus">> <<rollon "Item what">> <<rollon "Item effect">>.
<<rollon "Item bonus">> <<rollon "Item what">> <<rollon "Item effect">>.
<<rollon "Item bonus">> <<rollon "Item what">> <<rollon "Item effect">>.
<<rollon "Item bonus">> <<rollon "Item what">> <<rollon "Item effect">>.
;1-108
:2h sword [+2/+1] of
;109-422
:Amulet of
;423-684
:Arrows of
;685-688
:Artefact of
;689-710
:Assault rifle [+3/0] of
;711-720
:Bag of
;721-722
:Ball of
;723-842
:Battle Axe [+2/+0] of
;843-852
:Bolas of
;853-1888
:Book of
;1889-1904
:Boots of
;1905-1908
:Bottle of
;1909-1928
:Bow, Long [+2r/0] of
;1929-1932
:Bowl of
;1933-1936
:Braces of
;1937-1940
:Brazier of
;1941-1942
:Broach of
;1943-2002
:Broadsword [+1r/+r] of
;2003-2006
:Broom of
;2007-2020
:Can of
;2021-2022
:Candle of
;2023-2024
:Card Deck of
;2025-2030
:Carpet of
;2031-2034
:Censor of
;2035-2430
:Chain mail [+3] of
;2431-2434
:Chime of
;2435-2446
:Cloak of
;2447-2448
:Crystal of
;2449-2452
:Cube of
;2453-2454
:Decanter of
;2455-2458
:Drum of
;2459-2464
:Dust of
;2465-2524
:Exotic weapon of
;2525-2528
:Eye of
;2529-2530
:Feather of
;2531-2532
:Figurine of
;2533-2592
:Flail [+1/+0] of
;2593-2614
:Flash-bang of
;2615-2618
:Flask of
;2619-2620
:Flute of
;2621-2622
:Gas can of
;2623-2628
:Gas of
;2629-2630
:Gate of
;2631-2638
:Gauntlets of
;2639-2642
:Gem of
;2643-2646
:Girdle of
;2647-2654
:Grenade launcher of
;2655-2672
:Grenade of
;2673-2712
:Halberd [+2/+0] of
;2713-2792
:Hammer [+1/+0] of
;2793-2892
:Hand Axe [+1/+0] of
;2893-3068
:Hardened leather [+1r] of
;3069-3078
:Heavy Machine gun [+5/0] of
;3079-3090
:Helm of
;3091-3100
:Horn of
;3101-3146
:Hunting rifle [+3/0] of
;3147-3150
:Incense of
;3151-3180
:Instruments of
;3181-3224
:Javelin [+3r/-2];[+r/-2] of
;3225-3228
:Jewel of
;3229-3230
:Jug of
;3231-3440
:Knife, Dagger [+r/+r];[+r/+0] of
;3441-3456
:Large assault rifle [+4/0] of
;3457-3496
:Large pistol [+1r/0] of
;3497-3584
:Leather Jerkin [+1] of
;3585-3588
:Lenses of
;3589-3594
:Light Machine gun [+4/0] of
;3595-4434
:Longsword [+1/+r] of
;4435-4436
:lyre of
;4437-4546
:Mace [+1/+r] of
;4547-4564
:Machine pistol [+2/0] of
;4565-4566
:Mattock of
;4567-4568
:Maul [+1r/+0] of
;4569-4572
:Medal of
;4573-4612
:Military pike of
;4613-4616
:Mine of
;4617-4624
:Mirror of
;4625-4744
:Morning-star [+1r/+0] of
;4745-4752
:Necklace of
;4753-4766
:Net of
;4767-4768
:Ointment of
;4769-4780
:Pack of
;4781-4784
:Pearl of
;4785-4786
:Pigments of
;4787-4838
:Pistol [+1/0] of
;4839-5454
:Plate [+4] of
;5455-7256
:Potion of
;7257-7258
:Purse of
;7259-7358
:Quarrels of
;7359-7360
:Raw of
;7361-7368
:Rcarab of
;7369-7370
:Relic of
;7371-8206
:Ring mail [+2] of
;8207-8606
:Ring of
;8607-8618
:Robe of
;8619-8626
:Rocket Launcher of
;8627-8638
:Rope of
;8639-8664
:Sawnoff Shotgun [+2r/0] of
;8665-8724
:Scimitar of
;8725-9824
:Scroll of
;9825-9984
:Shield [+1] of
;9985-10116
:Shortsword [+r/+r] of
;10117-10150
:Shotgun [+3/0] of
;10151-10170
:Shuriken [+r/0] of
;10171-10180
:Signal Flare of
;10181-10230
:Sling [+r/0] of
;10231-10242
:Small assault rifle [+2r/0] of
;10243-10272
:Small pistol [+0r/0] of
;10273-10288
:Smoke Grenade of
;10289-10302
:Sniper rifle [+4/0] of
;10303-10304
:Spade of
;10305-10444
:Spear [+2/-r];[+r/-1] of
;10445-10448
:Sphere of
;10449-10456
:Spray can of
;10457-10556
:Staff [+r/+r] of
;10557-10564
:Stone of
;10565-10872
:Talisman of
;10873-10902
:Trident of
;10903-10916
:Unique Item of
;10917-10922
:Vial of
;10923-11522
:Wand of
;11523-11552
:X-bow [+2/0] of
;11553-12000
:<<rollon "Treasure">>
;1-2
:Lit from Below
;3-4
:Ambient light
;5-6
:Aurora (northern/southern lights)
;7-8
:Background Phosphorescence
;9-10
:Beacon light
;11-12
:Bio-luminescence
;13-14
:Blinding light
;15-18
:Bright Bonfire
;19-26
:Bright Daylight
;27-32
:Candle Light
;33-36
:Dark cloudy night
;37-42
:Darkly shadowed
;43-46
:Dawn
;47-50
:Dusk
;51-54
:Flaming torches
;55-56
:Flickering light
;57-58
:Glowing strange colours
;59-60
:Marsh lights
;61-64
:Moonlight
;65-66
:Narrow Beams of light
;67-70
:Overcast daylight
;71-72
:Overhead lighting
;73-76
:Pitch Black [-3]
;77-78
:Reflected light
;79-80
:Soft light
;81-82
:Sparkling points of light
;83-88
:Starlight
;89-90
:Strange Patterned light
;91-92
:Strobe light
;93-94
:Unspecified luminous
/***
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Version:''|1.1.0|
|''Date:''|mar 17, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#LoadRemoteFileHijack|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
***/
//{{{
version.extensions.LoadRemoteFileThroughProxy = {
 major: 1, minor: 1, revision: 0, 
 date: new Date("mar 17, 2007"), 
 source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};

if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
 url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 }
 return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
#Arrest
#Blackmail
#Call for lockdown
#Capture
#Cause trouble
#Defend Foe
#Defend PC`s
#Defend themselves
#Delay
#Distract
#Elude
#Find
#Flee
#Follow
#Keep PC`s imprisoned
#Kill
#Lure
#Mediate
#Panic
#Protect
#Record events
#Riot
#Send for reinforcements
#Stop
#Take
#Threaten
#Watch
<<rollon "Plot2">>
<<rollon "Names">>
<<rollon "Traps">>
<<rollon "Item">>
<<rollon "Monster">>
<<rollon "Person">>

<<rollon "Weekday">>
<<rollon "Direction">>
<<rollon "Festivities">>
<<rollon "Greek">>
<<rollon "Familiar">>
<<rollon "Seasons">>
<<rollon "Rain">>
<<rollon "Plot">>


[[Help]]
MainMenu
 Tuesday,  full moon.   There is some light rain once or twice today.<br><br>Dungeon hack(kill-loot) _<br>Faulty Judgement - Mistaken One, Victim of Mistake, Author of Mistake, Guilty Person _<br>Courier(get x to y) _<br><br>Begin: Illness for information,.  Mistaken identity for money,.  Hired to test PC for information,.<br>Tiwsts: External disaster.  PC is local/local is PC.  PC is local/local is PC.  Is a red herring.  Presents as different plot.  Must be done in secret.  <br><br>Widget: Makes Antimagical, One Way, Collapses.<br>  Geases, Is involved in a separate plot, Sinks.<br>  Makes Intelligent, Talks Normally, Points.<br>Urban: sunken, Pristine, Inn (Tavern/Hotel/Motel).  elevated, Deserted, Vehicle (car/bus/train/ship/boat).<br>Wild: elevated, Inhabited, Deep snowfield (tundra/iceberg).  _, Pristine, Forest (heavy/light/new growth/old growth/petrified).<br><br>Characters Must: _ , Avoid ending up like X, not , Protect x secretly, _ , Be someone special to plot.<br>Foes Must: not , Have safe location, _ , Be a superior officer, _ , Escape in vehicle.<br>Locals Must: _ , Keep PC`s imprisoned, _ , Keep PC`s imprisoned, not , Keep PC`s imprisoned.<br><br>Danger: Fire, Humiliation, Flood.<br>Complications: Gravel [-1], Sand [-1], Slanted [-1].<br>Furnish: wet, Strange, Pillar.  stained, New, Arch.<br>Treasure: Hanging Painting.  In a pool Sword blade. Underwater, bag of Copper Pieces.<br>General stuff: Delay x, Trick x.  Snowing, Bright and sunny.  Sparkling points of light, Dawn.<br>Climb, Plane.  Unstable floor, Collapsing floor.  Mooks, Elite.<br>Immediate logical clue, Future verbal clue.  Small [+0r], Gargantuan [+2r].<br><br>Traps<br>Locked Chest Disease [ 10 / 11 ]<br>Invisible An arrow trap [ 5 / 6 ]<br>Levitating Rune of spell [ 5 / 9 ]<br>Inside an enemy Disease [ 12 / 3 ]<br>Force field Spring trap [ 8 / 11 ]<br>Natural feature Spear trap [ 14 / 7 ]<br><br><br><br>Names:  Morri   ua` -dono is a male  Year 11 Student.  They are  very short and   very heavy build.  They have  gentle  brown	 eyes with  long	  mousey brown	 hair.<br><br> Ichihara  on ko is a female  Year 12 Student.  They are  medium height and   heavy build.  They have  bespectacled  milky eyes with  messy  blonde	 hair.<br><br> Kagawa   uichiro  mag uan is a male  Teacher.  They are  medium height and   very heavy build.  They have  hollow  emerald	 eyes with  curly	  raven black	 hair.<br><br> Takagaki   o z mi is a female  Teacher.  They are  short and   light build.  They have  pale  bloodshot	 eyes with  shaved	  silver grey	 hair.<br><br> Urogataya   sh e t uan` oshi is a male  Teacher.  They are  tall and   light build.  They have  bespectacled  bloodshot	 eyes with  wavy	  raven black	 hair.<br><br> Ishikawa   un g mi is a female  PC`s Younger Sibling.  They are  tall and   very heavy build.  They have  gentle  milky eyes with  long	  mousey brown	 hair.<br><br>Items<br>+1 Longsword [+1/+r] of Enchantment.<br>+3 Scroll of Lycanthrope.<br>0 Censor of Speed.<br>+1 Battle Axe [+2/+0] of ESP.<br>+5 Potion of Purification.<br>+1 Potion of Superheroism.<br><br>Monsters<br>Several  Artificially Cyborged  dinosaur deinonychus<br><br>A  Monsterous Vampiric (eastern)  swan<br><br>Several  Trained Mercenary  vampire western<br><br>A couple of  Trained Mercenary  thief<br><br>A  Monsterous Aquatic  electric eel<br><br>Several  Artificial Android  angel<br><br>A  Magical (Dynamic Sorcerer)  scorpion giant<br><br><br>
A  Otherworldly Time Fugitive (future)  rhinoceros<br><br>A  Magical Elemental Wind   wraith<br><br>Several  Trained Criminal  spriggan<br><br>A few  Magical (Witch/Wizard)  goblin<br><br>A few  Otherworldly Mutant  mastiff<br><br>A  Artificially Hybrid -  boar and   tick giant<br><br>A couple  Artificially DNA enhanced  yeti<br><br>
<<rollon "Furnish number">> <<rollon "Template">> <<rollon "Monsters">>

<<rollon "Furnish number">> <<rollon "Template">> <<rollon "Monsters">>

<<rollon "Furnish number">> <<rollon "Template">> <<rollon "Monsters">>

<<rollon "Furnish number">> <<rollon "Template">> <<rollon "Monsters">>

<<rollon "Furnish number">> <<rollon "Template">> <<rollon "Monsters">>

<<rollon "Furnish number">> <<rollon "Template">> <<rollon "Monsters">>

<<rollon "Furnish number">> <<rollon "Template">> <<rollon "Monsters">>

* animated object
* ant giant
* ant giant queen
* ant giant soldier
* ape
* apeman
* assassin
* robot
* baboon
* badger
* banshee
* barbarian
* basilisk
* bat
* battle-master
* bear-cave
* chaos-beast
* beastman
* bee giant
* killer bee swarm
* bee queen giant
* bee swarm
* beetle giant
* bird maiden
* black bear
* panda
* boar
* brownie
* bull
* cadaver
* caitshee
* carp giant
* cat
* catfish giant
* centipede giant
* cerebral parasite
* cheetah
* chimera
* claw crawling
* cleric
* cockatrice
* crab giant
* crab man
* crawler
* crayfish giant
* crocodile
* cyclops
* demon
* oni
* dinosaur anatosaurus
* dinosaur ankylosaurus
* dinosaur antrodemus
* dinosaur apatosaurus
* dinosaur brachiosaurus
* dinosaur camarasaurus
* dinosaur ceratosaurus
* dinosaur cetiosaurus
* dinosaur deinonychus
* dinosaur dinichtys
* dinosaur diplodocus
* dinosaur diptheradon
* dinosaur elasmosaurus
* dinosaur gorgosaurus
* dinosaur iguanadon
* dinosaur lambeosaurus
* dinosaur megalosaurus
* dinosaur megaraptor
* dinosaur monoclonius
* dinosaur mosasaurus
* dinosaur paleocinthus
* dinosaur pteranadon
* dinosaur stegosaurus
* dinosaur triceratops
* dinosaur tyrannosaurus rex
* dog
* donkey
* doppelganger
* dracolich
* dracoman
* dragon
* dragon lung shen
* dryad
* eagle giant
* electric eel
* Wind elemental
* Earth elemental
* Fire elemental
* River elemental
* Heaven elemental
* Thunder elemental
* Void elemental
* Spirit elemental
* Forest elemental
* Music elemental
* Wind Spirit
* Earth Spirit
* Fire Spirit
* River Spirit
* Heaven Spirit
* Thunder Spirit
* Void Spirit
* Spirit Spirit
* Forest Spirit
* Music Spirit
* elemental mage
* elephant
* mammoth
* elf
* falcon
* angel
* familiar guardian
* flameskull
* floating eye
* fox hoar
* fungus
* ganglion
* gargoyle
* ghost
* ghost haunting
* ghost manifesting
* giant
* goat giant
* goblin
* golem flesh
* robot
* mecha
* golem stone
* great white shark
* groaning spirit
* gryphon
* guard dog
* hag
* harpy
* hawk
* hippogriff
* homunculous
* horse
* howler monkey
* hunting dog
* hydra
* imp
* animated plant
* jaguar
* kappa
* kraken
* kraken squid
* leech giant
* leopard
* lion
* living statue
* lizard
* mage
* balrog
* mammoth
* manticore
* mantis praying giant
* mastiff
* medusa
* mimic
* minotaur
* monk
* monkey
* mountain lion
* mouse
* mummy
* mystic
* naga
* naga spirit
* necromancer
* nightmare
* ninja
* nymph
* animate tree
* octopus
* ogre
* oni
* orc
* owl
* samurai
* pegasus
* phantom
* phoenix
* piranha flying giant
* pixie
* frog giant
* toad giant
* poison snake 
* poison snake giant
* polar bear
* pony
* porcupine giant
* psychic
* python
* python giant
* rakshasa
* Special forces
* rat
* raven
* rhinoceros
* roc
* sabertooth tiger
* sage
* satyr
* saurian
* scorpion giant
* spider
* sea snake
* selkie
* shadow
* shark
* slug giant
* sorcerer
* spawn
* spectre
* sphinx
* spider
* spider giant
* spriggan
* sprite
* squid giant
* sting ray
* strangle weed
* succubus
* swan
* thief
* tick giant
* tiger
* troll
* turtle giant
* unicorn
* vampire western
* vampire eastern
* vampire spawn
* wasp giant
* wight
* will-o-wisp
* witch
* wolf
* wraith
* wyvern
* yeti
* zombie
* b
* d
* g
* h
* j
* k
* m
* n
* p
* r
* s
* t
* y
* z
;1-250
:<<rollon "Name Japan Vow">>
;251-430
:<<rollon "Name Japan Vow">><<rollon "Name Japan Con">>
;431-433
:<<rollon "Name Japan Syl">><<rollon "Name Japan Vow">>
;434-436
:<<rollon "Name Japan Syl">><<rollon "Name Japan Vow">><<rollon "Name Japan Con">><<rollon "Name Japan Vow">>
;437
:<<rollon "Name Japan Vow">><<rollon "Name Japan Con">><<rollon "Name Japan Vow">>
;438
:<<rollon "Name Japan Vow">><<rollon "Name Japan Con">><<rollon "Name Japan Vow">><<rollon "Name Japan Con">><<rollon "Name Japan Vow">>
;439
:<<rollon "Name Japan Con">><<rollon "Name Japan Vow">><<rollon "Name Japan Con">><<rollon "Name Japan Vow">>
;1-100
:ko
;101-200
:mi
;201-210
:hime
;211-220
:-chan
;211-230
:ue
;231
:-in
;232
:`
* Abe 
* Abukara 
* Adachi 
* Aida 
* Aihara 
* Aizawa 
* Ajibana 
* Akaike 
* Akamatsu 
* Akatsuka 
* Akechi 
* Akera 
* Akimoto 
* Akita 
* Akutagawa 
* Amagawa 
* Amaya 
* Amori 
* Anami 
* Ando 
* Anzai 
* Aoki 
* Arai 
* Arakawa 
* Araki 
* Arakida 
* Arato 
* Arihyoshi 
* Arishima 
* Arita 
* Ariwa 
* Ariwara 
* Asahara 
* Asahi 
* Asai 
* Asano 
* Asanuma 
* Asari 
* Ashia 
* Ashida 
* Ashikaga 
* Asuhara 
* Atshushi 
* Ayabito 
* Ayugai 
* Baba 
* Baisotei 
* Bando 
* Bunya
* Chiba
* Chikamatsu
* Chikanatsu
* Chino
* Chishu
* Choshi
* Daishi 
* Dan 
* Date 
* Dazai 
* Deguchi 
* Deushi 
* Doi 
* Ebina 
* Ebisawa 
* Eda 
* Egami 
* Eguchi 
* Ekiguchi 
* Endo 
* Endoso 
* Enoki 
* Enomoto 
* Erizawa 
* Eto 
* Etsuko 
* Ezakiya
* Fuchida
* Fugunaga
* Fujikage
* Fujimaki
* Fujimoto
* Fujishima
* Fujita
* Fujiwara
* Fukao
* Fukuda
* Fukumitsu
* Fukunaka
* Fukuoka
* Fukusaku
* Fukushima
* Fukuyama
* Fukuzawa
* Fumihiko
* Funabashi
* Funaki
* Funakoshi
* Furusawa
* Fuschida
* Fuse
* Futabatei
* Fuwa
* Gakusha 
* Genda 
* Genji 
* Gensai 
* Godo 
* Goto 
* Gushiken 
* Hachirobei 
* Haga 
* Hagino 
* Hagiwara 
* Hama 
* Hamacho 
* Hamada 
* Hamaguchi 
* Hamamoto 
* Hanabusa 
* Hanari 
* Handa 
* Hara 
* Harada 
* Haruguchi 
* Hasegawa 
* Hasekura 
* Hashimoto 
* Hasimoto 
* Hatakeda 
* Hatakeyama 
* Hatayama 
* Hatoyama 
* Hattori 
* Hayakawa 
* Hayami 
* Hayashi 
* Hayashida 
* Hayata 
* Hayuata 
* Hida 
* Hideaki 
* Hideki 
* Hideyoshi 
* Higashikuni 
* Higashiyama 
* Higo 
* Higoshi 
* Higuchi 
* Hike 
* Hino 
* Hira 
* Hiraga 
* Hiraki 
* Hirano 
* Hiranuma 
* Hiraoka 
* Hirase 
* Hirasi 
* Hirata 
* Hiratasuka 
* Hirayama 
* Hiro 
* Hirose 
* Hirota 
* Hiroyuki 
* Hisamatsu 
* Hishida 
* Hishikawa 
* Hitomi 
* Hiyama 
* Hohki 
* Hojo 
* Hokusai 
* Honami 
* Honda 
* Hori 
* Horigome 
* Horigoshi 
* Horiuchi 
* Horri 
* Hoshino 
* Hosokawa 
* Hosokaya 
* Hotate 
* Hotta 
* Hyata 
* Hyobanshi
* Ibi
* Ibu
* Ibuka
* Ichigawa
* Ichihara
* Ichikawa
* Ichimonji
* Ichiro
* Ichisada
* Ichiyusai
* Idane
* Iemochi 
* Ienari 
* Iesada 
* Ieyasu 
* Ieyoshi 
* Igarashi 
* Ihara 
* Ii 
* Iida 
* Iijima 
* Iitaka 
* Ijichi 
* Ijiri 
* Ikeda 
* Ikina 
* Ikoma 
* Imagawa 
* Imaizumi 
* Imamura 
* Imoo 
* Ina 
* Inaba 
* Inao 
* Inihara 
* Ino 
* Inoguchi 
* Inokuma 
* Inoue 
* Inouye 
* Inukai 
* Ippitsusai 
* Irie 
* Iriye 
* Isayama 
* Ise 
* Iseki 
* Iseya 
* Ishibashi 
* Ishida 
* Ishiguro 
* Ishihara 
* Ishikawa 
* Ishimaru 
* Ishimura 
* Ishinomori 
* Ishiyama 
* Isobe 
* Isoda 
* Isozaki 
* Itagaki 
* Itami 
* Ito 
* Itoh 
* Iwahara 
* Iwahashi 
* Iwakura 
* Iwasa 
* Iwasaki 
* Izumi
* Jimbo
* Jippensha
* Jo
* Joshuya
* Joshuyo
* Jukodo
* Jumonji
* Kada 
* Kagabu 
* Kagawa 
* Kahaya 
* Kaibara 
* Kaima 
* Kajahara 
* Kajitani 
* Kajiwara 
* Kajiyama 
* Kakinomoto 
* Kakutama 
* Kamachi 
* Kamata 
* Kaminaga 
* Kamio 
* Kamioka 
* Kamisaka 
* Kamo 
* Kamon 
* Kanada 
* Kanagaki 
* Kanegawa 
* Kaneko 
* Kanesaka 
* Kano 
* Karamorita 
* Karube 
* Karubo 
* Kasahara 
* Kasai 
* Kasamatsu 
* Kasaya 
* Kase 
* Kashiwagi 
* Kasuse 
* Kataoka 
* Katayama 
* Katayanagi 
* Kate 
* Kato 
* Katoaka 
* Katsu 
* Katsukawa 
* Katsumata 
* Katsura 
* Katsushika 
* Kawabata 
* Kawachi 
* Kawagichi 
* Kawagishi 
* Kawaguchi 
* Kawai 
* Kawaii 
* Kawakami 
* Kawamata 
* Kawamura 
* Kawasaki 
* Kawasawa 
* Kawashima 
* Kawasie 
* Kawatake 
* Kawate 
* Kawayama 
* Kawazu 
* Kaza 
* Kazuyoshi 
* Kenkyusha 
* Kenmotsu 
* Kentaro 
* Ki 
* Kido 
* Kihara 
* Kijimuta 
* Kijmuta 
* Kikkawa 
* Kikuchi 
* Kikugawa 
* Kikui 
* Kikutake 
* Kimio 
* Kimiyama 
* Kimura 
* Kinashita 
* Kinoshita 
* Kinugasa 
* Kira 
* Kishi 
* Kiski 
* Kita 
* Kitabatake 
* Kitagawa 
* Kitamura 
* Kitano 
* Kitao 
* Kitoaji 
* Ko 
* Kobayashi 
* Kobi 
* Kodama 
* Koga 
* Kogara 
* Kogo 
* Koguchi 
* Koiso 
* Koizumi 
* Kojima 
* Kokan 
* Komagata 
* Komatsu 
* Komatsuzaki 
* Komine 
* Komiya 
* Komon 
* Kon 
* Konae 
* Konda 
* Kondo 
* Konishi 
* Kono 
* Konoe 
* Koruba 
* Koshin 
* Kotara 
* Kotoku 
* Koyama 
* Koyanagi 
* Kozu 
* Kubota 
* Kudara 
* Kudo 
* Kuga 
* Kumagae 
* Kumasaka 
* Kunda 
* Kunikida 
* Kunisada 
* Kuno 
* Kunomasu 
* Kuramochi 
* Kuramoto 
* Kurata 
* Kurkawa 
* Kurmochi 
* Kuroda 
* Kurofuji 
* Kurogane 
* Kurohiko 
* Kuroki 
* Kurosawa 
* Kusatsu 
* Kusonoki 
* Kusunoki 
* Kuwabara 
* Kwakami 
* Kyubei 
* Maeda 
* Maehata 
* Maeno 
* Maita 
* Makiguchi 
* Makino 
* Makioka 
* Makuda 
* Marubeni 
* Marugo 
* Marusa 
* Maruya 
* Maruyama 
* Masanobu 
* Masaoka 
* Mashita 
* Masoni 
* Masudu 
* Masuko 
* Masuno 
* Masuzoe 
* Matano 
* Matokai 
* Matoke 
* Matsuda 
* Matsukata 
* Matsuki 
* Matsumara 
* Matsumoto 
* Matsumura 
* Matsuo 
* Matsuoka 
* Matsura 
* Matsushina 
* Matsushita 
* Matsuya 
* Matsuzawa 
* Mayuzumi 
* Mazaki 
* Mazawa 
* Mazuka 
* Mifune 
* Mihashi 
* Miki 
* Mimasuya 
* Minabuchi 
* Minami 
* Minamoto 
* Minatoya 
* Minobe 
* Mishima 
* Mitsubishi 
* Mitsuharu 
* Mitsui 
* Mitsukuri 
* Mitsuwa 
* Mitsuya 
* Mitzusaka 
* Miura 
* Miwa 
* Miyagi 
* Miyahara 
* Miyajima 
* Miyake 
* Miyamae 
* Miyamoto 
* Miyazaki 
* Miyazawa 
* Miyoshi 
* Mizoguchi 
* Mizumaki 
* Mizuno 
* Mizutani 
* Modegi 
* Momotami 
* Momotani 
* Monomonoi 
* Mori 
* Moriguchi 
* Morimoto 
* Morioka 
* Morishita 
* Morisue 
* Morita 
* Morri 
* Moto 
* Motoori 
* Motoyoshi 
* Munakata 
* Munkata 
* Muraguchi 
* Murakami 
* Muraoka 
* Murasaki 
* Murase 
* Murata 
* Murkami 
* Muro 
* Muruyama 
* Mushashibo 
* Muso 
* Mutsu
* Nagahama
* Nagai
* Nagano
* Nagasawa
* Nagase
* Nagata
* Nagatsuka
* Nagumo
* Naito
* Nakada
* Nakadai
* Nakadan
* Nakae
* Nakagawa
* Nakahara
* Nakajima
* Nakamoto
* Nakamura
* Nakane
* Nakanishi
* Nakano
* Nakanoi
* Nakao
* Nakasato
* Nakasawa
* Nakasone
* Nakata
* Nakatoni
* Nakayama
* Nakazawa
* Namiki
* Nanami
* Narahashi
* Narato
* Narita
* Nataga
* Natsume
* Nawabe
* Nemoto
* Niijima
* Nijo
* Ninomiya
* Nishi
* Nishihara
* Nishikawa
* Nishimoto
* Nishimura
* Nishimuraya
* Nishio
* Nishiwaki
* Nitta
* Nobunaga
* Noda
* Nogi
* Noguchi
* Nogushi
* Nomura
* Nonomura
* Noro
* Nosaka
* Nose
* Nozaki
* Nozara
* Numajiri
* Numata
* Obinata 
* Obuchi 
* Ochiai 
* Ochida 
* Odaka 
* Ogata 
* Ogiwara 
* Ogura 
* Ogyu 
* Ohba 
* Ohira 
* Ohishi 
* Ohka 
* Ohmae 
* Ohmiya 
* Oichi 
* Oinuma 
* Oishi 
* Okabe 
* Okada 
* Okakura 
* Okamoto 
* Okamura 
* Okanao 
* Okanaya 
* Okano 
* Okasawa 
* Okawa 
* Okazaki 
* Okazawaya 
* Okimasa 
* Okimoto 
* Okita 
* Okubo 
* Okuda 
* Okui 
* Okuma 
* Okuma 
* Okumura 
* Okura 
* Omori 
* Omura 
* Onishi 
* Ono 
* Onoda 
* Onoe 
* Onohara 
* Ooka 
* Osagawa 
* Oshima 
* Oshin 
* Ota 
* Otaka 
* Otake 
* Otani 
* Otomo 
* Otsu 
* Otsuka 
* Ouchi 
* Oyama 
* Ozaki 
* Ozawa 
* Ozu 
* Raikatuji 
* Royama 
* Ryusaki
* Sada
* Saeki
* Saga
* Saigo
* Saiki
* Saionji
* Saito
* Saitoh
* Saji
* Sakagami
* Sakai
* Sakakibara
* Sakamoto
* Sakanoue
* Sakata
* Sakiyurai
* Sakoda
* Sakubara
* Sakuraba
* Sakurai
* Sammiya
* Sanda
* Sanjo
* Sano
* Santo
* Saromi
* Sarumara
* Sasada
* Sasakawa
* Sasaki
* Sassa
* Satake
* Sato
* Satoh
* Satoya
* Sawamatsu
* Sawamura
* Sayuki
* Segawa
* Sekigawa
* Sekine
* Sekozawa
* Sen
* Senmatsu
* Seo
* Serizawa
* Shiba
* Shibaguchi
* Shibanuma
* Shibasaki
* Shibasawa
* Shibata
* Shibukji
* Shichirobei
* Shidehara
* Shiga
* Shiganori
* Shige
* Shigeki
* Shigemitsu
* Shigi
* Shikitei
* Shikuk
* Shima
* Shimada
* Shimakage
* Shimamura
* Shimanouchi
* Shimaoka
* Shimazaki
* Shimazu
* Shimedzu
* Shimizu
* Shimohira
* Shimura
* Shinko
* Shinozaki
* Shinozuka
* Shintaro
* Shiokawa
* Shiomi
* Shionoya
* Shiotani
* Shioya
* Shirahata
* Shirai
* Shiraishi
* Shirane
* Shirasu
* Shiratori
* Shirokawa
* Shiroyama
* Shiskikura
* Shizuma
* Shobo
* Shoda
* Shunji
* Shunsen
* Siagyo
* Soga
* Sohda
* Soho
* Soma
* Someya
* Sone
* Sonoda
* Soseki
* Sotomura
* Suenami
* Sugai
* Sugase
* Sugawara
* Sugihara
* Sugimura
* Sugisata
* Sugita
* Sugitani
* Sugiyama
* Sumitimo
* Sunada
* Suzambo
* Suzuki
* Tabuchi 
* Tadeshi 
* Tagawa 
* Taguchi 
* Taira 
* Taka 
* Takabe 
* Takagaki 
* Takagawa 
* Takagi 
* Takahama 
* Takahashi 
* Takamura 
* Takano 
* Takaoka 
* Takara 
* Takarabe 
* Takashi 
* Takashita 
* Takasu 
* Takasugi 
* Takayama 
* Takeda 
* Takei 
* Takekawa 
* Takemago 
* Takemitsu 
* Takemura 
* Takenouchi 
* Takeshita 
* Taketomo 
* Takeuchi 
* Takewaki 
* Takimoto 
* Takishida 
* Takizawa 
* Taku 
* Takudo 
* Takudome 
* Tamazaki 
* Tamura 
* Tamuro 
* Tanaka 
* Tange 
* Tani 
* Taniguchi 
* Tanizaki 
* Tankoshitsu 
* Tansho 
* Tanuma 
* Tarumi 
* Tatenaka 
* Tatsuko 
* Tatsuno 
* Tatsuya 
* Tawaraya 
* Tayama 
* Temko 
* Tenshin 
* Terada 
* Terajima 
* Terakado 
* Terauchi 
* Teshigahara 
* Teshima 
* Tochikura 
* Togo 
* Tojo 
* Tokaji 
* Tokuda 
* Tokudome 
* Tokuoka 
* Tomika 
* Tomimoto 
* Tomioka 
* Tommii 
* Tomonaga 
* Tomori 
* Tono 
* Torii 
* Torisei 
* Toru 
* Toshishai 
* Toshitala? 
* Toshusai 
* Toyama 
* Toyoda 
* Toyoshima 
* Toyota 
* Toyotomi 
* Tsubouchi 
* Tsucgimoto 
* Tsuchie 
* Tsuda 
* Tsuji 
* Tsujimoto 
* Tsujimura 
* Tsukada 
* Tsukade 
* Tsukahara 
* Tsukamoto 
* Tsukatani 
* Tsukawaki 
* Tsukehara 
* Tsukioka 
* Tsumemasa 
* Tsumura 
* Tsunoda 
* Tsurimi 
* Tsuruga 
* Tsuruya 
* Tsushima 
* Tsutaya 
* Tsutomu 
* Uboshita 
* Uchida 
* Uchiyama 
* Ueda 
* Uehara 
* Uemura 
* Ueshima 
* Uesugi 
* Uetake 
* Ugaki 
* Ui 
* Ukiyo 
* Umari 
* Umehara 
* Umeki 
* Uno 
* Uoya 
* Urogataya 
* Usami 
* Ushiba 
* Utagawa
* Wakai
* Wakatsuki
* Watabe
* Watanabe
* Watari
* Watnabe
* Watoga
* Yakuta 
* Yamabe 
* Yamada 
* Yamagata 
* Yamaguchi 
* Yamaguchiya 
* Yamaha 
* Yamahata 
* Yamakage 
* Yamakawa 
* Yamakazi 
* Yamamoto 
* Yamamura 
* Yamana 
* Yamanaka 
* Yamanouchi 
* Yamanoue 
* Yamaoka 
* Yamashita 
* Yamato 
* Yamawaki 
* Yamazaki 
* Yamhata 
* Yamura 
* Yanagawa 
* Yanagi 
* Yanagimoto 
* Yanagita 
* Yano 
* Yasuda 
* Yasuhiro 
* Yasui 
* Yasujiro 
* Yasukawa 
* Yasutake 
* Yoemon 
* Yokokawa 
* Yokoyama 
* Yonai 
* Yosano 
* Yoshida 
* Yoshifumi 
* Yoshihara 
* Yoshikawa 
* Yoshimatsu 
* Yoshinobu 
* Yoshioka 
* Yoshitomi 
* Yoshizaki 
* Yoshizawa 
* Yuasa 
* Yuhara 
* Yunokawa 
;1-250
:<<rollon "Name Japan Vow">>
;251-500
:<<rollon "Name Japan Vow">>
;501-750
:<<rollon "Name Japan Vow">>
;751-930
:<<rollon "Name Japan Vow">><<rollon "Name Japan Con">>
;931-933
:<<rollon "Name Japan Syl">><<rollon "Name Japan Vow">>
;934-936
:<<rollon "Name Japan Syl">><<rollon "Name Japan Vow">><<rollon "Name Japan Con">><<rollon "Name Japan Vow">>
;937
:<<rollon "Name Japan Vow">><<rollon "Name Japan Con">><<rollon "Name Japan Vow">>
;938
:<<rollon "Name Japan Vow">><<rollon "Name Japan Con">><<rollon "Name Japan Vow">><<rollon "Name Japan Con">><<rollon "Name Japan Vow">>
;939
:<<rollon "Name Japan Con">><<rollon "Name Japan Vow">><<rollon "Name Japan Con">><<rollon "Name Japan Vow">>
* <<rollon "Name Japan Con">>an<<rollon "Name Japan Vow">>
* <<rollon "Name Japan Con">>ag<<rollon "Name Japan Vow">>
* ito
* senshu
* kun
* oshi
* ichi
* kazu
* -san
* -sama
* -dono
* kouhai
* chan
;1-10
:`
;11-15
:ichiro
;16-19
:jiro
;20-22
:saburo
;23-24
:shiro
;25
:goro
* ch
* ts
* sh
* w
* a
* e
* i
* o
* u
* ua
* an
* en
* in
* on
* un
* uan
<<rollon "Name Japan Last">> <<rollon "Name Japan Male">><<rollon "Name Japan Order">><<rollon "Name Japan Male Suf">> is a male <<rollon "Person type">>.  They are <<rollon "Person Height">> and  <<rollon "Person weight">>.  They have <<rollon "Person essence">> <<rollon "Person eyes">> eyes with <<rollon "Person style">> <<rollon "Person hair">> hair.

<<rollon "Name Japan Last">> <<rollon "Name Japan Female">> <<rollon "Name Japan Female Suf">> is a female <<rollon "Person type">>.  They are <<rollon "Person Height">> and  <<rollon "Person weight">>.  They have <<rollon "Person essence">> <<rollon "Person eyes">> eyes with <<rollon "Person style">> <<rollon "Person hair">> hair.

<<rollon "Name Japan Last">> <<rollon "Name Japan Male">><<rollon "Name Japan Order">><<rollon "Name Japan Male Suf">> is a male <<rollon "Person type">>.  They are <<rollon "Person Height">> and  <<rollon "Person weight">>.  They have <<rollon "Person essence">> <<rollon "Person eyes">> eyes with <<rollon "Person style">> <<rollon "Person hair">> hair.

<<rollon "Name Japan Last">> <<rollon "Name Japan Female">> <<rollon "Name Japan Female Suf">> is a female <<rollon "Person type">>.  They are <<rollon "Person Height">> and  <<rollon "Person weight">>.  They have <<rollon "Person essence">> <<rollon "Person eyes">> eyes with <<rollon "Person style">> <<rollon "Person hair">> hair.

<<rollon "Name Japan Last">> <<rollon "Name Japan Male">><<rollon "Name Japan Order">><<rollon "Name Japan Male Suf">> is a male <<rollon "Person type">>.  They are <<rollon "Person Height">> and  <<rollon "Person weight">>.  They have <<rollon "Person essence">> <<rollon "Person eyes">> eyes with <<rollon "Person style">> <<rollon "Person hair">> hair.

<<rollon "Name Japan Last">> <<rollon "Name Japan Female">> <<rollon "Name Japan Female Suf">> is a female <<rollon "Person type">>.  They are <<rollon "Person Height">> and  <<rollon "Person weight">>.  They have <<rollon "Person essence">> <<rollon "Person eyes">> eyes with <<rollon "Person style">> <<rollon "Person hair">> hair.
#not 
#_ 
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'
};

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			config.macros.option.genericCreate(place,'pas',opt,className,desc);
			// checkbox linked with this password "save this password on this computer"
			config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);			
			// text savePasswordCheckboxLabel
			place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
		},
		onChange: config.macros.option.genericOnChange
	}
});

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
			saveOptionCookie(opt);
		return config.options[name] ? "true" : "false";
	}
});

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
			}
		},
		set: function(name,value) {config.options[name] = decodeCookie(value);}
	}
});

// need to reload options to load passwordOptions
loadOptionsCookie();

/*
if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

merge(config.optionsDesc,{
		pasPassword: "Test password"
	});
*/
//}}}
is a <<rollon "Person sex">>, who is a  <<rollon "Person age">>.  They are  <<rollon "Person Height">> and  <<rollon "Person weight">>.  They have  <<rollon "Person essence">>  <<rollon "Person eyes">> eyes with  <<rollon "Person style">>  <<rollon "Person hair">> hair.
* very short
* short
* short
* medium height
* medium height
* medium height
* tall
* tall
* very tall
* prepubescent
* teenage
* young adult
* adult
* middle aged
* elderly
* geriatric
* bright
* pale
* piercing
* gentle
* hollow
* haunted
* shifty
* bespectacled
* mischievous
* blue	
* brown	
* green	
* grey	
* bloodshot	
* emerald	
* sapphire	
* silver	
* clear	
* milky
* mousey brown	
* raven black	
* blonde	
* red	
* silver grey	
* snow white	
* brunette	
* auburn	
* dark brown	

* male
* female
* long	
* short	
* shoulder length	
* curly	
* straight	
* wavy	
* shaved	
* braided	
* messy
* Year 11 Student
* Year 11 Student
* Year 11 Student
* Year 12 Student
* Year 12 Student
* Year 12 Student
* Teacher
* Teacher
* PC`s Parent
* PC`s Younger Sibling
* PC`s Older Sibling
* very light build
* light build
* light build
* average build
* average build
* average build
* heavy build
* heavy build
* very heavy build
;1-4
:Abandoned
;5-8
:Deserted
;9-12
:Hidden
;13-16
:Ruined
;17-18
:Under-construction
;19-20
:Pristine
;21-26
:Inhabited
<<rollon "Weekday">>, <<rollon "Festivities">>.  <<rollon "Rain">>

<<rollon "Plot36">> <<rollon "Plot Description">>
<<rollon "Plot36">> <<rollon "Plot Description">>
<<rollon "Plot36">> <<rollon "Plot Description">>

Begin: <<rollon "Begin">> <<rollon "Due to">>.  <<rollon "Begin">> <<rollon "Due to">>.  <<rollon "Begin">> <<rollon "Due to">>.
Twists: <<rollon Twists>>.  <<rollon Twists>>.  <<rollon Twists>>.  <<rollon Twists>>.  <<rollon Twists>>.  <<rollon Twists>>.  
Widget: <<rollon "Widget effect">>, <<rollon "Widget Plot">>, <<rollon "Widget Does">>.  <<rollon "Widget effect">>, <<rollon "Widget Plot">>, <<rollon "Widget Does">>.  <<rollon "Widget effect">>, <<rollon "Widget Plot">>, <<rollon "Widget Does">>.
Urban: <<rollon "Hidden">>, <<rollon "Place description">>, <<rollon "Urban">>.  <<rollon "Hidden">>, <<rollon "Place description">>, <<rollon "Urban">>.
Wild: <<rollon "Hidden">>, <<rollon "Place description">>, <<rollon "Wild">>.  <<rollon "Hidden">>, <<rollon "Place description">>, <<rollon "Wild">>.
Characters Must: <<rollon "Not">>, <<rollon "pcs must 1">>, <<rollon "Not">>, <<rollon "pcs Must 2">>, <<rollon "Not">>, <<rollon "pcs must 1">>.
Foes Must: <<rollon "Not">>, <<rollon "Foes must">>, <<rollon "Not">>, <<rollon "Foes must">>, <<rollon "Not">>, <<rollon "Foes must">>.
Locals Must: <<rollon "Not">>, <<rollon "Locals Will">>, <<rollon "Not">>, <<rollon "Locals Will">>, <<rollon "Not">>, <<rollon "Locals Will">>.
Danger: <<rollon "Danger">>, <<rollon "Danger">>, <<rollon "Danger">>.
Complications: <<rollon "Complication">>, <<rollon "Complication">>, <<rollon "Complication">>.
Furnish: <<rollon "Furnish Condition">>, <<rollon "Furnish description">>, <<rollon "Furnish thing">>.  <<rollon "Furnish Condition">>, <<rollon "Furnish description">>, <<rollon "Furnish thing">>.
General stuff: <<rollon "STP">>, <<rollon "STP">>.  <<rollon "Weather">>, <<rollon "Weather">>.  <<rollon "Lighting">>, <<rollon "Lighting">>.
<<rollon "Chase">>, <<rollon "Chase">>.  <<rollon "Floor">>, <<rollon "Floor">>.  <<rollon "Villian">>, <<rollon "Villian">>.
<<rollon "Clue">>, <<rollon "Clue">>.  <<rollon "Size">>, <<rollon "Size">>.

Traps
<<rollon "Traps">>

Names
<<rollon "Names">>

Items:  <<rollon "Hide">> <<rollon "Treasure">>.  <<rollon "Hide">> <<rollon "Treasure">>. <<rollon "Hide">> <<rollon "Treasure">>.
<<rollon "Item">>

Monsters
<<rollon "Monster">>
;1-2
:Metaphorical
;3-4
:Personal
;5-24
:_
<<rollon "Weekday">>, <<rollon "Festivities">>.  <<rollon "Rain">>

<<rollon "Plot36">> <<rollon "Plot Description">>
<<rollon "Plot36">> <<rollon "Plot Description">>
<<rollon "Plot36">> <<rollon "Plot Description">>

Monsters
<<rollon "Monster">>

Names
<<rollon "Names">>

Items:  <<rollon "Hide">> <<rollon "Treasure">>.  <<rollon "Hide">> <<rollon "Treasure">>. <<rollon "Hide">> <<rollon "Treasure">>.
<<rollon "Item">>

Traps
<<rollon "Traps">>


The plot of  <<rollon "Begin">> <<rollon "Due to">> starts in <<rollon "Place description">> <<rollon "Urban">>.  The Widget  <<rollon "Widget effect">> <<rollon "Widget Plot">> <<rollon "Widget Does">> causes <<rollon Twists>>.  The action moves to <<rollon "Hidden">>, <<rollon "Place description">>, <<rollon "Wild">> where the Heroes must: <<rollon "Not">>, <<rollon "pcs must 1">> while <<rollon "Not">>, <<rollon "pcs Must 2">> despite danger of  <<rollon "Danger">>.  Meanwhile the Foe must <<rollon "Not">>, <<rollon "Foes must">>, while locals <<rollon "Not">>, <<rollon "Locals Will">> causing <<rollon "Danger">> and <<rollon "Complication">>.
#Abduction - Abductor, Abducted, Guardian
#Adultery - Deceived Spouse, Two Adulterers
#All Sacrificed for Passion - Lover, Object of Passion, Person or Thing Sacrificed
#Ambition - An Ambitious Person, Coveted Thing, Adversary
#An Enemy Loved - Beloved Enemy, Lover, Hater
#Break and enter(sneak)
#Capture the flag(tactics)
#Chase(or race)
#Clear the hex(kill)
#Conflict with a God - Mortal, Immortal
#Courier(get x to y)
#Crimes of Love - Lover, Beloved, theme of Dissolution
#Daring Enterprise - Bold Leader, Goal, Adversary
#Deliverance - Unfortunates, Threatened, Rescuer
#Detective story(ask-clues-solve)
#Diplomacy(talk-solve)
#Disaster - Vanquished Power, Victorious Power or Messenger
#Discovery of Dishonour of a Loved One - Discoverer, Guilty One
#Dungeon hack(kill-loot)
#Enigma - Interrogator, Seeker, Problem
#Explore(go-find)
#Familial Hatred - Two Family Members who hate each other
#Familial Rivalry - Preferred Kinsman, Rejected Kinsman, Object
#Fatal Imprudence - Imprudent person, Victim or lost object
#Faulty Judgement - Mistaken One, Victim of Mistake, Author of Mistake, Guilty Person
#Guard duty(prepare-defend)
#Housekeeping(take charge)
#Involuntary Crimes of Love - Lover, Beloved, Revealer
#Kinsman Kills Unrecognised Kinsman - Killer, Unrecognised Victim, Revealer
#Loss of Loved Ones - Kinsman Slain, Kinsman Witness, Executioner
#Madness - Madman, Victim
#Manhunt(track-recover)
#Marie Celeste(what-why)
#Mistaken Jealousy - Jealous One, Object of Jealousy, Supposed Accomplice, Author of Mistake
#Murderous Adultery - Two Adulterers, the Betrayed
#Obstacles to Love - Two Lovers, Obstacle
#Obtaining - Two or more Opposing Parties, Object, maybe an Arbitrator
#Pandora`s box(contain-cleanse)
#Prevent(learn-stop)
#Pursuit - Fugitive from Punishment, Pursuer
#Quest(learn-find-retrieve)
#Recovery of a Lost One - Seeker, One Found
#Remorse - Culprit, Victim, Interrogator
#Revealed nest(report-disable)
#Revenge - Avenger, Criminal
#Revolt - Tyrant, Conspirator(s)
#Rivalry Between Superior and Inferior - Superior, Inferior, Object
#Run the Gauntlet(run-survive)
#Sacrifice of Loved Ones - Hero, Beloved Victim, Need for Sacrifice
#Safari(hunt-bag)
#Scavenger hunt(get stuff first)
#Self Sacrifice for an Ideal - Hero, Ideal, Person or Thing Sacrificed
#Shelter(stay safe)
#Stranded(get home)
#Strange events(what-why-stop)
#Supplication - Persecutor, Suppliant, a Power in Authority
#Surveillance(watch-report)
#Vengeance by Family upon Family - Avenging Kinsman, Guilty Kinsman, Relative
#Victim of Cruelty or Misfortune - Unfortunates, Master or Unlucky Person
* There is a cool breeze today.
* There is a cool breeze today.
* There is a dangerous gale today.
* There is an icy blizzard today.
* There is a pleasant breeze today.
* There is a pleasant breeze today.
* There is a strong wind today.
* There is a strong wind today.
* There is a torrential downpour today.
* There is a warm breeze today.
* There is a warm breeze today.
* There is heavy Hailstorm today.
* There is heavy rain all day today.
* There is heavy rain all day today.
* There is heavy snow all day today.
* There is heavy snow all day today.
* There is moderate rain starting late today and continuing.
* There is moderate rain starting late today and continuing.
* There is moderate rainstorm with some hail today.
* There is moderate rainstorm with some hail today.
* There is moderate snow starting late today and continuing.
* There is moderate snow starting late today and continuing.
* There is some intermittent sleet today.
* There is some intermittent sleet today.
* There is some light rain once or twice today.
* There is some light rain once or twice today.
* There is some light snow once or twice today.
* There is some light snow once or twice today.
* Today has a Hurricane
* Today has dangerous Thunderstorms.
* Today has Heavy fog.
* Today has Heavy fog.
* Today has Light fog
* Today has Light fog
* Today has Light mist
* Today has Light mist
* Today has obviously supernatural weather.
* Today has patchy and scattered cloud.
* Today has patchy and scattered cloud.
* Today is blisteringly hot.
* Today is clear and pleasant.
* Today is clear and pleasant.
* Today is dark and threatening.
* Today is dark and threatening.
* Today is freezing cold.
* Today is gray and overcast.
* Today is gray and overcast.
* Today is pleasantly cool.
* Today is pleasantly cool.
* Today is pleasantly warm.
* Today is pleasantly warm.
* Today is unusually cold.
* Today is unusually cold.
* Today is unusually hot.
* Today is unusually hot.
Welcome to Rollon!

The goal of Rollon is to make creating and rolling on tables as easy as editing a wiki, or cutting and pasting from a blog or web page.

Rollon is a [[TiddlyWiki|http://tiddlywiki.com]] plugin designed to let you roll randomly on tables, such as you might find in roleplaying games.  When we talk about "tables" in Rollon, we don't mean an HTML {{{<table>}}}, just a list of entries such as a Wandering Monster Table or Treasure Table might have. To Rollon, any tiddler containing a list is potentially a table, whether the list is an unordered list, an ordered list, a dictionary list, or even just text where each line starts with a number.  This gives you a great deal of freedom in designing lists, or cutting and pasting them into your [[TiddlyWiki|http://tiddlywiki.com]] from other sources.


The Rollon Plugin provides a new macro: {{{rollon}}}.  The macro takes the name of a tiddler containing a list as a parameter, and creates a button that lets you roll against that "table."  When you click the button, it creates a new tiddler, and places the results of the roll in there.  Try it a couple times:

Entries in Rollon Tables (lists) can themselves contain calls to the rollon macro.  If they do, then if that entry is selected, that macro will also be called and a random entry from that table will be inserted into the result in place of the macro call, much like a mad-lib.  E.g.

{{{<<rollon "Bar Sentence">>}}}

Notice a few things about this example.  If you click through to some of the tiddlers, you'll see that Bar Sentence isn't even a list.  If the tiddler doesn't appear to contain a list, then rollon just pulls it in verbatim, calling any macros it finds along the way.  Also note that Bar Sentence contains calls to multiple other tables, each of which might have still more calls to sub-tables, depending on the entry.  The tables demonstrate each of the types of list that rollon knows how to deal with: an unordered list, an ordered list, a definition list, and a "list" that just consists of successive lines with numbers (and an optional period).  If you use a definition list, you can have the entries described by a range...in which case the entries are weighted by the size of the range (as if you were rolling a die as large as the highest number in the last range).

Visit the ''Rollon Plugin Group''
[img[Rollon Plugin at Google Groups|http://groups.google.com/groups/img/3nb/groups_bar.gif][http://groups.google.com/group/rollon-plugin]]
/***
|''Name''|RollonPlugin|
|''Description''|A plugin to "Roll" on Tables, creating tiddlers containing random elements of lists, extracted from other tiddlers|
|''Icon''||
|''Author''|Joshua Macy|
|''Contributors''||
|''Version''|1.02|
|''Date''|2009-03-11|
|''Status''|@@beta@@;|
|''Copyright''|Joshua Macy, 2009|
|''License''|Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License|
|''CoreVersion''|2.4.1|
|''Requires''||
|''Overrides''|Adds String methods for trim, rtrim and ltrim|
|''Feedback''|joshua.macy@gmail.com|
|''Keywords''|rollon|
!Description
A Plugin to roll on tables (formatted as lists). The plugin provides a rollon macro that has two functions, depending on the context where it's called.
*If the macro is in a tiddler that lacks the rollonResult tag, it creates a text label describing the table and a button to press to roll on that table. Pressing the button creates a new tiddler with the 
rollonResult tag and places the macro in that tiddler
*If the macro is in a tiddler that has a rollonResult tag it looks at the named tiddler as a table and to chooses a random element from that table and places it in the current tiddler
Thus, if you click on the roll button, you get a new tiddler with a random element from the table that you named.
Note that rollon calls can call other rollon calls!  If the entry selected from the table contains another rollon macro, that rollon macro is executed to select a random entry from ''it's'' table, and so on
until it bottoms out with an entry that contains no other rollon macros.  The results of all these calls are placed in order in the tiddler that originated the call, allowing you to build up complete sentences
and paragraphs of results, almost like a Mad-Lib.

You can control many parameters to the rollon call, or allow it to default to (hopefully sensible) values.
!Notes
Doesn't yet support entries that have sub-lists
!Usage
{{{
<<rollon tiddlername times>>
}}}
tiddlername - name of a tiddler containing a list of entries.
times - the number of times to roll.  May be a dice expression like 1d6 or 2d3+2

for more control you can use named parameters:
{{{
<<rollon table:tiddlername times:n separator:sep-char result:prompt>>
}}}

A complete list of parameters:
* table -  the name of the table to roll on.  "prompt" will cause it to prompt the user for a table name.  If the table name doesn't exist but appears to be a dice expression, like 1d6+2, it will evaluate the dice expression and return the value instead
* times - the number of times to roll on the table.  "prompt" will cause it to prompt the user for a number of times.  If the number of times appears to be a dice expression, it will evaluate the expression and roll that number of times.  The results are separated in the tiddler by a character (default is comma). ''Defaults to 1.''
* dice - a dice expression, such as 1d20, 3d6+1, 1d4+1d6, etc.  If no table is provided, the macro will return the result of the roll.  If a table is provided, the macro will roll that dice expression on the table.  ''Defaults to the highest number in the table.''  E.g. a table with 30 entries will have one of them selected at random, as if a 1d30 had been rolled.
* separator - the character used to separate multiple results.  ''Defaults to comma.''  Use {{{<br>}}} to separate results by line breaks
* resultName - the name of the new tiddler to create to hold the results.  ''Defaults to the name of the current tiddler, plus " Result" plus a numeric suffix, such as (1) or (3) to ensure the tiddler name is unique.''
* force - to force the result of the die roll to be a particular number.  Generally this is used for debugging. ''No default.''
* overWrite - make the results overwrite the previous results instead of adding a new tiddler with a numeric suffix

The first two parameters are assumed to be table and times, if named parameters aren't used.  Named parameters are required for all the others, and can be used for table and times for clarity.
If any parameter is set to the string &quot;prompt&quot;, then the user will be prompted for the appropriate value when the roll button is pushed.

Tables are any Tiddler that contains a list (ordered or unordered), or
a series of lines each starting with a number.  If the tiddler has text
prior to the beginning of the list, the text will be copied into the result,
trimmed of leading and trailing spaces.  If you want new lines in the preamble,
use <br> elements. Whitespace between the * or # or number at the beginning of a
line is preserved.
<...>
{{{
!!Examples
<<rollon "Bar Names">>

<<rollon table:"Bar Names" separator:"," times:3d6>>

<<rollon BarNames 3d6 separator:->>

!Configuration Options
None
!Revision History
!!v<1.02> (2009-12-15) bugfix release: fixed definition table to offset for the lowest value if it doesn't start with 1
!!v<1.0rc1> (2009-03-11) release candidate 1
* 
!To Do
add setting and consulting variables
add formatting options (first letter capitalization, gender agreement helpers, etc)
!Code
***/
//{{{
if(!version.extensions.RollonPlugin) { //# ensure that the plugin is only installed once
version.extensions.RollonPlugin = { installed: true };

if(!config.extensions) { config.extensions = {}; } //# obsolete from v2.4.2

config.macros.delTagged = {
	handler: function (place, macroName, params, wikifier, paramString, tiddler) {
        wikify("Deleted Tagged Tiddlers", place);
        btn = createTiddlyButton(place,"delete","Deletes Tiddlers Tagged with VAR", config.macros.delTagged.onClick);
    
    },
	onClick: function(ev) {
		if (!ev) {
			ev = window.event;
		}
        story.forEachTiddler(function(title,element) {
            var t = store.getTiddler(title);
            if (t) {
                if (t.isTagged("VAR")) {
                    alert(title);
                    store.removeTiddler(title);
                    story.closeTiddler(title, true);
                    //autoSaveChanges();
                }
            }
		});
    }
};

config.macros.rollon = {
	suffixText: ' (%0)',
	suffixPattern: / \(([0-9]+)\)$/,
	zeroPad: 0,
	sparse: false,
	diceRE : /(\d+)[dD]([\d]+)([tT])?/g,
	listRE : /^(?:[\*#]|\d+\.?)([^\*#].+)$/gim,
	defRE : /^([:;])(.+)$/gim,
	rangeRE : /^(\d+)(?:-(\d+))?\s*/,
	handler: function (place, macroName, params, wikifier, paramString, tiddler) {
		var t = r = result = btn = preamble = temp = null;
		var html = "";
		var resultList = [];
		var entries = [];
		var low = high = range = rangeEntry = dieRoll = 0;
		var taggedResult = tiddler.isTagged("rollonResult");
		var prms = paramString.parseParams("anon", null, true);
		var table = getParam(prms, "table", null) || params[0];
		var times = getParam(prms, "times") || params[1] || 1;
		var dice = getParam(prms, "dice");
		var sep = getParam(prms, "separator", ",");
		var resultName = getParam(prms, "resultName", tiddler.title + " Result");
        var overWrite = getParam(prms, "overWrite", false);
		var force = getParam(prms, "force", null);
        var set = getParam(prms, "set", null);
		if (taggedResult) {
			if (times === "prompt") {
				times = prompt("Enter number of times to roll", "1");
			}
			if (dice === "prompt") {
				dice = prompt("Enter the dice expression to roll");
			}
			if (table === "prompt") {
				table = prompt("Enter the table name to roll on");
			}
			if (sep === "prompt") {
				sep = prompt("Enter the separator character(s)");
			}
			if (force === "prompt") {
				force = prompt("Force the die to roll the following number");
			}
            if (set === "prompt") {
                set = prompt("Name of the variable to set");
            }
		}
		if (taggedResult) {
			if (times) {
				if (dice && params[1] && params[1].indexOf("dice:") > -1) {
					// dice: was passed as 2nd param, so times needs to be reset
					times = 1
				} else {
					if (/^\d+$/.test(times)) {
						//all digits
						times = parseInt(times);
					} else {
						this.diceRE.lastIndex = 0;
						result = this.diceRE.exec(times);
						if (result) {
							times = this.rollExpr(times);
						}
						else {
							times = 1;
						}
					}					
				}
			} else {
				times = 1;
			}			
			if (table) {
				t = store.getTiddler(table);
				if (t) {
					this.listRE.lastIndex = 0;
					result = this.listRE.exec(t.text);
					if (result) {
						preamble = result.input.substring(0, result.index);
						while (result != null) {
							entries.push(result[1]);
							result = this.listRE.exec(t.text);
						}
						if (preamble) {
                            // don't wikify the preamble until you've dealt with the table, lest the preamble contain a rollon macro that will update
                            // the current tiddler's text when it completes
							html = wikifyStatic(preamble.trim(), null, tiddler);
						}
						for (i = 0; i < times; i ++) {
							if  (!force) {
								if (!dice) {
									r = Math.floor(Math.random() * entries.length);								
								} else {
									r = Math.min(this.rollExpr(dice), entries.length);
									r = r - 1; // entries starts at 0, even though dice start at 1
								}
							} else {
								r = Math.min(force, entries.length);
							}
							temp = wikifyStatic(entries[r], null, tiddler);
							resultList.push(temp);
						}
						html += resultList.join(sep);
						html = html.replace(/<[\/]*span>/igm, '');
						wikify(html, place, null, tiddler);
					} else {
						this.defRE.lastIndex = 0;
						result = this.defRE.exec(t.text);
						if (result) { // definition list
							preamble = result.input.substring(0, result.index);
							while (result != null) {
								if (result[1] === ';') {
									// definition
									temp = result[2];
									this.rangeRE.lastIndex = 0;
									range = this.rangeRE.exec(temp);
									if (range) {
										low = range[1];
										high = null;
										if (result[2]) {
											high = range[2];
										}
										entries.push([low, high]);
									} else {
										wikify("Definition doesn't seem to be a valid range: " + temp, place, null, tiddler);
									}
								} else if (result[1] === ':') {
									// term, prior must have been a definition (we hope)
									// we should now have a series of triples: [low, high, term]
									entries[entries.length-1].push(result[2]);
								}
								result = this.defRE.exec(t.text);
							}
							// find lowest range
							temp = entries[0];
							low = parseInt(temp[0]);
							// find highest range
							temp = entries[entries.length-1];
							if (temp[1]) {
								high = temp[1];
							} else {
								high = temp[0];
							}
							sizeOfRange = high - low;
							if (preamble) {
								html = wikifyStatic(preamble.trim(), null, tiddler);
							}
							for (i = 0; i < times; i ++) {
								if  (!force) {
									// don't require tables to start with number 0
									r = Math.ceil(Math.random() * sizeOfRange);
								} else {
									r = Math.min(force, high);
								}
                                                                r = r + low;
								// find the entry that r falls within
								rangeEntry = "Couldn't find range encompassing value " + r;
								for (var j = 0; j < entries.length; j++) {
									if (r < entries[j][0]) {
										// too high, not going to see anything with the proper range any more
										break;
									}
									rangeEntry = entries[j][2];
									if (entries[j][1] && r <= entries[j][1]) {
										break;
									}
								}
								temp = wikifyStatic(rangeEntry, null, tiddler);
								resultList.push(temp);
							}
							html += resultList.join(sep);
							html = html.replace(/<[\/]*span>/igm, '');
							wikify(html, place, null, tiddler);
						} else {
							if (t.text.trim().length > 0) {
								for (i = 0; i < times; i++) {
									temp = wikifyStatic(t.text, null, tiddler);
									resultList.push(temp);
								}
								html += resultList.join(sep);
								html = html.replace(/<[\/]*span>/igm, '');
								wikify(html, place, null, tiddler);
							} else {
								wikify("Table " + t.title + " appears to be empty", place, null, tiddler);
							}							
						}
					}
                    // by this point html should contain something worthwhile
                    if (set) {
                        this.saveVar(table, set, html);
                    }
				} else {
					// see if dice were defined
					if (!dice) {
						// see if it's a dice string
						result = this.diceRE.test(table);						
						if (!result) {
                            // see if it's a variable
                            t = store.getTiddler("Rollon_" + table);
                            if (t) {
            					wikify(t.text, place, null, tiddler);
                                return;
                            } else {
                                wikify("No Tiddler named " + table + " found", place);
                                return;
                            }
						} else {
							dice = table;
						}
					}
					for (i = 0; i < times; i++) {
						dieRoll = this.rollExpr(table);
						resultList.push(dieRoll);
					}
					dieRoll = resultList.join(sep).toString();
					wikify(dieRoll, place, null, tiddler);
				}
			} else {
				wikify("rollon requires at least one parameter", place);
			}
		} else {
			if (table) {				
				wikify("roll on [[" + table + "]]", place);
				btn = createTiddlyButton(place,"roll","<<rollon " + paramString + ">>", config.macros.rollon.onClick);
				btn.resultName = resultName;
				btn.suffixText = this.suffixText;
				btn.suffixPattern = this.suffixPattern;
				btn.zeroPad = this.zeroPad;
				btn.sparse = this.sparse;
                btn.overWrite = overWrite;
			} else {
				wikify("rollon macro requires at least one parameter", place);			
			}
		}
	},
    substVariables : function (expr) {
        var variableRE = /{([^}]+)}/g;
        var text = "";
        var t = null;
        var replaceVariable = function(match, name) {
            if (name.substr(0, 2) !== "*#") {
                t = store.getTiddler(name);
            } else {
                // try to find a match
                var varNameRE = new RegExp("#" + name.substr(2) + "$");
                var variableTiddlers = store.filterTiddlers("[tag[rollonVar]]");
                for (var i = 0; i < variableTiddlers.length; i++) {
                    if (varNameRE.test(variableTiddlers[i].title) ) {
                        alert("Found match=" + variableTiddlers[i].title)
                        t = variableTiddlers[i];
                        break;
                    }
                }
            }
            if (t) {
                text = t.text;
            }
            return text;
        };
        expr = expr.replace(variableRE, replaceVariable);
        return expr;
    },
	rollExpr: function (expr) {
        expr = this.substVariables(expr);
		this.diceRE.lastIndex = 0;
		var match = this.diceRE.exec(expr);
		var diceExpr, result;
		if (match && match[3]) {
			this.diceRE.lastIndex = 0;
			diceExpr = expr.replace(this.diceRE, "this.rollSpecial($1, $2, '$3')");
		} else {
			this.diceRE.lastIndex = 0;
			diceExpr = expr.replace(this.diceRE, "this.roll($1, $2)");
		}
		result = 0;
		result = eval(diceExpr);
		return result;
	},
	roll: function(dice, sides) {
		var result = 0, i = 0;
		for (i = 0; i < dice; i++) {
			result += Math.ceil(Math.random() * sides);
		}
		return result;
	},
	rollSpecial: function(dice, sides, option) {
		var result = 0;
		if (option.toLowerCase() === 't') {
			return this.rollTT(dice, sides);
		}
		return result;
	},
	rollTT: function(dice, sides) {
		// Tunnels & Trolls: doubles or triples add and roll over
		var result = 0, die = 0, i = 0;
		var allSame = true;
		var previous;
		if (dice === 2 || dice === 3) {
			while (allSame === true) {
				previous = 0;
				for (i = 0; i < dice; i++ ) {
					die = Math.ceil(Math.random() * sides);
					result += die;
					if (die !== previous && previous !== 0) {
						allSame = false;
					}
					previous = die;
				}
			}
		} else {
			return this.roll(dice, sides);
		}
		return result;
	},
    saveVar: function(namespace, name, value) {
        var nameSpaceRE = /^([^#]+)#/;
        var title;
        if (nameSpaceRE.test(name)) {
            // provided namespace
            title = name;
        } else {
            title = namespace + "#" + name; // default namespace
        }
        var tags=["rollonVar", "excludeLists"];
        var fields={}; // an empty object
        var who="Rollon"; // current username
        var when=new Date(); // current timestamp
        var tid=store.getTiddler(title);
        if (tid) { fields=tid.fields; }
        store.saveTiddler(title,title,value,who,when,tags,fields);
    },
	onClick: function(ev) {
		if (!ev) {
			ev = window.event;
		}
		var button = this;
        var t;
		var macroText = button.title;
        var newTitle;
		var resultName = button.resultName || "Default Roll Result";
		if (button.resultName === "prompt") {
			resultName = prompt("Name for Result?");
		}
        if (button.overWrite === false) {
            var root=resultName.replace(this.suffixPattern,''); // title without suffix..unlikely to have it at this point, but let's be safe
            // find last matching title
            var last=root;
            if (this.sparse) { // don't fill-in holes... really find LAST matching title
                var tids=store.getTiddlers('title','excludeLists');
                for (t=0; t<tids.length; t++) if (tids[t].title.startsWith(root)) last=tids[t].title;
            }
            // get next number (increment from last matching title)
            var n=1; var match=this.suffixPattern.exec(last); if (match) n=parseInt(match[1])+1;
            newTitle=root+this.suffixText.format([String.zeroPad(n,this.zeroPad)]);
            // if not sparse mode, find the next hole to fill in...
            while (store.tiddlerExists(newTitle)||document.getElementById(story.idPrefix+newTitle))
                { n++; newTitle=root+this.suffixText.format([String.zeroPad(n,this.zeroPad)]); }

        } else {
            newTitle = resultName;
            store.removeTiddler(newTitle);
            story.closeTiddler(newTitle, true);
        }
		//t = store.getTiddler(newTitle);
		t = store.createTiddler(newTitle);
		t.set(newTitle, macroText);
		t.tags = ["rollonResult"];
		t.modifier = "Rollon";
		story.displayTiddler(null, newTitle);
		var tiddlerHTML = story.getTiddler(newTitle).innerHTML;
		var viewerClass = '<div class="viewer">';
		var viewerPos = tiddlerHTML.indexOf(viewerClass);
		if (viewerPos > -1) {
			var endDivPos =  tiddlerHTML.indexOf("</div>", viewerPos);
			var displayedText = tiddlerHTML.substring(viewerPos + viewerClass.length, endDivPos);
			displayedText.replace(/<[\/]*span>/igm, '');
			t.set(null,displayedText);			
		}		
		ev.returnValue = false;
		
	}
	
};

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function(){
	return this.replace(/^\s+/, "");
}
String.prototype.rtrim = function(){
	return this.replace(/\s+$/, "");
}

} //# end of "install only once"


//}}}
#Blackmail x
#Capture x
#Delay x
#Distract x
#Earn loyalty of x
#Elude x
#Escape from x
#Find x
#Flee x
#Follow x
#Fool x
#Get revenge
#Imprison PC`s
#Keep PC`s imprisoned
#Kill x
#Lure x
#Prevent x spreading info
#Protect x
#Stop x
#Take advantage of x
#Take x
#Threaten x
#Trick x
#Watch x
* winter
* spring
* summer
* autumn

Random generators for Koutougakkou
Anime Generators
;1-2
:Colossal [+3r]
;3-4
:Diminutive [+2]
;5-8
:Fine [+2]
;9-12
:Gargantuan [+2r]
;13-18
:Huge [+2]
;19-26
:Large [+1]
;27-36
:Medium
;37-44
:Small [+0r]
;45-50
:Tiny [+1]
* Artificial Abomination of science
* Artificial Abomination of science
* Artificial Accidental mutant
* Artificial Accidental mutant
* Artificial Accidental mutant
* Artificial Android
* Artificial Android
* Artificial Clone
* Artificial Clone
* Artificial Clone
* Artificially Cyborged
* Artificially Cyborged
* Artificially Cyborged
* Artificially DNA enhanced
* Artificially DNA enhanced
* Artificially DNA enhanced
* Artificially Genetically Engineered
* Artificially Genetically Engineered
* Artificially Genetically Engineered
* Artificially Hybrid - <<rollon "Monsters">> and 
* Artificially Hybrid - <<rollon "Monsters">> and 
* Artificially Hybrid - <<rollon "Monsters">> and 
* Artificial Robotic
* Artificial Robotic
* Artificial Robotic
* Artificial Bio-roid
* Artificial Bio-roid
* Artificial Bio-roid
* Artificial Giant Robotic
* Artificial Giant Robotic
* Magical Card Creature - <<rollon "Template">>
* Magical Card Creature - <<rollon "Template">>
* Magical Card Creature - <<rollon "Template">>
* Magical Card Creature - <<rollon "Template">>
* Magical (Card Duellist)
* Magical (Card Duellist)
* Magical (Dynamic Sorcerer)
* Magical (Dynamic Sorcerer)
* Magical Elemental Earth
* Magical Elemental Fire
* Magical Elemental Forest
* Magical Elemental Heaven
* Magical Elemental Music
* Magical Elemental River
* Magical Elemental Thunder
* Magical Elemental Wind 
* Magically augmented
* Magically augmented
* Magically augmented
* Magical (Pet Monster Collector)
* Magical (Pet Monster Collector)
* Magical Pet Monster - <<rollon "Template">>
* Magical Pet Monster - <<rollon "Template">>
* Magical Pet Monster - <<rollon "Template">>
* Magical Pet Monster - <<rollon "Template">>
* Magical (Witch/Wizard)
* Magical (Witch/Wizard)
* Magical World breaker (level boss)
* Monsterous Ancient
* Monsterous Aquatic
* Monsterous Dragonic
* Monsterous Ghost
* Monsterous Ghost
* Monsterous Gigantic
* Monsterous Huge
* Monsterous Huge
* Monsterous Hybrid - <<rollon "Monsters">> and 
* Monsterous Hybrid - <<rollon "Monsters">> and 
* Monsterous (Kitsune / animal spirit)
* Monsterous (Kitsune / animal spirit)
* Monsterous Oni
* Monsterous Oni
* Monsterous Skeletal
* Monsterous Skeletal
* Monsterous Vampiric (eastern)
* Monsterous Vampiric (eastern)
* Monsterous Vampiric (western)
* Monsterous Vampiric (western)
* Monsterous Were-creature
* Monsterous Were-creature
* Monsterous Winged
* Monsterous World breaker (level boss)
* Monsterous Zombie
* Monsterous Zombie
* Otherworldly Alien (alternate dimension)
* Otherworldly Alien (alternate dimension)
* Otherworldly Alien (alternate dimension)
* Otherworldly Alien (distant world)
* Otherworldly Alien (distant world)
* Otherworldly Alien (distant world)
* Otherworldly Alien (distant world)
* Otherworldly Mutant
* Otherworldly Mutant
* Otherworldly Mutant
* Otherworldly Mutant
* Otherworldly Psychic
* Otherworldly Psychic
* Otherworldly Psychic
* Otherworldly Psychic
* Otherworldly Psychic
* Otherworldly Psychic
* Otherworldly Spirit
* Otherworldly Spirit
* Otherworldly Spirit
* Otherworldly Time Fugitive (alternate now)
* Otherworldly Time Fugitive (future)
* Otherworldly Time Fugitive (future)
* Otherworldly Time Fugitive (future)
* Otherworldly Time Fugitive (past)
* Otherworldly Time Fugitive (past)
* Otherworldly Void (Darkness)
* Otherworldly Void (Darkness)
* Trained Assassin
* Trained Assassin
* Trained Assassin
* Trained Assassin
* Trained Criminal
* Trained Criminal
* Trained Criminal
* Trained Martial Artist (Karate)
* Trained Martial Artist (Karate)
* Trained Martial Artist (Kung Fu)
* Trained Martial Artist (Kung Fu)
* Trained Mastermind
* Trained Mastermind
* Trained Mastermind
* Trained Mercenary
* Trained Mercenary
* Trained Mercenary
* Trained Mercenary
* Trained Ninja
* Trained Ninja
* Trained Ninja
* Trained Ninja
* Trained Piratical
* Trained Piratical
* Trained Samurai
* Trained Samurai
* Trained Samurai
* Trained Special forces
* Trained Special forces
* Trained Special forces
* (Un)Trained Wild
* (Un)Trained Wild
TiddlyWiki is a single html file which has all the characteristics of a wiki - including all of the content, the functionality (including editing, saving, tagging and searching) and the style sheet. Because it's a single file, it's very portable - you can email it, put it on a web server or share it via a USB stick.

For more information about TiddlyWiki and how to use it visit [[TiddlyWiki.com|http://tiddlywiki.com]] and [[TiddlyWiki.org|http://tiddlywiki.org]]
;1-4
:A chute down d(3) levels
;5-6
:A collapsing floor down
;7-8
:A illusionary floor
;9-10
:Acid vent
;11-18
:Alarm summons guards
;19-30
:An arrow trap
;31-32
:Automated defences
;33-34
:Bear trap
;35-38
:Blinding gas
;39-40
:Collapsing structure
;41-42
:Contact poison
;43-46
:Corrosive gas
;47-56
:Disease
;57-58
:Explosion
;59-60
:Exposure
;61-62
:Falling risk
;63-66
:Fear producing gas
;67-70
:Fire
;71-74
:Flame vent
;75-82
:Gas
;83-86
:Falling blocks
;87-88
:Lightning bolt
;89-92
:Lock and flood pit
;93-94
:Locking and flood room
;95-98
:Locking pit
;99-100
:Lose item
;101-108
:Obscuring gas
;109-110
:Pendulum trap
;111-118
:Pit
;119-122
:Poison gas
;123-124
:Poisoned needles
;125-128
:Poisoned spike pit
;129-138
:Sealing Portcullis
;139-146
:Red Herring
;147-150
:Regurgitate gas
;151-204
:Rune of spell
;205-208
:Scything blade trap
;209-210
:Shaking floor
;211-214
:Sleep gas
;215-216
:Slippery floor
;217-220
:Slow spell
;221-228
:Spear trap
;229-234
:Spiked pit
;235-240
:Spring trap
;241-244
:Stone sealed passage
;245-248
:Teleporter
;249-250
:The ceiling collapses
;251-254
:Underwater section
;255-256
:Vehicle crash
;257-260
:Weaken spell
;1-4
:[ 3 /
;5-10
:[ 4 /
;11-18
:[ 5 /
;19-28
:[ 6 /
;29-40
:[ 7 /
;41-54
:[ 8 /
;55-66
:[ 9 /
;67-76
:[ 10 /
;77-84
:[ 11 /
;85-90
:[ 12 /
;91-94
:[ 13 /
;95-96
:[ 14 /
;97-98
:[ 15 /
;1-4
:2 ]
;5-10
:3 ]
;11-18
:4 ]
;19-28
:5 ]
;29-40
:6 ]
;41-54
:7 ]
;55-66
:8 ]
;67-76
:9 ]
;77-84
:10 ]
;85-90
:11 ]
;91-94
:12 ]
;95-96
:13 ]
;97-98
:14 ]
<<rollon "Hide">> <<rollon "Trap">> <<rollon "Trap Left">> <<rollon "Trap Right">>
<<rollon "Hide">> <<rollon "Trap">> <<rollon "Trap Left">> <<rollon "Trap Right">>
<<rollon "Hide">> <<rollon "Trap">> <<rollon "Trap Left">> <<rollon "Trap Right">>
<<rollon "Hide">> <<rollon "Trap">> <<rollon "Trap Left">> <<rollon "Trap Right">>
<<rollon "Hide">> <<rollon "Trap">> <<rollon "Trap Left">> <<rollon "Trap Right">>
<<rollon "Hide">> <<rollon "Trap">> <<rollon "Trap Left">> <<rollon "Trap Right">>
#Arrow
#Ashes
#Bag
#Stool
#Bones
#Boot
#Bottle
#Candelabrum
#Candle
#Carving
#Chain
#Chest
#Clay Pot
#Clothing
#Coffer
#Container
#Cushion
#bag of Copper Pieces
#a few Gems
#bag of Silver Pieces
#small bag of Gold Pieces
#Dagger Hilt
#Dung
#Fruit
#Handle
#Helm
#Idol
#Jewellery
#Lamp
#Magic Item
#Mat
#Mirror
#Painting
#Plank
#Plates And Mugs
#Pole
#Pot Plant
#Pots And Pans
#Rags
#Rug
#Sack
#Spear Head
#Stones
#Straw
#Sword blade
#Torch
#Trash
#Trunk
#Twigs
#Urn
#Action may make things worse
#Amnesia
#Another plots
#External disaster
#Foe as ally
#Hinders normal life (date, shopping, job)
#Involves a political scandal
#Is a red herring
#Is a test
#it is a good day
#Leads to another plot
#Local is foe/foe is local
#Must be done in secret
#Must choose between two plots
#Needs widget to fix
#PC is foe/foe is PC
#PC is local/local is PC
#Plot is reversed
#Presents as different plot
#Shifts balance of power
#Taken off the case and the matter closed
#Time pressure
#Toll
#Turns from friendly to deadly
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.3|
|''Date:''|Feb 24, 2008|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 3,
	date: new Date("Feb 24, 2008"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'
};

//
// Environment
//

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
	
//
// Upload Macro
//

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
};
	
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload"	
};

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"
};

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
		return;
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
	else
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	}
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};

config.macros.upload.action = function(params)
{
		// for missing macro parameter set value from options
		if (!params) params = {};
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			alert(config.macros.upload.messages.noStoreUrl);
			clearMessage();
			return false;
		}
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			alert(config.macros.upload.messages.usernameOrPasswordMissing);
			clearMessage();
			return false;
		}
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 
};

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
{
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;
};

//
// uploadOptions Macro
//

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		wizard.createWizard(place,this.wizardTitle);
		wizard.addStep(this.step1Title,this.step1Html);
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		markList.parentNode.insertBefore(listWrapper,markList);
		wizard.setValue("listWrapper",listWrapper);
		this.refreshOptions(listWrapper,false);
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
		else
			uploadCaption = config.macros.upload.label.uploadLabel;
		
		wizard.setButtons([
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
				
			]);
	},
	options: [
		"txtUploadUserName",
		"pasUploadPassword",
		"txtUploadStoreUrl",
		"txtUploadDir",
		"txtUploadFilename",
		"txtUploadBackupDir",
		"chkUploadLog",
		"txtUploadLogMaxLine"		
	],
	refreshOptions: function(listWrapper) {
		var opts = [];
		for(i=0; i<this.options.length; i++) {
			var opt = {};
			opts.push();
			opt.option = "";
			n = this.options[i];
			opt.name = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
			opts.push(opt);
		}
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
				h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
			}
		}
		
	},
	onCancel: function(e)
	{
		backstage.switchTab(null);
		return false;
	},
	
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 
			]}
};

//
// upload functions
//

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved",
	backupFailed: "Failed to upload backup file",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."
};

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
			displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
			return;
		}
		if (bidix.debugMode) 
			alert(original.substr(0,500)+"\n...");
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
			alert(config.messages.invalidFileError.format([localPath]));
			return;
		}
		bidix.upload.uploadRss(uploadParams,original,posDiv);
	};
	
	if(onlyIfDirty && !store.isDirty())
		return;
	clearMessage();
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
		saveChanges();
	}
	// get original
	var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
			bidix.upload.uploadMain(params[0],params[1],params[2]);
		} else {
			displayMessage(bidix.upload.messages.rssFailed);			
		}
	};
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		var rssString = generateRss();
		// no UnicodeToUTF8 conversion needed when location is "file" !!!
		if (document.location.toString().substr(0,4) != "file")
			rssString = convertUnicodeToUTF8(rssString);	
		bidix.upload.httpUpload(rssUploadParams,rssString,callback,Array(uploadParams,original,posDiv));
	} else {
		bidix.upload.uploadMain(uploadParams,original,posDiv);
	}
};

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
				displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
			}
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
			store.setDirty(false);
			log.endUpload("ok");
		} else {
			alert(bidix.upload.messages.mainFailed);
			displayMessage(bidix.upload.messages.mainFailed);
			log.endUpload("failed");			
		}
	};
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);
	bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == 404)
			alert(bidix.upload.messages.storePhpNotFound.format([url]));
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			alert(responseText);
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
			alert(responseText);
		if (responseText.charAt(0) != '0')
			status = null;
		callback(status,params,responseText,url,xhr);
	};
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
		alert(config.messages.invalidFileError.format([localPath]));
		return;
	}
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
				original.substr(posDiv[1]);
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;
};

//
// UploadLog
// 
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
		store.addTiddler(this.tiddler);
	}
	return this;
};

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
		return;
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			textArray.splice(1,textArray.length-1-maxLine);
			this.tiddler.text = textArray.join('\n');		
	}
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	store.addTiddler(this.tiddler);
	// refresh and notifiy for immediate update
	story.refreshTiddler(this.tiddler.title);
	store.notify(this.tiddler.title, true);
};

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
		return;
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";
	this.addText(text);
};

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
		return;
	this.addText(" "+status+" |");
};

//
// Utilities
// 

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
	}
};

bidix.dirname = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));
	}
};

bidix.basename = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);
};

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;
};

//
// Initializations
//

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

//optionsDesc
merge(config.optionsDesc,{
	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});

// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');


// Backstage
merge(config.tasks,{
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");


//}}}

;1-10
:Back alley
;11-12
:Brewery
;13-16
:Bridge (arch/suspension)
;17-20
:Brothel
;21-28
:Tomb (Pyramid/Crypt/burial hill)
;29-40
:Castle (Fort/Keep/Tower)
;41-46
:Catacombs
;47-50
:Cemetery
;51-58
:Docks
;59-60
:Dojo
;61-70
:Dungeon
;71-78
:Factory
;79-80
:Gallery
;81-82
:Garden
;83-84
:Guard house
;85-88
:Farm (barn/hayloft)
;89-90
:Maze (Hedge maze)
;91-100
:Inn (Tavern/Hotel/Motel)
;101-102
:Kitchen
;103-106
:Lab
;107-110
:Library
;111-112
:Lumberyard
;113-118
:Mall
;119-126
:Mansion (Penthouse/Town house)
;127-128
:Mine
;129-132
:Museum
;133-136
:Offices
;137-146
:Vehicle (car/bus/train/ship/boat)
;147-150
:Crop field (wheat/rice/corn)
;151-152
:Orchard (Vineyard)
;153-154
:Palace
;155-158
:Prison (jail/goal)
;159-160
:Reservoir
;161-162
:Scaffolding
;163-166
:Sewers (drains/stormwater)
;167-172
:Shop
;173-174
:Stone circle (megalith)
;175-178
:Street (road/highway)
;179-182
:Temple
;183-184
:Theatre
;185-186
:Travelling circus
;187-190
:Village (hamlet/town)
;191-200
:Warehouse
;201-202
:Watermill (Windmill)
;203-204
:Roof (steeples)
#Henchman
#Elite
#Solo
#Mastermind
#Major Villain
#Mooks
#Minion
;1-16
:Bright and sunny
;17-18
:Cyclone (hurricane/typhoon)
;19-24
:Dry wind
;25-26
:Dust storm / Tornado
;27-28
:Extremely hot
;29-30
:Flood
;31-36
:Foggy
;37-46
:Fresh breeze
;47-50
:Gale
;51-52
:Hailing
;53-56
:Heat wave/Drought
;57-58
:Humid
;59-66
:Lightning storm [-2]
;67-70
:Misty
;71-82
:Overcast
;83-94
:Raining hard [-1]
;95-100
:Sleet
;101-106
:Snowing
;107-114
:Storm [-1]
;115-116
:Strange clouds colour
;117-118
:Strange clouds shape
;119-124
:Strong breeze
;125-126
:Very cold
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday
7 Sunday
#Animates
#Appears
#Asks
#Attacks
#Burns
#Chills
#Collapses
#Counterfeits
#Cracks
#Creaks
#Directs
#Disappears
#Disintegrates
#Drags
#Marks
#Moans
#Moves
#Permanent
#Points
#Poisons
#Reduces
#Reverses Wish
#Rises
#Rolls
#Scratches
#Screams
#Shifts
#Shoots
#Sinks
#Slides
#Slimes
#Slopes
#Smells Foul
#Smells Strong
#Spins
#Stains
#Steals
#Suggests
#Trickles
#Turns gaseous
#Wets
#Actively hinders PC
#Fakes
#Has a will of its own
#Has been destroyed
#Has been lost
#Has been stolen
#Has moved
#Involves a group of people
#Is a recent discovery
#Is annoying
#Is assumed to be safe
#Is dangerous
#Is guarded
#Is held hostage
#Is hidden
#Is incomplete
#Is intelligent
#Is involved in a separate plot
#Is needed by others
#Is safe shelter
#Is self destructive
#Is valuable
#Must remain in place
#One Way
#Rightfully belongs to someone
#Talks Nonsense
#Talks Normally
#Talks Rhymes
#Two Way
#Ages
#Amulet Effect d(100)
#Astral Gates
#Changes Alignment
#Changes Attribute
#Changes Class
#Changes Mind/Body
#Changes Sex
#Distorts Height
#Distorts Length
#Enhances greed
#Enlarges
#Enrages
#Fossilises
#Geases
#Gives General Resistance
#Gives Magical Resistance
#Gives Specific Resistance
#Grants Wish
#Mage Spell d(9)
#Makes Antimagical
#Makes Forcefields
#Makes Illusions
#Makes Intelligent
#Makes Invisible
#Makes Machines
#Misc Mi Effect d(100)
#Mm Effect d(100)
#Polymorphs
#Potion Effect d(100)
#Releases Coins
#Releases Gems
#Releases Jewellery
#Releases Magic Item
#Releases Map
#Ring Effect d(100)
#Shocks Electrically
#Shocks Magically
#Suspends Animation
#Teleports
#Wand Effect d(100)
;1-8
:Badlands (gulch/boulders/buttes/canyons)
;9-12
:Beach (rocky/sandy/dunes/silt/mud)
;13-22
:Caves (caverns/tunnels/warren)
;23-24
:Cliff edge
;25-26
:Ravine (crevasse/crater)
;27-30
:Deep snowfield (tundra/iceberg)
;31-34
:Desert (sandy/rocky)
;35-36
:Escarpment
;37-38
:Estuary
;39-44
:Forest (heavy/light/new growth/old growth/petrified)
;45-46
:Geyser
;47-48
:Glacier (on top, in crack or below)
;49-50
:Grassland (open/head-high/prairie)
;51-52
:Highlands
;53-56
:Hills (foot/rolling/rugged)
;57-58
:Hot springs
;59-62
:Island in (bay/lake/ocean/river)
;63-64
:Jungle
;65-68
:Lair
;69-70
:Natural rock formation (arch/bridge/pillar)
;71-72
:Oasis
;73-74
:Pond (lake)
;75-76
:Quicksand
;77-78
:Reef
;79-80
:Ridges
;81-84
:River (raging/rapids/delta/brook/creek/stream)
;85-86
:Rocky Bluff
;87-88
:Salt lake
;89-92
:Swamp (marsh/bog)
;93-94
:Tar pit
;95-96
:Thicket (briar patch/brambles)
;97-98
:Treetops
;99-100
:Valley
;101-102
:Volcano
;103-104
:Waterfall
#Learn about their foes
#Lure x
#Maintain status quo
#Make personal sacrifice
#Be alone
#Be directly involved
#Be the victim
#Be welcomed by locals
#Harm foe
#Use powers
#Use violence
#Only do a small part
#Only survive till x occurs
#Prevent x
#Protect locals
#Protect x
#Protect x secretly
#Re-imprison in source
#Rely on allies
#Rely on local resources
#Rely on secrecy
#Remain imprisoned
#Remain undercover
#Repair x
#Repair x, despite y
#Research x
#Stay isolated
#Stop x
#Substitute x for y
#Survive danger
#Survive till x occurs
#Switch x for y
#Take x
#Threaten x
#Train allies
#Try to keep status quo
#Use powers
#Use stealth
#Watch x
#Work with an unwanted ally
#Work with annoying NPC
#Work with foe
#Accompany an NPC
#Help an NPC in another plot
#Avoid ending up like X
#Bargain
#Be a spy
#Be diplomatic
#Be in disguise
#Be isolated
#Be local
#Be mistaken identity
#Be political
#Be social
#Be someone special to plot
#Be the victim
#Break a siege
#Capture x
#Care about the victim
#Cause trouble
#Choose sides
#Chose between evils
#Clear an innocent person
#Co-ordinate with allies
#Co-ordinate with foes
#Contact others like them
#Deal with the source
#Defend x
#Delay x
#Depend on safe location
#Destroy x
#Distract x
#Do a small part in large plot
#Do someone a favour
#Elude x
#Escape
#Find safety
#Find shelter
#Find the `first team in`
#Find x
#Fix history
#Flee x
#Follow x
#Gather allies
#Have caused events
#Have completion in plot
#Help an annoying NPC
#Help an unwanted ally
#Help foe
#Help locals
#Help x
#Imprison x
#Keep status quo
#Kill x