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]];}

#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]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.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]];}

#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 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.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:0em 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 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 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 0em;}
.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 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 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 0em 14em;}

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

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

.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:0em 0.25em; padding:0em 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:0px 3px 0px 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 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

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

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.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 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 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 use a logographic writing system and 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;}

.htmlarea .toolbarHA table {border:1px solid ButtonFace; margin:0em 0em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<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 closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></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 +saveTiddler -cancelTiddler deleteTiddler'></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'></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
//\Ad*ven"tur*er\, n. One who adventures; as, the merchant adventurers; one who seeks his fortune in new and hazardous or perilous enterprises.//

An adventurer is unique among other classes because she is ultimately diverse and can do anything other classes can, just not so well. The adventurer class is more of a special construct that allows creation of interesting and balanced multiclass characters than it is a one's choice how to live her life.

''Adventures'': As would name suggest, the adventurers gladly go on adventures, and that's because they usually pick adventuring classes (as opposed to NPC classes which are far pettier). Each adventurer's reason to go on adventures will vary greatly, because there are literally thousands of possible class combinations and each one will have different motivation to seek thrills.

''Characteristics'': An adventurer possesses a special ability to mimic other classes. However, contrary to what the name 'imitation' suggests, an adventurer actually is member of those classes. Gadgeteers are treated in the same respect or awe as adventurers who imitate gadgeteers, and few can actually tell the difference between such characters.

''Alignment'': Adventurers can be of any alignment and there are no patterns or favorites here, but each adventurer's choice heavily depends on her chosen classes, especially if one or more of classes she wished to imitate have alignment restrictions. The classes that force an adventurer into specific mindset are knight (any lawful) and nexus (any chaotic).

''Background'': Adventurers can hail from just any realm and they walk all paths of life. However, the more unusual combination of classes an adventurer chooses, the more unusual her story is.

''Races'': Each race can sprout adventurers and each adventurers of each race have their favorable 'picks' when it comes to choose classes.

''Other Classes'': Adventurer treats other classes as members of those classes adventurer imitates, but she also usually values independence and resourcefulness over sheer power and single-minded characters.

''Starting Age'': Highest of any emulated class.

''Starting Gold'': Highest of any emulated class.

!!Game Rule Information
Adventurers have the following game statistics.

''Alignment'': Any. 
''Hit Points per Level'': 1d4* 
''Skill Points per Level'': 4 + Int modifier.* 

''Class Skills'': No skills are the adventurer's class skills.*
|!Level |!BAB* |!Fort* |!Ref* |!Will* |!2 Class Imitation |!3 Class Imitation |
|1st |+0 |+0 |+0 |+0 |Bonus feat, defiant  |Bonus feat, defiant |
|2nd |+1 |+0 |+0 |+0 |Imitation (1st class) |Imitation (1st class) |
|3rd |+1 |+1 |+1 |+1 |Imitation (1st and 2nd class) |Imitation (2nd class) |
|4th |+2 |+1 |+1 |+1 |Imitation (2nd class) |Imitation (3rd class) |
|5th |+2 |+1 |+1 |+1 |Imitation (1st and 2nd class) |Imitation (1st class) |
|6th |+3 |+2 |+2 |+2 |Imitation (1st class) |Imitation (2nd and 3rd class) |
|7th |+3 |+2 |+2 |+2 |Imitation (2nd class) |Imitation (1st class) |
|8th |+4 |+2 |+2 |+2 |Imitation (1st and 2nd class) |Imitation (2nd and 3rd class) |
|9th |+4 |+3 |+3 |+3 |Imitation (1st class) |Imitation (1st class) |
|10th |+5 |+3 |+3 |+3 |Imitation (2nd class) |Imitation (2nd and 3rd class) |
|11th |+5 |+3 |+3 |+3 |Imitation (1st and 2nd class) |Imitation (1st class) |
|12th |+6/+1 |+4 |+4 |+4 |Imitation (1st class) |Imitation (2nd and 3rd class) |
|13th |+6/+1 |+4 |+4 |+4 |Imitation (2nd class) |Imitation (1st class) |
|14th |+7/+2 |+4 |+4 |+4 |Imitation (1st and 2nd class) |Imitation (2nd and 3rd class) |
|15th |+7/+2 |+5 |+5 |+5 |Imitation (1st class) |Imitation (1st class) |
|16th |+8/+3 |+5 |+5 |+5 |Imitation (2nd class) |Imitation (2nd and 3rd class) |
|17th |+8/+3 |+5 |+5 |+5 |Imitation (1st and 2nd class) |Imitation (1st class) |
|18th |+9/+4 |+6 |+6 |+6 |Imitation (1st class) |Imitation (2nd and 3rd class) |
|19th |+9/+4 |+6 |+6 |+6 |Imitation (2nd class) |Imitation (1st class) |
|20th |+10/+5 |+6 |+6 |+6 |Imitation (1st and 2nd class) |Imitation (2nd and 3rd class) |
|>|>|>|>|>|>|!*These values may change depending on defiant ability. |

!!Class Features
All of the following are class features of the adventurer.

''Weapon and Armor Proficiency'': An adventurer is proficient with all simple weapons and light armors but no shields. In addition, at 2nd level she gains all weapon and armor proficiencies of all classes she imitates.

''Bonus Feat'': An adventurer gains a bonus feat. This can be any feat that doesn't have any others feats as prerequisites.

''Defiant'': Despite the fact that adventurer gains first abilities of classes she imitates at 2nd level, she must choose her classes at 1st level, because that choice determines her hit dice and other features from the beginning.

''Class Skills'': If any skill is on list of any class adventurer imitates, it is a class skill for adventurer.

''Skill Points per Level'': Adventurer's skills points per level are initially 4 + Int modifier, but in reality it is equal to sum of skill points from both of her classes divided by 2 or 3 (plus Int modifier), depending on number of classes she imitates (round down). For example, an adventurer who imitates gadgeteer, fighter, and skirmisher gains (6+4+4)/3, which is 4 + Int skill points per level. At 1st level she gains 4 times that amount, as usual.

''Hit Dice'': Adventurer's hit dice is initially d4, but in reality it depends on the HD of imitated classes. If an adventurer imitates 2 classes use the 1st table below. If she imitates 3 classes, add her hit dice together (for example, d4+d4+d8 = 16), divide by 3, and compare to 2nd table.
|!HD |!d4 |!d6 |!d8 |!d10 |!d12 |
|!d4 |d4 |d4* |d6 |d6* |d8 |
|!d6 |d4* |d6 |d6* |d8 |d8* |
|!d8 |d6 |d6* |d8 |d8* |d10 |
|!d10 |d6* |d8 |d8* |d10 |d10* |
|!d12 |d8 |d8* |d10 |d10* |d12 |
|>|>|!Adventurer's New HD |>|>|!Result of equation |
|>|>|d4 |>|>|4 |
|>|>|d4* |>|>|4.66 or 5.33 |
|>|>|d6 |>|>|6 |
|>|>|d6* |>|>|6.66 or 7.33 |
|>|>|d8 |>|>|8 |
|>|>|d8* |>|>|8.66 or 9.33 |
|>|>|d10 |>|>|10 |
|>|>|d10* |>|>|10.66 or 11.33 |
|>|>|d12 |>|>|12 |
|>|>|>|>|>|!*An adventurer with this Hit Die gains the Tough ability. |

''Base Attack Bonus'': To determine adventurer's BAB, use the table below.
|!BAB of 2 classes |!Adventurer's BAB |
|Poor + Poor |Poor |
|Poor + Medium |Poor* |
|Poor + Good |Medium |
|Medium + Good |Medium* |
|Good + Good |Good |
|!BAB of 3 classes |!Adventurer's BAB |
|Poor + Poor + Poor |Poor |
|Poor + Poor + Medium |Poor* |
|Poor + Poor + Good |Medium |
|Poor + Medium + Medium |Medium |
|Poor + Medium + Good |Medium |
|Poor + Good + Good |Medium* |
|Medium + Medium + Medium |Medium |
|Medium + Medium + Good |Medium* |
|Medium + Good + Good |Good |
|Good + Good + Good |Good |
|>|!*An adventurer with this Base Attack Bonus gains the Combat Training ability. |

''Saving Throws'': Use table below to determine adventurer's saves, and resolve this ability for each saving throw separately.
|!Save of 2 classes |!Adventurer's save |
|Weak + Weak |Weak |
|Weak + Good |Weak* |
|Good + Good |Good |
|!Save of 3 classes |!Adventurer's save |
|Weak + Weak + Weak |Weak |
|Weak + Weak + Good |Weak* |
|Weak + Good + Good |Good |
|Good + Good + Good |Good |
|*An adventurer with this save gains the Resistant ability. |
//Combat Training//: Beginning with 7th level, the adventurer's Base Attack Bonus improves by +1. This bonus increases to +2 at 13th and to +3 at 19th adventurer levels.

//Resistant//: An adventurer gains +1 bonus on all saving throws in which some of her imitated classes are weak and the others are strong. This bonus increases to +2 at 10th and to +3 at 19th adventurer levels.

//Tough//: An adventurer gains +1 hit point, and additional 1 hit point for each odd adventurer level (2 hp at 3rd level, 3 hp at 5th level, and so on).

''Imitation'': At 2nd level, an adventurer chooses 2 or 3 ultimate classes other than adventurer class. If she chose 2 classes, use 1st table with special abilities. If she chose 3 classes, use 2nd table. By the time she advances to 20th adventurer level, she will be either imitating 13 levels of 2 classes or 9 levels of 3 classes. To choose a class, an adventurer must meet all alignment requirements (if any). Adventurer specializes in following the paths of other classes but does so less efficiently. At each level, she gains all special abilities of some (or all) of the chosen classes (2 or 3), including spells and weapon and armor proficiencies. Levels of adventurer and classes she imitates stack for the purpose of determining what special abilities she gets. Each time she gains levels in adventurer class and next steps in imitation ability, she adds special abilities of her chosen classes as if she gained levels in those classes. Once the classes are chosen, they cannot be changed. An adventurer is considered a member of all the classes she imitates. She can also multiclass with the classes she already imitates, but it's a rare choice since most abilities overlap if taken more than once.

!!Epic Adventurer
The epic adventurer is apotheosis of diversity, using most of her classes' abilities with ease.
|!Level |!2 Class Imitation |!3 Class Imitation |
|21st |Imitation (1st class) |Imitation (1st class) |
|22nd |Imitation (2nd class) |Imitation (2nd and 3rd class) |
|23rd |Imitation (1st and 2nd class) |Imitation (1st class) |
|24th |Imitation (1st class) |Imitation (2nd and 3rd class) |
|25th |Imitation (2nd class) |Imitation (1st class) |
|26th |Imitation (1st and 2nd class) |Imitation (2nd and 3rd class) |
|27th |Imitation (1st class) |Imitation (1st class) |
|28th |Imitation (2nd class) |Imitation (2nd and 3rd class) |
|29th |Imitation (1st and 2nd class) |Imitation (1st class) |
|30th |Imitation (1st class) |Imitation (2nd and 3rd class) |

''Imitation'': An epic adventurer continues to imitate higher and higher levels of her classes, with the rate of 2/3 levels if she imitates 2 classes, and 1/2 if she imitates 3 classes. 
//\Brute\, n. A brutal person; a savage in heart or manners; an unfeeling or coarse person.//

!!Game Rule Information
Brute have the following game statistics.

''Alignment'': Any. 

''Hit Points per Level'': 1d12
''Skill Points per Level'': 2 + Int modifier.

''Class Skills'': The brute's class skills (and the key ability for each skill) are Balance (Dex), Climb (Str), Craft (Int), Handle Animal (Cha), Intimidate (Cha), Jump (Str), Listen (Wis), Ride (Dex), Spot (Wis), Survival (Wis), Swim (Str), and Use Rope (Dex).
|!Level |!BAB |!Fort |!Ref |!Will |!Special |
|1st |+1 |+2 |+0 |+0 |Style |
|2nd |+2 |+3 |+0 |+0 |Inspiration Pool, Untamed |
|3rd |+3 |+3 |+1 |+1 |Rough +1 |
|4th |+4 |+4 |+1 |+1 |Style (1st step) |
|5th |+5 |+4 |+1 |+1 |- |
|6th |+6/+1 |+5 |+2 |+2 |Untamed |
|7th |+7/+2 |+5 |+2 |+2 |Rough +2 |
|8th |+8/+3 |+6 |+2 |+2 |Style (2nd step) |
|9th |+9/+4 |+6 |+3 |+3 |- |
|10th |+10/+5 |+7 |+3 |+3 |Untamed |
|11th |+11/+6/+1 |+7 |+3 |+3 |Rough +3 |
|12th |+12/+7/+2 |+8 |+4 |+4 |Style (3rd step) |
|13th |+13/+8/+3 |+8 |+4 |+4 |- |
|14th |+14/+9/+4 |+9 |+4 |+4 |Untamed |
|15th |+15/+10/+5 |+9 |+5 |+5 |Rough +4 |
|16th |+16/+11/+6/+1 |+10 |+5 |+5 |Style (4th step) |
|17th |+17/+12/+7/+2 |+10 |+5 |+5 |- |
|18th |+18/+13/+8/+3 |+11 |+6 |+6 |Untamed |
|19th |+19/+14/+9/+4 |+11 |+6 |+6 |Rough +5 |
|20th |+20/+15/+10/+5 |+12 |+6 |+6 |Style (5th step) |

!!Class Features
All of the following are class features of the brute.

''Weapon and Armor Proficiency'': A brute is proficient with basic weapons, any two weapon groups, light armor, and medium armor.

''Style'': At 1st level, each brute chooses a staple style that represents his self disconnected from the typical. Available styles are: bonded, brawler, collector, exultant, frenzied, marked, or rager. A brute can use his style ability once per day at level one. In addition, he's granted an extra use per day for every four levels of brute he has gained. //Even after gaining additional uses of your style ability, you can't activate it more then once per encounter.// Activating a style is a swift action and does not provoke attacks of opportunity. Any styles marked '//Fatiguing.//' cause the brute to be fatigued until the end of the encounter after their activated ability ends.

''Bonded (Ex)''
A brute can make a bond of strength with another character (if that chacacter is willing) by letting a small amount of blood. This character is referred to as his bond. At any given time a brute can only have one blood bond. A brute can can only activate this ability if his bond is less than 30 feet away. When this style is active both the brute and his bond temporarily gain a +2 bonus to Strength and Dexterity, and a +1 bonus on saving throws; whenever a brute or his bond suffers hit point damage, half of that damage is transferred to the other one instead. An activated blood bond lasts for a number of rounds equal to 3 + the brute's Charisma modifier. The bond is severed if his bond dies, or if he betrays the brute. Whenever the brute gains a new bond, the blood bond and all related abilities begin to work one week from the blood letting.

* //Combat Link (Ex)//: At 4th level, whenever a brute and his brother are within 5 feet of each other (at adjacent squares) and neither of them is flat-footed or helpless, each gains a +2 dodge bonus to AC or a +2 bonus to attack rolls. In addition, the brute can spend one inspiration point as free action to double this bonus for one round.
* //What I'm Thinking (Ex)//: At 8th level, a brute and his brother can convey secret messages between thewselves in conversation without a Bluff check. If someone attempts a Sense Motive check on a message the DC is 30. This ability is always in effect as long as the brute and his brother are within 30 ft.
* //Greater Bond (Ex)//: At 12th level, a brute's and his brother's bonuses to Strength and Dexterity during his blood bond each increase to +4, and their bonus on saving throws increases to +2.
* //Fierce Team (Ex)//: At 16th level, whenever a brute and his brother flank the same enemy they gain a +4 circumstance bonus to confirm any critical hits on that enemy.
* //True Bond (Ex)//: At 20th level, a brute's and his brother's bonuses to Strength and Dexterity during his blood bond each increase to +6, and their bonus on saving throws increases to +3.

''Brawler (Ex)''
-

''Collector (Ex)''
A brute believes that collecting fragments of defeated opponents grants him some part of their strength and power. A brute might harvest ears, teeth, hair, or some item of high significance, and fashion them into necklaces, belts, or bracelets. When this style is active the brute temporarily gains a +2 bonus to Strength, Dexterity, and Wisdom, and his land speed increases by 10 feet. This style ability lasts for a number of rounds equal to 3 + the brute's increased Wisdom modifier. If a brute does not have direct access to his collection he cannot use any fetish abilities unless he regains it or begins a new one. If a brute chooses to use his style more than once per day he must have at least as many collected items as times he activates it. One brute's collection is useless to another brute, but can be treated as a part of a defeated foe, should the brute be slain.

* //Faith in Victory (Ex)//: At 4th level, a brute becomes immune to fear effects while his style ability is active.
* //Talisman (Ex)//: At 8th level, a brute can shake off the blows of his enemies. As a full-round action, he can concentrate and restore a number of hit points equal to twice his brute level. This ability may only be used once per day.
* //Greater Collection (Ex)//: At 12th level, a brute's bonuses to Strength, Dexterity and Wisdom each increase to +4, and his speed bonus increases to +20 while his fetish ability is active.
* //Oppressive Presence (Ex)//: At 16th level, whenever a brute is under the effect of his style ability, each opponent trying to attack him in melee must make a successful Will save (DC 10 + 1/2 the brute's class level + his Wisdom bonus) or take a -6 penalty on attack rolls against the brute for as long as his style ability is active. On successful save, an opponent is immune to this ability for 24 hours. This is a fear effect.
* //Complete Collection (Ex)//: At 20th level, a brute's bonuses to Strength, Dexterity and Wisdom each increase to +6, and his speed bonus increases to +30 while his style ability is active.

''Exultant (Ex)''
A brute can enter state of fanatic exultation. In this state, a brute temporarily gains +4 bonus on Charisma, and can roar with fury as a standard action each round. If he does, opponents within 60 feet who fail Will saving throw (DC 10 + 1/2 brute's level + brute's (newly increased) Cha modifier) are shaken for 1d6 rounds and take 1 point of non-lethal damage per brute level. A brute can opt not to deal damage if he wishes so. This is a fear effect. Exultation lasts for a number of rounds equal to 3 + the brute's (newly increased) Charisma modifier. //Fatiguing.//

* //Battle Yell (Ex)//: At 4th level, brute's shouting not only scares enemies, but also encourages allies. Whenever he shouts, all allies within 60 feet gain +4 morale bonus against fear effects and +1 morale bonus on attack rolls against all creatures shaken, frightened, or panicked by a shout.
* //Howl (Ex)//: At 8th level, a brute can scream a bone-chilling howl if he spends four inspiration points as a full-round action and is under effects of exultation. Opponents within 60 feet who fail Will saving throw (DC 10 + 1/2 brute's level + brute's Charisma modifier) are frightened of brute for 2d6 rounds. Creatures with twice or more hit dice than brute's level are immune to howl. This in mind-affecting, sonic effect.
* //Piercing Yell (Su)//: At 12th level, a brute can produce a painful scream if he spends four inspiration points as a full-round action and is under effects of exultation. Opponents within 60 feet who fail Fortitude saving throw (DC 10 + 1/2 brute's level + brute's Charisma modifier) become deafened for a number of minutes equal to brute's level. This is a sonic effect.
* //Banshee Scream (Su)//: At 16th level, a brute can prematurely end his exultation to produce a devastating sonic wave as a standard action. The wave is cone 30 feet long and deals 1d6 points of sonic damage per brute level to all creatures inside the area of effect and shakens all affected for 1d6 rounds. Any affected creature can attempt a Reflex save to half the damage (DC is 10 + half brute's levels + brute's Charisma modifier) and ignore shaken condition.
* //Dragon Roar (Ex)//: At 20th level, a brute can scream a bloodcurdling yell if he spends four inspiration points as a full-round action and is under effects of exultation. Opponents within 60 feet who fail Will saving throw (DC 10 + 1/2 brute's level + brute's Charisma modifier) are panicked by the brute for 3d6 rounds. Creatures with twice or more hit dice than the brute are immune to his dragon roar.

''Frenzied (Ex)''
A brute can fly into a screaming frenzy. When a brute enters frenzy, he temporarily gains a +4 bonus to Dexterity, +2 bonus to damage and +4 bonus to confirm a critical hit. While in frenzy, the brute can make one extra attack in a round at his highest base attack bonus, but this attack, as well as all other attacks he makes in the same round, is at -2 penalty. This penalty applies until the brute's next turn. While in frenzy, a brute cannot use any skills that require patience, focus, or a complex thought. He cannot take any action or option that increases his AC at the cost of attack bonus (such as total defense action). A fit of frenzy lasts for a number of rounds equal to 5 + the character's Constitution modifier. A brute may prematurely end his frenzy. //Fatiguing.//

* //Bloodthirsty (Ex)//: At 4th level, when the brute is in frenzy, whenever he score a critical hit he gains an amount of Temporary Hit Points equal to double his brute level. Temporary hit points last till end of frenzy.
* //Whirling Frenzy (Ex)//: At 8th level, when the brute is in frenzy, he can as free action spend 4 inspiration points and make two extra attacks in a round instead of one. Both extra attacks are at his highest base attack bonus, but all his attacks until next round suffer -2 penalty.
* //Greater Frenzy (Ex)//: At 12th level, a brute's bonus to Dexterity during his frenzy increases to +6, bonus to damage to +4 and bonus to confirm a critical hit to +6.
* //Tireless Frenzy (Ex)//: At 16th level, a brute is no longer fatigued at the end of his frenzy.
* Mighty Frenzy (Ex): At 20th level, a brute's bonus to Dexterity during his frenzy increases to +8, to damage to +6 and bonus to confirm a critical hit to +8.

''Marked (Su)''
A brute's body is covered with ritual tattoos that he believe grants him ancestral favor and protects him from ill. The more powerful a brute is in combat, the more tattoos he has, and the more prestige in the eyes of fellow warriors. When this style is active the brute temporarily gains +6 luck bonus to AC, +2 morale bonus on all saving throws and fast healing 2. Used tattoos last for a number of rounds equal to 10 + the brute's Constitution modifier. A brute cannot use this ability if he is wearing armor and most of his body must be uncovered (details are left to player and DM), so he could display his tattoos.

* //Iron Skin (Ex)//: At 4th level, as a swift action a brute can spend 2 inspiration points and gain +4 natural armor bonus to AC until the beginning of next turn.
* //Shaman's Tattoo (Ex)//: At 8th level, when brute's tattoos are active, he also gains Spell Resistance equal to 5 + his brute levels.
* //Chieftain's Tattoo (Ex)//: At 12th level, while brute's tattoos are active, his bonus to AC increases to +8, his bonus to saves increases to +3, and fast healing increases to 3.
* //Withstand Elemental Fury (Ex)//: When a 16th level brute's tattoos are active, he also gains Cold and Fire resistance 15.
* //Warlord's Tattoo (Ex)//: At 20th level, while brute's tattoos are active, his bonus to AC increases to +10, his bonus to saves increases to +4, and fast healing increases to 4.

''Rager (Ex)''
A brute can empower himself with a wild fury. In a rage, a brute temporarily gains a +4 bonus to Strength, damage reduction 2/-, and a +2 morale bonus on Will saves, but he takes a -2 penalty to Armor Class. While raging, a brute cannot use any skills that require patience, focus, or a complex thought, nor can he cast spells or activate magic items that require a command word, a spell trigger (such as a wand), or spell completion (such as a scroll) to function. He cannot take any action or option that increases his AC at the cost of attack bonus (such as total defense action). A fit of rage lasts for a number of rounds equal to 5 + the character's Constitution modifier. A brute may prematurely end his rage. //Fatiguing.//

* //Indomitable (Ex)//: At 4th level, a brute becomes more resistant to all kinds of influence while raging. While in a rage, he every failed saving roll. Using this ability consumes 2 inspiration points.
* //Unstoppable Brute (Ex)//: At 8th level, when the brute is raging, at the end of each turn in which he receive at least 40 points of damage, his Damage Reduction grows by 2. This bonus is cumulative and lasts till end of the rage.
* //Greater Rage (Ex)//: At 12th level, a brute's bonus to Strength during his rage increases to +6, his damage reduction increases to 3/-, and his bonus on Will saves increases to +3. The penalty to AC remains at -2.
* //Tireless Rage (Ex)//: At 16th level, a brute is no longer fatigued at the end of his rage.
* //Mighty Rage (Ex)//: At 20th level, a brute's bonus to Strength during his rage increases to +8, his damage reduction improves to 4/-, and his morale bonus on Will saves increases to +4. The penalty to AC remains at -2.

''Inspiration Pool'': Brute  typicalities provide them unusual abilities. He gains an inspiration pool equal to twice his brute level. He can spend points from this pool to activate some Untamed abilities. In addition, he can spend 4 inspiration points to activate his style ability one additional time per day.

''Untamed'': At 2nd level, and every 4 levels thereafter, a brute gains a special ability of his choice from among the following options.

* //[[Totem Abilities]]//: A brute may choose one totem ability.
* //Burst of Speed (Ex)//: A brute can move faster for short periods of time. He can spend one inspiration point and increase his land speed by +30 ft. for one round as a free action.
* //Deadly Impetus (Ex)//: A brute can make good use of his momentum. When he charges he gains +1 bonus to damage per each 10 ft. cover during charge.
* //Devastating Hit (Ex)//: If a brute uses full-round action to make a single melee attack with two handed weapon and spend two inspiration points, he adds 1/2 his brute level to attack roll and his full brute level to damage.
* //Fierce Attack (Ex)//: Whenever a brute makes an attack, he can spend one inspiration point and add 3 points of damage (this damage is never multiplied by any effect). If he spends more inspiration points, this bonus grows by 3 per each point.  These points must be spent before he makes his attack roll, and are lost if he misses.
* //Fists of Fury (Ex)//: A brute han spent his whole life fighting with bare hands. He adds 1/4 his brute level to his unarmed damage.
* //Health of the Ox (Ex)//: Whenever a brute makes a Fortitude save, he can spend one inspiration point and gain a +3 bonus on that save. If he spend more inspiration points, his bonus grows by 3 per each point.
* //Rabid (Ex)//: Whenever a brute makes a Will save, he can spend one inspiration point and gain a +3 bonus on that save. If he spend more inspiration points, his bonus grows by 3 per each point.
* //Shock Resistance (Ex)//: A brute's body is very resistant to pain and damage trauma. He is immune to death from massive damage. He is not immune to coup de grace, but gains +4 bonus on Fortitude save to avoid its effects.
* //Stampede (Ex)//: If a brute charges, he gains Damage Reduction 10/- against first successful attack against him that is made until the beginning of his next round.
* //Thick Hide (Ex)//: A brute gains the ability to ignore some damage from attacks. As a swift action he can spend one inspiration point and gain Damage Reduction 3/- until the beginning of his next turn. If he spend more inspiration points, his Damage Reduction grows by 3 per each point.
* //Tough as Nails (Ex)//: When a critical hit is scored on the brute, or if he suffers precision damage, there is a 25% chance that the critical hit or the precision damage are negated damage is instead rolled normally. If a brute is under another similar effect (such as fortified armor), this ability stacks.
* //Uncanny Dodge (Ex)//: A brute doesn't lower his defenses when fighting invisible opponents or when surprised. He retains his Dexterity bonus to AC (if any) even if he is caught flat-footed. He still loses his Dexterity bonus to AC if immobilized.

''Rough'': A brute is unaccustomed to termedly 'civilised' ways of saying things. At 3rd level, and every 4 levels thereafter, he gains +1 bonus against attempts to alter his attitude with the Diplomacy skill.

!!Epic Brute
An epic brute is a terror to behold. The very incarnation of rage, this furious warrior can cut his opponents to ribbons with awe-inspiring ease.
|!Level |!Special |
|21st |Rough +6 |
|22nd |Untamed |
|23rd |- |
|24th |Untamed |
|25th |Rough +7 |
|26th |Untamed |
|27th |- |
|28th |Untamed |
|29th |Rough +8 |
|30th |Untamed |

''Inspiration Pool'': The epic brute's inspiration pool is equal to twice his brute level.

''Rough'': An epic brute gains +1 bonus against attempts to alter his attitude with the Diplomacy skill at 21st level and every 4 levels thereafter (25th, 29th and so on).

''Untamed'': An epic brute gains extra special ability at 22nd level, and every 2 levels thereafter (24th, 26th, 28th, and so on). Whenever he gains such an ability, he can choose an epic feat or 2 non-epic feats instead. The list of available epic feats is same as in Epic Level Handbook.
/***
| Name|CloseOnCancelPlugin|
| Description|Closes the tiddler if you click new tiddler then cancel. Default behaviour is to leave it open|
| Version|3.0 ($Rev: 1845 $)|
| Date|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $|
| Source|http://mptw.tiddlyspot.com/#CloseOnCancelPlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.commands.cancelTiddler,{

	handler_orig_closeUnsaved: config.commands.cancelTiddler.handler,

	handler: function(event,src,title) {
		this.handler_orig_closeUnsaved(event,src,title);
		if (!store.tiddlerExists(title) && !store.isShadowTiddler(title))
			story.closeTiddler(title,true);
	 	return false;
	}

});

//}}}

//{{{
config.options.chkHttpReadOnly = false; // means web visitors can experiment with your site by clicking edit
config.options.chkInsertTabs = true;    // tab inserts a tab when editing a tiddler
config.views.wikified.defaultText = ""; // don't need message when a tiddler doesn't exist
config.views.editor.defaultText = "";   // don't need message when creating a new tiddler 
//}}}
OldStuff
//\Di*plo"ma*tist\, n. A person employed in, or skilled in, diplomacy; a diplomat.//

Game Rule Information
Diplomatists have the following game statistics. 

''Hit Points per Level'': 1d6
''Skill Points per Level'': 8 + Int modifier.

''Class Skills'': The diplomatist's class skills (and the key ability for each skill) are Appraise (Int), Balance (Dex), Bluff (Cha), Climb (Str), Craft (Int), Decipher Script (Int), Diplomacy (Cha), Disable Device (Int), Disguise (Cha), Escape Artist (Dex), Forgery (Int), Gather Information (Cha), Hide (Dex), Intimidate (Cha), Jump (Str), Knowledge (local) (Int), Listen (Wis), Move Silently (Dex), Open Lock (Dex), Perform (Cha), Profession (Wis), Search (Int), Sense Motive (Wis), Sleight of Hand (Dex), Spot (Wis), Swim (Str), Tumble (Dex), Use Magic Device (Cha), and Use Rope (Dex).
|!Level |!BAB |!Fort |!Ref |!Will |!Special |
|1st |+0 |+0 |+2 |+0 |Style (I) |
|2nd |+1 |+0 |+3 |+0 |Lesser trick |
|3rd |+2 |+1 |+3 |+1 |Style (II) |
|4th |+3 |+1 |+4 |+1 |Lesser trick |
|5th |+3 |+1 |+4 |+1 |Style (III) |
|6th |+4 |+2 |+5 |+2 |Lesser trick |
|7th |+5 |+2 |+5 |+2 |Style (IV) |
|8th |+6/+1 |+2 |+6 |+2 |Lesser trick |
|9th |+6/+1 |+3 |+6 |+3 |Style (V) |
|10th |+7/+2 |+3 |+7 |+3 |Lesser trick |
|11th |+8/+3 |+3 |+7 |+3 |Style (VI) |
|12th |+9/+4 |+4 |+8 |+4 |Greater trick |
|13th |+9/+4 |+4 |+8 |+4 |Style (VII) |
|14th |+10/+5 |+4 |+9 |+4 |Greater trick |
|15th |+11/+6/+1 |+5 |+9 |+5 |Style (VIII) |
|16th |+12/+7/+2 |+5 |+10 |+5 |Greater trick |
|17th |+12/+7/+2 |+5 |+10 |+5 |Style (IX) |
|18th |+13/+8/+3 |+6 |+11 |+6 |Greater trick |
|19th |+14/+9/+4 |+6 |+11 |+6 |Style (X) |
|20th |+15/+10/+5 |+6 |+12 |+6 |Greater trick |

!!Class Features
All of the following are class features of the diplomatist.

''Weapon and Armor Proficiency'': Diplomatists are proficient with basic weapons, any two weapon groups, and light armor.

''Style'': At 1st level and every 2 levels thereafter, a diplomatist chooses any one style and gains step she does not yet have. In order to take any step, a diplomatist must have all previous steps from the same path. For example, at 1st level, a diplomatist takes 1st step from assassin path. At 3rd level, she may take 2nd step from assassin path, or 1st step from any other path. The available paths are: assassin, expert, silvertongue, spy, stalker, and swashbuckler.

''Assassin''
* Sneak Attack (Ex): At 1st step, an assassin gains sneak attack +1d6. This bonus increases by +1d6 for every step of this path. Ranged sneak attacks can be performed from a distance equal to total Spot bonus * 5ft. Otherwise same as in Player's Handbook.
* Poisoner (Ex): At 2nd step, an assassin becomes trained in the use of poisons and doesn't risk accidentally poisoning herself when applying poison to a blade. She also gains +1 bonus on saves against poison.
* Silent Kill (Ex): At 3rd step, an assassin gains Exotic Weapon Proficiency feat with either shuriken, blowgun, or garrote (see Complete Adventurer). Player can, with the DM's permission, switch this to any other weapon suitable for silent killer-type character.
* Poison Craft (Ex): At 4th step, an assassin can create weak poisons from second-grade materials. Once per day, by spending 30 minutes and 1/10th gold, she can create one dose of any poison found in Dungeon Master Guide. No Craft check is necessary, but those poisons have DC lowered by 2. Poison loses its qualities after 24 hours.
* Death Strike (Ex): At 5th step, an assassin gains death strike ability. If an assassin studies his victim for 3 rounds (she can do it even if engaged in combat with that creature) and then makes a sneak attack with a weapon that successfully deals damage, she can opt to sacrifice all dice of sneak attack damage in an attempt to slay her target outright. If the victim of such an attack fails a Fortitude save (DC 10 + the number of sneak attack dice sacrificed + the diplomatist's Int modifier) against the effect, it dies. If the victim's saving throw succeeds, the attack is just a normal attack. Once the assassin has completed the 3 rounds of study, she must make the death strike within the next 3 rounds. If a death strike is attempted and fails (the victim makes her save) or if the assassin does not launch the attack within 3 rounds of completing the study, 3 new rounds of study are required before he can attempt another death strike.
* Poison Resistance (Ex): At 6th step, an assassin gains +3 bonus on saving throws against poisons.
* Poison Potency (Ex): At 7th step, an assassin adds +2 to DC of all poisons she crafts.
* Hidden Death (Su): At 8th step, all poisons created by assassin are undetectable with detect poison spell.
* Poison Resistance (Ex): At 9th step, an assassin gains +5 bonus on saving throws against poisons.
* Deep Wound (Ex): At 10th step, whenever an assassin makes a sneak attack that successfully deals damage, she can opt to sacrifice any number of sneak attack dice to increase the DC of any poison that is applied by this attack by 1 per die sacrificed. 

''Expert''
* Secrets of the Trade (Ex): At 1st step, an expert gains Skill Focus feat and can reroll any failed skill check once per day. At each next step, she gains another Skill Focus feat and one extra reroll per day.
* Apprenticeship (Ex): At 2nd step, whenever an expert is making a skill reroll, she adds +2 to its result.
* Athletic Agility (Ex): At 3rd step, an expert can use Dexterity in place of Strength when making Climb, Jump, or Swim checks.
* Jack of All Trades (Ex): At 4th step, an expert can use all skills untrained.
* Cool under Pressure (Ex): At 5th step, an expert can take 10 in stressing or dangerous situations when making a check of skill improved by Skill Focus, but only if the skill allows taking 10 at all.
* Renaissance Man (Ex): At 6th step, at the beginning of each day, an expert can move up to 2 Skill Focus feats from one skill to another.
* Thinker (Ex): At 7th step, an expert can use Intelligence in place of Wisdom when making skill checks.
* Skill Excellency (Ex): At 8th step, whenever an expert takes 10 on skill check, she gains +5 bonus on the skill check. Taking 20 on skill checks takes the diplomatist x5 more time, instead of x20 more time.
* No room for Error (Ex): At 9th step, whenever an expert rolls a natural result below 5 when making a skill check, treat the result as 5 instead.
* Absolute Skill Focus (Ex): At 10th step, whenever an expert is making a skill check with a Skill Focus feat applied to it, she take a +10 bonus on that check. If she does, she loses the feat after the check resolves. Skill Focus lost this way can be used again on next day. 

''Silvertongue''
* Full Confidence (Ex): At 1st step, a silvertongue gains an ability to add her Charisma bonus to any check, roll, or save, twice per day. She also learns one extra language. At each next step, she learns another language and can add her Charisma bonus two more time per day.
* Barter (Ex): At 2nd step, a silvertongue gains +2 bonus on all Diplomacy checks when buying or selling goods or when bribing others. In addition, she can use her skills to pay 10% less for any single item she buys in person, a number of times per day equal to 3 + her Charisma bonus. The discount cannot be greater than 100 gp per diplomatist level.
* Way with Words (Ex): At 3rd step, a silvertongue suffers only a -5 penalty when making rushed Diplomacy checks (see Player's Handbook, page 72), and when she is bluffing, the lie never provides more than a +5 bonus on opposed Sense Motive checks.
* Call Favor (Ex): At 4th step, once per week, a silvertongue may call in favor from someone she knows. She gains a NPC to her disposition of character level equal to half diplomatist's levels. The NPC will try to accomplish any task that is not suicidal, doesn't seriously affect her resources, and takes up to one day. Exact details on how does calling in favor looks like, who is this NPC, and how she is getting along with the task, are up to DM.
* Friends (Sp): At 5th step, a silvertongue can use charm person as a spell-like ability a number of timer per day equal to her Charisma bonus. Difficulty Class is 10 + half diplomatist's level + diplomatist's Charisma modifier. Caster level is equal to diplomatist's level.
* Draw Attention (Ex): At 6th step, a silvertongue can attempt to talk down opponent. As a standard action that does not provoke attack of opportunity she redirects creature's full attention to her. A creature can ignore the silvertongue if it makes successful Will saving throw or Concentration check (roll both and use better result) against opposed silvertongue's Diplomacy check. If it fails the check, the creature is not denied its actions but can only use them on itself or the silvertongue. This ability works for one full round, and may be maintained for any number of additional rounds, but at each consecutive round a creature gains another check and save, and with cumulative +2 bonus on both. This ability is language dependant and can only affect creatures with Intelligence score of 3 or more (it is not mind-affecting so can affect intelligent undead).
* Outpouring (Ex): At 7th step, a silvertongue can try again failed Diplomacy checks under any circumstances, but suffers a cumulative -2 penalty on all such retries.
* Best Pals (Sp): At 8th step, a silvertongue can use charm monster as a spell-like ability a number of timer per day equal to her Charisma bonus. Difficulty Class is 10 + half diplomatist's level + Charisma modifier. Caster level is equal to diplomatist's level.
* Untouchable (Ex): At 9th step, a silvertongue can convince a creature not to harm her. As a full round action that does not provoke attacks of opportunity, a silvertongue can convince the creature that she is somehow immune or invulnerable to that creature's actions, or that harming her is a really bad idea. A creature can ignore silvertongue's attempt if it makes successful Will saving throw check against an opposed Bluff check. If it fails the save, a silvertongue benefits from sanctuary spell against that creature. This ability works the same way the sanctuary does, but with duration until the end of encounter. This ability is language dependant and can only affect creatures with Intelligence score of 3 or more.
* Call Greater Favor (Ex): At 10th step, a silvertongue can use call favor ability 3 times per week (all 3 uses can be used at the same time or separately), and NPCs that answer the call have character levels equal to 2/3 of diplomatist's level. 

''Spy''
* Spying Sight (Ex): At 1st step, for five minutes, you gain a +4 bonus on Decipher Script, Spot, and Search checks. This ability can be used as many times per day as steps taken in Spy.
* Judge of Character (Ex): At 2nd step, a spy is very good at judging people. If she listens to anyone talking for at least 1 minute, she gains a +4 circumstance bonus on Diplomacy and Sense Motive checks against that person for one hour.
* Gather All Information (Ex): At 3rd step, using gather information skill takes a spy only one hour and she can repeat check without drawing attention.
* Secret Identity (Ex): At 4th step, spy's alignment and lies become undetectable by supernatural or magical means and she gains +4 bonus on Disguise checks.
* Mysterious Stranger (Sp): At 5th step, a spy has become adept at quickly switching from one identity to another. She can use alter self as a spell-like ability a number of times per day equal to her Charisma bonus. Caster level is equal to diplomatist's level.
* Double Agent (Ex): At 6th level, a spy undergoes a specific information gathering technique. Whenever she is affected by a spell or ability that allows someone else to read her thoughts or learn anything about the spy, she in turn gains the same benefits against the assailant. No saving throw against double agent is allowed and the assailant is unaware of this effect.
* License to Kill (Ex): At 7th step, a spy chooses an area roughly the size of small kingdom to be her area of operations. She is a sanctioned spy in that area and has full support of authorities for all activities regarding spying, including murder. Some people might be outside her jurisdiction, such as aristocracy, clergy, or diplomats. In addition, if a spy is on a mission sanctioned by her superior, she gains +2 morale bonus on attack rolls and skill checks that relate to the mission within her area of operations.
* Leave no Leads (Sp): At 8th step, a spy can make her presence unknown and leaving no traces of her activities. She can use modify memory as a spell-like ability at will, but only to erase memories of herself from the last 12 hours. Difficulty Class is 10 + half diplomatist's level + Charisma modifier. Any creature affected by this ability regains its memories after one week.
* Greater Spying Sight (Ex): At 9th step, a spy enjoys both effects of the spying sight ability for 5 minutes.
* Mind Blank (Su): At 10th step, a spy is protected by a mind blank spell. She can turn that effect off and on as a swift action. 

''Stalker''
* Superior Sneak (Ex): At 1st step, a stalker gains a +1 bonus on saving throws made to avoid traps and magic symbols, and a +1 dodge bonus to AC against attacks made by traps. This bonus improves by +1 at every next step. A stalker also ignores armor check penalties of light and medium armors and shields to Climb, Hide, and Move Silently skill checks.
* Trap Hinting (Ex): At 2nd step, a stalker shares her bonus on Reflex saves made to avoid traps and bonus to AC against attacks made by traps with all allies within 15 feet away from her.
* Improved Climbing (Ex): At 3rd step, a stalker gains climb speed equal to her base land speed.
* Reconnaissance (Ex): At 4th step, if a stalker studies small area, such as a street or a ship, for 10 minutes, she gains +2 competence bonus on all Climb, Disable Device, Disguise, Hide, Move Silently, and Search checks made within that area for the next 12 hours.
* Urban Camouflage (Ex): At 5th step, a stalker can use the Hide skill in any sort of urban terrain, even if the terrain doesn't grant cover or concealment.
* Urban Vanish (Ex): At 6th step, a stalker can use the Hide skill even while being observed while in any sort of urban terrain.
* Sense Concealment (Ex): At 7th step, a stalker automatically finds secret doors and traps when within 30 feet.
* Hide from Magic (Ex): At 8th step, a stalker gains unbeatable Spell Resistance against divination spells and effects.
* Perfect Sneak (Sp): At 9th step, a stalker can be completely quiet. She can use silence as a spell-like ability that affects only her, a number of times per day equal to her Dexterity bonus. Caster level is equal to diplomatist's level.
* Perfect Infiltration (Sp): At 10th step, a stalker can be virtually undetectable. She can use invisibility as a spell-like a number of times per day equal to her Dexterity bonus. Caster level is equal to diplomatist's level. 

''Swashbuckler''
* Canny Attack (Ex): At 1st step, a swashbuckler gains a fencing pool equal to number of steps in swashbuckler's path. He can assign his points from this pool to damage with finessable weapons (each invested fencing point increases damage dealt by 1). Reassigning fencing points its full-round action which doesn't provoke attacks of opportunity. Swashbuckler can have invested fencing points only when he is wearing light or no armor, and carries light or no load. He cannot invest in one ability more fencing points then he has steps in Swashbuckler's path.
* Smart Dodge (Ex): At 2nd step, a swashbuckler can invest fencing points in armor class. Each fencing point provides 1 dodge bonus to AC.
* Deadly Feint (Ex): At 3rd step, a swashbuckler's feints become more surprising and dangerously. Each point invested in this ability provides +2 bonus to feint bluff checks and increases damage dealt by swashbuckler to feinted opponent by 2. Bonus damage apply only to attacks made on or before his next found after feint.
* Clever Fencing (Ex): At 4th step, a swashbuckler fencing pool is enlarged by number of points equal to her Intelligence modifier.
* Confusing Maneuver (Ex): At 5th step, a swashbuckler by performing many light and rapid attacks can mislead his opponent. He must perform full attack action with -8 penalty to hit on each attack, but in next round he can feint his opponent as swift action. Each fencing point invested in this ability reduces penalty to hit by 1.
* Cheat the Death (Ex): At 6th step, a swashbuckler learns how evade the deadliest strikes. He gains 5% chance to turn critical hit hit he suffers into normal hit. In addition, he gains +1 bonus on saves against death effects. Each fencing point invested in this ability increases chance by 5%.
* Unusual Feint (Ex): At 7th step, a swashbuckler can easy perform other maneuvers while feinting. Whenever swashbuckler successfully feints his opponent he can attempt to disarm or trip him as free action. Each fencing point invested in this ability provides +2 bonus to disarm or trip check.
* Adaptable Style (Ex): At 8th step, a swashbuckler can reassign fencing points as move action.
* Quicker then Eye (Ex): At 9th step, a swashbuckler can use haste on self as spell-like ability times per day equal to his charisma modifier. Caster level is equal to diplomatist's level. Each fencing point invested in this ability extends duration of haste by 1 round.
* Touche! (Ex): At 10th step, a swashbuckler can perform devastating melee attack in vital spots of his opponent. A target must be vulnerable to critical hits and haven't concealment. Opponent must be feinted in previous round. A swashbuckler must perform one melee attack as full round action. If the victim of attack fails a Fortitude save it dies. DC is equal to 10+ 2 per each invested fencing point. If a victim makes his save, the attack is just a critical strike. 

''Lesser Trick'': At 2nd, 4th, 6th, 8th, and 10th levels, a diplomatist gains a special ability of her choice from among the options below.

* Bonus Feat : The diplomatist gains a bonus feat from the list below.
** //Player's Handbook : Acrobatic, Agile, Alertness, Combat Expertise (Improved Disarm, Improved Feint, Improved Trip), Combat Reflexes, Deceitful, Deft Hands, Diligent, Dodge (Mobility, Spring Attack), Improved Initiative, Improved Unarmed Strike, Investigator, Negotiator, Nimble Fingers, Persuasive, Quick Draw, Skill Focus, Stealthy, Weapon Finesse.//
** //Complete Warrior : Arterial Strike, Dash, Defensive Strike, Eyes in the Back of Your Head, Fleet of Foot, Flick of the Wrist, Hamstring, Improved Buckler Defense, Improved Combat Expertise, Prone Attack.//
** //Complete Adventurer : Appraise Magic Value, Ascetic Rogue, Brachiation, Combat Intuition, Danger Sense, Death Blow, Deft Opportunist, Deft Strike, Dive for Cover, Force of Personality, Goad, Hear the Unseen, Improved Diversion, Insightful Reflexes, Jack of All Trades, Open Minded, Obscure Lore, Quick Reconnoiter, Razing Strike, Staggering Strike, Tactile Trapsmith.//
** //New Feats : Amazing Sneak Attack, Center of Attention, Debilitating Strike, Disable Magic Trap, Globe Trotter, Fantastic Sneak Attack, Improved Reconnaissance, Incredible Sneak Attack, Irresistible Death Strike, Truly Untouchable, Weakening Strike.//
* Evasion (Ex): A diplomatist can avoid even magical and unusual attacks with great agility. If she makes a successful Reflex saving throw against an attack that normally deals half damage on a successful save, she instead takes no damage. Evasion can be used only if the diplomatist is wearing light armor or no armor. A helpless diplomatist does not gain the benefit of evasion.
* Finishing Blow (Ex): A diplomatist has learned to quickly and efficiency deal with helpless foes and can now perform a coup de grace attack against a helpless defender as a standard action without provoking an attack of opportunity.
* Heedful (Ex): A diplomatist adds her Wisdom bonus (if positive) to all Initiative checks. This is in addition to any Dexterity bonus she might have. To take heedful, diplomatist must have uncanny dodge ability.
* Superior Synergy (Ex): A diplomatist gains better synergy bonuses from her skills. Whenever a skill with 5 or more ranks grants +2 synergy bonus to other skill or ability, this bonus increases to +3 at 10 ranks, +4 at 15 ranks, and to +5 at 20 ranks.
* Trapfinding : A diplomatist can use the Search skill to locate difficult and magical traps. He can use the Search skill to locate traps when the task has a Difficulty Class higher than 20. Finding a nonmagical trap has a DC of at least 20, or higher if it is well hidden. Finding a magic trap has a DC of 25 + the level of the spell used to create it. In addition, the diplomatist can use the Disable Device skill to disarm magic traps. A magic trap generally has a DC of 25 + the level of the spell used to create it. A diplomatist who beats a trap's DC by 10 or more with a Disable Device check can study a trap, figure out how it works, and bypass it (with her party) without disarming it.
* Uncanny Dodge (Ex): A diplomatist doesn't lower his defenses when fighting invisible opponents or when surprised. She retains her Dexterity bonus to AC (if any) even if she is caught flat-footed or struck by an invisible attacker. However, she still loses her Dexterity bonus to AC if immobilized. 

''Greater Tricks'': At 12th, 14th, 16th, 18th, and 20th levels, a diplomatist gains a special ability of her choice from among the options below. She can choose lesser trick instead if she wishes so.

* Avoid Danger (Ex): A diplomatist can avoid (ignore) one attack directed at her. To do so, diplomatist must not be denied her Dexterity bonus to AC and move 5 feet in any direction except the direction from which the attack came. This ability can be used once per day. To take avoid danger, diplomatist must have defensive roll and improved uncanny dodge abilities.
* Careful Walking (Ex): A diplomatist does not provoke attacks of opportunity when walking through threatened areas. However, she still provokes attacks of opportunity when moving faster than with normal speed. To take careful walking, diplomatist must have Insightful Reaction.
* Defensive Roll (Ex): A diplomatist can roll with damage, reducing otherwise deadly blow to less harmful one. Same as in Player's Handbook.
* Daring Posture (Ex): A diplomatist knows how by her posture and talk provoke enemies to make mistakes and attack poorly. She adds her Charisma bonus (if positive) as a dodge bonus to AC against all opponents that have intelligence of 3 or more and can see and understand her. Creatures immune to mind-affecting effects ignore this AC bonus.
* Maximize Opportunity (Ex): A diplomatist adds her Dexterity bonus (if positive) to all damage rolls when making successful attack of opportunity.
* Improved Evasion (Ex): This ability works like evasion, except that while the diplomatist still takes no damage on a successful Reflex saving throw against attacks henceforth she henceforth takes only half damage on a failed save. A helpless diplomatist does not gain the benefit of improved evasion. To take improved evasion, a diplomatist must have evasion ability.
* Improved Uncanny Dodge (Ex): A diplomatist's uncanny dodge ability improves. She can no longer be flanked. This defense denies another diplomatist the ability to sneak attack the character by flanking her, unless the attacker has at least four more diplomatist levels than the target does. If a character already has uncanny dodge (see above) from a second class, the character automatically gains improved uncanny dodge instead, and the levels from the classes that grant uncanny dodge stack to determine the minimum diplomatist level required to flank the character. To take this ability, a diplomatist must have uncanny dodge.
* Insightful Reaction (Ex): A diplomatist learns to sense and react to dangers before they happen, with astonishing accuracy. She adds her Wisdom modifier to all reflex saves.
* Opportunist (Ex): Once per round, the diplomatist can make an attack of opportunity against an opponent who has just been struck for damage in melee by another character. This attack counts as the diplomatist's attack of opportunity for that round. Even a diplomatist with the Combat Reflexes feat can't use the opportunist ability more than once per round.
* Silencing Strike (Ex): When a diplomatist attacks opponent that is denied his Dexterity bonus to AC, a diplomatist may use a silencing strike. If attack is successful, the victim cannot make any articulate sounds or cast spells that have verbal components for a number of rounds equal to the damage taken. A successful Heal check (DC 20) removes effects of this ability, as does healing at least 10 hit points with a single spell.
* Skill Mastery (Ex): A diplomatist becomes very adept at a few skills. Same as in Player's Handbook.
* Slippery Mind (Ex): A diplomatist can escape from mind-controlling spells and abilities. Same as in Player's Handbook. 

!!Epic Diplomatist
The epic diplomatist's skills are legendary and her tales of daring-do even more so. If you listen to the stories, there is nothing she can't do.

''Hit Die'': d6
''Skill Points per Level'': 8 + Int modifier. 

|!Level |!Special
|21th |Style (XI) |
|22th |- |
|23th |Style (XII) |
|24th |Greater Trick |
|25th |Style (XIII) |
|26th |- |
|27th |Style (XIV) |
|28th |Greater Trick |
|29th |Style (XV) |
|30th |- |

''Style'': An epic diplomatist chooses any one path and gains step she does not yet have. In order to take any step, a diplomatist must have all previous steps from the same path. If a diplomatist has 10 steps in one path, she can continue taking steps of that path, as described below.

* Assassin: Epic assassin increases sneak attack damage by +1d6 at every step.
* Expert: Epic expert gains benefits of Secrets of the Trade ability at every step.
* Silvertongue: Epic silvertongue can add her Charisma bonus to any check, roll, or save one more time per day and knows one additional language at every step.
* Spy: Epic spy can use her spying sight ability one more time per day at every step.
* Stalker: Epic stalker a stalker gains a +1 bonus on saving throws made to avoid traps and magic symbols, and a +1 dodge bonus to AC against attacks made by traps, at every step. She can also use her silence and invisibility spell-like abilities one more time per day each. 

''Greater Trick'': The diplomatist gains an extra greater trick at 24th level and every 4 levels thereafter (28th, 32nd, and so on). Instead of taking a greater trick she may take an epic feat. The list of available epic feats is same as in Epic Level Handbook.
[[MptwEditTemplate]]
/***
| Name:|ExtentTagButtonPlugin|
| Description:|Adds a New tiddler button in the tag drop down|
| Version:|3.0.1 ($Rev: 2263 $)|
| Date:|$Date: 2007-06-13 04:22:32 +1000 (Wed, 13 Jun 2007) $|
| Source:|http://mptw.tiddlyspot.com/#ExtendTagButtonPlugin|
| Author:|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{

// can't hijack a click handler. must redefine this entirely.
// would be good to refactor in the core...
// this version copied from 2.1.3 core

// Event handler for clicking on a tiddler tag
function onClickTag(e)
{
	if (!e) var e = window.event;
	var theTarget = resolveTarget(e);
	var popup = Popup.create(this);
	var tag = this.getAttribute("tag");
	var title = this.getAttribute("tiddler");
	if(popup && tag)
		{
		var tagged = store.getTaggedTiddlers(tag);
		var titles = [];
		var li,r;
		for(r=0;r<tagged.length;r++)
			if(tagged[r].title != title)
				titles.push(tagged[r].title);
		var lingo = config.views.wikified.tag;

		wikify("<<newTiddler label:'New tiddler' tag:'"+tag+"'>>",createTiddlyElement(popup,"li")); // <---- the only modification

		if(titles.length > 0)
			{
			var openAll = createTiddlyButton(createTiddlyElement(popup,"li"),lingo.openAllText.format([tag]),lingo.openAllTooltip,onClickTagOpenAll);
			openAll.setAttribute("tag",tag);
			createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
			for(r=0; r<titles.length; r++)
				{
				createTiddlyLink(createTiddlyElement(popup,"li"),titles[r],true);
				}
			}
		else
			createTiddlyText(createTiddlyElement(popup,"li",null,"disabled"),lingo.popupNone.format([tag]));
		createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
		var h = createTiddlyLink(createTiddlyElement(popup,"li"),tag,false);
		createTiddlyText(h,lingo.openTag.format([tag]));
		}
	Popup.show(popup,false);
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	return(false);
}

//}}}

/***
| Name|HideWhenPlugin|
| Description|Allows conditional inclusion/exclusion in templates|
| Version|3.0 ($Rev: 1845 $)|
| Date|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $|
| Source|http://mptw.tiddlyspot.com/#HideWhenPlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}
***/
//{{{

window.removeElementWhen = function(test,place) {
	if (test) {
		removeChildren(place);
		place.parentNode.removeChild(place);
	}
};

merge(config.macros,{

	hideWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( eval(paramString), place);
	}},

	showWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !eval(paramString), place);
	}},

	hideWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);
	}},

	showWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);
	}},

	hideWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAny(params), place);
	}},

	showWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAny(params), place);
	}},

	hideWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);
	}},

	showWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);
	}},

	hideWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0]), place);
	}},

	showWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !(store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])), place);
	}}

});

