Latest Fixes and Enhancements

Special Note About MP3/OGG Playback and Scripting

Version 3.4.5

Highlights in this Version
A few minor fixes.

Additions / New Features
None

Fixes
The "Parties" node in the Campaign Tree was not being added correctly.

Modifications
None

Version 3.4.4

Highlights in this Version
Bug fixes.

Additions / New Features
None

Fixes
Start-up issues on Windows.

Lockups caused by undocked Dice Panels.

Modifications
None

Version 3.4.3

Highlights in this Version
None

Additions / New Features
None

Fixes
Starting in "Master" mode without a Preferences folder would cause issues.

Modifications
None

Version 3.4.2

Highlights in this Version
Major underlying changes to kLoOge.Tokenizer.

Long overdue bug fixes.

Additions / New Features
Added keyboard shortcuts to more precisely adjust Map grid scale and offset. Please refer to the tutorial video on the subject for more information.

Added a few new temporary modifiers to the "4e" definition and scripts. These allow you to specify a hit point adjustment at the end of an Icon's turn (as opposed to the start) and to issue a chat message from the Icon at either the start or end of its turn.

Added a new health bar display option in Preferences: "Health bar circles." This renders the traditional health "bar" as a "pie," with wedges being removed as "health" declines. Also, the colors that the program uses to denote the various stages of "healthiness" can now be themed.

