<!--{{{-->
<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>>
text/plain
.txt .text .js .vbs .asp .cgi .pl
----
text/html
.htm .html .hta .htx .mht
----
text/comma-separated-values
.csv
----
text/javascript
.js
----
text/css
.css
----
text/xml
.xml .xsl .xslt
----
image/gif
.gif
----
image/jpeg
.jpg .jpe .jpeg
----
image/png
.png
----
image/bmp
.bmp
----
image/tiff
.tif .tiff
----
audio/basic
.au .snd
----
audio/wav
.wav
----
audio/x-pn-realaudio
.ra .rm .ram
----
audio/x-midi
.mid .midi
----
audio/mp3
.mp3
----
audio/m3u
.m3u
----
video/x-ms-asf
.asf
----
video/avi
.avi
----
video/mpeg
.mpg .mpeg
----
video/quicktime
.qt .mov .qtvr
----
application/pdf
.pdf
----
application/rtf
.rtf
----
application/postscript
.ai .eps .ps
----
application/wordperfect
.wpd
----
application/mswrite
.wri
----
application/msexcel
.xls .xls3 .xls4 .xls5 .xlw
----
application/msword
.doc
----
application/mspowerpoint
.ppt .pps
----
application/x-director
.swa
----
application/x-shockwave-flash
.swf
----
application/x-zip-compressed
.zip
----
application/x-gzip
.gz
----
application/x-rar-compressed
.rar
----
application/octet-stream
.com .exe .dll .ocx
----
application/java-archive
.jar
[[AttachFilePlugin]] reads binary data from locally-stored files (e.g., images, PDFs, mp3's, etc.) and converts it to base64-encoded text that is stored in tiddlers tagged with<<tag attachment>>. [[AttachFilePluginFormatters]] allows you to use those tiddlers in place of the external path/file references that are normally part of the image and external links wiki syntax.

[[FileDropPlugin]] and [[FileDropPluginConfig]] allow you to quickly create attachment tiddlers simply by dragging files directly from your system's desktop folder display and dropping it onto an open TiddlyWiki document.  Text files are automatically created as simple tiddlers, while binary files are automatically encoded and attached.
/***
|Name|AttachFilePlugin|
|Source|http://www.TiddlyTools.com/#AttachFilePlugin|
|Documentation|http://www.TiddlyTools.com/#AttachFilePluginInfo|
|Version|4.0.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|AttachFilePluginFormatters, AttachFileMIMETypes|
|Description|Store binary files as base64-encoded tiddlers with fallback links for separate local and/or remote file storage|
Store or link binary files (such as jpg, gif, pdf or even mp3) within your TiddlyWiki document and then use them as images or links from within your tiddler content.
> Important note: As of version 3.6.0, in order to //render// images and other binary attachments created with this plugin, you must also install [[AttachFilePluginFormatters]], which extends the behavior of the TiddlyWiki core formatters for embedded images ({{{[img[tooltip|image]]}}}), linked embedded images ({{{[img[tooltip|image][link]]}}}), and external/"pretty" links ({{{[[label|link]]}}}), so that these formatter will process references to attachment tiddlers as if a normal file reference had been provided. |
!!!!!Documentation
>see [[AttachFilePluginInfo]]
!!!!!Inline interface (live)
>see [[AttachFile]] (shadow tiddler)
><<tiddler AttachFile>>
!!!!!Revisions
<<<
2011.02.14 4.0.1 fix OSX error: use picker.file.path
2009.06.04 4.0.0 changed attachment storage format to use //sections// instead of embedded substring markers.
|please see [[AttachFilePluginInfo]] for additional revision details|
2005.07.20 1.0.0 Initial Release
<<<
!!!!!Code
***/
// // version
//{{{
version.extensions.AttachFilePlugin= {major: 4, minor: 0, revision: 1, date: new Date(2011,2,14)};

// shadow tiddler
config.shadowTiddlers.AttachFile="<<attach inline>>";

// add 'attach' backstage task (insert before built-in 'importTask')
if (config.tasks) { // for TW2.2b or above
	config.tasks.attachTask = {
		text: "attach",
		tooltip: "Attach a binary file as a tiddler",
		content: "<<attach inline>>"
	}
	config.backstageTasks.splice(config.backstageTasks.indexOf("importTask"),0,"attachTask");
}

config.macros.attach = {
// // lingo
//{{{
	label: "attach file",
	tooltip: "Attach a file to this document",
	linkTooltip: "Attachment: ",

	typeList: "AttachFileMIMETypes",

	titlePrompt: " enter tiddler title...",
	MIMEPrompt: "<option value=''>select MIME type...</option><option value='editlist'>[edit list...]</option>",
	localPrompt: " enter local path/filename...",
	URLPrompt: " enter remote URL...",

	tiddlerErr: "Please enter a tiddler title",
	sourceErr: "Please enter a source path/filename",
	storageErr: "Please select a storage method: embedded, local or remote",
	MIMEErr: "Unrecognized file format.  Please select a MIME type",
	localErr: "Please enter a local path/filename",
	URLErr: "Please enter a remote URL",
	fileErr: "Invalid path/file or file not found",

	tiddlerFormat: '!usage\n{{{%0}}}\n%0\n!notes\n%1\n!type\n%2\n!file\n%3\n!url\n%4\n!data\n%5\n',

//}}}
// // macro definition
//{{{
	handler:
	function(place,macroName,params) {
		if (params && !params[0])
			{ createTiddlyButton(place,this.label,this.tooltip,this.toggleAttachPanel); return; }
		var id=params.shift();
		this.createAttachPanel(place,id+"_attachPanel",params);
		document.getElementById(id+"_attachPanel").style.position="static";
		document.getElementById(id+"_attachPanel").style.display="block";
	},
//}}}
//{{{
	createAttachPanel:
	function(place,panel_id,params) {
		if (!panel_id || !panel_id.length) var panel_id="_attachPanel";
		// remove existing panel (if any)
		var panel=document.getElementById(panel_id); if (panel) panel.parentNode.removeChild(panel);
		// set styles for this panel
		setStylesheet(this.css,"attachPanel");
		// create new panel
		var title=""; if (params && params[0]) title=params.shift();
		var types=this.MIMEPrompt+this.formatListOptions(store.getTiddlerText(this.typeList)); // get MIME types
		panel=createTiddlyElement(place,"span",panel_id,"attachPanel",null);
		var html=this.html.replace(/%id%/g,panel_id);
		html=html.replace(/%title%/g,title);
		html=html.replace(/%disabled%/g,title.length?"disabled":"");
		html=html.replace(/%IEdisabled%/g,config.browser.isIE?"disabled":"");
		html=html.replace(/%types%/g,types);
		panel.innerHTML=html;
		if (config.browser.isGecko) { // FF3 FIXUP
			document.getElementById("attachSource").style.display="none";
			document.getElementById("attachFixPanel").style.display="block";
		}
		return panel;
	},
//}}}
//{{{
	toggleAttachPanel:
	function (e) {
		if (!e) var e = window.event;
		var parent=resolveTarget(e).parentNode;
		var panel = document.getElementById("_attachPanel");
		if (panel==undefined || panel.parentNode!=parent)
			panel=config.macros.attach.createAttachPanel(parent,"_attachPanel");
		var isOpen = panel.style.display=="block";
		if(config.options.chkAnimate)
			anim.startAnimating(new Slider(panel,!isOpen,e.shiftKey || e.altKey,"none"));
		else
			panel.style.display = isOpen ? "none" : "block" ;
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
		return(false);
	},
//}}}
//{{{
	formatListOptions:
	function(text) {
		if (!text || !text.trim().length) return "";
		// get MIME list content from text
		var parts=text.split("\n----\n");
		var out="";
		for (var p=0; p<parts.length; p++) {
			var lines=parts[p].split("\n");
			var label=lines.shift(); // 1st line=display text
			var value=lines.shift(); // 2nd line=item value
			out +='<option value="%1">%0</option>'.format([label,value]);
		}
		return out;
	},
//}}}
// // interface definition
//{{{
	css:
	".attachPanel { display: none; position:absolute; z-index:10; width:35em; right:105%; top:0em;\
		background-color: #eee; color:#000; font-size: 8pt; line-height:110%;\
		border:1px solid black; border-bottom-width: 3px; border-right-width: 3px;\
		padding: 0.5em; margin:0em; -moz-border-radius:1em;-webkit-border-radius:1em; text-align:left }\
	.attachPanel form { display:inline;border:0;padding:0;margin:0; }\
	.attachPanel select { width:99%;margin:0px;font-size:8pt;line-height:110%;}\
	.attachPanel input  { width:98%;padding:0px;margin:0px;font-size:8pt;line-height:110%}\
	.attachPanel textarea { width:98%;margin:0px;height:2em;font-size:8pt;line-height:110%}\
	.attachPanel table { width:100%;border:0;margin:0;padding:0;color:inherit; }\
	.attachPanel tbody, .attachPanel tr, .attachPanel td { border:0;margin:0;padding:0;color:#000; }\
	.attachPanel .box { border:1px solid black; padding:.3em; margin:.3em 0px; background:#f8f8f8; \
		-moz-border-radius:5px;-webkit-border-radius:5px; }\
	.attachPanel .chk { width:auto;border:0; }\
	.attachPanel .btn { width:auto; }\
	.attachPanel .btn2 { width:49%; }\
	",
//}}}
//{{{
	html:
	'<form>\
		attach from source file\
		<input type="file" id="attachSource" name="source" size="56"\
			onChange="config.macros.attach.onChangeSource(this)">\
		<div id="attachFixPanel" style="display:none"><!-- FF3 FIXUP -->\
			<input type="text" id="attachFixSource" style="width:90%"\
				title="Enter a path/file to attach"\
				onChange="config.macros.attach.onChangeSource(this);">\
			<input type="button" style="width:7%" value="..."\
				title="Enter a path/file to attach"\
				onClick="config.macros.attach.askForFilename(document.getElementById(\'attachFixSource\'));">\
		</div><!--end FF3 FIXUP-->\
		<div class="box">\
		<table style="border:0"><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			embed data <input type=checkbox class=chk name="useData" %IEdisabled% \
				onclick="if (!this.form.MIMEType.value.length)\
					this.form.MIMEType.selectedIndex=this.checked?1:0; ">&nbsp;\
		</td><td style="border:0">\
			<select size=1 name="MIMEType" \
				onchange="this.title=this.value; if (this.value==\'editlist\')\
					{ this.selectedIndex=this.form.useData.checked?1:0; story.displayTiddler(null,config.macros.attach.typeList,2); return; }">\
				<option value=""></option>\
				%types%\
			</select>\
		</td></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			local link <input type=checkbox class=chk name="useLocal"\
				onclick="this.form.local.value=this.form.local.defaultValue=this.checked?config.macros.attach.localPrompt:\'\';">&nbsp;\
		</td><td style="border:0">\
			<input type=text name="local" size=15 autocomplete=off value=""\
				onchange="this.form.useLocal.checked=this.value.length" \
				onkeyup="this.form.useLocal.checked=this.value.length" \
				onfocus="if (!this.value.length) this.value=config.macros.attach.localPrompt; this.select()">\
		</td></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			remote link <input type=checkbox class=chk name="useURL"\
				onclick="this.form.URL.value=this.form.URL.defaultValue=this.checked?config.macros.attach.URLPrompt:\'\';\">&nbsp;\
		</td><td style="border:0">\
			<input type=text name="URL" size=15 autocomplete=off value=""\
				onfocus="if (!this.value.length) this.value=config.macros.attach.URLPrompt; this.select()"\
				onchange="this.form.useURL.checked=this.value.length;"\
				onkeyup="this.form.useURL.checked=this.value.length;">\
		</td></tr></table>\
		</div>\
		<table style="border:0"><tr style="border:0"><td style="border:0;text-align:right;vertical-align:top;width:1%;white-space:nowrap">\
			notes&nbsp;\
		</td><td style="border:0" colspan=2>\
			<textarea name="notes" style="width:98%;height:3.5em;margin-bottom:2px"></textarea>\
		</td><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			attach as&nbsp;\
		</td><td style="border:0" colspan=2>\
			<input type=text name="tiddlertitle" size=15 autocomplete=off value="%title%"\
				onkeyup="if (!this.value.length) { this.value=config.macros.attach.titlePrompt; this.select(); }"\
				onfocus="if (!this.value.length) this.value=config.macros.attach.titlePrompt; this.select()" %disabled%>\
		</td></tr></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			add tags&nbsp;\
		</td><td style="border:0">\
			<input type=text name="tags" size=15 autocomplete=off value="" onfocus="this.select()">\
		</td><td style="width:40%;text-align:right;border:0">\
			<input type=button class=btn2 value="attach"\
				onclick="config.macros.attach.onClickAttach(this)"><!--\
			--><input type=button class=btn2 value="close"\
				onclick="var panel=document.getElementById(\'%id%\'); if (panel) panel.parentNode.removeChild(panel);">\
		</td></tr></table>\
	</form>',
//}}}
// // control processing
//{{{
	onChangeSource:
	function(here) {
		var form=here.form;
		var list=form.MIMEType;
		var theFilename  = here.value;
		var theExtension = theFilename.substr(theFilename.lastIndexOf('.')).toLowerCase();
		// if theFilename is in current document folder, remove path prefix and use relative reference
		var h=document.location.href; folder=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf("/")+1)));
		if (theFilename.substr(0,folder.length)==folder) theFilename='./'+theFilename.substr(folder.length);
		else theFilename='file:///'+theFilename; // otherwise, use absolute reference
		theFilename=theFilename.replace(/\\/g,"/"); // fixup: change \ to /
		form.useLocal.checked = true;
		form.local.value = theFilename;
		form.useData.checked = !form.useData.disabled;
		list.selectedIndex=1;
		for (var i=0; i<list.options.length; i++) // find matching MIME type
			if (list.options[i].value.indexOf(theExtension)!=-1) { list.selectedIndex = i; break; }
		if (!form.tiddlertitle.disabled)
			form.tiddlertitle.value=theFilename.substr(theFilename.lastIndexOf('/')+1); // get tiddlername from filename
	},
//}}}
//{{{
	onClickAttach:
	function (here) {
		clearMessage();
		// get input values
		var form=here.form;
		var src=form.source; if (config.browser.isGecko) src=document.getElementById("attachFixSource");
		src=src.value!=src.defaultValue?src.value:"";
		var when=(new Date()).formatString(config.macros.timeline.dateFormat);
		var title=form.tiddlertitle.value;
		var local = form.local.value!=form.local.defaultValue?form.local.value:"";
		var url = form.URL.value!=form.URL.defaultValue?form.URL.value:"";
		var notes = form.notes.value;
		var tags = "attachment excludeMissing "+form.tags.value;
		var useData=form.useData.checked;
		var useLocal=form.useLocal.checked;
		var useURL=form.useURL.checked;
		var mimetype = form.MIMEType.value.length?form.MIMEType.options[form.MIMEType.selectedIndex].text:"";
		// validate checkboxes and get filename
		if (useData) {
			if (src.length) { if (!theLocation) var theLocation=src; }
			else { alert(this.sourceErr); src.focus(); return false; }
		}
		if (useLocal) {
			if (local.length) { if (!theLocation) var theLocation = local; }
			else { alert(this.localErr); form.local.focus(); return false; }
		}
		if (useURL) {
			if (url.length) { if (!theLocation) var theLocation = url; }
			else { alert(this.URLErr); form.URL.focus(); return false; }
		}
		if (!(useData||useLocal||useURL))
			{ form.useData.focus(); alert(this.storageErr); return false; }
		if (!theLocation)
			{ src.focus(); alert(this.sourceErr); return false; }
		if (!title || !title.trim().length || title==this.titlePrompt)
			{ form.tiddlertitle.focus(); alert(this.tiddlerErr); return false; }
		// if not already selected, determine MIME type based on filename extension (if any)
		if (useData && !mimetype.length && theLocation.lastIndexOf('.')!=-1) {
			var theExt = theLocation.substr(theLocation.lastIndexOf('.')).toLowerCase();
			var theList=form.MIMEType;
			for (var i=0; i<theList.options.length; i++)
				if (theList.options[i].value.indexOf(theExt)!=-1)
					{ var mimetype=theList.options[i].text; theList.selectedIndex=i; break; }
		}
		// attach the file
		return this.createAttachmentTiddler(src, when, notes, tags, title,
			useData, useLocal, useURL, local, url, mimetype);
	},
	getMIMEType:
	function(src,def) {
		var ext = src.substr(src.lastIndexOf('.')).toLowerCase();
		var list=store.getTiddlerText(this.typeList);
		if (!list || !list.trim().length) return def;
		// get MIME list content from tiddler
		var parts=list.split("\n----\n");
		for (var p=0; p<parts.length; p++) {
			var lines=parts[p].split("\n");
			var mime=lines.shift(); // 1st line=MIME type
			var match=lines.shift(); // 2nd line=matching extensions
			if (match.indexOf(ext)!=-1) return mime;
		}
		return def;
	},
	createAttachmentTiddler:
	function (src, when, notes, tags, title, useData, useLocal, useURL, local, url, mimetype, noshow) {
		if (useData) { // encode the data
			if (!mimetype.length) {
				alert(this.MIMEErr);
				form.MIMEType.selectedIndex=1; form.MIMEType.focus();
				return false;
			}
			var d = this.readFile(src); if (!d) { return false; }
			displayMessage('encoding '+src);
			var encoded = this.encodeBase64(d);
			displayMessage('file size='+d.length+' bytes, encoded size='+encoded.length+' bytes');
		}
		var usage=(mimetype.substr(0,5)=="image"?'[img[%0]]':'[[%0|%0]]').format([title]);
		var theText=this.tiddlerFormat.format([
			usage, notes.length?notes:'//none//', mimetype,
			useLocal?local.replace(/\\/g,'/'):'', useURL?url:'',
			useData?('data:'+mimetype+';base64,'+encoded):'' ]);
		store.saveTiddler(title,title,theText,config.options.txtUserName,new Date(),tags);
		var panel=document.getElementById("attachPanel"); if (panel) panel.style.display="none";
		if (!noshow) { story.displayTiddler(null,title); story.refreshTiddler(title,null,true); }
		displayMessage('attached "'+title+'"');
		return true;
	},
//}}}
// // base64 conversion
//{{{
	encodeBase64:
	function (d) {
		if (!d) return null;
		// encode as base64
		var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
		var out="";
		var chr1,chr2,chr3="";
		var enc1,enc2,enc3,enc4="";
		for (var count=0,i=0; i<d.length; ) {
			chr1=d.charCodeAt(i++);
			chr2=d.charCodeAt(i++);
			chr3=d.charCodeAt(i++);
			enc1=chr1 >> 2;
			enc2=((chr1 & 3) << 4) | (chr2 >> 4);
			enc3=((chr2 & 15) << 2) | (chr3 >> 6);
			enc4=chr3 & 63;
			if (isNaN(chr2)) enc3=enc4=64;
			else if (isNaN(chr3)) enc4=64;
			out+=keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4);
			chr1=chr2=chr3=enc1=enc2=enc3=enc4="";
		}
		return out;
	},
	decodeBase64: function(input) {
		var out="";
		var chr1,chr2,chr3;
		var enc1,enc2,enc3,enc4;
		var i = 0;
		// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
		input=input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
		do {
			enc1=keyStr.indexOf(input.charAt(i++));
			enc2=keyStr.indexOf(input.charAt(i++));
			enc3=keyStr.indexOf(input.charAt(i++));
			enc4=keyStr.indexOf(input.charAt(i++));
			chr1=(enc1 << 2) | (enc2 >> 4);
			chr2=((enc2 & 15) << 4) | (enc3 >> 2);
			chr3=((enc3 & 3) << 6) | enc4;
			out=out+String.fromCharCode(chr1);
			if (enc3!=64) out=out+String.fromCharCode(chr2);
			if (enc4!=64) out=out+String.fromCharCode(chr3);
		} while (i<input.length);
		return out;
	},
//}}}
// // I/O functions
//{{{
	readFile: // read local BINARY file data
	function(filePath) {
		if(!window.Components) { return null; }
		try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
		catch(e) { alert("access denied: "+filePath); return null; }
		var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
		try { file.initWithPath(filePath); } catch(e) { alert("cannot read file - invalid path: "+filePath); return null; }
		if (!file.exists()) { alert("cannot read file - not found: "+filePath); return null; }
		var inputStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
		inputStream.init(file, 0x01, 00004, null);
		var bInputStream = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Components.interfaces.nsIBinaryInputStream);
		bInputStream.setInputStream(inputStream);
		return(bInputStream.readBytes(inputStream.available()));
	},