//}}}

/***
| Name|LessBackupsPlugin|
| Description|Intelligently limit the number of backup files you create|
| Version|3.0 ($Rev: 2320 $)|
| Date|$Date: 2007-06-18 22:37:46 +1000 (Mon, 18 Jun 2007) $|
| Source|http://mptw.tiddlyspot.com/#LessBackupsPlugin|
| Author|Simon Baird|
| Email|simon.baird@gmail.com|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!!Description
You end up with just backup one per year, per month, per weekday, per hour, minute, and second.  So total number won't exceed about 200 or so. Can be reduced by commenting out the seconds/minutes/hours line from modes array

!!!Notes
Works in IE and Firefox only.  Algorithm by Daniel Baird. IE code by by Saq Imtiaz.
!!!Code
***/
//{{{
window.getSpecialBackupPath = function(backupPath) {

	var MINS  = 60 * 1000;
	var HOURS = 60 * MINS;
	var DAYS  = 24 * HOURS;

	// comment out the ones you don't want
	var modes = [
		["YYYY",  365*DAYS], // one per year for ever
		["MMM",   31*DAYS],  // one per month
		["ddd",   7*DAYS],   // one per weekday
		//["d0DD",  1*DAYS],   // one per day of month
		["h0hh",  24*HOURS], // one per hour
		["m0mm",  1*HOURS],  // one per minute
		["s0ss",  1*MINS],   // one per second
		["latest",0]         // always keep last version. (leave this).
	];

	var now = new Date();

	for (var i=0;i<modes.length;i++) {

		// the filename we will try
		var specialBackupPath = backupPath.replace(/(\.)([0-9]+\.[0-9]+)(\.html)$/,
						'$1'+now.formatString(modes[i][0]).toLowerCase()+'$3')

		// open the file

		try {
			if (config.browser.isIE) {
				var fsobject = new ActiveXObject("Scripting.FileSystemObject")
				var fileExists  = fsobject.FileExists(specialBackupPath);
				if (fileExists) {
					var fileObject = fsobject.GetFile(specialBackupPath);
					var modDate = new Date(fileObject.DateLastModified).valueOf();
				}
			}
			else {
				netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
				var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
				file.initWithPath(specialBackupPath);
				var fileExists = file.exists();
				if (fileExists) {
					var modDate = file.lastModifiedTime;
				}
			}
		}
		catch(e) {
			// give up
			return backupPath;
		}

		// expiry is used to tell if it's an 'old' one. Eg, if the month is June and there is a
		// June file on disk that's more than an month old then it must be stale so overwrite
		// note that "latest" should be always because the expiration period is zero (see above)
		var expiry = new Date(modDate + modes[i][1]);
		if (!fileExists || now > expiry)
			return specialBackupPath;
	}
}