You can now copy/paste between "Multi-List" tables (i.e., the kind used for "powers," "weapons, etc.). Simply select one or more rows, press Ctrl-C (or use the "Copy" item from the drop-down or pop-up menus), then go to the table where you would like to paste the items and select "Paste" or Ctrl-V. Note that this works across character sheets, but you can not paste rows to tables that are not the same type of table that the rows were copied from (i.e., you can't copy a row from the "Powers" table and paste it into the "Weapons" table, even if the tables have the same number of columns).

Fixes
Dice expressions were not evaluating to the maximum number of die sides.

Tables whose first row was something other than a String would result in the entire table being set to the class of that row.

"treat-data-as-modifier" not being set was not being honored.

Performing multiple sequences of controlling and releasing an Icon would result in the Player being disconnected from the Master.

Addressed a number of issues that were pointed out in the forums.

Modifications
Tweaked the "4e" scripts/definition to include creating Icon Effects based on Power descriptions. This is not guaranteed to work (if it works at all), but should give you an idea of how to accomplish something similar, should you care to.

Support for non-XML content (exported Icons, Maps, Adventures, Campaigns) has (finally) been removed. We introduced XML file storage with 2.9.5 and it finally became too much of a burden supporting the old file format to carry it any further. If you, by some chance, have any content in this old format, from 3.4.2 on, that content will not load. If you would like to continue to use it, import it into a version of the program prior to 3.4.2, then export it. This will convert your content to XML.

"Auto-target" has been changed slightly to only modify targets after you finish dragging an Icon (instead of adding and removing them as the Icon being dragged passes near other Icons). This should give better behavior.

Minor change to kLoOge.Tokenizer - the preview area has been removed, since, now, the composition area provides a preview, complete with gloss, threshold and color mix.

Tokenizer no longer uses "dual alpha" images. Instead, it uses a main image and a "mask" image. Please refer to the tutorial video on the subject for more information.

Version 3.4.1

Highlights in this Version
Mostly fixes, but a few new things thrown in for fun.

Definition / Scripting
Additions / New Features
None

Fixes
The "4e" definition was not supplying "weapon group" to the underlying script for attacks with a weapon (as opposed to a "power").

The "skill_check.kws" script for "4e" was adding modifiers multiple times if an Effect had more than one modifier.

Modifications
"Flanking" for 4e has been adjusted to better follow the rules.

Eye Candy
Additions / New Features
You can now specify an "overlay" image for a Map. Use a small tiling texture or a full image to be overlayed on the the entire Map image. Please refer to the tutorial video for more information.

Added a number of new overlays for kLoOge.Tokenizer.

Fixes
None

Modifications
None

Functional
Additions / New Features
None

Fixes
If you had "heal-from-zero" set in the definition and, during combat, used the "hit point history" to reverse a hit point adjustment for a dead Icon, the reversal would use the "heal-from-zero" setting, giving the Icon more hit points than it should have received.

Setting the "sound file" on a Character Sheet resulted in an error.

Controlling an Icon resulted in Player disconnect and subsequent problems with editing an Icon's character sheet.

Loading a Campaign that contained an Icon with an Effect for "light radius" would cause an error if that Icon was not on a Map.

Dragging a table row to change the order could result in an error.

Hit/Miss sounds were not being played if the "Attack FX" column was blank.

Non-square light radius, combined with "fog-of-war," would lead to the program slowing down and exhausting all memory. After installing 3.4.1, please toggle off, then on, "Player Obscurement" on any Map using these features to reset the "Player Obscurement" layer.

Players could not toggle the "active" setting for Icon Effects.

When using "special Icon Effect handling," having an Icon Effect that expired at the end of an Icon's turn might not expire under certain conditions. This should now be handled more correctly.

Modifications
Made a few modifications to kLoOge.MonsterBuilder. These include fixes for dialog not opening properly. Also introduced a system property, "kLoOge.mm3" that, when set, will open the program with a slightly updated user interface for transcribing monsters from the "Monster Manual 3" (which introduced a different stat block layout).

Scripting
Additions / New Features
Added scripting method, "measureTargetDistance()" which measures the distance between to Icons not center-to-center, but edge-to-edge (just as the program calculates distances when targeting.

A new version of the scripting method "visualEffect" has been added (along with a couple of scripts to illustrate the change). This version does not center the Visual Effect on an Icon, but, instead, centers it wherever you click on the Map. This may be handy when you simply want a Visual Effect to happen (like when there's an explosion that isn't caused by a roll).

Added a new scripting method to determine whether a Map has "grid snap" enabled.

Fixes
None

Modifications
None

Scripts
Additions / New Features
None

Fixes
The "glowy" script was referencing an unknown variable (thanks to a typo).

Modifications
None

User Interface
Additions / New Features
Added a Preference option to disable the Icon background that was introduced in 3.4.0.

Fixes
Using the "icon name boxes" Preferences setting caused the boxes to be drawn incorrectly.

Modifications
None

Miscellaneous
Additions / New Features
None

Fixes
None

Modifications
None

Version 3.4.0

Highlights in this Version
Lots of functional, structural and performance enhancements.

New 24-bit animated Visual Effects.

Numerous improvements to the "4e" definition and scripts.

Many new scripting methods to access even more data from character sheets.

Completely re-engineered the "auto-reconnect" process for Players.

New "Master Mode" gives the power of the Master to a Player.

Icon in Inventory can now adjust the stats of the carrying Icon.

A new program, kLoOge.ItemBuilder, for "4e" users.

Links to the Tutorial videos directly from the program.

Base Functionality
Additions / New Features
A new mode has been introduced: Master Mode. With this mode you, as the Master, can grant pseudo-Master powers to Players. Simply right-click on the Player's node in the Campaign tree and select "Enable Master mode." The Player will be notified that the mode is available to them and can toggle the mode on and off from their "View" menu. When enabled, this mode allows the Player to see the Map as the Master sees it -- obscured areas are transparent, invisible Icons are visible, NPC stats are available and the Player can even roll for hostile NPCs. While not intended for the general populace, this mode makes a poor man's "Tournament" play possible. For more information, please refer to the tutorial video on the subject.

Item Icons contained in the inventory of other Icons can now contribute their properties to the carrying Icon. Please refer to the tutorial video on the subject for more information.

Added an item in the "Help" menu called "Tutorials." Selecting this brings up a dialog that allows you to search, download and play tutorial videos directly within the program. As an ironic twist, refer to the tutorial video on the subject for more information.

The Calendar now has a new "date picker" that allows you to quickly jump to another date. Simply right-click on the Calendar and select "Pick date" from the popup menu.

Fixes
If you had an improperly created data location (one that was missing the "campaigns" folder), and attempted to start the program as a Master, the program would issue an error and the demo campaign would not load.

If a Player manually added an Icon to the Icon Toolbar, his preferences file would become corrupted.

Importing an Item Icon, or loading a Campaign containing an Item Icon that has any entries in the "equipment" table ("4e" or "3rd Edition" definitions) would cause the import/campaign load to fail.

Toggling "grid snapping" on a Map with Players connected did not send the changed setting.

Modifications
If you have "auto-apply damage" turned on in Preferences, and the program detects that an Icon has something that reduces damage, the reduction will be automatically taken when the damage is applied. Previously, the program did not assume that this was your intention and, even if you had "auto-apply damage" turned on, would not apply damage automatically if a possible reduction was present.

The Internet, while a wonderful thing, can be less than completely reliable. Knowing this, we have long had a Preferences option to automatically reconnect to the Master should your Player connection go bad. Unfortunately, this option was turned off by default, and, even when it was turned on, it did not work all that well. In this version, we have made some fairly major changes to the way auto-reconnect works and, we hope, you will find the experience...unnoticable. You see, the program will now, transparently, attempt to re-establish its connection to the Master, without throwing away any data that it has. What's more, the Master will retain information destined for the Player during the reconnection process and forward the queued messages as soon as the Player reconnects. Give the improved option a try and, if it ends up not working as advertised, you can always disable it again in Preferences.

As promised some time ago, the "traditional" (old-style) Dice Panels have been removed. The disparity between the functionality of the "new" Dice Panels and the "old" simply became too great to maintain the outdated version.

Another change to the communication system now takes us to a single connection between Master and Player (there used to be two) and a 60% reduction in the number of running threads to maintain communication. This should reduce resource usage on both the Master and the Player, but should especially help in instances where there are a large number of Players connected to a Master.

Definition
Additions / New Features
Buttons that appear in the Dice Dialogs can now be marked as "dm-only" in the definition. To illustrate this, the "4e" definition now has a button called "Recharge" that is only available to the Master. This button runs a new script that will roll a "d6" for every rechargeable NPC "power" and, if the roll succeeds, will make that "power" available again.

Added a definition file hook into the program's handling of Icon Effects that adjust an Icon's hit points. Defined in the "base-rules" section (see the "4e" definition for an example), this tag, "adjust-hp-script," allows you to specify a script that will be executed before an Icon Effect that adjusts hit points is evaluated. By doing this, the script has the power to alter the amount of the hit point adjustment before it is made.

Added a definition tag, "read-only-alterable." This acts the same as "read-only," except that you are telling the program that something (a script, for example) may alter the field's value, so even though it's read-only, its contents should be saved. Normally, "read-only" fields are not saved, since their values can't be changed through the program's interface. For an example of where this new tag might be useful, please see the "4e" definition.

Added a new definition file tag, "desc-css," that allows you to specify a file that contains CSS tags that will be added to all descriptions. For an example of how to format this file, please refer to the "style_example.css" file included in the distribution and the "4e" definition.

Added a new tag to the "base-rules" section of the definition file: "light-is-square." If set, then light radius will be considered a "square" and not a "circle." Refer to the "4e" definition for an example.

Added a new tag to the "init-def" section of the definition file called "init-script." This tag allows you to define a script that will be called whenever initiative changes in the normal fashion (moving "forward"). Refer to the "4e" definition for an example of how this might be used.

Added a new tag to the "base-rules" section: "cache-font." On some systems, the initial load of a font can take a long time (on the order of hundreds of milliseconds), so if you use a custom font in, say, your Dice Dialogs, you might want to use this tag to avoid a delay when opening the first Dice Dialog (again, on certain systems).

A new tag has been added to the definition file -- icon-scale. You can use this tag to tell the program where to get Icon scaling information from on the character sheet. Icon scaling is an integer scaling factor for rendering an Icon within its size. For example, if an Icon has a size of five feet, but you would like its image to render smaller, you can set the "Icon Scale" field to something less than 100 and the Icon's image will be reduced. Refer to the "4e" definition for an example of how this tag can be used and also refer to the tutorial video on the subject on our website.

Added to the "4e" definition a new temporary modifier ("SKOTM") that allows you to create an Icon Effect that modifies the roll for a specific "skill" check. The script that makes "skill" rolls for "4e" has also been modified to look for this temporary modifier. To use this, the modifier for the skill must be specified in the following manner: "SkillName ModValue." For example, if you would like to apply a "+3" to an Icon's "Athletics" check, you would define the modifier as "Athletics 3" (a plus sign is not required).

Fixes
Not defining an "npc-dead-point" clause in the definition when "hps-count-up" is set would result in NPCs always being considered to be "dead."

The "d10" definition could not display character sheets.

Modifications
Various changes to the "4E" definition to better bring it into line with the rules. Also, added an XSL to transform XML "4E" character sheets into HTML (contributed by James Wertz).

Added a column to the "4e powers" table allowing you to specify a post-attack visual effect.

The "4e" scripts for attack/damage with a weapon (as opposed to a "power") now properly include any "magic bonus" conferred by the weapon. This means that if you had previously specified the magic bonus in any other column, you should remove it from those columns, or else the bonus will be added twice.

The "4e" definition and scripts have been updated to account for classes/races introduced in the "Player's Handbook 2." Particularly, these changes affect special properties of the "Sorcerer" class.

Added a "speed" temporary modifier to the "4e" definition.

Added a definition tag, "stowed," to indicate to the program where it can find information about items that are "stowed." Having an item "stowed" means that it is still in its proper table, but expressions derived from it won't appear in the Dice Panel. The "4e" definition illustrates the usage of this tag in the "weapons" and "implements" tables.

Lots more "4e" modifications to the definition and scripts. Among the changes: broke out ability scores to make them more readable, fixed a problem with read-only columns/rows and default values, added script handling for some feats in PHB2 and much more.

Tooltips defined for rows in the "temporary modifier table" will now be available when you add the modifier to the Icon through the "edit Icon effects" dialog. This allows you to convey information about what a modifier does (since its effect may not be obvious from its description) during play. The "4e" definition uses this feature to differentiate some of the modifiers that it uses.

The "4e" definition and scripts have been further brought into line with the rules. Now, every feat, class feature and racial trait in the "PHB1" and "PHB2" that can logically modify an attack or damage roll has been added to the scripts. Feats that grant highly circumstantial bonuses must still be handled manually, but the majority of adjustments are now handled automatically.

Added a "high crit" check box to the "Weapons" table of the "4e" definition and adjusted the scripts to look for this check box to be set. When selected, the weapon's damage die will be added to the expression on a critical hit (according to the "4e" rules, taking the Icon's level into account).

Definition Scripting
Additions / New Features
Added a "4E" script, "change_level.kws," that allows the Master to change the level of NPCs. Simply select the Icons in question and enter the level delta ("2" to increase the level by two, "-2" to decrease the level by two, for example) and the script adjusts all the NPC's information (attacks, defense scores, hit points, etc.).

The "4e" definition has gained temporary modifiers to ability checks. These allow you to specify a modifier to an ability roll without impacting the Icon's stat bonuses. The underlying script handles all of the details.

Added a "level up" script for the "4e" definition. This script handles the very basics of doing a "level up:" adjusting hit points and a number of other text fields. Please refer to the video "Handy-Scripts" for more information.

Added a new column to Icon Effects, "Save," which allows you to indicate that the Effect should not be removed until further action is taken (for example, rolling a "saving throw"). The program will display a special badge on Icons that have this field selected, visually indicating that further action is required. Additionally, a new script has been created for the "4e" definition that looks at this field and uses it to roll "saving throws" for all Effects that require them. Please refer to the new tutorial video for a detailed description of all of the recent enhancements to Icon Effects.

Added a "4e" script called "arbitrary_attack.kws." This script allows you to roll an arbitrary attack against the selected Icons. This is useful for those situations where some nebulous force that does not have an Icon makes an attack against a character and it is easier to simply enter a modifier and select the appropriate defense and let the program figure out if the roll is a hit or miss.

Fixes
None

Modifications
A few modifications to "4e" scripts: the "stabilize" script now refers to itself as "Death Saving Throw" (to go along with the rules) and indicates in its label the number of times that the save has been failed (if it has been failed); the "healing surge" script did not reset the "death saving throw" counter correctly.

Several improvements have been made to the "4e" support scripts to better handle conditions during combat. While these changes are still driven by an Icon having Icon Effects to indicate the presence of these conditions, you should no longer add attack/defense modifiers to these Effects (since the scripts should handle them appropriately).

The "4e" definition and scripts have been modified to include the ability to define Icon Effects that confer resistance / vulnerabilities to an Icon. In order for this to work properly, you must add an Icon Effect with the "Resistance" modifier and specify the resistance in the following format: "Type Value Keyword." For example, to temporarily give an Icon resistance of five to "fire" damage, you would specify the modifier as "Resist 5 Fire." The scripts will see this and act accordingly (including reducing resistance on the target if the attacking Icon is of the "Sorcerer" class).

The "4e" "special damage" script now allows you to enter tokens in the "resist val" field. This allows you to specify things like "5+($L/2)," which comes into play for some of the new classes.

Numerous minor changes to the "4e" definition scripts, including the addition of the "additional_damage.kws" script (which allows you to roll an expression and set its damage keyword).

The "4e" scripts have also been modified to take "marked" status into account. If an Icon has an Effect with a description such as "Marked by Hero" and and the target of the attack is not "Hero," then the attack will incur a -2 penalty. Note, however, that the Effect description must contain the EXACT name of the marking Icon, or else the comparison will fail.

Icon Effects
Additions / New Features
Added the ability to commit the sorting of the Icon Effects table. Simply right-click on a row and, from the pop-up menu, select "Commit sort" and your current sorting selection will be applied.

When editing an Icon's Effects as the Master, you can now right-click on an Effect and select "Copy to global effects" to quickly add the selected Effect to the global list of Effects.

Fixes
Icon Effects employing the "Damage Reduction (reducible) " modifier have always had a problem where the reduced amount was not tied back into the Effect. Thus, if the amount was reduced, but you edited the Icon's effects, the reduction would be lost and the amount would be reset to the original value. Now, the amount is also reduced, so everything should stay in sync.

Modifications
A new column has been added to Icon Effects, "End," which allows you to set when an Effect with a duration of one round actually ends. This only impacts definitions that have been set to have special handling of these types of Effects already.

A new column has been added to the Icon Effects setup dialog -- Remove. This column allows you to specify that the Effect should be deleted once it has expired, thereby allowing you to keep an Icon's Effects more clean. Note that this option is only considered for Effects with a positive duration (unending effects, since they never end, can never be automatically removed).

Icon Effect modifiers that are marked as "reduce-on-use" in the definition will now delete the Icon Effect from the Icon when their modifier reaches zero so long as the Icon Effect is marked for removal after expiration and they are the only thing providing modification in their Icon Effect.

"Glow" Icon Effects now support a "blur" setting that will apply a Gaussian blur to the edges of the Effect.

The drop-down lists for defining Icon Effects have been replaced by buttons that open up searchable dialogs, which should make it easier and faster to locate Icon Effects when you have many of them.

Interface Appearance
Additions / New Features
None

Fixes
None

Modifications
Updated the default button images for rolls and added a new button type: "powerattack."

Interface Functionality
Additions / New Features
You can now press and hold the TAB key while a single Icon is selected, or on a Map during combat with no Icons selected, and all other Icons on the Map will be ghosted, except for the selected Icon (or the Icon whose initiative it is) and any Icons that are targeted by the Icon. This allows you to quickly see which Icons a particular Icon targets, which can be especially useful when Icons are clumped together too closely to see targeting lines. When you release the TAB key, all the Icons will return to their properly rendered state.

There is a new "line of sight" indicator that you can use for game systems that are more strict about what you can/can't see during combat. To access it, select an Icon that is targeting another Icon, hold down the "shift" key and click on the small targeting icon in the column of buttons that appears next to the selected Icon. The program will draw lines from the upper-left hand-corner of the selected Icon to the four corners of the targeted Icon. Continue holding down "shift" and click the targeting button again to shift the lines from the upper-left to upper-right corner, and so on. For a visual demonstration, please refer to the tutorial video on the subject on our website.

If you're running Java 1.6 or later you now have a close button on Character Sheet tabs to quickly close a character sheet.

Fixes
Centering a square effect left the effect mode set for squares, resulting in the inability to center circular effects afterwards.

Roll "balloons" next to Icons were not being removed properly for successive rolls.

Creating an ImageIcon would not update its Icon until the campaign was re-loaded.

Scripts associated with Icons would not be available if the Icon was not "friendly."

It appears that switching from Control/Command to initiate freehand reveals to ALT confused Java's interpretation of just which mouse buttons were being pressed, so it's back to the original way.

Using the Dice Dialog to append a value to the roll did not trim white space from the entered value, which could result in erroneous parsing if, for example, someone simply entered a space in either of the fields.

If a PC Icon went invisible, it would be removed from the Icon Toolbar and would not be added back in when the PC became visible. Now the PC Icon is not removed from the Icon Toolbar and, instead, it is simply rendered as invisible (and rendered correctly when it becomes visible again).

Invisible Icons making rolls would send the roll sound to Players.

Emotes, were not being translated properly when rendered next to an Icon.

Duplicating an Icon with a "~" or "!" at the beginning of its name, and having "prepend numbers" turned on, would stick the number before the "~"/"!," thereby obviating their being there.

If you had "animate dice panels" turned on (in Preferences) and then quickly opened and closed a Dice Panel repeatedly, the program could get confused about the state of the Dice Panel.

If you selected, for example, "halve roll" from a Dice Panel, and also appended a value to the roll, the appended value would be the only thing halved.

On a Map with grid snap enabled, non-square Icons would not be centered correctly on the grid.

Modifications
When measuring in "squares" is enabled, diagonal movement now counts as a single "square" (as opposed to the actual distance, as would be derived from a real-world measurement).

Double-clicking on a Folder in the Campaign Tree that resides within a Map and contains playable Icons (like NPCs) will now not only expand the folder, but center the Map display on all the Icons contained in the Folder. This way, if you use Folders to organize encounters on a large Map, you can quickly zoom in on a particular encounter.

The "pickup item" feature has been enhanced to allow you to not only pick up Items, but also NPCs.

Keyboard Shortcuts
Additions / New Features
Added a keyboard shortcut (Control-/Cmd-I) to start combat.

Fixes
None

Modifications
None

MonsterBuilder
Additions / New Features
None

Fixes
None

Modifications
MonsterBuilder has had a few interface tweaks, including the ability to define multiple "auras."

Various minor enhancements to aid in constructing monsters.

Generated Icons will now have Icon Effects created for "auras" and "regeneration." For "regeneration" to be parsed correctly, it should be entered in the following format: "Regeneration: ##."

Converted "minion" from a role to a "role modifier," as per MM2.

Preferences
Additions / New Features
Added a Preference item, "Players can edit Icon Effects," which controls whether Players are able to edit the Icon Effects for friendly/controlled Icons. By default, this option is enabled to preserve the behavior of previous versions of the program.

Added a Preferences setting, "Auto-select current target." When selected (the default, which matches the behavior before this option existed), the program will attempt to automatically adjust an Icon's "current target," based on actions that you take during combat. When disabled, the program will not change an Icon's "current target," leaving it entirely up to you.

Added a Preferences item, "Sticky target from button," that, when enabled (not the default), makes the small targeting button next to an Icon behave as if you had right-clicked on the Icon and selected "target" from the pop-up menu (in other words, the targeting operation remains in effect until you cancel it by right-clicking on the Map). When not enabled, the targeting button behaves as it has in the past.

Added a Preferences item for Players to control the number of seconds that are allowed to elapse without a message from the Master before starting a reconnect. This option works in conjunction with "auto-reconnect," so if "auto-reconnect" is not enabled, this setting is ignored. Essentially, the default behavior before was to wait for sixty seconds without a message from the Master before considering the connection to be "bad" and starting the reconnect procedure. This, generally, works well for Internet games, but is a very long time when playing over a LAN. By making the setting configurable, you can tweak how long to wait to better suit your playing environment. For LAN play, try a shorter period. For Internet play, depending on your Internet connection, a longer period may be more appropriate (you'll have to experiment). Just keep in mind that a very short period for Internet games is probably not a good idea, since it's possible that you will experience a continual drop-connect-drop-reconnect loop due to the nature of Internet gaming.

Added Preferences items for "Hide unavailable rolls" and "Hide stowed items." These provide default settings for whether unavailable rolls and stowed items appear in Dice Panels. You can still override this default on a per-Dice Panel basis. Also, the program used to save the state of these "hide" variables, but no longer does because the logic was flawed -- the Master's decision was forced onto Players.

Fixes
None

Modifications
The Preferences dialog has been given a slight make-over. Instead of having two separate sections, one for "toggle" options and the other for everything else, we've consolidated everything into a single section. The main benefit to this is that the "search" box will now filter all options instead of just the "toggle" variety. This should make it easier to find the things you are looking for.

Rendering
Additions / New Features
None

Fixes
None

Modifications
Changed the way that the names of Drawn Items are rendered, taking advantage of the font scaling algorithm in use for Icon names.

Several enhancements have been made to improve rendering performance. Depending on your system and what you are doing, rendering speed can be more than 50% faster than previously.

Scripting
Additions / New Features
Added scripting methods, "isNPC()" and "isPC()" to quickly determine the nature of an Icon.

Added a scripting method, "logDebuggingInfo," that allows scripts to output messages to the Java Output console for debugging purposes. Note that this method is intended for script developers while they test script changes -- output generated by this method should not be sent to us, since we do not have your scripts and thus cannot debug your scripts for you.

Added scripting method to determine if the program is running in Player mode.

Added a new script, called "teleport.kws," that allows you to "teleport" an Icon from one spot on a Map to another.

Added a number of scripting methods that give scripts access to parsing results that internal expressions have (thereby allowing scripts to display their results consistently with how the program displays them). For an example of their use, see the "additional_damage.kws" script for the "4e" definition.

Added a scripting method, "getHpAdjustments()" to allow scripts to go through the program's standard path to retrieve modifications to a hit point adjustment (due, for example, to resistance or vulnerabilities).

You can now add/modify Icon Effects for things like glows and rings. A script, "glowy.kws" has been added to illustrate how this can be done.

Added a few convenience accessors to the scripting module to make adding Icon Effects a tad easier to read and more reliable.

Fixes
Scripts were not being given accurate information about modified character sheet fields in all circumstances. This should be much more reliable now.

Modifications
None

Visual Effects
Additions / New Features
Added a few new built-in Visual Effect images for your enjoyment.

Added the ability to use image sequences (as opposed to animated GIFs) for visual effects. Please refer to the tutorial video on the subject for an in-depth explanation. There are two things regarding image sequences that you should always keep in mind. First, due to their size, they are not transmitted to Players, so, in order for Players to see them, they must have them installed on their machines. Second, the main reason for using image sequences is to allow you to have 24-bit color with 8-bit transparency (as opposed to 8-bit color and 1-bit transparency in animated GIFs). As a result of this, image sequences can consume an order of magnitude more memory than a GIF, so be aware that your memory usage may spike rather severely if you use a lot of them.

Fixes
None

Modifications
None

Miscellaneous
Additions / New Features
A new program, kLoOge.ItemBuilder has been added. You can use this (simple) program to create "4e" Items quickly.

Fixes
Resolved a potential deadlock when deleting a Drawn Item.

Fixed a memory leak associated with chat messages that appear next to Icons.

Modifications
None

Version 3.3.2

Highlights in this Version
Fixes and minor enhancements.

Additions / New Features
A "grab" button has been added to the "Pick" drop-down of the "4e" definition.

Added "range" temporary modifiers (for both "powers" and "weapons") to the "4e" definition file.

Tokenizer - the concept of "gloss profiles" has been added. The idea here is that instead of embedding a gloss effect into every overlay shape, you can instead create separate "gloss" images and then apply them to any number of overlays. By creating tokens in this fashion, you avoid the problem where the transparency of the gloss embedded in the overlay causes the background image to become transparent where you don't really want it to be. A number of sample gloss images and overlays without embedded gloss have been added to give you an idea of how to go about creating these images. It is probably worth mentioning that the order that these layers are applied is as follows: background color, background image, gloss profile and, finally, the overlay.

Tokenizer - Added the ability to apply a color tint to the overlay, granting even more flexibility when creating tokens.

Added the ability for the Master to import Master and Player notes from a different campaign into the current campaign. This allows you to easily transfer notes between campaign files in much the same way that you can transfer PC Icons between campaigns.

Fixes
Under certain circumstances, with a definition that has "treat-data-as-modifiers" enabled, not all positive modifiers would receive a leading "+".

Scripts called from the definition that, in turn, called other expressions, would not take the "append to roll" settings in the rolling Icon's dice dialog into account.

The "new" Dice Dialogs did not honor the "place tab on left" Preferences setting.

Attempting to evaluate a dice expression where the left-hand side of the expression was zero would generate a NaN (Not A Number) result.

Editing the campaign greeting did not mark the campaign as having been modified.

The XML parser could be confused by valid tags that were actually commented out.

Importing an older Icon would result in the program not properly finding its image after the import.

The "powers" script for "4e" did not take a weapon's magic bonus into effect when building the attack and damage expressions. Also, if a weapon did multiple dice of damage and the power granted damage of, for example, "[3W]," the multiplication was not being done correctly.

Loading a campaign containing Icons with pending damage, when the pending damage fields no longer exist in the definition caused the campaign to fail to load. Now, if this is encountered, the pending damage is simply discarded (and a note about the action is placed in the debugging output to inform you about what happened).

Modifications
An Icon's "current target" will now be cleared after its initiative has passed.

the "isFlanking" script for "4e" now takes into account Icon Effects that might make flanking impossible.

Added a close button to the Icon Quick Stat window (which is themeable).

Tokenizer - Added a few new overlays to work better with "gloss profiles" and now Tokenizer's window will remember its size/location between invocations (when run as a stand-alone application).

Tokenizer - Updated the program icon and now allow you to put your "overlays" and "gloss_profiles" folders into the application bundle on OS X.

Changed the default color for selecting areas on a Map from red to white and, while at it, made the selection color themeable.

Moved the "failed stabilization check" information in the "4e" definition from the scripts keeping track to the hidden "combat" table on the character sheet. This allows different people to make the check without the program getting confused about how many checks have been failed.

Setting a Map's scale when using "squares" now requires you to enter the distance in terms of "squares" instead of feet (or meters), thereby avoiding you needing to do the conversion between feet and "squares" yourself.

The "multi-list" table type now exports its contents into an XML file (instead of a tab-delimited text file). It will still import previously exported text files, but XML is preferred. By moving to XML, as long as the names of the table's columns don't change, the order (and number) of the columns no longer matters. This should make it easier to use, for instance, data files between mostly identical, but slightly different, definition files.

The "new" Dice Dialogs have received some tweaks -- the "close" button is now on the left; the title area is now drawn with a background color reflective of the Icon's hostility; "combo" elements (as defined in the definition) now use the same "pop-down" list as those in "multi-lists" (to reduce screen real estate).

Version 3.3.1

Highlights in this Version
Better handling of "Resist / Vulnerable / Immune" for "4e."

Fixes.

Additions / New Features
Preferences items have been added to control the hiding of the program's toolbar, the campaign tree and the Icon Toolbar. Previously, you could only toggle the viewable state of these items with keyboard shortcuts. Now, if one should disappear on you, you can get it back via Preferences.

Added an option to a Map's pop-up menu to allow you to select all the Icons currently visible in the section of the Map that you are looking at. This is handy when you have a Map that contains several encounters and would like to quickly select all the Icons in a particular area for, say, rolling initiative.

MonsterBuilder: Added fields to support the new "Resist / Vulnerable" table and keywords on "Powers."

Added a definition file tag, "special-icon-effect-handling," which is demonstrated in the "4e" definition. This tag gives special meaning to Icon Effects with a duration of one round. Essentially, when the Icon Effect is created during combat, the ID of the Icon whose initiative it is will be recorded with the Icon Effect. When this Icon's initiative comes around in the sequence again, the Effect will be expired. This makes it easier to have Effects that last for a single round, no matter how many Icons are added to or removed from the Initiative sequence.

A new Master feature has been added. If you're a Player and not a GM, then you should look away now. Seriously, you probably already think that the GM has too much power and this feature will only give you nightmares if you stare at it too long. You have been warned.

Since the beginning of Werks, GMs have had the ability to fake the rolls they make. They have not, however, had any way of faking rolls made by players...until now. As the GM, you have access to a popup menu item called "Set pending fake roll" in the "Roll Dice" sub-menu of an Icon. If you select this, you will be presented with a dialog that allows you to specify the desired result for that Icon's next roll. You don't have to know which roll and you don't even have to know who will be making the roll -- the next time a dice expression is evaluated for the Icon, the result you supplied will be used instead of the dice portion of that expression. This, obviously, imbues you with considerable power -- and considerable risk for botching things. Since you generally don't know what roll is really going to be made, care must be taken with the results you supply (or else your Players will quickly become wise to your game). Used judiciously, this feature should allow you to subtly nudge an encounter in the direction of your choosing. Good luck.


Added two new items (and supporting scripting) to the "Pick" drop-down in the "4e" definition for "escape" rolls.

Fixes
Using the "filter" in the Icon Effects dialog could result in the drop-down list of Icon selections ceasing to function.

Rotated Icons caused a rendering error where they would continually shrink.

Rolls with a visual effect and a sound would play the sound twice: at the beginning of the roll and again at the end.

Discarding damage left the hit point adjustment pane in the DiceDialog.

An extra chat message was being issued when Players entered a chat message that was not associated with an Icon.

Making changes to initiative when "group attacks" is not turned on should behave a little more reliably.

Loading characters into a campaign from another campaign did not properly create the Icons' party (or parties).

An invalid "grid stroke" value would prevent the "Map Options" dialog from opening.

Modifications
The "4e" definition has gained an entry in the "Pick" drop-down for "Bull Rush." Also, a number of less-than-frequently-used entries in this list have been commented out. If you find yourself missing them, feel free to return them to active duty.

The "4e" definition has been given a new column in the "Powers" table -- Keywords. Also, a "Resist / Vulnerable" table has been added. When used in conjunction, a script will attempt to determine if a target requires special handling and will adjust the damage accordingly.

The "mini" combat tracker has always supported the notion of allowing you to click on an Icon's name in the display and having the program center on that Icon. This is not, however, always the desired result. Now, when you click a single time, if the Icon is already in the view area that you are looking at it will be flashed, but not centered on. If the Icon is not in view, then it will be centered on. Double-clicking on the Icon's name will provide the same behavior as before -- whether the Icon is in view or not, it will be centered on.

In the "4e" definition, "Power" keywords were not being issued in the chat message for martial damage.

You can use the keyboard shortcut Alt-N on the Campaign tree to create a new Folder.

The "4e" defition has received a number of small tweaks to better bring it into line with the rules.

Data displayed on the character sheet will no longer be preceded with a "+" if the number is positive. The "+" will still be added to expressions as expected, but, in an effort to clean up the display a bit, it is no longer displayed.

Version 3.3.0

Highlights in this Version
Three new tutorial videos

Many enhancements to the "4e" definition

XP awards revamped

Many fixes

Additions / New Features
A new tag is now recognized in a description (used in the description file): "dm-only." By adding this to a description, the description will be available only to the Master.

You can now load PC Icons from a previously saved campaign into your current campaign by choosing "File->Load Campaign Characters." This allows you to quickly and easily "migrate" PCs from one campaign to another without having to export/import them.

A new theme element, "LevelUpImage" has been added. This ties into the new animation that occurs when an Icon is awarded enough experience to go up a level. This, of course, depends on the data for such a determination being present on the Icon's character sheet.

A new Preferences item, "Automatically award XP," has been added. If selected (not the default), the program will automatically award, or divide amongst party members, the XP value of a slain NPC. Setting this option overrides the "Ask for XP award" setting. Note that you must have your campaign data properly configured, in coordination with your definition, to allow this setting have have any practical meaning.

A new tag has been added to the "base-rules" section of the definition file: "level-up-sound." This specifies the default sound to play when a "level up" situation is detected. Refer to the "3rd Edition" or "4e" definitions for examples of how this tag is used.

Added a scripting method, "setRollModified," to allow you to inform the program whether the roll has been modified. See the scripting documentation for more information.

A new Preferences item has been added: "Allow drag-and-drop on Icons." If set (not the default), then dropping an Icon onto another Icon using drag-and-drop will place the dropped icon into the inventory of the other Icon. If not set, the dropped Icon will, instead, be deposited on the Map. Not having this option set should make it much more difficult to accidentally place Icons into the inventory of other Icons.

Added a default sound for awarding experience.

When dragging a rectangular region on a Map, the width and height of the rectangle are now displayed in a floating label, just as distances are. Additionally, holding down the "shift" key while dragging the mouse will constrain the rectangle to be a square.

Added a pop-up menu item for Maps called "Select all Icons." This will select all the PC and NPC Icons on the currently loaded map, making it that much easier for the Master to, for example, select all the Icons and roll initiative for them without having to zoom out and select them all manually.

Added Preferences item, "Square threatened area." If selected (not the default), threatened areas will be drawn using a square instead of a circle.

Two new Icon effects have been added: "Glow (square)" and "Square" (as opposed to "Ring"). These behave exactly as their circular counterparts, except that they render squares instead of circles.

Auto-targeting has been added. If enabled in Preferences (not the default), dragging an Icon into or out of "threatened range" of another Icon will cause the program to add/remove that Icon as a target of the dragged Icon. This feature has received little testing, so use it with caution (you can always turn it off in Preferences and return to normal operation).

Added definition file clause "npc-dead-point" to allow you to set up settings for NPCs that are different from those for PCs. In the past, the program simply silently treated NPCs differently, but not you can explicitly define when an NPC is considered to be "dead." If this clause is not present in your definition, note that the settings for PCs will be used and, effectively, there will no longer be special handling of NPCs.

Added a few new scripting methods and a new "4e" script, "gather_equipment.kws" to illustrate them. Also made "one shot" script accessible from a Map's popup menu (instead of having to go into the Script Manager to run them).

Added a Preferences option, "Chat on Map" that, when selected (the default) places chat messages on the Map. This has been the default behavior since the beginning, but by making it optional, you now have the choice of not seeing chat messages on the Map, but still taking advantage of "Show rolls next to Icons," which now will display all chat messages associated with an Icon next to that Icon. You can also use the "Chat removal delay" option to govern how long these messages appear next to the Icon, without having to have chat messages on the Map if you don't want them there.

A Preferences item has been added, "Chat on top," that, when selected (not the default) will place the Chat history window on top of all other program windows. Note that this item only takes effect when the Chat history window is created, so if you change it with Chat history open, close the window and re-open it.

Player status indicators have been added to the Player nodes in the campaign tree. If a Player has sent a message to the Master less than five minutes ago (a message is just about anything -- chat, rolling dice, moving an Icon, etc.), then the Player's status is green. If no messages have been received in more than five minutes, then the Player's status changes to yellow. After eight minutes, the Player's status goes red. This gives everyone an easy indicator of just who is (and is not) participating in the game. Also, the status indicator badges can be themed, if you like.

Added a "hidden" flag to the definition file for Pages, Sections, Tables, Notes and Fields. Specifying this flag for any of these types will cause the item to never appear on a character sheet. Why on earth would you want to do that? Well, maybe you want to set up a table that doesn't take up space on a character sheet, but contains default information that you would like referenced by a set of scripts. This flag allows you to do just that.

Added scripts and a button to the "4e" definition (found in the "Pick" drop-down list) to handle rolls for using the "bluff" check to establish "combat advantage" over an opponent.

A definition tag, "filter" has been added to the "expression-tab" clause of the definition file (see the "4e" definition for an example). Using this tag will add a filter/search field to the expression tab it appears in, allowing the user to hide dice expressions that do not match a partial title that they type. This works similarly to typing part of an expression's name and having the Dice Panel scroll to the first matching expression, except with the stronger visual impact of hiding expressions that don't match (and being able to see what you've typed).

Added theme elements for buttons to give you greater control over how some buttons are rendered (depending on the look-and-feel of your operating system).

A new scripting method, "createDrawnItem" has been added that allows scripts to create basic DrawnItems (either circular or square DrawnItems). Please refer to the "4e" "attack_post_ex.kws" script for an example of how this new method might be used.

A Preferences item, "Show exact measurement," has been added. If enabled (the default), then the program will continue to behave as it always has: distances will be displayed as feet/meters. If disabled, along with "Show measure squares" being enabled, then only measure squares will be displayed. For people/systems that only want to deal with distances in terms of grid units, then this option makes things that much easier for them.

Holding down the "shift" key when pressing the "Import/Load" button on a character sheet now allows you to load special character sheet "fragments." What this really means is that instead of replacing all the character sheet data with the data loaded, holding down the "shift" key will cause the contents of the new file to be added to the existing character sheet. The intention here is that you might want to create mini-sheets for things like magic items or the like (with entries for "powers" and "armor" and such), which can then be loaded into an existing character's sheet to quickly make the item available.

A new Icon "state" has been added - "blurry." When this state is set, an Icon's image will be rendered with a slight blur. You can set this state through an Icon Effect or directly by right-clicking on the Icon and accessing the "Options" item from the popup menu.

Fixes
Changing a Map's scale interactively (using Modify->Set scale from the popup menu) did not properly adjust the Map's grid size to reflect the new scale.

Specifying a parse-script in a die definition would override a "parse-script-ex" defined in the expression (which it should not have done).

"Square" calculation did not work correctly in conjunction with SI units.

Dragging an Icon from a well in the campaign tree would incorrectly re-order the Icon nodes.

Using the "absorb damage" temporary modifier in the "3rd Edition" and "4e" definitions could lead to the character sheet data for that field becoming confused. While the current solution isn't perfect, it should be, at least, a little more predictable.

Encounter Icons were not being saved correctly.

The "recent file list" wasn't being updated correctly under certain circumstances on Windows.

Corrections to the definition file documentation.

The stacking order of Drawn Items was being inverted on campaign load.

Using the "old-style" built-in theme resulted in some color mismatches.

The Master was not properly handling Icons transitioning between "hidden" states during combat.

Adding a very long chat message could result in the chat history dialog (if open) pausing unnecessarily.

Using a field's value to define the number of dice to use in the expression failed to take into account modifiers to the field.

Exporting a Campaign did not save targeting information.

Exporting a campaign with a greeting image/sound did not de-reference the file names correctly. Also, Players would pause during the connection process until they dismissed the greeting (now the greeting is displayed in a non-modal state).

Duplicating a newly created Icon Effect resulted in the duplicate's "duration" and "remaining" being reset to "1."

The Icon Browser had a few lingering problems: using the "Add" button and then using drag-and-drop to re-located the newly created Icon did not work unless the program was restarted. Also, pressing "Add" more than once for the same Icon would not result in the Icon being added multiple times.

The "H" keyboard shortcut was enabled when an Icon was not showing in the campaign tree -- it should not have been.

Modifications
Minor things -- tweaked the "square" display and calculation and added a temporary modifier for "threatened area" (which was missing from the "4e" definition).

The "Select Target" dialog now has a toggle button allowing you to instruct the program that multiple rolls should be made if multiple targets are selected. By default, with multiple targets selected, only a single roll is made, then applied to each target. By selecting this check box, you are telling the program to roll for each target individually (which some game systems require for certain roll types).

MonsterBuilder - added a field in the "powers" dialog for entering action conditions and tied it into the character sheet generation.

The "4e" definition has been modified slightly. The "armor" table has lost its "magic" column (which was really an artifact of "3rd Edition") and gained columns for entering bonuses to "fort," "ref" and "will." The "mod_script.kws" script behind this table has also been adjusted to take advantage of the new columns.

MonsterBuilder - a monster's "size" wasn't being used to set the Icon's size.

The "Ask for XP award" option has been re-worked slightly. In addition to getting an updated user interface, it now can take a "party" into account and displays an option to divide the award between all the members of a party. Additionally, you now have the option of applying the award immediately, or simply adding it in the "pending" state (which was your only option previously).

Further enhancements to the "4e" definition. This time we've added a column to the "Armor" table for entering the "check penalty" associated with wearing the armor and a column to the "skills" table for specifying the skill's related ability. Tying these together is a new script, "skill_check.kws" that looks for worn armor and applies the penalties, based on the ability associated with the skill.

Still further changes to the "4e" definition. Now we have an "Implement" table that ties into the "Powers" table (and scripts), allowing you to grant bonuses to power attacks/damage through the use of an "implement."

The "4e" definition's "armor" table now has a "speed penalty" column that ties into the "speed" field to automatically keep speed adjusted based on what armor is worn.

MonsterBuilder - you can now (provisionally) import a previously saved KWI file into MonsterBuilder by dragging and dropping the file on the "Icon Image" area. MonsterBuilder will do its best to un-parse the Icon file, but no guarantees are made to the accuracy of this parsing (i.e., don't be surprised that it fails under certain circumstances, like trying to import an Icon that was not created by MonsterBuilder).

The "4e" definition has been modified further to change the way that "powers" are available. Previously, a combination of "number remaining" and the "available" check-box controlled whether the "power's" roll was available. This worked, but for "powers" that should become unavailable after use, relied on the user unchecking the "available" box before the roll became unavailable. Now the logic has been changed to mark rolls unavailable more automatically. The only real problem with this solution is for "powers" that are "reliable" -- they will be marked unavailable and require the user to change their roll quantity manually as necessary. Fortunately there are far fewer of these types of "powers," so the issue should not come up overly often (and far less often than players forgetting to mark "powers" as unavailable).

Previously, you were limited to integers for the "cost" of expressions. Now you can specify a decimal number for the "cost." Why would you want to do that? Well, this is handy (see the "4e" definition's "powers" table for an example) when something allows multiple attacks and you don't want it to become unavailable after the first evaluation. So, for something that allows two attacks, set the cost to "0.5" and each evaluation will deduct "0.5" from the remaining, allowing you to roll two attacks before the expression becomes unavailable.

After starting to drag out a rectangular region on a Map, holding the control/Command key will constrain the rectangle to whole units (either feet or meters, depending on the measurement system used). Additionally, if you have the Preferences item "Show measure squares" turned on, the rectangle will be further constrained to whole grid units.

Players making changes to a character sheet's Notes could result in a very, very, long chat message being issued (as the entire Note would be contained in the message). Now, only the fact that the Notes were changed is reported.

Changing an Icon's initiative during combat now issues a chat message showing the old initiative and the new initiative (to better track down and recover from those instances where someone unintentionally re-rolls initiative during combat.

If you un-dock the DicePanels, their size and location will be remembered between program sessions.

More squares everywhere. You can now "center a square" effect (in addition to "circular" effects). Also, if you hold down "shift" when pressing "r" (reveal) or "c" (conceal) you will reveal/conceal a square region instead of a circular one.

The "4e" "power" script has been modified to take the "armor" table into account when looking for "implements" (since armor can also bestow bonuses and powers).

If you have the Preferences item that places roll messages next to the Icons that they are associated with enabled, you will also see chat messages issued from the Icon appear next to the Icon. This, in some ways, approximates a "chat balloon," making it a little more apparent when an Icon says something.

The "4e" script, "reset_powers.kws" has been modified to also reset "action points" when "daily" powers are being reset.

A little more visual flair has been added: messages that appear next to an Icon now scale up into view instead of simply popping into existence.

Previously, if you created a Folder in the NPC Well of the Campaign Tree, you could not use drag-and-drop to copy the NPCs contained in the Folder to the current Map -- now you can. This makes it easy to set up "semi-random" encounter "blocks" of NPCs and simply drag them onto the Map when they are needed.

Map rendering while dragging an Icon with "threatened areas" turned on has been improved four-fold.

Added checking for "fighter weapon talent" to the "4e" scripts. While not perfect, if you have something like "Fighter Weapon Talent: +1 with one-handed weapons" in the "Racial / Class Traits" table, the scripts should be able to pick it up correctly.

More "4e" changes: Added a "Special" column to the "Armor" table and now include the "Weapons" table when searching for "power" implements.

In an effort to avoid issues of lost character sheet updates, we are now checking the editing state of character sheets whenever you change focus to something else (either by hiding the character sheet or clicking in another window when the character sheet is not docked). When this happens, your edits to the sheet will be committed, just as if you had clicked on the "Commit" button. It has never been a good idea to leave a character sheet locked for editing, but this is especially true when playing systems such as "4e," which makes extensive and unpredictable changes to the character sheet.

Version 3.2.4

Highlights in this Version
None

Additions / New Features
None

Fixes
Image Icons could not be displayed correctly by Players (this time, fixed for sure...we hope).

Modifications
None

Version 3.2.3

Highlights in this Version
None

Additions / New Features
Added definition tags "heal-sound" and "harm-sound" to the "base-rules" section of the definition file to specify the default sounds to play for hit point adjustments.

A default "heal" sound has, apparently, been missing from the distribution for a couple of years now (not sure how *that* happened), so it has been added back in.

Fixes
MonsterBuilder - the "add" button in the "Powers" dialog had become broken.

Modifications
Made the "scale" fields of the Map options dialog a little wider to better display values with more than four digits.

Enabled "static label script" for all button types in Dice Dialogs. As an example, see the "4e" definition, which uses this for the "second wind" script to now indicate whether the "second wind" is available for use.

You could not previously use drag-and-drop in the campaign tree to move a Map from an Adventure back to the "Maps" well -- now you can.

The "Award party experience" process has been adjusted slightly. To begin with, the dialog has been re-worked to make it more accessible. Secondly, the dialog gives you the option of awarding the entire amount to each member of the party, or dividing the amount equally between party members. Finally, once the dialog is accepted, the experience award will be immediately applied to the party members (as opposed to being added as a "pending" award).

Version 3.2.2

Highlights in this Version
Fixes and minor enhancements.

Additions / New Features
Tokenizer - added system properties "kLoOge.watchFolder" and "kLoOge.watchPattern." If specified, the stand-alone version of kLoOge.Tokenizer will monitor the specified folder for files with names that start with the pattern. If it finds any added to the folder, it will load the file as the background image and delete the original. This is handy for people using, for example, a screen capture utility to grab images for use as Icon images while keeping the monitored folder tidy.

Fixes
Differing intersecting threatened areas were not being computed correctly.

Dragging multiple Icons with "snap to grid" turned on could result in some of the Icons being improperly positioned.

Using the mouse to reorder the rows in the "Edit Icon Effects" dialog caused a number of program errors.

Duplicating an "Icon Effect" could result in the original's modifiers being replaced by the modifiers of the duplicate.

Image Icons were not being loaded properly by Players (resulting in a crash when they were accessed).

The "disconnect player" dialog was displaying an incorrect message its dialog.

Modifications
Changed the way that the "Edit Icon Effects" dialog is built to make it more efficient. You can also now hide the help text to save space.

MonsterBuilder - further refinement to the "auto-complete" behavior.

MonsterBuilder - pressing "enter" in the "Power info" field will now add the power (saving having to press TAB three more times).

Changes to the "4e" definition and scripts to better support "prone" targets and temporary modifiers to attack/damage rolls.

Version 3.2.1

Highlights in this Version
None

Additions / New Features
None

Fixes
Sorting the list of Icon Effect modifiers was improperly implemented and has been removed.

Modifications
MonsterBuilder - Made some changes to the what the "autocomplete" works.

Version 3.2.0

Highlights in this Version
A "4e" demo campaign has been added.

Licensed Masters can now load/save the demo campaigns.

Improvements to Master / Player communication.

Added kLoOge.MonsterBuilder - an application for creating "4e" monsters.

Chat messages now fully support HTML.

Additions / New Features
A "4e" demo campaign has been added. Additionally, the "3rd Edition" demo has been updated slightly.

Previously, once you bought a license you could no longer view/load the demo campaign. Now, as a Master, you can load any of the demo campaigns at any time and save/modify them to your heart's content.

Two new tags have been added to the definition file: "armed-sound" and "disarmed-sound." If set, the program will play the appropriate sound when a weapon is armed/disarmed. Refer to the "3rd Edition" or "4th Edition" definitions for example usages.

Added five more Tokenizer overlays.

A new definition tag, "static-label-script-ex," has been added, along with its related support files. Essentially, this tag allows you to specify a script to generate the label for an expression. See the "4th Edition" definition for an example of how this tag and script might be used.

Added a scripting method, "getWorkingFolder()" so scripts can retrieve, in a platform-independent fashion, where the program looks for supplemental information.

Created a new program called "MonsterBuilder" to (maybe) help entering/creating monsters. See the tutorial video for more information.

Fixes
Launching a script from the Script Manager might cause the script to be unable to retrieve character sheet data.

Not all methods of setting an Icon's size would animate the size change.

Specifying an empty "default-value" in the definition caused the program to incorrectly handle multi-roll increments.

Scripts that adjusted hit points could cause the Master to miss the adjustment if they also changed other things on the character sheet.

Icon Effects of a boolean type ("Incapacitated," "Held," for example) were not being written to the campaign file correctly, leading to them not being loaded correctly.

You could not rename a campaign in the campaign tree.

Modifications
Removed the hit point difference display when "hps-count-up" is specified (since it didn't make much sense).

Removed the "critical-miss" setting from the "4e" definition (since it didn't apply).

The "4e" definition has been adjusted with some new columns. Expect that this definition will be in flux for a number of months, since it's so new.

While the program has always seemed to support HTML chat text, it never really did. Now we really do use HTML in chat so the world opens up in all sorts of interesting ways for chat messages.

Mouse-drag-reordering of tables in the program has been instituted. In most instances, this augments the existing reordering behavior. However, for "list-panel" tables, the "up" and "down" buttons have been removed to give more space to the text entry field.

In addition to using any HTML tag you like in chat text, you can also use them in character sheet table data. Be advised, however, that this ability is intended to be used only for visual impact when looking at a character sheet or in roll titles in Dice Dialogs -- interspersing HTML tags within an expression (between the curly braces) will cause the expression to fail during evaluation.

Holding the shift key while using the Icon Quick Stat window to remove a target will remove all targets for the Icon.

Removed the "reset_hs.kws" script ("reset healing surges") and bundled the functionality into the "reset_powers.kws" script (where it should have been in the first place).

Version 3.1.11

Highlights in this Version
Important fixes.

Additions / New Features
None

Fixes
Setting "icon drag delay" to zero actually left the measurment labels on the screen forever.

Adjusting hit point fields at maximum when "hps count up" is specified ignored the adjustments.

The "dangling operator" fix ended up being implemented incorrectly. This fix should correct both issues.

Modifications
None

Version 3.1.10

Highlights in this Version
Fixes and more fixes.

Additions / New Features
None

Fixes
Using a "data list" with a table containing a boolean field would cause the program to fail.

"Following" did not work correctly.

"Emote" chat text color was not honored on the Master.

Maybe fixed out-of-range values in the "adjust hit points" dialogs/panels.

The last row of a "list-pair" with an expression was being dropped.

Dangling operators in expressions were not being handled as well as they could be.

Modifications
The "set Icon rotation" mini-dialog no longer closes as soon as you let go of the slider. Instead, you can press "ESC" or use the "x-out" button to dismiss the dialog.

Version 3.1.9

Highlights in this Version
Still more fixes.

Additions / New Features
None

Fixes
The "plain chat history" option was not being loaded from the config file correctly.

The "modifier-negative" definition tag did not interact properly in combination with the "treat-data-as-modifiers" tag.

Specifying "DM notes" caused a campaign to fail to load.

Saving chat history with a campaign could result in Players not receiving the full history when they connected.

Modifications
None

Version 3.1.8

Highlights in this Version
More little fixes.

Additions / New Features
Added a Preferences option, "Plain chat history," to render chat history text plainly. If selected (not the default), the border and highlights normally rendered in chat history to match Map chat messages will be omitted.

Fixes
None

Modifications
Made the "name" tag of the "expression-tab" clause required so it can be used to identify which tab is being referred to when "edit source table(s)" is used. When specifying a name for an "expression-tab," be sure that each tab has a unique name, or else you could still end up confusing the program.

Version 3.1.7

Highlights in this Version
Fix for editing source tables.

Additions / New Features
None

Fixes
The previous "fix" for editing source tables actually broke the functionality. We've reverted back to the previous behavior.

Modifications
None

Version 3.1.6

Highlights in this Version
Fixes.

Additions / New Features
None

Fixes
Editing the source table for an "expression-tab" could lead to editing the incorrect table. We're not 100% sure that this fix actually addresses the issue, so please let us know if it doesn't!

Chat icons/avatars were not being properly decoded from chat history when Players connected (resulting in the images not being displayed).

Editing combat tracker "events" would incorrectly instruct the combat tracker for Players to reposition the current round.

Modifications
Using the mouse wheel to scroll chat history will now activate the "pause" button when you scroll back and deactivate the "pause" button when you scroll back to the bottom.

Version 3.1.5

Highlights in this Version
Map grid opacity.

More fixes.

Additions / New Features
You can now specify an opacity for Map grids. This allows you to use "snap to grid" but, still, not actually see the grid (if you set the opacity to zero). Also, you make grids even more subtle by decreasing their opacity.

Fixes
Avatars were not being sent properly to Players.

If you specified a grid offset (either horizontal or vertical) and had "snap Icons to grid" turned on, the Icons would not actually snap to the grid.

"Chat as" did not function properly.

A number of errors existed in the "4e" scripts.

The "away from keyboard" message was not being issued correctly.

Editing an NPC Icon with a "special note" would remove the note.

Under very rare circumstances, exporting Icons could lead to incorrect campaign saving.

Modifications
Removed the "read-only" qualifier to the armor class fields.

Made a slight rearrangement to the "defenses" table in the "4e" definition to better account for undefined defenses.

Added the "target defense" to a roll panel's title.

Improvements to chat panel refresh and Icon drag measurement refresh.

Version 3.1.4

Highlights in this Version
More fixes.

Additions / New Features
A scripting method, "getScriptFolder," has been added that allows scripts to retrieve the location where the program loads scripts from.

Fixes
An error that did not really affect operation could occur while reading the list of definition files on start-up.

Adding a game from a Player's "Open Connection" dialog caused an error.

If an Icon did not have any data contained in its hit point sources, the "Set" button on the Dice Panel should have been removed, but, instead, was left to cause an error if pressed.

The "max roll" feature stopped at the first die, not the first dice expression, as it should have.

Certain changes on a character sheet with the Icon's Dice Panel visible could cause the Dice Panel to become "disconnected," leaving invalid copies behind on the Map.

The "power.kws" script was not parsing weapon damage correctly.

There were a number of problems with "Folders" in campaigns. Drag-and-drop to them and loading a campaign with Maps contained in Folders caused the program to lock in a busy-loop.

Applying damage in a multiple hit point definition did not actually apply the damage.

The "kw.sh" program launch script for Linux wasn't setting a property that it needed to.

Modifications
Since the "auto-relaunch-on-update" feature seems to be flakey on Windows Vista, it has been removed for that operating system.

We are now taking advantage of a feature that has long been in the scripting library that we use to break common functionality out of scripts and place them in a single location for easy reference. Check out the "4e" script folder and scripts for examples of how this is being done.

Version 3.1.3

Highlights in this Version
None

Additions / New Features
None

Fixes
The "StatTracker" plugin had some image issues.

Various issues involving deadlocks and invalid pointers.

The chat history dialog's "Pick" drop-down list was incorrectly calling various output methods.

Password protected Icons where bing overly aggressive in asking for their passwords.

Still problems with Linux installs.

The chat history dialog was not refreshing properly.

Switching between undocked and docked chat history as a Player resulted in the chat history dialog being left open.

Modifications
None

Version 3.1.2

Highlights in this Version
More fixes.

Additions / New Features
Added the ability to send debugging output without always seeing the confirmation dialog.

Fixes
There remained a problem with proper sound playing when "hps-count-up."

Older versions of Java on OS X appear to continue having obfuscation issues when finding the "Preferences" and "Quit" items. Hopefully, this change will fix things.

Switching campaign definitions with Players connected did not work correctly.

Definitions with multiple hit point sources would reset dice panels after each adjustment, which discarded all the adjustments other than the one associated with the "Set" button pressed. The solution is to have a single "Set" button that will apply all the adjustments in one pass.

Modifications
None

Version 3.1.1

Highlights in this Version
Fixes galore!

Note for Linux users: Do NOT install from an update. Since the location of some libraries has changed, please download the full version and do a complete re-install.

Additions / New Features
None

Fixes
Lots of things that showed up on the first day of 3.1.0 being released. Most are attributable to obfuscation, but a few are other minor things.

Starting combat resulted in an error for Players.

The "kw.sh" script and install locations for libraries wasn't correct for Linux.

The sound played for heal/harm was reversed when "hps-count-up" was specified in the definition.

Reveal/conceal of non-rectangular and non-circular regions were not being conveyed to Players.

Modifications
Added the expression bonuses to the popup menu of roll buttons when multiple rolls are defined.

Version 3.1.0

Important Note

3.1.0 can not be installed into the same location where a previous version of kLoOge.Werks is installed. Instead, install it in a completely different location. This allows you to keep your previous version intact in case you encounter problems with 3.1.0. The installer offers an option of migrating your settings to 3.1.0, so please use it!

Highlights in this Version
Nearly two hours of new tutorial videos.

Completely new Dice Panels.

Maps can now have definable borders.

Icon Effects have been vastly improved.

Easier Preferences management.

Bonjour "zero config" networking for local games.

Improved measurement.

Faster dice/expression parser.

Improved "dead" Icon rendering.

Complete definition file documentation.

Many more scripting methods for accessing/modifying much more data.

Dozens of new themeable elements have been added.

Initiative handling has been greatly improved.

Targeting and Icon Quick Stat improvements.

Better grids with adjustable offsets.

Improved campaign backup procedure that should eliminate corrupted campaign files.

New "wizard" to make entering licenses easier.

On Windows, the program is now launched from an EXE (instead of using a BAT or JAR).

More than a dozen new kLoOge.Tokenizer overlays have been added.

Avatars for the Master and Players.

Polygonal regions can now be defined.

Reference "4th Edition" definition and scripts.

Additions / New Features
Added theme elements for various things. Refer to the bottom of the "demo/theme.xml" file for the newest tags.

A new Preferences item, "Auto-open dice panel" (defaults to being selected), allows you to control whether an Icon's Dice Panel opens when its first target is added.

Added theme element for multi-roll indication color.

Map borders allow you to specify a percentage of the Map's physical dimensions as a border or "gutter" around the edge of the Map. This border acts as an extension of the Map's image, allowing you to place Icons there and otherwise treat it as if the Map's image extends beyond its physical size.

Added an image overlay for Icons that have an Effect applied to them. This makes it easy to see, at a glance, that an Icon is effected by something.

A new Preferences item, "Auto-hide Map items," has been added. If enabled (the default), then when you begin dragging an Icon, all overlay items on the Map (chat text, Dice Panels, the mini-battlebar, etc.) will become hidden. Once you release the Icon, the overlay items will return. This gives you a quick and thought-free way of clearing the map when you are moving Icons around.

A new option has been added for players: "Purge cache." This feature is located under the program's "File" menu and allows players (when not connected to a Master) to delete a game session's cached files from within the program. This ability is handy in certain circumstances when the player's cache becomes invalid.

Added a Preferences option to allow you to invert the mouse wheel Map zooming behavior. Since expected mouse wheel behavior is quite subjective, you can now decide for yourself how you'd like it to behave.

Added a filter control to the "general" options tab of Preferences. You can use this filter to type in part of an option's name (or part of an option's help text) and if an option does not contain the text you enter, it will be hidden. This makes finding a particular option in the ever-growing list a little bit easier.

Added a theme element, "PlayerOptionColor" to control what color is used to display player-related options in Preferences.

Added "Bonjour" (zero config) networking support. If enabled, the program will use Bonjour to establish connections and advertise games on your local area network. This frees you from needing to define primary, secondary and multicast port numbers.

In order to be used under Windows, you must first install Bonjour, which is available from Apple. On Mac OS X, you do not have to do anything, since all the necessary software is already installed.

Please see the tutorial video availble on our website for more information.

Semi-experimental. Added a Preferences item to govern Icon drag throttling. The idea here is that some machines (and some Java implementations on various operating systems) are slower than others and that the user of said machines should be able to decide for themselves between data accuracy and perceived performance. So, if you have a very fast machine with a good video card, you may want to experiment with setting this value lower than the default of fifty milliseconds. If, on the other hand, you suffer from having a slower machine and/or graphics card (or a poor Java implementation), you may want to boost this value higher. The result of changing this value is that the program will ignore Icon drag messages if too many of them come in during the setting's time interval.

Added Preference item, "Allow grouped attacks," to allow you to override the program's default behavior to not roll multiple identical attack/damage rolls. If you decide to allow this to happen, be aware that, from time to time, you may see additional, unexpected, rolls, depending on which Icons are selected when the roll is made.

A new Icon Effect modifier has been added: "Current Image." This Effect modifier allows you to change an Icon's current image via an Effect. There are, however, a few caveats. First, since this modifier does not exist on the character sheet, there is no way for the program to know which image was current for the Icon when the Effect took effect. As a result, when the Effect expires, the Icon will have its current image reset to the first image. Secondly, the first image is image number zero, not image number one. This is a programming thing, that arrays start at index zero and not one, so keep it in mind. Third, if you specify an index that is invalid, you will not see an error or other misbehavior -- the invalid input will simply be ignored.

Added a new scripting method, "zoomTo" that takes a higher precision Rectangle2D for computing the zoom area. The original "zoomTo" is still available, which takes a Rectangle instead of a Rectangle2D.

An option for Icons has been added: "Remove when dead." If this option is selected (the default), the Icon will be removed from initiative and hidden on the Map when its health reaches the point of death. If not selected, the Icon will remain on the Map and in initiative until the GM manually removes it.

Field data can now be identified as containing a double precision value ("double-value"). This is primarily used in the "Temporary Modifier Table" to indicate to the program that a double precision value is acceptable. The default "3rd Edition" definition has been modified to specify this value for the "Size" temporary modifier. Additionally, you can now enter "+value" in the modifier fields if you like (the "+" will be dropped, but it no longer is treated as an invalid character).

Previously, when an Icon "died," it would disappear off the Map after a reasonable number of seconds (unless, of course, you have "Auto-hide Icons" turned off in Preferences). While handy for keeping down the amount of Map clutter during a large battle, this really gives a false indication of the "battle conditions." Now, when an Icon "dies" and disappears, it will leave a barely visible "impression" of its image on the Map. This "impression" can't be edited or interacted with, but allows you to see just where the bodies are piling up.

A new tag has been added to the definition rules: "local-data-files." If declared in the "base-rules" section, then the master will not send Table data files to players. By setting this flag you are telling the program that players already have their own copy of the Table data files, which they should load instead of receiving live copies from the master. If you do not expect your players to already have their own Table data files, then do not set this flag in your definition! On the other hand, if you make extensive use of Table data files, you will probably see a dramatic improvement to client connection times if the master does not need to send over the Table data. For an example of what this tag looks like, please refer to the "3rd Edition" definition.

You can now right-click on a Drawn Item and, if the Map has obscurement turned on, reveal or conceal the area contained by the Drawn Item. This opens a number of oportunities to reveal/conceal shapes that would otherwise be difficult (or impossible) to accomplish.

Made Icon drop shadows semi-official. You can now toggle them on or off via the "Options->Drop shadow" menu item, or through the "Edit Icon" dialog. Note that "locked" Icons do not get a drop shadow and things like angle and spread are not available (yet...). Also note that pressing shift+1 or shift+2 when the Map has focus will change the distance of the drop shadows for all Icons on that Map (shift+1 decreases and shift+2 increases the distance).

You can now specify "parse-script" and "post-script" tags in a "die" clause of a definition file. This allows you to create "default" scripts to be executed when an expression using the die is rolled. You can still define "parse-" and "post-scripts" in an expression, which will override any default scripts defined in the die.

A new tag has been added to the Expression clause of the definition file: "desc-label." This tag should be used to remove ambiguity in an Expression's name so that a description can be located. Please refer to the "3rdEdition.xml" definition for an example of how this tag can be used.

The "Icon Quick Stat" display window now contains a section that contains all the targets that the select Icon has. Aside from displaying this potentially useful information, you can also use the display to remove targets and to select the "current" target. When a "current" target is selected, the "Select Target" dialog will not open when multiple targets are selected, instead deferring to your selection (which is retained between rolls, regardless of which Icons are selected at the time of the roll).

There are two new optional tags for the definition file: quick-stat-size-x and quick-stat-size-y. These must both be specified to be recognized and reside in the base-rules block (see the "3rd Edition" definition for an example). These tags allow you to specify to the program the preferred size of the Icon Quick Stat window. This allows you to, for example, force the window to be narrower or shorter than it would like to be, adding a scrollbar to reveal the otherwise hidden contents. The rationale behind this is that some information in the Quick Stat window, while important, is less important than other information. By giving the program a hinted size to use, you can keep less important information hidden by the scroll area, thereby reducing the overall size of the Quick Stat window.

Added the ability to edit the tables that make up a Dice Dialog expression tab directly from the Dice Dialog. If you right-click on one of the tab headings of a Dice Dialog (both old and new), you will be presented with a pop-up menu that, if selected, will open the tables that make up the expression tab in a dialog. From this dialog you can make whatever changes to the tables that you like -- change fields, add rows, delete rows, etc. When you finish, click on "OK" and your changes will be saved to the character sheet (if you click "Cancel," your edits will be lost).

A new table button has been added that, when clicked, will commit the current sorting of the table. This allows you to visually sort the table (as you always could), but only commit your sorting changes if you choose to do so (by clicking the button). The image for this new button is, of course, themeable (StampIcon).

You can now right-click on a row of a character sheet table and select "Duplicate" from the popup menu to make a copy of the row.

When players add or remove Icons from their Icon Toolbar, their changes will be recorded in their configuration file. This allows their preference for which Icons appear in the Toolbar to be preserved between gaming sessions. Previously, players would lose their included/excluded Icons as soon as they disconnected from the master.

A new element has been added to the "expression-tab" clause of the definition file: "combo." By using this element (see the "3rd Edition" definition for an example) you can collect a number of "button" elements into a combo-box (or, "drop down list" as it is sometimes called) to conserve space on the Dice Panel. Only "buttons" can be added to a "combo" at this time.

Grids now have a few more options to help you line them up with Map images that have existing grid lines. These options are: "Horizontal offset," "Vertical offset" and "Stroke compensation." Horizontal and vertical offsets are specified as a portion of the grid size. For example, if you have a grid size of five feet, you can specify an offset anywhere between negative five feet and positive five feet. "Stroke compensation" is specified as a fraction of the stroke size used to render the grid. This setting allows you to tweak the way the grid is rendered to compensate for the rendering itself. By judicious use of grid size, horizontal offset, vertical offset, grid stroke and stroke compensation, you should be able to match the grid to a much larger number of Map images than previously possible. This is not to say, however, that we encourage you to use Map images with pre-drawn grid lines -- it's best and easier for you if you can use images without such lines.

When converting Icons from one type to another, you now have the option of not only changing their type, but their disposition. For example, when starting with a hostile NPC you now have the option of converting it to a PC or a friendly NPC. Converting from hostile to friendly (or vice-versa) does not really change the Icon's type, but makes it easy to flip an Icon's disposition in a single operation.

Notes on the middle mouse button: if double-clicked on a Map, the Icon Toolbar will be displayed. If double-clicked on an Icon in the Icon Toolbar, that Icon's character sheet will be toggled. If pressed and then dragged over an unselected Icon, the Icon will become selected and all other Icons that the mouse passes over in the Toolbar will become selected. Similarly, pressing and dragging over a selected Icon will deselect the Icon and deselect any other selected Icons that the mouse passes over in the Toolbar.

Added the scripting function "getModifiedFieldData()" to retrieve the fully resolved value of a character sheet field.

There is a new "zoom to" function that allows you to zoom the Map to a level where all Icons in initiative are visible. This feature is available only during combat and is activated by pressing "a" (lowercase "A") on the Map.

You can now save a Note to a text file.

Added a more powerful and flexible "post-script" tag to the definition file: "post-script-ex." See the "3rd Edition" definition for an example. Basically, this new tag allows you to specify multiple "post-script" scripts and pass arguments to them directly from the definition file. This makes it possible to have a single script perform multiple duties and can also break a script's ties to a particular table. Handy stuff, for those interested in such things.

Added a "Special Damage" column (and associated DC/Save/Save Multiplier columns) to the "Weapons" table of the "3rd Edition" definition to allow you to define an in-line expression for special weapons that deal special damage (like poisoned daggers, etc.). Putting the columns into the "Weapons" table allows the expression to appear right next to the "Attack" and "Damage" buttons of the Dice Dialog, making the special roll easily accessable during play.

"Multi-List" tables now support columns that honor the "bool-value" tag. If specified, the column will be treated as containing a boolean instead of a String. This new value type is used in the "3rd Edition" defintion to set the "No Damage" flag on various expressions (especially spells) to indicate to scripts that the expression never deals damage.

A new tag, "no-damage," has been added to the "expression" clause of the definition file. This tag allows you to specify which field governs whether or not an expression is capable of delivering damage. This is essentially here for completeness -- if you use a script to determine damage (as the "3rd Edition" definition does), then there is no reason to also specify this tag for an expression. However, if you do not use scripts, then this tag allows you to achieve similar results (see the "3rd Edition" definition for an example).

A new tag has been added to the definition file: "read-only." You can use this tag to specify that a ListPair or MultiList table is read only. When a table is read only, everyone can see the table and what it contains, but can not edit it. What's the point of that? Well, if you look at the "3rd Edition" definition, you'll notice that we use this tag for the "Temporary Modifiers" table. This was done to encourage people to use Icon Effects rather than directly editing this table. Which should lead you to conclude that setting a table to "read-only" doesn't really prevent all editing of the table: it only prevents editing the table from the character sheet -- any other programmatic modification to a table is allowed (which is why Icon Effects continue to work and why pressing "t" also still works). So, if your game system supports something like temporary modifiers that should really not be edited from the character sheet, you now have a way of restricting access.

Added a "skull & crossbones" image to overlay Icon images when they die. It is themeable ("DeadIcon").

Added a new script, "round_robin_attack.kws," that will roll an attack (and damage, if the attack hits) against all the Icons targeted by the selected Icon. This illustrates some new scripting routines, which is why it's here.

Switching the current image of an Icon now transitions with a fading effect instead of simply "popping" between images. A new script, "cycle_icon_images.kws," has been added to illustrate the effect.

Added a scripting method to clear pending damage from an Icon.

kLoOge.Tokenizer will now store threshold values using the standard Java Preferences facility. This makes it so that once you set an overlay's threshold, the program will remember it between invocations.

Added a scripting function, "getTabButtons()" that allows you to retrieve any additional buttons that appear on the current tab of the rolling Icon's Dice Dialog. See the script "attack_check_test.kws" and the JavaDocs for more information on using this function.

Three new tags have been added to the "expression" clause of the definition file. They are: "discard-remainder," "remainder-round-down" and "remainder-round-up." By specifying any one of these inside the definition for an expression, you can control how the program handles remainders. Since the new dice parser deals exclusively with double precision numbers, and since game systems are sometimes "free" with when a value should be rounded up, down or truncated, this allows you to, on a per-expression basis, handle these varying cases (thus avoiding the program making assumptions for you). The "3rd Edition" definition uses the "discard-remainder" tag for "skill" rolls as an example.

Added an "Ammunition" table to the "3rd Edition" definition. This changes the behavior of the "Num Remaining" column of the "Weapons" table, so it's important to take note. Now, "Num Remaining" behaves more like a spell-caster's spells -- you define a category (row) of ammunition in the "Ammunition" table ("Arrows," or "Quiver1" or whatever you like) along with how many of that ammunition type you have available. In the "Num Remaining" column of the "Weapons" table you then use the ammunition name you previously defined instead of an actual number (for example, "Arrows" instead of "50"). This way, if you have multiple weapons that each draw from the same stash of ammunition, you can accurately keep track of your ammunition stores across all the weapons that use them. Of course, this does make it a little more trouble to set up a weapon that uses ammunition, since you need to create an entry in the "Ammunition" table before the "Weapons" table will count usage against it, but the benefits of having a common pool should outweigh this small inconvenience.

A new clause has been added to the "base-rules" section of the definition file. This is called "array" and allows you to define a fixed array of Strings that can be used in any table in the character sheet. Please refer to the "3rd Edition" definition for examples of how this feature may be employed.

A new tag has been added to the "field" clause of the definition file. This is the "array-list" tag, which allows you to specify the source of a list of values to populate a drop-down list in the table. Please refer to the "3rd Edition" definition for examples of how to use this new feature.

Added an optional tag to the "base-rules" clause of the definition file called "no-special-initiative-handling." By specifying this tag you instruct the program to not apply any special handling to expressions of type "init."

A new IconEffect type has been added: Glow. This IconEffect acts similarly to the new "Ring" effect in that you specify a radius, color and opacity. A "Glow," however, fills in the area of the effect instead of drawing a ring. This can be useful for simulating lighting or other special effects. Additionally, lights, rings and glows have been enhanced to better deal with their parents being carried in another Icon's inventory.

Added a new scripting function to retrieve the "current" target of an Icon. Please refer to the scripting documentation for more information.

Added a few theme elements to govern color choices for things like targeting lines, measuring labels, threatened circles, etc. The "demo" theme contains all the valid tokens, with the latest appearing at the bottom of the file.

The concept of expression "quantities" has been introduced (the "3rd Edition" definition contains an example). Essentially, this allows you have the program roll an expression multiple times, but only deduct one cost. As an example, think of the "3rd Edition" spell "Magic Missile" -- with it you cast one spell, but create multiple "missiles," each of which might be targeted to a different opponent. Previously, there was no way for the program to correctly handle this situation, but "quantity" allows you to do it. Please refer to the tutorial video on our website for a more complete example of using this field.

A new field has been added to the "expression" clause of the definition file -- "hand." This field can be used to give a hint to the program about what to display in a Dice Dialog's roll panels for an expression. By specifying this and not in the "static-label," you allow the program to make a more informed decision about what to display (ie, if "hand" is blank on the character sheet, then nothing is displayed, instead of empty parenthesis). See the "3rd Edition" definition for an example of using this field.

Added a progress dialog for loading campaigns. This existed previously for the old, non-XML, campaign files, but was lacking for XML campaign files.

The notion of players "browsing" Icons has been added. This one is hard to describe, so I strongly suggest you watch the tutorial video that is available on the website. In a nutshell, this feature allows the GM to set up a campaign such that, when players connect, they can browse through a list of available Character Icons and select the one(s) they would like to play. When they pick an Icon, it is moved to the current map, ready to be used (and disappears from the lists for other players).

Added a script and expression to the "3rd Edition" definition for performing a "turning check" (which is, perhaps, the most confusing action a character can perform in "3rd Edition"). The script handles all the details, so all you need to do is click the "Turning Check" button on the "Spells" tab of the Dice Panel.

Master / Player "avatars" have been added. The way this works is for the Master to accumulate a collection of "avatar" images in his "avatars" folder (within his data location). You can then select "Edit->Avatar" from the program's menu to open a dialog that will display each installed avatar, from which you select the one you would like to use. From that point forward, chat messages that you make will be tagged with your avatar. Players can also select avatars in the same fashion. Note, though, that the avatars have to be on the Master for the Players to see them (if Players want to supply their own avatar images, they must upload them to the Master in some fashion first). The program keeps track of which avatar you've selected for which Master, so you can have different images based on different gaming sessions.

Tokenizer - Added controls to flip images on the X and/or Y axis and "grabby hand" cursors. Also improved mouse handling when the image is rotated and/or flipped.

Added an example script called "stabilization_check.kws" that does a semi-random stabilization. It can be accessed from the "Dice" combo of the "3rd Edition" definition. Also moved the "grapple" check into this combo as well.

A couple of new options have been added to (hopefully) give you more flexibility in improving character sheet readability. First, you can specify a "color" tag in the "table-row" section of a "list-pair" in a definition file. Specifying a "color" allows you to control the foreground color of the label and value of the table row. You can see an example of this in the "3rd Edition" definition, which uses the feature to make certain fields of various "list-pairs" stand out. Secondly, there is a new Preferences option, "Use stripes for table rows," that, if selected (the default) will render alternating rows of tables in a lighter color than the normal table row color. Depending on the background color of your tables, this can improve differentiation of rows in tables (of course, if your background color is already white, then you won't see any difference, since there's no color considered to be brighter than white).

Added a few scripting methods related to controlling Icons.

An Icon's controller will now appear in the IconQuickStat window and the Icon's tooltip.

A new Preferences item, "Require unique player names" (defaults to being selected) has been added. This option allows the Master to require that all connecting Players have a unique name. If a Player with a duplicate name attempts to connect, he will be told to change his session name (in Preferences) and then re-connect. This is basically a sanity option for the Master so he can better keep track of Players and the Icons they potentially control. Note that this option is only checked when Players initially connect -- changing it while Players are connected will not drop Players with non-unique names.

While targeting, if the mouse pointer crosses into either a Dice Dialog or Icon Quick Stat window, the effect will be the same as if you had pressed the back-slash key -- that is, the Icon Quic Stat window, Map chat and Dice Dialog will be hidden. When the mouse leaves the bounds of the item that it entered, the hidden items will return. This makes it easier to not worry about where at potential target is located when targeting begins, since most things on the Map will move out of the way when you pass over them with the mouse.

Two special new tokens have been added to the definition file: "${PEX}" and "${/PEX}." These tokens, like "${V}" and "${R}," have special meaning when they are encountered an expression definition. In this case, they allow you to define a block that should be excluded from what Players see when the expression is evaluated. As an example, the "3rd Edition" definition includes this token to hide a weapon's magic bonus from Players when an attack or damage is rolled.

Documentation for the definition file format has been added.

Added a new tag to the "button" clause: "rep-expr." You can use this tag to replace the base portion of an expression with whatever is contained in this tag. This can only be used with buttons of type "toggle." See the "3rd Edition" definition for an example of this tag's usage.

A new button and script has been added to the "3rd Edition" definition: reset spells. This button/script combination is intended only for "sorcerer-type" casters and will reset their "current" spell alotment to their "maximum" for every spell level. The intention is to make it that much easier for players to reset their sorcerer characters at the begining of a day.

A new tag has been added to the "button" clause of the definition file: "max-roll." If specified, this will force the dice parser to maximize any dice expressions during evaluation. Note that this option only really makes sense when defined in a "toggle" button type (since, otherwise, the expression's dice would always be maximized). The "3rd Edition" definition has an example using this new tag, but it is commented out (since it doesn't really apply to "3rd Edition" rules).

A new Icon Effect has been added: Adjust HP (token "HP"). This Effect is different from all other effects in that its modifier is only applied when the Icon's initiative comes up (as opposed to being applied with each tick of time). What this effect does is apply its modifier against an Icon's current hit points. When setting up the Effect, you have the option of selecting which hit point source to deduct from (if your definition supports multiple hit point sources). The intention behind this Effect is to allow you to easily control so-called "ongoing damage," which a number of game systems support.

A new tag has been added to the "expression" clause of the definition file: "type-for-button." This tag allows you to specify an alternate type for an expression that will be used when selecting the expression's button in the Dice Dialog. Why would you want to do this? Because, maybe, you've set up a "custom" expression, but instead of using the default "custom expression" button image, you'd like the expression to appear as an "attack," or as a "spell."

A new tag has been added to the "button" clause: "add-to-roll." This tag allows you to define a value to be added to a subsequent roll. Note that this tag is only honored when the button is a "toggle." The "3rd Edition" definition adds a couple of toggle buttons that utilize this new tag as an example.

Tags, theme elements and program support has been added for the concept of being "bloodied." What "bloodied" means depends on how it is defined in the definition file (see the "3rd Edition" definition for one possible example), but when an Icon is "bloodied" the theme element "BloodiedIcon" will be used to paint over the Icon's image to indicate the state.

Added script methods "killIcon" and "healIcon" to, respectively, instantly reduce an Icon's health to the "dead point" and increase an Icon's health to its maximum.

Two scripting methods, "isIconDisabled" and "isIconBloodied," have been added to check these states.

A new tag has been added to the "expression" clause of the definition file: "armed." Setting this tag to the ID of another field on the character sheet allows you to inform the program of the "armed" state of the expression. When used with the new Preferences item, "Force armed to roll," you can ensure that an item be "armed" before it is used. See the "3rd Edition" definition for an example of using this tag.

Two new tags have been added to the "base-rules" section of the definition file: "always-round-down" and "always-round-up." By specifying one of these flags, you tell the program how to handle all remainders that are not otherwise handled by a more specific flag.

The "die" clause of the definition file has gained a new tag: "add-to-roll." You can specify any valid arithmetic in this tag (including tokens) and the value will be expanded and appended to the die when evaluated. For example, if you wanted to add "$L/2" to every roll of a particular die, you could use the "add-to-roll" tag to do just that.

A new theme element, "RollTitleColor" allows you to specify the color to use for roll titles in the "new style" Dice Dialogs.

A "read-only" flag has been added to the MultiList and ListPair elements of the definition file. By setting this flag on a row/column, you can disable the editing of these fields throught the program's character sheet interface. The data can still be modified by other means (scripts or indirect manipulation). For an example of how this might be used, please refer to the "3rd Edition" definition. In this definition, the "read-only" flag is used to mark as unalterable certain "derived" fields (like the final "AC" and the final skill modifier).

A new Map selection method has been added: polygon. Now, in addition to free-hand regions and rectangles, you can also draw out a polygon to reveal/coneal areas, select Icons, etc. You access this feature by right-clicking on the Map and selecting "Options->Polygonal region" from the popup menu or by pression period (".") on the Map when nothing else is selected. To finish the polygon, simply double-click when you have the desired shape.

When you create a region (rectangular, freehand or polygonal), the popup menu when you complete the shape now has an added option: "Convert to Drawn Item." Selecting this menu item will convert the shape you have drawn into a Drawn Item. The created Drawn Item will be filled, locked and invisible to Players. This provides you with a very quick-and-dirty way of creating Drawn Items without going through the Drawn Item creation dialog.

Added a Preference item, "Show measure squares," that, if selected (not the default), will add the calcualted number of "squares" to distance measurements. This is useful for some game systems, but probably not all (which is why it is turned off by default).

Added a scripting method ("getExpr()") that retrieves the expression part of a Dice Expression. This is useful (as illustrated in the "attack_check_ex.kws" script) when a script needs to modify the expression of a roll, but would like to leave everything else in the potential output alone.

A new scripting method, "visualEffect" allows scripts to create visual effects in the same manner that the program does for rolls. See the script "visual_effect.kws" for an example and refer to the scripting docs for an explanation of the method's parameters.

When a Player receives a Map, he will now have a node in the Campaign tree representing the Map. For each Map received, a node will be created. These nodes can be used to jump back to any Map the Player has seen during his session, which might be handy in certain circumstances.

Added a row to the "temporary modifiers" table of the "3rd Edition" definition for "threatened area" and linked it to the "threatened area" field of the character sheet. This allows you to specify an effect that modifies an Icon's threatened area.

Added the ability for rolls to appear next to the Icon that made them. This feature can be toggled off (not the default) with the Preferences item "Show rolls next to Icons."

A new table ("Equipment - Armor") has been added to the "3rd Edition" definition. This table illustrates a way of defining a table that is accessed by a script that is part of a "modifiers" clause to modify a table's data. Confusing? Yeah, we know. Essentially, what this boils down to is a table where you define armor and indicate both the bonus and whether it is worn or not. A script takes this information and builds a modifier for the "AC-FINAL" field. Useful? Perhaps.

You now have the option of sending us your Java output directly from the program. When viewing your Java output, simply press the "Send to kLoOge.inc." button and your output file will be uploaded to us. No personal or identifiable information is sent during upload -- only the contents of the Java output is sent. Doing this helps us identify problems with the program, so you are encouraged to take advantage of this new feature.

A new script has been added and put to use in the "3rd Edition" definition: "skill_check_ex.kws." This simple script is run after a skill check is rolled. If the skill matches one of the select few that allows an opposing roll (and the rolling Icon has a "current target" defined), then the opposing roll will be made for the target and the results reported.

The Preference item "auto-apply hit point adjustments" has been resurrected. Additionally, a complimentary feature, "edit hit point adjustments," has also been added. This second feature allows you to go back in time to any hit point adjustment made to an Icon during combat and undo it. Please refer to the tutorial video for more information on using these two new features.

A new, rather poorly named, Preferences item has been added: "roll from anywhere." If selected (not the default), clicking anywhere in a sub-panel within a "new" Dice Dialog will result in the first expression of the panel being rolled. This is for those people who don't want to take the time to move their mouse over to the actual button of a roll, but simply want to click anywhere in the roll's panel (which somewhat emulates the behavior of the "traditional" Dice Dialogs, where you had to click on the roll's name). Keep in mind that only the first expression in the panel will be rolled (so you will still need to move your mouse in order to, for example, roll "damage).

You can now target multiple Icons in one action. Please refer to the tutortial video, "Multi-Targets.mov" to see how this works.

A definition file (and associated scripts) have been added to support Fourth Edition Dungeon and Dragon rules (4e, for short). What this really amounts to is revealing enhancements to the definition file to support concepts popularized by 4e (but which also benefit other gaming systems). Please refer to the tutorial video on the subject to see just how this new definition behaves.

Fixes
Dragging an Icon contained in a Folder would move the Icon, even if it did not have the "Only One" flag set.

Attaching a file to a private chat message did not strip the path from the file, resulting in an incorrectly named file on the receiving end.

"X"ing out of the Drawn Item dialog left the Map in an incorrect state.

There were a number of problems with animating Icon size changes (some of which masked others, which is quite annoying). Icon size changes should now be handled correctly, whether the Icon is increasing in size or decreasing in size.

The name field of a DrawnItem did not use the correct font size.

Setting a Map's scale while players were connected and the Map had Icons on it, would result in players seeing Icons in the incorrect location.

Certain "check-availability" and "modify-on-roll" clauses could fail if their fields were in a "list-pair" table type.

Some grid fixes: A rounding error was causing distance measurement to be incorrect when SI units were used and an artificial limitation forcing grids to fall on pixel boundaries has been removed.

Changing an Icon's light radius with an effect while "fog of war" was active did not properly reveal/conceal the affected area when the effect came into being or was removed.

You could not move Notes, Movies or URLs between Maps.

The "3rd Edition" definition failed to set "ignore-targets" for the initiative expression.

Finally fixed an invalid tag in the "Demo 3.5" definition file.

A longstanding flaw in Campaign saving has been identified and corrected. Previously, the assumption going into saving the Campaign was that the save would succeed. This being the case, if the save failed, a corrupt Campaign file would be created, possibly overwriting a pervious, uncorrupted, backup. Now the assumption is that the save will fail. As a result, Campaigns are now saved to a temporary file, then this temporary file is renamed only after the save completes. This should prevent any future occurance of Campaign backups becoming corrupt.

Rotated Icons were not having their size computed correctly, resulting in their health-bar and name getting chopped off at higher zoom levels.

You couldn't select multiple hidden Icons from the Campaign Tree.

The definition parser allowed you to define an empty tag for tables. This should have been rejected, indicating that the definition is invalid.

MapLink Icons were incorrectly appearing in the campaign tree.

Invisible Icons would transmit hit point adjustments to Players, causing an adjustment animation that revealed the Icon's location.

Modifications
Changed sound playback behavior so that all sounds do not stop when the first to finish stops.

DicePanels can now be resized. Place your mouse on either the right- or bottom-edge, press the primary mouse button, drag and the Panel will be sized.

When someone else drags an Icon, the dragged Icon will no longer become selected on your screen. However, the Icon's Quick Stat window will still open, allowing you to see what Icon is moving. This should avoid the potential issue of, especially, clients moving Icons while the GM is selecting Icons for his own purposes.

Editing Icon Effects has been improved. Now editing the Effects for multiple Icons places all the Effects in the table, with the owner of the Effect in the first column. Using this first column, you can reassign an effect. You can also right-click in the table and select "Duplicate" to make a copy of the selected Effect (which you can then assign to a different Icon or all the selected Icons).

In order to improve performance, Icon images are now scaled down when loaded if either of their dimensions exceed 256 pixels.

Added port display to the "About" box if you're using Bonjour.

Low memory warnings are now trimmed to being issued only once per minute (instead of continuously).

Measurements between targets are now taken based on where on the Icon's image boundaries the target line intersects, as opposed to center-to-center. This should more accurarately correspond to threatened area circles and certain game system rules.

In order to promote a kinder, more gentle world, "clients" have been renamed "players" everywhere that is forward-facing.

There have been a number of changes made to initiative. Some of these have been made to improve the behavior between what the master sees and what players see. Other changes are more cosmetic. To wit, the label that pops up on initiative change (if enabled) now includes the Icon's image. Also, there is a new Preferences item, "Show invisible initiatives," that, when enabled (not the default) will, instead of completely suppressing invisible Icons from initiative on the player side, will make the invisible Icon appear as a place-holder in the player's "battle bar" when it has the current initiative (which will disappear when the initiative changes). This should avoid players having misleading information about whose turn it is, while still not giving them much more information on the number of invisible enemies they face.

Enhanced the "Chat As" toggle button to allow you to select an Icon, then click on the button to make that Icon that Icon that you are currently chatting as.

The "Setup Spells" button will now sort the incoming table data by the first column of the table. Note that this will, potentially, alter the organization of the table data on output, since the sort is performed in place.

Removed some restrictions on the Icon Quick Stat window so it shows information for more Icon types (like Map Links, Encounters, etc.).

Duplicate descriptions in a description file are no longer complained about and discarded. Instead, duplicates are concatenated so no information is lost.

Modified the way certain dialogs are created so they are now resizable.

Specifying multiple "alt-tags" in a definition only remembered the last one defined. Now a list of "alt-tags" is maintained.

Improved campaign loading when files can't be found. Previously, the program assumed that anything it encountered wasn't likely to match what was being loaded. Now, the program keeps track of files that match previously replaced files and folders where matches occur and tries its best to auto-map missing files.

Changed the licensing process to, hopefully, make it easier and more foolproof. Instead of a single dialog that displays your licenses and allows you to enter more, you now add licenses through a "wizard-type" interface that walks you through each step of entering a new license.

Dramatic (to us, at least) improvement to the behavior of mouse-wheel zooming. Previously, when changing the Map zoom level by scrolling your mouse wheel, the Map would remain centered on the point in the center of the display. Now, the zooming action will track toward where you have your mouse pointed. This allows you to "zoom in on" an Icon or other Map detail without having to go through tedious zoom-pan-zoom-pan operations. We think you'll like it (and probably say, "why wasn't it like this in the first place?").

Commented out the "Attack of Opportunity" button, since it seems to be rarely used and takes up a lot of space on the screen.

Combined the "View/Edit" buttons on the character sheet into a single button that toggles between view and edit mode.

Made a "hidden" campaign tree be a little more hidden. Previously, resizing the program's main window could result in the campaign tree popping back into view.

Changed the way updates are going to be handled. In the future, when you are notified of (or check for) an update, an HTML file containing the changes available in the new version will be displayed in a new "wizard-type" interface. This should make it easier to see just what's changed in the program before downloading the update.

A few Icon Browser changes. The Browser now remembers between program sessions the last place you browsed for Icons, so the first time you bring it up it will automatically re-scan the source.

Improved Map chat message handling so that when a barrage of messages arrive (which fill up the screen), the Map is properly refreshed to scroll off the oldest message and leave the latest messages visible.

When editing Icon Effects, the program will now translate round duration and remaining back into day/hour/minute notation for slightly easier reading (we say "slightly" because these notations can still contain very large fractions).

The search field will now automatically select the first matching entry in a list, potentially saving you a single keystroke.

The hiding of unavilable rolls in the new Dice Dialog is turned on by default. You can override this behavior on a per-Icon basis by pressing period (".") while the mouse is hovered over a spell expression on the "Spell" tab and also by toggling the "Hide unavailable rolls" button on the "Setup" tab of the Dice Dialog.

Minor improvement to slow double-click Icon renaming -- it now takes into account whether the Icon's name is being drawn or not (previously, it always assumed that the name was drawn, leading to the "clickable window" being overly tall when the name was not visible).

The "XP Style" Preferences option has been removed. Instead, the program now automatically determines if you are using the "XP Theme" under Windows and adjusts accordingly. Also, should you decide to switch desktop themes while the program is running, the program will handle the transition much better than it would have in the past.

Decided to replace our custom animation routines with the open source package "TimingFramework." This supplies much more robust animation that renders more smoothly than the approach that was used previously.

Script handling has been overhauled in regards to where scripts are located. In the past, scripts held a quasi-official place in the program's heirarchy -- they were used in definitions to enhance play, but they could also simply be called upon when needed. This dichotomy could lead to a certain amount of confusion about where to put script files. Increasing the potential confusion was the fact that scripts could not be placed in organizing sub-folders. All this has changed. Scripts are now a full-fledged part of the program. As such, they are located in the "libs" folder (under Windows) and the application package (under OS X). Additionally, scripts can now be placed in sub-folders within the root "scripts" folder. This new configuration breaks scripts from the "data location" and places them in a known, consistent place where they can be updated and found easily.

Along with the many other organizational changes to file locations that have been made, we are also moving your Preferences and License files. This is being done, primarily, for safety reasons -- by putting these files outside of the program's installation directory you will be less likely to lose or accidentally delete them. On Windows, they will be located in "C:\Documents and Settings\User\Application Data\kLoOge.inc." For OS X they will be in "/Users/User/Library/kLoOge.inc" (in both cases, replace "User" with your user name). For Linux, they will be in "~/.kLoOge.inc."

There are a few considerations to take into account due to this change. First off, all Preferences and Licenses will be shared for the account that they are installed to. This note really only applies to people who run multiple, simultaneous, instances of the program from the same user account -- if you do this, then keep in mind that the first instance of the program to start up will "lock" the license file and not allow any other instance to access it. So, the moral is, if you are going to be running a "Master" and "Player" session from the same account, start the "Master" first and exit it last.

The other thing to keep in mind only applies to people who have multiple license files (of which there are probably two, but just in case). Historically, it was necessary to have multiple license files due to the way licenses interacted. Years ago, however, this restriction was removed, but no simple way of consolidating license files was available. Now, the program will automatically merge license files into the single "shared" license file mentioned above. To accomplish this "automatic merging," simply launch each instance of the program (you only need to go to the "Options" screen), then exit it. Each version that runs will look for an old license file and, if its found, will merge the licenses it contains into the "shared" license file. After finishing, it will back up your previous license file to "kw.lic-bak" (just in case something goes wrong, we don't want to delete your license file!).

Essentially, you should come away from these changes knowing that, for the vast majority of you, nothing will have changed -- the licenses you own still behave exactly has they have in the past -- they've just moved.

If you have any questions, please let us know.

Made kLoOge.Tokenizer's preview a little bit bigger.

Removed the "Find" button from the Note tab of character sheets and replaced it with a "search box" (identical to what we use throughout the program). This allows for "live" searching (even when switching between Notes) without opening a dialog to interfere with your activities.

kLoOge.Tokenizer - added images to the "zoom in/zoom out" buttons; improved mouse interaction when the background Image is rotated.

Extended the "hide unavailable spells" notion to cover all unavailable rolls. A roll is considered to be unavailable if its expression fails all "check-availabilty" tests. This means that weapons with ammunition now fall under this category and, if "Hide unavailable rolls" is selected, will disappear from the Dice Dialog once you run out of ammunition.

Changed the "save Map image" behavior to include labels that might be visible at the time of the capture. These label include movement and hit point adjustments.

Unified the "threatened area" calculation to use the same measurement criteria as target distance measurement uses. This makes for a single code path (which is good) and should remove any discrepancies between the distance displayed for targeting and whether or not a "threatened area circle" is drawn.

The "Ring" IconEffect has been enhanced to gain an opacity setting. Using this setting you can control how opaque the Rings are drawn.

"Ring" IconEffect types now take the size of the Icon into account instead of being calculated from the Icon's center.

Modified the "attack_check_ex.kws" script to check for shooting into melee (thanks, John).

Modified the "spell_save_ex.kws" script (used by the "3rd Edition" definition) to give special treatment to the "Chain Lightning" spell. This is mostly illustrative -- in case intrepid script writers need an example of this type of behavior (ie, dealilng with a semi-goofy spell in a script).

Consider this particular trigger pulled: Use of the forward slash character ("/") is no longer supported to identify multiple rolls in a character sheet. When we first released kLoOge.Werks, the use of math was very limited (actually, the first release didn't support it at all, if I remember correctly), so using the forward slash to indicate multiple attacks seemed reasonable. Then came math and division and problems. Years ago, we recommended using the vertical bar ("|") to indicate multiple attacks, but continued to support the slash character. Now, however, we've come to the point where we can no longer count on "/" meaning "multiple attack" and not division, so it has to go. The moral of the story being: if you are specifying a "multi" roll (can't really call them "multiple attacks" any more, since any kind of roll can now contain multiples), you must use the "|" character to split them into pieces. For example: "+15|+10" means "two rolls, one with a '+15' and the other with a '+10.'"

The Calander has been changed slightly. Now, the buttons to advance/regress time have been made invisible unless you move your mouse into the area of the Calendar. This cleans up the display for the master a bit (players never see the buttons).

The evaluation of a "spell" expression type now includes the name(s) of the targeted Icons in the output.

Drag-and-drop operations involving the Campaign Tree now will auto-scroll when the mouse reaches the edge of the tree and expand/collapse nodes if you hover the mouse over them during a drag operation.

Multiple expressions per table column now allowed. Previously, there was an artificial limitation that allowed only one expression clause per column in a table (as defined in the definition file). While this makes sense for most uses, there may be instances out there where you would like to have multiple expressions referring to the same row of table data defined in the same column -- so now you can. If you define multiple expressions, they will appear in the Dice Dialog in the order defined.

DM notes are now stored using the same Note component that is used on character sheets. This gives the Master much more flexibility for creating and editing his notes.

The program now uses one less port for communication: the "secondary port" has been eliminated. This port, it turns out, was redundant.

The default "new-style" program theme has been updated to use new icons.

The "receive port" has also been eliminated. Now the program only uses two ports: one for all player connections and one for multicast broadcast (for local LAN games).

Player startup processing has been, we hope, enhanced a bit. When a Player first connects, the Master will now look at all the PC Icons in the campaign and determine the Map that contains the most of them. If it finds such a Map, the Master will automatically send it to the Player. This should speed up starting game play, since Players will no longer need to first "call up" the Map and the Master does not need to send the Player the current Map.

A number of changes have been put in place to improve the behavior of "multiple Map loading" and "undocked Maps." These include: better drag-and-drop support between Maps; better centering; Map bounds are stored when Maps are undocked; saving a Campaign with multiple Maps open will re-open those Maps when the Campaign is loaded. There are a number of other improvements that we have in mind, but this was all we had time for in 3.1.0.

The program toolbar button that globally disables roll broadcast has been tied to the Dice Dialog button for local (Icon) broadcast. If roll broadcasts have been globally disabled, then the Dice Panel button will also be disabled (reflecting that chaging its value would have no effect on anything).

The program has long had a feature to "darken" a Map's background image (pressing the "minus" key when nothing else on the Map is selected). However, the method of accomplishing this was rather simplistic. We have reworked this process to do actual gamma correction on the Map's image. Essentially, the only real visual benefit to this is that you can now, in addition to darkening an image, brighten it as well. Pressing "minus" will darken (lower the gamma level), "plus" will brighten (increase the gamma level) and "equal" will return the image to its default gamma level.

Added a "view" button to the "stand alone" character sheet panel so people can switch between "solved" and "unsolved" modifiers. Also adjusted the way scripts are handled so that they can be referenced by a player who isn't connected to a master (like when editing a "stand alone" character sheet).

For Players, the "open connection" button's behavior has been changed. Previously, if you were connected to a Master, this button was disabled (and the menu item forced you to disconnect before opening the connection dialog). Now, even if you are currently connected to a game, you can bring up the connection dialog and see what other games might be going on. If you are connected, the game you are connected to will be displayed in a different color from the rest of the games, so you can easily identify it. Should you decide to join a different game, you can simply click on it as you normally would and your current connection will be dropped and the new connection established.

The new "Ammunition" table has also been tied into the "Consumable magic item" table in the "3rd Edition" definition. Note that if you specify the name of an ammunition source, then that source is used. However, if you specify a number, then that number will be used instead of a source. This makes it easy to mix-and-match between ammunition and simply specifying how many of an item that the character has.

When pasting NPC Icons when you have set your Preferences to add a number to the newly created Icon, the program will now attempt to do a better job of figuring out what number to put on the new Icon. This should help avoid the situation of ending up with Icons with names like "Bad Guy #4 #2 #3 #1."

Switched brush size reporting from radius to diameter. It seems that while things are often expressed in terms of radius, this fact remains somewhat confusing visually, where people expect to see the full size of what they're looking at reported.

Version 3.0.3

Version 3.0.2

Version 3.0.1

Version 3.0.0

Version 2.9.8

Version 2.9.7

Version 2.9.6

Version 2.9.5

Version 2.9.4

Version 2.9.3

Version 2.9.2

Version 2.9.1

Version 2.9.0

Version 2.8.9

Version 2.8.8

Version 2.8.7

Version 2.8.6

Version 2.8.5

Version 2.8.4

Version 2.8.3

Version 2.8.2

Version 2.8.1

Version 2.8.0

Version 2.7.9

Version 2.7.8

Version 2.7.7

Version 2.7.6

Version 2.7.5

Version 2.7.4

Version 2.7.3

Version 2.7.2

Version 2.7.1

Version 2.7.0

Version 2.6.2

Version 2.6.1

Version 2.6.0

Version 2.5.4

Version 2.5.3

Version 2.5.2

Version 2.5.1

Version 2.5.0

Last Minute Changes and Additions

The following is a list of things that have been changed or added to the program since the Introduction Videos were made.