*[[Simon]], [[Magdar]], [[Ulrich]], [[Craz]] and [[Ladon]] confronted by bounty hunters seeking Magdar.\n*[[Jamlam]] tracks them down, helps fight off bounty hunters.\n*Party continues on to [[Free League of Jardeen]].\n*Encounter young girl walking alone in forest, only says "Release us."\n*Return little girl to nearby village. Learn many children have been disappearing.\n*Track down children walking along in the night, forming a circle in a forest clearing.\n*When circle is complete, all children and Simon are knocked out.\n*Return children to nearby villages.\n*Arrive in Jardeen.\n*Went to [[Maxus Aloon]]'s shop. [[Kirin]] the attendant said he'd been upstairs all day.\n*Burst into his room, found Maxus dead.
*[[Lekkin]]'s scream breaks party out of argument.\n*Formerly under the sway of the stone, [[Ulrich]] realizes what's happening and runs.\n*Made it to [[Archivist's Tower]]. Learn he's a warforged named [[Krouto]].\n*Turns out map was leading them to this tower.\n*Find another warforged imprisoned in extra-dimensional space, named [[Rotan]].\n*Rotan attacks party and escapes. Archivist's tower begins crumbling.\n*Retrieve desk for [[Wishus Aloon]].\n*[[Kallista]] decides to stay at [[Sargon]] and help the gnolls, asks [[Goormo]] to run her soup kitchen.\n*Party returns to [[Arbok's Rest]] and gives Wishus desk.
*Found a treasure map on the pirate ship.\n*Pit stop at [[Xitzatza]].\n*Found island on treasure map. Fought dinosaurs. Dug up treasure.\n*Decided to sail to [[Free League of Jardeen]].\n*En route, found [[Krouto]] shipwrecked on a deserted island.\n*Krouto was looking for the lab where the [[Alakari]] invented [[Warforged]].\n*Agreed to help him find it. Found it.\n*Krouto said the Alakari didn't even Warforged; they found one buried for thousands of years even before their empire.\n*Found that first warforged-- and it was Krouto!
*Returned to [[Free League of Jardeen]] and gave [[Brother Maynard]] [[Sarpadian Empires vol 3]]. Told to come back tomorrow.\n*Met [[Lemnas]] and [[Mellom]].\n*[[Father Kelly]] said Brother Maynard returned home to [[Keferdale]] in the [[Golden Vale]].\n*[[Ulrich]] received strange package. Contained map to elemental shrine with writing in Druidic.\n*Decided to go to shrine on map. Began travelling.\n*Met old man named [[Grizzor]]. Turned out to be [[Magdar]]'s grandfather.\n*Spent night as guest of the [[Bear Tribe]].\n*Continued on to [[Synod's Sanctum]] and then the elemental shrine.\n*Elemental weirds appeared
*Scene 1: A strange little man...\n**Tasked by [[Maxus Aloon]] in the [[Free League of Jardeen]] to to deliver package to [[Wishus Aloon]] in [[Arbok's Rest]].\n**Spent almost two weeks travelling through [[Glass Desert]].\n**Found [[Jay Mensher]] dying in desert. Escorted him back to Arbok's Rest. Promised a reward the next day.\n**Delivered package to Wishus Aloon. Contained a spring-loaded pie. Wishus refused to pay them, but gave them ring her mothers ring which she said Maxus would pay a great deal for.\n\n*Scene 2: The Sickly Seer\n**Met up with Jay. Their reward was that he'd guide them to an ancient tomb with unlimited treasures, he just wanted to follow along and right about their adventures for his screenplay.\n**Met gnolls from the [[Blighted Swamp]] in the desert, on a journey to the [[Gnoll Graveyard]]. Blind seer told them that fate had great things in store for them.\n\n*Scene 3: Requisite Dungeon Delve\n**Fought the undead and a gelatinous ooze.\n**Found lots of money, art objects and magic items.
*Set out to find a way back to the surface. Discovered a river. Met [[Augustine]] and [[Randy Woodcock]].\n*Found a cavern with a hidden pirate ship at the end of the river, and an outlet to the ocean.\n*Killed most of the pirates; the captain, a goblin, escaped.
*Party spent several days in [[Arbok's Rest]]. Met up with [[Ulrich]].\n*[[Simon]] assaulted by teenagers in a gang called [[Psychosis]]. Knocks out two of them, another escapes.\n*[[Simon]] is questioned by city guard and released.\n*Later that night, city guard comes looking for Simon at the inn, charging him with murder. Suspiscious, he escapes and goes to guard barracks. Learns he is not actually sought by them.\n*Party investigates [[Psychosis]], unable to find them. Hears they hang out in marketplace.\n*Simon goes to inn, finds [[Ladon]] and [[Jamlam]]. They head to marketplace. Ladon is given letter which came for [[Magdar]] from [[Wishus Aloon]].\n*[[Magdar]] and Ulrich go to marketplace. Magdar makes scene, attracting city guard. They attack. Ulrich is put to sleep, Magdar kills several of them and escapes.\n*Magdar meets up with Simon, Ladon and Jamlam. Jamlam says Magdar must be turned in to the law. More city guards approach, everyone flees.\n*Magdar kills Jamlam.\n*Ulrich wakes up in prison.\n*Magdar, Ladon and [[Craz]] flee the city.\n*Simon asks around, finds that the guard has a description and is offering a substantial bounty for Magdar.\n*Ulrich is freed, thanks to Wishus Aloon.\n*Ladon gives Magdar the letter Wishus sent him. Thanked him for the wonderful desk and included tickets for a new show in town, "Swallowed Whole: The Jay Mensher Story."\n*Ladon tries to find [[Jay Mensher]], tracks him to the Cirqe d'Solbee. Is rebuffed, eventually arrested for his efforts.\n*Jamlam, awakens in the [[Ring of Souls]]. Approached by an entity named [[Soresh]], who offers him the power to exact his revenge in return for his soul. He accepts and is reincarnated near Arbok's Rest.\n*Simon, Magdar, Ulrich, Craz and Ladon decide to head for the [[Free League of Jardeen]] and settle their score with [[Maxus Aloon]]. Jamlam follows them.
*Saved [[Gartol]] from lizardfolk.\n*Lead to [[Sargon]]. Met [[Jakal]].\n*Told of [[Archivist]], who might be able to decipher map.\n*Introduced to [[Lekkin]], their guide to the [[Archivist's Tower]].\n*Left Sargon. [[Kallista]] decides to stay behind and help gnolls.\n*While camping, Jamlam awoke everyone with horrible screaming. Had nightmare, awoke holding odd stone in his hand.\n*Party bickered over what to do with stone.
*Given [[prophecy|Elemental Weirds' Prophecy]] by Elemental Weirds\n*Elemental weirds disappeared, coalescing into a crystal.\n*[[Magdar]] took crystal, cavern began shaking and collapsing.\n*Attempted to escape cavern, eventually fell into crevasse.\n*Awoke amid pile of rotting meat in the [[Underdark]] without equipment.\n*Encountered Myconids. Myconids gave them equipment and healing, and a guide to the way out.\n*Myconid guide asked to join them in their quest. Flash of light and everyone transported to the [[Caretaker's Realm]].\n*Met the [[Caretaker]] who explained the realm to them. Created living area for the myconid.\n*Returned to material plane, exhausted. Could not find Myconids, looks like they'd run off. Set up camp.\n*Ambushed by drow. During battle, [[Mike]]'s armor started attacking Magdar.\n*Mike revealed that he was [[Jamlam]], trying to gain vengeance on Magdar for killing him. Magdar kills Mike, Mike's soul is stolen by the foul demon [[Soresh]] with whom he made his deal.
*[[Jay Mensher]] and [[Alvin]] eaten by purple worm in Desert.\n*Got back to [[Arbok's Rest]]. Split up treasure and sold things.\n*[[Wishus Aloon]] offered to buy statue. [[Goormo]] dropped statue, breaking it and revealing hidden map.\n*Agreement reached, seek Alakari artwork for Wishus and keep other treasures for themselves. [[Goormo]] sent along to protect her investment.\n*[[Goormo]] introduced [[Kallista]].\n*Headed to [[Blighted Swamp]].
*Found note on [[Maxus Aloon]]'s body. Read it, it exploded, and several changeling bounty hunters attacked.\n*Left. [[Simon]] sought out by [[Brother Maynard]] who asked him to retrieve [[Sarpadian Empires vol 3]] from an abandoned monastery on the edge of the [[Darnash Forest]].\n*[[Magdar]], [[Craz]], Simon and [[Ulrich]] went to monastery.\n*Confronted by elves, allowed to live because of Magdar, but he was warned that they were watching him.\n*Got to monastery. Explored dungeon below. Found book. Magdar threw Craz into shark-filled pool of acid.\n*Found necklace which holds power over a succubus.\n*Confronted by mind flayer-lord of dungeon, who said he ate Craz's brain. Asked for an exchange in return for the book before they left. When they refused, mind flayer attacked and was eventually killed.
One of the many side-effects of [[The Taint]] is that Aasimar and [[Tieflings]] are far more common in the world, as dormant planar lineages more frequently express themselves. Aasimar can be found anywhere humans might be found.\n\nAasimar characters possess the following racial traits.\n* +2 Wisdom, +2 Charisma.\n* Humanoid (Human) type.\n* Medium size.\n* An aasimar’s base land speed is 30 feet.\n* Darkvision: Aasimars can see in the dark up to 60 feet.\n* Racial Skills: Aasimars have a +2 racial bonus on Spot and Listen checks.\n* Daylight: An aasimar can use daylight once per day as a caster of his class levels.\n* Special Qualities: Resistance to acid 5, cold 5, and electricity 5.\n* Automatic Languages: Common, Celestial. Bonus Languages: Draconic, Dwarven, Elven, Gnome, Halfling, Sylvan.\n* [[Favored Class]]: Cleric, Monk or Paladin.\n* Level Adjustment: +1.
In the [[Blighted Swamp]], all know that when the sickly green clouds gather in the black sky it is time to seek shelter. Thick, viscous rivulets of acid rain down, eating away at everything below. The acid rain is actually a short-lived form of green slime, which becomes inert shortly after hitting the ground if it has nothing to feed on. Glass is apparently very resistant to the acid rains, and so any who foolishly venture into the Blighted Swamp would be wise to take large sheets of it with them.
Acidium is a dull green in coloration, with an odd texture looking almost like wood grain with an abundance of knotholes. Acidium constantly gives off smoke, and when held irritates skin. It comes in 5 different levels of purity, and gives inherent bonuses as listed below.\n\n!Weapons Grade\n* Minor Acidium: +1 Acid*\n* Lesser Acidium: +2 Acid*\n* Acidium: +2 Acidic Burst**\n* Greater Acidium: +3 Acidic Burst**\n* Elemental Acidium: +4 Acidic Burst**\n\n!Armor Grade\n* Minor Acidium: +1 Acid Resistance\n* Lesser Acidium: +2 Acid Resistance\n* Acidium: +2 Acid Resistance, Improved\n* Greater Acidium: +3 Acid Resistance, Improved\n* Elemental Acidium: +3 Acid Resistance, Greater\n\nMinor Acidium gives off faint streams of smoke, as from a pipe, while Elemental Acidum gives off strong white plumes of smoke. This smoke is very weak and dissipates quickly, providing no worries about breathing in closed quarters and offering no opportuinites to obscure vision. Minor acidium only slightly irritates skin, while Elemental Acidium leaves large red marks with even brief contact.\n\n *Acid: Upon command, an acid weapon is sheathed in viscous green acid. The acid does not harm the wielder. The effect remains until another command is given. An acid weapon deals an extra 1d6 points of acid damage on a successful hit. Bows, crossbows, and slings so crafted bestow the acid energy upon their ammunition.\n\n **Acidic Burst: An acidic burst weapon functions as an acid weapon that also explodes with acid upon striking a successful critical hit. The acid does not harm the wielder. In addition to the extra acid damage from the acid ability, an acidic burst weapon deals an extra 1d10 points of acid damage on a successful critical hit. If the weapon’s critical multiplier is x3, add an extra 2d10 points of acid damage instead, and if the multiplier is x4, add an extra 3d10 points. Bows, crossbows, and slings so crafted bestow the acid energy upon their ammunition. Even if the acid ability is not active, the weapon still deals its extra acid damage on a successful critical hit.
The Alakari, also commonly known as True Elves, were once the de facto rules of the world. Their magical achievements were, and still are, unparalleled, but were also their downfall. Their kingdom, Alakor, stretched across the entire planet, primarily via the [[Underdark]]. After [[The Cataclysm]], most of the Alakari were wiped out, and those that survived had their memories ripped from them. The survivors fractured, some heading to the above world to become the [[Gray Elves]] and [[Wood Elves]] while some stayed in their ancestral homes, becoming warped by the [[Magical Pollution]] into the [[Drow]]. No Alakari are known to exist any more.
Alakor is the former home of the [[Alakari]], and took up a large portion of the [[Underdark]]. Today, Alakor is but a memory of ages gone. Many ruins remains, sources of powerful [[Alakari]] artifacts, but these ruins are often also so horrendously polluted that just visiting them is tantamount to suicide. Even if one was able to withstand the concentrated [[Magical Pollution]], they'd have to deal with the horrors which have evolved within it, terrible abominations never meant to be.
config.options.chkHttpReadOnly = false;\n
*Human Cleric 3\n*Player: Ed\n*Domains: Healing, Destruction\n*Eaten by purple worm in [[Glass Desert]]. [[8 April 2007]]
This wondrous city lies squarely within the [[Marahaina Oasis]], and serves as a bustling trading post. Nearly in the center of the [[Glass Desert]], it is a common supply stop for caravans, and has grown to be a point of interest in itself as well.\n\n''Population'': 8,000\n''Size'': .5 square miles\n''GP Limit'': 15,000 gp\n\n''Inns''\n*Cirqe d'Solbee: Catering to an up-scale clientele of nobles and others of affluence, the Cirque d'Solbee puts on nightly shows of exotic performers and creatures from all around the world. It is said that any sort of pleasure you could desire may be found at Cirque d'Solbee... for the right price.\n*The Donkey's Ass: A fairly ordinary tavern and inn with little to distinguish it. Reasonable prices and decent food make it fairly popular, however.\n*Sal's Salacious Shanty: Part inn, part bordello, Sal's Salacious Shanty is a dingy dive. Rooms are available by the night or by the hour.\n
Arcanite is actually quite special, as it is the basis for each of the other 4 alloys. Arcanite is an inherently magical metal, appearing much like steel but giving off a slight, bluish glow. When held, a dull vibration can be felt running through it. Arcanite comes in 5 different levels of purity. Items forged of arcanite have an inherent bonus, as listed below:\n\n!Weapons & Armor Grade \n* Minor Arcanite: +1\n* Lesser Arcanite: +2\n* Arcanite: +3\n* Greater Arcanite: +4\n* Draconic Arcanite: +5\n\nMinor arcanite gives off a glow barely comparable to a candle, while Draconic Arcanite glows almost as boldly as a sunrod. The vibration felt when wielding minor arcanite is barely perceptible, but Draconic Arcanite is practically enough to rattle your bones and can be quite uncomfortable when held for more than a short time.
There exist 5 alchemically transmuted alloys, inherently magical, known collectively as the Arcanum Alloys.\n\nThe 5 alloys are [[Acidium]], [[Arcanite]], [[Electrite]], [[Frostite]] and [[Infernium]]. Arcanite is the only one actually mined, and it is alchemically transmuted into the other four arcanum alloys, which are known as the elemental alloys.\n\nEach of the 5 alloys has a particular physical sensation associated with holding it. At lower levels of purity, the physical sensation can be difficult to detect, but at higher levels it is quite noticable and, while not enough to harm someone, can be extremely uncomfortable. The physical sensations are entirely magical in nature only occur through direct skin contact. Even a thin layer of a material such as leather is sufficient to insulate a wielder/wearer from the effects of even the most potent Arcanum Alloy. Armor is often fur-lined, while weapons typically have leather wrapped around their hilts.\n\nAdditionally, all alloys come in multiple different purities and grades. Weapons grade alloys are far more volatile and thus are excellent for use as weapons, while Armor grade alloys are specially formulated for use in armor. In the case of Arcanite, weapons grade arcanite is actually significantly more potent than armor grade arcanite, leading to a higher cost. Among the elementally-attuned alloys, the opposite is true. In order to make the alloy suitable for armor, significant steps must be taken to limit its volatility and so armor grades of these alloys are much more expensive. In game terms, just use the standard costs for whichever abilities and bonuses an item has.
See [[Krouto]].
Home of the [[Archivist]].
*Human Cleric\n*Player: Jon\n*Patron: A hound archon named Keller
Aurum Luwrastha, the Elven capital, is a most bizarre city in that it's actually impossible to get to without being lead to it by a native of the Darnash forest. Aurum Luwrastha is built within a [[Hedge Maze|Hedge Mazes]], and is only accessible by elves and some fey, and it is strictly forbidden to bring outsides there, on penalty of death for the guide and the foreigners.
The Bear Tribe is a nomadic barbarian tribe currently residing to the south of the [[Free League of Jardeen]]. [[Magdar]]'s father, Afran, was exiled from it many years ago under a cruel and unjust chieftain who was eventually overthrown by [[Grizzor]], Magdar's grandfather. Magdar has been welcomed back as a full member of the tribe.
Where the [[Blighted Swamp]] and [[Glass Desert]] meet, the sands are as black as pitch. All who die in these unholy sands, or who are buried in them later, arise as undead.
The Blighted Swamp is a desolate place few venture to and fewer still return from. Overrun by undead and extremely inhospitable to the living, [[Magical Pollution]] here is stronger than even most places in the [[Underdark]]. It is believed that the source of [[The Taint]] or [[The Cataclysm]] may be found in the Blighted Swamp, but thus far none have succeeded in exploring it.
A monk at a church in the [[Free League of Jardeen]]. Helping the characters figure out who or what [[Psychosis]] is. Sent them to retrieve [[Sarpadian Empires vol 3]].
Human city
[[16 September 2007]]\n[[26 August 2007]]\n[[5 August 2007]]\n[[22 July 2007]]\n[[8 July 2007]]\n[[10 June 2007]]\n[[27 May 2007]]\n[[13 May 2007]]\n[[29 April 2007]]\n[[8 April 2007]]\n[[25 March 2007]]
The Caretaker is an energy-based being which resides in the [[Caretaker's Realm]]. It has the ability to shape the realm into whatever form is necessary.
A demiplane run by the [[Caretaker]], tied to the crystal which the elemental weirds gave the party. By using the crystal, they can travel to the realm and keep allies they find there. Travelling back from the Caretaker's Realm is extremely tiring.
The Catfolk of the tainted lands are native to the [[Djansenji]]. Their largest city is the port city of [[Xitzatza]].\n\nCatfolk characters possess the following racial traits:\n* +4 Dexterity, +2 Charisma.\n* Medium size.\n* A catfolk’s base land speed is 40 feet.\n* ~Low-Light Vision.\n* Racial Skills: Catfolk have a +2 racial bonus on Listen and Move Silently checks.\n* +1 natural armor bonus.\n* Automatic Languages: Common, Feline. Bonus Languages: Draconic, Gnoll, Halfl ing, Sylvan.\n* Favored Class: Druid, Ranger or Rogue.\n* Level adjustment +1.
*Humanoid (Human) type.\n*Medium.\n*Changeling base land speed is 30 feet.\n*+2 racial bonus on saving throws against sleep and charm effects.\n*+2 racial bonus on bludd, intimidate and sense motive checks.\n*Natural linguist: Changelings add Speak Language to their list of class skills for any class they adopt.\n*Minor Change Shape (Su): Changelings have the supernatural ability alter their apperance as though using a disguise self spell that affects their bodies but not their possessions. This ability is not an illusory effect, but a minor physical alteration of a changeling's facial features, skin color and texture, and size, within the limits described for the spell. A changeling can use this ability at will, and the alteration lasts under she changes shape again. A changeling reverts to her natural form when killed. A true seeing spell reveals her natural form. When using this ability to create a disguise, a changeling receives a +10 circumstance bonus on disguise checks. Using this ability is a full-round action.\n*Automatic languages: Common. Bonus langueages: Auran, Dwarven, Elven, Giant, Gnome, Halgling and Terran.\n*Favored class: Rogue, Beguilder, Factotum
!Current ~PCs\n[[Augustine]]: Human Cleric\n[[Ladon]]: Human Hexblade\n[[Lemnas]]: Human Swordsage\n[[Magdar]] the Ape: Human barbarian\n[[Mellom]]: Human Fighter\n[[Randy Woodcock]]: Human Fighter\n[[Simon]]: Human Rogue\n[[Ulrich]]: Daywalker Gargoyle Druid/Ranger\n\n!Deceased ~PCs\n[[Alvin]]: Human cleric\n[[Craz]]: Evolved human artificer\n[[Mike]]: Human blackguard\n\n!Retired ~PCs\n[[Michael]]: Human Monk\n\n!~NPCs\n[[Brother Maynard]]\n[[Father Kelly]]\n[[Gartol]]\n[[Goormo]]\n[[Grizzor]]\n[[Jakal]]\n[[Jay Mensher]]\n[[Kallista]]\n[[Kirin]]\n[[Krouto]] (a.k.a. The [[Archivist]])\n[[Lekkin]]\n[[Rotan]]\n[[Soresh]]\n[[Wishus Aloon]]\n\n!Deceased ~NPCs\n[[Maxus Aloon]]\n[[Ushanti]]
Large church in the [[Free League of Jardeen]]
/***\n| Name:|CloseOnCancelPlugin|\n| Description:|Closes the tiddler if you click new tiddler then cancel. Default behaviour is to leave it open|\n| Version:|6.9.3|\n| Date:|30-Sep-2006|\n| Source:|http://mptw.tiddlyspot.com/#CloseOnCancelPlugin|\n| Author:|Simon Baird <simon.baird@gmail.com>|\n| CoreVersion:|2.1.x|\n***/\n//{{{\nmerge(config.commands.cancelTiddler,{\n\n handler_orig_closeUnsaved: config.commands.cancelTiddler.handler,\n\n handler: function(event,src,title) {\n this.handler_orig_closeUnsaved(event,src,title);\n if (!store.tiddlerExists(title) && !store.isShadowTiddler(title))\n story.closeTiddler(title,true);\n return false;\n }\n\n});\n\n//}}}\n\n
The Confederate Militia is the standing army of the [[Golden Vale Confederacy]]. The dwarves, halflings and humans of the land all send their best and brightest to join it. It also has control of the only legal arcane spell casters in the vale. It is stationed at [[Glory's Burden]].
//{{{\nconfig.options.chkHttpReadOnly = false; // means web visitors can experiment with your site by clicking edit\nconfig.options.chkInsertTabs = true; // tab inserts a tab when editing a tiddler\nconfig.views.wikified.defaultText = ""; // don't need message when a tiddler doesn't exist\nconfig.views.editor.defaultText = ""; // don't need message when creating a new tiddler \n//}}}\n
*Evolved Human Artificer\n*Player: Dan
Although it seems a relatively small forest from the outside, the Darnash is full of surprises. The taint warps the very spatial fabric in the area of the forest, such that once inside it spans hundreds of miles. As if that weren't bad enough, even more perverse spatial distortions, known as [[Hedge Mazes]], randomly appear and can swallow up a traveler with no warning at all. The [[Gray Elves]] and [[Wood Elves]] which reside in the Darnash are actually able to innately sense and manipulate the spatial distortions, and it is said that the best Elven guides can lead a party from one end of the forest to another in but a single day's travel, a feat which otherwise could easily take weeks.
The Daywalker Gargoyles are an off-shoot of the true [[Gargoyles]]. Unlike true gargoyles, daywalkers don't turn into statues during the day. Instead, their claws, wings, horns and tails retract and they become indistinguishable from a human. Daywalker Gargoyles are also typically smaller than other gargoyles, about the size of a normal human. No one is sure exactly how the daywalker's came into existence. The two prevailing schools of thought are either that they are the result of a crossbreeding of humans with gargoyles, or that they are the result of magic, whether a curse placed on their lingeage or perhaps an intentional metamorphosis by some ancient gargoyle mage.\n\nThe night forms of daywalkers vary wildly and it's exceedingly rare for any two to look alike. Skin colors can be varying shades of blues, greens, reds and purples. Tails might be short or long, ended simply or with a cloved tip. They may or may not have horns, and if they do the horns could resemble the style of a ram, a bull, or anything in between. If they have hair, literally any color is possible. Even the wings are not constant; most have detached bat-like wings sprouting from their back, but a small amount of them actually have their wing membranes connecting to their arms and bodies. Their day form is indistinguishable from a normal human.\n\nDaywalker gargoyle characters possess the following racial traits.\n* +2 Strength, +2 Constitution, +2 Wisdom.\n* Medium size.\n* A daywalker gargoyle's base land speed is 30 feet.\n* Low-light Vision.\n* Transformation: During the day, a daywalker gargoyle loses its distinguishing gargoyle characteristics and appears exactly as a human. At night, a daywalker gains the following benefits:\n**Tough skin: Tough, leathery skin grants a +2 natural armor bonus to AC.\n**Wings: Although they have wings, gargoyles are too heavy to truly fly; rather, they glide. If a daywalker gargoyle falls at least 20 feet, it may fly with a speed of 60 feet (poor maneuverability). Once airborne, the gargoyle's flight is unrestricted except that it may not ascend more than 10 feet for every 120 feet it moves.\n**Claws: A daywalker gargoyle's claws give it two claws as primary natural attacks, each dealing 1d6 damage (plus strength bonus). In addition, the claws allow the gargoyle to climb easily, giving it a +10 racial bonus on climb checks.\n**Tail: A prehensile tail grants a +4 racial bonus on balance checks.\n**Glowing Eyes: Gargoyles' eyes glow when enraged, granting a +4 racial bonus on intimidate checks.\n* Special Qualities: Resistance to electricity 5.\n* Automatic Languages: Common, Gargoyle. Bonus Languages: Draconic, Dwarven, Elven, Gnome, Halfling, Sylvan.\n* [[Favored Class]]: Barbarian, Druid, or Ranger.\n* Level Adjustment: +1.
[[Main]]
Rainforest
The Drow are what became of the [[Alakari]] survivors of [[The Cataclysm]] who remained in the [[Underdark]]. An evil and twisted race, they are driven to insane bloodlust by the [[Magical Pollution]] of their home, and often wield powerful [[Alakari]] artifacts.\n\nDrow characters possess the following racial traits.\n* +2 Dexterity, +2 Intelligence, +2 Charisma, -2 Constitution.\n* Humanoid (Elf) type.\n* Medium size.\n* A drow's base land speed is 30 feet.\n* Immunity to sleep spells and effects, and a +2 racial saving throw bonus against enchantment spells or effects.\n* Darkvision out to 120 feet.\n* Spell resistance equal to 11 + class levels.\n* +2 racial bonus on Will saves against spells and spell-like abilities.\n* ~Spell-Like Abilities: Drow can use the following spell-like abilities once per day: dancing lights, darkness, faerie fire. Caster level equals the drow’s class levels.\n* Weapon Proficiency: A drow is automatically proficient with the hand crossbow, the rapier, and the short sword.\n* Automatic Languages: Common, Elven, Undercommon. Bonus Languages: Abyssal, Aquan, Draconic, Drow Sign Language, Gnome, Goblin.\n* Light Blindness: Abrupt exposure to bright light (such as sunlight or a daylight spell) blinds drow for 1 round. On subsequent rounds, they are dazzled as long as they remain in the affected area.\n* +2 racial bonus on Listen, Search, and Spot checks. A drow who merely passes within 5 feet of a secret or concealed door is entitled to a Search check to notice it as if she were actively looking for it.\n* [[Favored Class]]: Cleric, Rogue or Wizard.\n* Level adjustment +2.\n
* +2 Constitution, -2 Charisma.\n* Medium: As Medium creatures, dwarves have no special bonuses or penalties due to their size.\n* Dwarf base land speed is 20 feet. However, dwarves can move at this speed even when wearing medium or heavy armor or when carrying a medium or heavy load (unlike other creatures, whose speed is reduced in such situations).\n* Darkvision: Dwarves can see in the dark up to 60 feet. Darkvision is black and white only, but it is otherwise like normal sight, and dwarves can function just fine with no light at all.\n* Stonecunning: This ability grants a dwarf a +2 racial bonus on Search checks to notice unusual stonework, such as sliding walls, stonework traps, new construction (even when built to match the old), unsafe stone surfaces, shaky stone ceilings, and the like. Something that isn’t stone but that is disguised as stone also counts as unusual stonework. A dwarf who merely comes within 10 feet of unusual stonework can make a Search check as if he were actively searching, and a dwarf can use the Search skill to find stonework traps as a rogue can. A dwarf can also intuit depth, sensing his approximate depth underground as naturally as a human can sense which way is up.\n* Weapon Familiarity: Dwarves may treat dwarven waraxes and dwarven urgroshes as martial weapons, rather than exotic weapons.\n* Stability: A dwarf gains a +4 bonus on ability checks made to resist being bull rushed or tripped when standing on the ground (but not when climbing, flying, riding, or otherwise not standing firmly on the ground).\n* +2 racial bonus on saving throws against poison.\n* +2 racial bonus on saving throws against spells and spell-like effects.\n* +1 racial bonus on attack rolls against orcs and goblinoids.\n* +4 dodge bonus to Armor Class against monsters of the giant type. Any time a creature loses its Dexterity bonus (if any) to Armor Class, such as when it’s caught flat-footed, it loses its dodge bonus, too.\n* +2 racial bonus on Appraise checks that are related to stone or metal items.\n* +2 racial bonus on Craft checks that are related to stone or metal.\n* Automatic Languages: Common and Dwarven. Bonus Languages: Giant, Gnome, Goblin, Orc, Terran, and Undercommon.\n* Favored Class: Fighter. A multiclass dwarf’s fighter class does not count when determining whether he takes an experience point penalty for multiclassing\n
[[MptwEditTemplate]]\n
*-2 Charisma\n*Humanoid (Human) type.\n*Medium: As Medium creatures, elans have no special bonuses or penalties due to their size.\n*Elan base land speed is 30 feet.\n*Elans (unlike most aberrations) do not have darkvision.\n*Naturally Psionic: Elans gain 2 bonus power points at 1st level. This benefit does not grant them the ability to manifest powers unless they gain that ability through another source, such as levels in a psionic class.\n*Resistance (Su): Elans can use psionic energy to increase their resistance to various forms of attack. As an immediate action, an elan can spend 1 power point to gain a +4 racial bonus on saving throws until the beginning of her next action.\n*Resilience (Su): When an elan takes damage, she can spend power points to reduce its severity. As an immediate action, she can reduce the damage she is about to take by 2 hit points for every 1 power point she spends.\n*Repletion (Su): An elan can sustain her body without need of food or water. If she spends 1 power point, an elan does not need to eat or drink for 24 hours.\n*Automatic Language: Common. Bonus Languages: Any (other than secret languages, such as Druidic). Elans’ past lives expose them to wide ranges of language.\n*Favored Class: Psion, Psionic Warrior or Soul Knife
Electrite is dark blue in coloration with long, jagged bright blue lines racing through it. Crackles of energy skitter across the surface randomly, and when held it causes your hairs to stand on end.\n\n!Weapons Grade\n* Minor Electrite: +1 Shock\n* Lesser Electrite: +2 Shock\n* Electrite: +2 Shocking Burst\n* Greater Electrite: +3 Shocking Burst\n* Elemental Electrite: +4 Shocking Burst\n\n!Armor Grade\n* Minor Electrite: +1 Electricity Resistance\n* Lesser Electrite: +2 Electricity Resistance\n* Electrite: +2 Electricity Resistance, Improved\n* Greater Electrite: +3 Electricity Resistance, Improved\n* Elemental Electrite: +3 Electricity Resistance, Greater\n\nMinor Electrite crackles only rarely (a couple times a minute) and is very faint, while Elemental Electrite seems to be constantly on fire with a blaze of electricity, casting light as a torch. Minor Electrite might send a small tingle through your hand, while Elemental Electrite makes all the hairs on your body stand on end.
Earth:\nThe fiend you seek can not be found\nNorth or east or south or west\nLong ago 'twas darkness bound\nAnd in shadows ends your quest\n\nAir:\nPsychosis, born in mind,\nSeeks to awake the others\nYou must search out allies\nTo defeat him and his brothers\n\nFire:\nA sparkling city in the desert\nAn oasis in the sand\nPsychosis here is powerful\nAnd makes its final stand\n\nWater:\nThe task ahead seems truly great\nBut in truth it is much greater\nFor one amongst you, filled with hate\nIs actually a traitor\n\nEarth: Four prophecies you have been told\nAir: But you do not know fate's plot\nFire: For two of us have told the truth\nWater: And two of us have not
The Elves currently living in the Tainted Lands come in three varieties. [[Gray Elves]] and [[Wood Elves]] are both native to the [[Darnash Forest]]. Gray Elves are extremely intelligent and are well-known for being masters of the arcane arts. Wood Elves on the other hand are extremely attuened to nature, more so even than other elves.\n\nThe dreadful [[Drow]] live in the [[Underdark]] and are strengthened, but also driven insane, by the [[Magical Pollution]] of their home.
Evolved dwarves are extremely tough, gaining damage resistance and bonus hit points in addition to their constitution modifiers.\n\nDwarven characters possess the following racial traits.\n* +2 Constitution, -2 Charisma.\n* Humanoid (Dwarf) type.\n* Medium: As Medium creatures, dwarves have no special bonuses or penalties due to their size.\n* Dwarf base land speed is 20 feet. However, dwarves can move at this speed even when wearing medium or heavy armor or when carrying a medium or heavy load (unlike other creatures, whose speed is reduced in such situations).\n* Darkvision: Dwarves can see in the dark up to 60 feet. Darkvision is black and white only, but it is otherwise like normal sight, and dwarves can function just fine with no light at all.\n* Stonecunning: This ability grants a dwarf a +2 racial bonus on Search checks to notice unusual stonework, such as sliding walls, stonework traps, new construction (even when built to match the old), unsafe stone surfaces, shaky stone ceilings, and the like. Something that isn’t stone but that is disguised as stone also counts as unusual stonework. A dwarf who merely comes within 10 feet of unusual stonework can make a Search check as if he were actively searching, and a dwarf can use the Search skill to find stonework traps as a rogue can. A dwarf can also intuit depth, sensing his approximate depth underground as naturally as a human can sense which way is up.\n* Weapon Familiarity: Dwarves may treat dwarven waraxes and dwarven urgroshes as martial weapons, rather than exotic weapons.\n* Stability: A dwarf gains a +4 bonus on ability checks made to resist being bull rushed or tripped when standing on the ground (but not when climbing, flying, riding, or otherwise not standing firmly on the ground).\n* +2 racial bonus on saving throws against poison.\n* +2 racial bonus on saving throws against spells and spell-like effects.\n* +1 racial bonus on attack rolls against orcs and goblinoids.\n* +4 dodge bonus to Armor Class against monsters of the giant type. Any time a creature loses its Dexterity bonus (if any) to Armor Class, such as when it’s caught flat-footed, it loses its dodge bonus, too.\n* +2 racial bonus on Appraise checks that are related to stone or metal items.\n* +2 racial bonus on Craft checks that are related to stone or metal.\n* Stone skin: A dwarf's skin is almost as hard as stone, granting DR 1/Adamantine.\n* Naturally Tough: Dwarves get 1 extra hit point per level.\n* Automatic Languages: Common and Dwarven. Bonus Languages: Giant, Gnome, Goblin, Orc, Terran, and Undercommon.\n* [[Favored Class]]: Cleric, Fighter or Paladin.\n* Level Adjustment: +1.
Evolved halfling characters possess the following racial traits.\n* +4 Dexterity, +2 Charisma.\n* Humanoid (Halfling) type.\n* Small: As a Small creature, a halfling gains a +1 size bonus to Armor Class, a +1 size bonus on attack rolls, and a +4 size bonus on Hide checks, but she uses smaller weapons than humans use, and her lifting and carrying limits are three-quarters of those of a Medium character.\n* Halfling base land speed is 20 feet.\n* +2 racial bonus on Climb, Jump, and Move Silently checks.\n* +1 racial bonus on all saving throws.\n* +2 morale bonus on saving throws against fear: This bonus stacks with the halfling’s +1 bonus on saving throws in general.\n* +1 racial bonus on attack rolls with thrown weapons and slings.\n* +2 racial bonus on Listen checks.\n* Halflings may cast reduce person on themselves, as the spell, at will, but they may not cast it for another 1d12 rounds starting when the effect ends (whether voluntarily dismissed, dispelled, or time ran out). Their caster level is equal to their character level.\n* Automatic Languages: Common and Halfling. Bonus Languages: Dwarven, Elven, Gnome, Goblin, and Orc.\n* [[Favored Class]]: Bard, Rogue or Sorcerer.\n* Level Adjustment: +1.
Evolved humans are more adaptable and skillful than even regular humans.\n\nHuman characters possess the following racial traits.\n* +2 ability bonus: Humans are a diverse bunch and can excel in any area. When making your character, choose one ability score to receive a one-time +2 bonus. This choice may not be changed later.\n* Humanoid (Human) type.\n* Medium: As Medium creatures, humans have no special bonuses or penalties due to their size.\n* Human base land speed is 30 feet.\n* Humans gain a feat at every odd level. This replaces the feat most characters get every 3 levels. A human character thus gets 2 feats at level 1 (the feat all characters get, and a feat for this racial bonus).\n* 4 extra skill points at 1st level and 1 extra skill point at each additional level.\n* Automatic Language: Common. Bonus Languages: Any (other than secret languages, such as Druidic). See the Speak Language skill.\n* [[Favored Class]]: Any one.\n* Level Adjustment: +1.\n
Evolved kobolds find their draconic blood fired up by [[The Taint]], and are capable of surprising amounts of power.\n\nKobold characters possess the following racial traits.\n* -4 Strength, +4 Dexterity, +2 Charisma, -2 Constitution, -2 Intelligence.\n* Humanoid (Kobold) type.\n* Small size: +1 bonus to Armor Class, +1 bonus on attack rolls, +4 bonus on Hide checks, -4 penalty on grapple checks, lifting and carrying limits ¾ those of Medium characters.\n* A kobold’s base land speed is 30 feet.\n* Darkvision out to 60 feet.\n* Racial Skills: A kobold character has a +2 racial bonus on Craft (trapmaking), Profession (miner), and Search checks.\n* Racial Feats: A kobold character gains feats according to its character class.\n* +1 natural armor bonus.\n* Magical Aptitude: Kobolds have a remarkable knack for magic. All kobolds may cast spells as a level 2 sorcerer, regardless of what class they actually are. A kobold sorcerer casts spells as a sorcerer of 2 levels higher than normal. This affects both spells per day as well as spells known, and caster level for purposes such as caster level checks and determining spell effects.\n* Blood-fueled Magic: Unfortunately, the kobold's magical prowess does not come without a price. The magics they wield feed off their very life essence. Kobolds lose 1 hit point for every two sorcerer caster levels they have, rounded down. This includes the 2 caster levels granted to all kobolds.\n* Automatic Languages: Common, Draconic. Bonus Languages: Undercommon.\n* [[Favored Class]]: Druid, Rogue or Sorcerer.\n* Level Adjustment: +1.
Priest at the [[Church of the Sovereigns]] in [[Free League of Jardeen]].
Characters do not take experience point penalties for multiclassing. Instead, a character which takes levels in their race's favored class gains bonus feats. You get a bonus feat at level 2 and every 3 levels thereafter in your favored class(es) (so 2, 5, 8, 11, 14, 17 and 20). Your favored classes are added together to determine this. For example, a Daywalker Gargoyle Druid 4/Ranger 3 would gain only 2 bonus feats. If the gargoyle then took a level of barbarian, she would get another bonus feat, since that would be her 8th level in favored classes.
In the [[Glass Desert]], one must constantly be wary of the fire storms. The name is moderately misleading, as they're not really storms so much as columns of flame which snake towards the sky. They typically are around 20 feet in diameter, though they can be as small as 5 feet or as large as 50 feet. They are not especially fast and are quite predictable, so are easily avoided by anyone observant enough. It's a good thing, too, as the fires raging in the fire storms are hotter than any natural flame ever could be. The sands melt below, and roads of glass form in the wake of the storms.
Frostite is light blue in coloration with jagged white patterns evoking ice crystals. It is cold to the touch, and water in the air constantly condenses on it like a glass of a cold beverage.\n\n!Weapons Grade\n* Minor Frostite: +1 Frost\n* Lesser Frostite: +2 Frost\n* Frostite: +2 Icy Burst\n* Greater Frostite: +3 Icy Burst\n* Elemental Frostite: +4 Icy Burst\n\n!Armor Grade\n* Minor Frostite: +1 Cold Resistance\n* Lesser Frostite: +2 Cold Resistance\n* Frostite: +2 Cold Resistance, Improved\n* Greater Frostite: +3 Cold Resistance, Improved\n* Elemental Frostite: +3 Cold Resistance, Greater\n\nMinor Frostite gathers small amounts of condensation while Elemental Frostite is practically dripping. Minor Electrite might seems slightly cool to the touch, while Elemental Frostite is almost cold enough to give you frostbite!
The gargoyles are a largely-noble race of protectors. In ancient times, they guarded the towns and cities of the [[Alakari]] in return for the ancient elves' protection during the day. Fearsome in battle, few would choose to pick a fight with a gargoyle. During the day, however, they are extremely vulnerable as the coming of each dawn turns them into solid rock. In this state, they are entirely defenseless and if they were to be shattered, they would in fact die. At dusk, the gargoyle's awaken again, their hollers echoing across the land as they break through the thin layer of stone left surrounding them like a shell.\n\nThere exist an offshoot of the gargoyles, [[Daywalker Gargoyles]], which do not turn into statues each day. Instead, the daywalkers turn into humans.
*Gnoll defender of [[Sargon]].\n*Last seen: [[Sargon]].\n*Saved by party.\n*Uncle of [[Lekkin]].\n*Son of [[Ushanti]].
The Glass Desert is a massive expanse of arid land, unlike any normal desert because of the intricate latticework of glass criss-crossing all over the surface. Constant [[Fire Storms]] melt the sand, creating an ever-changing series of glass roads. These roads have caused the desert to become a hub of trade, and many caravans make their way through the desert each week. Due to the nature of the roads and the hazards of the desert, it can still be quite dangerous for foreigners to attempt to navigate them, but thankfully there is no shortage of nomadic guides eager to sell their services to the merchants. There are actually a handfull of cities in the Glass Desert, the greatest of which is [[Arbok's Rest]] in the [[Marahaina Oasis]].
Glory's Burden is the capital of the [[Golden Vale Confederacy]]. It was erected centuries ago when bickering and infighting threatened to dissolve the nascent confederacy. Lacking an established history, it is controlled equally by the humans, halflings and dwarves of the [[Golden Vale]].\n\nThe Spire of Justice lies at its center, a huge tower which stretches towards the heavens and from which every corner of the vale is visible.\n\nThe [[Confederate Militia]] is stationed there.
The Gnoll Graveyard is a sacred spot in the Glass Desert northwest of Arbok's Rest. When the gnolls of the [[Blighted Swamp]] become too old, they make a pilgrimage to the graveyard so they may die on hallowed ground and be with their ancestors.
Golden Vale is a lovely, green area where [[The Taint]] has little effect. Temperate and welcoming, many would consider the area a paradise if not for the fascist governments which reside there. The [[Golden Vale Confederacy]] rules over the vale with an iron fist. Xenophobic to the extreme, all borders of Golden Vale are patrolled constantly.\n\nArcane magic is strictly controlled within the vale, and anyone who displays an aptitude in it is given a [[Mage-mark]] and either recruited to the [[Confederate Militia]], exiled or killed outright.
The Golden Vale Confederacy, or just the Confederacy, is a group of 6 dwarven, halfling and human states which have banded together to take total control of the [[Golden Vale]]. It consists of:\n\n*[[Glory's Burden]], its capital.\n*[[Sanctum]]\n*[[Lomenshire]]\n*[[Kettlebrook]]\n*[[Rufthaka]]\n*[[Calwithe]]
*Ogre bodyguard of [[Wishus Aloon]].\n*Last seen: [[Arbok's Rest]].\n*Befriended Magdar.\n*Close friend of [[Kallista]].
The Gray Elves are the least changed of the elves since [[The Cataclysm]]. While still a shadow of their former glory, gray elves are nonetheless quite powerful when it comes to the arcane arts.\n\nGray Elvish characters possess the following racial traits.\n* +2 Dexterity, +4 Intelligence, -2 Strength, -2 Constitution.\n* Humanoid (Elf) type.\n* Medium size.\n* A gray elf’s base land speed is 30 feet.\n* Immunity to sleep spells and effects, and a +2 racial saving throw bonus against enchantment spells or effects.\n* Low-light vision.\n* Weapon Proficiency: Gray elves are automatically proficient with the longsword, rapier, longbow, composite longbow, shortbow, and composite shortbow.\n* +2 racial bonus on Listen, Search, Spellcraft, and Spot checks. A gray elf who merely passes within 5 feet of a secret or concealed door is entitled to a Search check to notice it as if she were actively looking for it.\n* Spatial Mastery: The same effect which creates the [[Hedge Mazes]] is ingrained into elven physiology. They may use dimension door, as the spell, every 1d12 rounds, with a range limit equal to (character level + charisma modifier) x 10 feet.\n* Automatic Languages: Common, Elven. Bonus Languages: Draconic, Gnoll, Gnome, Goblin, Orc, Sylvan.\n* Favored Class: Bard or Wizard.\n* Level Adjustment: +1.
*Grandfather of [[Magdar]]\n*Leader of the [[Bear Tribe]]
[[The Taint]] has manifested in the [[Darnash Forest]] as a most unusual hazard; extra-dimensional spaces, commonly know as "hedge mazes," frequently trap unwary travelers. The name is merely a euphemism, as there aren't actually any hedges or even walls forming the "maze." Rather, the hedge mazes are areas where the normal rules of space don't seem to apply. Someone lost in a hedge maze could travel in a straight line for days, only to come out a few feet away from where they first entered it. Even worse, it's practically impossible to tell that you're in a hedge maze except through magical means.\n\nElves have the unique ability of being able to innately detect hedge mazes, and may choose to either ignore them or even exit them at will whenever they are inside one. Elves are also capable of guiding companions through hedge mazes, although they do not neccessarily have to. If an elf chooses to leave a hedge maze without his companions following, he appears to fade away.
/***\n| Name:|HideWhenPlugin|\n| Description:|Allows conditional inclusion/exclusion in templates|\n| Version:|6.1.2|\n| Date:|20-Oct-2006|\n| Source:|http://mptw.tiddlyspot.com/#HideWhenPlugin|\n| Author:|Simon Baird <simon.baird@gmail.com>|\nFor use in ViewTemplate and EditTemplate. Eg\n{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}\n{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}\n***/\n//{{{\n\nwindow.removeElementWhen = function(test,place) {\n if (test) {\n removeChildren(place);\n place.parentNode.removeChild(place);\n }\n};\n\nmerge(config.macros,{\n\n hideWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {\n removeElementWhen( eval(paramString), place);\n }},\n\n showWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {\n removeElementWhen( !eval(paramString), place);\n }},\n\n hideWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {\n removeElementWhen( tiddler.tags.containsAll(params), place);\n }},\n\n showWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {\n removeElementWhen( !tiddler.tags.containsAll(params), place);\n }},\n\n hideWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {\n removeElementWhen( tiddler.tags.containsAny(params), place);\n }},\n\n showWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {\n removeElementWhen( !tiddler.tags.containsAny(params), place);\n }},\n\n hideWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {\n removeElementWhen( store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0]), place);\n }},\n\n showWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {\n removeElementWhen( !(store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])), place);\n }}\n\n});\n\n//}}}\n\n
The following house rules are currently in effect. They are subject to change at any time.\n\n!Character creation\n* When rolling your ability scores, you may raise your highest roll to an 18 (before applying racial ability modifiers), but if you do you must also lower one of your other scores to 8.\n\n!Advancement\n*There is no multiclass penalty. Instead, characters with levels in their favored class gain a bonus. See [[Favored Class]] for more information.\n\n!Classes\n*Clerics may not worship gods, nor may they choose not to worship anything. Instead, they receive their powers by making a pact with a powerful outsider known as a patron.\n*Druids do not get animal companions or the wild shape ability. Instead, they gain Shapeshift, as per the PHB 2 page 39.\n*Monks and Paladins may multiclass freely.\n\n!Races\n* Refer to each race individually, as many have had changes made. For example, Tieflings do not have a charisma penalty and may cast suggestion instead of darkness.\n* The following standard races are not allowed: Gnomes, ~Half-Orcs, ~Half-Elves.\n\n!Feats\n*Toughness grants 1 HP per character level, rather than a flat +3 HP. Improved Toughness, from Complete Warrior, is not available.\n*Dodge grants a flat +1 dodge bonus to AC against all opponents.
Humans are still the most wide-spread race in the Tainted Lands, although they are not quite as populous as in most other settings. About one in four human children is born an [[Aasimar]] or a [[Tiefling|Tieflings]], although those two races end up having human children half the time. More rare are humans born as [[Changelings]].
Infernium is dark orange in coloration with smoky red swirls throughout. It gives off a smoldering black smoke not unlike Acidium.\n\n!Weapons Grade\n* Minor Infernium: +1 Flaming\n* Lesser Infernium: +2 Flaming\n* Infernium: +2 Flaming Burst\n* Greater Infernium: +3 Flaming Burst\n* Elemental Infernium: +4 Flaming Burst\n\n!Armor Grade\n* Minor Infernium: +1 Fire Resistance\n* Lesser Infernium: +2 Fire Resistance\n* Infernium: +2 Fire Resistance, Improved\n* Greater Infernium: +3 Fire Resistance, Improved\n* Elemental Infernium: +3 Fire Resistance, Greater\n\nMinor Infernium gives off faint streams of smoke like a smoldering camp fire, while Elemental Infernium gives offoily black plumes of smoke. This smoke is very weak and dissipates quickly, providing no worries about breathing and offering no opportunities to obscure vision. Minor Infernium is noticable warm to the touch, while Elemental Electrite is almot hot enough to burn.
*Wise old gnoll.\n*Last seen: [[Sargon]].
See [[Mike]]
Jay Mensher is a halfling entertainer who travelled with the party briefly. He was eaten by a giant worm, but somehow survived. His hit play, "Swallowed Whole: The Jay Mensher Story," currently sells out nightly to a crowd of the affluent in [[Arbok's Rest]].
*Aasimar friend of [[Goormo]]\n*Last seen: [[Sargon]]\n*Runs Kali's Den, a soup kitchen in [[Arbok's Rest]]\n*Whenever she talks, bells can be heard in the background
Small thorp in the [[Golden Vale]]. [[Brother Maynard]]'s hometown.
Halfling community
Works at [[Maxus Aloon]]'s shop. Human female, red hair, freckles, pale skin.
Krouto is a warforged, known as the Archivist, who formerly inhabited the [[Archivist's Tower]]. He had written down everything he remembered and was constantly re-reading it over and over so that he could retain his memories for longer than 30 years.
*Human Hexblade\n*Player: Matt
/***\n|''Name:''|LegacyStrikeThroughPlugin|\n|''Description:''|Support for legacy (pre 2.1) strike through formatting|\n|''Version:''|1.0.1|\n|''Date:''|Jul 21, 2006|\n|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|\n|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|\n|''License:''|[[BSD open source license]]|\n|''CoreVersion:''|2.1.0|\n|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|\n\n***/\n\n//{{{\n\n// Ensure that the LegacyStrikeThrough Plugin is only installed once.\nif(!version.extensions.LegacyStrikeThroughPlugin)\n {\n version.extensions.LegacyStrikeThroughPlugin = true;\n\nconfig.formatters.push(\n{\n name: "legacyStrikeByChar",\n match: "==",\n termRegExp: /(==)/mg,\n element: "strike",\n handler: config.formatterHelpers.createElementAndWikify\n});\n\n} // end of "install only once"\n//}}}\n
*Young female gnoll\n*Last seen: Travelling with party in [[Blighted Swamp]].\n*Neice of [[Gartol]]\n*Grand-daughter of [[Ushanti]]\n
*Human Swordsage\n*Player: Dan
Living constructs have the following traits:\n\n*Gets skill points, base attack, saving throw and skills from class.\n*Has a constitution score\n*Normal vision\n*Can be affected by spells as either a construct or a living creature. Receives only half effect from spells of the healing subschool.\n*Immune to:\n**Disease.\n**Energy drain.\n**Exhaustion.\n**Fatigue.\n**Mind-affecting effects.\n**Nausea.\n**Paralysis.\n**Poison.\n**Sleep effects.\n*Not immune to death effects or necromancy, except as mentioned here.\n*Disabled warforged do not lose hit points for strenuous activities, and will not lose hit points automatically for being below 0 hit points.\n*Cannot heal damage naturally. Must be magically healed or repaired.\n*Is subject to critical hits, nonlethal damage, ability damage and ability drain.\n*Does not need to eat, sleep or breathe, but still gains full benefits from consumable spells and magic items like Heroes' Feast.\n*Can be raised and resurrected.
Note: The statistics here are for Poison Dusk lizardfolk from Monster Manual III, not standard lizard folk.\nLizardfolk characters possess the following racial traits:\n* +2 Dexterity, +2 Constitution, -2 Charisma.\n* Small: As a Small creature, a lizardfolk gains a +1 size bonus to Armor Class, a +1 size bonus on attack rolls, and a +4 size bonus on Hide checks, but she uses smaller weapons than humans use, and her lifting and carrying limits are three-quarters of those of a Medium character.\n* A lizardfolk's base land speed is 30 feet\n* Racial skills: +4 racial bonus on balance, jump and swim checks.\n* May apply poison without endangering itself.\n* +3 natural armor bonus.\n* Natural weapons: 2 claws (1d3) and bite (1d3).\n* Chameleon skin: +5 racial bonus on hide checks.\n* Hold breath: Can hold its breath for a number of rounds equal to 4 x its Constitution score before it risks drowning.\n* ~Low-Light Vision.\n* Weapon familiarity: Lizardfolk treat nets and bolas as martial weapons rather than exotic.\n* Automatic languages: Common, Draconic. Bonus languages: Halfling, Sylvan.\n* [[Favored Class]]: Fighter, Ranger or Rogue.\n* Level Adjustment: +1.
Halfling community
*Human Barbarian\n*Player: Leonard\n*Stranded as infant in [[Darnash Forest]]\n*Unheard-of ability (in humans) to navigate [[Hedge Mazes]] much likes elves.\n*Father (deceased): Afran\n*Grandfather: [[Grizzor]], leader of the [[Bear Tribe]].\n*Known as the Ape among Elves, the Butcher in Arbok's Rest, and the Bear elsewhere.
A Mage-mark is a glowing sigil magically inscribed on the forehead of an arcane caster, to identify them as such. It is used by the [[Golden Vale Confederacy]]
Magical Pollution is a much more concentrated, sinister aspect of [[The Taint]], found primarily in the [[Underdark]] and the [[Blighted Swamp]]. It is extremely volatile, warping the bodies and minds of those who spend much time within it.
Long ago, [[The Cataclysm]] destroyed the world-spanning empire of [[Alakor]], [[tainting|The Taint]] the land. The Tainted Lands now are an exciting, dangerous place.
[[Main]]\n[[Setting]]\n[[Campaign Journals]]\n[[Characters]]\n[[Equipment]]\n[[House Rules]]\n
The Marahaina Oasis shines like an emerald in the center of the [[Glass Desert]]. For some unknown reasons, the [[Fire Storms]] avoid the area surrounding the oasis, and such verdant and varied plant and animal life has sprung up around it that the area is almost like a rain forest.\n\nWithin this oasis lies the city of [[Arbok's Rest]].
*Halfling merchant.\n*Last seen: [[Free League of Jardeen]].\n*Brother of [[Wishus Aloon]].
*Human Fighter\n*Player: Mike\n*Bodyguard to [[Brother Maynard]]\n*Son of nobles in the [[Golden Vale Confederacy]]
*Human Monk 3\n*Player: Roland\n*Blind\n*Unique tremorsense ability
*Human Blackguard\n*Player: Jon\n*Fallen paladin\n*Formerly Jamlam\n*Killed by [[Magdar]], brought back to life to enact revenge.
/***\n| Name:|MptwLayoutPlugin|\n| Description:|A package containing templates and css for the MonkeyPirateTiddlyWiki layout|\n| Version:|6.1.2|\n| Date:|02-Oct-2006|\n| Source:|http://mptw.tiddlyspot.com/#MptwLayoutPlugin|\n| Author:|Simon Baird <simon.baird@gmail.com>|\n| CoreVersion:|2.1.x|\n!Notes\nPresumes you have TagglyTaggingPlugin installed.\n***/\n//{{{\nconfig.shadowTiddlers.GettingStarted += "\sn\snSee also MonkeyPirateTiddlyWiki.";\n\n//}}}\n\n//{{{\nmerge(config.shadowTiddlers,{\n\nMptwStyleSheet:[\n "/*{{{*/",\n "/* a contrasting background so I can see where one tiddler ends and the other begins */",\n "body {",\n " background: [[ColorPalette::TertiaryLight]];",\n "}",\n "",\n "/* sexy colours and font for the header */",\n ".headerForeground {",\n " color: [[ColorPalette::PrimaryPale]];",\n "}",\n ".headerShadow, .headerShadow a {",\n " color: [[ColorPalette::PrimaryMid]];",\n "}",\n ".headerForeground, .headerShadow {",\n " padding: 1em 1em 0;",\n " font-family: 'Trebuchet MS' sans-serif;",\n " font-weight:bold;",\n "}",\n ".headerForeground .siteSubtitle {",\n " color: [[ColorPalette::PrimaryLight]];",\n "}",\n ".headerShadow .siteSubtitle {",\n " color: [[ColorPalette::PrimaryMid]];",\n "}",\n "",\n "/* make shadow go and down right instead of up and left */",\n ".headerShadow {",\n " left: 1px;",\n " top: 1px;",\n "}",\n "",\n "/* prefer monospace for editing */",\n ".editor textarea {",\n " font-family: 'Consolas' monospace;",\n "}",\n "",\n "/* sexy tiddler titles */",\n ".title {",\n " font-size: 250%;",\n " color: [[ColorPalette::PrimaryLight]];",\n " font-family: 'Trebuchet MS' sans-serif;",\n "}",\n "",\n "/* more subtle tiddler subtitle */",\n ".subtitle {",\n " padding:0px;",\n " margin:0px;",\n " padding-left:0.5em;",\n " font-size: 90%;",\n " color: [[ColorPalette::TertiaryMid]];",\n "}",\n ".subtitle .tiddlyLink {",\n " color: [[ColorPalette::TertiaryMid]];",\n "}",\n "",\n "/* a little bit of extra whitespace */",\n ".viewer {",\n " padding-bottom:3px;",\n "}",\n "",\n "/* don't want any background color for headings */",\n "h1,h2,h3,h4,h5,h6 {",\n " background: [[ColorPalette::Background]];",\n " color: [[ColorPalette::Foreground]];",\n "}",\n "",\n "/* give tiddlers 3d style border and explicit background */",\n ".tiddler {",\n " background: [[ColorPalette::Background]];",\n " border-right: 2px [[ColorPalette::TertiaryMid]] solid;",\n " border-bottom: 2px [[ColorPalette::TertiaryMid]] solid;",\n " margin-bottom: 1em;",\n " padding-bottom: 2em;",\n "}",\n "",\n "/* make options slider look nicer */",\n "#sidebarOptions .sliderPanel {",\n " border:solid 1px [[ColorPalette::PrimaryLight]];",\n "}",\n "",\n "",\n "/* the borders look wrong with the body background */",\n "#sidebar .button {",\n " border-style: none;",\n "}",\n "",\n "/* displays the list of a tiddler's tags horizontally. used in ViewTemplate */",\n ".tagglyTagged li.listTitle {",\n " display:none",\n "}",\n ".tagglyTagged li {",\n " display: inline; font-size:90%;",\n "}",\n ".tagglyTagged ul {",\n " margin:0px; padding:0px;",\n "}",\n "",\n "/* this means you can put line breaks in SidebarOptions for readability */",\n "#sidebarOptions br {",\n " display:none;",\n "}",\n "/* undo the above in OptionsPanel */",\n "#sidebarOptions .sliderPanel br {",\n " display:inline;",\n "}",\n "",\n "/* horizontal main menu stuff */",\n "#displayArea {",\n " margin: 1em 15.7em 0em 1em; /* use the freed up space */",\n "}",\n "#topMenu br {",\n " display: none;",\n "}",\n "#topMenu {",\n " background: [[ColorPalette::PrimaryMid]];",\n " color:[[ColorPalette::PrimaryPale]];",\n "}",\n "#topMenu {",\n " padding:2px;",\n "}",\n "#topMenu .button, #topMenu .tiddlyLink, #topMenu a {",\n " margin-left: 0.5em;",\n " margin-right: 0.5em;",\n " padding-left: 3px;",\n " padding-right: 3px;",\n " color: [[ColorPalette::PrimaryPale]];",\n " font-size: 115%;",\n "}",\n "#topMenu .button:hover, #topMenu .tiddlyLink:hover {",\n " background: [[ColorPalette::PrimaryDark]];",\n "}",\n "",\n "/* make it print a little cleaner */",\n "@media print {",\n " #topMenu {",\n " display: none ! important;",\n " }",\n " /* not sure if we need all the importants */",\n " .tiddler {",\n " border-style: none ! important;",\n " margin:0px ! important;",\n " padding:0px ! important;",\n " padding-bottom:2em ! important;",\n " }",\n " .tagglyTagging .button, .tagglyTagging .hidebutton {",\n " display: none ! important;",\n " }",\n " .headerShadow {",\n " visibility: hidden ! important;",\n " }",\n " .tagglyTagged .quickopentag, .tagged .quickopentag {",\n " border-style: none ! important;",\n " }",\n " .quickopentag a.button, .miniTag {",\n " display: none ! important;",\n " }",\n "}",\n "/*}}}*/",\n ""\n].join("\sn"),\n\nMptwPageTemplate:[\n "<!--{{{-->",\n "<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>",\n " <div class='headerShadow'>",\n " <span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> ",\n " <span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>",\n " </div>",\n " <div class='headerForeground'>",\n " <span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> ",\n " <span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>",\n " </div>",\n "</div>",\n "<!-- horizontal MainMenu -->",\n "<div id='topMenu' refresh='content' tiddler='MainMenu'></div>",\n "<!-- original MainMenu menu -->",\n "<!-- <div id='mainMenu' refresh='content' tiddler='MainMenu'></div> -->",\n "<div id='sidebar'>",\n " <div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>",\n " <div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>",\n "</div>",\n "<div id='displayArea'>",\n " <div id='messageArea'></div>",\n " <div id='tiddlerDisplay'></div>",\n "</div>",\n "<!--}}}-->",\n ""\n].join("\sn"),\n\nMptwViewTemplate:[\n "<!--{{{-->",\n "",\n "<div class='toolbar'>",\n " <span macro=\s"showWhenTagged systemConfig\s">",\n " <span macro=\s"toggleTag systemConfigDisable . '[[disable|systemConfigDisable]]'\s"></span>",\n " </span>",\n " <span style=\s"padding:1em;\s"></span>",\n " <span macro='toolbar closeTiddler closeOthers +editTiddler deleteTiddler undoChanges permalink references jump newHere newJournalHere'></span>",\n "</div>",\n "",\n "<div class=\s"tagglyTagged\s" macro=\s"tags\s"></div>",\n "",\n "<div class='titleContainer'>",\n " <span class='title' macro='view title'></span>",\n " <span macro=\s"miniTag\s"></span>",\n "</div>",\n "",\n "<div class='subtitle'>",\n " <span macro='view modifier link'></span>,",\n " <span macro='view modified date [[DD-mmm-YY]]'></span>",\n " (<span macro='message views.wikified.createdPrompt'></span>",\n " <span macro='view created date [[DD-mmm-YY]]'></span>)",\n "</div>",\n "",\n "<div macro=\s"showWhenExists ViewPanelTemplate\s">[[ViewPanelTemplate]]</div>",\n "",\n "<div macro=\s"hideWhen tiddler.tags.containsAny(['css','html','pre','systemConfig']) && !tiddler.text.match('{{'+'{')\s">",\n " <div class='viewer' macro='view text wikified'></div>",\n "</div>",\n "<div macro=\s"showWhen tiddler.tags.containsAny(['css','html','pre','systemConfig']) && !tiddler.text.match('{{'+'{')\s">",\n " <div class='viewer'><pre macro='view text'></pre></div>",\n "</div>",\n "",\n "<div macro=\s"showWhenExists ViewDashboardTemplate\s">[[ViewDashboardTemplate]]</div>",\n "",\n "<div class=\s"tagglyTagging\s" macro=\s"tagglyTagging\s"></div>",\n "",\n "<!--}}}-->",\n ""\n].join("\sn"),\n\nMptwEditTemplate:[\n "<!--{{{-->",\n "<div class=\s"toolbar\s" macro=\s"toolbar +saveTiddler closeOthers -cancelTiddler deleteTiddler\s"></div>",\n "<div class=\s"title\s" macro=\s"view title\s"></div>",\n "<div class=\s"editLabel\s">Title</div><div class=\s"editor\s" macro=\s"edit title\s"></div>",\n "<div class=\s"editLabel\s">Tags</div><div class=\s"editor\s" macro=\s"edit tags\s"></div>",\n "<div class=\s"editorFooter\s"><span macro=\s"message views.editor.tagPrompt\s"></span><span macro=\s"tagChooser\s"></span></div>",\n "<div macro=\s"showWhenExists EditPanelTemplate\s">[[EditPanelTemplate]]</div>",\n "<div class=\s"editor\s" macro=\s"edit text\s"></div>",\n "<!--}}}-->",\n ""\n].join("\sn"),\n\nMonkeyPirateTiddlyWiki:[\n "[[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.",\n "!!Upgrading ~MonkeyPirateTiddlyWiki",\n "This \s"empty\s" ~MonkeyPirateTiddlyWiki file comes pre-installed with the core ~MonkeyPirateTiddlyWiki plugins. You can upgrade these core plugins to the latest version by doing the following:",\n "* Click ImportTiddlers",\n "* Click \s"Choose...\s" and select \s"~MptwUpgradeURL\s"",\n "* Click \s"fetch\s"",\n "* Click the checkbox in the first column heading to select all tiddlers",\n "* Click \s"More actions...\s" and select \s"Import these tiddlers\s"",\n "* Click \s"OK\s" to confirm you want to overwrite the tiddlers",\n "* Save and reload",\n ""\n].join("\sn")\n\n});\n//}}}\n
For upgrading directly from tiddlyspot. See [[ImportTiddlers]].\nURL: /proxy/mptw.tiddlyspot.com/upgrade.html\n
For upgrading. See [[ImportTiddlers]].\nURL: http://mptw.tiddlyspot.com/upgrade.html\n
Swirling mists of purple and green, necrotic fog rots all organic matter in its path. The necrotic fog is actually charged with negative energy, and it is said that those felled by it inevitably rise up as undead.
/***\n| Name:|NewHerePlugin|\n| Description:|Creates the new here and new journal toolbar commands|\n| Version:|6.1.6|\n| Date:|06-Oct-2006|\n| Source:|http://mptw.tiddlyspot.com/#NewHerePlugin|\n| Author:|Simon Baird <simon.baird@gmail.com>|\n| CoreVersion:|2.1.x|\nTo use edit your ViewTemplate and add newHere to the toolbar div, eg\n{{{<div class='toolbar' macro='toolbar ... newHere'></div>}}}\nNote: would be good if we could do this instead some day\n{{{<<newTiddler tag:{{tiddler.title}} label:'new here'>>}}}\n***/\n//{{{\nmerge(config.commands,{\n\n newHere: {\n text: 'new here',\n tooltip: 'Create a new tiddler tagged as this tiddler',\n hideReadOnly: true,\n handler: function(e,src,title) {\n if (!readOnly) {\n clearMessage();\n var t=document.getElementById('tiddler'+title);\n story.displayTiddler(t,config.macros.newTiddler.title,DEFAULT_EDIT_TEMPLATE);\n story.setTiddlerTag(config.macros.newTiddler.title, title, 0);\n story.focusTiddler(config.macros.newTiddler.title,"title"); // doesn't work??\n return false;\n }\n }\n },\n\n newJournalHere: {\n //text: 'new journal here', // too long\n text: 'new journal',\n hideReadOnly: true,\n dataFormat: 'DD MMM YYYY', // adjust to your preference\n //dataFormat: 'YYYY-0MM-0DD', \n tooltip: 'Create a new journal tiddler tagged as this tiddler',\n handler: function(e,src,title) {\n if (!readOnly) {\n clearMessage();\n var now = new Date();\n var t=document.getElementById('tiddler'+title);\n var newtitle = now.formatString(this.dataFormat)\n story.displayTiddler(t,newtitle,DEFAULT_EDIT_TEMPLATE);\n story.setTiddlerTag(newtitle, title, 0);\n story.focusTiddler(newtitle,"title");\n return false;\n }\n }\n }\n\n});\n//}}}\n
Nullstone bears a superficial resemblance to obsidian, but has a unique property in that it actively leeches magic, making it difficult to cast spells near the stuff.
Note: Actually half-ogre race\n\nOgre characters have the following racial traits.\n*+6 Strength, –2 Dexterity, +2 Constitution, –2 Intelligence, –2 Charisma\n*Giant: Half-ogres are creatures with the giant type.\n*Large: As Large creatures, half-ogres take a –1 penalty to Armor Class and a –1 penalty on all attack rolls. They also have a reach of 10 feet.\n*Half-ogre base land speed is 30 feet.\n*Darkvision: Half-ogres can see in the dark out to 60 feet.\n* +4 Natural armor bonus\n* Automatic Languages: Giant and Common. Bonus Languages: Draconic, Gnoll, Goblin, Orc, and Abyssal.\n* [[Favored Class]]: Barbarian, Ranger or Druid.\n* Level adjustment +2.
Orcish characters possess the following racial traits.\n* +4 Strength, +2 Constitution, -2 Intelligence, -2 Wisdom, -2 Charisma.\n* An orc’s base land speed is 30 feet.\n* Darkvision out to 60 feet.\n* Rage: Orcs may rage once per day, as the barbarian ability. Orcish barbarians gain an additional usage of rage each day (this is in addition to the bonus use granted by having Barbarian as their favored class, so Orcish barbarians may rage an additional two times per day).\n* Automatic Languages: Common, Orc. Bonus Languages: Dwarven, Giant, Gnoll, Goblin, Undercommon.\n* [[Favored Class]]: Barbarian, Fighter or Ranger.\n* Level Adjustment: +1.\n
[[MptwPageTemplate]]\n
First encountered in Arbok's Rest when [[Simon]] was jumped by some teenagers screaming "We are Psychosis! We are legion!" Later encountered in the [[Asata Plains]], where children were mysteriously disappearing and discovered walking through the forest in a trance. They eventually gathered in a clearing, forming a circle, and then all collapsed, waking up and not remembering anything.\n\nCurrently, the characters are investigating Psychosis with the help of [[Brother Maynard]].
/***\n| Name:|QuickOpenTagPlugin|\n| Description:|Changes tag links to make it easier to open tags as tiddlers|\n| Version:|6.1.1|\n| Date:|01-Oct-2006|\n| Source:|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin|\n| Author:|Simon Baird <simon.baird@gmail.com>|\n| CoreVersion:|2.1.x|\n***/\n//{{{\nconfig.quickOpenTag = {\n\n dropdownChar: (document.all ? "\su25bc" : "\su25be"), // the little one doesn't work in IE\n\n createTagButton: function(place,tag,excludeTiddler) {\n // little hack so we can to <<tag PrettyTagName|RealTagName>>\n var splitTag = tag.split("|");\n var pretty = tag;\n if (splitTag.length == 2) {\n tag = splitTag[1];\n pretty = splitTag[0];\n }\n \n var sp = createTiddlyElement(place,"span",null,"quickopentag");\n createTiddlyText(createTiddlyLink(sp,tag,false),pretty);\n \n var theTag = createTiddlyButton(sp,config.quickOpenTag.dropdownChar,\n config.views.wikified.tag.tooltip.format([tag]),onClickTag);\n theTag.setAttribute("tag",tag);\n if (excludeTiddler)\n theTag.setAttribute("tiddler",excludeTiddler);\n return(theTag);\n },\n\n miniTagHandler: function(place,macroName,params,wikifier,paramString,tiddler) {\n var tagged = store.getTaggedTiddlers(tiddler.title);\n if (tagged.length > 0) {\n var theTag = createTiddlyButton(place,config.quickOpenTag.dropdownChar,\n config.views.wikified.tag.tooltip.format([tiddler.title]),onClickTag);\n theTag.setAttribute("tag",tiddler.title);\n theTag.className = "miniTag";\n }\n },\n\n allTagsHandler: function(place,macroName,params) {\n var tags = store.getTags();\n var theDateList = createTiddlyElement(place,"ul");\n if(tags.length == 0)\n createTiddlyElement(theDateList,"li",null,"listTitle",this.noTags);\n for (var t=0; t<tags.length; t++) {\n var theListItem = createTiddlyElement(theDateList,"li");\n var theLink = createTiddlyLink(theListItem,tags[t][0],true);\n var theCount = " (" + tags[t][1] + ")";\n theLink.appendChild(document.createTextNode(theCount));\n var theDropDownBtn = createTiddlyButton(theListItem," " +\n config.quickOpenTag.dropdownChar,this.tooltip.format([tags[t][0]]),onClickTag);\n theDropDownBtn.setAttribute("tag",tags[t][0]);\n }\n },\n\n // todo fix these up a bit\n styles: \n"/*{{{*/\sn"+\n"/* created by QuickOpenTagPlugin */\sn"+\n".tagglyTagged .quickopentag, .tagged .quickopentag \sn"+\n" { margin-right:1.2em; border:1px solid #eee; padding:2px; padding-right:0px; padding-left:1px; }\sn"+\n".quickopentag .tiddlyLink { padding:2px; padding-left:3px; }\sn"+\n".quickopentag a.button { padding:1px; padding-left:2px; padding-right:2px;}\sn"+\n"/* extra specificity to make it work right */\sn"+\n"#displayArea .viewer .quickopentag a.button, \sn"+\n"#displayArea .viewer .quickopentag a.tiddyLink, \sn"+\n"#mainMenu .quickopentag a.tiddyLink, \sn"+\n"#mainMenu .quickopentag a.tiddyLink \sn"+\n" { border:0px solid black; }\sn"+\n"#displayArea .viewer .quickopentag a.button, \sn"+\n"#mainMenu .quickopentag a.button \sn"+\n" { margin-left:0px; padding-left:2px; }\sn"+\n"#displayArea .viewer .quickopentag a.tiddlyLink, \sn"+\n"#mainMenu .quickopentag a.tiddlyLink \sn"+\n" { margin-right:0px; padding-right:0px; padding-left:0px; margin-left:0px; }\sn"+\n"a.miniTag {font-size:150%;} \sn"+\n"#mainMenu .quickopentag a.button \sn"+\n" /* looks better in right justified main menus */\sn"+\n" { margin-left:0px; padding-left:2px; margin-right:0px; padding-right:0px; }\sn" + \n"#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }\sn" +\n"#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }\sn" +\n"#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }\sn" +\n"/*}}}*/\sn"+\n "",\n\n init: function() {\n // we fully replace these builtins. can't hijack them easily\n window.createTagButton = this.createTagButton;\n config.macros.allTags.handler = this.allTagsHandler;\n config.macros.miniTag = { handler: this.miniTagHandler };\n config.shadowTiddlers["QuickOpenTagStyles"] = this.styles;\n if (store)\n store.addNotification("QuickOpenTagStyles",refreshStyles);\n else\n config.notifyTiddlers.push({name:"QuickOpenTagStyles", notify: refreshStyles});\n }\n\n}\n\nconfig.quickOpenTag.init();\n\n//}}}\n
*Human Fighter\n*Player: Benzo
Whether as a result of [[The Cataclysm]], [[The Taint]], or some other cause, the Tainted Lands are cut off from the influence of any gods. Many have tried to establish themselves by sending emissaries to the land, but with no luck. Most residents of the Tainted Lands are agnostic, and all clerics receive their spells by making a pact with a powerful outsider known as a patron, who in turn is often working at the behest of a god. The relationship between the clerics and their patrons is much more intimate than in most settings, as the patrons usually can only support a small handful of clerics and frequently interact directly with them.
/***\n| Name:|RenameTagsPlugin|\n| Description:|Allows you to easily rename or delete tags across multiple tiddlers|\n| Version:|6.1.18|\n| Date:|18-Oct-2006|\n| Source:|http://mptw.tiddlyspot.com/#RenameTagsPlugin|\n| Author:|Simon Baird <simon.baird@gmail.com>|\n| CoreVersion:|2.1.x|\nRename a tag and you will be prompted to rename it in all its tagged tiddlers.\n***/\n//{{{\nconfig.renameTags = {\n\n prompts: {\n rename: "Rename the tag '%0' to '%1' in %2 tidder%3?",\n remove: "Remove the tag '%0' from %1 tidder%2?"\n },\n\n removeTag: function(tag,tiddlers) {\n store.suspendNotifications();\n for (var i=0;i<tiddlers.length;i++) {\n store.setTiddlerTag(tiddlers[i].title,false,tag);\n }\n store.resumeNotifications();\n store.notifyAll();\n },\n\n renameTag: function(oldTag,newTag,tiddlers) {\n store.suspendNotifications();\n for (var i=0;i<tiddlers.length;i++) {\n store.setTiddlerTag(tiddlers[i].title,false,oldTag); // remove old\n store.setTiddlerTag(tiddlers[i].title,true,newTag); // add new\n }\n store.resumeNotifications();\n store.notifyAll();\n },\n\n storeMethods: {\n\n saveTiddler_orig_renameTags: TiddlyWiki.prototype.saveTiddler,\n\n saveTiddler: function(title,newTitle,newBody,modifier,modified,tags,fields) {\n if (title != newTitle) {\n var tagged = this.getTaggedTiddlers(title);\n if (tagged.length > 0) {\n // then we are renaming a tag\n if (confirm(config.renameTags.prompts.rename.format([title,newTitle,tagged.length,tagged.length>1?"s":""])))\n config.renameTags.renameTag(title,newTitle,tagged);\n\n if (!this.tiddlerExists(title) && newBody == "")\n // dont create unwanted tiddler\n return null;\n }\n }\n return this.saveTiddler_orig_renameTags(title,newTitle,newBody,modifier,modified,tags,fields);\n },\n\n removeTiddler_orig_renameTags: TiddlyWiki.prototype.removeTiddler,\n\n removeTiddler: function(title) {\n var tagged = this.getTaggedTiddlers(title);\n if (tagged.length > 0)\n if (confirm(config.renameTags.prompts.remove.format([title,tagged.length,tagged.length>1?"s":""])))\n config.renameTags.removeTag(title,tagged);\n return this.removeTiddler_orig_renameTags(title);\n }\n\n },\n\n init: function() {\n merge(TiddlyWiki.prototype,this.storeMethods);\n }\n}\n\nconfig.renameTags.init();\n\n//}}}\n\n
Rotan is a warforged who was imprisoned in an extradimensional space within the [[Archivist's Tower]]. The party freed him, and he attacked them and escaped.
Dwarven stronghold
It is hypothesized that the salt shields were originally used by the [[Alakari]] to study undersea life; the shields used the salt content of the water to create a magical field which would repel it. They could create large bubbles of air at the bottom of the sea in this manner to create research stations in, and even smaller, portable versions to allow them to actually walk around. The water's gone now, but the salt shields prove invaluable as protection against the otherwise brutal [[Salt Storms]] that plague the area.
In the desolate wastes of the Solaplaya Salt Flat, scything winds of salt eat away at everything exposed. The salt storms are more than capable of tearing clothing from flesh and flesh from bones, as the many well-worn skeletons littering the salt flat attest to. The flat, featureless area provides no shelter, no relief, and those caught in a storm without a functional [[Salt Shield]] had best make peace with their fate quickly.
Human city
Sargon is a moderately-sized village located in the [[Blighted Swamp]], a few miles away from the [[Glass Desert]]. It is the home of the gnolls of the Blighted Swamp, and the outpost from which they wage their war against the undead.
A book [[Brother Maynard]] once read which mentioned [[Psychosis]]. He overheard [[Simon]] asking about Psychosis and went to look for this book, but found it mysteriously missing from the church's library. He's asked the characters to retrieve a copy from an abandoned monastery.
Mountain range surrounding and protecting Golden Vale
Shadow Sand is slightly darker than normal sand, and somehow remains cooler during the day as well. At night, however, shadow sand can get absolutely freezing cold.\n\nPatches of shadow sand can be quite handy for beating the daylight heat, but persistent rumors that undead infest them are usually enough to keep most from setting up camp in them permanently.
*Human Rogue\n*Player: Ed
I need a good subtitle dammit!
The Tainted Lands
Solaplaya was once a sea, but now is a vast salt flat. A series of [[Alakari]] machines and stations, presumably originally built for use underwater, ensure that there are always people willing to come to this desolate area. Luckily for them, many of the ruins have a functioning [[Salt Shield]], and a good number of portable ones are available for the right price.
Soresh is an evil entity which reincarnated Jamlam so that he could kill Magdar.
[[MptwStyleSheet]]\n
Largest city in [[Solaplaya]], though still quite small. Essentially a glorified research outpost. Due to the salt shield, the city exists under a thick dome of salt.
/***\n| Name:|TagglyTaggingPlugin|\n| Description:|tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate|\n| Version:|6.1.5|\n| Date:|05-Oct-2006|\n| Source:|http://mptw.tiddlyspot.com/#TagglyTaggingPlugin|\n| Author:|Simon Baird <simon.baird@gmail.com>|\n| CoreVersion:|2.1.x|\n!Notes\nSee http://mptw.tiddlyspot.com/#TagglyTagging\n***/\n//{{{\nconfig.taggly = {\n\n // for translations\n lingo: {\n labels: {\n asc: "\su2191", // down arrow\n desc: "\su2193", // up arrow\n title: "title",\n modified: "modified",\n created: "created",\n show: "+",\n hide: "-",\n normal: "normal",\n group: "group",\n commas: "commas",\n sitemap: "sitemap",\n numCols: "cols\su00b1", // plus minus sign\n label: "Tagged as '%0':"\n },\n\n tooltips: {\n title: "Click to sort by title",\n modified: "Click to sort by modified date",\n created: "Click to sort by created date",\n show: "Click to show tagging list",\n hide: "Click to hide tagging list",\n normal: "Click to show a normal ungrouped list",\n group: "Click to show list grouped by tag",\n sitemap: "Click to show a sitemap style list",\n commas: "Click to show a comma separated list",\n numCols: "Click to change number of columns"\n }\n },\n\n config: {\n showTaggingCounts: true,\n listOpts: {\n // the first one will be the default\n sortBy: ["title","modified","created"],\n sortOrder: ["asc","desc"],\n hideState: ["show","hide"],\n listMode: ["normal","group","sitemap","commas"],\n numCols: ["1","2","3","4","5","6"]\n },\n valuePrefix: "taggly."\n },\n\n getTagglyOpt: function(title,opt) {\n var val = store.getValue(title,this.config.valuePrefix+opt);\n return val ? val : this.config.listOpts[opt][0];\n },\n\n setTagglyOpt: function(title,opt,value) {\n if (!store.tiddlerExists(title))\n // create it silently\n store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),null);\n // if value is default then remove it to save space\n return store.setValue(title,\n this.config.valuePrefix+opt,\n value == this.config.listOpts[opt][0] ? null : value);\n },\n\n getNextValue: function(title,opt) {\n var current = this.getTagglyOpt(title,opt);\n var pos = this.config.listOpts[opt].indexOf(current);\n // a little usability enhancement. actually it doesn't work right for grouped or sitemap\n var limit = (opt == "numCols" ? store.getTaggedTiddlers(title).length : this.config.listOpts[opt].length);\n var newPos = (pos + 1) % limit;\n return this.config.listOpts[opt][newPos];\n },\n\n toggleTagglyOpt: function(title,opt) {\n var newVal = this.getNextValue(title,opt);\n this.setTagglyOpt(title,opt,newVal);\n }, \n\n createListControl: function(place,title,type) {\n var lingo = config.taggly.lingo;\n var label;\n var tooltip;\n var onclick;\n\n if ((type == "title" || type == "modified" || type == "created")) {\n // "special" controls. a little tricky. derived from sortOrder and sortBy\n label = lingo.labels[type];\n tooltip = lingo.tooltips[type];\n\n if (this.getTagglyOpt(title,"sortBy") == type) {\n label += lingo.labels[this.getTagglyOpt(title,"sortOrder")];\n onclick = function() {\n config.taggly.toggleTagglyOpt(title,"sortOrder");\n return false;\n }\n }\n else {\n onclick = function() {\n config.taggly.setTagglyOpt(title,"sortBy",type);\n config.taggly.setTagglyOpt(title,"sortOrder",config.taggly.config.listOpts.sortOrder[0]);\n return false;\n }\n }\n }\n else {\n // "regular" controls, nice and simple\n label = lingo.labels[type == "numCols" ? type : this.getNextValue(title,type)];\n tooltip = lingo.tooltips[type == "numCols" ? type : this.getNextValue(title,type)];\n onclick = function() {\n config.taggly.toggleTagglyOpt(title,type);\n return false;\n }\n }\n\n // hide button because commas don't have columns\n if (!(this.getTagglyOpt(title,"listMode") == "commas" && type == "numCols"))\n createTiddlyButton(place,label,tooltip,onclick,type == "hideState" ? "hidebutton" : "button");\n },\n\n makeColumns: function(orig,numCols) {\n var listSize = orig.length;\n var colSize = listSize/numCols;\n var remainder = listSize % numCols;\n\n var upperColsize = colSize;\n var lowerColsize = colSize;\n\n if (colSize != Math.floor(colSize)) {\n // it's not an exact fit so..\n upperColsize = Math.floor(colSize) + 1;\n lowerColsize = Math.floor(colSize);\n }\n\n var output = [];\n var c = 0;\n for (var j=0;j<numCols;j++) {\n var singleCol = [];\n var thisSize = j < remainder ? upperColsize : lowerColsize;\n for (var i=0;i<thisSize;i++) \n singleCol.push(orig[c++]);\n output.push(singleCol);\n }\n\n return output;\n },\n\n drawTable: function(place,columns,theClass) {\n var newTable = createTiddlyElement(place,"table",null,theClass);\n var newTbody = createTiddlyElement(newTable,"tbody");\n var newTr = createTiddlyElement(newTbody,"tr");\n for (var j=0;j<columns.length;j++) {\n var colOutput = "";\n for (var i=0;i<columns[j].length;i++) \n colOutput += columns[j][i];\n var newTd = createTiddlyElement(newTr,"td",null,"tagglyTagging"); // todo should not need this class\n wikify(colOutput,newTd);\n }\n return newTable;\n },\n\n createTagglyList: function(place,title) {\n switch(this.getTagglyOpt(title,"listMode")) {\n case "group": return this.createTagglyListGrouped(place,title); break;\n case "normal": return this.createTagglyListNormal(place,title,false); break;\n case "commas": return this.createTagglyListNormal(place,title,true); break;\n case "sitemap":return this.createTagglyListSiteMap(place,title); break;\n }\n },\n\n getTaggingCount: function(title) {\n // thanks to Doug Edmunds\n if (this.config.showTaggingCounts) {\n var tagCount = store.getTaggedTiddlers(title).length;\n if (tagCount > 0)\n return " ("+tagCount+")";\n }\n return "";\n },\n\n // this is for normal and commas mode\n createTagglyListNormal: function(place,title,useCommas) {\n\n var list = store.getTaggedTiddlers(title,this.getTagglyOpt(title,"sortBy"));\n\n if (this.getTagglyOpt(title,"sortOrder") == "desc")\n list = list.reverse();\n\n var output = [];\n for (var i=0;i<list.length;i++) {\n var countString = this.getTaggingCount(list[i].title);\n if (useCommas)\n output.push((i > 0 ? ", " : "") + "[[" + list[i].title + "]]" + countString);\n else\n output.push("*[[" + list[i].title + "]]" + countString + "\sn");\n }\n\n return this.drawTable(place,\n this.makeColumns(output,useCommas ? 1 : parseInt(this.getTagglyOpt(title,"numCols"))),\n useCommas ? "commas" : "normal");\n },\n\n // this is for the "grouped" mode\n createTagglyListGrouped: function(place,title) {\n var sortBy = this.getTagglyOpt(title,"sortBy");\n var sortOrder = this.getTagglyOpt(title,"sortOrder");\n\n var list = store.getTaggedTiddlers(title,sortBy);\n\n if (sortOrder == "desc")\n list = list.reverse();\n\n var leftOvers = []\n for (var i=0;i<list.length;i++)\n leftOvers.push(list[i].title);\n\n var allTagsHolder = {};\n for (var i=0;i<list.length;i++) {\n for (var j=0;j<list[i].tags.length;j++) {\n\n if (list[i].tags[j] != title) { // not this tiddler\n\n if (!allTagsHolder[list[i].tags[j]])\n allTagsHolder[list[i].tags[j]] = "";\n\n allTagsHolder[list[i].tags[j]] += "**[["+list[i].title+"]]"\n + this.getTaggingCount(list[i].title) + "\sn";\n leftOvers.setItem(list[i].title,-1); // remove from leftovers. at the end it will contain the leftovers\n }\n }\n }\n\n var allTags = [];\n for (var t in allTagsHolder)\n allTags.push(t);\n\n var sortHelper = function(a,b) {\n if (a == b) return 0;\n if (a < b) return -1;\n return 1;\n };\n\n allTags.sort(function(a,b) {\n var tidA = store.getTiddler(a);\n var tidB = store.getTiddler(b);\n if (sortBy == "title") return sortHelper(a,b);\n else if (!tidA && !tidB) return 0;\n else if (!tidA) return -1;\n else if (!tidB) return +1;\n else return sortHelper(tidA[sortBy],tidB[sortBy]);\n });\n\n var leftOverOutput = "";\n for (var i=0;i<leftOvers.length;i++)\n leftOverOutput += "*[["+leftOvers[i]+"]]" + this.getTaggingCount(leftOvers[i]) + "\sn";\n\n var output = [];\n\n if (sortOrder == "desc")\n allTags.reverse();\n else if (leftOverOutput != "")\n // leftovers first...\n output.push(leftOverOutput);\n\n for (var i=0;i<allTags.length;i++)\n output.push("*[["+allTags[i]+"]]" + this.getTaggingCount(leftOvers[i]) + "\sn" + allTagsHolder[allTags[i]]);\n\n if (sortOrder == "desc" && leftOverOutput != "")\n // leftovers last...\n output.push(leftOverOutput);\n\n return this.drawTable(place,\n this.makeColumns(output,parseInt(this.getTagglyOpt(title,"numCols"))),\n "grouped");\n\n },\n\n // used to build site map\n treeTraverse: function(title,depth,sortBy,sortOrder) {\n\n var list = store.getTaggedTiddlers(title,sortBy);\n if (sortOrder == "desc")\n list.reverse();\n\n var indent = "";\n for (var j=0;j<depth;j++)\n indent += "*"\n\n var childOutput = "";\n for (var i=0;i<list.length;i++)\n if (list[i].title != title)\n childOutput += this.treeTraverse(list[i].title,depth+1,sortBy,sortOrder);\n\n if (depth == 0)\n return childOutput;\n else\n return indent + "[["+title+"]]" + this.getTaggingCount(title) + "\sn"+childOutput;\n },\n\n // this if for the site map mode\n createTagglyListSiteMap: function(place,title) {\n var output = this.treeTraverse(title,0,this.getTagglyOpt(title,"sortBy"),this.getTagglyOpt(title,"sortOrder"));\n return this.drawTable(place,\n this.makeColumns(output.split(/(?=^\s*\s[)/m),parseInt(this.getTagglyOpt(title,"numCols"))), // regexp magic\n "sitemap"\n );\n },\n\n macros: {\n tagglyTagging: {\n handler: function (place,macroName,params,wikifier,paramString,tiddler) {\n var refreshContainer = createTiddlyElement(place,"div");\n // do some refresh magic to make it keep the list fresh - thanks Saq\n refreshContainer.setAttribute("refresh","macro");\n refreshContainer.setAttribute("macroName",macroName);\n refreshContainer.setAttribute("title",tiddler.title);\n this.refresh(refreshContainer);\n },\n\n refresh: function(place) {\n var title = place.getAttribute("title");\n removeChildren(place);\n if (store.getTaggedTiddlers(title).length > 0) {\n var lingo = config.taggly.lingo;\n config.taggly.createListControl(place,title,"hideState");\n if (config.taggly.getTagglyOpt(title,"hideState") == "show") {\n createTiddlyElement(place,"span",null,"tagglyLabel",lingo.labels.label.format([title]));\n config.taggly.createListControl(place,title,"title");\n config.taggly.createListControl(place,title,"modified");\n config.taggly.createListControl(place,title,"created");\n config.taggly.createListControl(place,title,"listMode");\n config.taggly.createListControl(place,title,"numCols");\n config.taggly.createTagglyList(place,title);\n }\n }\n }\n }\n },\n\n // todo fix these up a bit\n styles: \n"/*{{{*/\sn"+\n"/* created by TagglyTaggingPlugin */\sn"+\n".tagglyTagging { padding-top:0.5em; }\sn"+\n".tagglyTagging li.listTitle { display:none; }\sn"+\n".tagglyTagging ul {\sn"+\n" margin-top:0px; padding-top:0.5em; padding-left:2em;\sn"+\n" margin-bottom:0px; padding-bottom:0px;\sn"+\n"}\sn"+\n".tagglyTagging { vertical-align: top; margin:0px; padding:0px; }\sn"+\n".tagglyTagging table { margin:0px; padding:0px; }\sn"+\n".tagglyTagging .button { display:none; margin-left:3px; margin-right:3px; }\sn"+\n".tagglyTagging .button, .tagglyTagging .hidebutton {\sn"+\n" color:[[ColorPalette::TertiaryLight]]; font-size:90%;\sn"+\n" border:0px; padding-left:0.3em;padding-right:0.3em;\sn"+\n"}\sn"+\n".tagglyTagging .button:hover, .hidebutton:hover {\sn"+\n" background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]];\sn"+\n"}\sn"+\n".selected .tagglyTagging .button {\sn"+\n" display:inline;\sn"+\n"}\sn"+\n".tagglyTagging .hidebutton { color:[[ColorPalette::Background]]; }\sn"+\n".selected .tagglyTagging .hidebutton { color:[[ColorPalette::TertiaryLight]] }\sn"+\n".tagglyLabel { color:[[ColorPalette::TertiaryMid]]; font-size:90%; }\sn"+\n".tagglyTagging ul {padding-top:0px; padding-bottom:0.5em; margin-left:1em; }\sn"+\n".tagglyTagging ul ul {list-style-type:disc; margin-left:-1em;}\sn"+\n".tagglyTagging ul ul li {margin-left:0.5em; }\sn"+\n".editLabel { font-size:90%; padding-top:0.5em; }\sn"+\n".tagglyTagging .commas { padding-left:1.8em; }\sn"+\n"/*}}}*/\sn"+\n "",\n\n init: function() {\n merge(config.macros,this.macros);\n config.shadowTiddlers["TagglyTaggingStyles"] = this.styles;\n if (store)\n store.addNotification("TagglyTaggingStyles",refreshStyles);\n else\n config.notifyTiddlers.push({name:"TagglyTaggingStyles", notify: refreshStyles});\n }\n};\n\nconfig.taggly.init();\n\n//}}}\n\n
Long ago, a magical disaster shattered the ancient elven empire of [[Alakor]]. Noone knows exactly what happened. The vast majority of the [[Alakari]] were killed, only maybe one of a hundred survived. Those lucky enough to survive found their memories ripped from them, awaking with no knowledge of the world they lived in or the wonders they had once achieved. The remnants of the true elves scattered, becoming the [[Gray Elves]], [[Wood Elves]] and [[Drow]]. The Cataclysm is widely believed to be the source of [[The Taint]].
After [[The Cataclysm]], the world was left saturated with magic. This magic has come to define the world, being pervasive in every facet of life. Like a force of nature, it is as likely to annihalate as it is to create. It has come to be known as the Taint.
One of the many side-effects of [[The Taint]] is that [[Aasimar]] and Tieflings are far more common in the world, as dormant planar lineages more frequently express themselves. Tieflings can be found anywhere humans might be found.\n\nTiefling characters possess the following racial traits.\n* +2 Dexterity, +2 Intelligence.\n* Humanoid (Human) type.\n* Medium size.\n* A tiefling’s base land speed is 30 feet.\n* Darkvision out to 60 feet.\n* Racial Skills: Tieflings have a +2 racial bonus on Bluff and Hide checks.\n* Darkness: A tiefling can use suggestion once per day as a caster of his class levels. The save DC is 13 + the Tiefling's charisma modifier.\n* Special Qualities: Resistance to cold 5, electricity 5, and fire 5.\n* Automatic Languages: Common, Infernal. Bonus Languages: Draconic, Dwarven, Elven, Gnome, Goblin, Halfling, Orc.\n* [[Favored Class]]: Cleric, Rogue or Sorcerer.\n* Level Adjustment: +1.
/***\n| Name:|ToggleTagMacro|\n| Description:|Makes a checkbox which toggles a tag in a tiddler|\n| Version:|6.1.2|\n| Date:|20-Oct-2006|\n| Source:|http://tiddlyspot.com/mptw/#ToggleTagMacro|\n| Author:|SimonBaird|\n| License:|[[BSD open source license]]|\n| CoreVersion:|2.1|\n!Usage\n{{{<<toggleTag }}}//{{{TagName TiddlerName LabelText}}}//{{{>>}}}\n* TagName - the tag to be toggled, default value "checked"\n* TiddlerName - the tiddler to toggle the tag in, default value the current tiddler\n* LabelText - the text (gets wikified) to put next to the check box, default value is '{{{[[TagName]]}}}' or '{{{[[TagName]] [[TiddlerName]]}}}'\n(If a parameter is '.' then the default will be used)\n\nExamples:\n\n|Code|Description|Example|h\n|{{{<<toggleTag>>}}}|Toggles the default tag (checked) in this tiddler|<<toggleTag>>|\n|{{{<<toggleTag TagName>>}}}|Toggles the TagName tag in this tiddler|<<toggleTag TagName>>|\n|{{{<<toggleTag TagName TiddlerName>>}}}|Toggles the TagName tag in the TiddlerName tiddler|<<toggleTag TagName TiddlerName>>|\n|{{{<<toggleTag TagName TiddlerName 'click me'>>}}}|Same but with custom label|<<toggleTag TagName TiddlerName 'click me'>>|\n|{{{<<toggleTag . . 'click me'>>}}}|dot means use default value|<<toggleTag . . 'click me'>>|\n(Note if TiddlerName doesn't exist it will be silently created)\n\n!Known issues\n* Doesn't smoothly handle the case where you toggle a tag in a tiddler that is current open for editing. Should it stick the tag in the edit box?\n\n***/\n//{{{\n\nmerge(config.macros,{\n\n toggleTag: {\n\n doRefreshAll: true,\n createIfRequired: true,\n shortLabel: "[[%0]]",\n longLabel: "[[%0]] [[%1]]",\n\n handler: function(place,macroName,params,wikifier,paramString,tiddler) {\n var tag = (params[0] && params[0] != '.') ? params[0] : "checked";\n var title = (params[1] && params[1] != '.') ? params[1] : tiddler.title;\n var defaultLabel = (title == tiddler.title ? this.shortLabel : this.longLabel);\n var label = (params[2] && params[2] != '.') ? params[2] : defaultLabel;\n var theTiddler = title == tiddler.title ? tiddler : store.getTiddler(title);\n var cb = createTiddlyCheckbox(place, label.format([tag,title]), theTiddler && theTiddler.isTagged(tag), function(e) {\n if (!store.tiddlerExists(title)) {\n if (config.macros.toggleTag.createIfRequired) {\n var content = store.getTiddlerText(title); // just in case it's a shadow\n store.saveTiddler(title,title,content?content:"",config.options.txtUserName,new Date(),null);\n }\n else \n return false;\n }\n //store.suspendNotifications(); \n store.setTiddlerTag(title,this.checked,tag);\n //refreshDisplay(); \n //store.resumeNotifications();\n return true;\n });\n }\n }\n});\n\n//}}}\n\n
*Daywalker Gargoyle Druid/Ranger\n*Player: Devin
The Underdark is a world-spanning network of underground tunnels and cave systems. It is said that no spot on the surface is more than a few miles from an entrance to it. Once home to [[Alakor]], the Underdark is now a dark place of twisted creatures, abominations wrought from the pervasive [[Magical Pollution]] left in the wake of [[The Cataclysm]]. The [[Drow]] are the only sentient race known to inhabit the Underdark, though rumors persist of even more twisted and vile creatures. Most shrug such off as tales intended to frighten children... or so they hope.
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |\n| 28/11/2006 13:58:32 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 28/11/2006 23:42:28 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 28/11/2006 23:47:44 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/11/2006 0:9:43 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/11/2006 1:18:1 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/11/2006 2:37:11 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/11/2006 2:40:22 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/11/2006 2:44:42 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/11/2006 4:11:39 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/11/2006 4:51:49 | Asmor | [[/|http://taintedlands.tiddlyspot.com/#Races]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/11/2006 4:58:51 | Asmor | [[/|http://taintedlands.tiddlyspot.com/#Races]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/11/2006 11:36:1 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/11/2006 11:59:19 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/11/2006 12:8:47 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/11/2006 12:20:36 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/11/2006 12:26:8 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/11/2006 13:21:5 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/11/2006 14:23:44 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/11/2006 14:27:53 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/11/2006 14:36:52 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/11/2006 16:45:48 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 1/12/2006 8:51:24 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 1/12/2006 10:18:16 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 1/12/2006 10:49:8 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 1/12/2006 11:36:49 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 1/12/2006 11:51:11 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 1/12/2006 12:58:39 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 1/12/2006 18:22:19 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 1/12/2006 18:51:56 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 5/12/2006 1:25:10 | Asmor | [[/|http://taintedlands.tiddlyspot.com/#%5B%5BHouse%20Rules%5D%5D]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 7/12/2006 13:52:59 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/12/2006 3:13:41 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/12/2006 13:50:30 | Asmor | [[/|http://taintedlands.tiddlyspot.com/#%5B%5BDaywalker%20Gargoyles%5D%5D]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 29/12/2006 14:10:57 | Asmor | [[/|http://taintedlands.tiddlyspot.com/#%5B%5BDaywalker%20Gargoyles%5D%5D]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 14/3/2007 2:41:23 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 15/3/2007 2:42:41 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 18/3/2007 15:23:3 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 18/3/2007 15:42:34 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 23/3/2007 23:45:32 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 26/3/2007 2:31:35 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 5/4/2007 10:31:31 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 5/4/2007 10:34:3 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 4/4/2007 20:7:4 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 6/4/2007 12:8:29 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 6/4/2007 19:4:48 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 6/4/2007 19:21:17 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 8/4/2007 16:36:7 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 8/4/2007 17:20:22 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 13/4/2007 20:32:25 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 2/5/2007 4:8:40 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 2/5/2007 4:10:32 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 28/5/2007 14:3:57 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 28/5/2007 14:33:30 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 9/6/2007 19:39:53 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 9/6/2007 20:8:30 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 11/6/2007 3:9:6 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 15/6/2007 22:34:14 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 21/6/2007 7:8:0 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 17/7/2007 14:8:21 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 24/7/2007 1:9:36 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/7/2007 0:16:56 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/7/2007 1:12:45 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/7/2007 2:53:11 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 18/8/2007 21:35:53 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 30/8/2007 2:18:41 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 17/9/2007 2:21:13 | Asmor | [[/|http://taintedlands.tiddlyspot.com/]] | [[store.cgi|http://taintedlands.tiddlyspot.com/store.cgi]] | . | index.html | . |
/***\n|''Name:''|UploadPlugin|\n|''Description:''|Save to web a TiddlyWiki|\n|''Version:''|3.4.4|\n|''Date:''|Sep 30, 2006|\n|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|\n|''Documentation:''|http://tiddlywiki.bidix.info/#UploadDoc|\n|''Author:''|BidiX (BidiX (at) bidix (dot) info)|\n|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|\n|''~CoreVersion:''|2.0.0|\n|''Browser:''|Firefox 1.5; InternetExplorer 6.0; Safari|\n|''Include:''|config.lib.file; config.lib.log; config.lib.options; PasswordTweak|\n|''Require:''|[[UploadService|http://tiddlywiki.bidix.info/#UploadService]]|\n***/\n//{{{\nversion.extensions.UploadPlugin = {\n major: 3, minor: 4, revision: 4, \n date: new Date(2006,8,30),\n source: 'http://tiddlywiki.bidix.info/#UploadPlugin',\n documentation: 'http://tiddlywiki.bidix.info/#UploadDoc',\n author: 'BidiX (BidiX (at) bidix (dot) info',\n license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',\n coreVersion: '2.0.0',\n browser: 'Firefox 1.5; InternetExplorer 6.0; Safari'\n};\n//}}}\n\n////+++!![config.lib.file]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.file) config.lib.file= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\nconfig.lib.file.dirname = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(0, lastpos);\n } else {\n return filePath.substring(0, filePath.lastIndexOf("\s\s"));\n }\n};\nconfig.lib.file.basename = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("#")) != -1) \n filePath = filePath.substring(0, lastpos);\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(lastpos + 1);\n } else\n return filePath.substring(filePath.lastIndexOf("\s\s")+1);\n};\nwindow.basename = function() {return "@@deprecated@@";};\n//}}}\n////===\n\n////+++!![config.lib.log]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.log) config.lib.log= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 1}, \n date: new Date(2006,8,19)\n};\nconfig.lib.Log = function(tiddlerTitle, logHeader) {\n if (version.major < 2)\n this.tiddler = store.tiddlers[tiddlerTitle];\n else\n this.tiddler = store.getTiddler(tiddlerTitle);\n if (!this.tiddler) {\n this.tiddler = new Tiddler();\n this.tiddler.title = tiddlerTitle;\n this.tiddler.text = "| !date | !user | !location |" + logHeader;\n this.tiddler.created = new Date();\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[tiddlerTitle] = this.tiddler;\n else\n store.addTiddler(this.tiddler);\n }\n return this;\n};\n\nconfig.lib.Log.prototype.newLine = function (line) {\n var now = new Date();\n var newText = "| ";\n newText += now.getDate()+"/"+(now.getMonth()+1)+"/"+now.getFullYear() + " ";\n newText += now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+" | ";\n newText += config.options.txtUserName + " | ";\n var location = document.location.toString();\n var filename = config.lib.file.basename(location);\n if (!filename) filename = '/';\n newText += "[["+filename+"|"+location + "]] |";\n this.tiddler.text = this.tiddler.text + "\sn" + newText;\n this.addToLine(line);\n};\n\nconfig.lib.Log.prototype.addToLine = function (text) {\n this.tiddler.text = this.tiddler.text + text;\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[this.tiddler.tittle] = this.tiddler;\n else {\n store.addTiddler(this.tiddler);\n story.refreshTiddler(this.tiddler.title);\n store.notify(this.tiddler.title, true);\n }\n if (version.major < 2)\n store.notifyAll(); \n};\n//}}}\n////===\n\n////+++!![config.lib.options]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.options) config.lib.options = {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\n\nconfig.lib.options.init = function (name, defaultValue) {\n if (!config.options[name]) {\n config.options[name] = defaultValue;\n saveOptionCookie(name);\n }\n};\n//}}}\n////===\n\n////+++!![PasswordTweak]\n\n//{{{\nversion.extensions.PasswordTweak = {\n major: 1, minor: 0, revision: 3, date: new Date(2006,8,30),\n type: 'tweak',\n source: 'http://tiddlywiki.bidix.info/#PasswordTweak'\n};\n//}}}\n/***\n!!config.macros.option\n***/\n//{{{\nconfig.macros.option.passwordCheckboxLabel = "Save this password on this computer";\nconfig.macros.option.passwordType = "password"; // password | text\n\nconfig.macros.option.onChangeOption = function(e)\n{\n var opt = this.getAttribute("option");\n var elementType,valueField;\n if(opt) {\n switch(opt.substr(0,3)) {\n case "txt":\n elementType = "input";\n valueField = "value";\n break;\n case "pas":\n elementType = "input";\n valueField = "value";\n break;\n case "chk":\n elementType = "input";\n valueField = "checked";\n break;\n }\n config.options[opt] = this[valueField];\n saveOptionCookie(opt);\n var nodes = document.getElementsByTagName(elementType);\n for(var t=0; t<nodes.length; t++) \n {\n var optNode = nodes[t].getAttribute("option");\n if (opt == optNode) \n nodes[t][valueField] = this[valueField];\n }\n }\n return(true);\n};\n\nconfig.macros.option.handler = function(place,macroName,params)\n{\n var opt = params[0];\n if(config.options[opt] === undefined) {\n return;}\n var c;\n switch(opt.substr(0,3)) {\n case "txt":\n c = document.createElement("input");\n c.onkeyup = this.onChangeOption;\n c.setAttribute ("option",opt);\n c.className = "txtOptionInput "+opt;\n place.appendChild(c);\n c.value = config.options[opt];\n break;\n case "pas":\n // input password\n c = document.createElement ("input");\n c.setAttribute("type",config.macros.option.passwordType);\n c.onkeyup = this.onChangeOption;\n c.setAttribute("option",opt);\n c.className = "pasOptionInput "+opt;\n place.appendChild(c);\n c.value = config.options[opt];\n // checkbox link with this password "save this password on this computer"\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option","chk"+opt);\n c.className = "chkOptionInput "+opt;\n place.appendChild(c);\n c.checked = config.options["chk"+opt];\n // text savePasswordCheckboxLabel\n place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));\n break;\n case "chk":\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option",opt);\n c.className = "chkOptionInput "+opt;\n place.appendChild(c);\n c.checked = config.options[opt];\n break;\n }\n};\n//}}}\n/***\n!! Option cookie stuff\n***/\n//{{{\nwindow.loadOptionsCookie_orig_PasswordTweak = window.loadOptionsCookie;\nwindow.loadOptionsCookie = function()\n{\n var cookies = document.cookie.split(";");\n for(var c=0; c<cookies.length; c++) {\n var p = cookies[c].indexOf("=");\n if(p != -1) {\n var name = cookies[c].substr(0,p).trim();\n var value = cookies[c].substr(p+1).trim();\n switch(name.substr(0,3)) {\n case "txt":\n config.options[name] = unescape(value);\n break;\n case "pas":\n config.options[name] = unescape(value);\n break;\n case "chk":\n config.options[name] = value == "true";\n break;\n }\n }\n }\n};\n\nwindow.saveOptionCookie_orig_PasswordTweak = window.saveOptionCookie;\nwindow.saveOptionCookie = function(name)\n{\n var c = name + "=";\n switch(name.substr(0,3)) {\n case "txt":\n c += escape(config.options[name].toString());\n break;\n case "chk":\n c += config.options[name] ? "true" : "false";\n // is there an option link with this chk ?\n if (config.options[name.substr(3)]) {\n saveOptionCookie(name.substr(3));\n }\n break;\n case "pas":\n if (config.options["chk"+name]) {\n c += escape(config.options[name].toString());\n } else {\n c += "";\n }\n break;\n }\n c += "; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";\n document.cookie = c;\n};\n//}}}\n/***\n!! Initializations\n***/\n//{{{\n// define config.options.pasPassword\nif (!config.options.pasPassword) {\n config.options.pasPassword = 'defaultPassword';\n window.saveOptionCookie('pasPassword');\n}\n// since loadCookies is first called befor password definition\n// we need to reload cookies\nwindow.loadOptionsCookie();\n//}}}\n////===\n\n////+++!![config.macros.upload]\n\n//{{{\nconfig.macros.upload = {\n accessKey: "U",\n formName: "UploadPlugin",\n contentType: "text/html;charset=UTF-8",\n defaultStoreScript: "store.php"\n};\n\n// only this two configs need to be translated\nconfig.macros.upload.messages = {\n aboutToUpload: "About to upload TiddlyWiki to %0",\n backupFileStored: "Previous file backuped in %0",\n crossDomain: "Certainly a cross-domain isue: access to an other site isn't allowed",\n errorDownloading: "Error downloading",\n errorUploadingContent: "Error uploading content",\n fileLocked: "Files is locked: You are not allowed to Upload",\n fileNotFound: "file to upload not found",\n fileNotUploaded: "File %0 NOT uploaded",\n mainFileUploaded: "Main TiddlyWiki file uploaded to %0",\n passwordEmpty: "Unable to upload, your password is empty",\n urlParamMissing: "url param missing",\n rssFileNotUploaded: "RssFile %0 NOT uploaded",\n rssFileUploaded: "Rss File uploaded to %0"\n};\n\nconfig.macros.upload.label = {\n promptOption: "Save and Upload this TiddlyWiki with UploadOptions",\n promptParamMacro: "Save and Upload this TiddlyWiki in %0",\n saveLabel: "save to web", \n saveToDisk: "save to disk",\n uploadLabel: "upload" \n};\n\nconfig.macros.upload.handler = function(place,macroName,params){\n // parameters initialization\n var storeUrl = params[0];\n var toFilename = params[1];\n var backupDir = params[2];\n var uploadDir = params[3];\n var username = params[4];\n var password; // for security reason no password as macro parameter\n var label;\n if (document.location.toString().substr(0,4) == "http")\n label = this.label.saveLabel;\n else\n label = this.label.uploadLabel;\n var prompt;\n if (storeUrl) {\n prompt = this.label.promptParamMacro.toString().format([this.toDirUrl(storeUrl, uploadDir, username)]);\n }\n else {\n prompt = this.label.promptOption;\n }\n createTiddlyButton(place, label, prompt, \n function () {\n config.macros.upload.upload(storeUrl, toFilename, uploadDir, backupDir, username, password); \n return false;}, \n null, null, this.accessKey);\n};\nconfig.macros.upload.UploadLog = function() {\n return new config.lib.Log('UploadLog', " !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |" );\n};\nconfig.macros.upload.UploadLog.prototype = config.lib.Log.prototype;\nconfig.macros.upload.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {\n var line = " [[" + config.lib.file.basename(storeUrl) + "|" + storeUrl + "]] | ";\n line += uploadDir + " | " + toFilename + " | " + backupDir + " |";\n this.newLine(line);\n};\nconfig.macros.upload.UploadLog.prototype.endUpload = function() {\n this.addToLine(" Ok |");\n};\nconfig.macros.upload.basename = config.lib.file.basename;\nconfig.macros.upload.dirname = config.lib.file.dirname;\nconfig.macros.upload.toRootUrl = function (storeUrl, username)\n{\n return root = (this.dirname(storeUrl)?this.dirname(storeUrl):this.dirname(document.location.toString()));\n}\nconfig.macros.upload.toDirUrl = function (storeUrl, uploadDir, username)\n{\n var root = this.toRootUrl(storeUrl, username);\n if (uploadDir && uploadDir != '.')\n root = root + '/' + uploadDir;\n return root;\n}\nconfig.macros.upload.toFileUrl = function (storeUrl, toFilename, uploadDir, username)\n{\n return this.toDirUrl(storeUrl, uploadDir, username) + '/' + toFilename;\n}\nconfig.macros.upload.upload = function(storeUrl, toFilename, uploadDir, backupDir, username, password)\n{\n // parameters initialization\n storeUrl = (storeUrl ? storeUrl : config.options.txtUploadStoreUrl);\n toFilename = (toFilename ? toFilename : config.options.txtUploadFilename);\n backupDir = (backupDir ? backupDir : config.options.txtUploadBackupDir);\n uploadDir = (uploadDir ? uploadDir : config.options.txtUploadDir);\n username = (username ? username : config.options.txtUploadUserName);\n password = config.options.pasUploadPassword; // for security reason no password as macro parameter\n if (!password || password === '') {\n alert(config.macros.upload.messages.passwordEmpty);\n return;\n }\n if (storeUrl === '') {\n storeUrl = config.macros.upload.defaultStoreScript;\n }\n if (config.lib.file.dirname(storeUrl) === '') {\n storeUrl = config.lib.file.dirname(document.location.toString())+'/'+storeUrl;\n }\n if (toFilename === '') {\n toFilename = config.lib.file.basename(document.location.toString());\n }\n\n clearMessage();\n // only for forcing the message to display\n if (version.major < 2)\n store.notifyAll();\n if (!storeUrl) {\n alert(config.macros.upload.messages.urlParamMissing);\n return;\n }\n // Check that file is not locked\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n if (BidiX.GroupAuthoring.lock.isLocked() && !BidiX.GroupAuthoring.lock.isMyLock()) {\n alert(config.macros.upload.messages.fileLocked);\n return;\n }\n }\n \n var log = new this.UploadLog();\n log.startUpload(storeUrl, toFilename, uploadDir, backupDir);\n if (document.location.toString().substr(0,5) == "file:") {\n saveChanges();\n }\n var toDir = config.macros.upload.toDirUrl(storeUrl, toFilename, uploadDir, username);\n displayMessage(config.macros.upload.messages.aboutToUpload.format([toDir]), toDir);\n this.uploadChanges(storeUrl, toFilename, uploadDir, backupDir, username, password);\n if(config.options.chkGenerateAnRssFeed) {\n //var rssContent = convertUnicodeToUTF8(generateRss());\n var rssContent = generateRss();\n var rssPath = toFilename.substr(0,toFilename.lastIndexOf(".")) + ".xml";\n this.uploadContent(rssContent, storeUrl, rssPath, uploadDir, '', username, password, \n function (responseText) {\n if (responseText.substring(0,1) != '0') {\n displayMessage(config.macros.upload.messages.rssFileNotUploaded.format([rssPath]));\n }\n else {\n var toFileUrl = config.macros.upload.toFileUrl(storeUrl, rssPath, uploadDir, username);\n displayMessage(config.macros.upload.messages.rssFileUploaded.format(\n [toFileUrl]), toFileUrl);\n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n });\n }\n return;\n};\n\nconfig.macros.upload.uploadChanges = function(storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var original;\n if (document.location.toString().substr(0,4) == "http") {\n original = this.download(storeUrl, toFilename, uploadDir, backupDir, username, password);\n return;\n }\n else {\n // standard way : Local file\n \n original = loadFile(getLocalPath(document.location.toString()));\n if(window.Components) {\n // it's a mozilla browser\n try {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]\n .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);\n converter.charset = "UTF-8";\n original = converter.ConvertToUnicode(original);\n }\n catch(e) {\n }\n }\n }\n //DEBUG alert(original);\n this.uploadChangesFrom(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password);\n};\n\nconfig.macros.upload.uploadChangesFrom = function(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var startSaveArea = '<div id="' + 'storeArea">'; // Split up into two so that indexOf() of this source doesn't find it\n var endSaveArea = '</d' + 'iv>';\n // Locate the storeArea div's\n var posOpeningDiv = original.indexOf(startSaveArea);\n var posClosingDiv = original.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1))\n {\n alert(config.messages.invalidFileError.format([document.location.toString()]));\n return;\n }\n var revised = original.substr(0,posOpeningDiv + startSaveArea.length) + \n allTiddlersAsHtml() + "\sn\st\st" +\n original.substr(posClosingDiv);\n var newSiteTitle;\n if(version.major < 2){\n newSiteTitle = (getElementText("siteTitle") + " - " + getElementText("siteSubtitle")).htmlEncode();\n } else {\n newSiteTitle = (wikifyPlain ("SiteTitle") + " - " + wikifyPlain ("SiteSubtitle")).htmlEncode();\n }\n\n revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");\n revised = revised.replaceChunk("<!--PRE-HEAD-START--"+">","<!--PRE-HEAD-END--"+">","\sn" + store.getTiddlerText("MarkupPreHead","") + "\sn");\n revised = revised.replaceChunk("<!--POST-HEAD-START--"+">","<!--POST-HEAD-END--"+">","\sn" + store.getTiddlerText("MarkupPostHead","") + "\sn");\n revised = revised.replaceChunk("<!--PRE-BODY-START--"+">","<!--PRE-BODY-END--"+">","\sn" + store.getTiddlerText("MarkupPreBody","") + "\sn");\n revised = revised.replaceChunk("<!--POST-BODY-START--"+">","<!--POST-BODY-END--"+">","\sn" + store.getTiddlerText("MarkupPostBody","") + "\sn");\n\n var response = this.uploadContent(revised, storeUrl, toFilename, uploadDir, backupDir, \n username, password, function (responseText) {\n if (responseText.substring(0,1) != '0') {\n alert(responseText);\n displayMessage(config.macros.upload.messages.fileNotUploaded.format([getLocalPath(document.location.toString())]));\n }\n else {\n if (uploadDir !== '') {\n toFilename = uploadDir + "/" + config.macros.upload.basename(toFilename);\n } else {\n toFilename = config.macros.upload.basename(toFilename);\n }\n var toFileUrl = config.macros.upload.toFileUrl(storeUrl, toFilename, uploadDir, username);\n if (responseText.indexOf("destfile:") > 0) {\n var destfile = responseText.substring(responseText.indexOf("destfile:")+9, \n responseText.indexOf("\sn", responseText.indexOf("destfile:")));\n toFileUrl = config.macros.upload.toRootUrl(storeUrl, username) + '/' + destfile;\n }\n else {\n toFileUrl = config.macros.upload.toFileUrl(storeUrl, toFilename, uploadDir, username);\n }\n displayMessage(config.macros.upload.messages.mainFileUploaded.format(\n [toFileUrl]), toFileUrl);\n if (backupDir && responseText.indexOf("backupfile:") > 0) {\n var backupFile = responseText.substring(responseText.indexOf("backupfile:")+11, \n responseText.indexOf("\sn", responseText.indexOf("backupfile:")));\n toBackupUrl = config.macros.upload.toRootUrl(storeUrl, username) + '/' + backupFile;\n displayMessage(config.macros.upload.messages.backupFileStored.format(\n [toBackupUrl]), toBackupUrl);\n }\n var log = new config.macros.upload.UploadLog();\n log.endUpload();\n store.setDirty(false);\n // erase local lock\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n BidiX.GroupAuthoring.lock.eraseLock();\n // change mtime with new mtime after upload\n var mtime = responseText.substr(responseText.indexOf("mtime:")+6);\n BidiX.GroupAuthoring.lock.mtime = mtime;\n }\n \n \n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n }\n );\n};\n\nconfig.macros.upload.uploadContent = function(content, storeUrl, toFilename, uploadDir, backupDir, \n username, password, callbackFn) {\n var boundary = "---------------------------"+"AaB03x"; \n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n if (window.netscape){\n try {\n if (document.location.toString().substr(0,4) != "http") {\n netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');}\n }\n catch (e) {}\n } \n //DEBUG alert("user["+config.options.txtUploadUserName+"] password[" + config.options.pasUploadPassword + "]");\n // compose headers data\n var sheader = "";\n sheader += "--" + boundary + "\sr\snContent-disposition: form-data; name=\s"";\n sheader += config.macros.upload.formName +"\s"\sr\sn\sr\sn";\n sheader += "backupDir="+backupDir\n +";user=" + username \n +";password=" + password\n +";uploaddir=" + uploadDir;\n // add lock attributes to sheader\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n var l = BidiX.GroupAuthoring.lock.myLock;\n sheader += ";lockuser=" + l.user\n + ";mtime=" + l.mtime\n + ";locktime=" + l.locktime;\n }\n sheader += ";;\sr\sn"; \n sheader += "\sr\sn" + "--" + boundary + "\sr\sn";\n sheader += "Content-disposition: form-data; name=\s"userfile\s"; filename=\s""+toFilename+"\s"\sr\sn";\n sheader += "Content-Type: " + config.macros.upload.contentType + "\sr\sn";\n sheader += "Content-Length: " + content.length + "\sr\sn\sr\sn";\n // compose trailer data\n var strailer = new String();\n strailer = "\sr\sn--" + boundary + "--\sr\sn";\n //strailer = "--" + boundary + "--\sr\sn";\n var data;\n data = sheader + content + strailer;\n //request.open("POST", storeUrl, true, username, password);\n try {\n request.open("POST", storeUrl, true); \n }\n catch(e) {\n alert(config.macros.upload.messages.crossDomain + "\snError:" +e);\n exit;\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if (request.status == 200)\n callbackFn(request.responseText);\n else\n alert(config.macros.upload.messages.errorUploadingContent + "\snStatus: "+request.status.statusText);\n }\n };\n request.setRequestHeader("Content-Length",data.length);\n request.setRequestHeader("Content-Type","multipart/form-data; boundary="+boundary);\n request.send(data); \n};\n\n\nconfig.macros.upload.download = function(uploadUrl, uploadToFilename, uploadDir, uploadBackupDir, \n username, password) {\n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n try {\n if (uploadUrl.substr(0,4) == "http") {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");\n }\n else {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n }\n } catch (e) { }\n //request.open("GET", document.location.toString(), true, username, password);\n try {\n request.open("GET", document.location.toString(), true);\n }\n catch(e) {\n alert(config.macros.upload.messages.crossDomain + "\snError:" +e);\n exit;\n }\n \n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if(request.status == 200) {\n config.macros.upload.uploadChangesFrom(request.responseText, uploadUrl, \n uploadToFilename, uploadDir, uploadBackupDir, username, password);\n }\n else\n alert(config.macros.upload.messages.errorDownloading.format(\n [document.location.toString()]) + "\snStatus: "+request.status.statusText);\n }\n };\n request.send(null);\n};\n\n//}}}\n////===\n\n////+++!![Initializations]\n\n//{{{\nconfig.lib.options.init('txtUploadStoreUrl','store.php');\nconfig.lib.options.init('txtUploadFilename','');\nconfig.lib.options.init('txtUploadDir','');\nconfig.lib.options.init('txtUploadBackupDir','');\nconfig.lib.options.init('txtUploadUserName',config.options.txtUserName);\nconfig.lib.options.init('pasUploadPassword','');\nsetStylesheet(\n ".pasOptionInput {width: 11em;}\sn"+\n ".txtOptionInput.txtUploadStoreUrl {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadFilename {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadDir {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadBackupDir {width: 25em;}\sn"+\n "",\n "UploadOptionsStyles");\nconfig.shadowTiddlers.UploadDoc = "[[Full Documentation|http://tiddlywiki.bidix.info/l#UploadDoc ]]\sn"; \nconfig.options.chkAutoSave = false; saveOptionCookie('chkAutoSave');\n\n//}}}\n////===\n\n////+++!![Core Hijacking]\n\n//{{{\nconfig.macros.saveChanges.label_orig_UploadPlugin = config.macros.saveChanges.label;\nconfig.macros.saveChanges.label = config.macros.upload.label.saveToDisk;\n\nconfig.macros.saveChanges.handler_orig_UploadPlugin = config.macros.saveChanges.handler;\n\nconfig.macros.saveChanges.handler = function(place)\n{\n if ((!readOnly) && (document.location.toString().substr(0,4) != "http"))\n createTiddlyButton(place,this.label,this.prompt,this.onClick,null,null,this.accessKey);\n};\n\n//}}}\n////===\n
*Blind gnoll from the [[Blighted Swamp]].\n*Last seen: [[Glass Desert]], en route to [[Gnoll Graveyard]].\n*Mother of [[Gartol]].\n*Grandmother of [[Lekkin]].\n*Presumably deceased.
\n<!--{{{-->\n\n<div class='toolbar'>\n <span macro="showWhenTagged systemConfig">\n <span macro="toggleTag systemConfigDisable . '[[disable|systemConfigDisable]]'"></span>\n </span>\n <span style="padding:1em;"></span>\n <span macro='toolbar closeTiddler closeOthers +editTiddler deleteTiddler undoChanges permalink references jump newHere newJournalHere'></span>\n</div>\n\n<div class="tagglyTagged" macro="tags"></div>\n\n<div class='titleContainer'>\n <span class='title' macro='view title'></span>\n <span macro="miniTag"></span>\n</div>\n\n<div class='subtitle'>\n <span macro='view modifier link'></span>,\n <span macro='view modified date [[DD-mmm-YY]]'></span>\n (<span macro='message views.wikified.createdPrompt'></span>\n <span macro='view created date [[DD-mmm-YY]]'></span>)\n</div>\n\n<div macro="showWhenExists ViewPanelTemplate">[[ViewPanelTemplate]]</div>\n\n<div macro="hideWhen tiddler.tags.containsAny(['css','html','pre','systemConfig']) && !tiddler.text.match('{{'+'{')">\n <div class='viewer' macro='view text wikified'></div>\n</div>\n<div macro="showWhen tiddler.tags.containsAny(['css','html','pre','systemConfig']) && !tiddler.text.match('{{'+'{')">\n <div class='viewer'><pre macro='view text'></pre></div>\n</div>\n\n<div macro="showWhenExists ViewDashboardTemplate">[[ViewDashboardTemplate]]</div>\n\n<div class="tagglyTagging" macro="tagglyTagging"></div>\n\n<!--}}}-->\n
The Warforged are a curious race, dating back to the days of [[Alakor]]. For some reason, Warforged do not seem to be capable of remembering anything that happened longer than about 30 years prior. Some scholars have posited that this may have been a safety mechanism put in place by their [[Alakari]] masters and creators, in order to prevent the immortal constructions from becoming a threat to Alakari dominance, while others say it was an act of mercy, so that the Warforged would not be burdened by memories of mortal friends long gone. In any case, the truth of their forced amnesia is lost to time. All warforged are acutely aware of this shortcoming, and reactions are wide-ranging. Some see it as liberating, not to be tied down by the past. Others go to extreme lengths to try and overcome it, locking themselves in libraries and spending their years reading and re-reading their meticulously-kept journals so that they might not lose anything. Most fall somewhere in between the two extremes, accepting their fate but determined to make the most of their lives despite it. In any case, warforged rarely settle down in one place for very long, being driven by a combination of an over-developed sense of wanderlust and an under-developed sense of familiarity.\n\nWarforged characters possess the following racial traits.\n*+2 Constitution, -2 Charisma.\n*[[Living Construct]] subtype.\n*Medium size.\n*Warforged base speed is 30 feet.\n*Composite Plating: Warforged have an inherent +2 armor bonus, and cannot wear items which take up the armor/robe body location. This is treated as light armor with a 5% arcane spell failure chance.\n*Light Fortification (Ex): When a critical hit or sneak attack is scored on a Warforged, there is a 25% chance of it being negated and only doing regular damage.\n*A Warforged has a slam attack as a natural weapon which deals 1d4 bludgeoning damage.\n*Nullstone: All warforged have at their heart a [[Nullstone]], which they may activate and deactivate as a swift action. While active, whenever any spell is used within 30 feet of the warforged, the caster must succeed at a caster level check with DC equal to 10 + the Warforged's level or the spell is countered.\n*Automatic languages: Common. Bonus languages: None.\n*[[Favored Class]]: Barbarian, Fighter or Ranger.\n*Level Adjustment: +1.
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.\n\n@@font-weight:bold;font-size:1.3em;color:#444; //What now?// @@ 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://taintedlands.tiddlyspot.com/controlpanel]] (your control panel username is //taintedlands//).\n<<tiddler tiddlyspotControls>>\n@@font-weight:bold;font-size:1.3em;color:#444; //Working online// @@ You can edit this ~TiddlyWiki right now, and save your changes using the "save to web" button in the column on the right.\n\n@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// @@ 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.\n\n@@font-weight:bold;font-size:1.3em;color:#444; //Help!// @@ 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]].\n\n@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// @@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions.
*Halfling merchant\n*Last seen: [[Arbok's Rest]]\n*Sister of [[Maxus Aloon]]
Wood Elvish characters possess the following racial traits.\n* +4 Dexterity\n* Humanoid (Elf) type.\n* Medium size.\n* A wood elf’s base land speed is 30 feet.\n* Immunity to sleep spells and effects, and a +2 racial saving throw bonus against enchantment spells or effects.\n* Low-light vision.\n* Weapon Proficiency: Wood elves are automatically proficient with the longsword, rapier, longbow, composite longbow, shortbow, and composite shortbow.\n* +2 racial bonus on Listen, Search, Spot and Survival checks. A wood elf who merely passes within 5 feet of a secret or concealed door is entitled to a Search check to notice it as if she were actively looking for it.\n* Animal companion: All wood elves may have an animal companion, as with the druid ability. The wood elf's effective druid level is equal to his character level. This animal companion is completely seperate from any which may be granted by one of the wood elf's classes, and so it is possible for example for a wood elf druid to have two animal companions.\n* Automatic Languages: Common, Elven. Bonus Languages: Draconic, Gnoll, Gnome, Goblin, Orc, Sylvan.\n* [[Favored Class]]: Druid or Ranger.\n* Level Adjustment: +1.
Pronounced "~SHEE-cha-cha," Xitzatza is a port city on the southern edge of the [[Djansenji]] primarily populated by [[Catfolk]].
| tiddlyspot password:|<<option pasUploadPassword>>|\n| site management:|<<upload http://taintedlands.tiddlyspot.com/store.cgi index.html . . taintedlands>>//(requires tiddlyspot password)//<<br>>[[control panel|http://taintedlands.tiddlyspot.com/controlpanel]], [[download (go offline)|http://taintedlands.tiddlyspot.com/download]]|\n| 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]]|