// hijack the core function
window.getBackupPath_orig = window.getBackupPath;
window.getBackupPath = function(localPath) {
	return getSpecialBackupPath(getBackupPath_orig(localPath));
}

//}}}

Name: Blue
Background: #fff
Foreground: #000
PrimaryPale: #cdf
PrimaryLight: #57c
PrimaryMid: #114
PrimaryDark: #012
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

Name: Green
Background: #fff
Foreground: #000
PrimaryPale: #9b9
PrimaryLight: #385
PrimaryMid: #031
PrimaryDark: #020
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

Name: Red
Background: #fff
Foreground: #000
PrimaryPale: #fdd
PrimaryLight: #c55
PrimaryMid: #711
PrimaryDark: #500
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

Name: Smoke
Background: #fff
Foreground: #000
PrimaryPale: #aaa
PrimaryLight: #777
PrimaryMid: #111
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

Name: Teal
Background: #fff
Foreground: #000
PrimaryPale: #B5D1DF
PrimaryLight: #618FA9
PrimaryMid: #1a3844
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #f8f8f8
TertiaryLight: #bbb
TertiaryMid: #999
TertiaryDark: #888
Error: #f88
OldStuff
[[MonkeyPirateTiddlyWiki|http://mptw.tiddlyspot.com]] is a distribution of [[TiddlyWiki|http://www.tiddlywiki.com/]] created by Simon Baird. See [[the web site|http://mptw.tiddlyspot.com/]] for more information.
!!Upgrading ~MonkeyPirateTiddlyWiki
This "empty" ~MonkeyPirateTiddlyWiki file comes pre-installed with the core ~MonkeyPirateTiddlyWiki plugins. You can upgrade these core plugins to the latest version by doing the following:
* Click ImportTiddlers
* Click "Choose..." and select "~MptwUpgradeURL"
* Click "fetch"
* Click the checkbox in the first column heading to select all tiddlers
* Click "More actions..." and select "Import these tiddlers"
* Click "OK" to confirm you want to overwrite the tiddlers
* Save and reload
/***
| Name|MptwLayoutPlugin|
| Description|A package containing templates and css for the MonkeyPirateTiddlyWiki layout|
| Version|3.0 ($Rev: 1845 $)|
| Source|http://mptw.tiddlyspot.com/#MptwLayoutPlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
Presumes you have TagglyTaggingPlugin installed. To enable this you should have a PageTemplate containing {{{[[MptwPageTemplate]]}}} and similar for ViewTemplate and EditTemplate.
***/
//{{{
// used in MptwViewTemplate
config.mptwDateFormat = 'DD/MM/YY';
config.mptwJournalFormat = 'Journal DD/MM/YY';
//config.mptwDateFormat = 'MM/0DD/YY';
//config.mptwJournalFormat = 'Journal MM/0DD/YY';

config.shadowTiddlers.GettingStarted += "\n\nSee also MonkeyPirateTiddlyWiki.";

//}}}

//{{{
merge(config.shadowTiddlers,{

'MptwEditTemplate':[
 "<!--{{{-->",
 "<!--- http://mptw.tiddlyspot.com/#MptwEditTemplate ($Rev: 1829 $) --->",
 "<div class=\"toolbar\" macro=\"toolbar +saveTiddler saveCloseTiddler closeOthers -cancelTiddler cancelCloseTiddler deleteTiddler\"></div>",
 "<div class=\"title\" macro=\"view title\"></div>",
 "<div class=\"editLabel\">Title</div><div class=\"editor\" macro=\"edit title\"></div>",
 "<div class=\"editLabel\">Tags</div><div class=\"editor\" macro=\"edit tags\"></div>",
 "<div class=\"editorFooter\"><span macro=\"message views.editor.tagPrompt\"></span><span macro=\"tagChooser\"></span></div>",
 "<div macro=\"showWhenExists EditPanelTemplate\">[[EditPanelTemplate]]</div>",
 "<div class=\"editor\" macro=\"edit text\"></div>",
 "<!--}}}-->"
].join("\n"),

'MptwPageTemplate':[
 "<!--{{{-->",
 "<!-- http://mptw.tiddlyspot.com/#MptwPageTemplate ($Rev: 1829 $) -->",
 "<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>",
 "<!-- horizontal MainMenu -->",
 "<div id='topMenu' refresh='content' tiddler='MainMenu'></div>",
 "<!-- original MainMenu menu -->",
 "<!-- <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>",
 "<!--}}}-->"
].join("\n"),

'MptwStyleSheet':[
 "/*{{{*/",
 "/* http://mptw.tiddlyspot.com/#MptwStyleSheet ($Rev: 2246 $) */",
 "",
 "/* a contrasting background so I can see where one tiddler ends and the other begins */",
 "body {",
 "	background: [[ColorPalette::TertiaryLight]];",
 "}",
 "",
 "/* sexy colours and font for the header */",
 ".headerForeground {",
 "	color: [[ColorPalette::PrimaryPale]];",
 "}",
 ".headerShadow, .headerShadow a {",
 "	color: [[ColorPalette::PrimaryMid]];",
 "}",
 "",
 "/* separate the top menu parts */",
 ".headerForeground, .headerShadow {",
 "	padding: 1em 1em 0;",
 "}",
 "",
 ".headerForeground, .headerShadow {",
 "	font-family: 'Trebuchet MS' sans-serif;",
 "	font-weight:bold;",
 "}",
 ".headerForeground .siteSubtitle {",
 "	color: [[ColorPalette::PrimaryLight]];",
 "}",
 ".headerShadow .siteSubtitle {",
 "	color: [[ColorPalette::PrimaryMid]];",
 "}",
 "",
 "/* make shadow go and down right instead of up and left */",
 ".headerShadow {",
 "	left: 1px;",
 "	top: 1px;",
 "}",
 "",
 "/* prefer monospace for editing */",
 ".editor textarea {",
 "	font-family: 'Consolas' monospace;",
 "}",
 "",
 "/* sexy tiddler titles */",
 ".title {",
 "	font-size: 250%;",
 "	color: [[ColorPalette::PrimaryLight]];",
 "	font-family: 'Trebuchet MS' sans-serif;",
 "}",
 "",
 "/* more subtle tiddler subtitle */",
 ".subtitle {",
 "	padding:0px;",
 "	margin:0px;",
 "	padding-left:0.5em;",
 "	font-size: 90%;",
 "	color: [[ColorPalette::TertiaryMid]];",
 "}",
 ".subtitle .tiddlyLink {",
 "	color: [[ColorPalette::TertiaryMid]];",
 "}",
 "",
 "/* a little bit of extra whitespace */",
 ".viewer {",
 "	padding-bottom:3px;",
 "}",
 "",
 "/* don't want any background color for headings */",
 "h1,h2,h3,h4,h5,h6 {",
 "	background: [[ColorPalette::Background]];",
 "	color: [[ColorPalette::Foreground]];",
 "}",
 "",
 "/* give tiddlers 3d style border and explicit background */",
 ".tiddler {",
 "	background: [[ColorPalette::Background]];",
 "	border-right: 2px [[ColorPalette::TertiaryMid]] solid;",
 "	border-bottom: 2px [[ColorPalette::TertiaryMid]] solid;",
 "	margin-bottom: 1em;",
 "	padding-bottom: 1em;",
 "	padding-top: 0.75em;",
 "}",
 "",
 "/* make options slider look nicer */",
 "#sidebarOptions .sliderPanel {",
 "	border:solid 1px [[ColorPalette::PrimaryLight]];",
 "}",
 "",
 "/* the borders look wrong with the body background */",
 "#sidebar .button {",
 "	border-style: none;",
 "}",
 "",
 "/* this means you can put line breaks in SidebarOptions for readability */",
 "#sidebarOptions br {",
 "	display:none;",
 "}",
 "/* undo the above in OptionsPanel */",
 "#sidebarOptions .sliderPanel br {",
 "	display:inline;",
 "}",
 "",
 "/* horizontal main menu stuff */",
 "#displayArea {",
 "	margin: 1em 15.7em 0em 1em; /* use the freed up space */",
 "}",
 "#topMenu br {",
 "	display: none;",
 "}",
 "#topMenu {",
 "	background: [[ColorPalette::PrimaryMid]];",
 "	color:[[ColorPalette::PrimaryPale]];",
 "}",
 "#topMenu {",
 "	padding:2px;",
 "}",
 "#topMenu .button, #topMenu .tiddlyLink, #topMenu a {",
 "	margin-left: 0.5em;",
 "	margin-right: 0.5em;",
 "	padding-left: 3px;",
 "	padding-right: 3px;",
 "	color: [[ColorPalette::PrimaryPale]];",
 "	font-size: 115%;",
 "}",
 "#topMenu .button:hover, #topMenu .tiddlyLink:hover {",
 "	background: [[ColorPalette::PrimaryDark]];",
 "}",
 "",
 "/* make 2.2 act like 2.1 with the invisible buttons */",
 ".toolbar {",
 "	visibility:hidden;",
 "}",
 ".selected .toolbar {",
 "	visibility:visible;",
 "}",
 "",
 "/* experimental. this is a little borked in IE7 with the button ",
 " * borders but worth it I think for the extra screen realestate */",
 ".toolbar { float:right; }",
 "",
 "/* for Tagger Plugin, thanks sb56637 */",
 ".popup li a {",
 "   display:inline;",
 "}",
 "",
 "/* make it print a little cleaner */",
 "@media print {",
 "	#topMenu {",
 "		display: none ! important;",
 "	}",
 "	/* not sure if we need all the importants */",
 "	.tiddler {",
 "		border-style: none ! important;",
 "		margin:0px ! important;",
 "		padding:0px ! important;",
 "		padding-bottom:2em ! important;",
 "	}",
 "	.tagglyTagging .button, .tagglyTagging .hidebutton {",
 "		display: none ! important;",
 "	}",
 "	.headerShadow {",
 "		visibility: hidden ! important;",
 "	}",
 "	.tagglyTagged .quickopentag, .tagged .quickopentag {",
 "		border-style: none ! important;",
 "	}",
 "	.quickopentag a.button, .miniTag {",
 "		display: none ! important;",
 "	}",
 "}",
 "/*}}}*/"
].join("\n"),

'MptwViewTemplate':[
 "<!--{{{-->",
 "<!--- http://mptw.tiddlyspot.com/#MptwViewTemplate ($Rev: 2247 $) --->",
 "",
 "<div class='toolbar'>",
 "	<span macro=\"showWhenTagged systemConfig\">",
 "		<span macro=\"toggleTag systemConfigDisable . '[[disable|systemConfigDisable]]'\"></span>",
 "	</span>",
 "	<span macro=\"showWhenTagged palette\">",
 "		<span macro=\"setPalette\"></span>",
 "	</span>",
 "	<span style=\"padding:1em;\"></span>",
 "	<span macro='toolbar closeTiddler closeOthers +editTiddler deleteTiddler > fields syncing permalink references jump'></span> <span macro='newHere label:\"new here\"'></span>",
 "	<span macro='newJournalHere {{config.mptwJournalFormat?config.mptwJournalFormat:\"MM/0DD/YY\"}}'></span>",
 "</div>",
 "",
 "<div class=\"tagglyTagged\" macro=\"tags\"></div>",
 "",
 "<div class='titleContainer'>",
 "	<span class='title' macro='view title'></span>",
 "	<span macro=\"miniTag\"></span>",
 "</div>",
 "",
 "<div class='subtitle'>",
 "	<span macro='view modifier link'></span>,",
 "	<span macro='view modified date {{config.mptwDateFormat?config.mptwDateFormat:\"MM/0DD/YY\"}}'></span>",
 "	(<span macro='message views.wikified.createdPrompt'></span>",
 "	<span macro='view created date {{config.mptwDateFormat?config.mptwDateFormat:\"MM/0DD/YY\"}}'></span>)",
 "</div>",
 "",
 "<div macro=\"showWhenExists ViewPanelTemplate\">[[ViewPanelTemplate]]</div>",
 "",
 "<div macro=\"hideWhen tiddler.tags.containsAny(['css','html','pre','systemConfig']) && !tiddler.text.match('{{'+'{')\">",
 "	<div class='viewer' macro='view text wikified'></div>",
 "</div>",
 "<div macro=\"showWhen tiddler.tags.containsAny(['css','html','pre','systemConfig']) && !tiddler.text.match('{{'+'{')\">",
 "	<div class='viewer'><pre macro='view text'></pre></div>",
 "</div>",
 "",
 "<div macro=\"showWhenExists ViewDashboardTemplate\">[[ViewDashboardTemplate]]</div>",
 "",
 "<div class=\"tagglyTagging\" macro=\"tagglyTagging\"></div>",
 "",
 "<!--}}}-->"
].join("\n")

});
//}}}
For upgrading directly from tiddlyspot. See [[ImportTiddlers]].
URL: /proxy/mptw.tiddlyspot.com/upgrade.html
For upgrading. See [[ImportTiddlers]].
URL: http://mptw.tiddlyspot.com/upgrade.html
/***
| Name:|NewHerePlugin|
| Description:|Creates the new here and new journal macros|
| Version:|3.0 ($Rev: 1845 $)|
| Date:|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $|
| Source:|http://mptw.tiddlyspot.com/#NewHerePlugin|
| Author:|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.macros, {
	newHere: {
		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			wikify("<<newTiddler "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
		}
	},
	newJournalHere: {
		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			wikify("<<newJournal "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
		}
	}
});

//}}}

/***
| Name:|NewMeansNewPlugin|
| Description:|If 'New Tiddler' already exists then create 'New Tiddler (1)' and so on|
| Version:|1.0 ($Rev: 2263 $)|
| Date:|$Date: 2007-06-13 04:22:32 +1000 (Wed, 13 Jun 2007) $|
| Source:|http://mptw.tiddlyspot.com/empty.html#NewMeansNewPlugin|
| Author:|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{

String.prototype.getNextFreeName = function() {
       var numberRegExp = / \(([0-9]+)\)$/;
       var match = numberRegExp.exec(this);
       if (match) {
               var num = parseInt(match[1]) + 1;
               return this.replace(numberRegExp," ("+num+")");
       }
       else {
               return this + " (1)";
       }
}

config.macros.newTiddler.getName = function(newName) {
       while (store.getTiddler(newName))
               newName = newName.getNextFreeName();
       return newName;
}


config.macros.newTiddler.onClickNewTiddler = function()
{
	var title = this.getAttribute("newTitle");
	if(this.getAttribute("isJournal") == "true") {
		var now = new Date();
		title = now.formatString(title.trim());
	}

	title = config.macros.newTiddler.getName(title); // <--- only changed bit

	var params = this.getAttribute("params");
	var tags = params ? params.split("|") : [];
	var focus = this.getAttribute("newFocus");
	var template = this.getAttribute("newTemplate");
	var customFields = this.getAttribute("customFields");
	story.displayTiddler(null,title,template,false,null,null);
	var tiddlerElem = document.getElementById(story.idPrefix + title);
	if(customFields)
		story.addCustomFields(tiddlerElem,customFields);
	var text = this.getAttribute("newText");
	if(typeof text == "string")
		story.getTiddlerField(title,"text").value = text.format([title]);
	for(var t=0;t<tags.length;t++)
		story.setTiddlerTag(title,tags[t],+1);
	story.focusTiddler(title,focus);
	return false;
};

//}}}

//\Nex"us\, n. Connection; tie.//

//Man is doubtless one by some subtile nexus... extending from the new-born infant to the superannuated dotard. - Thomas de Quincey//

Nexi are sort of people who possess a rare gift of learning others' abilities simply by observing them. Some speculate that nexi can subconsciously read minds with their weak psionic potential and learn talents that way. This power however has its drawbacks, as nexi cannot learn others' abilities in full, always performing at half efficiency at best. Nexi are curious, almost inquisitive people, often impatient and compulsive. As they grow in power, they usually become more cocky and priggish.

''Adventures'': Nexi see travels as opportunity to learn new tricks and abilities. Their curious nature doesn't let them think twice if an opportunity for adventure arises. Nexi desire company of races with unusual abilities and talents. Good nexi travel to help people with their rare talents, evil nexi are often malicious pranksters.

''Characteristics'': Nexi use unique form of psionics that allows them to borrow powers known by nearby manifesters. Their abilities rely strongly on telepathy, so they keep powers that can foil mind blanks and similar protections when they only can. In combat they are used to match their tactics to whatever powers they currently possess, but such vast knowledge of tactics requires years of training and nexi simply under-perform most of the time on battlefield. Nexi are quite often weaker against mindless enemies than intelligent ones.

''Alignment'': Neutral nexi are as common as good or evil, but the fact that nexus' abilities shift often and require him to adjust makes a chaotic nexus more common sight than a lawful one.

''Religion'': Being perceptive ilk, most nexi are surprisingly pious, professing deities of mind, luck, chance, travel, change, opportunity, and adaptation. Some nexi believe that their gift comes from gods, even if in fact they developed it by themselves.

''Background'': Most nexi develop their abilities if they spend their childhood in travel or adapting to changing environment. If a young person loses his parents or village, then is raised by a local druid, gets catched by slavers and spends his days as pirate after escaping, he makes a perfect material for this class. Some people possess innate gift to become a nexus, but never discover it because their life is without a sufficient stimulus. Their only insight in that marvelous power is a weak form of sixth sense, vivid dreams, and sometimes even paranoia.

''Races'': Nexi are most likely halflings, because of their traveling culture, followed closely by humans and various half-breeds that live an outcast's life. Nexi are also more common among naturally psionic races than those of ordinary minds.

''Other Classes'': Nexi enjoy the company of other classes because they see it as an opportunity to learn some exotic abilities and feats. Most of all classes, however, nexi do like company of other manifesters, because their presence gives them most power.

''Starting Age'': Young (same as barbarian and rogue).
''Starting Gold'': 2d4 x 10 (average 50 gp)

!!Game Rule Information
Nexi have the following game statistics.

''Abilities'': Wisdom is the most important ability for a nexus, deciding the final size of their wild pool and aiding their everchanger ability. Dexterity and Constitution are very helpful because they help the nexus stay alive. 
''Alignment'': Any. 

''Hit Points per Level'': 1d6. 
''Skill Points per Level'': 6 + Int modifier. 

''Class Skills'': The nexus' class skills (and the key ability for each skill) are Bluff (Cha), Concentration (Con), Disguise (Cha), Gather Information (Cha), Knowledge (Int) (all skills, taken separately), Listen (Wis), Perform (Cha) (all skills, taken individually), Profession (Wis), Search (Wis), Sense Motive (Wis), Spot (Wis), and Survival (Wis).
|!Level |!BAB |!Fort |!Ref |!Will |!Special |
|1st |+0 |+0 |+2 |+2 |Everchanger |
|2nd |+1 |+0 |+3 |+3 |Unlock secrets |
|3rd |+2 |+1 |+3 |+3 |Mimic Pool, Emulate |
|4th |+3 |+1 |+4 |+4 |Memorize skills +2 |
|5th |+3 |+1 |+4 |+4 |Unlock secrets |
|6th |+4 |+2 |+5 |+5 |- |
|7th |+5 |+2 |+5 |+5 |- |
|8th |+6/+1 |+2 |+6 |+6 |Unlock secrets |
|9th |+6/+1 |+3 |+6 |+6 |- |
|10th |+7/+2 |+3 |+7 |+7 |Memorize skills +4 |
|11th |+8/+3 |+3 |+7 |+7 |Unlock secrets |
|12th |+9/+4 |+4 |+8 |+8 |- |
|13th |+9/+4 |+4 |+8 |+8 |- |
|14th |+10/+5 |+4 |+9 |+9 |Unlock secrets |
|15th |+11/+6/+1 |+5 |+9 |+9 |- |
|16th |+12/+7/+2 |+5 |+10 |+10 |Memorize skills +6 |
|17th |+12/+7/+2 |+5 |+10 |+10 |Unlock secrets |
|18th |+13/+8/+3 |+6 |+11 |+11 |- |
|19th |+14/+9/+4 |+6 |+11 |+11 |- |
|20th |+15/+10/+5 |+6 |+12 |+12 |Unlock secrets |

!!Class Features
All of the following are class features of the nexus.

''Weapon and Armor Proficiency'': Nexi are proficient with all simple weapons and one martial weapon of their choice. They are also proficient with light armors but no shields.

''Everchanger (Ex)'': The nexus defines the word 'versatile'. After resting for 8 hours, a nexus can take an hour to swap up to his Wisdom bonus worth of feats known for any other feats he meets the prerequisites for. He can not swap out any feat that is a prerequisite for any other feat he knows.

''Unlock Secrets'': At 2nd level and every 3 levels afterwards, a nexus learns how to emulate specific abilities of other classes. At any such level he chooses one ability from the list below.

* //Secrets of Discipline (Ex)//: A nexus gains one of the monks stay on path abilities. As though he had a number of step in ascendancy or monk class levels as a monk of his same nexus level.
* //Secrets of Mischief (Ex)//: A nexus gains one lesser trick ability of the rogue.
* //Secrets of the Hunt (Ex)//: A nexus gains the ranger's hunting grounds ability for one kind of terrain.
* //Secrets of the Self (Ex)//: A nexus gains one feat he meets the prerequisites of.
* //Secrets of Technology (Ex)//: A nexus can use any technologist invented armor, gadget, or weapon as long as the invention points used to create it are less than or equal to the nexus' class level + Wisdom modifier.
* //Secrets of Totems (Ex)//: A nexus gains one totem ability of either barbarian or ranger.

''Mimic Pool'': A nexus' ability to emulate others so well provides them unusual abilities. The nexus gains a pool of mimic points per day equal to his nexus level + his Wisdom modifier. He can spend points from this pool to emulate other classes skills and abilities.

''Emulate (Ex)'': Whenever a 3rd level nexus is within 30 ft. from any creature with ability listed below when it activates this ability, the nexus may activate it as well by paying a certain amount of mimic points.

* //Barbaric//: A nexus can use any aspect of barbarism as a 1st level barbarian could by spending one mimic point.
* //Instinctive//: A nexus can use any art of battle by paying one mimic point.
* //Mimic Honor//: While in a duel with a knight a nexus can use any challenge ability the knight is using by spending one mimic point per challenge ability.
* //Sixth Sense//: A nexus can add his Wisdom bonus to any one ability or skill check, save, attack or damage roll by paying one mimic point.
* //Skirmish//: A nexus can use one lesser reel. The nexus must pay 1 mimic point per round to keep it active. 

''Memorize Skills (Ex)'': At 7th level, a nexus can use other's know-how to use skills more effectively. Whenever anyone uses a skill (for the full duration that is required to use this skill) within 30 feet of a nexus that can see it, and that character's ranks in this skill are higher by 3 or more than the nexus' ranks, he can spend 1 mimic point to gain a +2 competence bonus on all checks with the observed skill for 1 hour. At 13th level, a nexus can spend two mimic points to gain a +4 competence bonus instead. At 19th level, a nexus can spend three mimic points to gain a +6 competence bonus instead. For example, a 13th level nexus observes a dwarf that deciphers a script. The nexus has 0 ranks in this skill, while the dwarf has 8. Therefore, the nexus can spend one mimic point to gain +2 competence bonus on Decipher Script for 1 hour or 2 points to gain a +4 bonus. While this ability is in effect the mimicked skill is treated as trained.

!!Epic Nexus
The epic nexus is master of adaptation. He can copy most existing abilities with ease and is master of using them to his own liking.

''Hit Die'': d6.
''Skill Points at Each Additional Level'': 6 + Int modifier.
|!Level |!Special |
|21th |Memorize |
|22th |Bonus feat |
|23th |Unlock secrets |
|24th |- |
|25th |- |
|26th |Unlock secrets |
|27th |- |
|28th |Bonus feat |
|29th |Unlock secrets |
|30th |- |

''Memorize (Ex)'': Nexus' ability to emulate skills improves. Anytime he uses the memorize ability he can take 10 on any check with the skill while this ability is active, even in situations where he could not normally do so.

''Unlock Secrets'': An epic nexus unlocks another class ability at 23rd level, and every 3 levels thereafter (26th, 29th, and so on).

''Bonus Feat'': An epic nexus gains a bonus feat at 22nd level, and every 6 levels thereafter (28th, 34th, and so on). At every such opportunity, a nexus can take 2 non-epic feats instead. List of epic feats the nexus can take with this ability: -
//\Of"fi*cer\, n. One who holds an office; a person invested with an office, whether civil or military.//

''Starting Age'': Moderate
''Starting Gold'': 6d4 x 10 (average 220 gp)

!!Game Rule Information
Knights have the following game statistics.

''Hit Points per Level'': 1d8
''Skill Points per Level'': 6 + Int modifier. 

''Class Skills'': The officer's class skills (and the key ability for each skill) are Climb (Str), Craft (Int), Diplomacy (Cha), Handle Animal (Cha), Heal (Wis), Intimidate (Cha), Jump (Str), Knowledge (History) (Int), Knowledge (Nobility and Royalty) (Int), Perform (Cha), Profession (siege engineer) (Wis), Ride (Dex), Sense Motive (Wis), and Swim (Str).

|!Level |!BAB |!Fort |!Ref |!Will |!Special |
|1st |+0 |+2 |+0 |+2 |Mark, Chosen Morality |
|2nd |+1 |+3 |+0 |+3 |Courage |
|3rd |+1 |+3 |+1 |+3 |Mark ability |
|4th |+2 |+4 |+1 |+4 |Style (I) |
|5th |+2 |+4 |+1 |+4 |Bonus feat |
|6th |+3 |+5 |+2 |+5 |- |
|7th |+3 |+5 |+2 |+5 |Mark ability |
|8th |+4 |+6 |+2 |+6 |Style (II) |
|9th |+4 |+6 |+3 |+6 |Practiced Mark |
|10th |+5 |+7 |+3 |+7 |- |
|11th |+5 |+7 |+3 |+7 |Mark ability |
|12th |+6/+1 |+8 |+4 |+8 |Style (III) |
|13th |+6/+1 |+8 |+4 |+8 |Bonus feat |
|14th |+7/+2 |+9 |+4 |+9 |- |
|15th |+7/+2 |+9 |+5 |+9 |Mark ability |
|16th |+8/+3 |+10 |+5 |+10 |Style (IV) |
|17th |+8/+3 |+10 |+5 |+10 |- |
|18th |+9/+4 |+11 |+6 |+11 |Sure Mark |
|19th |+9/+4 |+11 |+6 |+11 |Mark ability |
|20th |+10/+5 |+12 |+6 |+12 |Style (V) |

!!Class Features
All of the following are class features of the officer.

''Weapon and Armor Proficiency'': An officer is proficient with all simple and martial weapons and with all armor (heavy, medium, and light) and shields (including tower shields).

''Mark (Ex)'': An officer can choose an enemy to mark in a fight. Marking an opponent is a move action that does not provoke attacks of opportunity. The officer gains a bonus equal to his officer level on attack rolls against this opponent. An officer may mark one opponent in an encounter, and his bonus to hit ends with the encounter or the death of the opponent.

''Chosen Morality'': An officer's life is regulated by set of duties. Upon 1st level, an officer usually chooses 3 commandments from the list below, but particularly devoted officers may take more (which will bolster few special abilities). If an officer grossly violates any of his chosen morals, he loses confidence and the use of any [Conduct] abilities until he rests for 8 hours. Morals are as follows:

* //Courage//: An officer may not show signs of cowardice. He cannot retreat from conflict he has real chance to win. An officer must face death bravely and accept it at any time.
* //Courtesy//: An officer must be polite and courteous to others.
* //Fairness//: An officer cannot attack from surprise or without good reason, possess concealed weapon, or use poison.
* //Generosity//: An officer must be generous to those in need.
* //Justice//: An officer must obey laws of the land, and pursue and punish (according to law) those who break it.
* //Mercy//: An officer may not attack the helpless, or those who surrender themselves.
* //Obedience//: An officer serves his lord best way he can. An officer must avenge any dishonor to his lord.
* //Protection//: An officer must actively protect those, whose deeds do not cross with his morals. He must defend his friends, his family, and everyone related to his other commandments.
* //Revenge//: An officer must avenge all wrongness done to those he cares about (protects, obeys, honors, etc).
* //Truth//: An officer may not tell a lie and must do anything to fulfill any oath he swears.

''Bravery [Conduct] (Ex)'': Beginning at 2nd level, an officer gains a +6 bonus on saves fear effects. If he has courage moral, he becomes immune to fear instead.

''Mark Ability'': As the officer grows in power, he learns how to fight his marks more effectively. At 3rd level and every 4 levels thereafter, an officer gains special ability from the list below.

* //Bastion of Strength (Ex)//: An officer can make Fortitude save instead of any other save while he has an opponent marked.
* //Complete Focus [Conduct] (Ex)//: An officer gains a +4 bonus on skill checks made against his mark.
* //Determination [Conduct] (Ex)//: An officer gains a +4 bonus on saves against the abilities of his mark.
* //Heroic Strife [Conduct] (Ex)//: An officer's mark doesn't gain a bonus to hit from flanking or attacking the officer from higher ground, and the officer can't be treated as flat-footed on attacks made by the mark.
* //Last Effort [Conduct] (Ex)//: Once per an encounter, When an officer hit points would be reduced to 0 or less by his mark's attack, he can instead make a fortitude save against his mark's class levels + the damage dealt. If he beats the DC, the damage instead drops him to 1 hit point.
* //One Foe (Ex)//: An officer gains a +1 dodge bonus to AC for every 4 officer levels against attacks made by anyone except his mark.
* //One Shot, One Kill [Conduct] (Ex)//: An officer gains a +6 competence bonus to confirm a critical hit against his mark.

''Style'': Every officer of 4th level adopts a style from the following: champion, charger, commander, or paragon.

''Commander''
* //Heroism (Ex)//: At 4th level, the commander and his allies within 60 ft. are immune to fear. In addition, whenever any said allies would have to normally make a save against fear, they instead gain a +2 morale bonus to Strength for 1 minute.
* //Role Model (Ex)//: At 8th level, a commander gains +4 bonus to damage when charging. In addition, whenever he charges, all allies within 60 ft. that saw that gain a +4 bonus on damage if they charge within 3 rounds.
* //Frighten [Conduct] (EX)//: At 12th level, whenever a commander charges or draws a melee weapon, opponents within 30 feet must succeed on a Will save (DC 10 + half officer's level + Cha modifier) or become panicked for 1 minute. If they have more Hit Dice than the officer's class level, they become shaken instead. Creatures with two times as many HD as the officer's level are unaffected. Any foe that successfully resists the effect cannot be affected again by the same officer's frightening startle for 24 hours. This is fear effect.
* //Give Pause [Conduct] (Ex)//: At 16th level, whenever a commander charges or draws a melee weapon, opponents within 30 feet must succeed on a Will save (DC 10 + half officer's level + Cha modifier) or move 5 ft. away from the commander as an immediate action. Creatures with two times as many HD as the officer's levels are unaffected. Any foe that successfully resists the effect cannot be affected again by the same commander's frightening startle for 24 hours. This is fear effect. In addition, a commander can run and move at his normal speed when wearing medium or heavy armor.
* //Air of Vengeance [Conduct] (Su)//: At 20th level, whenever a creature attacks a commander in melee she is affected by phantasmal killer (DC 10 + half officer level + Cha modifier). Any creature that survives the effect is forever immune to this effect of that particular officer.

''Champion''
* //Champion (Ex)//: At 4th level, an champion chooses a place or group of people to protect. This devotion must not contradict or oppose his morals. The officer gains a +2 circumstance bonus on Diplomacy, Gather Information, and Intimidate checks made in efforts for the subject of his devotion. While fighting in defense of his cause, the champion gains +2 morale bonus on attack and damage rolls, and +2 bonus on Fortitude saves.
* //Defender (Ex)//: At 8th level, an champion can designate any creature as his protectee. As long as his protectee is adjacent to him the protectee may use the officers AC instead.
* //Retribution (Ex)//: At 12th level, once per round, the champion can make an attack of opportunity against an adjacent opponent who has just attacked an ally in melee.
* Moving Wall (Ex): At 16th level, a champion's protectee gains partial cover while adjacent to him.
* //Embodiment of Sacrifice (Ex)//: At 20th level, a champion's bonuses granted from champion ability increase to +4. In addition, the champion's protectee can use his saves instead of their own while adjacent to him.

''Charger''
* //Tall in the Saddle (Ex)//: At 4th level, a charger gains a +2 bonus melee weapon damage rolls from his mount and a bonus on Ride checks equal to half his officer level.
* //Impending Doom (Ex)//: At 8th level, a mounted charger can charge through difficult terrain at no penalty. In addition, when he charges over normal terrain, his mount's speed doubles for the duration of charge action.
* //Impale (Ex)//: At 12th level, a charger ignores dodge and shield bonuses when making an attack at the end of charge with a piercing weapon.
* //Path of Blood (Ex)//: At 16th level, a charging mounted charger may make one extra attack with full attack bonus against every opponent within reach he moves by when closing on his charge's target. A charger can make one such attack per 5 points of base attack bonus he has.
* //Weighted Charge [Conduct] (Ex)//: At 20th level, a charger's mount can jump as a part of charge and gains +1 bonus on this Jump check for every officer level.

''Paragon''
* //Amazing Effort [Conduct] (EX)//: At 4th level, a paragon can add a +4 morale bonus on any single skill check. He can use this ability five times per day.
* //Impossible Strain [Conduct] (EX)//: At 8th level, a paragon can add a +4 morale bonus on any ability score for 1 minute. He can use this ability three times per day.
* //Hero of a Tale [Conduct] (Ex)//: At 12th level, whenever a paragon rolls a natural 20 on ability or skill check, or initiative roll, he rolls another d20 and adds the results together. Should he score another natural 20, keep rolling until the result is something else.
* //Mythic Inspiration [Conduct] (Ex)//: At 16th level, a paragon can roll 3d20 instead of a d20 and choose the best result when making an ability or skill check, or initiative roll. He can use this ability 8 times per day.
* //Place in Legends (Ex)//: At 20th level, the bonuses of amazing effort and impossible strain increase to +8. 

''Bonus Feats'': At 5th and 13th level, an officer gains a bonus fighter feat.

''Practiced Mark (Ex)'': Starting at 9th level an officer can choose two marks at the beginning of an encounter. Any bonuses granted by his mark abilities increase by +2.

''Sure Mark (Ex)'': With 18th level an officer can choose three marks at the beginning of an encounter. Any bonuses granted by his mark abilities increase by a further +2.

!!Epic Knight
The epic officer's devotion to his code of conduct is unequaled and his combat prowess unmatched. He can bolster his troops to amazing things on the field of battle and is undefeated champion to his cause.
|!Level |!Special |
|21st |- |
|22nd |Bonus feat |
|23rd |Mark ability |
|24th |- |
|25th |Bonus feat |
|26th |- |
|27th |Mark ability |
|28th |Bonus feat |
|29th |- |
|30th |- |

''Bonus Feat'': An epic officer gains bonus fighter feat at 22nd level and every 3 levels levels thereafter (25th, 28th, and so on). Whenever he gains a bonus feat from this ability, he may either take an epic feat, or two non-epic feats.

''Mark Ability'': An epic officer gains another mark ability 23rd level and every 4 levels thereafter (27th, 31st, and so on).
These are my aging EMPIRE! notes, namely the things that have mostly been changed.

''Classes'' - And their 'Ultimate' comparisons.
[[Adventurer]] - Ultimate Adventurer
[[Brute]] - Ultimate Barbarian
[[Diplomatist]] - Ultimate Rogue
[[Nexus]] - Ultimate Nexus
[[Officer]] - Ultimate Knight
[[Ranger]] - Ultimate Ranger
[[Skirmisher]] - Ultimate Skirmisher
[[Soldier]] - Ultimate Fighter
[[Technologist]] - Ultimate Gadgeteer

''Notes'' - Imagine me trying to wade through these.
[[changes.txt]]
[[newchanges.txt]]
[[MptwPageTemplate]]
/***
| Name|QuickOpenTagPlugin|
| Description|Changes tag links to make it easier to open tags as tiddlers|
| Version|3.0.1 ($Rev: 2342 $)|
| Date|$Date: 2007-07-05 10:57:49 +1000 (Thu, 05 Jul 2007) $|
| Source|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
config.quickOpenTag = {

	dropdownChar: (document.all ? "\u25bc" : "\u25be"), // the little one doesn't work in IE?

	createTagButton: function(place,tag,excludeTiddler) {
		// little hack so we can to <<tag PrettyTagName|RealTagName>>
		var splitTag = tag.split("|");
		var pretty = tag;
		if (splitTag.length == 2) {
			tag = splitTag[1];
			pretty = splitTag[0];
		}
		
		var sp = createTiddlyElement(place,"span",null,"quickopentag");
		createTiddlyText(createTiddlyLink(sp,tag,false),pretty);
		
		var theTag = createTiddlyButton(sp,config.quickOpenTag.dropdownChar,
                        config.views.wikified.tag.tooltip.format([tag]),onClickTag);
		theTag.setAttribute("tag",tag);
		if (excludeTiddler)
			theTag.setAttribute("tiddler",excludeTiddler);
    		return(theTag);
	},

	miniTagHandler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var tagged = store.getTaggedTiddlers(tiddler.title);
		if (tagged.length > 0) {
			var theTag = createTiddlyButton(place,config.quickOpenTag.dropdownChar,
                        	config.views.wikified.tag.tooltip.format([tiddler.title]),onClickTag);
			theTag.setAttribute("tag",tiddler.title);
			theTag.className = "miniTag";
		}
	},

	allTagsHandler: function(place,macroName,params) {
		var tags = store.getTags(params[0]);
		var filter = params[1]; // new feature
		var ul = createTiddlyElement(place,"ul");
		if(tags.length == 0)
			createTiddlyElement(ul,"li",null,"listTitle",this.noTags);
		for(var t=0; t<tags.length; t++) {
			var title = tags[t][0];
			if (!filter || (title.match(new RegExp('^'+filter)))) {
				var info = getTiddlyLinkInfo(title);
				var theListItem =createTiddlyElement(ul,"li");
				var theLink = createTiddlyLink(theListItem,tags[t][0],true);
				var theCount = " (" + tags[t][1] + ")";
				theLink.appendChild(document.createTextNode(theCount));
				var theDropDownBtn = createTiddlyButton(theListItem," " +
					config.quickOpenTag.dropdownChar,this.tooltip.format([tags[t][0]]),onClickTag);
				theDropDownBtn.setAttribute("tag",tags[t][0]);
			}
		}
	},

	// todo fix these up a bit
	styles: [
"/*{{{*/",
"/* created by QuickOpenTagPlugin */",
".tagglyTagged .quickopentag, .tagged .quickopentag ",
"	{ margin-right:1.2em; border:1px solid #eee; padding:2px; padding-right:0px; padding-left:1px; }",
".quickopentag .tiddlyLink { padding:2px; padding-left:3px; }",
".quickopentag a.button { padding:1px; padding-left:2px; padding-right:2px;}",
"/* extra specificity to make it work right */",
"#displayArea .viewer .quickopentag a.button, ",
"#displayArea .viewer .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink ",
"	{ border:0px solid black; }",
"#displayArea .viewer .quickopentag a.button, ",
"#mainMenu .quickopentag a.button ",
"	{ margin-left:0px; padding-left:2px; }",
"#displayArea .viewer .quickopentag a.tiddlyLink, ",
"#mainMenu .quickopentag a.tiddlyLink ",
"	{ margin-right:0px; padding-right:0px; padding-left:0px; margin-left:0px; }",
"a.miniTag {font-size:150%;} ",
"#mainMenu .quickopentag a.button ",
"	/* looks better in right justified main menus */",
"	{ margin-left:0px; padding-left:2px; margin-right:0px; padding-right:0px; }", 
"#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }",
"#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }",
"#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }",
"/*}}}*/",
		""].join("\n"),

	init: function() {
		// we fully replace these builtins. can't hijack them easily
		window.createTagButton = this.createTagButton;
		config.macros.allTags.handler = this.allTagsHandler;
		config.macros.miniTag = { handler: this.miniTagHandler };
		config.shadowTiddlers["QuickOpenTagStyles"] = this.styles;
		store.addNotification("QuickOpenTagStyles",refreshStyles);
	}
}