//}}}
//{{{
	writeFile:
	function(filepath,data) {
		// TBD: decode base64 and write BINARY data to specified local path/filename
		return(false);
	},
//}}}
//{{{
	askForFilename: // for FF3 fixup
	function(target) {
		var msg=config.messages.selectFile;
		if (target && target.title) msg=target.title; // use target field tooltip (if any) as dialog prompt text
		// get local path for current document
		var path=getLocalPath(document.location.href);
		var p=path.lastIndexOf("/"); if (p==-1) p=path.lastIndexOf("\\"); // Unix or Windows
		if (p!=-1) path=path.substr(0,p+1); // remove filename, leave trailing slash
		var file=""
		var result=window.mozAskForFilename(msg,path,file,true); // FF3 FIXUP ONLY
		if (target && result.length) // set target field and trigger handling
			{ target.value=result; target.onchange(); }
		return result; 
	}
};
//}}}
//{{{
if (window.mozAskForFilename===undefined) { // also defined by CoreTweaks (for ticket #604)
	window.mozAskForFilename=function(msg,path,file,mustExist) {
		if(!window.Components) return false;
		try {
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
			var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
			var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
			picker.init(window, msg, mustExist?nsIFilePicker.modeOpen:nsIFilePicker.modeSave);
			var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
			thispath.initWithPath(path);
			picker.displayDirectory=thispath;
			picker.defaultExtension='';
			picker.defaultString=file;
			picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
			if (picker.show()!=nsIFilePicker.returnCancel)
				var result=picker.file.path;
		}
		catch(ex) { displayMessage(ex.toString()); }
		return result;
	}
}
//}}}
/***
|Name|AttachFilePluginFormatters|
|Source|http://www.TiddlyTools.com/#AttachFilePluginFormatters|
|Version|4.0.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1.3|
|Type|plugin|
|Description|run-time library for displaying attachment tiddlers|
Runtime processing for //rendering// attachment tiddlers created by [[AttachFilePlugin]].   Attachment tiddlers are tagged with<<tag attachment>>and contain binary file content (e.g., jpg, gif, pdf, mp3, etc.) that has been stored directly as base64 text-encoded data or can be loaded from external files stored on a local filesystem or remote web server.  Note: after creating new attachment tiddlers, you can remove [[AttachFilePlugin]], as long as you retain //this// tiddler (so that images can be rendered later on).
!!!!!Formatters
<<<
This plugin extends the behavior of the following TiddlyWiki core "wikify()" formatters:
* embedded images: {{{[img[tooltip|image]]}}}
* linked embedded images: {{{[img[tooltip|image][link]]}}}
* external/"pretty" links: {{{[[label|link]]}}}
''Please refer to AttachFilePlugin (source: http://www.TiddlyTools.com/#AttachFilePlugin) for additional information.''
<<<
!!!!!Revisions
<<<
2009.10.10 [4.0.1] in fileExists(), check for IE to avoid hanging Chrome during startup
2009.06.04 [4.0.0] changed attachment storage format to use //sections// instead of embedded substring markers.
2008.01.08 [*.*.*] plugin size reduction: documentation moved to ...Info
2007.12.04 [*.*.*] update for TW2.3.0: replaced deprecated core functions, regexps, and macros
2007.10.29 [3.7.0] more code reduction: removed upload handling from AttachFilePlugin (saves ~7K!)
2007.10.28 [3.6.0] removed duplicate formatter code from AttachFilePlugin (saves ~10K!) and updated documentation accordingly.  This plugin ([[AttachFilePluginFormatters]]) is now //''required''// in order to display attached images/binary files within tiddler content.
2006.05.20 [3.4.0] through 2007.03.01 [3.5.3] sync with AttachFilePlugin
2006.05.13 [3.2.0] created from AttachFilePlugin v3.2.0
<<<
!!!!!Code
***/
// // version
//{{{
version.extensions.AttachFilePluginFormatters= {major: 4, minor: 0, revision: 1, date: new Date(2009,10,10)};
//}}}

//{{{
if (config.macros.attach==undefined) config.macros.attach= { };
//}}}
//{{{
if (config.macros.attach.isAttachment==undefined) config.macros.attach.isAttachment=function (title) {
	var tiddler = store.getTiddler(title);
	if (tiddler==undefined || tiddler.tags==undefined) return false;
	return (tiddler.tags.indexOf("attachment")!=-1);
}
//}}}

//{{{
// test for local file existence - returns true/false without visible error display
if (config.macros.attach.fileExists==undefined) config.macros.attach.fileExists=function(f) {
	if(window.Components) { // MOZ
		try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
		catch(e) { return false; } // security access denied
		var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
		try { file.initWithPath(f); }
		catch(e) { return false; } // invalid directory
		return file.exists();
	}
	else if (config.browser.isIE) { // IE
		var fso = new ActiveXObject("Scripting.FileSystemObject");
		return fso.FileExists(f);
	}
	else return true; // other browsers: assume file exists
}
//}}}

//{{{
if (config.macros.attach.getAttachment==undefined) config.macros.attach.getAttachment=function(title) {

	// extract embedded data, local and remote links (if any)
	var text=store.getTiddlerText(title,'');
	var embedded=store.getTiddlerText(title+'##data','').trim();
	var locallink=store.getTiddlerText(title+'##file','').trim();
	var remotelink=store.getTiddlerText(title+'##url','').trim();

	// backward-compatibility for older attachments (pre 4.0.0)
	var startmarker="---BEGIN_DATA---\n";
	var endmarker="\n---END_DATA---";
	var pos=0; var endpos=0;
	if ((pos=text.indexOf(startmarker))!=-1 && (endpos=text.indexOf(endmarker))!=-1)
		embedded="data:"+(text.substring(pos+startmarker.length,endpos)).replace(/\n/g,'');
	if ((pos=text.indexOf("/%LOCAL_LINK%/"))!=-1)
		locallink=text.substring(text.indexOf("|",pos)+1,text.indexOf("]]",pos));
	if ((pos=text.indexOf("/%REMOTE_LINK%/"))!=-1)
		remotelink=text.substring(text.indexOf("|",pos)+1,text.indexOf("]]",pos));

	// if there is a data: URI defined (not supported by IE)
	if (embedded.length && !config.browser.isIE) return embedded;

	// document is being served remotely... use remote URL (if any)  (avoids security alert)
	if (remotelink.length && document.location.protocol!="file:")
		return remotelink;  

	// local link only... return link without checking file existence (avoids security alert)
	if (locallink.length && !remotelink.length) 
		return locallink; 

	// local link, check for file exist... use local link if found
	if (locallink.length) { 
		locallink=locallink.replace(/^\.[\/\\]/,''); // strip leading './' or '.\' (if any)
		if (this.fileExists(getLocalPath(locallink))) return locallink;
		// maybe local link is relative... add path from current document and try again
		var pathPrefix=document.location.href;  // get current document path and trim off filename
		var slashpos=pathPrefix.lastIndexOf("/"); if (slashpos==-1) slashpos=pathPrefix.lastIndexOf("\\"); 
		if (slashpos!=-1 && slashpos!=pathPrefix.length-1) pathPrefix=pathPrefix.substr(0,slashpos+1);
		if (this.fileExists(getLocalPath(pathPrefix+locallink))) return locallink;
	}

	// no embedded data, no local (or not found), fallback to remote URL (if any)
	if (remotelink.length) return remotelink;

	// attachment URL doesn't resolve, just return input as is
	return title;
}
//}}}
//{{{
if (config.macros.attach.init_formatters==undefined) config.macros.attach.init_formatters=function() {
	if (this.initialized) return;

	// find the formatter for "image" and replace the handler
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="image"; i++);
	if (i<config.formatters.length)	config.formatters[i].handler=function(w) {
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) // Simple bracketted link
			{
			var e = w.output;
			if(lookaheadMatch[5])
				{
				var link = lookaheadMatch[5];
				// ELS -------------
				var external=config.formatterHelpers.isExternalLink(link);
				if (external)
					{
					if (config.macros.attach.isAttachment(link))
						{
						e = createExternalLink(w.output,link);
						e.href=config.macros.attach.getAttachment(link);
						e.title = config.macros.attach.linkTooltip + link;
						}
					else
						e = createExternalLink(w.output,link);
					}
				else 
					e = createTiddlyLink(w.output,link,false,null,w.isStatic);
				// ELS -------------
				addClass(e,"imageLink");
				}
			var img = createTiddlyElement(e,"img");
			if(lookaheadMatch[1])
				img.align = "left";
			else if(lookaheadMatch[2])
				img.align = "right";
			if(lookaheadMatch[3])
				img.title = lookaheadMatch[3];
			img.src = lookaheadMatch[4];
			// ELS -------------
			if (config.macros.attach.isAttachment(lookaheadMatch[4]))
				img.src=config.macros.attach.getAttachment(lookaheadMatch[4]);
			// ELS -------------
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	}
//}}}
//{{{
	// find the formatter for "prettyLink" and replace the handler
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="prettyLink"; i++);
	if (i<config.formatters.length)	{
		config.formatters[i].handler=function(w) {
			this.lookaheadRegExp.lastIndex = w.matchStart;
			var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
			if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
				var e;
				var text = lookaheadMatch[1];
				if(lookaheadMatch[3]) {
					// Pretty bracketted link
					var link = lookaheadMatch[3];
					if (config.macros.attach.isAttachment(link)) {
						e = createExternalLink(w.output,link);
						e.href=config.macros.attach.getAttachment(link);
						e.title=config.macros.attach.linkTooltip+link;
					}
					else e = (!lookaheadMatch[2] && config.formatterHelpers.isExternalLink(link))
						? createExternalLink(w.output,link)
						: createTiddlyLink(w.output,link,false,null,w.isStatic);
				} else {
					e = createTiddlyLink(w.output,text,false,null,w.isStatic);
				}
				createTiddlyText(e,text);
				w.nextMatch = this.lookaheadRegExp.lastIndex;
			}
		}
	} // if "prettyLink" formatter found
	this.initialized=true;
}
//}}}
//{{{
config.macros.attach.init_formatters(); // load time init
//}}}
//{{{
if (TiddlyWiki.prototype.coreGetRecursiveTiddlerText==undefined) {
	TiddlyWiki.prototype.coreGetRecursiveTiddlerText = TiddlyWiki.prototype.getRecursiveTiddlerText;
	TiddlyWiki.prototype.getRecursiveTiddlerText = function(title,defaultText,depth) {
		return config.macros.attach.isAttachment(title)?
			config.macros.attach.getAttachment(title):this.coreGetRecursiveTiddlerText.apply(this,arguments);
	}
}
//}}}
/***
|''Name:''|SortableGridPlugin|
|''Description:''|Provide live sorting of tables by column|
|''Date:''|Sep. 29, 2007|
|''Source:''|[[SortableGridPlugin|http://rumkin.com/tools/tiddlywiki/#SortableGridPlugin]]|
|''Author:''|Stuart Langridge, Demian Johnson, Bob Denny|
|''License:''|See Below|
|''Version:''|1.1.3|
|''~CoreVersion:''|2.0.11, 2.1.x and newer|
|''Browser:''|Firefox 1.5/2.0; Internet Explorer 6.0/7.0; Safari|
!!Description
@@Only minor changes by Tyler to make it work with TiddlyWiki 2.2.x and newer@@

This plugin provides live sorting of tables by clicking on a column header. To sort in reverse, click the same column header a second time. An arrow in the sort column shows the direction of sorting. 

It works by trying to automatically detect the type of data in a column, then sorting by the rules for that data type. Note that the data in the first row (before sorting for the first time) is used for type detection, so if other data types exist in the column below the first row, the results will be unpredictable. If it //can// recognize the string as prticular type it //will// sort that column by that type. Moral: keep all of your data in a column the same type. The following data types are checked in the order shown (in other words the table shows the precedence of type detection):

|!Type |!Description|
|Date|Various formats for dates, specifically any string format that can be converted to a date/time by Javascript's Date.Parse() method.|
|Currency|Any string beginning with $, £, or € followed by a numeric string (except no leading sign). Note that it does not do currency conversion, the raw currency values are sorted numerically. {{{/^[$|£|€]{1}\d*\.{0,1}\d+$/}}}|
|Numeric|Data must consist purely of digits, optional leading plus or minus sign, a single period. Javascript cannot handle the Continental virgule (comma decimal point). {{{/^[\+|\-]{0,1}\d*\.{0,1}\d+$/}}}|
|File Size|Numeric string (except no leading sign) with b, Kb, Mb, or Gb at the end. Sorts according to the actual value represented by the notation. {{{/^\d*\.{0,1}\d+[K|M|G]{0,1}b$}}}|
|Text|Anything that does not match the formats listed below. Text is sorted without regard to character case.|
!!Installation
Follow the usual procedure for installing a plugin: Edit this tiddler, copy, paste into a new tiddler in your TW, and tag it systemConfig. Close, Save, and Shift-Reload  your TW's page. The table below (in Example) should have hot column headers and be sortable.
!!Usage
To make a table sortable, append an {{{h}}} to the end of the first row. If the table is thus marked as sortable, the formatter will add a CSS class {{{sortable}}} to the generated {{{<table>}}} element. Thus you can use CSS to alter the appearance of the sortable table and/or its elements.
!!Example
|Name |Salary |Extension |Performance |File Size |Start date |h
|Bloggs, Fred |$12000.00 |1353 |+1.2 |74.2Kb |Aug 19, 2003 21:34:00 |
|Bloggs, Fred |$12000.00 |1353 |1.2 |3350b |09/18/2003 |
|Bloggs, Fred |$12000 |1353 |1.200 |55.2Kb |August 18, 2003 |
|Bloggs, Fred |$12000.00 |1353 |1.2 |2100b |07/18/2003 |
|Bloggs, Fred |$12000.00 |1353 |01.20 |6.156Mb |08/17/2003 05:43 |
|Turvey, Kevin |$191200.00 |2342 |-33 |1b |02/05/1979 |
|Mbogo, Arnold |$32010.12 |2755 |-21.673 |1.2Gb |09/08/1998 |
|Shakespeare, Bill |£122000.00|3211 |6 |33.22Gb |12/11/1961 |
|Shakespeare, Hamlet |£9000 |9005 |-8 |3Gb |01/01/2002 |
|Fitz, Marvin |€3300.30 |5554 |+5 |4Kb |05/22/1995 |
!!Revision History
<<<
''2003.11.?? [?.?.?]'' Stuart Langridge (http://www.kryogenix.org/code/browser/sorttable/) - Core code for DHTML sortable tables. Copyright and license for his code has been carried forward and applies to subsequent additions.
''2006.02.14 [1.0.0]'' Demian Johnson - Initial release, adaptation of Langridge code to TiddlyWiki.
''2006.09.29 [1.1.0]'' Bob Denny - Add standard-format plugin documentation, reformat and tabify code for readability, refactor references to plugin, add new "file size" detection and sorting, add sterling and euro to currency detection, allow any real numbers including optional sign and either period or comma for decimal point for numeric sorting, make RegExp matching strict for currency and numeric, clean up lint warnings, correct spelling of Hamlet's name.
''2006.10.19 [1.1.1]'' Bob Denny - Allow use with TW 2.1.1 and 2.1.2, hijack is identical with 2.1.0.
''2006.11.04 [1.1.2]'' Bob Denny - Oh hell, accept 2.1.x, bit again by 2.1.3 which was OK.
<<<
!!Code
***/
//{{{
//
// Begin SORTABLE.JS
// This Code is:
// Code downloaded from the Browser Experiments section of kryogenix.org is 
// licenced under the so-called MIT licence. The license is below.
// ----------------------------------------
// Copyright (c) 1997-date Stuart Langridge
// ----------------------------------------
// Permission is hereby granted, free of charge, to any person obtaining a copy of this 
// software and associated documentation files (the "Software"), to deal in the Software 
// without restriction, including without limitation the rights to use, copy, modify, merge, 
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons 
// to whom the Software is furnished to do so, subject to the following conditions:
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE 
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
// DEALINGS IN THE SOFTWARE.
//
// Modified under the same aforementioned terms by Demian Johnston, 2006
// Further modified under the same aforementioned terms by Bob Denny, 2006: 
//	1. Add flexible date/time 
//	2. Use 'this' instead of full dotted names 
//	3. Re-indent and tabify after being munged by TW/IE bu
//	4. Add "file size" sensing and sorting. Validate with Javascript Lint
// Modified under the same aforementioned terms by Tyler Akins, 2007
//	Works work with TiddlyWiki 2.2.x
//
version.extensions.PersistentForm = {
	major: 1, minor: 1, revision: 3,
	date: new Date(2007, 9, 29), 
	type: 'extension',
	source: "http://rumkin.com/tools/tiddlywiki/#SortableGridPlugin"
};
//}}}

//{{{
config.macros.sortableGridPlugin = { SORT_COLUMN_INDEX: 0 };

config.macros.sortableGridPlugin.ts_makeSortable = function(table) 
{
	var firstRow;
	if (table.rows && table.rows.length > 0) {
		firstRow = table.rows[0];
	}
	if (!firstRow) return;
    
	// We have a first row: assume it's the header, and make its contents clickable links
	for (var i=0;i<firstRow.cells.length;i++) {
		var cell = firstRow.cells[i];
		var txt = config.macros.sortableGridPlugin.ts_getInnerText(cell);
		cell.innerHTML = '<a href="#" class="sortheader" onclick="config.macros.sortableGridPlugin.ts_resortTable(this);return false;">' +
						txt + '<span class="sortarrow">&nbsp;&nbsp;&nbsp;</span></a>';
	}
};
//}}}

//{{{
config.macros.sortableGridPlugin.ts_getInnerText = function(el) 
{
	if (typeof el == "string") return el;
	if (typeof el == "undefined") { return el; }
	if (el.innerText) return el.innerText; //Not needed but it is faster
	var str = "";
	var cs = el.childNodes;
	var l = cs.length;
	for (var i = 0; i < l; i++) {
		switch (cs[i].nodeType) 
		{
			case 1: 										//ELEMENT_NODE
				str += config.macros.sortableGridPlugin.ts_getInnerText(cs[i]);
				break;
			case 3: 										//TEXT_NODE
				str += cs[i].nodeValue;
				break;
		}
	}
	return str;
};

config.macros.sortableGridPlugin.getParent = function(el, pTagName) 
{
	if (el === null) 
		return null;
	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) // Gecko bug, supposed to be uppercase
		return el;
	else
		return config.macros.sortableGridPlugin.getParent(el.parentNode, pTagName);
};
//}}}

