WM/Online Tools

= Reference Material =
* Quick Reference Table of Combat
* GURPS Explosion Calculator - Roll damage (or enter it manually), get a table of damage at ranges, or get a graphic ready for drag and drop into OpenRPG!
* Emily's Revised Armor Table
= Software =
OpenRPG 1.7.x and The latest development version of MapTool are required to play.
:GURPS Die Roller Character Sheet for OpenRPG. OpenRPG Dieroller guide for the GURPS dieroller.
:Export sheet for GCA
:Updated Die Roller for OpenRPG (updated by Emily).
;TODO
:Someone needs to check those links, and maybe write some installation/use instructions here. Including a FAQ for common problems like using these tools with Vista.
== Setting up a character for Maptools ==
See this page for a step-by-step guide on setting up a new character for Maptools. It's got a simple part for folks that just want to type out "I hit him with my sword [attack(15)], and an extended part for folks that want complicated extra stuff!
==Really Brief Guide to installing OpenRPG in Vista==
*Install Python 2.6, and wxPython v2.8.
*Tell Vista to run python.exe as an administrator, all the time. (Can't give specific instructions for this, I have Win7)
*Zip up a working installation of OpenRPG 1.7.5 from another computer (Emily can provide a zipped up and working install).
*Unzip it into C:\OpenRPG1 (or some other non Program Files folder of your preference).
: This is critical. DO NOT install OpenRPG into C:\Program Files\OpenRPG\ or any other folder inside of Program Files. It only leads to tears. 
: Or at least a headache.
*Create a shortcut to the start.pyw in your new folder.
*(optional, if the person providing the zipped OpenRPG install has not done this) Download the Updated Die Roller for OpenRPG (linked above), rename it from gurps (3).py to gurps.py if necessary, and then install it over the existing gurps.py found somewhere in your C:\OpenRPG1\ folder (Use windows search).
===OpenRPG 1.7.7===
*This release is supposed to stabilize a few issues, and theoretically adds Vista compatibility. In my experience, it merely adds the illusion of Vista compatibility, and mostly just fails horribly. 
*It also has a bug where it overwrites all changes or updates or patches made to the OpenRPG files without asking you or warning you, including custom dierollers.
*It may be possible to get this version working happily in Vista or Win7 and without overwriting everything. I wish you the best of luck in doing so, please report back how you managed it if you did.
==Using the OpenRPG GURPS dieroller ==
;TODO: Add screenshots!
To set the GURPS roller as your active roller, just type /dieroller gurps into your chat window. 
The basic GURPS roller contains 10 different functions which are described below, however you only need to know and love the first one. The others are handy, but non-essential.Please note that references such as [B173] refer to the GURPS Basic Set (Characters & Campaigns), the example refers to page 173 in the Basic Set.
===Basic GURPS Success roll===
;.skill(level, modifier)
This is the classic GURPS roll with three dice. Replace level with the character's skill level and modifier with any bonus or penalty. Example: [3d6.skill(12,-1)]
This can be used for skill rolls, attribute checks, or Self Control rolls - any success roll in GURPS.
Update note: In the updated dieroller, the ,modifier part can be left out if the modifier is zero. Example: [3d6.skill(12)]
Update note: You can even leave the level part out - the dieroller will in this case roll against a skill of 10 (average attribute).
;.roll(level, modifier)
Exactly the same as .skill(). Added in the updated dieroller.
===Attacks===
All of these functions are added in the updated dieroller. These functions all will automatically call on the Critical Hit and Critical Miss table (if required) and will automatically add enough Deceptive Attack to bring your skill down below 18 if your modified skill is above 17 (you should ALWAYS do this, and now you don't have to remember to!).
;.attack(level, modifier)
Rolls on the regular armed Critical Hit and Critical Miss tables, when appropriate.
;.unarm(level, modifier)
Rolls on the Unarmed Critical Miss table, when appropriate.
;.unarmed(level, modifier)
Exactly the same as .unarm()
;.whirlwind(level, modifier)
Rolls ONE random hit location, and rolls an armed attack against it. Roll once against each target in your range.
===Other Success Variations===
These are specialized versions of the regular success roll, handling the various "Number Rules".
;.defaultskill(attribute,defaultlevel,modifier)
This is a vairation on the basic .skill roller roller. This is used for default skill rolls only. An example would be Climbing which defaults to DX-5. With a DX of 12, the roll would look like [3d6.defaultskill(12,-5,0)] (assuming no bonuses or penalties).
Special: Unlike a regular success roll, if the defaulting attribute is 21+ (DX of 25 in our example), the Rule of 20 will be applied [B173, B344].
;.supernatural(level,subject's resistance,modifier)
This roller is specifically for resisted "supernatural" skill rolls (magic, psi, and so forth) and incorporates the Rule of 16 [B349]. Replace level with the character's unmodified skill, subject's resistance with the appropriate resistance for the spell/ability, and modifier is replaced with any bonus or penalty. Example: [3d6.supernatural(17,12,0)] 
NOTE: This roller DOES NOT replace the subject's resistance roll. The subject's resistance is used ONLY in relation to the Rule of 16 [B349].
;.frightcheck(Will,modifier)
This roll combines the actual Fright Check using Will along with a look up on the Failed Fright Check table [B360, 361]. This roller also automatically uses the Rule of 14 [B360]. Example: [3d6.frightcheck(16,-2)]
=== Table Lookups ===
These are not success checks at all! These are just plain old table lookups from the Basic Set.
;.frightcheckfail(Margin)
This is a simple lookup on the Failed Fright Check table [B360, 361]. With a margin of failure of 8 the roll would be [3d6.frightcheckfail(8)]
;.crit_hit()
This is simply the Critical Hit table lookup [B556]. Example: [3d6.crit_hit()]
;.crithit()
Exactly the same as .crit_hit(). Added in the updated dieroller.
;.crit_headblow()
This is simply the Critical Headblow table lookup [B556]. Example [3d6.crit_headblow()]
;.crit_miss()
This is simply the Critical Miss table lookup [B556]. Example [3d6.crit_miss()]
;.critmiss(), .crit_fail(), .critfail(), .botch(), .fumble()
All exactly the same as .critmiss Added in the updated dieroller.
;.crit_unarm()
This is simply the Critical Unarmed Miss table lookup [B557]. Example [3d6.crit_unarm()]
;.critunarm(), .botch_unarm(), .fumble_unarm(), .botchunarm(), .fumbleunarm()
Exactly the same as .crit_unarm(). Added in the updated dieroller.
		
;.spellfail()
This is simply the Critical Spell Failure table lookup [B236]. Example [3d6.spellfail()]
;.location()
This is a Humanoid Hit Location table lookup. [B552] Added in the updated dieroller.
;.hitlocation()
Exactly the same as .location() Added in the updated dieroller.
;.reaction(Modifier)
This is a simple lookup on the NPC Reactions Table [B550]. With a reaction bonus of +2, the roll would be [3d6.reaction(2)] Added in the updated dieroller.
;.scatter(Margin,Distance)
NOTE: This function is special, in that it works with a single die, not 3d6. 
This function implements the "Scatter" rule for missed ranged attacks [B414]. When used with empty brackets, this will simply return the direction (relative to your current facing) that your errant missile scatters in, and explain how to find the distance scattered. Example: [1d6.scatter()]
If you supply the Margin of failure, it will give you the distance scattered, and remind you about the effective cap on scatter distance. Example: [1d6.scatter(4)]
If you supply the Margin and the distance between you and the (missed) target, the function will supply all the information. Example: [1d6.scatter(7,20)] Added in the updated dieroller.
Final note, If [3d?Number of Dice] looks odd, welcome to OpenRPG+! OpenRPG+ allows you to send a message to the ? dice dialog. Copy and paste [3d?Number of Dice] into the chat bar and see what happens!