config.quickOpenTag.init();

//}}}
//\Ran"ger\, n. One who ranges; a rover; sometimes, one who ranges for plunder; a roving robber.//

!!Game Rule Information
Rangers have the following game statistics.

''Hit Points per Level'': 1d8
''Skill Points per Level'': 6 + Int modifier. 

''Class Skills'': -
|Level |BAB |Fort |Ref |Will |Special |
|1st |+0 |+2 |+2 |+0 |Animal companion, hunting grounds |
|2nd |+1 |+3 |+3 |+0 |Style (I), track |
|3rd |+2 |+3 |+3 |+1 |Outdoorsman |
|4th |+3 |+4 |+4 |+1 |- |
|5th |+3 |+4 |+4 |+1 |Style (II) |
|6th |+4 |+5 |+5 |+2 |Outdoorsman |
|7th |+5 |+5 |+5 |+2 |Hunting grounds |
|8th |+6/+1 |+6 |+6 |+2 |Style (III) |
|9th |+6/+1 |+6 |+6 |+3 |Outdoorsman |
|10th |+7/+2 |+7 |+7 |+3 |- |
|11th |+8/+3 |+7 |+7 |+3 |Style (IV) |
|12th |+9/+4 |+8 |+8 |+4 |Outdoorsman |
|13th |+9/+4 |+8 |+8 |+4 |Hunting grounds |
|14th |+10/+5 |+9 |+9 |+4 |Style (V) |
|15th |+11/+6/+1 |+9 |+9 |+5 |Outdoorsman |
|16th |+12/+7/+2 |+10 |+10 |+5 |- |
|17th |+12/+7/+2 |+10 |+10 |+5 |Style (VI) |
|18th |+13/+8/+3 |+11 |+11 |+6 |Outdoorsman |
|19th |+14/+9/+4 |+11 |+11 |+6 |Hunting grounds |
|20th |+15/+10/+5 |+12 |+12 |+6 |Style (VII) |