//{{{
config.macros.sortableGridPlugin.ts_resortTable = function(lnk) 
{
	var M = config.macros.sortableGridPlugin;
	// get the span
	var span;
	for (var ci = 0; ci < lnk.childNodes.length; ci++) {
	if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') 
		span = lnk.childNodes[ci];
	}
	var td = lnk.parentNode;
	var column = td.cellIndex;
	var table = M.getParent(td,'TABLE');
    
	// Work out a type for the column
	if (table.rows.length <= 1) return;
	var itm = M.ts_getInnerText(table.rows[1].cells[column]);
	var sortfn = M.ts_sort_caseinsensitive;
	if(!isNaN(Date.parse(itm)))
		sortfn = M.ts_sort_date;
	else if(itm.match(/^[$|£|€]{1}\d*\.{0,1}\d+$/)) 
		sortfn = M.ts_sort_currency;
	else if(itm.match(/^[\+|\-]{0,1}\d*\.{0,1}\d+$/)) 
		sortfn = M.ts_sort_numeric;
	else if(itm.match(/^\d*\.{0,1}\d+[K|M|G]{0,1}b$/))
		sortfn = M.ts_sort_fileSize;
	M.SORT_COLUMN_INDEX = column;
	var firstRow = new Array();
	var newRows = new Array();
	for (var i = 0; i < table.rows[0].length; i++) { firstRow[i] = table.rows[0][i]; }
	for (var j = 1; j < table.rows.length; j++) { newRows[j-1] = table.rows[j]; }
    
	newRows.sort(sortfn);
	var ARROW;
	if (span.getAttribute("sortdir") == 'down') {
		ARROW = '&nbsp;&nbsp;&uarr;';
		newRows.reverse();
		span.setAttribute('sortdir','up');
	} else {
		ARROW = '&nbsp;&nbsp;&darr;';
		span.setAttribute('sortdir','down');
	}
    
	// We appendChild rows that already exist to the tbody, so it moves them 
	// rather than creating new ones. Don't do sortbottom rows
	for ( i=0;i<newRows.length;i++) { 
		if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) 
			table.tBodies[0].appendChild(newRows[i]);
	}
	// do sortbottom rows only
	for ( i=0;i<newRows.length;i++) { 
		if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) 
			table.tBodies[0].appendChild(newRows[i]);
	}
    
	// Delete any other arrows there may be showing
	var allspans = document.getElementsByTagName("span");
	for ( ci=0;ci<allspans.length;ci++) {
		if (allspans[ci].className == 'sortarrow') {
			if (M.getParent(allspans[ci],"table") == M.getParent(lnk,"table")) { // in the same table as us?
				allspans[ci].innerHTML = '&nbsp;&nbsp;&nbsp;';
			}
		}
	}
    
	span.innerHTML = ARROW;
};
//}}}

//{{{
config.macros.sortableGridPlugin.ts_sort_fileSize = function(a, b) 
{
	var M = config.macros.sortableGridPlugin;
	var convert = function(str)
	{
		var val;
		var i;
		if((i = str.indexOf("Kb")) != -1)
			val = 1024.0 * str.substr(0, i);
		else if((i = str.indexOf("Mb")) != -1)
			val = 1048576.0 * str.substr(0, i);
		else if((i = str.indexOf("Gb")) != -1)
			val = 1073741824.0 * str.substr(0, i);
		else
			val = 1.0 * str.substr(0, str.length - 1);
		return val;
	};
    
	var aa = M.ts_getInnerText(a.cells[M.SORT_COLUMN_INDEX]);
	var bb = M.ts_getInnerText(b.cells[M.SORT_COLUMN_INDEX]);
	var v1 = convert(aa);
	var v2 = convert(bb);
	if(v1 == v2) return 0;
	if(v1 < v2) return -1;
	return 1;
};

config.macros.sortableGridPlugin.ts_sort_date = function(a, b) 
{
	var M = config.macros.sortableGridPlugin;
	// Handles dates per the rules of Date.parse()
	var aa = M.ts_getInnerText(a.cells[M.SORT_COLUMN_INDEX]);
	var bb = M.ts_getInnerText(b.cells[M.SORT_COLUMN_INDEX]);
	var dt1 = Date.parse(aa);
	var dt2 = Date.parse(bb);
	if (dt1 == dt2) return 0;
	if (dt1 < dt2) return -1;
	return 1;
};