!!Class Features
All of the following are class features of the ranger.

''Weapon and Armor Proficiency'': A ranger is proficient with all simple and martial weapons, with light armor and with shields (but not tower shield).

''Hunting Grounds (Ex)'': At 1st level, a ranger may select a type of enemy or land. Chosen subjects are referred to as favored enemies and favored terrains. In case of favored enemy, the ranger gains a +1 bonus on Bluff, Listen, Sense Motive, Spot, Survival, and appropriate Knowledge checks when using these skills against creatures of this type, and he gets a +1 bonus on damage rolls against such creatures. In case of favored terrain, the ranger gains a +1 circumstance bonus to Climb, Hide, Knowledge (Dungeoneering and Nature), Listen, Move Silently, Search, Spot, and Survival checks made within his favored kind of terrain. At 7th level and every six levels thereafter (13th and 19th), the ranger may select an additional enemy or terrain from those given on the table. All bonuses (including those from hunting grounds just selected) increase by 1 at 7th, 13th, and 19th level. Ranger can choose enemies and terrains interchangeably. Bonuses from enemies and terrains stack, if ranger encounters a favored enemy on a favored terrain. For example, if a 20th level ranger who hunts giants in mountains attempts to spot one there, he gains a +8 bonus to do so. Available terrains are: arctic, deserts, forests, hills, mountains, plains, seas, swamps, underground, and urban.

''Track (Ex)'': A 1st level ranger gains this feat for free.

''Style'': A 2nd level ranger chooses one of the following styles: archer, beastmaster, manhunter, scout, or tempest. Extraordinary abilities granted by his style can be used only as long as the ranger is not wearing medium or heavy armor or carrying medium or heavy load.

''Archer''
Archers hail from those rangers who prefer killing enemies from the distance. As they progress in levels, they become unquestioned masters of the bow.

* Rapid Shot (Ex): At 2nd level, a ranger gains this feat for free even if he doesn't meet the prerequisites.
* Peek Out (Ex): At 5th level, a ranger can hide effectively behind stones and brushes. He gains +2 dodge bonus to AC and +2 bonus on reflex saves when having cover.
* Manyshot (Ex): At 8th level, a ranger gains this feat for free even if he doesn't meet the prerequisites.
* Improved Precise Shot' (Ex): At 11th level, a ranger gains this feat for free even if he doesn't meet the prerequisites.
* Bowyer (Ex): A 14th level archer gains a +4 bonus on all Craft: Bowyer checks and can create magic bows and arrows as if he had Craft Magic Arms and Armor feat. He can substitute required spells with scrolls containing those spells (scrolls are consumed during item's creation), he can substitute caster level with his ranks in Craft: Bowyer skill -3.
* Swarm of Arrows (Ex): As a full-round action, a 17th level ranger may fire an arrow at your his full attack bonus at opponents within a 60 feet long cone. He can target up to one opponent for every point of Dexterity bonus with this ability.
* Ricochet (Ex): At 20th level, a ranger can shoot enemies he has no line of effect to, if the line of effect could be made with up to 4 connected straight lines and the target is within 1st range increment.

''Beastmaster''
Beastmasters dedicate themselves to their animal companions, forging powerful bonds of friendship and teamwork.

* Linked by Fate (Ex): A 2nd level ranger's animal companion gains Damage Reduction 1/-, energy resistance 1 (all), and +1 bonus on saving throws. Those bonuses increase by 1 for every 3 ranger levels, up to 7 at 20th level. Should a beastmaster change his companion, all those benefits kick in after 24 hours.
* Wild Empathy (Ex): A 2nd level ranger can improve the attitude of an animal. This ability functions just like a Diplomacy check made to improve the attitude of a person. The ranger rolls 1d20 and adds his Handle Animal bonus or the ranger level + Charisma modifier to determine the wild empathy check result. The typical domestic animal has a starting attitude of indifferent, while wild animals are usually unfriendly. To use wild empathy, the ranger and the animal must be able to study each other, which means that they must be within 30 feet of one another under normal conditions. Generally, influencing an animal in this way takes 1 minute but, as with influencing people, it might take more or less time.
* Share Hunting Grounds (Ex): At 5th level, a ranger extends benefits of his hunting grounds ability upon his animal companion.
* Team Flanking (Ex): At 8th level, whenever a ranger and his companion flank a creature, their bonus on attack rolls increases by +4 (instead of usual +2) and they gain a +2 bonus on damage rolls as well.
* Beast Whisperer (Ex): A 11th level, a ranger can teach his animal companion any number of tricks. He can teach it tricks the companion couldn't normally learn, at a -5 penalty. In addition, teaching time is greatly reduced: every week becomes an hour. Finally, the beastmaster can speak with his companion as if he was under the effects of speak with animals.
* Feral Mindmeld (Su): At 14th level, ranger's and his companion's minds work as one. As long as both are within 100 ft. from each other, whenever the beastmaster or the companion makes Listen or Spot check, or rolls initiative, they both do and better result is used.
* Master's Shadow (Ex): At 17th level, ranger's animal companion gains all his extraordinary and supernatural racial abilities. Spell-like abilities and speed modes are not granted. For example, a human ranger's animal companion gains a bonus feat and 1 extra skill point per Hit Die. Should a beastmaster change his companion, all those benefits kick in after 24 hours.
* Ultimate Bond (Su): At 20th level, as long as ranger and his companion are within 100 ft., whenever one of them takes any Hit Point damage, ability damage, or is successfully affected by a spell, the other one can take any number of damage on himself, or suffer the spell instead of the original target. For example, if a maze is cast on ranger's lion and it fails to save against it, the ranger can opt to be trapped instead and the lion is unaffected. This ability cannot be used against spells if the new target would be invalid or immune to the spell. 

''Manhunter''
Manhunters are rangers who specialize at hunting others for variety of reasons, from profit to justice.

* Ambush Attack (Ex): If a 2nd level ranger can catch an opponent unprepared, he can make a deadly blow. Any time the ranger's opponent is unaware of the manhunter, ranger that makes a successful attack against that opponent deals +1d10 points of precision damage. In addition, if the damage would be lethal, it can be nonlethal instead. The ranger may use ambush attack with ranged weapons from a distance equal to total Spot bonus * 5ft. Creatures immune to critical hits are immune to precision damage. The bonus damage increases to +2d10 at 8th level, to +3d10 at 14th level, and to +4d10 at 20th level. If a ranger deals damage to enemy who is aware of him but denied his Dex bonus to AC, bonus damage decreases: each d10 becomes d6.
* Urban Prowler (Ex): A ranger spends a lot of his time in cities hunting his prey. At 2nd level, Gather Information, Knowledge (local), and Sense Motive become his class skills. He has a number of ranks in each of those skills equal to skill points spent on them.
* Swift Tracker (Ex): At 5th level, a ranger can move at his normal speed while following tracks without taking the normal -5 penalty. He takes only a -10 penalty (instead of the normal -20) when moving at up to twice normal speed while tracking.
* Dead or Alive (Ex): At 8th level, a ranger doesn't suffer a -4 penalty on attack rolls when dealing nonlethal damage and when he deals nonlethal damage, the weapon-roll part of damage is maximized.
* Mutilate (Ex): At 11th level, whenever a manhunter deals precision damage, he also reduces all of the victim's speed forms by half (round the remaining speed up) for 10 minutes. Multiple applications of this ability don't stack on the same target.
* Astonishing Tracking (Su): A 14th level ranger is able to track a target even if the target is under the influence of abilities or spells that prevent tracking or detection (like Trackless Step) but with a -5 penalty on the Survival check. Manhunter is also able to track a target that is flying or swimming, but at a -10 on the Survival skill check.
* Inconvenient Delivery (Ex): At 17th level, the DC to escape bonds (be it manacles, rope, or something else entirely) the manhunter puts on increases by +20.
* Cripple (Ex): At 20th level, whenever a manhunter deals nonlethal precision damage, he also deals 2d4 points of Strength and Dexterity damage. 

''Scout''
Scouts are rangers who specialize in moving through rural terrain undetected and gathering intelligence.

* Rover (Ex): A 2nd level ranger's speed increases by 5 ft. It further increases by 5 ft. at 8th, 14th, and and 20th level.
* Trackless Step (Ex): At 2nd level, a ranger leaves no trail in natural surroundings and cannot be tracked. He may choose to leave a trail if so desired.
* Running Strike (Ex): When a 5th level ranger takes double move action, he can make a single attack at any point of that move.
* Woodland Stride (Ex): A 8th level ranger may move through any sort of undergrowth (such as natural thorns, briars, overgrown areas, and similar terrain) at his normal speed and without taking damage or suffering any other impairment.
* Camouflage (Ex): At 11th level, a ranger can use the Hide skill in any sort of natural terrain, even if the terrain doesn't grant cover or concealment.
* Hide in Plain Sight (Ex): While a 14th level ranger is in any sort of natural terrain, he can use the Hide skill even while being observed.
* Running Assault (Ex): At 17th level, when a ranger takes double move action, he can make 2 attacks at any point of that move. Second attack is made at a -5 penalty.
* Duck and Cover (Ex): A 20th level ranger who is not immobilized or unconscious is treated as prone at all times if that is beneficial to him.

''Tempest''
Tempests are rangers who excel at combat with two weapons, surpassing even most fighters with their uncanny skill at blades.

* Two-Weapon Fighting: At 2nd level, a ranger gains this feat for free even if he doesn't meet the prerequisites.
* Double Threat (Ex): At 5th level, whenever a ranger is wielding 2 weapons, he gains +2 bonus on disarm, sunder, and trip attempts.
* Improved Two-Weapon Fighting (Ex): At 8th level, a ranger gains this feat for free, even if he doesn't meet the prerequisites.
* Double Opportunity (Ex): At 11th level, whenever a ranger is allowed to make an attack of opportunity while wielding 2 weapons, he can make 2 such attacks (one with each weapon). This extra attack counts against the total number of attacks of opportunity a ranger can make in a round.
* Protect Side (Ex): At 14th level, when a ranger fights defensively or uses Combat Expertise, up to 4 points of penalty on attack rolls applies only to one weapon he wields.
* Greater Two-Weapon Fighting (Ex): At 17th level, a ranger gains this feat for free, even if he doesn't meet the prerequisites.
* Death from Everywhere (Ex): At 20th level, a ranger wielding 2 weapons can flank opponents by himself. This ability is only effective against opponents who can be flanked and are no bigger than the ranger.
* Perfect Grip (Ex): A 20th level ranger suffers no penalties for wielding 2 weapons, even if both weapons are one-handed. Tempest uses his full Str bonus with off-hand attacks. 

''Outdoorsman'': A 3rd level ranger learns a special ability. He gains another ability at 6th level and every 3 levels thereafter.

* Bonus Feat: A ranger gains feat from the list below. 
**//Player's Handbook: Alertness, Animal Affinity, Endurance, Run, Self-Sufficient, Stealthy, Toughness.//
**//New Feats: Aquatic Traveler, Bog Dweller, Desert Strider, Enlarged Companion, Highlander, Northerner.//
* Totem Abilities: A ranger may choose one totem ability.
* Danger Reaction (Ex): A ranger is very aware of his surrounding when he dwells well known lands. He gains benefits of the Uncanny Dodge ability when in his favored terrain or against his favored enemy. If the ranger already has the uncanny dodge ability, he gains Improved Uncanny Dodge when in his favored terrain or against his favored enemy.
* Dodge Enemy (Ex): A ranger knows how to avoid his enemies' blows. His bonus against favored enemies applies also to his Armor Class (as a dodge bonus).
* Evade Enemy (Ex): A ranger knows how utilize his agility to dodge unusual attacks. He gains the benefits of Evasion against his favored enemy or in his favored terrain. If the ranger already has the evasion ability, he gains Improved Evasion when in his favored terrain or against his favored enemy.
* Familiar Territory (Ex): A ranger knows every trick the terrain has to offer. His bonus in favored terrain applies also to initiative rolls and Relfex saves against area effects.
* Home Ground (Ex): A ranger draws inner strength when in familiar area. His bonus in favored terrain applies also to Will saves.
* Outmaneuver Enemy (Ex): A Ranger knows how to move in such way that his enemies are cornered and flanked easily. His favored enemy bonus applies also to attack rolls against flanked enemies.
* Resist Enemy (Ex): A ranger's favored enemy bonus applies also to his saving throws against extraordinary, spell-like, and supernatural abilities used by his favored enemies.
* Wound Enemy (Ex): A ranger knows how to wound his favored enemies that are normally resistant to mundane weapons. He bypasses (ignores) up to 3 points of Damage Reduction of his favored enemies for every point of Hunting Grounds bonus. 

!!Epic Ranger
Whether cunning protector of the wild or cold-blooded hunter of the weak, the epic ranger is one with the wilderness, moving with deadly grace and keen mind through natural world.
|Level |Special |
|21st |- |
|22nd |- |
|23rd |Bonus feat |
|24th |- |
|25th |Hunting grounds |
|26th |Bonus feat |
|27th |- |
|28th |- |
|29th |Bonus feat |
|30th |- |

''Bonus Feat'': An epic ranger gains bonus feat at 23rd level and every 3 levels thereafter (26th, 29th, 32nd, and so on). Whenever he gains a bonus feat from this ability, he may either take an epic feat, or two non-epic feats, or two Outdoorsman abilities. The list of available epic feats is same as in Epic Level Handbook.

''Hunting Grounds'': An epic ranger gains additional favored enemy or terrain at 25th level and every 6 levels thereafter (31st, 37th, 43rd, and so on).


1	0	Track, Hunting Grounds
2	1	Combat Style
3	2	Style (I)
4	3	Outdoorsman
5	3	
6	4	
7	5	Outdoorsman
8	6	Combat Style
9	6	
10	7	Outdoorman
11	8	
12	9	
13	9	Outdoorsman
14	10	
15	11	Combat Style
16	12	Outdoorsman
17	12	
18	13	
19	14	Outdoorsman
20	15	


1	0	Track, Hunting Grounds
2	1	Combat Style, Bonus Trick
3	2	Style (I)
4	3	Outdoorsman
5	3	Hunting Grounds
6	4	Bonus Trick
7	5	Style (II)
8	6	Outdoorsman
9	6	Improved Combat Style, Hunting Grounds
10	7	Bonus Trick
11	8	Style (III)
12	9	Outdoorsman
13	9	Hunting Grounds
14	10	Bonus Trick
15	11	Style (IV)
16	12	Combat Style Mastery, Outdoorsman
17	12	Hunting Grounds
18	13	Bonus Trick
19	14	Style (V)
20	15	Outdoorsman


Combat Style	Basic				Improved			Mastery
Archery		Rapid Shot			Manyshot			Improved Precise Shot
Charger		Improved Bull Rush		Spring Attack			Bounding Assault
Mounted		Ride-By Attack			Spirited Charge			Trample
Sharpshooter	???				???				???
Strong		Power Attack			Improved Sunder			Great Cleave
Throwing	Point Blank Shot		Quick Draw			Far Shot
Tempest		Two-Weapon Fighting		Improved Two-Weapon Fighting	Greater Two-Weapon Fighting
Wrestling	Improved Trip			Improved Grapple		Whirlwind Attack

Style		I				II			III				IV			V
Medic		Specialist, Expert Healer	Medic's Mastery		Resuscitate			???			Revive
Manhunter	Dead or Alive, Urban Tracking	Ambush			Accelerated Urban Tracking	Cripple			Tracker's Mastery
Marksman	Peek Out			Skirmish		Defensive Shot			Ranged Threat		Ricochet
Scout		Rover, Trackless Step		Riposte			Flawless Stride			Camouflage		Hide In Plain Sight
Trainer		Trainer				Empathy			The Hunt			Greater Flanking	Will of the Pack
/***
| Name:|RenameTagsPlugin|
| Description:|Allows you to easily rename or delete tags across multiple tiddlers|
| Version:|3.0 ($Rev: 1845 $)|
| Date:|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $|
| Source:|http://mptw.tiddlyspot.com/#RenameTagsPlugin|
| Author:|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
Rename a tag and you will be prompted to rename it in all its tagged tiddlers.
***/
//{{{
config.renameTags = {

	prompts: {
		rename: "Rename the tag '%0' to '%1' in %2 tidder%3?",
		remove: "Remove the tag '%0' from %1 tidder%2?"
	},

	removeTag: function(tag,tiddlers) {
		store.suspendNotifications();
		for (var i=0;i<tiddlers.length;i++) {
			store.setTiddlerTag(tiddlers[i].title,false,tag);
		}
		store.resumeNotifications();
		store.notifyAll();
	},

	renameTag: function(oldTag,newTag,tiddlers) {
		store.suspendNotifications();
		for (var i=0;i<tiddlers.length;i++) {
			store.setTiddlerTag(tiddlers[i].title,false,oldTag); // remove old
			store.setTiddlerTag(tiddlers[i].title,true,newTag);  // add new
		}
		store.resumeNotifications();
		store.notifyAll();
	},

	storeMethods: {

		saveTiddler_orig_renameTags: TiddlyWiki.prototype.saveTiddler,

		saveTiddler: function(title,newTitle,newBody,modifier,modified,tags,fields) {
			if (title != newTitle) {
				var tagged = this.getTaggedTiddlers(title);
				if (tagged.length > 0) {
					// then we are renaming a tag
					if (confirm(config.renameTags.prompts.rename.format([title,newTitle,tagged.length,tagged.length>1?"s":""])))
						config.renameTags.renameTag(title,newTitle,tagged);

					if (!this.tiddlerExists(title) && newBody == "")
						// dont create unwanted tiddler
						return null;
				}
			}
			return this.saveTiddler_orig_renameTags(title,newTitle,newBody,modifier,modified,tags,fields);
		},

		removeTiddler_orig_renameTags: TiddlyWiki.prototype.removeTiddler,

		removeTiddler: function(title) {
			var tagged = this.getTaggedTiddlers(title);
			if (tagged.length > 0)
				if (confirm(config.renameTags.prompts.remove.format([title,tagged.length,tagged.length>1?"s":""])))
					config.renameTags.removeTag(title,tagged);
			return this.removeTiddler_orig_renameTags(title);
		}

	},

	init: function() {
		merge(TiddlyWiki.prototype,this.storeMethods);
	}
}

config.renameTags.init();

//}}}

/***
| Name|SaveCloseTiddlerPlugin|
| Description|Provides two extra toolbar commands, saveCloseTiddler and cancelCloseTiddler|
| Version|3.0 ($Rev: 2134 $)|
| Date|$Date: 2007-04-30 16:11:12 +1000 (Mon, 30 Apr 2007) $|
| Source|http://mptw.tiddlyspot.com/#SaveCloseTiddlerPlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
To use these you must add them to the tool bar in your EditTemplate
***/
//{{{
merge(config.commands,{

	saveCloseTiddler: {
		text: 'done/close',
		tooltip: 'Save changes to this tiddler and close it',
		handler: function(e,src,title) {
			config.commands.saveTiddler.handler(e,src,title);
			config.commands.closeTiddler.handler(e,src,title);
			return false;
		}
	},

	cancelCloseTiddler: {
		text: 'cancel/close',
		tooltip: 'Undo changes to this tiddler and close it',
		handler: function(e,src,title) {
			config.commands.cancelTiddler.handler(e,src,title);
			config.commands.closeTiddler.handler(e,src,title);
			return false;
		}
	}

});

//}}}

/***
| Name|SelectPalettePlugin|
| Description|Lets you easily change colour palette|
| Version|3.0 ($Rev: 1845 $)|
| Date|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $|
| Source|http://mptw.tiddlyspot.com/#SelectPalettePlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
/***
!!Usage:
{{{<<<selectPalette>>}}}
<<selectPalette>>

!!WARNING
Will overwrite your ColorPalette tiddler.
***/

//{{{

merge(config.macros,{

	setPalette: {

		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			var paletteName = params[0] ? params[0] : tiddler.title;
			createTiddlyButton(place,"apply","Apply this palette",function(e) {
				config.macros.selectPalette.updatePalette(tiddler.title);
				return false;
			});
		}
	},

	selectPalette: {

		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			createTiddlyDropDown(place,this.onPaletteChange,this.getPalettes());
		},

		getPalettes: function() {
			var result = [
				{caption:"-palette-", name:""},
				{caption:"(Default)", name:"(default)"}
			];
			var tagged = store.getTaggedTiddlers("palette","title");
			for(var t=0; t<tagged.length; t++) {
				var caption = tagged[t].title;
				var sliceTitle = store.getTiddlerSlice(caption,"Name");
				if (sliceTitle)
					caption = sliceTitle;
				result.push({caption:sliceTitle, name:tagged[t].title});
			}
			return result;
		},

		onPaletteChange: function(e) {
			config.macros.selectPalette.updatePalette(this.value);
			return true;
		},

		updatePalette: function(title) {
			if (title != "") {
				store.deleteTiddler("ColorPalette");
				if (title != "(default)")
					store.saveTiddler("ColorPalette","ColorPalette",store.getTiddlerText(title),
								config.options.txtUserName,undefined,"");
				this.refreshPalette();
				if(config.options.chkAutoSave)
					saveChanges(true);
			}
		},

		refreshPalette: function() {
			config.macros.refreshDisplay.onClick();
		}
	}
});

config.shadowTiddlers.OptionsPanel = "<<selectPalette>>\n\n" + config.shadowTiddlers.OptionsPanel;

//}}}

TRUTH
Veritas
//\Skir"mish*er\, n. One who skirmishes. Specifically: pl. (Mil.) Soldiers deployed in loose order, to cover the front or flanks of an advancing army or a marching column.//

Starting Age: Moderate (same as bard, fighter, paladin, and others).
Starting Gold: 6d4 x 10 (average 150 gp)

!!Game Rule Information
Skirmishers have the following game statistics.

''Hit Points per Level'': 1d8. 
''Skill Points per Level'': 4 + Int modifier. 

''Class Skills'': -

|!Level |!BAB |!Fort |!Ref |!Will |!Special |!Fst Mvmnt |
|1st |+0 |+0 |+2 |+0 |Deadly trance, weapon finesse |+5 ft. |
|2nd |+1 |+0 |+3 |+0 |Swift grace |- |
|3rd |+2 |+1 |+3 |+1 |Lesser reel |- |
|4th |+3 |+1 |+4 |+1 |Marvelous charge |- |
|5th |+3 |+1 |+4 |+1 |Lesser reel |+5 ft. |
|6th |+4 |+2 |+5 |+2 |Skirmish +1 |- |
|7th |+5 |+2 |+5 |+2 |Lesser reel |- |
|8th |+6/+1 |+2 |+6 |+2 |Remember the pain |- |
|9th |+6/+1 |+3 |+6 |+3 |Lesser reel |+5 ft. |
|10th |+7/+2 |+3 |+7 |+3 |Trance technique |- |
|11th |+8/+3 |+3 |+7 |+3 |Greater reel |- |
|12th |+9/+4 |+4 |+8 |+4 |Skirmish +2 |- |
|13th |+9/+4 |+4 |+8 |+4 |Trance technique |+5 ft. |
|14th |+10/+5 |+4 |+9 |+4 |Greater reel |- |
|15th |+11/+6/+1 |+5 |+9 |+5 |Kill and kill again |- |
|16th |+12/+7/+2 |+5 |+10 |+5 |Trance technique |- |
|17th |+12/+7/+2 |+5 |+10 |+5 |Greater reel |+5 ft. |
|18th |+13/+8/+3 |+6 |+11 |+6 |Skirmish +3 |- |
|19th |+14/+9/+4 |+6 |+11 |+6 |Trance technique |- |
|20th |+15/+10/+5 |+6 |+12 |+6 |Greater reel |- |

!!Class Features
All of the following are class features of the skirmisher.

''Weapon and Armor Proficiency'': Skirmishers are proficient with all simple and martial weapons, and light armors.

//Skirmisher and Rapid Abilities//: A number of abilities granted by the skirmisher class require her not to be seriously encumbered to work. Any ability with [Rapid] descriptor works only when a skirmisher is wearing light or no armor, and carries light or no load.

''Deadly Trance (Ex) [Rapid]'': At 1st level, a skirmisher can become deadly whirling acrobat. While in a trance, a skirmisher who performs full attack action with a slashing or piercing weapon (or weapons) gains additional melee attack at full attack bonus. She also receives a +4 bonus to Dexterity regardless of the actions she takes. A skirmisher can be in a trance a total number of rounds per day equal to her skirmisher level + her Dexterity bonus (bonus granted by this ability does not increase the duration). Activating this ability is a free action usable only during skirmisher's turn and can be ended prematurely. For example, a skirmisher could enter deadly trance for 3 rounds, then act without it for the next 2 rounds, and then enter it again if she only has rounds to use left.

''Weapon Finesse (Ex)'': At 1st level, a skirmisher gains this feat for free.

''Fast Movement (Ex) [Rapid]'': At 1st level, a skirmisher gains a +5 enhancement bonus to her speed. This bonus increases by 5 ft. every 4 levels thereafter.

''Swift Grace (Ex) [Rapid]'': At 2nd level, a skirmisher can add her base Reflex save to all Initiative checks and to AC (as a dodge bonus) against one attack per round.

''Lesser Reel (Ex) [Rapid]'': A skirmisher can adopt a specific way of moving to become more adept at combat. At 3rd, 5th, 7th, and 9th levels, she learns one reel from the list below. At the beginning of each turn, a skirmisher can activate any lesser reel she knows as a free action, and benefits from its effects until the beginning of her next turn.

* //Blade Block//: A skirmisher gains +3 shield bonus to AC. This bonus increases to +6 if she fights defensively or takes full defense action. This bonus is not effective against weapons 2 or more sizes bigger (3 if a skirmisher wields 2 weapons) than the weapon she is using to defend herself.

* //Blitz Strike//: A skirmisher can make 2 attacks (second with a -5 penalty) when charging, instead of usual one.* //Cling//: A skirmisher gains a climb speed of half her land speed. At the end of her turn she loses this climb speed and may need to make a climb check to stay on the surface.* //Complete Determination//: A skirmisher gains +3 morale bonus on Reflex and Will saves.

* //Dance of Steel//: If a skirmisher takes a move action to moves at least 10 feet, her melee attacks in the same turn cause +1 point of precision damage per skirmisher level (maximum +10). Creatures immune to critical hits are immune to precision damage.* //Flying Steps//: A skirmisher is immune to trip attempts and gains +2 bonus on saves and checks against effects that stop or slow her down.

* //Improved Articulation//: A skirmisher ignores arcane spell failure, armor check penalty, and weight of light armors.

* //Longshot//: Every weapon a skirmisher holds without range increment has range increment 10 ft.

* //Perfection in Movement//: A skirmisher adds her class level (maximum +10) as a competence bonus on Balance, Jump, and Tumble checks.

* //Riposte//: Whenever an opponent attacks a skirmisher and misses, she gains attack of opportunity against that opponent as a immediate action. This attack of opportunity does not count against the character's attacks of opportunity for that round.

* //Tango of Death//: A skirmisher adds her Intelligence modifier instead of Strength modifier to weapon damage.

* //Tread Lightly//: A skirmisher gains +8 dodge bonus to AC against attacks of opportunity caused by movement.

* //Vanishing Target//: A skirmisher gains benefits of evasion and uncanny dodge abilities. 

''Marvelous Charge (Ex) [Rapid]'': At 4th level, a skirmisher can charge in situations where others cannot. She may charge over difficult terrain that normally slows movement or creatures blocking her path. She can charge down steep stairs, leap down from a deck to pier, or tumble over tables to get to opponent. Depending on the circumstance, she may still need to make appropriate checks (Jump or Tumble checks, in particular) to successfully move over the terrain.

''Skirmish (Ex)'': A 6th level skirmisher is trained to fight without a formation. When there is no ally within 20 feet from him, the skirmisher gains +1 morale bonus on all iterative melee attack rolls and saves against fear. This bonus increases by +1 every 6 more levels the skirmisher has (+2 at 12th level, +3 at 18th level). Iterative attacks cannot have higher bonus than 1st attack, which means that this ability can add maximum +5 to the 2nd attack, +10 to the third attack, and +15 to the fourth attack.

''Remember the Pain (Ex)'': At 8th level, a skirmisher learns how to discourage monsters from attacking her by inflicting wracking pain they will remember for a long time. Whenever a skirmisher deals at least 10 points of damage with a single attack to a living creature with Intelligence score of at least 1, the creature must make a Will save (DC = damage dealt) or it's shaken until end of the round each time it attacks the skirmisher, for 1 hour. If a creature makes the save, it becomes immune to remember the pain for the next 24 hours. This is mind-affecting ability.

''Trance Technique (Ex) [Rapid]'': At 10th, 13th, 16th, and 19th levels, a skirmisher picks up one technique to improve or modify her deadly trance. All those abilities can be used only when a skirmisher is under effects of deadly trance.

* //Disorienting Assault//: By sacrificing 1 round of deadly trance's duration as a swift action, a skirmisher makes a creature she threatens confused for 1 round (Will save negates, DC is 10 + half skirmisher's levels + skirmisher's Intelligence modifier).* //Ever-Moving//: By sacrificing 1 round of deadly trance's duration as a immediate action, a skirmisher can move 5 feet. This is not 5-feet movement action, but it can be performed even during other character's turn.* //Impossibly Fast//: By sacrificing 8 rounds of deadly trance's duration as a swift action, a skirmisher gains one extra turn after the current one. This ability can only be used once per minute.* //Lucky Roll//: By sacrificing 1 round of deadly trance's duration as a non-action, a skirmisher can re-roll any Reflex save.* //Nimble Charge//: By sacrificing 2 rounds of deadly trance's duration as a part of charge, the skirmisher doesn't have to charge in a straight line as long as each square she move into is not be farther from the target than the previous one. In addition, she can charge through difficult terrain (including squares occupied by her allies).* //Storm of Strikes//: By sacrificing 1 round of deadly trance's duration as a non-action, a skirmisher can make one additional attack of opportunity this round.* //Puncturing Blow//: By sacrificing 1 round of deadly trance's duration as a free action, a skirmisher makes her next attack within the same round ignore all hardness and Damage Reduction.* //Reach the Sky//: By sacrificing 1 round of deadly trance's duration as a part of jump action, a skirmisher gains +50 competence bonus on the Jump check.* //Surge of Agility//: By sacrificing 1 round of deadly trance's duration as a swift action, Dexterity bonus granted by deadly trance improves to +8 until the beginning of next turn.* //Sure Strike//: By sacrificing 2 rounds of deadly trance's duration as a swift action, a skirmisher makes her next attack within the same round ignore all dodge, deflection, and luck bonuses to AC, as well as concealment other than total.* //Tiny Threat//: By sacrificing 1 round of deadly trance's duration as a free action, a skirmisher gains the Slight Build racial ability until the beginning of her next turn. 


''Greater Reel (Ex) [Rapid]'': A skirmisher can adopt a specific way of moving to become even more adept at combat. At 11th, 14th, 17th, and 20th levels, she learns one reel from the list below. At the beginning of each turn, a skirmisher can activate any greater reel she knows as a free action, and benefits from its effects until the beginning of her next turn. A skirmisher can be under effects of one lesser and one greater reel at one time.

* //Blade Wall//: A skirmisher gains +6 shield bonus to AC. This bonus increases to +9 if she fights defensively or takes full defense action. This bonus is not effective against weapons 2 or more sizes bigger (3 if a skirmisher wields 2 weapons) than the weapon she is using to defend herself. A skirmisher must have lesser reel: blade block to take this ability.* //Constant Adjustment//: A skirmisher can make two 5-foot step actions per round, instead of one.* //Elusive Target//: A skirmisher gains benefits of improved evasion and improved uncanny dodge abilities. She must have lesser reel: vanishing target to take this ability.* //Feel the Enemy//: Skirmisher's attacks ignore concealment.* //Get Behind the Shell//: Skirmisher's attacks ignore natural armor bonuses to AC.* //Moment of Inattention//: A skirmisher does not provoke attacks of opportunity. She must have lesser reel: tread lightly to take this ability.* //Perfect Riposte//: Whenever an opponent attacks a skirmisher and misses, she gains attack of opportunity against that opponent. This attack of opportunity counts against the character's attacks of opportunity for that round. A skirmisher must have lesser reel: riposte to take this ability.* //Roam//: A skirmisher is under constant effects of freedom of movement spell. This is a supernatural ability.* //Seeking Blade//: Skirmisher's attacks ignore dodge and deflection bonuses to AC.* //Swirling Cape//: A skirmisher has 40% concealment. He cannot use this concealment to hide though. 


''Kill and Kill Again (Ex)'': At 15th level, a skirmisher fuels his trance by slaying his opponents in combat. Whenever he kills an enemy with 5 or more Hit Dice who dealt at least 20 points of damage to the skirmisher within 1 minute before her death, he regains 1 extra round of deadly trance.

!!Epic Skirmisher
The epic skirmisher is a living lighting of speed and death. Her ability to quickly dispatch of enemies and avoid their dangerous attacks at the same time has no equals, even among spellcasters.

|Level |Special |
|21st |Fast movement +5 ft. |
|22nd |Bonus feat |
|23rd |Reel or technique |
|24th |Fast movement +5 ft. skirmish +4 |
|25th |Bonus feat |
|26th |Reel or technique |
|27th |Fast movement +5 ft. |
|28th |Bonus feat |
|29th |Reel or technique |
|30th |Fast movement +5 ft. skirmish +5 |

''Bonus Feat'': An epic skirmisher gains bonus feat at 22nd level and every 3 levels thereafter (25th, 28th, 31st, and so on). The available epic feats are: Blinding Speed, Devastating Critical, Dire Charge, Epic Fortitude, Epic Prowess, Epic Reflexes, Epic Reputation, Epic Speed, Epic Toughness, Epic Will, Improved Combat Reflexes, Legendary Leaper, Overwhelming Critical, Penetrate Damage Reduction, Perfect Two-Weapon Fighting, Spellcasting Harrier, Superior Initiative, and Two-Weapon Rend.

''Reel or Technique'': An epic skirmisher gains extra ability at 23rd level and every 3 levels thereafter (26th, 29th, 32nd, and so on). She can freely choose that ability from lesser reels, greater reels, and trance techniques.

''Fast Movement'': An epic skirmisher's speed increases by 10 feet at 21st level and every 3 levels thereafter (27th, 30th, 33rd, and so on).

''Skirmish'': An epic skirmisher's bonuses to attack rolls and fear saves continue to improve at the rate of +1 every 6 levels up to 90th level. 
//\Sol"dier\, n. One who is engaged in military service; one who serves in an army; one of an organized body of combatants.//

!!Game Rule Information
Fighters have the following game statistics.

''Alignment'': Any.
''Hit Points per Level'': 1d10
''Skill Points per Level'': 4 + Int modifier.

''Class Skills'': The fighter's class skills (and the key ability for each skill) are Balance (Dex), Climb (Str), Craft (Int), Handle Animal (Cha), Heal (Wis), Intimidate (Cha), Jump (Str), Knowledge (History) (Int), Perform (weapon drill) (Cha); Profession (Wis), Ride (Dex), Spot (Wis), Swim (Str), and Use Rope (Dex).
|!Level |!BAB |!Fort |!Ref |!Will |!Special |
|1st |+1 |+2 |+0 |+0 |Bonus feat |
|2nd |+2 |+3 |+0 |+0 |Art of battle, veteran |
|3rd |+3 |+3 |+1 |+1 |Bonus feat |
|4th |+4 |+4 |+1 |+1 |Art of battle |
|5th |+5 |+4 |+1 |+1 |Bonus feat, shift tactics |
|6th |+6/+1 |+5 |+2 |+2 |Art of battle |
|7th |+7/+2 |+5 |+2 |+2 |Bonus feat |
|8th |+8/+3 |+6 |+2 |+2 |Art of battle |
|9th |+9/+4 |+6 |+3 |+3 |Bonus feat |
|10th |+10/+5 |+7 |+3 |+3 |Art of battle |
|11th |+11/+6/+1 |+7 |+3 |+3 |Bonus feat |
|12th |+12/+7/+2 |+8 |+4 |+4 |Warcraft |
|13th |+13/+8/+3 |+8 |+4 |+4 |Bonus feat |
|14th |+14/+9/+4 |+9 |+4 |+4 |Warcraft |
|15th |+15/+10/+5 |+9 |+5 |+5 |Bonus feat |
|16th |+16/+11/+6/+1 |+10 |+5 |+5 |Warcraft |
|17th |+17/+12/+7/+2 |+10 |+5 |+5 |Bonus feat |
|18th |+18/+13/+8/+3 |+11 |+6 |+6 |Warcraft |
|19th |+19/+14/+9/+4 |+11 |+6 |+6 |Bonus feat |
|20th |+20/+15/+10/+5 |+12 |+6 |+6 |Warcraft |

!!Class Features
All of the following are class features of the fighter.

''Weapon and Armor Proficiency'': A fighter is proficient with all simple and martial weapons and with all armor (heavy, medium, and light) and shields (including tower shields). Same as in Player's Handbook.

''Bonus Feats'': At 1st level, and every 2 levels thereafter (3rd, 5th, 7th, and so on) a fighter gets a bonus feat. A fighter can only take a feat if in this feat's description it says that it's a bonus fighter feat.

''Art of Battle'': At 2nd level, and every 2 levels thereafter up to level 10, a fighter learns combat trick that can only be performed by experienced warriors. Every art of battle expands possible uses of veteran ability (see below).

* //Astonishing Maneuver (Ex)//: By spending one use of veteran ability as a swift action, a fighter can use any exotic weapon as if it was a different exotic weapon he is proficient with, for one round.
* //Bodyguard (Ex)//: By spending one use of veteran ability as a swift action, if you are within 5 ft. of any ally who takes damage from an attack, you can take all the damage and all associated effects instead.
* //Cavalier (Ex)//: By spending one use of veteran ability as a swift action, when the fighter or his mount takes any damage while he is its rider, the fighter can redirect any number of that damage to the other one.
* //Comforting Cuirass (Ex)//: When fighter is throwing a Will save, he can spend one use of veteran ability to gain bonus on that save equal to half his armor's bonus to AC (including enhancement bonus, if any).
* //Death Blow (Ex)//: If a fighter scores a critical threat on an attack roll, he can spend one use of veteran ability as a swift action. If he does, the attack is autmatically a critical hit.
* //Fencer (Ex)//: By spending one use of veteran ability as a swift action, a fighter can use Perform (weapon drill) skill instead of Bluff (to mislead an opponent in melee combat), instead of Sleigh of Hand (to draw a hidden weapon), or instead of Intimidate (to demoralize opponent).
* //Foil Enemy (Ex)//: By spending one use of veteran ability, a fighter can interrupt enemy's action. To foil, he must hit with a melee touch attack or ranged touch attack within first range increment. Using foil is an immediate action. A Fighter may not wait until an action is partially completed before deciding to attempt to foil it, but must instead make an attempt as it is declared. Note that this means that a Fighter may not foil a Full Attack (because it is not declared until after it has already begun), nor may he foil a move or charge action that began out of range. Foiled action is wasted, and any spell slots, limited ability uses, or the like used to power it are expended. (Original idea by K)
* //Instinctive Maneuver (Ex)//: By spending one use of veteran ability as a swift action, a fighter can gain benefits of a fighter feat he doesn't know for one round. The fighter must meets feat's prerequisites.
* //Marksman (Ex)//: By spending one use of veteran ability as a swift action, a fighter can use his Dexterity modifier instead of Strength modifier on damage rolls with ranged weapons for one round.
* //Nullify Advantage (Ex)//: By spending one use of veteran ability as a swift or immediate action, you make an opponent within your reach ignore all circumstance bonuses and bonuses granted by feats to AC, attacks, and damage rolls until the beginning of your next turn.
* //Shield Guardian (Ex)//: By spending one use of veteran ability as a swift action, if you are within 5 ft. of any ally, you grant him shield bonus to AC equal to one you possess, until the beginning of your next turn. This bonus stacks with any shield bonus the ally might have.
* //Soldier of Fortune (Ex)//: While in combat and within 10 ft. from any enemy, a fighter can spend one use of veteran ability to re-roll a failed saving throw made to resist an effect or ability of any foe.
* //Supreme Positioning (Ex)//: By spending one use of veteran ability as a free action, a fighter can ignore all penalties caused by armor (arcane spell failure, armor check penalty, speed reduction, etc.) for 1 round.
* //Swift Strike (Ex)//: By spending one use of veteran ability as a swift action, a fighter can take an attack action as a move action instead of standard action.
* //Tactician (Ex)//: By spending one use of veteran ability as a immediate action, a fighter can grant one extra attack of opportunity to an ally within 30 feet or move a willing ally by 5 ft in any direction. If he moves one ally, that movement does not provoke attacks of opportunity. For this ability to work, a fighter must be able to speak and an ally must be able to understand him. 

''Veteran (Ex)'': A 2nd level fighter can re-roll a failed attack roll as a swift action. He can use this ability a number of times per day equal to half his fighter level + his Intelligence modifier.

''Shift Tactics (Ex)'': Beginning at 5th level, as his combat skill grows, a fighter can adapt his tactical abilities to the changing challenges he encounters. Whenever he gains a fighter level (including level 5), he can exchange any [fighter] feat he has with another such feat. He must meet all prerequisites of the new feat. He cannot lose a feat that is the prerequisite for any other feats or abilities he has.

''Warcraft'': At 12th level, and every 2 levels thereafter (14th, 16th, 18th, and 20th), a fighter gains a special ability of his choice from among the following options. He can opt to take a bonus fighter feat or art of battle ability instead.

* //Adapt to Opponent (Ex)//: A fighter knows how to adapt to opponent's combat techniques and thus gain advantage over the course of battle. For each two rounds a fighter is engaged in combat with an opponent, or observes that opponent fighting, he gains cumulative +1 circumstance bonus on attack rolls, damage rolls, and AC against that opponent until the end of encounter. This bonus cannot exceed +1 per 5 fighter levels.
* //Armored Mobility (Ex)//: A fighter treats heavy armor he wears as medium and medium armor as light for purposes of determining his speed and running capabilities. This does not stack with abilities of mithral armor or any other similar effects.
* //Articulation (Ex)//: A fighter ignores 2 points of armor check penalty and increases maximum Dex bonus of any armor he wears by +2. This ability does not stack with bonuses granted by mithral armor.
* //Battlefield Superiority (Ex)//: A fighter suffers a cumulative -3 penalty on all iterative attacks, instead of the usual -5. For example, a character with BAB +19 and this ability performs full attack with +19/+16/+13/+10 bonuses, not +19/+14/+9/+4.
* //~Counter-Tactics: Archers (Ex)//: A fighter knows how to defend himself from projectiles and thrown weapons. He gains a +3 dodge bonus to AC against all ranged attacks.
* //~Counter-Tactics: Brutes (Ex)//: A fighter knows how to fight melee opponents who rely on brute force. He gains +5 bonus against attempts to bull-rush, trip, or overrun him.
* //~Counter-Tactics: Flyers (Ex)//: A fighter knows how to fight flying creatures. He gains a +5 dodge bonus to AC against flying opponents, and +3 dodge bonus to AC against opponents attacking from higher ground or horseback.
* //~Counter-Tactics: Fencers (Ex)//: A fighter knows how to fight melee opponents who use various skillful tactics. He gains +5 bonus against attempts to disarm, feint, or sunder him or items in his possession.
* //~Counter-Tactics: Giants (Ex)//: A fighter underwent similar training to the dwarven anti-giant training. He gains +2 dodge bonus to AC against opponents who are one size category larger than the fighter. This bonus increases by +2 for each difference in size category. For example, a large fighter gains +6 dodge bonus to AC against all colossal creatures. Despite being of different types, this AC bonus does not stack with dwarven bonus against giants.
* //~Counter-Tactics: Leaders (Ex)//: A fighter knows how to fight opponents who command their troops. As a standard action that does not provoke attacks of opportunity, a fighter makes Intimidate check to demoralize opponents (see Intimidate skill, page 76). Every opponent within 30 feet with Intelligence score of 3 or more that becomes demoralized, loses all morale bonuses to abilities, attack and damage rolls, and skills (this includes bonuses from spells and spell-like effects), for a number of rounds equal to 3 + fighter's Charisma modifier.
* //~Counter-Tactics: Mages (Ex)//: A fighter knows how to fight spellcasters. He gains +5 dodge bonus to AC against spells and spell-like effects. In addition, he can use Constitution modifier in place of Wisdom modifier when making Will saves against spells and spell-like abilities.
* //~Counter-Tactics: Mobs (Ex)//: A fighter knows well how to defend himself from multiple opponents at the same time. He gains +2 dodge bonus to AC and Damage Reduction 5 against attacks made by all opponents after the first one in any given round.
* //~Counter-Tactics: Opportunists (Ex)//: A fighter knows how to fight melee opponents who use opportunity to deliver deadly blows. He gains +5 dodge bonus to AC against attacks of opportunity and gains Damage Reduction equal to half his fighter level against precision damage.
* //~Counter-Tactics: Snatchers (Ex)//: A fighter knows how to fight grasping creatures. He gains +5 dodge bonus against grapple attempts and bite attacks. He also gains Damage Reduction equal to half his fighter level against bite attacks, constriction, and crushing damage when swallowed whole.
* //Diversity (Ex)//: Each feat that works with only one weapon the fighter has, now applies not to one weapon, but to a number of weapons equal to 3 + fighter's Intelligence bonus (if positive).
* //Mastery of Armors (Ex)//: A fighter knows how to protect others with his armor. While wearing heavy armor, he can be used as cover by his allies.
* //Mastery of Feats (Ex)//: A fighter treats his ability scores as 4 points higher for the purpose of meeting requirements of feats with fighter descriptor.
* //Mastery of Shields (Ex)//: A fighter knows how to use shield to the fullest of its usefulness. He adds his shield bonus on all Reflex saves.
* //Reign of Steel (Ex)//: Fighter with this ability is trained to use his armor and shield to protect himself from a variety of environmental dangers. He reduces the damage he takes from fire, acid and cold effects by the armor and shield bonuses to AC. Furthermore, he reduces any falling damage by his armor bonus to AC.
* //Siege Engineering (Ex)//: A fighter can use Aid Another action on one siege weapon he commands. This grants it a +4 bonus on attack rolls and +4d6 bonus on damage rolls. He can also command at one time a number of siege weapons equal to his level, none two of which can be more than 100 feet away (or 400 feet away, if he has messengers on his disposal). All siege weapons he commands have their firing range increased by 10%.
* //Skills of War (Ex)//: A fighter has invested in learning skills that are not about killing others, but still essential on the battlefield. He gains +5 bonus on Craft (armorsmithing, bowmaking and weaponsmithing) checks, on Heal checks to perform first aid, on Bluff checks to perform feint in combat, and on Knowledge skills to determine enemies' abilities and weaknesses.
* //Supreme Combat Skills (Ex)//: You have trained your combat skills beyond the levels known to mundane warriors. As a result, you increase bonuses granted by two chosen feats by +2 (bonus types stay unchanged). The available feats are: Dodge, Improved Bull Rush, Improved Disarm, Improved Grapple, Improved Initiative, Improved Overrun, Improved Sunder, Improved Trip, Mobility, and Trample. This ability can be taken more than once, but each time the fighter much choose 2 feat he didn't yet choose.
* //Watch Duty (Ex)//: The fighter needs only half as much sleep as normal person of his race would and gains immunity to sleep effects. In addition, the fighter can see all invisible creatures and objects as blurred, and can hear sounds in area of silence, but with a -10 penalty. 

!!Epic Fighter
The epic fighter is a combat machine, a master of more battle maneuvers than any other character in the game. More than a mere sword-swinger, the epic fighter knows how to best his opponents in any arena.

''Hit Points per Level'': 1d10
''Skill Points per Level'': 4 + Int modifier.
|!Level |!Special |
|21th |Bonus feat |
|22th |Warcraft |
|23th |Bonus feat |
|24th |Warcraft |
|25th |Bonus feat |
|26th |Warcraft |
|27th |Bonus feat |
|28th |Warcraft |
|29th |Bonus feat |
|30th |Warcraft |

''Bonus Feat'': An epic fighter gains bonus feat at 21st level and every 2 levels thereafter (23rd, 25th, 27th, and so on). Whenever he gains a bonus feat from this ability, he may either take an epic feat, or two non-epic feats. The list of available epic feats is same as in Epic Level Handbook.