config.macros.sortableGridPlugin.ts_sort_currency = function(a, b) 
{ 
	var M = config.macros.sortableGridPlugin;
	var aa = M.ts_getInnerText(a.cells[M.SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
	var bb = M.ts_getInnerText(b.cells[M.SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
	return parseFloat(aa) - parseFloat(bb);
};

config.macros.sortableGridPlugin.ts_sort_numeric = function(a, b) 
{ 
	var M = config.macros.sortableGridPlugin;
	var aa = parseFloat(M.ts_getInnerText(a.cells[M.SORT_COLUMN_INDEX]));
	if (isNaN(aa)) aa = 0;
	var bb = parseFloat(M.ts_getInnerText(b.cells[M.SORT_COLUMN_INDEX])); 
	if (isNaN(bb)) bb = 0;
	return aa-bb;
};

config.macros.sortableGridPlugin.ts_sort_caseinsensitive = function(a, b) 
{
	var M = config.macros.sortableGridPlugin;
	var aa = M.ts_getInnerText(a.cells[M.SORT_COLUMN_INDEX]).toLowerCase();
	var bb = M.ts_getInnerText(b.cells[M.SORT_COLUMN_INDEX]).toLowerCase();
	if (aa == bb) return 0;
	if (aa < bb) return -1;
	return 1;
};

//}}}

//{{{
// end Code downloaded from the Browser Experiments section of kryogenix.org
// end Copyright (c) 1997-date Stuart Langridge//
// END SORTABLE.JS//
//}}}

//{{{
//
//
// CORE HIJACK WARNINGS: 
//	(1) Depends on the table formatter being first in the config.formatters array
//	(2) Version-specifics - test on your version before adding to the logic here!
//
if(version.major == 2 && version.minor === 0 && version.revision == 11)
{
	config.formatters[0].handler = function(w)
	{
		var table = createTiddlyElement(w.output,"table");
		w.nextMatch = w.matchStart;
		var lookaheadRegExp = new RegExp(this.lookahead,"mg");
		var currRowType = null, nextRowType;
		var rowContainer, rowElement;
		var prevColumns = [];
		var rowCount = 0;
		var want_sortable=0;
		do {
			lookaheadRegExp.lastIndex = w.nextMatch;
			var lookaheadMatch = lookaheadRegExp.exec(w.source);
			var matched = lookaheadMatch && lookaheadMatch.index == w.nextMatch;
			if(matched)
			{
				nextRowType = lookaheadMatch[2];
				if(nextRowType != currRowType)
				rowContainer = createTiddlyElement(table,this.rowTypes[nextRowType]);
				currRowType = nextRowType;
				if(currRowType == "c")
				{
					if(rowCount === 0)
						rowContainer.setAttribute("align","top");
					else
						rowContainer.setAttribute("align","bottom");
					w.nextMatch = w.nextMatch + 1;
					w.subWikify(rowContainer,this.rowTerminator);
					table.insertBefore(rowContainer,table.firstChild);
				}
				else
				{
					var rowClass = (rowCount & 1) ? "oddRow" : "evenRow";
					rowElement = createTiddlyElement(rowContainer,"tr",null,rowClass);
					this.rowHandler(w,rowElement,prevColumns);
				}
				if(currRowType == "h") {
					want_sortable=1;
				}
				rowCount++;
			}
		} while(matched);
		if (want_sortable) {
			table.setAttribute("class","sortable");
			config.macros.sortableGridPlugin.ts_makeSortable(table);
		}
	};
} 
else if(version.major == 2 && (version.minor > 0))
{
	config.formatters[0].handler = function(w)
	{
		var table = createTiddlyElement(w.output,"table");
		var prevColumns = [];
		var currRowType = null;
		var rowContainer;
		var rowCount = 0;
		var want_sortable = 0;
	    
		w.nextMatch = w.matchStart;
		this.lookaheadRegExp.lastIndex = w.nextMatch;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		while(lookaheadMatch && lookaheadMatch.index == w.nextMatch)
		{
			var nextRowType = lookaheadMatch[2];
			if(nextRowType == "k")
			{
				table.className = lookaheadMatch[1];
				w.nextMatch += lookaheadMatch[0].length+1;
			}
			else
			{
				if(nextRowType != currRowType)
				{
					rowContainer = createTiddlyElement(table,this.rowTypes[nextRowType]);
					currRowType = nextRowType;
				}
				if(currRowType == "c")
				{
					// Caption
					w.nextMatch++;
					if(rowContainer != table.firstChild)
						table.insertBefore(rowContainer,table.firstChild);
					rowContainer.setAttribute("align",rowCount === 0?"top":"bottom");
					w.subWikifyTerm(rowContainer,this.rowTermRegExp);
				}
				else
				{
					this.rowHandler(w,createTiddlyElement(rowContainer,"tr",null,(rowCount&1)?"oddRow":"evenRow"),prevColumns);
					if(currRowType == "h")	want_sortable = 1;
					rowCount++;
				}
			}
			this.lookaheadRegExp.lastIndex = w.nextMatch;
			lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		}
		if (want_sortable) {
			table.setAttribute("class","sortable");
			config.macros.sortableGridPlugin.ts_makeSortable(table);
		}
	};
}
else
	alert("SortableGridPlugin works only with TiddlyWiki 2.0.11, 2.1.x or newer");
    
//}}}
[[Sector Map]]
/***
|Name|FileDropPlugin|
|Source|http://www.TiddlyTools.com/#FileDropPlugin|
|Version|2.1.4|
|Author|BradleyMeck and Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|drag-and-drop files/directories to create tiddlers|
''requires FireFox or another Mozilla-compatible browser.''
!!!!!Usage
<<<
This plugin automatically creates tiddlers from files that are dropped onto an open TiddlyWiki document.  You can drop multiple selected files and/or folders to create many tiddlers at once.  New tiddler titles are created using the filename of each dropped file (i.e., omitting the path).  If a title is already in use, you are prompted to enter a new title for that file.  If you drop a folder, you will be asked if you want to create a simple 'directory list' of files in a single tiddler or create one tiddler for each file in that folder.  

By default, it is assumed that all dropped files contain text.  However, if [[AttachFilePlugin]], [[AttachFilePluginFormatters]] and [[AttachFileMIMETypes]] are installed, then you can drop ''//binary data files//'' as well as text files.  If the MIME type of a dropped file is not "text/plain", then AttachFilePlugin is used to create an 'attachment' tiddler, rather than creating a simple text tiddler.

When creating text tiddlers, you can embed a //link// to the original external file at the top of the new tiddler, in addition to (or instead of) the text content itself.  The format for this link (see Configuration, below) uses embedded ''//replacement markers//'' that allow you to generate a variety of wiki-formatted output, where:
*%0 = filename (without path)
*%1 = local """file://...""" URL
*%2 = local path and filename (OS-native format)
*%3 = relative path (if subdirectory of current document directory)
*%4 = file size
*%5 = file date
*%6 = current date
*%7 = current ~TiddlyWiki username
*\n = newline
By default, the link format uses the filename (%0) and local URL (%1), enclosed within a //hidden section// syntax, like this:
{{{
/%
!link
[[%0|%1]]
!end
%/
}}}
This permits the link to be embedded along with the text content, without changing the appearance of that content when the tiddler is viewed.  To display the link in your tiddler content, use:
{{{
<<tiddler TiddlerName##link>>
}}}
<<<
!!!!!Configuration
<<<
__FileDropPlugin options:__
<<option chkFileDropContent>>Copy file content into tiddlers if smaller than: <<option txtFileDropDataLimit>> bytes
&nbsp; //(note: excess text content will be truncated, oversized binary files will skipped, 0=no limit)//
<<option chkFileDropLink>>Generate external links to files, using this format:{{editor{<html><nowiki><textarea rows="4" onchange="
config.macros.option.propagateOption('txtFileDropLinkFormat','value',this.value.escapeLineBreaks(),'input');
"></textarea></html><<tiddler {{
	var ta=place.lastChild.getElementsByTagName('textarea')[0];
	var v=config.options.txtFileDropLinkFormat.unescapeLineBreaks();
	ta.value=v;
"";}}>>}}}<<option chkFileDropTrimFilename>>Omit file extensions from tiddler titles
<<option chkFileDropDisplay>>Automatically display newly created tiddlers
Tag newly created tiddlers with: <<option txtFileDropTags>>

__FileDropPlugin+AttachFilePlugin options:__ //(binary file data as encoded 'base64' text)//
<<option chkFileDropAttachLocalLink>> attachment includes reference to local path/filename
>Note: if the plugin does not seem to work, enter ''about:config'' in the Firefox address bar, and make sure that {{{signed.applets.codebase_principal_support}}} is set to ''true''
<<<
!!!!!Examples (custom handler functions)
<<<
Adds a single file with confirmation and prompting for title:
{{{
config.macros.fileDrop.addEventListener('application/x-moz-file',
	function(nsiFile) {
		var msg='You have dropped the file:\n'
			+nsiFile.path+'\n'
			+'onto the page, it will be imported as a tiddler. Is that ok?'
		if(confirm(msg)) {
			var newDate = new Date();
			var title = prompt('what would you like to name the tiddler?');
			store.saveTiddler(title,title,loadFile(nsiFile.path),config.options.txtUserName,newDate,[]);
		}
		return true;
	});
}}}
Adds a single file without confirmation, using path/filename as tiddler title:
{{{
config.macros.fileDrop.addEventListener('application/x-moz-file',
	function(nsiFile) {
		var newDate = new Date();
		store.saveTiddler(nsiFile.path,nsiFile.path,loadFile(nsiFile.path),config.options.txtUserName,newDate,[]);
		story.displayTiddler(null,nsiFile.path)
		return true;
	});
}}}
<<<
!!!!!Revisions
<<<
2010.03.06 2.1.4 added event listener for 'dragover' (for FireFox 3.6+)
2009.10.10 2.1.3 fixed IE code error
2009.10.08 2.1.2 fixed chkFileDropContent bypass handling for binary attachments
2009.10.07 2.1.0 added chkFileDropContent and chkFileDropLink/txtFileDropLinkFormat
2009.08.19 2.0.0 fixed event listener registration for FireFox 3.5+.  Also, merged with FileDropPluginConfig, with code cleanup/reduction
2008.08.11 1.5.1 added chkFileDropAttachLocalLink option to allow suppression of local path/file link
2007.xx.xx *.*.* add suspend/resume of notifications to improve performance when multiple files are handled
2007.01.01 0.9.9 extensions for AttachFilePlugin
2006.11.04 0.1.1 initial release by Bradley Meck
<<<
!!!!!Code
***/
//{{{
version.extensions.FileDropPlugin={major:2, minor:1, revision:4, date: new Date(2010,3,6)};

config.macros.fileDrop = {
	customDropHandlers: [],
	addEventListener: function(paramflavor,func,inFront) {
		var obj={}; obj.flavor=paramflavor; obj.handler=func;
		if (!inFront) this.customDropHandlers.push(obj);
		else this.customDropHandlers.shift(obj);
	},
	dragDropHandler: function(evt) {
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
		var dragService = Components.classes['@mozilla.org/widget/dragservice;1'].getService(Components.interfaces.nsIDragService);
		var dragSession = dragService.getCurrentSession();
		var transferObject = Components.classes['@mozilla.org/widget/transferable;1'].createInstance();
		transferObject = transferObject.QueryInterface(Components.interfaces.nsITransferable);
		transferObject.addDataFlavor('application/x-moz-file');
		var numItems = dragSession.numDropItems;
		if (numItems>1) {
			clearMessage();
			displayMessage('Reading '+numItems+' files...');
			store.suspendNotifications();
		}
		for (var i = 0; i < numItems; i++) {
			dragSession.getData(transferObject, i);
			var dataObj = {};
			var dropSizeObj = {};
			for(var ind=0; ind<config.macros.fileDrop.customDropHandlers.length; ind++) {
				var item = config.macros.fileDrop.customDropHandlers[ind];
				if(dragSession.isDataFlavorSupported(item.flavor)) {
					transferObject.getTransferData(item.flavor, dataObj, dropSizeObj);
					var droppedFile = dataObj.value.QueryInterface(Components.interfaces.nsIFile);
					var result = item.handler.call(item,droppedFile);
					evt.stopPropagation();
					evt.preventDefault();
					if (result) break;
				}
			}
		}
		if (numItems>1) {
			store.resumeNotifications();
			store.notifyAll();
			displayMessage(numItems+' files have been processed');
		}
	}
}
//}}}
/***
!!!!!window event handlers
***/
//{{{
if(!window.event) {
	window.addEventListener('dragdrop',	// FireFox3.1-
		config.macros.fileDrop.dragDropHandler, true);
	window.addEventListener('drop',		// FireFox3.5+
		config.macros.fileDrop.dragDropHandler, true);
	window.addEventListener('dragover',	// FireFox3.6+
		function(e){e.stopPropagation();e.preventDefault();}, true); 
}
//}}}
/***
!!!!!handler for files, directories and binary attachments (see [[AttachFilePlugin]])
***/
//{{{
var defaults={
	chkFileDropDisplay:		true,
	chkFileDropTrimFilename:	false,
	chkFileDropContent:		true,
	chkFileDropLink:		true,
	txtFileDropLinkFormat:		'/%\\n!link\\n[[%0|%1]]\\n!end\\n%/',
	txtFileDropDataLimit:		'32768',
	chkFileDropAttachLocalLink:	true,
	txtFileDropTags:		''
};
for (var id in defaults) if (config.options[id]===undefined)
	config.options[id]=defaults[id];

config.macros.fileDrop.addEventListener('application/x-moz-file',function(nsiFile) {
	var co=config.options; // abbrev
	var header='Index of %0\n^^(as of %1)^^\n|!filename| !size | !modified |\n';
	var item='|[[%0|%1]]| %2|%3|\n';
	var footer='Total of %0 bytes in %1 files\n';
	var now=new Date();
	var files=[nsiFile];
	if (nsiFile.isDirectory()) {
		var folder=nsiFile.directoryEntries;
		var files=[];
		while (folder.hasMoreElements()) {
			var f=folder.getNext().QueryInterface(Components.interfaces.nsILocalFile);
			if (f instanceof Components.interfaces.nsILocalFile && !f.isDirectory()) files.push(f);
		}
		var msg=nsiFile.path.replace(/\\/g,'/')+'\n\n';
		msg+='contains '+files.length+' files... ';
		msg+='select OK to attach all files or CANCEL to create a list...';
		if (!confirm(msg)) { // create a list in a tiddler
			var title=nsiFile.leafName; // tiddler name is last directory name in path
			while (title && title.length && store.tiddlerExists(title)) {
				if (confirm(config.messages.overwriteWarning.format([title]))) break;
				title=prompt('Enter a new tiddler title',nsiFile.path.replace(/\\/g,'/'));
			}
			if (!title || !title.length) return true; // cancelled
			var text=header.format([nsiFile.path.replace(/\\/g,'/'),now.toLocaleString()]);
			var total=0;
			for (var i=0; i<files.length; i++) { var f=files[i];
				var name=f.leafName;
				if (co.chkFileDropTrimFilename)
					{ var p=name.split('.'); if (p.length>1) p.pop(); name=p.join('.'); }
				var path='file:///'+f.path.replace(/\\/g,'/');
				var size=f.fileSize; total+=size;
				var when=new Date(f.lastModifiedTime).formatString('YYYY.0MM.0DD 0hh:0mm:0ss');
				text+=item.format([name,path,size,when]);
			}
			text+=footer.format([total,files.length]);
			var newtags=co.txtFileDropTags?co.txtFileDropTags.readBracketedList():[];
			store.saveTiddler(null,title,text,co.txtUserName,now,newtags);
			if (co.chkFileDropDisplay) story.displayTiddler(null,title);
			return true;
		}
	}
	if (files.length>1) store.suspendNotifications();
	for (i=0; i<files.length; i++) {
		var file=files[i];
		if (file.isDirectory()) continue; // skip over nested directories
		var type='text/plain';
		var title=file.leafName; // tiddler name is file name
		if (co.chkFileDropTrimFilename)
			{ var p=title.split('.'); if (p.length>1) p.pop(); title=p.join('.'); }
		var name=file.leafName;
		var path=file.path;
		var url='file:///'+path.replace(/\\/g,'/');
		var size=file.fileSize;
		var when=new Date(file.lastModifiedTime);
		var now=new Date();
		var who=config.options.txtUserName;
		var h=document.location.href;
		var cwd=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf('/')+1)));
		var relpath=path.startsWith(cwd)?'./'+path.substr(cwd.length):path;
		while (title && title.length && store.tiddlerExists(title)) {
			if (confirm(config.messages.overwriteWarning.format([title]))) break;
			title=prompt('Enter a new tiddler title',path.replace(/\\/g,'/'));
		}
		if (!title || !title.length) continue; // cancelled
		if (config.macros.attach) {
			type=config.macros.attach.getMIMEType(name,'');
			if (!type.length)
				type=prompt('Unknown file type.  Enter a MIME type','text/plain');
			if (!type||!type.length) continue; // cancelled
		}
		var newtags=co.txtFileDropTags?co.txtFileDropTags.readBracketedList():[];
		if (type=='text/plain' || !co.chkFileDropContent) {
			var txt=''; var fmt=co.txtFileDropLinkFormat.unescapeLineBreaks();
			if (co.chkFileDropLink) txt+=fmt.format([name,url,path,relpath,size,when,now,who]);
			if (co.chkFileDropContent) {
				var out=loadFile(path); var lim=co.txtFileDropDataLimit;
				txt+=co.txtFileDropDataLimit?out.substr(0,lim):out;
				if (size>lim) txt+='\n----\nfilesize ('+size+')'
					+' is larger than FileDrop limit ('+lim+')...\n'
					+'additional content has been omitted';
			}
			store.saveTiddler(null,title,txt,co.txtUserName,now,newtags);
		} else {
			var embed=co.chkFileDropContent
				&& (!co.txtFileDropDataLimit||size<co.txtFileDropDataLimit);
			newtags.push('attachment'); newtags.push('excludeMissing');
			config.macros.attach.createAttachmentTiddler(path,
				now.formatString(config.macros.timeline.dateFormat),
				'attached by FileDropPlugin', newtags, title,
				embed, co.chkFileDropAttachLocalLink, false,
				relpath, '', type,!co.chkFileDropDisplay);
		}
		if (co.chkFileDropDisplay) story.displayTiddler(null,title);
	}
	if (files.length>1) { store.resumeNotifications(); store.notifyAll(); }
	return true;
})
//}}}
/***
|Name|ImageMapPlugin|
|Source|http://www.TiddlyTools.com/#ImageMapPlugin|
|Documentation|http://www.TiddlyTools.com/#ImageMapPluginInfo|
|Version|1.2.2|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|apply image maps ('hotspots') with links to tiddlers|
!!!!!Documentation
>see [[ImageMapPluginInfo]]
!!!!!Revisions
<<<
2009.05.27 [1.2.2] improved autoscroll for {{{<<mapMaker>>}}} textarea
2009.05.14 [1.2.1] added cursor changes
see [[ImageMapPluginInfo]] for additional revision details
2009.05.09 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.ImageMapPlugin= {major: 1, minor: 2, revision: 2, date: new Date(2009,5,27)};
//}}}
//{{{
config.macros.imageMap = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		// image element must immediately precede macro
		var img=place.lastChild; if (!img||img.nodeName!='IMG') return;
		var map=params[0]; var items=store.getTiddlerText(map,'').split('\n----\n'); if (!items) return;
		var out=['<MAP NAME="'+map+'">'];
		var fmt='<AREA SHAPE="POLY" TIDDLER="%0" COORDS="%1" TITLE="%2" ALT="%2" ONCLICK="%3" STYLE="%4">';
		var click="story.displayTiddler(story.findContainingTiddler(this),this.getAttribute('tiddler'));";
		var style='cursor:pointer';
		for (var i=0; i<items.length; i++) {
			var lines=items[i].split('\n'); var tid=lines.shift(); var coords=lines.join('');
			var tip=store.tiddlerExists(tid)?store.getTiddler(tid).getSubtitle():tid;
			out.push(fmt.format([tid,coords,tip,click,style]));
		}
		out.push('</MAP>');
		createTiddlyElement(place,'span').innerHTML=out.join('');
		img.setAttribute('isMap',true);
		img.setAttribute('useMap','#'+map);
		img.style.border=0;
	}
}
//}}}
//{{{
config.macros.mapMaker= {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var img=place.lastChild; // image element must immediately precede macro
		if (!img||img.nodeName!='IMG') return;
		img.onmousemove=function(ev){ ev=ev||window.event;
			var mX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
			var mY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
			var ta=this.nextSibling.getElementsByTagName('textarea')[0];
			var lines=ta.value.split('\n'); var last=lines.length?lines.length-1:0;
			var vals=lines[last].split(','); vals.pop(); vals.pop(); lines[last]=vals.join(',');
			lines[last]+=(lines[last].length?',':'')+(mX-findPosX(this))+','+(mY-findPosY(this));
			ta.value=lines.join('\n');
			ta.scrollTop=ta.scrollHeight-ta.offsetHeight+this.emH*2;
			ta.scrollLeft=lines[last].length*this.emW-ta.offsetWidth;
			ta.focus();
		};
		img.onmouseout=function(ev){ ev=ev||window.event;
			var ta=this.nextSibling.getElementsByTagName('textarea')[0];
			var lines=ta.value.split('\n'); var last=lines.length?lines.length-1:0;
			var vals=lines[last].split(','); vals.pop(); vals.pop(); lines[last]=vals.join(',');
			ta.value=lines.join('\n');
			ta.scrollTop=ta.scrollHeight-ta.offsetHeight+this.emH*2;
			ta.scrollLeft=lines[last].length*this.emW-ta.offsetWidth;
		};
		img.onmouseover=img.onclick=function(ev) { ev=ev||window.event;
			var mX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
			var mY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
			var ta=this.nextSibling.getElementsByTagName('textarea')[0];
			ta.value+=(ta.value.length?',':'')+(mX-findPosX(this))+','+(mY-findPosY(this));
			var lines=ta.value.split('\n'); var last=lines.length?lines.length-1:0;
			ta.scrollTop=ta.scrollHeight-ta.offsetHeight+this.emH*2;
			ta.scrollLeft=lines[last].length*this.emW-ta.offsetWidth;
			ta.focus();
		}
		img.style.border='1px solid #999';
		img.style.cursor='crosshair';
		var map=params[0]||'';
		var s=createTiddlyElement(place,'div');
		s.style.height=s.style.width='1em';
		img.emW=s.offsetWidth; img.emH=s.offsetHeight; // get font metrics (for auto scrolling)
		s.style.height=s.style.width='';
		s.innerHTML+='<div class="toolbar">'
			+'<a href="javascript:;" '
			+'onclick="config.macros.mapMaker.load(this.parentNode.nextSibling)">load map</a>'
			+'<a href="javascript:;" '
			+'onclick="config.macros.mapMaker.save(this.parentNode.nextSibling)">save map</a>'
			+'</div>'
			+'<textarea rows="8" style="display:block;clear:both;width:100%;" tiddler="'+map+'">'
			+store.getTiddlerText(map,'')
			+'</textarea>';
	},
	load: function(ta) {
		var tid=prompt('Enter a tiddler title:',ta.getAttribute('tiddler')||'');
		if (!tid||!tid.length) return; // cancelled by user
		ta.value=store.getTiddlerText(tid,''); ta.setAttribute('tiddler',tid);
		return false;
	},
	save: function(ta) {
		var tid=prompt('Enter a tiddler title:',ta.getAttribute('tiddler')||'NewImageMap');
		while (tid && tid.length && store.tiddlerExists(tid)) {
			if(confirm(config.messages.overwriteWarning.format([tid]))) break;
			var tid=prompt('Enter a different tiddler title:',tid);
		}
		if (!tid||!tid.length) return; // cancelled by user
		store.saveTiddler(tid,tid,ta.value,config.options.txtUserName,new Date(),['imageMap'],{});
		story.displayTiddler(null,tid);
		displayMessage('image map saved to: '+tid);
		ta.setAttribute('tiddler',tid);
		return false;
	}
}
//}}}
Toggle Sidebar <<tiddler ToggleRightSidebar>>
----
[[Sector Map]]
[[Planetary Directory]]
----
[[Alien Races]]
[[Political Groups]]
[[Corporations|Corporation Listing]]
[[Religions|Sector Religions]]
|!Hex|!World or Station|!Atmo.|!Temp.|!Biosphere|!Population|!TL|h
|[[0700|System:RABANI]]|[[Anticlea|Planet:Anticlea]]|Breathable|Warm|Miscible|10K+|2|
|[[0703|System:HREFNA]]|[[Bashirah|Planet:Bashirah]]|Breathable|Temp.|None|100K+|4|
|[[0000|System:XANTHIPPE]]|[[Chloe|Planet:Chloe]]|Breathable|Cold|Miscible|100K+|4+|
|[[0205|System:SIGRID]]|[[Cordero|Planet:Cordero]]|Breathable|Temp.|Miscible|1M+|4|
|[[0701|System:MALIKA]]|[[Deidameia|Planet:Deidameia]]|Breathable|Var. Cold|Microbial|100K+|1|
|[[0105|System:GIBERAU]]|[[Fasihuddin|Planet:Fasihuddin]]|Corr / Inv|Temp.|Immiscible|1B+|0|
|[[0200|System:ACTAIA]]|[[Fatima|Planet:Fatima]]|Corrosive|Temp.|Miscible|1M+|4|
|[[0300|System:MENA]]|[[Firyal|Planet:Firyal]]|Breathable|Frozen|Engineered|100K+|4|
|[[0603|System:ADRASTUS]]|[[Frantsesa|Planet:Frantsesa]]|Breathable|Temp.|None|100K+|4+|
|[[0608|System:EPISTROPHES]]|[[Helga|Planet:Helga]]|Breathable|Temp.|Miscible|100K+|3|
|[[0508|System:THORKATLA]]|[[Hildigunn|Planet:Hildigunn]]|Breathable|Cold|Miscible|10K+|4|
|[[0406|System:STHENELOS]]|[[Hussain|Planet:Hussain]]|Corrosive|Cold|Miscible|100K+|4|
|[[0402|System:BUENO]]|[[Ioannou|Planet:Ioannou]]|Breathable|Warm|Miscible|10K+|1|
|[[0606|System:AL-ASMARI]]|[[Iphitos|Planet:Iphitos]]|Thick|Temp.|Miscible|100K+|2|
|[[0202|System:IZAZKUN]]|[[Iurre|Planet:Iurre]]|Breathable|Temp.|None|10K+|4|
|[[0001|System:PODARCOS]]|[[Katla|Planet:Katla]]|Breathable|Temp.|Miscible|1B+|4|
|[[0609|System:VALERO]]|[[Koldobike|Planet:Koldobike]]|Invasive|Temp.|Miscible|10K+|4|
|[[0508|System:THORKATLA]]|[[Lalita|Planet:Lalita]]|Breathable|Temp.|Miscible|1M+|5|
|[[0409|System:CRATYLUS]]|[[Maradi|Planet:Maradi]]|Breathable|Cold|None|100K+|3|
|[[0208|System:ABELZADA]]|[[Morayta|Planet:Morayta]]|Breathable|Temp.|Immiscible|10K+|4|
|[[0200|System:ACTAIA]]|[[Morientes|Planet:Morientes]]|Breathable|Warm|Miscible|Alien|1|
|[[0005|System:HEM]]|[[Mutlaq|Planet:Mutlaq]]|Breathable|Temp.|Miscible|100K+|4|
|[[0308|System:DUANY]]|[[Natasha|Planet:Natasha]]|Inert|Var. Cold|Hybrid|10K+|4|
|[[0701|System:MALIKA]]|[[Oxinos|Planet:Oxinos]]|Breathable|Warm|Remnants|100K+|4|
|[[0507|System:CAIO]]|[[Sudha|Planet:Sudha]]|Breathable|Temp.|Immiscible|Alien|4+|
|[[0009|System:CLAVIJERO]]|[[Suravinda|Planet:Suravinda]]|Thick|Cold|Immiscible|10K+|3|
|[[0701|System:MALIKA]]|[[Surur|Planet:Surur]]|Invasive|Temp.|Engineered|100K+|2|
|[[0608|System:EPISTROPHES]]|[[Sweta|Planet:Sweta]]|Corr / Inv|Temp.|Immiscible|10K+|2|
|[[0102|System:BATIZ]]|[[Tapia|Planet:Tapia]]|Thick|Temp.|Miscible|100K+|4|
|[[0607|System:ARNORA]]|[[Wafiqah|Planet:Wafiqah]]|Inert|Var. Warm|None|1M+|2|
|[[0602|System:BAANO]]|[[Wahibah|Planet:Wahibah]]|Invasive|Temp.|Immiscible|100K+|3|
|[[0000|System:XANTHIPPE]]|[[Yamha|Planet:Yamha]]|Breathable|Temp.|Immiscible|10K+|4|
|[[0005|System:HEM]]|[[Yamura|Planet:Yamura]]|Breathable|Warm|Miscible|100K+|3|
|[[0608|System:EPISTROPHES]]|[[Yialouris|Planet:Yialouris]]|Breathable|Frozen|Miscible|Failed|4|
|[[0306|System:THURID]]|[[Zeno|Planet:Zeno]]|Breathable|Temp.|Miscible|100K+|4|
|[[0209|System:KARYOTI]]|[[Zuberoa|Planet:Zuberoa]]|Breathable|Warm|None|1M+|4|
''SWN Sector Generator, Copyright © 2011-2015 [[N. Harrison Ripps|mailto:[email protected]]]''
''Based on and written for use with [[Stars Without Number|http://www.sinenomine-pub.com/]] by [[Sine Nomine Publishing|http://www.sinenomine-pub.com/]].''

//Sector Seed ID//: ''6ARJ00''
!!!Credits
* [[TiddlyWiki|http://www.tiddlywiki.com/]] and the various ~TiddlyWiki Plugins used in this distribution are copyright to their respective owners. See "Backstage -> Plugins" for more info.
* [[Perl|http://www.perl.org/]] and several freely available Perl Libraries are used to generate the sector and star map:
** [[Archive::Zip|http://search.cpan.org/~adamk/Archive-Zip-1.30/lib/Archive/Zip.pm]]
** [[Cwd|http://search.cpan.org/~smueller/PathTools-3.33/Cwd.pm]]
** [[Data::RandomPerson|http://search.cpan.org/~peterhi/Data-RandomPerson-0.4/lib/Data/RandomPerson.pm]]
** [[DBI|http://search.cpan.org/~timb/DBI-1.616/DBI.pm]]
** [[GD|http://search.cpan.org/~lds/GD-2.46/GD.pm]]
** [[GD::Text|http://search.cpan.org/~mverb/GDTextUtil-0.86/Text.pm]]
** [[MIME::Base64|http://search.cpan.org/~gaas/MIME-Base64-3.13/Base64.pm]]
* [[SQLite|http://www.sqlite.org/]] is used to store and retrieve table data used throughout the wiki entries.
* Extra name generation help came directly from [[Chris Pound|http://www.ruf.rice.edu/~pound/]]'s amazing language generators.
//To remove this panel from the initial view, remove the "SWN Sector Generator" entry from the DefaultTiddlers list.//
|[img[StarMap]]<<imageMap StarMapLinks>>|!Hex|!World or Station|
|~|[[0000|System:XANTHIPPE]]|[[Yamha|Planet:Yamha]]|
|~|~|[[Chloe|Planet:Chloe]]|
|~|[[0001|System:PODARCOS]]|[[Katla|Planet:Katla]]|
|~|[[0005|System:HEM]]|[[Yamura|Planet:Yamura]]|
|~|~|[[Mutlaq|Planet:Mutlaq]]|
|~|[[0009|System:CLAVIJERO]]|[[Suravinda|Planet:Suravinda]]|
|~|[[0102|System:BATIZ]]|[[Tapia|Planet:Tapia]]|
|~|[[0105|System:GIBERAU]]|[[Fasihuddin|Planet:Fasihuddin]]|
|~|[[0200|System:ACTAIA]]|[[Morientes|Planet:Morientes]]|
|~|~|[[Fatima|Planet:Fatima]]|
|~|[[0202|System:IZAZKUN]]|[[Iurre|Planet:Iurre]]|
|~|[[0205|System:SIGRID]]|[[Cordero|Planet:Cordero]]|
|~|[[0208|System:ABELZADA]]|[[Morayta|Planet:Morayta]]|
|~|[[0209|System:KARYOTI]]|[[Zuberoa|Planet:Zuberoa]]|
|~|[[0300|System:MENA]]|[[Firyal|Planet:Firyal]]|
|~|[[0306|System:THURID]]|[[Zeno|Planet:Zeno]]|
|~|[[0308|System:DUANY]]|[[Natasha|Planet:Natasha]]|
|~|[[0402|System:BUENO]]|[[Ioannou|Planet:Ioannou]]|
|~|[[0406|System:STHENELOS]]|[[Hussain|Planet:Hussain]]|
|~|[[0409|System:CRATYLUS]]|[[Maradi|Planet:Maradi]]|
|~|[[0507|System:CAIO]]|[[Sudha|Planet:Sudha]]|
|~|[[0508|System:THORKATLA]]|[[Hildigunn|Planet:Hildigunn]]|
|~|~|[[Lalita|Planet:Lalita]]|
|~|[[0602|System:BAANO]]|[[Wahibah|Planet:Wahibah]]|
|~|[[0603|System:ADRASTUS]]|[[Frantsesa|Planet:Frantsesa]]|
|~|[[0606|System:AL-ASMARI]]|[[Iphitos|Planet:Iphitos]]|
|~|[[0607|System:ARNORA]]|[[Wafiqah|Planet:Wafiqah]]|
|~|[[0608|System:EPISTROPHES]]|[[Sweta|Planet:Sweta]]|
|~|~|[[Yialouris|Planet:Yialouris]]|
|~|~|[[Helga|Planet:Helga]]|
|~|[[0609|System:VALERO]]|[[Koldobike|Planet:Koldobike]]|
|~|[[0700|System:RABANI]]|[[Anticlea|Planet:Anticlea]]|
|~|[[0701|System:MALIKA]]|[[Oxinos|Planet:Oxinos]]|
|~|~|[[Deidameia|Planet:Deidameia]]|
|~|~|[[Surur|Planet:Surur]]|
|~|[[0703|System:HREFNA]]|[[Bashirah|Planet:Bashirah]]|
A randomly generated sector for [[Stars Without Number|http://www.sinenomine-pub.com/]]
Sector Themis Delta
''//Nav Designation//: [[Rabani|System:RABANI]] X''
|!Atmosphere |Breathable mix|
|!Temperature|Warm|
|!Biosphere  |Human-miscible biosphere|
|!Population |Tens of thousands of inhabitants|
|!Tech Level |Tech level 2. 19th-century technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Hrefna|System:HREFNA]] VI''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |No native biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Xanthippe|System:XANTHIPPE]] IX''
|!Atmosphere |Breathable mix|
|!Temperature|Cold|
|!Biosphere  |Human-miscible biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 4 w/ specialities / pretech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Sigrid|System:SIGRID]] III''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |Human-miscible biosphere|
|!Population |Millions of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Malika|System:MALIKA]] VI''
|!Atmosphere |Breathable mix|
|!Temperature|Variable; Cold-to-Temperate|
|!Biosphere  |Microbial life|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 1. Medieval technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Giberau|System:GIBERAU]] V''
|!Atmosphere |Corrosive and invasive atmosphere|
|!Temperature|Temperate|
|!Biosphere  |Immiscible biosphere|
|!Population |Billions of inhabitants|
|!Tech Level |Tech Level 0. Stone-age technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Actaia|System:ACTAIA]] X''
|!Atmosphere |Corrosive|
|!Temperature|Temperate|
|!Biosphere  |Human-miscible biosphere|
|!Population |Millions of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Mena|System:MENA]] VI''
|!Atmosphere |Breathable mix|
|!Temperature|Frozen|
|!Biosphere  |Engineered biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Adrastus|System:ADRASTUS]] III''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |No native biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 4 w/ specialities / pretech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Epistrophes|System:EPISTROPHES]] IX''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |Human-miscible biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 3. 20th-century technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Thorkatla|System:THORKATLA]] VIII''
|!Atmosphere |Breathable mix|
|!Temperature|Cold|
|!Biosphere  |Human-miscible biosphere|
|!Population |Tens of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Sthenelos|System:STHENELOS]] VI''
|!Atmosphere |Corrosive|
|!Temperature|Cold|
|!Biosphere  |Human-miscible biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Bueno|System:BUENO]] VI''
|!Atmosphere |Breathable mix|
|!Temperature|Warm|
|!Biosphere  |Human-miscible biosphere|
|!Population |Tens of thousands of inhabitants|
|!Tech Level |Tech Level 1. Medieval technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Al-asmari|System:AL-ASMARI]] IV''
|!Atmosphere |Thick atmosphere; need pressure mask|
|!Temperature|Temperate|
|!Biosphere  |Human-miscible biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech level 2. 19th-century technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Izazkun|System:IZAZKUN]] III''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |No native biosphere|
|!Population |Tens of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Podarcos|System:PODARCOS]] VII''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |Human-miscible biosphere|
|!Population |Billions of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Valero|System:VALERO]] X''
|!Atmosphere |Invasive, toxic atmospere|
|!Temperature|Temperate|
|!Biosphere  |Human-miscible biosphere|
|!Population |Tens of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Thorkatla|System:THORKATLA]] IX''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |Human-miscible biosphere|
|!Population |Millions of inhabitants|
|!Tech Level |Tech Level 5. Pretech, pre-Silence tech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Cratylus|System:CRATYLUS]] III''
|!Atmosphere |Breathable mix|
|!Temperature|Cold|
|!Biosphere  |No native biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 3. 20th-century technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Abelzada|System:ABELZADA]] VI''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |Immiscible biosphere|
|!Population |Tens of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Actaia|System:ACTAIA]] III''
|!Atmosphere |Breathable mix|
|!Temperature|Warm|
|!Biosphere  |Human-miscible biosphere|
|!Population |Alien civilization|
|!Tech Level |Tech Level 1. Medieval technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Hem|System:HEM]] VII''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |Human-miscible biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Duany|System:DUANY]] V''
|!Atmosphere |Inert gas|
|!Temperature|Variable; Cold-to-Temperate|
|!Biosphere  |Hybrid biosphere|
|!Population |Tens of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Malika|System:MALIKA]] III''
|!Atmosphere |Breathable mix|
|!Temperature|Warm|
|!Biosphere  |Biosphere remnants|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Caio|System:CAIO]] IV''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |Immiscible biosphere|
|!Population |Alien civilization|
|!Tech Level |Tech Level 4 w/ specialities / pretech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Clavijero|System:CLAVIJERO]] III''
|!Atmosphere |Thick atmosphere; need pressure mask|
|!Temperature|Cold|
|!Biosphere  |Immiscible biosphere|
|!Population |Tens of thousands of inhabitants|
|!Tech Level |Tech Level 3. 20th-century technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Malika|System:MALIKA]] X''
|!Atmosphere |Invasive, toxic atmospere|
|!Temperature|Temperate|
|!Biosphere  |Engineered biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech level 2. 19th-century technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Epistrophes|System:EPISTROPHES]] IV''
|!Atmosphere |Corrosive and invasive atmosphere|
|!Temperature|Temperate|
|!Biosphere  |Immiscible biosphere|
|!Population |Tens of thousands of inhabitants|
|!Tech Level |Tech level 2. 19th-century technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Batiz|System:BATIZ]] V''
|!Atmosphere |Thick atmosphere; need pressure mask|
|!Temperature|Temperate|
|!Biosphere  |Human-miscible biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Arnora|System:ARNORA]] V''
|!Atmosphere |Inert gas|
|!Temperature|Variable; Temperate-to-Warm|
|!Biosphere  |No native biosphere|
|!Population |Millions of inhabitants|
|!Tech Level |Tech level 2. 19th-century technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Baano|System:BAANO]] V''
|!Atmosphere |Invasive, toxic atmospere|
|!Temperature|Temperate|
|!Biosphere  |Immiscible biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 3. 20th-century technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Xanthippe|System:XANTHIPPE]] VI''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |Immiscible biosphere|
|!Population |Tens of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Hem|System:HEM]] III''
|!Atmosphere |Breathable mix|
|!Temperature|Warm|
|!Biosphere  |Human-miscible biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 3. 20th-century technology.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Epistrophes|System:EPISTROPHES]] V''
|!Atmosphere |Breathable mix|
|!Temperature|Frozen|
|!Biosphere  |Human-miscible biosphere|
|!Population |Failed colony|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Thurid|System:THURID]] IV''
|!Atmosphere |Breathable mix|
|!Temperature|Temperate|
|!Biosphere  |Human-miscible biosphere|
|!Population |Hundreds of thousands of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
''//Nav Designation//: [[Karyoti|System:KARYOTI]] VI''
|!Atmosphere |Breathable mix|
|!Temperature|Warm|
|!Biosphere  |No native biosphere|
|!Population |Millions of inhabitants|
|!Tech Level |Tech Level 4. Baseline postech.|
!!!Notes
//Add your own notes here//
|!Nav Designation|''GRID 0208''|
|!System Planet|[[Morayta|Planet:Morayta]]|
|!Nav Designation|''GRID 0200''|
|!System Planets|[[Morientes|Planet:Morientes]]|
|~|[[Fatima|Planet:Fatima]]|
|!Nav Designation|''GRID 0603''|
|!System Planet|[[Frantsesa|Planet:Frantsesa]]|
|!Nav Designation|''GRID 0606''|
|!System Planet|[[Iphitos|Planet:Iphitos]]|
|!Nav Designation|''GRID 0607''|
|!System Planet|[[Wafiqah|Planet:Wafiqah]]|
|!Nav Designation|''GRID 0602''|
|!System Planet|[[Wahibah|Planet:Wahibah]]|
|!Nav Designation|''GRID 0102''|
|!System Planet|[[Tapia|Planet:Tapia]]|
|!Nav Designation|''GRID 0402''|
|!System Planet|[[Ioannou|Planet:Ioannou]]|
|!Nav Designation|''GRID 0507''|
|!System Planet|[[Sudha|Planet:Sudha]]|
|!Nav Designation|''GRID 0009''|
|!System Planet|[[Suravinda|Planet:Suravinda]]|
|!Nav Designation|''GRID 0409''|
|!System Planet|[[Maradi|Planet:Maradi]]|
|!Nav Designation|''GRID 0308''|
|!System Planet|[[Natasha|Planet:Natasha]]|
|!Nav Designation|''GRID 0608''|
|!System Planets|[[Sweta|Planet:Sweta]]|
|~|[[Yialouris|Planet:Yialouris]]|
|~|[[Helga|Planet:Helga]]|
|!Nav Designation|''GRID 0105''|
|!System Planet|[[Fasihuddin|Planet:Fasihuddin]]|
|!Nav Designation|''GRID 0005''|
|!System Planets|[[Yamura|Planet:Yamura]]|
|~|[[Mutlaq|Planet:Mutlaq]]|
|!Nav Designation|''GRID 0703''|
|!System Planet|[[Bashirah|Planet:Bashirah]]|
|!Nav Designation|''GRID 0202''|
|!System Planet|[[Iurre|Planet:Iurre]]|
|!Nav Designation|''GRID 0209''|
|!System Planet|[[Zuberoa|Planet:Zuberoa]]|
|!Nav Designation|''GRID 0701''|
|!System Planets|[[Oxinos|Planet:Oxinos]]|
|~|[[Deidameia|Planet:Deidameia]]|
|~|[[Surur|Planet:Surur]]|
|!Nav Designation|''GRID 0300''|
|!System Planet|[[Firyal|Planet:Firyal]]|
|!Nav Designation|''GRID 0001''|
|!System Planet|[[Katla|Planet:Katla]]|
|!Nav Designation|''GRID 0700''|
|!System Planet|[[Anticlea|Planet:Anticlea]]|
|!Nav Designation|''GRID 0205''|
|!System Planet|[[Cordero|Planet:Cordero]]|
|!Nav Designation|''GRID 0406''|
|!System Planet|[[Hussain|Planet:Hussain]]|
|!Nav Designation|''GRID 0508''|
|!System Planets|[[Hildigunn|Planet:Hildigunn]]|
|~|[[Lalita|Planet:Lalita]]|
|!Nav Designation|''GRID 0306''|
|!System Planet|[[Zeno|Planet:Zeno]]|
|!Nav Designation|''GRID 0609''|
|!System Planet|[[Koldobike|Planet:Koldobike]]|
|!Nav Designation|''GRID 0000''|
|!System Planets|[[Yamha|Planet:Yamha]]|
|~|[[Chloe|Planet:Chloe]]|
''Thick atmosphere; need pressure mask'' - Thick atmospheres can usually be breathed with the aid of a filter mask, though the mix of contaminants renders it slowly or quickly toxic to humans who attempt to breathe it straight. Separate air supplies are not necessary to supplement the blend, but any society that means to survive on such a world must have sufficient technological expertise to manufacture and maintain large numbers of filter masks.
Thick atmospheres are often at least semi-opaque, and some worlds have thick atmospheres that are completely impenetrable to ordinary light. Deep banks of permanent fog might shroud the planet, or natives might have to go about with sophisticated ultraviolet or infrared viewing equipment if they don’t wish to be blind. Some banks of gases might be impenetrable to even these viewing tools, leaving a party vulnerable to moments of complete blindness while out on the surface of the world.
''Corrosive and invasive atmosphere'' - Corrosive and invasive atmospheres exist at the very border of what human society can tolerate. Combining all the worst traits of an eroding, corrosive atmosphere and the invasive intrusion of toxic molecules, a planet cursed with an atmosphere like this is far more hostile than any merely airless rock.
Advanced pretech filtering and oxygen generation equipment might be able to maintain tolerable pressurized habitats and hydroponic systems uncontaminated by exterior atmosphere. Anything less than this tech level means greater and greater amounts of societal resources devoted simply to the effort of breathing. Entire civilizations can be oriented around overcoming the difficulties of maintaining their structures and their pressurized homes.
Whatever provoked the initial inhabitants to settle on this world must have been of overwhelming value or necessity to convince them to consign themselves and their children to such a place. It is highly unlikely that enough ship traffic exists to get any but the most fortunate locals offworld, so the rest are obliged to deal with their harsh existence as best they can.
''Breathable mix'' - Breathable mix atmospheres can support human life without additional equipment or gengineered modification. Any world that has a human population in the millions or more almost certainly has a breathable mix atmosphere.
While the air is breathable, almost every world has its own subtle cocktail of inert gases, atmospheric contaminants, and other odiferous ingredients. For spacers accustomed to the filtered air supply of a starship, the “new world stink” of a fresh planetfall can be maddening, as few linger long enough to get used to the smell of the local air. Attempting to explain the source of this discomfort to the locals rarely results in positive results. Some spaceport bars make a point of their air filtration and composition mixers.
''Inert gas'' - Inert gas atmospheres aren’t hostile or poisonous, but they’re unbreathable by humans. If the planet’s climate is otherwise tolerable, the natives might be able to live and work outdoors without anything more than an air tank and face mask. Some degree of technical sophistication is going to be necessary for humanity to survive, and large supplies of oxygen are going to have to be extracted from some local source. "Air mines" might exist to replace the oxygen lost during human use, or local power plants might need to be kept running full blast in order to crack water molecules into hydrogen and oxygen.
On worlds with an unbreathable atmosphere, control of the air supply makes it much harder for locals to rebel against their leaders. Without the equipment and power to generate their own air supplies, would-be rebels are entirely at the mercy of those who control the oxygen. Most rulers pick up on this fact rapidly, and some worlds with unbreathable atmospheres might even make it a crime to own illicit oxygen generation equipment.
''Invasive, toxic atmospere'' - Invasive toxic atmospheres are composed of a substantial proportion of molecules small enough to infiltrate past the seals of most vacc suits. This infiltration doesn’t harm the suit, but the molecules have to be steadily flushed by the system’s purification sensors before they build up to a debilitating level. This causes a much faster bleed of air as breathable oxygen is jettisoned along with the infiltrating molecules. Most invasive atmospheres cut oxygen supply durations by half, at best.
Invasive atmospheres make oxygen an even more important resource than it is on inert gas worlds. Outdoor work is avoided whenever possible, as any failure of a suit’s toxin sensors or flush system can lead to death before the wearer even realizes something is wrong. Steady exposure to low levels of the toxins can also result in unfortunate effects even with a fully-functional suit. Hallucinations, chronic sickness, or worse can follow.
''Corrosive'' - Corrosive atmospheres are dangerously hostile to conventional vacc suits and other protective gear. They steadily strip away at a suit’s vent ports, wiring connections, and other weak spots until they eventually break through and flood the suit with a toxic cocktail that usually kills a victim in seconds. Weak atmospheres might require as much as a day to degrade a vacc suit, while strong ones might accomplish the job in an hour. Even forcefield-based environment suits such as a FEP suffer steady damage to their exposed elements.
Native vacc suits are usually covered with an ablative layer or spray that can be regularly renewed, and their buildings often rely on a steadily-extruded slurry or neutralizing materials that can be constantly renewed by pores in the building surface itself. This often gives the building a drippy, half-melted look that may be more than cosmetic in the case of those structures that have failing slurry pumps. Advanced tech level 5 equipment may be able to overcome the effects, but even pretech is often taxed by the relentless rigors of this world. Vehicles and shuttles are kept in pressurized garages when not in use, and starships never land for long.
Corrosive worlds have a number of intrinsic adventure complications, the largest being the way that every activity outside of a hab building comes with a built-in time limit. Whatever the party chooses to do outside of a building, it has to accomplish before their suit seals fail or the atmosphere corrodes a hole in their vehicle hull. A clever GM can use this problem to add extra tension to an otherwise simple task.
''Frozen'' - Frozen worlds are those with so weak a stellar primary or so great a distance that the average temperature is close to absolute zero. Any atmosphere that once existed has long since frozen into drifts of solidified oxygen or lakes of liquid helium. Exposure to these drifts is very dangerous. Vacc suits maintain a tolerable temperature easily because the stellar void is very empty, and there is little conduction of heat between the suit and empty space. Dunking a suit into a lake of thermally-conductive superchilled liquid can force the heating elements into sudden and drastic overload, draining a power cell in minutes even seconds.
''Temperate'' - Temperate worlds were the most popular colony sites, and most of the truly populous worlds of the frontier have a temperate climate. Many temperate worlds have temperature ranges not unlike that of Earth, though most are canted a little further toward cold or heat depending on their angle and proximity to the local star.
Temperate worlds are the most likely to teem with native life as well, and to have alien ruins or remains located somewhere on their surface. Most frontier worlds never accumulated enough population to put a serious strain on a temperate world’s arable land, but this same capaciousness often allow for more complicated social divisions to develop. Natives of other worlds are often forced to cooperate or die, while those of a clement temperate world have the luxury of deep and lasting divisions.
''Variable; Cold-to-Temperate'' - Variable temperature worlds tend to show a greater distribution of climates than other worlds, either ranging from cold to temperate levels or temperate to hot levels. This may be a climate that changes world-wide when a long, slow orbit brings the planet into proximity with a stellar primary, or it might be a world that has substantially different climactic zones spread across its surface. The north pole of one world might be a sun-blasted desert that moderates to a cool, wet equator, or an icy world might be warmed here and there by complex channels of geothermally-heated subsurface rivers.
Variable temperature worlds tend to have savage weather. The mixing of hot and cold air can send ferocious cyclones and raging hurricanes across the surface of the world, some large enough to consume most of a hemisphere.
''Cold'' - Cold worlds are uncomfortable, but a human can survive on them in nothing more than heavy clothing. The worst of the cold worlds are similar in condition to Earth’s Antarctic regions, barren wastes of ice and wind. The more clement ones have brief warmer seasons or equatorial bands that get enough solar radiation to support substantial agriculture.
On cold worlds, agricultural land is at a premium. The population is unlikely to be willing to limit its numbers to what hydroponic farms can provide, and they may lack the technology for wide-scale artificial production methods. Savage wars may have broken out over control of fertile growing regions, and populations have perhaps been driven away from the arable land into the cold zones and a lingering death.
Some worlds retain installations from before the Silence deep within the frozen wastes, ancient bases and laboratories that were planted in an age when good launch sites and orbital windows meant more than trifles of temperature. These lost sites might be remembered in legend and story, and some native leaders might still be in possession of the automatic defense bypass codes handed down by their ancestors.
''Warm'' - Warm worlds come in two main flavors, depending on the prevalence of water. “Desert worlds” are hot enough or arid enough to be deprived of most surface water. Any life on such a planet has to be capable of extracting water from living prey, air currents or moisture supplies deep underground. Humans can survive on warm worlds without more than appropriate clothing, but desert-world humans must learn sophisticated techniques of water prospecting and well- drilling in order to maintain their agricultural systems. Warfare often revolves around these water systems.
The other common variety of warm world is one blessed with an abundance of surface water. These worlds tend to be covered with plant and animal life, teeming with thick jungles and vast mats of sargasso on seas that boil with piscids and other alien life analogs. These worlds can be quite prosperous for humans if the native life is edible, but inhabitants are often forced to deal with large predators and a vividly ingenious native ecology of disease.
''Variable; Temperate-to-Warm'' - Variable temperature worlds tend to show a greater distribution of climates than other worlds, either ranging from cold to temperate levels or temperate to hot levels. This may be a climate that changes world-wide when a long, slow orbit brings the planet into proximity with a stellar primary, or it might be a world that has substantially different climactic zones spread across its surface. The north pole of one world might be a sun-blasted desert that moderates to a cool, wet equator, or an icy world might be warmed here and there by complex channels of geothermally-heated subsurface rivers.
Variable temperature worlds tend to have savage weather. The mixing of hot and cold air can send ferocious cyclones and raging hurricanes across the surface of the world, some large enough to consume most of a hemisphere.
''Hybrid biosphere'' - Hybrid biospheres are a stable intermixing of Terran flora and fauna with local life forms. Most such worlds have been colonized for centuries before the Silence, giving the local ecology time to shake out into a relatively stable configuration of Earth-born organisms and native life. The native biology may or may not be miscible with human life, but it unlikely to be particularly hostile in any case, or else the interloping life forms would not have been able to get a foothold on the planet.
Hybrid biospheres often show strange examples of symbiosis and adaptation, with plants and animals forming new alliances. Large predators from one world may find themselves subsisting on herds of herbivorous alien life, while Terran vegetation provides sustenance for large populations of small, furred, insect-like grazers. Familiar animals may show seemingly bizarre behavior patterns that have formed in response to local conditions, perhaps becoming larger or more aggressive.
''Immiscible biosphere'' - Immiscible biospheres are not friendly to humans. None of the local plants or animals are edible, and anything the colony needs to eat will have to be grown from Terran stock. Worse, it is common for the pollen and other microbial life of these worlds to be highly allergenic to humans, requiring the regular use of tailored antiallergenics to prevent eventual respiratory failure.
These worlds are exceptionally susceptible to the temptation of human gengineering. Despite the persistent drawbacks, genetic flaws, and handicaps that human gengineering usually introduces in a subject, the desperate need to eat can drive worlds to wholesale experimentation on their progeny. The resultant altered humans are often able to digest the local food, but commonly pay for it in shortened life spans, physical disabilities, or an inability to consume Terran foodstuffs.
Immiscible biospheres produce some of the most exotic plants and animals in human space. Unfettered by the limits of familiar evolutionary patterns, creatures of bizarre beauty and strange configurations are found on many of these worlds. Many lack the intelligence to realize that humans are as poisonous to them as they are to humans.
''Microbial life'' - Microbial life is often the only thing that exists on the more inhospitable planets, yet the wide variety of environments that can accommodate life means that these little beasts show up in some of the most unlikely places. Some varieties of slime mold have even managed to evolve on corrosive-atmosphere planets, forming a mucous-like outer shell against the atmosphere and then feeding and growing off the chemical byproducts of its erosion.
Microbial life can also be dangerous. While most alien microbes are unable to infect or harm the radically different biology of humans, some show enough ingenuity to accomplish even that difficult feat. Rumors of terrible “space plagues” that leave behind only drifting ships and garbled warnings remain a steady staple at spacer bars throughout the known universe.
''Engineered biosphere'' - Engineered biospheres are among the rarest, as they require enormous time and effort on the part of a highly advanced civilization. Whatever life exists on this planet has been extensively altered by an alien race or by advanced pretech gengineering methods. Some such worlds are paradise planets, carefully sculpted by some fabulously wealthy predecessor to suit their own tastes. Others are living forges, where foodstuffs and refined minerals are produced as byproducts from the basic organic processes of the world’s biosphere.
Such worlds tend to be fragile. Many engineered worlds are dependent upon regular stabilizing work to prevent genetic drift and adaptations that do not serve the creator’s purpose. Without regular pruning and adjustment, engineered biospheres can go badly awry. Some end up leaving nothing but genetic wreckage in their wake, while others go wrong in more subtle ways. Where once the biosphere existed to serve the inhabitants, a creaking engineered biosphere can leave the planet’s population chained to constant repair and maintenance efforts just to prevent a planetary collapse.
''No native biosphere'' - No native biosphere is occasionally found on even the most temperate and otherwise habitable worlds. For one reason or another, life simply never evolved on these worlds, leaving them a blank slate for the agricultural and ecological efforts of humans. If the world is otherwise amenable to Terran life, such planets can be enormously fertile and agriculturally rich.
They can also be disasters waiting to happen. Pretech xenobiologists compiled standardized colonization packages of plants, animals, and insect life designed to expand smoothly and evenly to fill the niches of an uninhabited world. Not all colonists implemented these packages correctly, and some worlds had disasters or special circumstances that destabilized their efforts. Some empty worlds are now in a state of constant biological flux as the local ecology strives vainly to find some sort of equilibrium between the myriad imported species.
More subtly, these worlds can be suddenly and drastically destabilized by the import of some offworld plant or animal. With no strong native ecology to fight off interlopers, the wrong beast or bug can lay waste to whole continents. These planets tend to be extremely paranoid about importation of foreign life forms.
''Human-miscible biosphere'' - Human-miscible biospheres are those in which some substantial portion of the native life is biologically compatible with human nutritional needs. The local plants and animals may not be tasty or terribly nourishing, but they can support life without the serious importation of Terran crop seeds and livestock.
Even the friendlier human-miscible biospheres often lack the wide variety of edibles that evolved on Earth, and the natives often supplement their stocks of local foods with limited Terran agriculture. Exotic foods, spices, and liquors can be worth interstellar importation to feed the hunger for novelty on these worlds.
Unfortunately, the fact that humans can eat some native life means that it is very likely that some native life can eat humans in turn. Large predators and diseases capable of human infection are by no means uncommon on these worlds, and small colonies can be hard- pressed to survive them.
''Biosphere remnants'' - Biosphere remnants are the wreckage of a ruined ecology. Petrified trees, drifts of preserved bones, forests of dead plant life; something killed all the life on this planet in the relatively recent past. It may have been the exercise of a maltech planet-buster weapon, or a mutant microbe introduced by human colonists, or some volcanic eruption or asteroid impact that plunged the world into decades of frozen night.
Any local civilization not sophisticated enough to escape the planet likely died when it did. Their ruins and remains might be found throughout the desolate wastes, along with more clues as to the cause of the devastation.
''Hundreds of thousands of inhabitants'' - Hundreds of thousands of inhabitants make up the population of most frontier worlds, usually ones with adequate supplies of arable land and surface conditions amenable to a human without a vacc suit or filter mask. This level of population is also usually the most that a world at tech level 4 can support using only artificial hydroponic complexes and sealed agricultural systems, so less hospitable planets rarely have more than this many inhabitants.
At this level of population, city-states and hub settlements start to form, and some political divisions might exist beneath the overall planetary government. Regional variations start to become present as towns and smaller settlements start to assert their own cultural traits. Young colonies rarely have much of a framework for resolving these new tensions, and it’s not uncommon for outsiders to end up as catspaws for varying factions.
This level of population is normally the smallest that can create spike drive-equipped starships. Less populous worlds rarely have the broad range of specialists and workers necessary to build such ships, even if they possess the necessary technical information.
''Billions of inhabitants'' - Billions of inhabitants on a world is a freak occurrence in most sectors, a circumstance dependent on almost perfect planetary conditions, a First Wave date of colonization, and a very large initial colonial expedition. These worlds have been colonized for almost a thousand years, and have likely gone through substantial cultural development and change since the original founding.
Planets with this many inhabitants tend to come in two main varieties. The more common is that of regional hegemon, leveraging its enormous reserves of labor and scientific personnel to build hundreds or thousands of starships. Some hegemons might even have the transport weight and personnel available to colonize or conquer their less powerful neighbors outright, though most hegemons prefer the safer route of docile client states rather than outright conquests.
Not all such worlds have the necessary resources to build starships, even when the labor is cheap and abundant. These worlds tend to take a different route, becoming balkanized, conflict-torn planets not unlike a mid-20th-century Earth. Resource wars are common and local politics revolve around Byzantine feuds and ancient slights. Technology on such planets tends to be very uneven; it is limited or nonexistent in fields that depend on unavailable resources, but the natives often show remarkable sophistication in making the most of what they have available.
''Alien civilization'' - Alien civilizations are even rarer than massively human-populated planets, but they can be found in some sectors. On these worlds, any human presence is either nonexistent or simply a token contingent of traders and diplomats. The actual number of aliens may range from a few tens of thousands to teeming worlds of billions.
Alien civilizations appear to be no more immune to conflict, disaster, and decadence than that of humans, and most alien worlds are isolated planets. Some sectors were known to be dominated by alien empires before the Scream, but most inhabited worlds found by colonial surveyors consisted of indigenous, low-tech sapients who evolved on the world, or else were the decaying remnants of a former empire that had fallen apart into isolated colonial worlds.
This fate of growth, expansion, colonization, and collapse appears to be a very common event in the galaxy. Countless alien ruins and lost deep-space artifacts indicate that cycles of growth and decay have been going on for millennia, and there is little way to tell how many alien empires have swept over what is now human space before dwindling to decaying worlds and then empty ruins.
Aliens on a decaying colony are likely to be too burdened by the weight of history and dissolution to be aggressive, but may retain dangerously sophisticated devices and scientific expertise. Newly- rising native sophonts may be more interested in reaching the stars, and their ships might well share the spacelanes with the starships of humankind.
''Millions of inhabitants'' - Millions of inhabitants are found on some of the more populous frontier worlds, those planets with an excellent climate and soil for agriculture. These worlds teem with human life compared to most of their neighbors, and if they have sufficient technological expertise to build spike drives, they probably are one of the more powerful planets in the sector. The sheer amount of labor and expertise they can put into their projects dwarfs the capabilities of most other worlds.
Some worlds of this type fail to coalesce under a unified planetary government, however, and turn most of their attention to intra- planetary quarrels between different nations or city-states. Full-scale planetary wars have been known to break out on such worlds, with some being reduced to burnt-out cinders by some maltech weapon or by nuclear attacks against regions stripped of their nuke snuffers.
''Failed colony'' - Failed colonies are occasionally found dotting the worlds of human space. Some date back to the First Wave of human colonization more than a thousand years ago, while others are more recent efforts that guttered out under the strains of a colony’s birth.
Pirate attacks might have wiped out a young colony, as might a hostile biosphere, alien attack, internal dissension, disease outbreaks, failure of vital colonial equipment, or any one of a hundred other disasters. The ruins of the colony might still have valuable pretech artifacts, however, or colonization deeds authorized by neighboring worlds. A few survivors might even have clung to life in the intervening centuries, maintaining some sort of society in the wreckage of their ancestors’ work.
''Tens of thousands of inhabitants'' - Tens of thousands of inhabitants are often found on newly-colonized worlds, or those with limited arable land. With such a small population, most settlements tend to be clustered close to one another for mutual support and efficient exploitation of land. The atmosphere can be something like that of a village-dotted countryside, with too few people to support large, specialized cities. The major settlement of the planet is usually built around the spaceport.
Politics on planets with so few people tend to be very personal in nature. Individual leaders can address the entire population of a world at a single meeting, and networks of family, friends, and employees can dominate the local social life. This small population combined with limited outside contact can result in somewhat... unusual societies more strongly influenced by a leader’s personal quirks than a more populous planet might be. Some such worlds can grow decidedly unhealthy in their customs and traditions.
''Tech Level 4. Baseline postech.'' - Tech level 4 worlds are the most common in human space, and their technical expertise is the baseline for modern post-Silence "postech". These worlds can create spike drives rated up to drive-3, fusion power plants, grav vehicles, simple energy weapons, and medicines that extend human life to a hundred years of vigorous good health. They can manage sophisticated gengineering on simple life forms, and some tech level 4 worlds have even attempted to improve the genetic structures of human life itself. These attempts have yet to produce results without severe drawbacks, but some such worlds remain populated by altered humanity designed to cope with local conditions more perfectly than baseline humans.
Most worlds with regular interstellar contact and the necessary raw resources eventually gravitate towards this level of technological expertise. It may take decades, or even centuries in the case of more retrograde worlds, but this tech level is the highest that can readily be achieved by most planets.
''Tech Level 4 w/ specialities / pretech.'' - Tech level 4 with specialties is an unusual case of a normal tech level 4 world that has retained some pretech industries or has developed their own local technical expertise beyond baseline postech in certain disciplines.
Most such specialties are relatively narrow in scope; grav tech, medicine, hydroponics, force field generation, or some field of roughly similar breadth. These specialties are usually either the product of a few, unreplaceable pretech manufactories or the result of some unique local resource that serves amazingly well for the purpose at hand. In both cases, the world will jealously guard the tech, and much local conflict may relate to control over these resources.
These worlds tend to have substantial amounts of interstellar trade from neighboring worlds interested in their tech. The ruling elite of the world can be ostentatious about display of this wealth.
''Tech level 2. 19th-century technology.'' - Tech level 2 worlds are blessed with the presence of fossil fuels. Internal combustion engines are crude things compared to the power of a fusion plant, but they can be built with primitive tools and a basic degree of education. The mechanization that results from this resource vastly increases the efficiency of local farming, the speed of travel, and the productivity of factory workers.
Most tech level 2 worlds are “knockdowns”; planets that once had a much higher degree of sophistication but were recently crippled by disease, disaster, or invasion. The natives tend to be keenly aware of the glories of former generations, and work fiercely to redevelop lost techniques and reclaim old knowledge.
Few tech level 2 worlds produce much that’s worth interstellar trade. Most foodstuffs are too bulky and cheap to make it worth a captain’s time. Some worlds have rare ore deposits, but the natives have no reason to dig them until a merchant makes it worth their while to set up a whole new industry for export. Some such worlds barter the relics of their ancestors in exchange for educational materials or rare resources necessary for advancing local industry. Others feel forced to trade native work contracts for dangerous, dirty labor.
''Tech Level 3. 20th-century technology.'' - Tech level 3 worlds are those that have developed to a level much like that of the more advanced nations of late twentieth-century Earth. The main difference between tech level 3 worlds and level 4 worlds is the lack of fusion power or spike drive manufacture.
These worlds come in two major varieties. The first is a "knockdown" world that formerly had tech level 4 technologies before some catastrophe or pirate attack destroyed their knowledge and industrial base. Some of the wrecked infrastructure might have been irreplaceable, and the world must struggle to regain its former level of technological production. Worlds in this condition tend to have rather small populations that are susceptible to the loss of a few concentrated groups of experts.
The second major variety is a world that suffered a severe disaster shortly after colonization and has been forced to painstakingly build up their technological base ever since. Some of these worlds date back to the First Wave of colonization a thousand years ago, driven into near-neolithic conditions by some outside pressure before slowly and painfully rebuilding their technological base through purely indigenous efforts. These worlds tend to have very large populations if the world’s climate permits, as they have been colonized for quite some time.
Simply providing a world with the necessary technical data for advancement doesn’t mean that advancement will be quick or even. Even if a tech level 3 world has the necessary resources to build tech level 4 devices, it may take as much as a generation for a world to build the necessary infrastructure and resource extraction enterprises. The time may be longer still if the dominant cultures are uneasy with the new technology.
''Tech Level 5. Pretech, pre-Silence tech.'' - Tech level 5 is the highest tech level that might merit random placement. A world with this level of technological expertise has somehow managed to hold on to the majority of the pre-Scream technology base, and can produce a wide range of goods that are unknown on less sophisticated worlds. Miniaturized fusion plants, drive-6 rated spike drives, exotic grav weaponry, and even the development of psionics-based "psitech" is possible on such a world.
Pretech manufacturing was largely dependent on specially-trained industrial psychics. With the loss of their unique disciplines in the Scream, most worlds that retain this level of tech classification were forced to substitute slower, less precise methods that sharply curtailed their production efficiency. Barring the profoundly unlikely happenstance of this world’s redevelopment of the lost disciplines, their maximum industrial output is sharply limited. Even on worlds such as this, most technology is likely mass-produced postech, with only important goods produced to pretech levels of quality.
A world with this level of technology is almost certainly a regional hegemon, one of the most powerful and influential worlds in the sector. Even those worlds that have no imperial ambitions have enormous influence simply through the vast superiority of their starships and military technology.
''Tech Level 1. Medieval technology.'' - Tech level 1 worlds have managed to find and exploit metal deposits and likely have imported or domesticated beasts of burden. Those worlds with easy access to fossil fuels or a similarly energy-dense substance can advance to greater things, but a culture trapped at tech level 1 is unlikely to have access to such helpful resources. A few worlds have enough plant matter or other combustibles to make steam engines feasible, but those with very much of such a resource usually make the leap to the next tech level eventually.
As a consequence, tech level 1 worlds tend to be caught at much the same general level of development as their tech level 0 cousins. They may have elaborate social structures and cultural development, but they are unable to mechanize without some energy-dense resource to serve as fuel. The scavenged hulks of their ancestors’ fusion plants may stand as mute temples to the achievements of their forebears, but without the tech necessary to repair and rebuild such edifices the world is dependent on purely local fuel sources.
Tech level 1 worlds tend to respond to visitors in much the same way as tech level 0 planets. The ruling class of these worlds is liable to be able to muster larger cities, bigger armies, and all the other perquisites that come from being able to work the available agricultural land with fewer hands.
''Tech Level 0. Stone-age technology.'' - Tech level 0 represents a world with technologies similar to neolithic- era humanity. Very few worlds collapse this far without dying out completely, and so a world this primitive is very rare in human space. The world is so profoundly devoid of useful resources that the natives may simply not have anything better to work with than rocks and native vegetation.
Natives of a world at this tech level might retain elaborate cultural artifacts and a very sophisticated society. Existing resources tend to be exploited to the hilt, with large populations producing massive stone cities, human-powered engines for irrigation, and vast displays of foodstuffs and craft work for the ruling class. Despite this, the lack of metal, domesticated beasts of burden, and petrochemicals puts a hard stop on the technological development of most of these worlds.
Responses to free traders and other interstellar travellers will vary with the local culture. The lack of quick communications methods tends to result in large populations breaking up into numerous smaller regional cultures, and the friendly prince of one domain might neighbor an implacably hostile sage-king. Most “lostworlders” have a keen appreciation for the benefits these strangers from the sky can bring them, and will bargain accordingly.
Some worlds might retain crisply rational records of their colonization and downfall. Others might preserve tales of a starry origin in legends and story. A few might have forgotten their origins entirely, and view sky-born humans as gods or messengers of the divine. Such awe rarely lasts very long once the merchants or pirates who landed make their purposes clear.
|!Company Name|!Business|h
|[[Abbas Faction|Corp:AbbasFaction]]|Journalism|
|[[Ad Astra Band|Corp:AdAstraBand]]|Asteroid Mining|
|[[Aguilera Association|Corp:AguileraAssociation]]|Planetary Mining|
|[[Agustin Unity|Corp:AgustinUnity]]|Shipyards|
|[[Al-dalharni Society|Corp:Al-dalharniSociety]]|Assassination|
|[[Angelis Megacorp|Corp:AngelisMegacorp]]|Telcoms|
|[[Bourns Multistellar|Corp:BournsMultistellar]]|Security|
|[[Caffey Combine|Corp:CaffeyCombine]]|Pretech|
|[[Camelin Outift|Corp:CamelinOutift]]|Pharmaceuticals|
|[[Compass Enterprises|Corp:CompassEnterprises]]|Aeronautics|
|[[Cordero Outift|Corp:CorderoOutift]]|Livestock|
|[[Coulouris Circle|Corp:CoulourisCircle]]|Snacks|
|[[Davila Society|Corp:DavilaSociety]]|Prostitution|
|[[Daybreak Society|Corp:DaybreakSociety]]|Psitech|
|[[Fanatia Band|Corp:FanatiaBand]]|Construction|
|[[Fawcett Band|Corp:FawcettBand]]|Exploration|
|[[Fleming Union|Corp:FlemingUnion]]|Gengineering|
|[[Guo Yin Company|Corp:GuoYinCompany]]|Energy Weapons|
|[[Hill Sodality|Corp:HillSodality]]|Exploration|
|[[Homayoun Organization|Corp:HomayounOrganization]]|Transport|
|[[Jenney Enterprises|Corp:JenneyEnterprises]]|Law Enforcement|
|[[Jongebloed Band|Corp:JongebloedBand]]|Aeronautics|
|[[Kalvos Enterprises|Corp:KalvosEnterprises]]|Heavy Weapons|
|[[Karatossos Company|Corp:KaratossosCompany]]|Illicit Drugs|
|[[Kardar Enterprises|Corp:KardarEnterprises]]|Exploration|
|[[Kasomoulis Pact|Corp:KasomoulisPact]]|Assassination|
|[[Kousoulas Sodality|Corp:KousoulasSodality]]|Mercenary Work|
|[[Kuhnle Alliance|Corp:KuhnleAlliance]]|Law Enforcement|
|[[Lorenzo Cooperative|Corp:LorenzoCooperative]]|Prisons|
|[[Magnus Sodality|Corp:MagnusSodality]]|Plastics|
|[[Meteor Ring|Corp:MeteorRing]]|Liquor|
|[[Mondello Cooperative|Corp:MondelloCooperative]]|Journalism|
|[[Muniz Ring|Corp:MunizRing]]|Energy Weapons|
|[[Murphey Faction|Corp:MurpheyFaction]]|Gemstones|
|[[Neogen Band|Corp:NeogenBand]]|Art|
|[[Noseda Sodality|Corp:NosedaSodality]]|Computer Hardware|
|[[Outertech Band|Corp:OutertechBand]]|Construction|
|[[Overwatch Union|Corp:OverwatchUnion]]|Aeronautics|
|[[Page Alliance|Corp:PageAlliance]]|Metallurgy|
|[[Panstellar Organization|Corp:PanstellarOrganization]]|Illicit Drugs|
|[[Quale Sodality|Corp:QualeSodality]]|Maltech|
|[[Shiplet Enterprises|Corp:ShipletEnterprises]]|Plastics|
|[[Stoffel Faction|Corp:StoffelFaction]]|Shipyards|
|[[Striker Enterprises|Corp:StrikerEnterprises]]|Aeronautics|
|[[Sunbeam Zaibatsu|Corp:SunbeamZaibatsu]]|Construction|
|[[Thacker Union|Corp:ThackerUnion]]|Computer Hardware|
|[[Ulery Circle|Corp:UleryCircle]]|Entertainment|
|[[Vasdekis Syndicate|Corp:VasdekisSyndicate]]|Transport|
|[[Wayfarer Alliance|Corp:WayfarerAlliance]]|Law Enforcement|
|[[West Wind Ring|Corp:WestWindRing]]|Transport|
|!Name      |Abbas Faction|
|!Business  |Journalism|
!!!Notes
|!Name      |Ad Astra Band|
|!Business  |Asteroid Mining|
!!!Notes
|!Name      |Aguilera Association|
|!Business  |Planetary Mining|
!!!Notes
|!Name      |Agustin Unity|
|!Business  |Shipyards|
!!!Notes
|!Name      |Al-dalharni Society|
|!Business  |Assassination|
!!!Notes
|!Name      |Angelis Megacorp|
|!Business  |Telcoms|
!!!Notes
|!Name      |Bourns Multistellar|
|!Business  |Security|
!!!Notes
|!Name      |Caffey Combine|
|!Business  |Pretech|
!!!Notes
|!Name      |Camelin Outift|
|!Business  |Pharmaceuticals|
!!!Notes
|!Name      |Compass Enterprises|
|!Business  |Aeronautics|
!!!Notes
|!Name      |Cordero Outift|
|!Business  |Livestock|
!!!Notes
|!Name      |Coulouris Circle|
|!Business  |Snacks|
!!!Notes
|!Name      |Davila Society|
|!Business  |Prostitution|
!!!Notes
|!Name      |Daybreak Society|
|!Business  |Psitech|
!!!Notes
|!Name      |Fanatia Band|
|!Business  |Construction|
!!!Notes
|!Name      |Fawcett Band|
|!Business  |Exploration|
!!!Notes
|!Name      |Fleming Union|
|!Business  |Gengineering|
!!!Notes
|!Name      |Guo Yin Company|
|!Business  |Energy Weapons|
!!!Notes
|!Name      |Hill Sodality|
|!Business  |Exploration|
!!!Notes
|!Name      |Homayoun Organization|
|!Business  |Transport|
!!!Notes
|!Name      |Jenney Enterprises|
|!Business  |Law Enforcement|
!!!Notes
|!Name      |Jongebloed Band|
|!Business  |Aeronautics|
!!!Notes
|!Name      |Kalvos Enterprises|
|!Business  |Heavy Weapons|
!!!Notes
|!Name      |Karatossos Company|
|!Business  |Illicit Drugs|
!!!Notes
|!Name      |Kardar Enterprises|
|!Business  |Exploration|
!!!Notes
|!Name      |Kasomoulis Pact|
|!Business  |Assassination|
!!!Notes
|!Name      |Kousoulas Sodality|
|!Business  |Mercenary Work|
!!!Notes
|!Name      |Kuhnle Alliance|
|!Business  |Law Enforcement|
!!!Notes
|!Name      |Lorenzo Cooperative|
|!Business  |Prisons|
!!!Notes
|!Name      |Magnus Sodality|
|!Business  |Plastics|
!!!Notes
|!Name      |Meteor Ring|
|!Business  |Liquor|
!!!Notes
|!Name      |Mondello Cooperative|
|!Business  |Journalism|
!!!Notes
|!Name      |Muniz Ring|
|!Business  |Energy Weapons|
!!!Notes
|!Name      |Murphey Faction|
|!Business  |Gemstones|
!!!Notes
|!Name      |Neogen Band|
|!Business  |Art|
!!!Notes
|!Name      |Noseda Sodality|
|!Business  |Computer Hardware|
!!!Notes
|!Name      |Outertech Band|
|!Business  |Construction|
!!!Notes
|!Name      |Overwatch Union|
|!Business  |Aeronautics|
!!!Notes
|!Name      |Page Alliance|
|!Business  |Metallurgy|
!!!Notes
|!Name      |Panstellar Organization|
|!Business  |Illicit Drugs|
!!!Notes
|!Name      |Quale Sodality|
|!Business  |Maltech|
!!!Notes
|!Name      |Shiplet Enterprises|
|!Business  |Plastics|
!!!Notes
|!Name      |Stoffel Faction|
|!Business  |Shipyards|
!!!Notes
|!Name      |Striker Enterprises|
|!Business  |Aeronautics|
!!!Notes
|!Name      |Sunbeam Zaibatsu|
|!Business  |Construction|
!!!Notes
|!Name      |Thacker Union|
|!Business  |Computer Hardware|
!!!Notes
|!Name      |Ulery Circle|
|!Business  |Entertainment|
!!!Notes
|!Name      |Vasdekis Syndicate|
|!Business  |Transport|
!!!Notes
|!Name      |Wayfarer Alliance|
|!Business  |Law Enforcement|
!!!Notes
|!Name      |West Wind Ring|
|!Business  |Transport|
!!!Notes
































|!Religion|!Origin|!Leadership|h
|[[Syncretic Jewish Buddhists|Religion:SyncreticJewishBuddhists]]|Buddhism|Patriarch/Matriarch|
|[[Separatist Confucianists|Religion:SeparatistConfucianists]]|Confucianism|Council|
|[[Neofundamentalist Confucianists|Religion:NeofundamentalistConfucianists]]|Confucianism|No universal leadership|
|[[Quietist Confucianists|Religion:QuietistConfucianists]]|Confucianism|Council|
|[[New Book Eastern Orthodox Christians|Religion:NewBookEasternOrthodoxChristians]]|Eastern Orthodox Christianity|No universal leadership|
|[[New Prophet Eastern Orthodox Christians|Religion:NewProphetEasternOrthodoxChristians]]|Eastern Orthodox Christianity|No universal leadership|
|[[Holy Family Hinduists|Religion:HolyFamilyHinduists]]|Hinduism|Council|
|[[Neofundamentalist Hinduists|Religion:NeofundamentalistHinduists]]|Hinduism|Council|
|[[Neofundamentalist Ideologists|Religion:NeofundamentalistIdeologists]]|Ideology|Patriarch/Matriarch|
|[[New Prophet Ideologists|Religion:NewProphetIdeologists]]|Ideology|Council|
|[[Syncretic Hindu Ideologists|Religion:SyncreticHinduIdeologists]]|Ideology|No universal leadership|
|[[Holy Family Muslims|Religion:HolyFamilyMuslims]]|Islam|Patriarch/Matriarch|
|[[New Book Muslims|Religion:NewBookMuslims]]|Islam|Patriarch/Matriarch|
|[[Neofundamentalist Judaism|Religion:NeofundamentalistJudaism]]|Judaism|Democracy|
|[[Sacrificial Judaism|Religion:SacrificialJudaism]]|Judaism|Patriarch/Matriarch|
|[[Syncretic Confucian Pagans|Religion:SyncreticConfucianPagans]]|Paganism|Council|
|[[New Book Protestant Christians|Religion:NewBookProtestantChristians]]|Protestant Christianity|Patriarch/Matriarch|
|[[Quietist Roman Catholics|Religion:QuietistRomanCatholics]]|Roman Catholicism|No universal leadership|
|[[Sacrificial Roman Catholics|Religion:SacrificialRomanCatholics]]|Roman Catholicism|Patriarch/Matriarch|
|[[Syncretic Zoroastrian Taoists|Religion:SyncreticZoroastrianTaoists]]|Taoism|Democracy|
|[[Separatist Taoists|Religion:SeparatistTaoists]]|Taoism|Patriarch/Matriarch|
|[[New Book Zoroastrianists|Religion:NewBookZoroastrianists]]|Zoroastrianism|Patriarch/Matriarch|
|[[Holy Family Zoroastrianists|Religion:HolyFamilyZoroastrianists]]|Zoroastrianism|Council|
|[[Neofundamentalist Zoroastrianists|Religion:NeofundamentalistZoroastrianists]]|Zoroastrianism|Patriarch/Matriarch|
|!Name      |Syncretic Jewish Buddhists|
|!Origin    |Buddhism|
!!!Leadership
Patriarch/Matriarch. A single leader determines doctrine for the entire religion, possibly in consultation with other clerics.
!!!Evolution
Syncretism. This faith has reconciled the major elements of both of its origin beliefs into its tradition.!!!Notes
|!Name      |Separatist Confucianists|
|!Origin    |Confucianism|
!!!Leadership
Council. A group of the oldest and most revered clergy determine the course of the faith.
!!!Evolution
Schism. The faith's beliefs are actually almost identical to those of the majority of its origin tradition, save for a few minor points of vital interest to theologians and no practical difference whatsoever to believers. This does not prevent a burning resentment towards the parent faith.!!!Notes
|!Name      |Neofundamentalist Confucianists|
|!Origin    |Confucianism|
!!!Leadership
No universal leadership. Each region governs itself differently.
!!!Evolution
Neofundamentalism. The faith is fiercely resistant to perceived innovations and deviations from their beliefs. Even extremely onerous traditions and restrictions will be observed to the letter.!!!Notes
|!Name      |Quietist Confucianists|
|!Origin    |Confucianism|
!!!Leadership
Council. A group of the oldest and most revered clergy determine the course of the faith.
!!!Evolution
Quietism. The faith shuns the outside world and involvement with the affairs of nonbelievers. They prefer to keep to their own kind and avoid positions of wealth and power.!!!Notes
|!Name      |New Book Eastern Orthodox Christians|
|!Origin    |Eastern Orthodox Christianity|
!!!Leadership
No universal leadership. Each region governs itself differently.
!!!Evolution
New holy book. Someone in the faith's past penned or discovered a text that is now taken to be holy writ and the expressed will of the divine.!!!Notes
|!Name      |New Prophet Eastern Orthodox Christians|
|!Origin    |Eastern Orthodox Christianity|
!!!Leadership
No universal leadership. Each region governs itself differently.
!!!Evolution
New prophet. This faith reveres the words and example of a relatively recent prophet, esteeming him or her as the final word on the will of God. The prophet may or may not still be living.!!!Notes
|!Name      |Holy Family Hinduists|
|!Origin    |Hinduism|
!!!Leadership
Council. A group of the oldest and most revered clergy determine the course of the faith.
!!!Evolution
Holy family. God's favor has been shown especially to members of a particular lineage. It may be that only men and women of this bloodline are permitted to become clergy, or they may serve as helpless figureheads for the real leaders of the faith.!!!Notes
|!Name      |Neofundamentalist Hinduists|
|!Origin    |Hinduism|
!!!Leadership
Council. A group of the oldest and most revered clergy determine the course of the faith.
!!!Evolution
Neofundamentalism. The faith is fiercely resistant to perceived innovations and deviations from their beliefs. Even extremely onerous traditions and restrictions will be observed to the letter.!!!Notes
|!Name      |Neofundamentalist Ideologists|
|!Origin    |Ideology|
!!!Leadership
Patriarch/Matriarch. A single leader determines doctrine for the entire religion, possibly in consultation with other clerics.
!!!Evolution
Neofundamentalism. The faith is fiercely resistant to perceived innovations and deviations from their beliefs. Even extremely onerous traditions and restrictions will be observed to the letter.!!!Notes
|!Name      |New Prophet Ideologists|
|!Origin    |Ideology|
!!!Leadership
Council. A group of the oldest and most revered clergy determine the course of the faith.
!!!Evolution
New prophet. This faith reveres the words and example of a relatively recent prophet, esteeming him or her as the final word on the will of God. The prophet may or may not still be living.!!!Notes
|!Name      |Syncretic Hindu Ideologists|
|!Origin    |Ideology|
!!!Leadership
No universal leadership. Each region governs itself differently.
!!!Evolution
Syncretism. This faith has reconciled the major elements of both of its origin beliefs into its tradition.!!!Notes
|!Name      |Holy Family Muslims|
|!Origin    |Islam|
!!!Leadership
Patriarch/Matriarch. A single leader determines doctrine for the entire religion, possibly in consultation with other clerics.
!!!Evolution
Holy family. God's favor has been shown especially to members of a particular lineage. It may be that only men and women of this bloodline are permitted to become clergy, or they may serve as helpless figureheads for the real leaders of the faith.!!!Notes
|!Name      |New Book Muslims|
|!Origin    |Islam|
!!!Leadership
Patriarch/Matriarch. A single leader determines doctrine for the entire religion, possibly in consultation with other clerics.
!!!Evolution
New holy book. Someone in the faith's past penned or discovered a text that is now taken to be holy writ and the expressed will of the divine.!!!Notes
|!Name      |Neofundamentalist Judaism|
|!Origin    |Judaism|
!!!Leadership
Democracy. Every member has an equal voice in matters of faith, with doctrine usually decided at regular church-wide councils.
!!!Evolution
Neofundamentalism. The faith is fiercely resistant to perceived innovations and deviations from their beliefs. Even extremely onerous traditions and restrictions will be observed to the letter.!!!Notes
|!Name      |Sacrificial Judaism|
|!Origin    |Judaism|
!!!Leadership
Patriarch/Matriarch. A single leader determines doctrine for the entire religion, possibly in consultation with other clerics.
!!!Evolution
Sacrifices. The faith finds it necessary to make substantial sacrifices to please God. Some faiths may go so far as to offer human sacrifices, while others insist on huge tithes offered to the building of religious edifices.!!!Notes
|!Name      |Syncretic Confucian Pagans|
|!Origin    |Paganism|
!!!Leadership
Council. A group of the oldest and most revered clergy determine the course of the faith.
!!!Evolution
Syncretism. This faith has reconciled the major elements of both of its origin beliefs into its tradition.!!!Notes
|!Name      |New Book Protestant Christians|
|!Origin    |Protestant Christianity|
!!!Leadership
Patriarch/Matriarch. A single leader determines doctrine for the entire religion, possibly in consultation with other clerics.
!!!Evolution
New holy book. Someone in the faith's past penned or discovered a text that is now taken to be holy writ and the expressed will of the divine.!!!Notes
|!Name      |Quietist Roman Catholics|
|!Origin    |Roman Catholicism|
!!!Leadership
No universal leadership. This faith has no hierarchy.
!!!Evolution
Quietism. The faith shuns the outside world and involvement with the affairs of nonbelievers. They prefer to keep to their own kind and avoid positions of wealth and power.!!!Notes
|!Name      |Sacrificial Roman Catholics|
|!Origin    |Roman Catholicism|
!!!Leadership
Patriarch/Matriarch. A single leader determines doctrine for the entire religion, possibly in consultation with other clerics.
!!!Evolution
Sacrifices. The faith finds it necessary to make substantial sacrifices to please God. Some faiths may go so far as to offer human sacrifices, while others insist on huge tithes offered to the building of religious edifices.!!!Notes
|!Name      |Syncretic Zoroastrian Taoists|
|!Origin    |Taoism|
!!!Leadership
Democracy. Every member has an equal voice in matters of faith, with doctrine usually decided at regular church-wide councils.
!!!Evolution
Syncretism. This faith has reconciled the major elements of both of its origin beliefs into its tradition.!!!Notes
|!Name      |Separatist Taoists|
|!Origin    |Taoism|
!!!Leadership
Patriarch/Matriarch. A single leader determines doctrine for the entire religion, possibly in consultation with other clerics.
!!!Evolution
Schism. The faith's beliefs are actually almost identical to those of the majority of its origin tradition, save for a few minor points of vital interest to theologians and no practical difference whatsoever to believers. This does not prevent a burning resentment towards the parent faith.!!!Notes
|!Name      |New Book Zoroastrianists|
|!Origin    |Zoroastrianism|
!!!Leadership
Patriarch/Matriarch. A single leader determines doctrine for the entire religion, possibly in consultation with other clerics.
!!!Evolution
New holy book. Someone in the faith's past penned or discovered a text that is now taken to be holy writ and the expressed will of the divine.!!!Notes
|!Name      |Holy Family Zoroastrianists|
|!Origin    |Zoroastrianism|
!!!Leadership
Council. A group of the oldest and most revered clergy determine the course of the faith.
!!!Evolution
Holy family. God's favor has been shown especially to members of a particular lineage. It may be that only men and women of this bloodline are permitted to become clergy, or they may serve as helpless figureheads for the real leaders of the faith.!!!Notes
|!Name      |Neofundamentalist Zoroastrianists|
|!Origin    |Zoroastrianism|
!!!Leadership
Patriarch/Matriarch. A single leader determines doctrine for the entire religion, possibly in consultation with other clerics.
!!!Evolution
Neofundamentalism. The faith is fiercely resistant to perceived innovations and deviations from their beliefs. Even extremely onerous traditions and restrictions will be observed to the letter.!!!Notes












|!Organization|!Leadership|!Policy|!Outsiders|!Issues|h
|[[Cerulean Pact|Group:CeruleanPact]]|Rural|Protectionist|Xenophobic|Secession, Tradition|
|[[Chromium Federation|Group:ChromiumFederation]]|Urban|Autarky|Xenophilia|Industry, Tradition|
|[[Conservative Party|Group:ConservativeParty]]|Outcasts|Communist|Xenophobic|Religion, Immigration|
|[[Democratic Alliance|Group:DemocraticAlliance]]|Intellectuals|State industry|Provisional|Tradition, Reform|
|[[East Front|Group:EastFront]]|Bourgeoisie|Communist|Provisional|Foreign Policy, Military|
|[[Federal Brotherhood|Group:FederalBrotherhood]]|Rural|Autarky|Xenophilia|Bigotry, Industry|
|[[Freedom Society|Group:FreedomSociety]]|Social elite|Protectionist|Provisional|Immigration, Industry|
|[[Homeland Pact|Group:HomelandPact]]|Rural|State industry|Provisional|Poverty, Tradition|
|[[Hornet Banner|Group:HornetBanner]]|Proletariat|Socialist|Provisional|Industry, Welfare|
|[[Inner Fellowship|Group:InnerFellowship]]|Intellectuals|Communist|Xenophobic|Gender Roles, Welfare|
|[[Ivory Union|Group:IvoryUnion]]|Intellectuals|Laissez-faire|Xenophilia|Military, Immigration|
|[[Komodo Union|Group:KomodoUnion]]|Outcasts|Socialist|Xenophobic|Secession, Bigotry|
|[[Liberal Union|Group:LiberalUnion]]|Urban|Socialist|Xenophobic|Gender Roles, Reform|
|[[Liberty Council|Group:LibertyCouncil]]|Urban|Autarky|Provisional|Foreign Policy, Secession|
|[[National Alliance|Group:NationalAlliance]]|Rural|Communist|Xenophilia|Bigotry, Tradition|
|[[People's Brotherhood|Group:People'sBrotherhood]]|Pious|Socialist|Provisional|Religion, Reform|
|[[Popular Brotherhood|Group:PopularBrotherhood]]|Bourgeoisie|Communist|Provisional|Immigration, Poverty|
|[[Progressive Combine|Group:ProgressiveCombine]]|Rural|Autarky|Xenophobic|Welfare, Reform|
|[[Republican Brotherhood|Group:RepublicanBrotherhood]]|Social elite|Socialist|Provisional|Immigration, Gender Roles|
|[[Royal Combine|Group:RoyalCombine]]|Outcasts|Laissez-faire|Xenophobic|Bigotry, Welfare|
|[[Silver Society|Group:SilverSociety]]|Rural|Laissez-faire|Xenophobic|Secession, Immigration|
|[[Social Federation|Group:SocialFederation]]|Outcasts|Protectionist|Provisional|Gender Roles, Foreign Policy|
|[[Unified Faction|Group:UnifiedFaction]]|Outcasts|Communist|Xenophilia|Secession, Gender Roles|
|[[Victory Fellowship|Group:VictoryFellowship]]|Rural|Socialist|Xenophilia|Reform, Industry|
|!Name      |Cerulean Pact|
!!!Ideology
Protectionist: the government should tax imports that threaten to displace the products of local manufacturers.
!!!Leadership
Rural: farmers, herdsmen, small-town artisans, and other residents of the rural zones of a planet make up the leadership of the group.
!!!Key Issues
* Secession.
* Culture of the group membership.

!!!Relationship toward Outsiders
Xenophobic: immigration is to be restricted to protect native jobs and culture.
!!!Notes
|!Name      |Chromium Federation|
!!!Ideology
Autarky: the government should ensure that the world can provide all of its own goods and services and forbid the import of foreign goods.
!!!Leadership
Urban: city-dwellers compose the leadership of the group.
!!!Key Issues
* The memberships' important industries.
* Culture of the group membership.

!!!Relationship toward Outsiders
Xenophilia: the more immigrants the better, as they provide valuable labor and skills.
!!!Notes
|!Name      |Conservative Party|
!!!Ideology
Communist: the state should control the economy, disbursing its products according to need and determined efficiency.
!!!Leadership
Outcasts: the group's leadership is filled out by members of a taboo, outcast, or otherwise socially marginal group.
!!!Key Issues
* Religion in public life.
* Immigration and immigrants.

!!!Relationship toward Outsiders
Xenophobic: immigration is to be restricted to protect native jobs and culture.
!!!Notes
|!Name      |Democratic Alliance|
!!!Ideology
State industry: the government should own or support specific industries important to the group.
!!!Leadership
Intellectuals: the movement is led by intellectuals.
!!!Key Issues
* Culture of the group membership.
* Governmental reform.

!!!Relationship toward Outsiders
Provisional: some immigrants are to be encouraged, others to be forbidden. Which is which depends on the interests of the group.
!!!Notes
|!Name      |East Front|
!!!Ideology
Communist: the state should control the economy, disbursing its products according to need and determined efficiency.
!!!Leadership
Bourgeoisie: the group is driven by a leadership drawn from the middle class and those aspiring to join the elite.
!!!Key Issues
* Foreign relations.
* Military preparedness.

!!!Relationship toward Outsiders
Provisional: some immigrants are to be encouraged, others to be forbidden. Which is which depends on the interests of the group.
!!!Notes
|!Name      |Federal Brotherhood|
!!!Ideology
Autarky: the government should ensure that the world can provide all of its own goods and services and forbid the import of foreign goods.
!!!Leadership
Rural: farmers, herdsmen, small-town artisans, and other residents of the rural zones of a planet make up the leadership of the group.
!!!Key Issues
* Social hostility to the group's membership.
* The memberships' important industries.

!!!Relationship toward Outsiders
Xenophilia: the more immigrants the better, as they provide valuable labor and skills.
!!!Notes
|!Name      |Freedom Society|
!!!Ideology
Protectionist: the government should tax imports that threaten to displace the products of local manufacturers.
!!!Leadership
Social elite: the group is led by members of the planet's ruling class.
!!!Key Issues
* Immigration and immigrants.
* The memberships' important industries.

!!!Relationship toward Outsiders
Provisional: some immigrants are to be encouraged, others to be forbidden. Which is which depends on the interests of the group.
!!!Notes
|!Name      |Homeland Pact|
!!!Ideology
State industry: the government should own or support specific industries important to the group.
!!!Leadership
Rural: farmers, herdsmen, small-town artisans, and other residents of the rural zones of a planet make up the leadership of the group.
!!!Key Issues
* Poverty among the group's membership.
* Culture of the group membership.

!!!Relationship toward Outsiders
Provisional: some immigrants are to be encouraged, others to be forbidden. Which is which depends on the interests of the group.
!!!Notes
|!Name      |Hornet Banner|
!!!Ideology
Socialist: the market should be harnessed to ensure a state-determined minimal standard of living for all.
!!!Leadership
Proletariat: the working class, both agricultural and industrial, provides the leadership for this group.
!!!Key Issues
* The memberships' important industries.
* Wealth redistribution.

!!!Relationship toward Outsiders
Provisional: some immigrants are to be encouraged, others to be forbidden. Which is which depends on the interests of the group.
!!!Notes
|!Name      |Inner Fellowship|
!!!Ideology
Communist: the state should control the economy, disbursing its products according to need and determined efficiency.
!!!Leadership
Intellectuals: the movement is led by intellectuals.
!!!Key Issues
* Gender roles and sexual mores.
* Wealth redistribution.

!!!Relationship toward Outsiders
Xenophobic: immigration is to be restricted to protect native jobs and culture.
!!!Notes
|!Name      |Ivory Union|
!!!Ideology
Laissez-faire: minimal or no government intervention in the market.
!!!Leadership
Intellectuals: the movement is led by intellectuals.
!!!Key Issues
* Military preparedness.
* Immigration and immigrants.

!!!Relationship toward Outsiders
Xenophilia: the more immigrants the better, as they provide valuable labor and skills.
!!!Notes
|!Name      |Komodo Union|
!!!Ideology
Socialist: the market should be harnessed to ensure a state-determined minimal standard of living for all.
!!!Leadership
Outcasts: the group's leadership is filled out by members of a taboo, outcast, or otherwise socially marginal group.
!!!Key Issues
* Secession.
* Social hostility to the group's membership.

!!!Relationship toward Outsiders
Xenophobic: immigration is to be restricted to protect native jobs and culture.
!!!Notes
|!Name      |Liberal Union|
!!!Ideology
Socialist: the market should be harnessed to ensure a state-determined minimal standard of living for all.
!!!Leadership
Urban: city-dwellers compose the leadership of the group.
!!!Key Issues
* Gender roles and sexual mores.
* Governmental reform.

!!!Relationship toward Outsiders
Xenophobic: immigration is to be restricted to protect native jobs and culture.
!!!Notes
|!Name      |Liberty Council|
!!!Ideology
Autarky: the government should ensure that the world can provide all of its own goods and services and forbid the import of foreign goods.
!!!Leadership
Urban: city-dwellers compose the leadership of the group.
!!!Key Issues
* Foreign relations.
* Secession.

!!!Relationship toward Outsiders
Provisional: some immigrants are to be encouraged, others to be forbidden. Which is which depends on the interests of the group.
!!!Notes
|!Name      |National Alliance|
!!!Ideology
Communist: the state should control the economy, disbursing its products according to need and determined efficiency.
!!!Leadership
Rural: farmers, herdsmen, small-town artisans, and other residents of the rural zones of a planet make up the leadership of the group.
!!!Key Issues
* Social hostility to the group's membership.
* Culture of the group membership.

!!!Relationship toward Outsiders
Xenophilia: the more immigrants the better, as they provide valuable labor and skills.
!!!Notes
|!Name      |People's Brotherhood|
!!!Ideology
Socialist: the market should be harnessed to ensure a state-determined minimal standard of living for all.
!!!Leadership
Pious: clergy and devout laymen of a religion form the leadership.
!!!Key Issues
* Religion in public life.
* Governmental reform.

!!!Relationship toward Outsiders
Provisional: some immigrants are to be encouraged, others to be forbidden. Which is which depends on the interests of the group.
!!!Notes
|!Name      |Popular Brotherhood|
!!!Ideology
Communist: the state should control the economy, disbursing its products according to need and determined efficiency.
!!!Leadership
Bourgeoisie: the group is driven by a leadership drawn from the middle class and those aspiring to join the elite.
!!!Key Issues
* Immigration and immigrants.
* Poverty among the group's membership.

!!!Relationship toward Outsiders
Provisional: some immigrants are to be encouraged, others to be forbidden. Which is which depends on the interests of the group.
!!!Notes
|!Name      |Progressive Combine|
!!!Ideology
Autarky: the government should ensure that the world can provide all of its own goods and services and forbid the import of foreign goods.
!!!Leadership
Rural: farmers, herdsmen, small-town artisans, and other residents of the rural zones of a planet make up the leadership of the group.
!!!Key Issues
* Wealth redistribution.
* Governmental reform.

!!!Relationship toward Outsiders
Xenophobic: immigration is to be restricted to protect native jobs and culture.
!!!Notes
|!Name      |Republican Brotherhood|
!!!Ideology
Socialist: the market should be harnessed to ensure a state-determined minimal standard of living for all.
!!!Leadership
Social elite: the group is led by members of the planet's ruling class.
!!!Key Issues
* Immigration and immigrants.
* Gender roles and sexual mores.

!!!Relationship toward Outsiders
Provisional: some immigrants are to be encouraged, others to be forbidden. Which is which depends on the interests of the group.
!!!Notes
|!Name      |Royal Combine|
!!!Ideology
Laissez-faire: minimal or no government intervention in the market.
!!!Leadership
Outcasts: the group's leadership is filled out by members of a taboo, outcast, or otherwise socially marginal group.
!!!Key Issues
* Social hostility to the group's membership.
* Wealth redistribution.

!!!Relationship toward Outsiders
Xenophobic: immigration is to be restricted to protect native jobs and culture.
!!!Notes
|!Name      |Silver Society|
!!!Ideology
Laissez-faire: minimal or no government intervention in the market.
!!!Leadership
Rural: farmers, herdsmen, small-town artisans, and other residents of the rural zones of a planet make up the leadership of the group.
!!!Key Issues
* Secession.
* Immigration and immigrants.

!!!Relationship toward Outsiders
Xenophobic: immigration is to be restricted to protect native jobs and culture.
!!!Notes
|!Name      |Social Federation|
!!!Ideology
Protectionist: the government should tax imports that threaten to displace the products of local manufacturers.
!!!Leadership
Outcasts: the group's leadership is filled out by members of a taboo, outcast, or otherwise socially marginal group.
!!!Key Issues
* Gender roles and sexual mores.
* Foreign relations.

!!!Relationship toward Outsiders
Provisional: some immigrants are to be encouraged, others to be forbidden. Which is which depends on the interests of the group.
!!!Notes
|!Name      |Unified Faction|
!!!Ideology
Communist: the state should control the economy, disbursing its products according to need and determined efficiency.
!!!Leadership
Outcasts: the group's leadership is filled out by members of a taboo, outcast, or otherwise socially marginal group.
!!!Key Issues
* Secession.
* Gender roles and sexual mores.

!!!Relationship toward Outsiders
Xenophilia: the more immigrants the better, as they provide valuable labor and skills.
!!!Notes
|!Name      |Victory Fellowship|
!!!Ideology
Socialist: the market should be harnessed to ensure a state-determined minimal standard of living for all.
!!!Leadership
Rural: farmers, herdsmen, small-town artisans, and other residents of the rural zones of a planet make up the leadership of the group.
!!!Key Issues
* Governmental reform.
* The memberships' important industries.

!!!Relationship toward Outsiders
Xenophilia: the more immigrants the better, as they provide valuable labor and skills.
!!!Notes
''Autarky'':  the government should ensure that the world can provide all of its own goods and services and forbid the import of foreign goods.
''Laissez-faire'':  minimal or no government intervention in the market.
''Protectionist'':  the government should tax imports that threaten to displace the products of local manufacturers.
''Socialist'':  the market should be harnessed to ensure a state-determined minimal standard of living for all.
''State industry'':  the government should own or support specific industries important to the group.
''Communist'':  the state should control the economy, disbursing its products according to need and determined efficiency.
Governmental reform.
The memberships' important industries.
Religion in public life.
Gender roles and sexual mores.
Poverty among the group's membership.
Wealth redistribution.
Foreign relations.
Social hostility to the group's membership.
Military preparedness.
Secession.
Immigration and immigrants.
Culture of the group membership.
|!Name|!Body Type|h
|[[Ath |Alien:Ath]]|Exotic|
|[[Curiddl|Alien:Curiddl]]|Insectile|
|[[D'la |Alien:D'la]]|Reptilian|
|[[Duilin |Alien:Duilin]]|Reptilian|
|[[Fuin |Alien:Fuin]]|Hybrid: Avian and Exotic|
|[[Gen |Alien:Gen]]|Insectile|
|[[Hin |Alien:Hin]]|Hybrid: Avian and Insectile|
|[[Lipibba|Alien:Lipibba]]|Insectile|
|[[Mirriar|Alien:Mirriar]]|Reptilian|
|[[Sall |Alien:Sall]]|Exotic|
|!Name      |Ath |
|!Body Type |Exotic|
!!!Distinguishing Features
* 13 tentacles
* Chainsaw-like mouthparts or claws
!!!Notes
|!Name      |Curiddl|
|!Body Type |Insectile|
!!!Distinguishing Features
* Chewing mouthparts
* Sucking mouthparts
!!!Notes
|!Name      |D'la |
|!Body Type |Reptilian|
!!!Distinguishing Features
* Furred
* Body is patterned with both scales and hide
!!!Notes
|!Name      |Duilin |
|!Body Type |Reptilian|
!!!Distinguishing Features
* Hide is damp and slimy
* Strong swimmer
!!!Notes
|!Name      |Fuin |
|!Body Type |Hybrid: Avian and Exotic|
!!!Distinguishing Features
* Exhales flame or other toxic substance
* Natural laser emitters
!!!Notes
|!Name      |Gen |
|!Body Type |Insectile|
!!!Distinguishing Features
* Always encountered in groups
* Chewing mouthparts
!!!Notes
|!Name      |Hin |
|!Body Type |Hybrid: Avian and Insectile|
!!!Distinguishing Features
* Has valuable or delicious eggs
* Lives in hives led by a queen
!!!Notes
|!Name      |Lipibba|
|!Body Type |Insectile|
!!!Distinguishing Features
* No mouth; adult form lives only to reproduce
* Prefers subterranean environments
!!!Notes
|!Name      |Mirriar|
|!Body Type |Reptilian|
!!!Distinguishing Features
* Horns or body spikes
* Bellowing vocalization
!!!Notes
|!Name      |Sall |
|!Body Type |Exotic|
!!!Distinguishing Features
* Amoeba-like body
* Rocklike body
!!!Notes
''Insectile'': Insectile aliens are usually possessed of chitinous "skin" and one or more pairs of compound eyes. Membranous wings aren’t unknown, but are probably vestigial and useless on all but the smallest or lightest aliens. Insectile aliens might have sucking mouthparts if their primary food source is plant sap- or blood- or might use chewing mandibles instead for a more solid diet. Insectile aliens that function as a hive collective are something of a classic trope, but there’s no reason that a species can’t instead take after more solitary hunting insects such as beetles or spiders.
''Reptilian'': Reptilian aliens can range from the classic "lizard man" look to a more subtle combination of pebble-scaled skin, membrane frills, broad bodies, cold-bloodedness, nictitating membranes, an exceptional sense of smell, thick claws, powerful builds, sharp teeth, and fine scales. Bodies may be broad and thick like that of a lizard, or perhaps sinuous like that of a snake. Reptilian aliens might be found especially on damp, watery worlds, and might be outright amphibious over all or part of their life spans.
''Hybrid''
''Exotic'': Exotic aliens are built out of parts and materials that aren't normally found in Terran life forms. A humanoid might be composed out of a kind of organic plastic that makes up much of their home planet's biochemistry, or be composed of an intricate array of interlocking crystals and woody organic elements. You should pick one or more materials that aren't normally part of an animal's body and have them play a major role in the alien's biology. As a consequence, this kind of alien is probably highly dependent upon their home world for food and other biological necessities. If not, they likely spend a lot of effort synthesizing vital materials out of local supplies.
!usage
{{{[img[StarMap]]}}}
[img[StarMap]]
!notes
Star map for sector Themis Delta
!type
image/png
!file

!url

!data
data:image/png;base64,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
System:XANTHIPPE
39,47,39,32,54,32,54,47,74,50,74,60,17,60,17,50,39,47
----
System:ACTAIA
174,47,174,32,189,32,189,47,200,50,200,60,161,60,161,50,174,47
----
System:MENA
241,85,241,70,256,70,256,85,260,88,260,98,234,98,234,88,241,85
----
System:RABANI
511,85,511,70,526,70,526,85,537,88,537,98,498,98,498,88,511,85
----
System:PODARCOS
39,125,39,110,54,110,54,125,71,128,71,138,20,138,20,128,39,125
----
System:MALIKA
511,163,511,148,526,148,526,163,537,166,537,176,498,176,498,166,511,163
----
System:BATIZ
106,241,106,226,121,226,121,241,128,244,128,254,96,254,96,244,106,241
----
System:IZAZKUN
174,203,174,188,189,188,189,203,203,206,203,216,158,216,158,206,174,203
----
System:BUENO
309,203,309,188,324,188,324,203,331,206,331,216,299,216,299,206,309,203
----
System:BAANO
444,203,444,188,459,188,459,203,466,206,466,216,434,216,434,206,444,203
----
System:ADRASTUS
444,281,444,266,459,266,459,281,476,284,476,294,425,294,425,284,444,281
----
System:HREFNA
511,319,511,304,526,304,526,319,537,322,537,332,498,332,498,322,511,319
----
System:HEM
39,437,39,422,54,422,54,437,55,440,55,450,35,450,35,440,39,437
----
System:GIBERAU
106,475,106,460,121,460,121,475,135,478,135,488,90,488,90,478,106,475
----
System:SIGRID
174,437,174,422,189,422,189,437,200,440,200,450,161,450,161,440,174,437
----
System:THURID
241,553,241,538,256,538,256,553,267,556,267,566,228,566,228,556,241,553
----
System:STHENELOS
309,515,309,500,324,500,324,515,344,518,344,528,287,528,287,518,309,515
----
System:AL-ASMARI
444,515,444,500,459,500,459,515,479,518,479,528,422,528,422,518,444,515
----
System:CAIO
376,631,376,616,391,616,391,631,395,634,395,644,369,644,369,634,376,631
----
System:ARNORA
444,593,444,578,459,578,459,593,470,596,470,606,431,606,431,596,444,593
----
System:ABELZADA
174,671,174,656,189,656,189,671,206,674,206,684,155,684,155,674,174,671
----
System:DUANY
241,709,241,694,256,694,256,709,263,712,263,722,231,722,231,712,241,709
----
System:THORKATLA
376,709,376,694,391,694,391,709,411,712,411,722,354,722,354,712,376,709
----
System:EPISTROPHES
444,671,444,656,459,656,459,671,485,674,485,684,416,684,416,674,444,671
----
System:CLAVIJERO
39,749,39,734,54,734,54,749,74,752,74,762,17,762,17,752,39,749
----
System:KARYOTI
174,749,174,734,189,734,189,749,203,752,203,762,158,762,158,752,174,749
----
System:CRATYLUS
309,749,309,734,324,734,324,749,341,752,341,762,290,762,290,752,309,749
----
System:VALERO
444,749,444,734,459,734,459,749,470,752,470,762,431,762,431,752,444,749
/%
!info
|Name|ToggleRightSidebar|
|Source|http://www.TiddlyTools.com/#ToggleRightSidebar|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|show/hide right sidebar (SideBarOptions)|
Usage
<<<
{{{
<<tiddler ToggleRightSidebar>>
<<tiddler ToggleRightSidebar with: label tooltip>>
}}}
Try it: <<tiddler ToggleRightSidebar##show
	with: {{config.options.chkShowRightSidebar?'►':'◄'}}>>
<<<
Configuration:
<<<
copy/paste the following settings into a tiddler tagged with <<tag systemConfig>> and then modify the values to suit your preferences:
{{{
config.options.chkShowRightSidebar=true;
config.options.txtToggleRightSideBarLabelShow="◄";
config.options.txtToggleRightSideBarLabelHide="►";
}}}
<<<
!end
!show
<<tiddler {{
	var co=config.options;
	if (co.chkShowRightSidebar===undefined) co.chkShowRightSidebar=true;
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
		sb.style.display=co.chkShowRightSidebar?'block':'none';
		da.style.marginRight=co.chkShowRightSidebar?'':'1em';
	}
'';}}>><html><nowiki><a href='javascript:;' title="$2"
onmouseover="
	this.href='javascript:void(eval(decodeURIComponent(%22(function(){try{('
	+encodeURIComponent(encodeURIComponent(this.onclick))
	+')()}catch(e){alert(e.description?e.description:e.toString())}})()%22)))';"
onclick="
	var co=config.options;
	var opt='chkShowRightSidebar';
	var show=co[opt]=!co[opt];
	var sb=document.getElementById('sidebar');
	var da=document.getElementById('displayArea');
	if (sb) {
		sb.style.display=show?'block':'none';
		da.style.marginRight=show?'':'1em';
	}
	saveOptionCookie(opt);
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	if (this.innerHTML==labelShow||this.innerHTML==labelHide) 
		this.innerHTML=show?labelHide:labelShow;
	this.title=(show?'hide':'show')+' right sidebar';
	var sm=document.getElementById('storyMenu');
	if (sm) config.refreshers.content(sm);
	return false;
">$1</a></html>
!end
%/<<tiddler {{
	var src='ToggleRightSidebar';
	src+(tiddler&&tiddler.title==src?'##info':'##show');
}} with: {{
	var co=config.options;
	var labelShow=co.txtToggleRightSideBarLabelShow||'&#x25C4;';
	var labelHide=co.txtToggleRightSideBarLabelHide||'&#x25BA;';
	'$1'!='$'+'1'?'$1':(co.chkShowRightSidebar?labelHide:labelShow);
}} {{
	var tip=(config.options.chkShowRightSidebar?'hide':'show')+' right sidebar';
	'$2'!='$'+'2'?'$2':tip;
}}>>
config.options.chkShowRightSidebar=false;
config.options.txtToggleRightSideBarLabelShow="◄";
config.options.txtToggleRightSideBarLabelHide="►";