''Warcraft'': An epic fighter gains extra special ability at 22nd level and every 2 levels thereafter (24th, 26th, 28th, and so on). 
[[MptwStyleSheet]]
<<allTags excludeLists>>
<<tabs txtMoreTab "Tags" "All Tags" TabAllTags "Miss" "Missing tiddlers" TabMoreMissing "Orph" "Orphaned tiddlers" TabMoreOrphans "Shad" "Shadowed tiddlers" TabMoreShadowed>>
<<allTags excludeLists [a-z]>>
/***
| Name|TagglyTaggingPlugin|
| Description|tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate|
| Version|3.1 ($Rev: 2341 $)|
| Date|$Date: 2007-07-05 10:02:27 +1000 (Thu, 05 Jul 2007) $|
| Source|http://mptw.tiddlyspot.com/#TagglyTaggingPlugin|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
See http://mptw.tiddlyspot.com/#TagglyTagging
***/
//{{{
config.taggly = {

	// for translations
	lingo: {
		labels: {
			asc:        "\u2191", // down arrow
			desc:       "\u2193", // up arrow
			title:      "title",
			modified:   "modified",
			created:    "created",
			show:       "+",
			hide:       "-",
			normal:     "normal",
			group:      "group",
			commas:     "commas",
			sitemap:    "sitemap",
			numCols:    "cols\u00b1", // plus minus sign
			label:      "Tagged as '%0':",
			excerpts:   "excerpts",
			contents:   "contents",
			sliders:    "sliders",
			noexcerpts: "title only"
		},

		tooltips: {
			title:    "Click to sort by title",
			modified: "Click to sort by modified date",
			created:  "Click to sort by created date",
			show:     "Click to show tagging list",
			hide:     "Click to hide tagging list",
			normal:   "Click to show a normal ungrouped list",
			group:    "Click to show list grouped by tag",
			sitemap:  "Click to show a sitemap style list",
			commas:   "Click to show a comma separated list",
			numCols:  "Click to change number of columns",
			excerpts: "Click to show excerpts",
			contents: "Click to show entire tiddler contents",
			sliders:  "Click to show tiddler contents in sliders",
			noexcerpts: "Click to show entire title only"
		}
	},

	config: {
		showTaggingCounts: true,
		listOpts: {
			// the first one will be the default
			sortBy:     ["title","modified","created"],
			sortOrder:  ["asc","desc"],
			hideState:  ["show","hide"],
			listMode:   ["normal","group","sitemap","commas"],
			numCols:    ["1","2","3","4","5","6"],
			excerpts:   ["noexcerpts","excerpts","contents","sliders"]
		},
		valuePrefix: "taggly.",
		excludeTags: ["excludeLists","excludeTagging"],
		excerptSize: 50,
		excerptMarker: "/%"+"%/"
	},

	getTagglyOpt: function(title,opt) {
		var val = store.getValue(title,this.config.valuePrefix+opt);
		return val ? val : this.config.listOpts[opt][0];
	},

	setTagglyOpt: function(title,opt,value) {
		if (!store.tiddlerExists(title))
			// create it silently
			store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),null);
		// if value is default then remove it to save space
		return store.setValue(title,
			this.config.valuePrefix+opt,
			value == this.config.listOpts[opt][0] ? null : value);
	},

	getNextValue: function(title,opt) {
		var current = this.getTagglyOpt(title,opt);
		var pos = this.config.listOpts[opt].indexOf(current);
		// a little usability enhancement. actually it doesn't work right for grouped or sitemap
		var limit = (opt == "numCols" ? store.getTaggedTiddlers(title).length : this.config.listOpts[opt].length);
		var newPos = (pos + 1) % limit;
		return this.config.listOpts[opt][newPos];
	},

	toggleTagglyOpt: function(title,opt) {
		var newVal = this.getNextValue(title,opt);
		this.setTagglyOpt(title,opt,newVal);
	}, 

	createListControl: function(place,title,type) {
		var lingo = config.taggly.lingo;
		var label;
		var tooltip;
		var onclick;

		if ((type == "title" || type == "modified" || type == "created")) {
			// "special" controls. a little tricky. derived from sortOrder and sortBy
			label = lingo.labels[type];
			tooltip = lingo.tooltips[type];

			if (this.getTagglyOpt(title,"sortBy") == type) {
				label += lingo.labels[this.getTagglyOpt(title,"sortOrder")];
				onclick = function() {
					config.taggly.toggleTagglyOpt(title,"sortOrder");
					return false;
				}
			}
			else {
				onclick = function() {
					config.taggly.setTagglyOpt(title,"sortBy",type);
					config.taggly.setTagglyOpt(title,"sortOrder",config.taggly.config.listOpts.sortOrder[0]);
					return false;
				}
			}
		}
		else {
			// "regular" controls, nice and simple
			label = lingo.labels[type == "numCols" ? type : this.getNextValue(title,type)];
			tooltip = lingo.tooltips[type == "numCols" ? type : this.getNextValue(title,type)];
			onclick = function() {
				config.taggly.toggleTagglyOpt(title,type);
				return false;
			}
		}

		// hide button because commas don't have columns
		if (!(this.getTagglyOpt(title,"listMode") == "commas" && type == "numCols"))
			createTiddlyButton(place,label,tooltip,onclick,type == "hideState" ? "hidebutton" : "button");
	},

	makeColumns: function(orig,numCols) {
		var listSize = orig.length;
		var colSize = listSize/numCols;
		var remainder = listSize % numCols;

		var upperColsize = colSize;
		var lowerColsize = colSize;

		if (colSize != Math.floor(colSize)) {
			// it's not an exact fit so..
			upperColsize = Math.floor(colSize) + 1;
			lowerColsize = Math.floor(colSize);
		}

		var output = [];
		var c = 0;
		for (var j=0;j<numCols;j++) {
			var singleCol = [];
			var thisSize = j < remainder ? upperColsize : lowerColsize;
			for (var i=0;i<thisSize;i++) 
				singleCol.push(orig[c++]);
			output.push(singleCol);
		}

		return output;
	},

	drawTable: function(place,columns,theClass) {
		var newTable = createTiddlyElement(place,"table",null,theClass);
		var newTbody = createTiddlyElement(newTable,"tbody");
		var newTr = createTiddlyElement(newTbody,"tr");
		for (var j=0;j<columns.length;j++) {
			var colOutput = "";
			for (var i=0;i<columns[j].length;i++) 
				colOutput += columns[j][i];
			var newTd = createTiddlyElement(newTr,"td",null,"tagglyTagging"); // todo should not need this class
			wikify(colOutput,newTd);
		}
		return newTable;
	},

	createTagglyList: function(place,title) {
		switch(this.getTagglyOpt(title,"listMode")) {
			case "group":  return this.createTagglyListGrouped(place,title); break;
			case "normal": return this.createTagglyListNormal(place,title,false); break;
			case "commas": return this.createTagglyListNormal(place,title,true); break;
			case "sitemap":return this.createTagglyListSiteMap(place,title); break;
		}
	},

	getTaggingCount: function(title) {
		// thanks to Doug Edmunds
		if (this.config.showTaggingCounts) {
			var tagCount = store.getTaggedTiddlers(title).length;
			if (tagCount > 0)
				return " ("+tagCount+")";
		}
		return "";
	},

	getExcerpt: function(inTiddlerTitle,title,indent) {
    if (!indent)
			indent = 1;
		if (this.getTagglyOpt(inTiddlerTitle,"excerpts") == "excerpts") {
			var t = store.getTiddler(title);
			if (t) {
				var text = t.text.replace(/\n/," ");
				var marker = text.indexOf(this.config.excerptMarker);
				if (marker != -1) {
					return " {{excerpt{<nowiki>" + text.substr(0,marker) + "</nowiki>}}}";
				}
				else if (text.length < this.config.excerptSize) {
					return " {{excerpt{<nowiki>" + t.text + "</nowiki>}}}";
				}
				else {
					return " {{excerpt{<nowiki>" + t.text.substr(0,this.config.excerptSize) + "..." + "</nowiki>}}}";
				}
			}
		}
		else if (this.getTagglyOpt(inTiddlerTitle,"excerpts") == "contents") {
			var t = store.getTiddler(title);
			if (t) {
				return "\n{{contents indent"+indent+"{\n" + t.text + "\n}}}";
			}
		}
		else if (this.getTagglyOpt(inTiddlerTitle,"excerpts") == "sliders") {
			var t = store.getTiddler(title);
			if (t) {
				return "<slider slide>\n{{contents{\n" + t.text + "\n}}}\n</slider>";
			}
		}
		return "";
	},

	notHidden: function(t,inTiddler) {
		if (typeof t == "string") 
			t = store.getTiddler(t);
		return (!t || !t.tags.containsAny(this.config.excludeTags) ||
				(inTiddler && this.config.excludeTags.contains(inTiddler)));
	},

	// this is for normal and commas mode
	createTagglyListNormal: function(place,title,useCommas) {

		var list = store.getTaggedTiddlers(title,this.getTagglyOpt(title,"sortBy"));

		if (this.getTagglyOpt(title,"sortOrder") == "desc")
			list = list.reverse();

		var output = [];
		var first = true;
		for (var i=0;i<list.length;i++) {
			if (this.notHidden(list[i],title)) {
				var countString = this.getTaggingCount(list[i].title);
				var excerpt = this.getExcerpt(title,list[i].title);
				if (useCommas)
					output.push((first ? "" : ", ") + "[[" + list[i].title + "]]" + countString + excerpt);
				else
					output.push("*[[" + list[i].title + "]]" + countString + excerpt + "\n");

				first = false;
			}
		}

		return this.drawTable(place,
			this.makeColumns(output,useCommas ? 1 : parseInt(this.getTagglyOpt(title,"numCols"))),
			useCommas ? "commas" : "normal");
	},

	// this is for the "grouped" mode
	createTagglyListGrouped: function(place,title) {
		var sortBy = this.getTagglyOpt(title,"sortBy");
		var sortOrder = this.getTagglyOpt(title,"sortOrder");

		var list = store.getTaggedTiddlers(title,sortBy);

		if (sortOrder == "desc")
			list = list.reverse();

		var leftOvers = []
		for (var i=0;i<list.length;i++)
			leftOvers.push(list[i].title);

		var allTagsHolder = {};
		for (var i=0;i<list.length;i++) {
			for (var j=0;j<list[i].tags.length;j++) {

				if (list[i].tags[j] != title) { // not this tiddler

					if (this.notHidden(list[i].tags[j],title)) {

						if (!allTagsHolder[list[i].tags[j]])
							allTagsHolder[list[i].tags[j]] = "";

						if (this.notHidden(list[i],title)) {
							allTagsHolder[list[i].tags[j]] += "**[["+list[i].title+"]]"
										+ this.getTaggingCount(list[i].title) + this.getExcerpt(title,list[i].title) + "\n";

							leftOvers.setItem(list[i].title,-1); // remove from leftovers. at the end it will contain the leftovers

						}
					}
				}
			}
		}

		var allTags = [];
		for (var t in allTagsHolder)
			allTags.push(t);

		var sortHelper = function(a,b) {
			if (a == b) return 0;
			if (a < b) return -1;
			return 1;
		};

		allTags.sort(function(a,b) {
			var tidA = store.getTiddler(a);
			var tidB = store.getTiddler(b);
			if (sortBy == "title") return sortHelper(a,b);
			else if (!tidA && !tidB) return 0;
			else if (!tidA) return -1;
			else if (!tidB) return +1;
			else return sortHelper(tidA[sortBy],tidB[sortBy]);
		});

		var leftOverOutput = "";
		for (var i=0;i<leftOvers.length;i++)
			if (this.notHidden(leftOvers[i],title))
				leftOverOutput += "*[["+leftOvers[i]+"]]" + this.getTaggingCount(leftOvers[i]) + this.getExcerpt(title,leftOvers[i]) + "\n";

		var output = [];

		if (sortOrder == "desc")
			allTags.reverse();
		else if (leftOverOutput != "")
			// leftovers first...
			output.push(leftOverOutput);

		for (var i=0;i<allTags.length;i++)
			if (allTagsHolder[allTags[i]] != "")
				output.push("*[["+allTags[i]+"]]" + this.getTaggingCount(allTags[i]) + this.getExcerpt(title,allTags[i]) + "\n" + allTagsHolder[allTags[i]]);

		if (sortOrder == "desc" && leftOverOutput != "")
			// leftovers last...
			output.push(leftOverOutput);

		return this.drawTable(place,
				this.makeColumns(output,parseInt(this.getTagglyOpt(title,"numCols"))),
				"grouped");

	},

	// used to build site map
	treeTraverse: function(title,depth,sortBy,sortOrder) {

		var list = store.getTaggedTiddlers(title,sortBy);
		if (sortOrder == "desc")
			list.reverse();

		var indent = "";
		for (var j=0;j<depth;j++)
			indent += "*"

		var childOutput = "";
		for (var i=0;i<list.length;i++)
			if (list[i].title != title)
				if (this.notHidden(list[i].title,this.config.inTiddler))
					childOutput += this.treeTraverse(list[i].title,depth+1,sortBy,sortOrder);

		if (depth == 0)
			return childOutput;
		else
			return indent + "[["+title+"]]" + this.getTaggingCount(title) + this.getExcerpt(this.config.inTiddler,title,depth) + "\n" + childOutput;
	},

	// this if for the site map mode
	createTagglyListSiteMap: function(place,title) {
		this.config.inTiddler = title; // nasty. should pass it in to traverse probably
		var output = this.treeTraverse(title,0,this.getTagglyOpt(title,"sortBy"),this.getTagglyOpt(title,"sortOrder"));
		return this.drawTable(place,
				this.makeColumns(output.split(/(?=^\*\[)/m),parseInt(this.getTagglyOpt(title,"numCols"))), // regexp magic
				"sitemap"
				);
	},

	macros: {
		tagglyTagging: {
			handler: function (place,macroName,params,wikifier,paramString,tiddler) {
				var refreshContainer = createTiddlyElement(place,"div");
				// do some refresh magic to make it keep the list fresh - thanks Saq
				refreshContainer.setAttribute("refresh","macro");
				refreshContainer.setAttribute("macroName",macroName);
        			refreshContainer.setAttribute("title",tiddler.title);
				this.refresh(refreshContainer);
			},

			refresh: function(place) {
				var title = place.getAttribute("title");
				removeChildren(place);
				if (store.getTaggedTiddlers(title).length > 0) {
					var lingo = config.taggly.lingo;
					config.taggly.createListControl(place,title,"hideState");
					if (config.taggly.getTagglyOpt(title,"hideState") == "show") {
						createTiddlyElement(place,"span",null,"tagglyLabel",lingo.labels.label.format([title]));
						config.taggly.createListControl(place,title,"title");
						config.taggly.createListControl(place,title,"modified");
						config.taggly.createListControl(place,title,"created");
						config.taggly.createListControl(place,title,"listMode");
						config.taggly.createListControl(place,title,"excerpts");
						config.taggly.createListControl(place,title,"numCols");
						config.taggly.createTagglyList(place,title);
					}
				}
			}
		}
	},

	// todo fix these up a bit
	styles: [
"/*{{{*/",
"/* created by TagglyTaggingPlugin */",
".tagglyTagging { padding-top:0.5em; }",
".tagglyTagging li.listTitle { display:none; }",
".tagglyTagging ul {",
"	margin-top:0px; padding-top:0.5em; padding-left:2em;",
"	margin-bottom:0px; padding-bottom:0px;",
"}",
".tagglyTagging { vertical-align: top; margin:0px; padding:0px; }",
".tagglyTagging table { margin:0px; padding:0px; }",
".tagglyTagging .button { visibility:hidden; margin-left:3px; margin-right:3px; }",
".tagglyTagging .button, .tagglyTagging .hidebutton {",
"	color:[[ColorPalette::TertiaryLight]]; font-size:90%;",
"	border:0px; padding-left:0.3em;padding-right:0.3em;",
"}",
".tagglyTagging .button:hover, .hidebutton:hover, ",
".tagglyTagging .button:active, .hidebutton:active  {",
"	border:0px; background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]];",
"}",
".selected .tagglyTagging .button { visibility:visible; }",
".tagglyTagging .hidebutton { color:[[ColorPalette::Background]]; }",
".selected .tagglyTagging .hidebutton { color:[[ColorPalette::TertiaryLight]] }",
".tagglyLabel { color:[[ColorPalette::TertiaryMid]]; font-size:90%; }",
".tagglyTagging ul {padding-top:0px; padding-bottom:0.5em; margin-left:1em; }",
".tagglyTagging ul ul {list-style-type:disc; margin-left:-1em;}",
".tagglyTagging ul ul li {margin-left:0.5em; }",
".editLabel { font-size:90%; padding-top:0.5em; }",
".tagglyTagging .commas { padding-left:1.8em; }",
"/* not technically tagglytagging but will put them here anyway */",
".tagglyTagged li.listTitle { display:none; }",
".tagglyTagged li { display: inline; font-size:90%; }",
".tagglyTagged ul { margin:0px; padding:0px; }",
".excerpt { color:[[ColorPalette::TertiaryDark]]; }",
"div.tagglyTagging table,",
"div.tagglyTagging table tr,",
"td.tagglyTagging",
" {border-style:none!important; }",
".tagglyTagging .contents { border-bottom:2px solid [[ColorPalette::TertiaryPale]]; padding:0 1em 1em 0.5em;",
"  margin-bottom:0.5em; }",
".tagglyTagging .indent1  { margin-left:3em;  }",
".tagglyTagging .indent2  { margin-left:4em;  }",
".tagglyTagging .indent3  { margin-left:5em;  }",
".tagglyTagging .indent4  { margin-left:6em;  }",
".tagglyTagging .indent5  { margin-left:7em;  }",
".tagglyTagging .indent6  { margin-left:8em;  }",
".tagglyTagging .indent7  { margin-left:9em;  }",
".tagglyTagging .indent8  { margin-left:10em; }",
".tagglyTagging .indent9  { margin-left:11em; }",
".tagglyTagging .indent10 { margin-left:12em; }",
"/*}}}*/",
		""].join("\n"),

	init: function() {
		merge(config.macros,this.macros);
		config.shadowTiddlers["TagglyTaggingStyles"] = this.styles;
		store.addNotification("TagglyTaggingStyles",refreshStyles);
	}
};

config.taggly.init();

//}}}

/***
InlineSlidersPlugin
By Saq Imtiaz
http://tw.lewcid.org/sandbox/#InlineSlidersPlugin

// syntax adjusted to not clash with NestedSlidersPlugin

***/
//{{{
config.formatters.unshift( {
	name: "inlinesliders",
	// match: "\\+\\+\\+\\+|\\<slider",
	match: "\\<slider",
	// lookaheadRegExp: /(?:\+\+\+\+|<slider) (.*?)(?:>?)\n((?:.|\n)*?)\n(?:====|<\/slider>)/mg,
	lookaheadRegExp: /(?:<slider) (.*?)(?:>)\n((?:.|\n)*?)\n(?:<\/slider>)/mg,
	handler: function(w) {
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart ) {
			var btn = createTiddlyButton(w.output,lookaheadMatch[1] + " "+"\u00BB",lookaheadMatch[1],this.onClickSlider,"button sliderButton");
			var panel = createTiddlyElement(w.output,"div",null,"sliderPanel");
			panel.style.display = "none";
			wikify(lookaheadMatch[2],panel);
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
   },
   onClickSlider : function(e) {
		if(!e) var e = window.event;
		var n = this.nextSibling;
		n.style.display = (n.style.display=="none") ? "block" : "none";
		return false;
	}
});

//}}}

//\Tech*nol"o*gist\, n. One skilled in technology; one who treats of arts, or of the terms of arts.//

''Starting Age'': Complex
''Starting Gold'': 10d4 x 10 (average 220 gp)

!!Game Rule Information
Technologists have the following game statistics.

''Alignment'': Any. 

''Hit Points per Level'': 1d6
''Skill Points per Level'': 8 + Int modifier.

''Class Skills'': The Technologist's class skills (and the key ability for each skill) are Appraise (Int), Craft (Int), Decipher Script (Int), Disable Device (Int), Knowledge (Architecture and engineering) (Int), Listen (Wis), Open Lock (Dex), Profession (Wis), Search (Int), Speak Language (None), and Spot (Wis).
|!Level |!BAB |!Fort |!Ref |!Will |!Special |
|1st |+0 |+0 |+0 |+2 |Invent, Precision |
|2nd |+1 |+0 |+0 |+3 |Mechanical Genius |
|3rd |+1 |+1 |+1 |+3 |- |
|4th |+2 |+1 |+1 |+4 |- |
|5th |+2 |+1 |+1 |+4 |Mechanical Genius |
|6th |+3 |+2 |+2 |+5 |- |
|7th |+3 |+2 |+2 |+5 |- |
|8th |+4 |+2 |+2 |+6 |Mechanical Genius |
|9th |+4 |+3 |+3 |+6 |- |
|10th |+5 |+3 |+3 |+7 |- |
|11th |+5 |+3 |+3 |+7 |Mechanical Genius |
|12th |+6/+1 |+4 |+4 |+8 |- |
|13th |+6/+1 |+4 |+4 |+8 |- |
|14th |+7/+2 |+4 |+4 |+9 |Mechanical Genius |
|15th |+7/+2 |+5 |+5 |+9 |- |
|16th |+8/+3 |+5 |+5 |+10 |- |
|17th |+8/+3 |+5 |+5 |+10 |Mechanical Genius |
|18th |+9/+4 |+6 |+6 |+11 |- |
|19th |+9/+4 |+6 |+6 |+11 |- |
|20th |+10/+5 |+6 |+6 |+12 |Mechanical Genius |

!!Class Features
All of the following are class features of the technologist.

''Weapon and Armor Proficiency'': Technologists are proficient with only the armor and weapons that they invent.

''Invent (Ex)'': At each level, a technologist gains two invention points. These points are not spent when crafting inventions. A technologist may not build an invention that uses more invention points than the technologist is allowed. An invention takes 1 hour and 5 gp to create per invention point. A technologist may spend an hour to dismantle all or part of an invention. No gold is recovered if the invention is dismantled. Technologists can invent, mix, and match Constructs, Weapons, Armor, and Gadgets.

//Complexity's Mark//: Each invention created is so unique that in nearly every case it is only usable by that technologist, even if the second party is also a technologist. The only exceptions to this rule are General Gadgets.

''Precision'': Choose one type of Invention: Armor, Constructs, Gadgets, or Weapons. The technologist can create inventions of that type as though he were two levels higher for the purpose of invention points. He also gains a precision ability in that type of Invention:

//Armor//: The technologist can add a gadget slot, if possible, to any set of invented armor for no invention points starting at third level. This still counts towards his maximum gadget slots for that invention.
//Constructs//: The technologist gains the ability to make and control a new construct every five levels instead of every ten. Each construct invented after the first can still only be made using up to half of your invention points.
//Gadgets//: The initial gp cost of any gadgets invented is reduced to only 3/4 the normal amount.
//Weapons//: The technologist is treated having the feat Weapon Focus for any invented weapon he wields. At level 8 and above he also treated as having the feat Weapon Specialization for any invented weapon he wields.

''Mechanical Genius'': At 2nd level, and every 3 levels thereafter, a technologist gains one ability chosen from the list below.
* //Construct Expertise (Ex)//: All constructs crafted by the technologist gain a +1 natural armor bonus and a +1 competence bonus to attack rolls.
* //Gadget Addict (Ex)//: A technologist may purchase a second gadget slot for any invention where the option is available.
* //Innovative Dismantle (Ex)//: A technologist may use parts from one invention in the construction of another. When dismantling a current invention, half the parts can be salvaged.
* //Masterful Working (Ex)//: A technologist pays only half the normal cost of making an item masterwork whole crafting, and needs to make a DC check of 15 instead of 20.
* //Mechanical Surgeon (Ex)//: Gains a +2 bonus per every four technologist levels on craft checks to repair constructs.
* //Only the Essentials (Ex)//: Everything a technologist invents weighs only 3/4 the normal weight.
* //Smith Expertise (Ex)//: All weapons invented by the technologist gain a +2 competence bonus to damage, and all armor crafted by the technologist reduces his speed as if it were one category lighter.
* //Swift Assembly (Ex)//: Decreases the time it takes to craft an invention by half.
* //Tinkerer (Ex)//: The technologist may select a second type of Invention to apply to his Precision ability.
* //Thrifty (Ex)//: Decrease the cost of crafting an invention by 1 gp for every invention point spent, to a minimum of 1 gp per point.
* //Tough Structure (Ex)//: Everything a technologist invents gains an additional 5 hardness.
* //Versatile Craftsman (Ex)//: The technologist gains a +2 competence bonus to all craft checks.

!!Inventions
''Constructs''
A construct begins as a tiny construct with one hit die, sight and hearing senses, a land speed of 10 ft, and the following ability scores: 7 STR, 15 DEX, Con Ø, Int Ø, Wis 11, Cha 1. You can only have one construct at a time until 11th level, when you can build and control a second. Any extra construct after your first can only be built using half of your invent points. Each construct built has an initial cost of 150 gp.

Constructs are tenacious in combat and prodigiously strong as well. Being mindless, they do nothing without orders from their creators. They follow instructions explicitly and are incapable of any strategy or tactics. They are emotionless in combat and cannot be provoked. A construct's creator can command it if the construct is within 60 feet and can see and hear its creator. If uncommanded, a construct usually follows its last instruction to the best of its ability, though if attacked it returns the attack. The creator can give the construct a simple command to govern its actions in his absence.
|!Construct Size |!Hit Die |!Slam |!Natural Armor |!Base Speed |!Weight |
|Tiny |1 HD |- |- |10 ft. |12 lb. |
|Small |4 HD |1d4 |+3 |20 ft. |92 lb. |
|Medium |7 HD |1d6 |+6 |30 ft. |700 lb. |
|Large |10 HD |1d8 |+9 |30 ft. |5000 lb. |
* //Hit Die//: The construct gains one construct hit die (1d10), along with all of its benefits. This ability may be purchased multiple times. This ability is gained three times for free each time you purchase the Size Increase ability. Cost: 3 points.
* //Natural Weapon//: The construct gains a slam attack that deals 1d4 damage. This ability may be taken multiple times; the damage die for the attack is moved up a step each time. This ability is gained once for free each time you purchase the Size Increase ability. Cost: 3 points.
* //Increased Density//: Increases the natural armor of the construct by +1. This ability may be taken multiple times; an additional +1 to natural armor is given each time this ability is taken. This ability is gained three times for free each time you purchase the Size Increase ability. Cost: 2 points
* //Size Increase//: The construct increases in size, gaining six Strength, losing two Dexterity, and applying all of the relevant penalties and bonuses. This ability may be taken up to three times. Cost: 10 points. //Extra cost: 1350 gp for the first increase, 5450 gp for the second, and 21950 gp for the third.//
* //Speed Increases//: The construct's land speed increases by 10 ft. This ability may be taken multiple times. This ability is gained once for free each time you purchase the Size Increase ability, up to Medium. Cost: 5 points.
* //Climb Speed//: The construct gains a climb speed of 10 ft. This ability may be taken multiple times; the climb speed increases by 10 ft each time. Cost: 4 points.
* //Armed and Dangerous//: Construct gains one melee weapon proficiency of the technologist's choosing. This ability may be taken multiple times; each time it is taken the Construct receives an additional melee weapon proficiency. Cost: 6 points.
* //Construct Gadget Slot//: Allows the use of one construct gadget (see Gadgets). Cost: 6 points.

''Weapons''
__Melee Weapons__
All melee weapons start as light weapons weighing 2 lbs with a critical range of 20/x2, no range, and dealing 1d2 damage. If a weapon becomes a projectile weapon, it is two-handed and requires a full-round to reload. The damage type (bludgeoning, piercing, slashing) the weapon deals is decided during creation. //All melee weapons cost only 1 gp per invention point spent.//
|!Equivalent Size |!Dmg (M) |!Weight |
|Light |1d2 |2 lb. |
|~|1d4 |3 lb. |
|One-handed |1d6 |5 lb. |
|~|1d8 |6 lb. |
|Two-handed |1d10 |8 lb. |
|~|2d6 |10 lb. |
|Double |* |* |
|Reach |- |+2 lb. |
* //Damage Die//: The damage die for this weapon is moved up a step. This ability may be taken more than once. //See chart for full effect of this ability.// Cost: 3 points.
* //Critical Multiplier Increase//: The critical multiplier of the weapon increases by one. This ability may be taken twice. //Inclusive: Only Critical Multiplier or Threat Range can be purchased for any one weapon.// Cost: 3 points for the first increase, 5 for the second.
* //Threat Range Increase//: The threat range of the weapon increases by one. This ability may be taken twice. //Inclusive: Only Critical Multiplier or Threat Range can be purchased for any one weapon.// Cost: 3 points for the first increase, 5 for the second.
* //Damage Type//: The weapon gains a second damage type (bludgeoning, piercing, slashing). Both damage types may not be used in the same attack. Cost: 5 points.
* //Thrown Range//: The weapon gains a thrown range of 10 ft. This ability may be taken multiple times; the range increases by 10 ft each time. //Restriction: Not on Reach/Retractable.// Cost: 4 points. The cost of this ability increases by two each time it is taken.
* //Masterwork//: This weapon is treated as masterwork. Cost: 6 points.
__Melee Gadgets__
* //Double weapon//: The weapon becomes a double weapon, doubling it's weight and making it a two-handed weapon. The second side of the weapon's damage die is always one less than the current damage die, and is treated as a light weapon. //Inclusive: Only Double Weapon or Reach Weapon can be purchased for any one weapon.// Cost: 8 points.
* //Reach Weapon//: The weapon becomes a reach weapon, adding 2 lb. to it's total weight. //Inclusive: Only Double Weapon or Reach Weapon can be purchased for any one weapon.// Cost: 4 points.
* //Retractable Weapon//: Allows a melee weapon to change from a reach weapon to a non-reach weapon (or vise versa) as a standard action that provokes an attack of opportunity. //Requirement: Reach weapon.// Cost: 4 points.
* //Slip Hook//: The weapon can be used to make trip attacks. If you are tripped during your own trip attempt, you can drop the weapon to avoid being tripped. //Requirement: Reach weapon or double weapon.// Cost: 6 points.

__Ranged Weapons__
All ranged weapons are comparable to hand crossbows initially, weighing 2 lbs with a critical range of 19-20/x2, a 10 ft. range, and dealing 1d6 damage. They take a standard crossbow bolt, and require a move action to reload that provokes an attack of opportunity. Cost: 4 points. //All ranged weapons cost only 3 gp per invention point spent.//
|!Equivalent Size |!Dmg (M) |!Weight |
|Hand |1d4 |2 lb. |
|Light |1d8 |4 lb. |
|Heavy |1d10 |6 lb. |
|Grenade Launcher |* |+4 lb. |
|Repeater |* |+4 lb. |
|Range Meter |- |- |
* //Damage Die//: The damage die for this weapon is moved up a step. This ability may be taken twice. //See chart for full effect of this ability.// Cost: 4 points.
* //Faster Reload//: The time taken to reload the weapon decreases from a full-round action to a move action. If it already takes only a move action, this ability does nothing. Cost: 4 points.
* //Projectile Range//: This weapon's range increases by 10 ft. This ability may be taken multiple times; the range increases by 10 ft each time. Cost: 3 points.
* //Masterwork//: This weapon is treated as masterwork. Cost: 6 points.
__Ranged Gadgets__
* //Grenade Launcher//: When this gadget is attached, you may only fire grenades from this weapon as a full-round action. This gadget adds 4 lb. to the weapon's total weight. //Inclusive: Only Grenade Launcher or Repeater can be purchased for any one weapon. Requirement: Heavy weapon.// Cost: 6 points.
* //Repeater//: The weapon holds 5 crossbow bolts. As long as it holds bolts, you can reload it by pulling the reloading lever (a free action). Loading a new case of 5 bolts is a full-round action that provokes attacks of opportunity. This gadget adds 4 lb. to the weapon's total weight. //Inclusive: Only Grenade Launcher or Repeater can be purchased for any one weapon. Requirement: Light or heavy weapon.// Cost: 6 points.
* //Range Meter//: If this gadget is used to target enemies as a swift action, you gain a +4 to hit anyone beyond 30 ft., but lose 2 AC until your next turn. Cost: 6 points.

''Armor''
All armor starts as clothing weighing 5 lbs conveying no armor bonus, no DEX bonus limit, and no armor check penalty.
|!Type |!AC |!Max Dex |!Armor Check |!Speed |!Weight |
|Clothing |0 |- |0 |30 ft. |5 lb. |
|Light (1 point) |1 |8 |0 |30 ft. |15 lb. |
|~|2 |7 |0 |~|~|
|Medium (2 points) |3 |5 |-1 |30 ft.|30 lb.|
|~|4 |4 |-2 |~|~|
|~|5 |3 |-3 |~|~|
|Heavy (3 points) |6 |1 |-4 |20 ft.|45 lb. |
|~|7 |0 |-5 |~|~|
|~|8 |0 |-6 |~|~|
* //Armor Bonus Increase//: The armor bonus increases by 1. This ability may be taken more than once. Cost: See Chart
* //Maximum Dex Bonus Increase//: The maximum dexterity bonus increases by 1. This ability may be taken more than once. Cost: 3 points.
* //Armor Check Penalty Decrease//: The armor check penalty decreases by 1, to a minimum of zero. This ability may be taken more than once. Cost: 5 points.
* //Armor Gadget Slot//: Allows the use of one armor gadget (see Gadgets). Cost: 6 points.

''Gadgets''
All gadgets have an initial invention point requirement due to their complexity. Most gadgets will also have an additional cost accounting for the rarity of their components. Gadgets can not be scavenged. Gadgets that are used in another invention take ten minutes to attach and detach, as long as the invention has an applicable open gadget slot. Two of the same gadget can't be attached to an invention. //Weapon gadgets are calculated with the invention point cost of the weapon itself, and can always be attached or detached from that weapon as a full round action.//

__Armor Gadgets__
//Behemoth Grips//: This gadget grants you a +2 competence bonus to all Strength based checks, except for the skills covered by Strength, but you must take -8 on any Dexterity based checks. //Requirement: Heavy armor.// Cost: 12 Points, 1940 gp. //Weight: 20 lb.//
* //Improved Grip//: The bonus granted by the grips increases by two. This ability may be taken more than once. Cost: 12 points.
* //Fine Tuning//: The penalty from using this gadget is reduced by two. This ability may be taken more than once. Cost: 6 points.

//Flak Armor//: When using this gadget you gain DR 1/Slashing. Treat armor worn with this gadget as one step heavier when calculating speed. //Requirement: Clothing, light, or medium armor.// Cost: 5 points, 475 gp. //Weight: 10 lb.//
* //Retooling//: The damage reduction granted by this gadget improves by one. This ability may be taken more than once. Cost: 5 points.
* //Ironclad//: The type to get past this gadget's damage reduction changes from /Slashing to /-.Cost: 15 points.

//Filtration System//: This gadget grants a +4 resistance bonus on any saving throw against inhaled poisons or toxic gases. //Requirement: Medium or heavy armor.// Cost: 8 points, 960 gp. //Weight: 4 lb.//
* //Closed System//: The resistance bonus granted by this gadget increases by two. This ability may be taken more than once. Cost: 4 points.
* //Moisture Recycler//: This ability doubles the time in between each fortitude saving throw that must be made when in very hot or hotter environments. Cost: 12 points.

//Shock Box//: This gadget may be turned on as a swift action. When on, it deals 1d4 electricity damage to the next character that hits you, then turns off. This gadget must recharge for 2d10 rounds before it can be turned on again. Requirement: Light , medium, or heavy armor. Cost: 4 points, 980 gp. //Weight: 2 lb.//
* //Closed Circuit//: This deals 1d4 more points of electricity damage when activated. This ability may taken more than once. Cost: 10 points.
* //Static Replenishment//: The recharge time for this gadget improves to 1d10 rounds. Cost: 8 points.

//Rocket Pack//: This gadget grants a Fly Speed of 60 ft. with Clumsy maneuverability. This can be used for up to thirty minutes a day, and this time can be split up over multiple uses. //Requirement: Light armor.// Cost: 22 points, 7890 gp. //Weight: 30 lb.//
* //Power Conversion//: The maximum flight time for this gadget is increased by thirty minutes a day. Cost: 10 points.
* //Control Box//: The maneuverability of this gadget improves by one step. This ability may be taken twice. Cost: 3 points.
* //Throttle Boost//: The Fly Speed of this gadget improves by 20 ft. This ability may be taken more than once. Cost: 3 points.

__Construct Gadgets__
//Complete Redesign//: This represents a significant, irreversible change in how the construct works. //Requirement: Large Construct, Mechanical Turk. This gadget takes a month to attach and is irreversible. The ability chosen is inclusive; only one may be chosen from the list.// Cost: 32 points, 31840 gp.
* //Colossus//: The construct increases in size one final time to become huge sized, gaining +6 STR and losing -2 DEX. It also gains 6 HD, 4 increases to the damage die of its natural attack, and +6 to its natural armor, and now weighs 35000 lb.
* //Booster!//: The construct gains two rocket boosters, adding 400 lb. to its total weight. The construct gains a +12 bonus to jump checks and the following special abilities:
//Flight (Ex)//: The construct gains a 60 ft. flight speed with good maneuverability that it can use up to 1 hour a day.
//Pounce (Ex)//: If the construct charges a foe, it can make a full attack.
* //Quadruped//: The construct gains a second pair of legs, adding 1500 lb. to its total weight. It can be used as a mount if its creator chooses. In addition to gaining 2 HD, it gains the following special abilities:
//Fast movement (Ex)//: The construct gains an extra 20 ft. to its base speed.
//Natural Attack//: The construct gains two secondary bludgeoning attacks using its legs to stomp. These deal 1d6 damage each.
//Trample (Ex)//: As a standard action during its turn each round, the construct can literally run over an opponent at least one size category smaller than itself. The trample deals 1d8 points of bludgeoning damage. Trampled opponents can either attempt attacks of opportunity at a -4 penalty or Reflex half DC 24. The save DC is Strength-based.

//Exoskeleton//: This gadget grants the construct DR 1/- .Cost: 8 points, 960 gp.
* //Reinforcement//: The damage reduction granted by this gadget improves by one. This ability may be taken more than once. Cost: 8 points.

//Mechanical Turk//: The construct gains an intelligence score of 2. It may act without direction, as appropriate to its ability score. It must still obey your commands and will not harm you unless explicitly ordered to do so. The technologist may teach this construct up to six applicable tricks (see Handle Animal). These initial tricks take two weeks to teach and require no check of any kind. To learn new tricks or replace any tricks with new ones takes a further week for each trick. Cost: 10 points, 1350 gp.
* //Expanded Memory//: The construct may learn an additional trick in addition to what it already knows. This ability may be taken more than once. Cost: 10 points.
* //Bonus Feat//: The construct gains a bonus feat, so long as it meets the prerequisites. This ability may be taken more than once. Cost: 5 points.

//Skill Matrix//: This gadget gives the construct a +4 competence bonus to a certain skill. This skill is treated as trained. //The following skills may be applied to this gadget: Balance, Climb, Escape Artist, Hide, Jump, Listen, Move Silently, Spot, and Tumble.// Cost: 6 points, 470 gp.
* //Advanced Calculations//: The bonus granted by this gadget increases by four. This ability may be taken more than once. Cost: 6 points.
* //Attention Reassignment//: The gadget gains an extra skill to apply the bonus to. This and the first skill each receive the full bonus. Cost: 10 points.

__General Gadgets__
//???//: 

!!!Appendix A
Damage die increases for Constructs/gadgets.
|>|>|>|>|>|>|>|>|>| !Damage Die Increases |
|>|>|>|>|>|>|>|>|>| !Medium|
|1 |1d2 |1d4 |1d6 |1d8 |1d10 |2d6 |2d8 |3d6 |2d10 |

!!!Appendix B
For Fun - Average magical item cost for each level.
|!Level |!Cost |
|1 |150 |
|2 |300 |
|3 |500 |
|4 |1000 |
|5 |1400 |
|6 |2000 |
|7 |2500 |
|8 |3300 |
|9 |4400 |
|10 |5500 |
|11 |8000 |
|12 |9000 |
|13 |11000 |
|14 |14000 |
|15 |22000 |
|16 |33000 |
|17 |44000 |
|18 |60000 |
|19 |75000 |
|20 |95000 |
/***
| Name|ToggleTagPlugin|
| Description|Makes a checkbox which toggles a tag in a tiddler|
| Version|3.0 ($Rev: 1845 $)|
| Date|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $|
| Source|http://tiddlyspot.com/mptw/#ToggleTagMacro|
| Author|Simon Baird <simon.baird@gmail.com>|
| License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Usage
{{{<<toggleTag }}}//{{{TagName TiddlerName LabelText}}}//{{{>>}}}
* TagName - the tag to be toggled, default value "checked"
* TiddlerName - the tiddler to toggle the tag in, default value the current tiddler
* LabelText - the text (gets wikified) to put next to the check box, default value is '{{{[[TagName]]}}}' or '{{{[[TagName]] [[TiddlerName]]}}}'
(If a parameter is '.' then the default will be used)

Examples:

|Code|Description|Example|h
|{{{<<toggleTag>>}}}|Toggles the default tag (checked) in this tiddler|<<toggleTag>>|
|{{{<<toggleTag TagName>>}}}|Toggles the TagName tag in this tiddler|<<toggleTag TagName>>|
|{{{<<toggleTag TagName TiddlerName>>}}}|Toggles the TagName tag in the TiddlerName tiddler|<<toggleTag TagName TiddlerName>>|
|{{{<<toggleTag TagName TiddlerName 'click me'>>}}}|Same but with custom label|<<toggleTag TagName TiddlerName 'click me'>>|
|{{{<<toggleTag . . 'click me'>>}}}|dot means use default value|<<toggleTag . . 'click me'>>|
Notes:
* If TiddlerName doesn't exist it will be silently created
* Set label to '-' to specify no label
* See also http://mgtd-alpha.tiddlyspot.com/#ToggleTag2

!Known issues
* Doesn't smoothly handle the case where you toggle a tag in a tiddler that is current open for editing

***/
//{{{

merge(config.macros,{

	toggleTag: {

		doRefreshAll: true,
		createIfRequired: true,
		shortLabel: "[[%0]]",
		longLabel: "[[%0]] [[%1]]",

		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			var tag = (params[0] && params[0] != '.') ? params[0] : "checked";
			var title = (params[1] && params[1] != '.') ? params[1] : tiddler.title;
			var defaultLabel = (title == tiddler.title ? this.shortLabel : this.longLabel);
			var label = (params[2] && params[2] != '.') ? params[2] : defaultLabel;
			label = (label == '-' ? '' : label);
			var theTiddler =  title == tiddler.title ? tiddler : store.getTiddler(title);
			var cb = createTiddlyCheckbox(place, label.format([tag,title]), theTiddler && theTiddler.isTagged(tag), function(e) {
				if (!store.tiddlerExists(title)) {
					if (config.macros.toggleTag.createIfRequired) {
						var content = store.getTiddlerText(title); // just in case it's a shadow
						store.saveTiddler(title,title,content?content:"",config.options.txtUserName,new Date(),null);
					}
					else 
						return false;
				}
				store.setTiddlerTag(title,this.checked,tag);
				return true;
			});
		}
	}
});

//}}}

/***
Contains the stuff you need to use Tiddlyspot
Note you must also have UploadPlugin installed
***/
//{{{

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'oldworld';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)

// disable autosave in d3
if (window.location.protocol != "file:")
	config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
	SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
	SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
	OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
	DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[Welcome to Tiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[Welcome to Tiddlyspot]] ");
}

// create some shadow tiddler content
merge(config.shadowTiddlers,{

'Welcome to Tiddlyspot':[
 "This document is a ~TiddlyWiki from tiddlyspot.com.  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),

'TspotControls':[
 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<<br>>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
 "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),

'TspotSidebar':[
 "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n"),

'TspotOptions':[
 "tiddlyspot password:",
 "<<option pasUploadPassword>>",
 ""
].join("\n")

});
//}}}
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 07/07/2007 12:10:35 | Traverse | [[/|http://oldworld.tiddlyspot.com/]] | [[store.cgi|http://oldworld.tiddlyspot.com/store.cgi]] | . | [[index.html | http://oldworld.tiddlyspot.com/index.html]] | . |
| 20/07/2007 11:40:49 | Traverse | [[/|http://oldworld.tiddlyspot.com/]] | [[store.cgi|http://oldworld.tiddlyspot.com/store.cgi]] | . | [[index.html | http://oldworld.tiddlyspot.com/index.html]] | . |
| 29/07/2007 22:43:21 | Traverse | [[/|http://oldworld.tiddlyspot.com/]] | [[store.cgi|http://oldworld.tiddlyspot.com/store.cgi]] | . | [[index.html | http://oldworld.tiddlyspot.com/index.html]] | . |
| 01/08/2007 16:30:57 | Traverse | [[/|http://oldworld.tiddlyspot.com/]] | [[store.cgi|http://oldworld.tiddlyspot.com/store.cgi]] | . | [[index.html | http://oldworld.tiddlyspot.com/index.html]] | . |
| 01/08/2007 17:10:05 | Traverse | [[/|http://oldworld.tiddlyspot.com/]] | [[store.cgi|http://oldworld.tiddlyspot.com/store.cgi]] | . | [[index.html | http://oldworld.tiddlyspot.com/index.html]] | . |
| 06/12/2007 23:02:14 | Traverse | [[/|http://oldworld.tiddlyspot.com/]] | [[store.cgi|http://oldworld.tiddlyspot.com/store.cgi]] | . | [[index.html | http://oldworld.tiddlyspot.com/index.html]] | . |
| 06/12/2007 23:04:06 | Traverse | [[/|http://oldworld.tiddlyspot.com/]] | [[store.cgi|http://oldworld.tiddlyspot.com/store.cgi]] | . | [[index.html | http://oldworld.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'
};

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

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

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

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

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

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

merge(config.optionsDesc,{
		pasPassword: "Test password"
	});
*/
//}}}

/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.0|
|''Date:''|May 5, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (#3125)|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 0,
	date: new Date("May 5, 2007"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0 (#3125)'
};

//
// Environment
//

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

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

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

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

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

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

//
// uploadOptions Macro
//

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

//
// upload functions
//

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

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

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

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

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

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

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

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

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

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

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

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

//
// Utilities
// 

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

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

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

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

//
// Initializations
//

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

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

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

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


/* don't want this for tiddlyspot sites

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

*/


//}}}


[[MptwViewTemplate]]
Currently
Class		BAB	SAVES	HD	SKILLS
Brute		1	1	d12	4
Diplomatist	2	1	d6	8
Officer		1	1	d12	4
Nexus		2	2	d6	6
Ranger		1	2	d8	6
Skirmisher	1	1	d8	4
Soldier		1	1	d10	4
Technologist	3	1	d6	8

BAB	5 Best, 2 Good, 1 Bad
SAVES	2 2s, 6 1s
HD	2 d12s, 1 d10, 2 d8s, 3 d6s
SKILLS	2 8s, 2 6s, 4 4s

Ideally
Class		*BAB	*SAVES	*HD	*SKILLS
Brute		1	1	d12	2
Diplomatist	2	1	d6	8
Officer		3	2	d8	6
Nexus		2	3	d6	4
Ranger		2	2	d8	6
Skirmisher	2	1	d8	4
Soldier		1	1	d10	2
Technologist	3	1	d6	8

Bru	3+1+4+1=9
Dip	2+1+1+4=8
Off	1+2+2+3=8
Nex	2+3+1+2=8
Ran	2+2+2+3=9
Ski	2+1+2+2=7
Sol	3+1+3+1=8
Tec	1+1+1+4=7

BAB	2 High, 4 Medium, 2 Low
SAVES	1 3, 2 2s, 5 1s
HD	1 d12s, 1 d10, 3 d8s, 3 d6s
SKILLS	2 8s, 2 6s, 2 4s, 2 2s

Changes
Brute
Skill Points: 2

Officer
BAB: Low
Saves: 2
Skill Points: 6
HD: d8

Nexus
Saves: 3
Skill Points: 4

Ranger
BAB: Medium

Skirmisher
BAB: Medium

Soldier
Skill Points: 2


Weapon Groups
Brute		2
Diplomatist	2
Officer		2
Nexus		1
Ranger		3
Skirmisher	3
Soldier		4
Technologist	0

New List?
Brute		1
Diplomatist	1
Officer		2
Nexus		1
Ranger		2
Skirmisher	3
Soldier		4
Technologist	0

1 4 1
2 3 1
3 2 2
1 1 3
1 0 1
Class Translations

	Brute Trees
Bonded
Brawler
Collecter
Exultant
Frenzied
Marked
Rager

	Diplomatist Trees
Assassin
Expert
Silvertogue
Spy
Stalker
Swashbuckler

	Officer Trees
Champion
Charger
Commander
Mark
Paragon
Technologist

	Ranger Trees
Medic
Manhunter
Marksman
Scout
Trainer

	Soldier Trees
???
Mimicry
Skimisher

Possibilities
No more Nexus either. Move Mimicry to Soldier and Technologist to Officer. Six talent trees sound like the plan for the most part. SERC doesn't do it, so it's likely not too important. Bonded doesn't fit in with the tree style or the current overall style direction, so maybe I'll translate it into a couple of feats. Or not. Either Rager or Frenzied is out, since they're too similar in the tree style. Most Brute styles will need usage changes. All Diplomatist abilities still look like shit. Ranger will already be the most fleshed out, and Soldier/Officer can get a jumpstart off of the SERC classes.

All this would change overall class stats to:

Class		*BAB	*SAVES	*HD	*SKILLS
Brute		1	1	d12	2
Diplomatist	2	1	d6	8
Officer		3	2	d8	4
Ranger		2	2	d8	6
Soldier		1	1	d10	2

Bru	3+1+4+1=9
Dip	2+1+1+4=8
Off	1+2+2+3=8
Ran	2+2+2+3=9
Sol	3+1+3+1=8

BAB	2 High, 2 Medium, 1 Low
SAVES	0 3s, 2 2s, 3 1s
HD	1 d12, 1 d10, 2 d8s, 1 d6
SKILLS	1 8, 1 6, 1 4, 2 2s

Brute		2
Diplomatist	1
Officer		3
Ranger		2
Soldier		4

New Skill Style
Maybe have skills simply keyed directly off of INT at the start instead of class selection.
Skill Points per Level
INT Bonus	Skill Points
+0 and Below	1 point
+1		3 points
+2		5 points
+3		7 points
+4		9 points
+5		11 points

Skill Set Points at 1st Level
INT Bonus	Skill Points	(Max Skills)
-5, -4		1.1		4
-3, -2		2.1		6
-1, +0		3.1		8
+1		5.1		11
+2		8.1		15
+3		11.1		20
+4		14.1		24
+5		17.1		28
Et Cetera!

Therefore, updating:
Bru	3+1+4=8
Dip	2+1+1=4
Off	1+2+2=5
Ran	2+2+2=6
Sol	3+1+3=7
Ouch. I should aim for 6 across.

Talent Tree Class Setup
1st	Starting Feats, Talent
2nd	Bonus Feat
3rd	Talent
4th	Bonus Feat
5th	Talent
6th	Bonus Feat
7th	Talent
8th	Bonus Feat
9th	Talent
10th	Bonus Feat
11th	Talent
12th	Bonus Feat
13th	Talent
14th	Bonus Feat
15th	Talent
16th	Bonus Feat
17th	Talent
18th	Bonus Feat
19th	Talent
20th	Bonus Feat