Wolph42's 'Drop-in' Bag of MT Tricks v.46 [DOORS]

These are tools and utilities that make it easier to run games. This includes Lib: macro tokens dropped into MapTool to manage the game, a conversion file for CharacterTool to allow use in MapTool, or just about anything else you can think of -- except graphics with macros and anything specific to a particular campaign framework. Those are already covered by the Tilesets subforum and the Links and External Resources forum.

Moderators: Azhrei, dorpond, trevor, giliath, Gamerdude, jay, Mr.Ice

User avatar
Posts: 9706
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands

Re: Wolph42's 'Drop-in' Bag of MT Tricks v.44 [CoMPad 2]

Post by wolph42 »

___________|LIGHT INSTALL OF THE BAG OF TRICKS (80% version)|__________________
So here a simple guide of how to install and update (the 'lite' version):
1. Download these two (.rptok) files: lib:OnTokenMove and lib:EventMacros (if windows exploder turns them into .zip, rename them back to .rptok).
2. Drag and drop them into your campaign
3. Save and reload. (A frame will open that will help you further, read those instructions carefully!!)
That's it! (NOTE: 80% of the BoT now works, the remaining 20% of the functions require additional actions which are explained below!!)

and here's the corresponding vid showing you some more details

When you've done the above, some functions won't work yet (hence 'lite') as they need additional things (like extra tokens). In the chat window you will find an overview of these.
In terms of memory footprint (should you think that's an issue), these two tokens roughly take up the memory of 4 tokens. (In other words: the footprint of an ant on an elephants arse).

User avatar
Posts: 9706
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands

Re: Wolph42's 'Drop-in' Bag of MT Tricks v.44 [CoMPad 2]

Post by wolph42 »

_______________________|FULL INSTALL IN AN EXISTING CAMPAIGN|__________________________

Pick your poison, three methods to explain you how to install (video, picture, text)
Special Pads Setup and Tutorial Video. (UPDATED: 13-July-2012)
Alternatively you can export the BASE map from the BoT campaign file and import it in your current campaign. This way you can skip the 'drag and drop' steps in the quick install chart. Do note that you FIRST need to create the states and THEN import the BASE map. (else the states will not be applied to the special tokens).

Inspired by CoveredInFish
To embed into your own campaign do the following:
  • Download the Wolph42 - Bag of Tricks.rptok file and the Wolph42 - Bag of Tricks - The Special Pad Tokens.zip file
  • Internet explorer has (sometimes) the nasty feature to rename Wolph42 - Bag of Tricks.rptok into Wolph42 - Bag of Tricks.zip or .rptok.zip. DO NOT unzip that file, but rename it back to: Wolph42 - Bag of Tricks.rptok. When you drag this file onto a map in Maptool you will notice that it turns into: lib:OnTokenMove. NOTE: Make sure that ALL lib:tokens are on the TOKEN layer at all times and visible to players and owned by no one.
  • Create a propety type called 'SpecialPad': menu-->edit-->campaign properties-->token properties tab-->Name:SpecialPad-->Update-->Ok. This step is not required per se, but the tokens in the zip are set to this property type and the onTokenMove event is instructed to ignore tokens with this property type. This prevents e.g. special tokens from warding or teleporting when you happen to drag them over a special pad.
  • Extract the Wolph42 - Bag of Tricks - The Special Pad Tokens.zip file and drag the content (except the .mttable file) and the rptok file into you campaign. Of that zip content you will AT LEAST need to have the lib:EventMacros on the map. (Alternatively: you can also export the entire Bag of Tricks map [menu-->map-->export map] and import it in your own campaign file. You will still need to extract the .mtttable from the .zip file and continue the next steps.)
  • Load the Bag of Tricks Table.mttable file. To do this, first make sure you extracted it from the Wolph42 - Bag of Tricks - The Special Pad Tokens.zip file. Then in Maptools go to: menu-->windows-->tables. A table panel will pop-up. Click 'Import' on that panel and look for the Bag of Tricks Table.mttable file. Select and press ok.
  • Double click on the lib:OnTokenMove (an edit window will pop up) go to the ownership tab and make sure that NO owner is checked. Also do this for lib:EventMacros
  • Select the lib:OnTokenMove token and make sure both the selection panel and the campaign panel are open (menu-->windows-->).
  • Now drag the campaign macros from the selection panel onto the campaign panel At the top you will notice a big black button called: Bag of Tricks Macros instead of dragging ALL the campaign button macros to the campaign panel you can also choose to drag just this one button as when you click on it it will show a menu with ALL the buttons. (do press it yet first you need to finish the rest of the implementation)
  • Run onCampaignLoad (once this time) from the selection panel. Its very likely that the settings window pops up, if so check the BASE map setting and make sure its correct and click ok. If not, correct it, click ok and run the settings once just to be safe.
  • Finally run the 'Bag of Tricks' macro from the campaign panel, if you did everything ok a macro panel will pop-up. On this panel there is a button near the top 'initialize maps', run it. All the special tokens you just dragged onto the map will now be initialized. After that an initialization form will pop-up showing you which special pads are active on which maps and whether there are some errors (e.g. a teleport start without a teleport end.).
    Note: IF you used the method of importing the entire BASE map into your campaign or when you dragged ALL tokens from the zip onto the map, then keep in mind that this map contains a couple (6?) intermap tokens that are linked to an intermap tokens on another map. This other map is likely not in your campaign file, so when you click 'initialize maps' you get a list of [Error: found only one Inter... on map BASE] error. This should not be a problem but overall its probably wiser to turn off the initialization for the BASE (that is the map where lib:ontokenmove can be found) map in the settings: settings-->Exclusions tab-->BASE checkbox.

  • When you want to use Canopy: first you need to have a map called 'BASE' (you can change this in the settings), here you need to drag the 'Trunk....rptok' files from the .zip file. Then you need to run the 'Choose Trunks' macro. Note that the Trunk rptok files are just images, you can create others yourself.
  • When you want to use the Alternative Initialization Method (> 100 special pads on one map): you need to drag the libCoords.rptok file onto your 'BASE' map (see canopy).
  • When you want to use Summon tokens: Drag the "_none" image from the .zip file onto your 'BASE' map and run settings and set it up to your game.
  • When you want to use Set Light: run settings to exclude certain light types.
In addition to the tutorial video, which does not cover the door button switches, special areas and path tracking:
  • When you want to use the Token Door Switches: FIRST add the two states: 'isButton' and 'Locked', THEN drag the lever.rptok file onto the 'BASE' map. (Create State: menu-->edit-->camp. prop.-->states-->enter name-->browse for pic.-->click add-->click ok.)
  • When you want to use the special areas feature you will need to create a 'Special Area' state. Pic is provided in the zip
  • When you want to use the path tracking feature you will need to create a 'pathFeet' state. Pic is also provided in the zip
  • When you want to use the Move Crowd Plus feature you will need to create a 'prone' state (but only if its not yet in your campaign file already). Again: Pic is provided in the zip
  • When you want to use Aliasmask Polymorph features, you will need to import 'Aliasmask Polymorph Table.mttable' as well
  • When you want to use Nildiks Fancy Frames features, you will need to import 'Nildiks Frames Table.mttable' as well
  • When you want to use Nildiks Room Description features, you will need to import both 'Nildiks Frames Table.mttable' and 'Nildiks Encounter Table.mttable'
  • Extra tip: ALL the special pads have the property type: "SpecialPad". When you load these in your current campaign the property type dropdown box will be empty. You can create this property type in the MT settings. In the BoT settings you can also add that property type to the exclusion list. This way the special pads will NOT trigger the onTokenMove event (so you won't accidentally e.g. teleport the teleportpad).
Teleportation within a map
  • Create paired teleport pad: these can be any tokens you like to use. The first pair needs to be called: "PadStart 1" and "PadEnd 1". Note that you can resize them to any size you want, they will always work if a token is ON the pad. This means that with free form you can create any size, albeit rectangular, you want. Also note that you can put them on ANY layer (including hidden).
  • Now you can copy-paste them. At least if you have "Duplicate Token Numbering" in the preference set to: "Increment" (is the Default).
  • Read on at the "Remaining Steps"
Teleportation between two maps
  • Create paired teleport pad: these can be any tokens you like to use. They must be named 'InterPad n' where 'n' is a number. Two Interpads are connected when they have the same number.
  • Make sure that of each number there exists only ONE PAIR in ALL the maps.
EventPads, Warded areas and Roofs
These work in a similar manner as the teleport pads, but then without the pairing. Just make sure you name them ..1,..2,..3,..4 etc. as you place more and update the number in the map macro.
Name convention is key.
  • EventPads should be names "EventPad 1", "EventPad 2", etc.
  • Warded areas should be named "Ward 1"
  • Roofs should be named "Roof 1", etc.
Note that for pits and traps additional code is required, this can be added/adjusted in the corresponding macros on the lib:ontokenmove
The differences between these three are:

Code for EventPads (formerly known as: Pits and Traps)
The structure of this drop-in allows for different a great versatility of tokens like traps and or pits. Here a short explanation how to create e.g. a trap:
  • Create a macro on the lib:EventMacros (there are two examples there already) E.g. 'Spear Trap'.
  • Select the EventPad (e.g. 'EventPad 2') to for which you want to use 'Spear Trap'.
  • Run 'Set Event Pad' from the campaign panel
  • Choose 'Spear Trap' (name of the macro) from the dropdownbox.
  • Select which events trigger the pad, for traps this usually is: token moved on pad, moved over pad and moved outside, used a waypoint and returned
When someone triggers Trap 2, then the code in 'Spear Trap' is now used.

Turning Pads On/Off
This will impeed the speed of the movement of the tokens so its not implemented. If you want this functionality however, here's how:
1. create a new property for the Teleports in the settings: "dontUse:0" (without the "")
2. in the macro corresponding with the map e.g. teleportGrasslands add the following lines:

Code: Select all

[Token(teleportStartName): 	check = dontUse]
Straight after the line:

Code: Select all

	[if(json.contains(teleporterTriggered,currentLocation)), CODE:{
So it becomes:

Code: Select all

	[if(json.contains(teleporterTriggered,currentLocation)), CODE:{
		[Token(teleportStartName): 	check = dontUse]

		[teleportEndName = "PadEnd " + i]
Note that there are 3 [if(json.contains.... in that macro, one for padstart, one for padend and one for interpad. Edit them all three just to be safe.
3. Select the teleport pad you wish to 'turn on/off'
4. on the selection panel create a new macro (right click in the panel)
5. give it any name you want and paste the following code into the macro:

Code: Select all

[h:dontUse = 1-dontUse]
[gm:if(dontUse,"Pad is turned off", "Pad is turned on")]
And that's it. Now to turn the pad on or off, just select the pad and click on the macro.
Tip: you can combine this with an Aura or Tokenstate (gm visible only) that you toggle in the same way as the pad in the same macro. This way you can instantly see whether the pad is active or not.

When your completely done and have added all kinds of pads to all your maps. Go to the campaign panel and click 'Initalize Pads'. When done you will get a report. This report might contain error messages meaning that you made some mistakes when placing the 'special' tokens. Read through the report, if no error messages appear then your golden. Everytime when you add or delete a 'special' token on a map you need to run this macro again.

User avatar
Posts: 9706
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands

Re: Wolph42's 'Drop-in' Bag of MT Tricks v.44 [CoMPad 2]

Post by wolph42 »


All your settings and eventmacro (if any) are stored on: lib:EventMacros, you thus do NOT NEED TO REPLACE THAT! When you upgrade a version you need to:
1. replace the lib:OntokenMove for the new one (delete first, then drag the new one on your map)
2. run settings once (you might get some pop-ups, just click 'ok')!
3. save and reload

User avatar
Posts: 9706
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands

Re: Wolph42's 'Drop-in' Bag of MT Tricks v.44 [CoMPad 2]

Post by wolph42 »

_______________________|VIDEO TUTORIALS|__________________________

Full Overview - Shows most functionalities of the bag of tricks, it deals with roughly 75% of the features.
0 - 29:44 settings
30:41 - 56:11 ALL teleport pads
56:11 - 1:02:00 other special pads (canopy, foliage, roof, wards)
1:02:00 - 1:12:56 special areas (e.g. difficult terrain)
1:12:56 - 1:15:45 Warded Roofs (forgot that part for the roof pads)
1:15:45 - 1:23:50 Animated doors
1:23:50 - 1:29:00 Vision blocking layers (VBL) on doors.
1:29:00 - 1:33:30 Animated token movement
1:33:30 - end Most of the utility functions (e.g. switch map, show handout, etc.)

Note that the parts about Roofs, Canopy and Foliage have been updated in the below tutorial. It explains additional and functionality like bridges.

Choose BoT features - Shows how to setup the BoT quickly and gives you a quick look at one of its recent features: choosing (and installing) only the features you want. Making the process (hopefully) a bit simpler and easier.

Event Areas - Shows how to set up areas that limit movement and spring traps when moving over them.

Interactive Pads - Shows how to setup Roofs, Canopy, Foliage & Bridges including VBL swapping for houses, make them change or dissapear when you move over them.
0:00 - Quick Install of the Bag of Tricks
2:30 - Roofs
4:00 - Canopy & Foliage
7:00 - Linked Pads
11:00 - Bridges
14:50 - Swapping Vision Blocking Layers (VBL) between house & roof and forcing movement through door.

Note that I've added 'Tunnels' in a later BoT version (and thus not in this video) which work opposite from bridges but are installed in the same way. Read the manual for more info.

ShadowPads - Shows how to set up multi level building where you can 'watch' tokens move on the ground floor map from the first floor map (and vice versa).

Build Forest - Shows you how to build an entire forest with a few clicks. This is a rather old tutorial, but it still works the same. The extra feature that has been added since is that its now also possible to automatically add VBL to all the tree trunks in the forest.

Fleeing Crowd - Shows you how to quickly fill a (town) square with folk and then letting them flee as a dragon lands in the middle of them.

Map Editor - One of my more nifty BoT inventions. It shows how to quickly create a map filled with different tokens.

Invisibility - Shows how to make tokens invisible for players, and how to use spells to 'see invisibility' or 'purge' it or 'dispell' it when tokens get in range.

Animated View - Shows how to set up an animation to introduce your new map to the players buy showing them a pan and zoom view of that map.

Switch Maps - Shows how to setup and use CentreOnMePads in combination with the upgraded Switch Map macro. Which automatically teleports selected tokens AND forces all players consoles to the new map.

Whisperframe (with RPG language support) - Shows how to setup and use the updated whisperframe, you can now speak in e.g. elfish and players who don't speak that language cannot understand what you say.

User avatar
Posts: 9706
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands

Re: Wolph42's 'Drop-in' Bag of MT Tricks v.44 [CoMPad 2]

Post by wolph42 »

_______________________|ALL THE GOODIES IN THE BOT|__________________________
Move related special TELEPORT pad tokens
  • On Map Teleport pads: (PadStart, PadEnd) every teleport consists out of a starting pad and ending pad (paired pads), if you drop a token on one it will end on the other. You can resize or place them anyway you want, as long as its on the same map.
  • Between Map Teleport pads: (Interpad) Any Interpad is automatically paired with the Interpad with the SAME identifier (e.g. '1') on a DIFFERENT map. Again, size and place are completely free, as long as its on two different maps.
  • One way teleports: (PadJump, PadDrop, InterJump and InterDrop) Moving onto a 'Jump' token will transport you its paired 'drop' token. And NOT the other way round. The 'Inter' version can be used for transport between maps.
  • One Way Teleport Border pads: (PadJumpBorder, PadDropBorder, InterJumpBorder and InterDropBorder) As with the one way teleports The big difference with the 'normal one way teleports' is that the 'border teleport' tokens will teleport a token that moves onto OR OVER the special pad. I've added 8 new tokens to the zip file (4 horizontal and 4 vertical as you must NOT rotate the tokens, because the footprint of the token does NOT rotate).
    The inter versions can ideally be used for e.g. large maps where you can build seperate sections on seperate MT maps. This will keep the memory use per map low and will give an easy transfer between to sections.
    The map versions can be used for creating e.g. a closed loop map where the edges of the map are connected. Moving over the edge will automatically transport you to the opposite edge.
  • InterPadBorder, PadStartBorder, PadEndBorder: These are added to complete the list. The Jump/Drop versions (one way teleports) already existed, now the two way versions exist as well.
  • Mapped Teleports: (MappedPad) These pads work similar to the teleport pads, although of these there is only one type of pad and not two like the start and end pad with the 'normal' teleports. When initializing them you'll get a pop-up per map where they exist and here you can set the destination pad. The 'destination' must be a number, so you can if you like also put in forumulas or dice rolls, as long as the result is a number (and as long as a destination pad with that number actually exist).
Move related special EVENT pad tokens
  • Transparent Roofs: (Roof) When a token moves onto a building (with a roof) the roof automatically turns transparent (with a red halo) and return opague again when the token moves away from it. For this to work you will need to install the tabel into your framework inside the attached zip file.
  • Warded Roofs: (Roof) Roofs have now a corresponding 'set roof' macro with which you can assign doors to the roof. If doors are assigned, the Roof automatically becomes a 'warded' area, which you can ONLY enter through the OPEN door. Thus if the door is closed, there is no way a player can move her token onto the roof. If the door is open, a player can ONLY move in the building when it moves her token OVER the door token first.
  • Foliage: (Foliage) Tokens with these names work exactly as roofs, except there will be NO red halo outline for the transparent version AND you can choose to use a different picture to swap with when you move over it. (on default when you move over them their image is swapped with an transparent image from the tables).
  • Canopy: (Canopy) Tokens with these names are automatically given an treetrunk as alternative image when a token moves over them.
  • Warded Areas:(Ward) Tokens that move onto this area are moved back to their original position. They cannot enter the area.
  • Event Pads:(EventPad) These tokens are triggered on certain event e.g. when a token move onto the pad. These events can be set through a 'set event pad' macro. These pads replace the former Pit and Trap pads and allow for a much more versatile use. When the pad is triggered then a macro that you linked to it will run. Extra example is added: trip wire in combination with a net trap (thnx Pinkrose)
  • Linked Pads:(Canopy, Foliage, Roof) Linked tokens are special pads that are activated simultaneously. If you have two or more tokens that are linked by the same link identifier, e.g. 'Linked 1 Roof 5' and 'Linked 1 Canopy 3' (here the link identifier is '1'), then when one of the tokens is activated (by moving a token on top of it) the other is activated as well.
  • Linked Bridge Pads:(i.c.w. Canopy, Foliage, Roof) Bridges are pads that you link with Canopy, Foliage or Roof pads. When you move over a Bridge and then onto a Roof (in one move) then the roof does NOT dissapear (See vid. tutorial for more info).
  • Linked Tunnel Pads:(i.c.w. Canopy, Foliage, Roof) Tunnels work exactly the same as Bridges albeith the opposite effect. So when moving over a tunnel token the roofs disappear, while moving directly onto a roof they won't.
  • Shadow Pads:(ShadowPads ) This allows to watch token movement on map A from map B. Typical use is a 2 story building where you can watch the ground floor from the first floor through a gap in the floor (and vice versa). See vid tutorial for more details.
Move related special EVENT AREAS - Difficult Terrain
These are Areas you can define (and these can take ANY form, with a resolution of the grid) and depending whether a token moves onto, over, off, etc. it will trigger an event (macro). The best use for these are to define difficult terrain areas which impede the movement of a token. For which the 'Limit Movement' macro in the lib:Eventmacro lib is now adapted.
Finally one other good thing of these areas: they're FAST! A lot faster then the token method currently in use.

Move related utilies
  • Group Movement: You can combine tokens into one group. When you move ONE token of that group then the whole group moves accordingly.
  • Group Rotation: When the group is defined you can use the CW or CCW rotation buttons to rotate the group. For snapped tokens the increment is 90, for unsnapped its 45 and its also possible to select a token from the group and set its facing and then click either CW or CCW, after which the group will be rotated to that direction (unsnapped only).
  • Group Formations: For defined groups (or a group of selected tokens) you can set different formation like, square, wedge, line, echelon, spread and compact.
  • Centre on token: When a player moves a token the screen will be centred on that token (for that client only)
  • Centre on Token: Added toggle to the settings where you can turn on continuous centre on token. This will force a centre on map for every token moved. (only works for single token move).
  • Restore FoW (Fog of War): When a player moves a token all the FoW will be restored and only the PC visible areas will be cleared. This function has the extra advantage that the VBL lag bug (game gets very laggy after a while when there is a lot of VBL on the map) is ommitted.
  • VBL (Vision Blocking Layer) move check: This function is created by Aliasmask. It can also be found on his lib:Players. However to make both libs compatible I've added it to the BoT so it can be turned off on lib:Players. This function checks EVERY step of the just-moved-token and checks whether it can see into gridcell its moving into. If not then the movement is halted. This function too has the extra advantage that the VBL lag bug is ommitted.
  • Path Tracking: Added toggle to the settings where you can turn on path tracking. This will show small feet in the grid cells where the last token moved. Red for NPCs and blue for PCs.
  • Lock Movement: This is a toggle on the macro panel that will lock down the movement of ALL tokens. Only the gm can move the tokens now. To use simply hit the macro button and hit it again to allow movement again.
  • Lock Token:Similar to lock movement, only this works on the individual token. It prevents the token from being moved. Both by player and gm! To use: select one or more token. Click the 'lock token' macro. There is a general toggle in the settings to turn this feature on and off.
  • Invisibility Purge: a couple of functions with which you can make tokens invisible and also set invisibility purge on on other token to detect the invisible tokens. The detection is ranged based.
Utility macros
  • Set Light: A macro whith which you can easily set lights sources on tokens
  • Rumbles Dice Box: A frame where you can set a pool of dice that you can roll in one click. I have used Rumbles code and layout as a basis and rewrote most of it. Noteably I've added 'options' so you can fully customize the frame.
  • Show Token Handout: A macro that forces a pop-up on ALL clients showing a token handout (gm only).
  • Switch Map: A macro that forces ALL clients and selected tokens to the chosen map AND forces all views to the centreOnMePad (if its on the map)(gm only). Additionally multiple centreOnMePads are allowed if the name is followed by a location identifier e.g. centreOnMePad First Floor and centreOnMePad Second Floor; these location will show up on the switch map macro menu (after a re scan, also available in that macro).
  • Seek token (updated): A utility that scans ALL maps and ALL tokens returning a list of all tokens that match the search string. Updated with a wide variety of options, biggest change is showing the results as macro links which allows you to either Copy, Move or Select the token.
  • bot_debugInfo(): A macro that shows all kinds of debug info (primarily for tracking variable values), with several optional settings.
  • Aliasmasks Disguise macro: A macro that allows you to add extra token images to a token, so you can e.g. 'polymorph' during gameplay into something else.
  • LMarkus & W42 Whisper Frame: A frame where you can whisper (with some text formats) to one or more players without needing to use the /w option. It also includes an impersonation feature so you can speak as another token, without needing to actually impersonate it. Next to that it supports languages and 'overhear' so even if characters know you're talking...if they don't speak the language, they can't understand you!
  • Rumbles Delete Macros utility: A macro that allows you to copy/paste/delete macros from/on a selected token onto another token.
  • Plothos Message Manager uttility: A macro that allows you to create and store messages for players.
  • Event Buttons: A macro that links a lib:EventToken macro to a token. When the token is selected, the macro is activated. Usefull for e.g. switching maps.
  • Benchmark: A macro specially developed for macro developers. It can be used to discern the execution time for a certain macro.
  • Map Diagnosis: A macro that checks ALL maps and ALL (lib)tokens for potential issues. It checks whether token names contain non-alphanumerical characters and checks the libs for the same and owner ship and visibility. Any errors are rendered in a frame with hyperlinks that lead you to the token.
  • Token Name Cleaner: A macro that detects and cleans up characters in token names that are incompatible with the macro system in maptool.
  • Bubblobills Input String Builder: A macro with which you can easily create the code for a complex input string.
  • Nildiks Fancy Frames: Two macro functions that allow you to show fancy frames around the 'frames' you usually show to the players.
  • Nildiks Room Description Token: The Room Description token allows you to easily access a description of the area where the players are AND to easily share texts (e.g. pieces or parchments, treasure etc) and images (of e.g. encounters) with them in one overview
Macros in the BoT menu:
  • Create Table: this macro opens a form in which you can copy paste a table straight from excel. Beneath it you can set the title of the table. The checkbox enables you to view the table afterwards and edit it. This is NOT a maptool table but a Bag of Tricks table. It will be stored on lib:EventMacros. The advantage is that its dynamic and it allows multiple columns.
  • Show Table: this macro shows you a list of available tables. The one you pick is shown in a form in which you can edit the values.
  • Delete Table: this macro shows you a list of available 'Bag of Tricks' tables that you created using 'Create Table'. The one you pick is will be deleted from lib:EventMacros
Table Functions, these only work for the 'Bag of Tricks' Tables, stored on lib:EventMacros:
  • bot_table(): with this function you can retrieve a value from the stored BoT Tables.Usage: bot_table('name of table', optional: 'column', 'row', ). Both 'column' and 'row' can either be an index number or the name of the row/column. Leaving them empty will result in a random choice.
  • bot_listBoTtables(): returns a list with the stored BoT Tables.
  • bot_listMTtables(): returns a list with the stored Maptool Tables.
  • bot_getRows('table name'): returns the row names of the given BoT table
  • bot_getColumns('table name'): returns the column names of the given BoT table
  • Animated Doors: Full functionality to setup animated doors, both single and double. Including support to activate them in at least 5 different ways
  • Sliding doors: I guess that tells the tale...
  • VBL on Doors (b89+): As from MT version 89+ the VBL on doors will be automatically adjusted
  • Animate Token Movement: A macro and macro button with which you can animate the movement of one or more tokens. See video
  • Animated text: Both a macro that can be called and an input screen to do it on the fly. This will pop up a frame on every client pc showing a frame where a delayed text is printed in
  • Animated View Area A utility that allows you to set up pan and zoom actions on the map you're viewing as way of introducing a new map to the players. Once the animation start it runs independently on all clients. (see also vid tutorial)
Map Creation macros
  • Scatter: Select one or more tokens, set an area and a number and copies of the tokens will be randomly scattered accross the preset area. Ideal for e.g. rocks, trees, or a chaos warband.
  • Building A Forest: A macro to build a big forest FAST and have it ready for the Canopy 'Trick'. This is a specialized macro based on the 'Scatter' macro
  • Summon tokens: A macro with which you can summon tokens from the 'BASE' map onto the current.map . The location you can set by hand or you can summon it onto a selected token.
  • Token door switches (with proximity check): Set up a door with a switch token that corresponds with that door when you click on the switch. Option for the gm to 'Lock' the door, so players can't open it. You can also set a proximity check, that checks whether a token of the player is close enough to open the door.
  • Fill Area: A macro that with which you can quickly fill an area with tokens (also useful for creating special areas).
  • Group (Select): Create groups of tokens. When you select one token of the group, all the tokens are automatically selected.
  • Draw Order Edit Panel: With this panel you can edit the draw order of the selected tokens, rotate them individually, random or as a group. It also contains layer and shape dropdown list.
  • Crowd Movement: An new set of macros that allows you to fill a e.g. Town square with tokens (forming a crowd), which can then 'flee in panic' when the fight goes down.
  • Map Editor: Two new macro to create a field on the map where its VERY easy to place token, used for map creation. Try it out for more info.
Vision Blocking Layer (VBL) macros
  • VBL to doors. Toggling a door will give the following options: look through key-hole, look through window, crack door open, open door half way, open door fully. The VBL will be adjusted accordingly
  • VBL Stamps on tokens. With this macro you can add a VBL layer upon a token that 'moves' with the token. (Its not really ON the token, but erased and redrawn as you move the token). Possible VBL are Square, Rectangle, Line, Regular Polygon. With a bunch of extra options (like offset, scale, fill, etc.).
  • Roof VBL Swap: in addition to existing Roof swap function, an option is added where you can store the VBL currently on a building and swap it with a VBL cross shape. Hence from the outside players can see the partially and as soon as they enter the building the VBL of the roof is swapped with the VBL of the building.
  • Drawable Polygon Stamps: in addition to the 'normal' stamps, you can now also save ANY VBL currently over the token as a stamp. So you can draw VBL over a token as you normally draw VBL and the store that VBL as a stamp onto the token. This is particularly usefull for dungeon tiles where you can store the VBL data onto the tile and then copy paste the tile over the map.
  • Mass VBL. This function will draw VBL on ALL tokens that match a (partial) search string. Its mainly intended for roofs and canopy but options (selection, all, layers) have been added to use it for other purposes. This macro also contains 2 different scaling techniques to apply the VBL onto the token. Finally you can also store the ENTIRE VBL structure and you can use Toggle VBL to turn that on or off
  • Toggle VBL. This function corresponds with Mass VBL. In Mass VBL you can store all the added VBL and with this function you can turn it on or off instantly.
  • VBL Grenade. This function will erase ALL VBL in a given radius (in grid cells) around one or more selected tokens.
  • Macro Panel: A macro that initiates a macro panel containing all Bag of Tricks related macros
  • Alternative Initialization: This method is map specific and meant for maps that use a lot of pads (>100) it calculates each x,y position of the pads on the map and saves it on an array of lib:tokens. This speeds up the move process a lot.
  • Force Selection: To use with 'Always on Top' application. With this feature you can force a client slave to have the same button selected as you have on the master. Read the manual for more info. Usefull for those that like to use Full Screen Mode but still have a chat window and macros available. (and working)
  • Load Map and Coordinates on Start Up: This feature can be found in the settings, where you can set the map to load on start-up and the coordinates (or token name) on that map to go to.
  • AssignedPads: Teleport pads that are linked to a specific token, can be used for a mass invasion!
  • Full Screen Mode: A setting which allows you to enter full screen mode, but still have access to the BoT menu and macros. Toggling is done with F2. Note that dialogs are used which show in Full Screen mode BUT if you click on the full screen then they loose focus and are send to the background. You can use alt+tab (windows) to get them back.
Functions Manual
As of version 19 The BoT contains an extra manual with a description of ALL available functions you can use in your own code. Just click 'Manual' macro and two manuals will pop-up. One is the classic manual, the other is the function documentation. Examples are bot_animateText(), bot_getValidTokens(), bot)AnimateToken().
  • Message function Message macros. Version 20 contains an update not readily available for most but in the form of a new macro set. Message macros. For example: [h:bot_message('This is a message', 'This is the header', 'black-white', bot_all(), 'Wolf', 'Prey')]. This will broadcast a formatted message with a header containing both the images of the Wolf and Prey token and the header text and with black background color and white text. I've also included 'user' macros like bot_all(), bot_self(), bot_gm(), etc. that return a json array with the users in question. Read the macro manual for more info.
  • Retrieve User functions These function can be used in conjunction with the bot_message() macro but also for other purposes. They return a json array with all the names of the appropriate users. Examples are bot_self() (return name of macro initiator), bot_gm (return all gm names), bot_ownergm() (return all owners of the currentToken and gm names), bot_nself() return everyone but the initiator of the macro.
  • Geometric functions: These function can be used to select tokens in a shape (cone, circle, line, triangle, square), draw that shape or check if a point or tokens is in that shape.
A screenshot of one map with some explanatory visuals for the different types of teleport pads:

Some features elaborated:
I've added an extra map with a demo of how to implement Event Pads that limit the sight of a token that moves over it, slowly decreasing the sight of the token as it moves further into the fog.
This is based on an earlier discussion with Aliasmask and Lonewolf.
Added the possibility to set an alternative image for the foliage (and roofs). For this you need to check the checkbox in the settings and load the alternative image in the 'token handout' section of the token. Here an example (based on a neat trick learned from RecklessEnthousiasm)
Note that for this you do not need to load the table (but without the table you do need to set an alternative image for every roof and foliage token)::
Granted 'Auto-roofs' sounds a bit weird. Anyway, this function automatically removes a roof when a player walks 'into' a building and replaces it when he walks out of it.
To implementation just import the attached table into your FW, name your roofs "Roof 1", "Roof 2", etc. and set the total number of roofs inside the maprelated macro.
Moving in:
Moving out again*:
*yeah the first and last image are the same screenshot, but its to represent the effect ;-D

User avatar
Posts: 9706
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands

Re: Wolph42's 'Drop-in' Bag of MT Tricks v.44 [CoMPad 2]

Post by wolph42 »

  • YOU CAN ONLY HAVE ONE "ONTOKENMOVE" MACRO IN YOUR CAMPAIGN. So if you e.g. create a backup of the old lib token, you will have 2!! One on the backup lib and one on the new one. Stuff will go haywire!! (actually you *can* have two ontokenmove macros within a campaign, but they will both be activated on the event, which very likely will have unpredictable results. In short: its bad practice)
  • DO NOT put the lib:tokens anywhere else then in the TOKEN layer and make sure that they're visible to players.
  • ERRORS DURING SETUP: first make sure that there is a lib:EventMacros token on the same map as the lib:OntokenMove. If that is taken care of then its possible (likely even) that you get al kind of input requests when you run the settings. Just click OK (NOT Cancel) as long as needed (can be upto 20 clicks) and finally you will see the settings panel. Check the BASE map location and click ok again. If you run settings again you should no longer get any pop-ups.
    This will happen again when you upgrade. The reason is that if I add new settings option, then these are stored AND retrieved from lib:EventMacros. The first time however they won't be there and thus the requests. After you click ok all the variables will be there, until you upgrade again.
  • THE PADS DON'T WORK: There can be several reasons:
    1. the onTokenMove event is turned off. This can be checked by checking te name in group 2. on the lib:OntokenMove: if it says #onTokenMove its turned off. Hit the "Turn On Token Move Event On/Off" macro.
    2. you just dragged the libs onto your map and you forgot to run onCampaignLoad (or save and reload the campaign file)
    3. you forgot to run the settings.
    4. 'visible to players' is turned off. Double click on token --> config --> check the checkbox on the right 'visible to players'
    5. SNAP TO GRID: if you turn this off then pads will ONLY work when you MOVE ON them. In ALL other cases like MOVE OVER or OFF they WILL NOT WORK. This is a limitation of Maptool. (getlastpath() for unsnapped tokens will only give the start and end position.).
    6. Non alphanumeric characters in the token names e.g. "rak'Gol". This can lead to all kinds of random errors. Alphanumeric: a to Z and 0 to 9. Non Alpha: ",.;""{}[][email protected]#$%^&*" etc. ESPECIALLY comma's, and quotes can be killing.
    7. Mapname is a number e.g. "3", in this case the interteleports won't work. change it to e.g. "m3" or "map 3" to change it into a string, then it will work.
    • Make sure that you have the VBL option checked in the settings
    • Make sure that the door image follows the 3 basic rules (see BoT manual for more info on that)
    • Make sure that you are NOT using the 'more robust Eval() function' described here (this will result in the same VBL option being repeated when using it.)
  • ERROR: if you get an error 'Error executing movedOverToken: the token name or id {1} is unknown.' this means that the code is looking for a token that is not on the map. Run the 'Initialize Pads' again from the campaign panel and look through the report.
  • ERROR: if you use a interteleport and on destination you're asked for coordX and coordY then the two paired interteleports do NOT have the same name/number. Run the 'Initialize Pads' again from the camapaign panel and look through the report.
  • ISSUE: when snap to grid is turned of and you try to teleport more than 2 tokens that overlap, the teleport MIGHT not work.
  • ERROR: Can't find map '1' (or any other number). If you name your maps 01, 02 or 001, 002, etc. then in the code MT script will transform these 'numbers' into real numbers: 1,2,etc and those maps do not exist. Next to that, the interteleports (teleport between maps) will not work for numeric named maps. So make sure that the map name cannot be recognized as a number by adding a alphabetical character to the number e.g. 01m, 02m, etc. also.
  • ISSUE: Switch Map and Token Handout macros won't work for one ore more players. This happens when one or more of the players has non-alphanumerical characters in their name e.g. "[email protected]'Gol (The Terr!ble)" and/or the number '1'. So "Player1" for a user will also break, "Player2" will work. (no clue why).

User avatar
Posts: 9706
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands

Re: Wolph42's 'Drop-in' Bag of MT Tricks v.44 [CoMPad 2]

Post by wolph42 »

__________________________|DOWNLOAD LINKS|__________________________

IMPORTANT: The .rptok files are actually zip files. Windows Exploder is sometimes a bit too enthusiastic and changes the extension to .zip after the download. If this happens change it back to .rptok (keeping in mind that the 'special pads.zip' actually IS a .zip file, so don't rename that one!!)

Compatibility: all files are saved in MT 1.5.6 but should be backwards compatible to 1.5.0.

Rptok file: Wolph42 - Bag of Tricks v[LATEST].rptok (= lib:OnTokenMove)
This is the actual BoT!!
This file is THE BoT file. Whenever you want to update to the latest version this is the one!! Don't forget to run the BoT's settings macro after you've replaced it with a newer version!!
Rptok file: lib:EventMacros.rptok
This contains specific settings...
On this file all your campaign related material is stored like: settings and special macros. DO NOT UPDATE THIS FILE or you will loose all your campaign related settings!! You only require this file during installation.
NOTE: this file is ALSO in the 'special pads zip file'!!

Special pads zip file: Wolph42 - Bag of Tricks - The Special Pad Tokens.zip (last updated for version 44)
What's in the zip
  • several .mttable file Depending on which features you want you need none, some or all installed. You can import this table through the 'tables' panel in maptools.
  • Example pad tokens (as you can see in the screenshots). You do not need those as only the name of the token is important but they are neat and useful nonetheless.
  • Some (state) pictures some BoT features (like door buttons), require states to function. These pictures are optional to use to create those required states, but other images can be used instead.
  • a lib:EventMacros (same one as in the above link)
Campaign file: Wolph42 - Bag of Tricks.cmpgn LIVE VERSION!
What do I do with this?
The campaign file contains everything from the screencasts and screenshots and you can use it to have a look or test things or see how its done if you don't get it to work. You can also use it as a base where you import your own maps into. Do note however that the 'distance per cell' is standard set to 1 (metric system: e.g. Dark Heresy) and not 5 (imperial e.g. D&D). This you can change through the settings.
'Live' means that when I'm making changes or creating something new I do that in this version and save it inbetween. This means that its possible to download this file while Im making changes.

User avatar
Posts: 9706
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands

Re: Wolph42's 'Drop-in' Bag of MT Tricks v.44 [CoMPad 2]

Post by wolph42 »

Version History version 40 and higher

Version 45
New Features:
- Full overhaul of the whisperframe. It now supports languages, meaning you can send messages and only those who speak the language can understand the message. (that and other stuff)
- Added changeElevation and getRangedDistance macros. Further worked required to integrate,but they work. Elevation is now taken into account when using the invisibility functions.
- fixed bug in ontokenmove with linked eventtriggers (these are created in lib:eventmacros and linked in the settings to the ontokenmove event)
- Also changed the naming for better understanding and added clarifying texts.
- fixed issue with resizing roofs when using the transparent roof option
- updated invisibility, need to check if it works.
- fixed macro buttons layout (removed the padding)
- fixed dicetool issue, but expect a LOT more issues due to newly introduced 'bug' in MT
- fixed switchmap issue I think 3x over
- removed [v40 history from this macro
- fixed idiot mistake in broadcast OCL (started manual when connecting to server)
- fixed division by zero bug in crowd control
- fixed all http links in the BoT (broken due to new topic or dropbox screwing things over)
- added additional argument to 'seekToken()' function to force json output

Version 44
The new Features:
- its now possible to add a piece of text after the 'centreOnMePad' tokens e.g. 'centrOnMePad First Floor' AND have multiple 'centreOnMePad' tokens like this on one map. When you use the 'switchmap' macro these location will show up and the map will centre on the location chosen!
- when you load the campaign youll see a blue button in the chat with the manual
Other changes are:
- Shadowpad tokens are now one size smaller than the original token (unless they're freesize or fine size).
- Added fix to 'set reference' macro for shadowpads. It cleans previous settings from the pads, should they reside there. Can also be used to fix a broken shadowpad.
- Fixed wrong referencetoken calculation for shadowpads and other stuff wrong with shadowpads
- Fixed door VBL compatibility for later versions of MT.
- Fixed issue with Nildiks room descriptor.
- applied Derfs' fix for door lever proximity
- fixed feet when moving through vbl
- Added overview of turned on Toggles (in the BoT settings) during OCL (on request of bobifle).
- Renamed 'titlelink' tag in Nildiks room description to 'title' tag.
- Made 'title' tag generic (as in its fully optional, resets after use and can be placed for any of the Nildiks special tags.
- Updated the descriptor help and added a 'copy paste' section where the links can easily be grabbed.
- Added Room Descriptor Help button to menu.
- Implemented Nildiks room descriptor update (titlelink and infolink).
- Fixed stupid mistake in summonToken macro created while working on Embarkation.
- Fixed error report when setting door animation to 0.
- Fixed hard coded invisibility states.

Version 43
New Feature: added Embarkation of tokens into vehicles or containers which you can then use to move the tokens around.
- fixed bug in limit movement.
- fixed bug in delete properties.
- fixed bug in disguise button.
- added 'cycle disguise' macro, not added to the enchilada
- added bot_message() width parameter also to header text on suggestion of full bleed.
- added additional parameter to bot_message() to allow you to set the width of the table.
- updates to the function manual.
- added bot_getTokCDistance() including manual entry. Function calculates distance between the corners of two tokens, returns distance in either cells, pixels or dpc
- added back link to the introduction window
- fixed error message on clean install

Version 42
Added Vew Area Animation. Three functions to create an 'animated overflight scene' for your players. On a new map you can run a macro and then all the views of the players are moved over the map while zooming in or out. The animation is based on the lastpath of a token. The macros are:
- Set View Animation: turn the last path of a token into a view area animation
- Link View Animations: link the animations of several tokens into one big animation
- Run View Animation: select the token where the animation is stored and run this macro to show the animation on ALL clients.
Exanded the invisibility functions. All available macros and corresponding functions now are:
Start Invisibility       bot_startInvisibility()
End Invisibility       bot_endInvisibility()
See Invisibility       bot_seeInvisibility()
Saw Invisibility       bot_sawInvisibility()
Purge Invisibility       bot_purgeInvisibility()
Purged Invisibilit       bot_purgedInvisibilityy()
Anul Invisibility       bot_anulInvisibility()
Annuled Invisibili       bot_annuledInvisibility()
See manual for more info concerning these macros.
Added these functions to the BoT Virtual Macro Panel. And fixed the original invisibility buttons on the campaign panel
Other stuff:
Fixed FU in bot_getTokenFacing()

Version 41
New Feature: This new version contains a full set of macro to make use of invisibility and invisibility purge. It works with onTokenMove and checks for purgin when a token moves. See the manual for more info.
Other stuff
- Updated manual for bot_getTokenFacing() and bot_setTokenFacing(), the descriptions were erroneous (the functions remain unchanged).
- added Jamz purple feet (invisible tokens) .
- setDoor can now be used when multiple doors are selected. ALL doors will be set according the given settings.
- fixed handout text issue.
- Experiment with follow me tokens (maybe for future follow me random dungeon).
- Added size options to polymorph/disguise macro. And fixed a bug in there as well.
- updated clean token names (search and replace characters. Added semicolon and open character.
- set 'allow players to edit macro' back to false for 177 macros
- updated installation instructions
- fixed settigns bug in 40b
- fixed vbl check OCL for MT 1.4+
- tbl check in manual

Version 40
On request added a 'BoT features' options list. This will pop up on first install and you can choose which features are available and which not. It additionally shows an entire overview of all features and the required dependencies needed to use certain features. To accomplish this.
The other stuff changed:
- Complete overhaul of the virtual menus, faster now and more versatile.
- The optional features now influence the virtual menu.
- Diagnose is now updated with the foptional features as well.
- Settings has been updated with the optional features
- upgraded bot_showHTML to better format the html output.
- removed 'player editable' from 179 macros on ontokenmove to prevent A LOT of debugging headache...
- Reorganised all macro groups.
- Fixed small FU in onselect frame.

User avatar
Posts: 9706
Joined: Fri Mar 20, 2009 5:40 am
Location: Netherlands

Re: Wolph42's 'Drop-in' Bag of MT Tricks v.44 [CoMPad 2]

Post by wolph42 »

Version History before version 40

Version 39
Added new macro: clean token names. This macro checks all tokens on all layers (optional) for characters (optional) that potentially might cause a bug in a macro and automatically fixes these (if the user wants)
Other stuff
- upgraded Diagnose to check for additional characters in a token name. Made the thoroughness of this check optional.
- upgraded Diagnose to check for trailing and leading spaces in a token name.
- upgraded Diagnose to check for tokens with a numeric ID.
- removed some taipoz
- small offset fix in teleports for small grid. Uncertain though to the repercussions, so futher testing required
- changed getSelected to getSelectedNames in ontokenmove to circumvent the id truncate issue
- tweaks and bugs in map editor!!
- add movetohidden & token macro for the map editor!!
-updated diagnosis to check for presence of additional tables

Version 38
New Features: Nildiks Frames and Nildiks 'Room Description' Tokens have been added. See manual for more information.
- Fixed issue when using 'resize pads' icw 'do not move to map after teleport' icw jump drop pads, option 2 and 3.
- updated text for animated door setup.
- updated oncampaignload on onTokenMove to take care of the 'no gm' bug.
- changed OCL to prevent strange bug
- fixed bot_table
- fixed bot_getColumns
- Fixed two bugs in the VBL stamp code
- Create a 'Set VBL Stamp' entry in the manual under UTILITY FUNTIONS.
- Token move animation now also works in grid pixels (instead of grid cells), but i haven't tested the bounce yet, so at your own risk.
- added bot_snapToGrid(token) function
- added Snap To Grid option in settings. These can be used to animate smooth token move and still have the tokens snapped. (When tokens are snapped, animation will always be in steps of grid cells)
- upgraded Diagnose to check for tokens with a numeric ID.
- taipoz
- small offset fix in teleports for small grid. Uncertain though to the repercussions, so futher testing required
- changed getSelected to getSelectedNames in ontokenmove to circumvent the id truncate issue
- tweaks and bugs in map editor!!
- added movetohidden & token macro for the map editor!!

Version 37
New Features:
- Map editor. This is a tool to quickly and easily create a full map, without the need to copy paste every token all the time!!

- Input string editor, as created by Bubblobill. This is for scripter to swiftly create an input string for use.

Other stuff:
- left rotation animation now also possible
- removed pause from rotation animation
- added runMacroFinal to animatemove, to be executed when animation is done.
- fixed deferanimatemove when you have both a translation and a rotation at the same time
- Fixed issue in Diagnose which did not detect ',' in map names
- Heavy update of the 'delete properties' macro. Added lots of options
- clean up of tokens.
- small bug fix in select on line.
- Added 'Move Crowd Plus' - an upgraded version of 'Move Crowd' albeith much slower.
- Added that and 'Choose Crowd' button to the panels.
- Small tweaks.
--> due to the addition of 'Move Crowd +' the state 'Prone' is required.
- fixed deferRemoveToken
- fixed selectOnLine
- added sort option for selectOnline (sorts in order of distance from origin)
- added moveCrowdPlus (requires Prone state) whic gives a more realistic movement of the crowd and also dissolves it when it reaches the border of the square.
--> due to the addition of the sort function, the lib:fixb90 is now required to use that.
- update on bot_getTokenFacing, added option 2, to NOT add the +90 degrees
- updated bot_selectOnLine() which is now MUCH faster
- Crowd now allows for mulitple Antagonists
- more small bug fixes in crowd build macro
- small bug fix in crowd build macro

Version 36
New feature: Crowd. Three new macros. One to select the images to form the crowd. One to create a square filled with tokens forming a crowd and the last macro to disperse the crowd away from the antagonist.
- added bot_pauseTime()
- added bot_resumeTime()
- Added setting 'Force Token Selection'.
- additional Fixes 'startup map'.
- Fixed 'startup map' bug.
- changed 'errorChecks' to 'diagnose'.

Version 35
New feature: Map Error Checks. This function checks ALL maps and ALL (lib)tokens for potential issues. It checks whether token names contain non-alphanumerical characters and checks the libs for the same and owner ship and visibility. Any errors are rendered in a frame with hyperlinks that lead you to the token.
- pulled out the error checks OCL to a seperate functions

Version 34
New feature: Tables
This feature allows you to add, edit (both dynamically and through a form) and delete tables on lib:OnTokenMove. The values can be accessed through the function bot_table(). More info can be found in the manual.
- Added explanation on how to create a polymorph table to use with AM's 'disquise' tool.

Version 33
New feaures: Added Geometric Functions (quite a bit of them). They support selection of tokens, point check, draw shape, for the followin shapes: Circle, Cone, Triangle, Line and Square.
- Added extra check to see if lib:eventmacros is to be found in the campaign file.
- Added functions bot_round2Grid() and bot_dpc2GridCoord to the functions manual.
- updated OCL text for doors.
- small fix in set vbl stamp.

Version 32
New feature: added New function: Benchmark.
- made sure that removeVBL() does not render any errors when run
- fixed switch map in virtual bot menu
- updated limit movement macro on the evenmacros lib to allow for properties and added more comment
- updated settings movement limitation tooltip
- Updated vblGrenade to both a function that can be called and a function that when given the argument 1 it automatically clears vbl on selected tokens. Also added that function to the input screen.
- set door updated. check for present VBL and if there, add checkbox that allows to clear the VBL on door. It was not possible to clear just the door VBL but it IS possible to clear ALL vbl on the door.
- set door now detects the presence of a double door and checks the box if one is found
- fixed blank line issue ontokenmove
- added eventMacroPreTokenMove and eventMacroPreMultipleTokenMove to the settings and ontokenmove events. This allows to insert code AFTER initialization but BEFORE code execution
- changed 'west' to 'east' for door handles
- added option in doors to add door name to gm notes
- added none to the roof halo colors in the settings
- fixed key hole and window door view
- added new util: Pad Explorer. Shows all special pads on current map
- added quick selection links to the initialize pad results
- corrected halo option for linked pads
- further improvements to useDisguise (if multiple tokens on map have the same image, only one is shown. Self is NOT shown and if no visible images on map then the tab is not shown)
- added warning for non square doors
- updated use disguise to also use polymorph table and visible images on map
- several text updates on suggestion of Oryan
- Added setting where you can set the roof halo color (in the settings)
- summon token no longer shows empty lists
- fixed issue with initialize pads

Version 31
- full check and LOTS of fixes in the doors VBL (my god that was buggy)
- dito for VBL stamps, still had issues with remnants of VBL remaining with rotated tokens
- full VBL support check
- added delete all props to BoT menu
- use red color during OCL to indicate errors
- minor rewrite of the BoT virtual menus
- moved 'difficult' settings to 'system' tab in settings
- create 'scale teleportation' settings, so teleporting from the lower right of a enormous teleport, will put you on the lower right of a huge teleport. (instead of the relative position of the upper left corner of the teleport
- expanded setting 'change to map after inter teleport' with the option to store coords of interteleport pads first. This way you can use the option without reloading the map. Drawback is that need to rerun initialize maps after moving the teleport.
- fixed alt init pads coords value
- alt init lib coords pads are removed if alt init process is aborted (under usual circumstances)
- initialize pads now also checks for the existence of lib:coord files and if there, warns the user.
- added new function (also documented in manual): bot_findDuplicates() which returns all duplicate token(name)s from all layers on the current map.
- fixed initalization bug in shadowpad

Version 30
- Added shadowpads, updated manual

Version 29a
- fixed when you teleport from an activated roof, the roof is de-activated

Version 29
New feature: Added Tunnels, same as Bridges, but reversed (so the roofs only remove if you move over a tunnel token).
- finally mananged to keep bridge and tunnel tokens consistent when moving over them (if you move over a bridge onto a roof it does not disappear, however if you move again from one roof to another without touching the bridge token, the roofs disappear. This is now fixed.).

Version 28
New feature: Bridge pads, to be used icw Roofs and linked pads.
- fixed issue with roofs and doors
- fixed issue with VBL on roofs
- added new function bot_removeVBL(token), which removes all VBL data from the token.

Version 27
New feature: Event Buttons. You can set any token up as a 'Event Button'. When that token is selected a macro (of you own design) is activated. This effectively turns a token into a macro button.
- rewrote bot_switchMap() to allow optional arguments (mapname and playerlist)
- Added bot_switchMap() to the documented functions
- created work-around for varsfromstrprop bug in MT. in ontokenmove
- Updated manual with a seperate section on Event Pads and Event Buttons

Version 26a
- fixed MAJOR bug in ontokenmove, without a linked token the bot didn't work
- fixed cleargroup macro

Version 26
A lot of major changes, the big ones
- I've removed the 'numeric restriction' to the special pads. That means that instead of 'PadStart 1' and 'PadEnd 1' you can now also use 'PadStart Sea Level' and 'PadEnd Sea Level'. This does mean that you will need to be a bit more careful with tokens as now EVERY token that starts with a special name will be indentified as such. Fortunately there is the overview form at the end of the initialization which shows you the results. So keep a close eye on that one. I did however add a setting 'numeric Id only' in the settings, which you can check so it works again.
- Linked Pads. This works for Roofs, Canopy and Foliage. You can now link these tokens together by an identifier. E.g. 'Linked 1 Canopy 1' and 'Linked 1 Roof 3'. All 'Linked 1' tokens are linked so if one of them is triggered, then they are ALL triggered.
New features:
- fully operative stamps. The stamps can now cross VBL sections without distorting it.
- dito for doors, they won't cut out vbl walls anymore
- added a new option for roofs: swap VBL, it will have a cross when tokens are outside and it will swap for the room VBL when inside.
- add rotation to animate move
- updated function manual
- integrated Aliasmasks Disguise macro, and added an extra feature: you can also create a disguise list by selecting image:tokens together with the disguise token.
- integrated LMarkus whisper frame and added an extra features: Impersonate selected token and text formatting.
- integrated Rumbles Delete Macros utility. Added extra features: copy/paste function and a 'all macros' panel where you can meta select all macros or groups of macros.
- integrated Plothos Message Manager uttility. Added features: text formatting and adding pictures.
- added check during initialize map to check whether roofs are snapped to grid (which they shouldn't
- updated 'set doors' macro with additional info. Also apply VBL is turned on per default.
- Fixed the token handout. The frame sizes together with the image. Also lowered the default setting from 700 to 500.
- fixed issue in debuging for where you leave out the macro name
- removed a couple of stray 'pause()' debug spots.
- added text field to the handouts
- tested all macros and fixed numerous bugs (some of which I do not understand why I never encountered them before)
- By True_Hitoare: fixed numbering bug in toggle doors, removed the 'auto-open-with one door only' and a visibility check.
- removed redundant error check on initialize pads. BoT also works with over 4000 tokens
- add extra error check and optimization on the initialize pads macro.

Version 25

New features:
bot_debugInfo(). This macro you can put anywhere in your code for debugging purposes. It has several features, described in the function manual. Typical use: [if(debug=1): bot_debugInfo('variable1, variable2, etc.')], and at the top of your macro you can set [debug=1]. This way you can turn debugging swiftly on or off. Per default debugInfo() parses the value to the chat using broadcast() so if the error happens AFTER the call, you'll have the values. Next to that it will show the currentToken, impersonatedToken, and has the option to use pause().

Z-order panel: a panel where you can rearrange the order of the tokens on the map, works on selection base. It has extra functions like:
- set layer
- set shape
- rotate tokens
- rotate group
- rotate random
- reset rotation

rotateGroup(). This macro allows the rotations of a group of selected tokens of different size, while keeping there relative distances intact. The condition however is that the participating tokens must NOT be set to 'freesize'.

Other changes
- Optimization group panel
- updated manual with debugInfo and rotateGroup
- added settings to maximize the number of selected tokens at which panels stop operating
- fixed bug in sliding doors (no animation)
- fixed bug in show area tokens
- fixed bug in animate text
- fixed bug in assignedPads (macro call)
- added timer function and removed Cif's timer lib.
-- bot_startTime: starts/resets the time
-- bot_subTime: gives the time since the last subTime (or startTime if its the first)
-- bot_totalTime: gives the time since it was last started/reset
--- The latter two functions can be given '1' as parameter to return the time formatted: 1h3m2.324s. Else they return ms.
- fixed selection issue in group (select)
- fixed resetFoW bug in ontokenmove
- overhaul of group rotation, added a new function and it now supports rotation of different sized tokens. I removed 45 degrees though.
- generalized the time out macros.
- Fixed issue with door animation closing directly after opening
- last bugs (hopefully) from the group select panel, which was INSANELY difficult to fix. MT does some really strange stuff like negating selections when it fire off the onchangeselection function (4x)
- group select now allows for multiple selections (so you can select two groups and other tokens in addition.

Version 24
New feature (as always when I increase the version number): Group Select Functions. Three macros in total 'Group (Select)', 'Ungroup (Select) and 'Activate Group'. With these macros you can create a group that will act as one object. When you select one token of the group, all other tokens will be auto-selected as well. This is particularly usefull when creating a map with tokens and you want a set of tokens to act as one object. These 'select' groups have nothing to do with the 'move' group functions (aka formations) which is explained in more detail in the manual. For this reason I've renamed the group move macros to better distinct them.
Other changes:
- Updated seektoken to match all when search string is left empty: ' '.
- added extra check OCL: all lib:tokens on BASE map will be checked for ownership. An error is reported when ownership is set.
- VBL stamps are now also supported by multiple token move.
- on request of Jamz, added proximity check to 'toggle doors' macro. A gm can use the macro without selecting a pc token, a player must have a player token selected before this macro works. It then shows a list of doors to open where you're close to enough.
- fixed incompatibility issue with VBL check and draw polygon VBL stamp
- added snap to grid and extend vbl for draw polygon VBL stamp
- two fixes in the vbl stamps
- minor tweaks in the polygon vbl code
- the macro panel now works without the img_table installed
- added setting to turn off the messaging checks oncampaignload
- updated OCL to check the existance of the VBL_Brush token

Version 23
New feature: Multiple Polygon VBL Stamps. What this means is that you can add (more then one) vision blocking layer to a token. This is particularly usefull for Dungeon Tiles. You can add the VBL to the tiles, save them and then copy paste them over the map and then activate their VBL. I've also went one step futher and added a 'draw mode' where you can use a brush to draw the VBL onto token. To use you will need either b87 with Jamz' fork installed or b89+. In the bot settings, toggles tab, turn on 'VBL Stamps'. Then select a token and run 'Set VBL Stamp'. There choose the polygon option and click ok.
Other changes
- fixed OCL for b87
- added is fullscreen check to the door switch frame. So the isfull screen is now done automatically (b89+)
- renamed the area buttons after the tutorial
- fixed issue with assigned macro to areas not showing up.
- fixed issue draw area, token not appearing on selected token.
- something went wrong with the OCL of 'd'. 2nd attempt.
- made sure that json.fromlist is NOT redefined from b89+ (as its fixed in that version and broken before that)
- Added VBL macro check for build 89 and beyond (so the VBL macros are activated for this version.
- Fixed VBL on move check bug with tokens with the same name.
- macro clean up, reshuffled OCL.
- Added new macro: bot_sortTokeByProp. sort tokens by property. Can be found in function manual
- added tan function.
- added option to bot_travelAngle() to return cardinal points instead of angle
- fixed several issues with lock token. one with the track path still showing and one with vbl check still on. Also multipleontokenmove had some issues.

Version 22
New feature: lock token. This prevents the token from being moved. Both by player and gm!
To use: select one or more token. Click the 'lock token' macro. There is a general toggle in the settings to turn this feature on and off. Note that the 'lock' property is stored on the token itself. When you select a mixture of locked and unlocked tokens and run the macro then their settings will be inverted. So the locked will unlock and the unlocked will lock!
Other changes
- updated manual with explanation between initalize maps and alt.init.maps
- Fixed several small bugs in the define and remove area tokens
- Fixed bug in fill area macro (bugged out when using one selected token NOT on basemap
- Added extra functionality to the fill area macro: the fill coordinates are now derived fully when two tokens are selected (upper left is from token 1 and width and height are derived from the relative position of token 2
- fixed small bug in switchmap when gm forces player to the map where the gm already is (and tokens are selected
- fixed bug in seek tokens
- warded areas will be checked first THEN Eventpads THEN the rest (to prevent stepping on a teleport AFTER moving over a ward
- fixed bug in warded tokens
- removed the lower() function from all the message related macro like gm(), self() etc.
- VBL compatibility check is now done OCL
- added more verbosity in OCL
- restored door vbl macro (was erased for unknown reason.
- fixed bug in util menu.
- fixed 'base map' bug in OCL.
- added workaround for a bug in broadcast(), is only in effect when the redefined bc setting is set.
- made sure that all the message owner/self/all/etc macros return lower case names.
- Added bot_getTokensPath(). This function returns the path in cell coordinates (including and) between two tokens.
- Updated function manual with getTokensPath() and getPath()

Version 21
Full Screen Mode. Currently this mode needs to be toggled (Shortcut key is F2) as there is no way to check whether you are in Full Screen or not (in the next MT build this should be solved). How it works is simple: if you are in full screen (ctrl+alt+enter) you can press F2 to toggle to full screen mode. The BoT menu will also pop in screen. All the relevant screens will show up in dialog, even the last chat message IF you make use of the message function implemented in this FW. To do that you will need to check the 'redefine broadcast' setting in the settings. This results in the broadcast function not only porting to chat but also to a chat dialog. In that case you will always see the last broadcasted message in full screen.
One remark: when you click somewhere on the MT map then the dialogs will 'dissapear' (as they are moved to the background). To get them back use alt+tab.
Other changes
- the door shape is now automatically set to TOP DOWN (if you have the special jar file installed) for doors that are set.
- expanded the VBL stamps, they now incorporate rotational offsets (not yet in the input). This does require a re-set of the tokens with a vbl stamp. When setting old vbl stamp tokens you get a couple of input requests, just click ok.
- added upgraded code for doors icw vbl stamps (currently deactivated). Something for the future. It does work, but not yet for sliding nor for double doors.
- completely rewritten the door VBL code. Its now simpler (I hope) and the window vbl remains issue should be solved. I've tested it for ALL possible combinations and they all work.
- in addition (though not tested yet) this should allows for freeform doors, so the doors no longer need to be 'large' (4x4 cells) size.
- The only current drawback is that this function is no longer compatible with older set doors, so you will need to set the doors in your campaign again.
- fixed numerous issues with doors (vbl, toggledoors, identifiers, etc.)
- filtered out the double doors from the toggle doors macro.
- fixed bug in toggledoor when only one or no option is selected
- Based on an idea of Pinkrose I Added the net-trap to the campaign file. To use this you will need to add the 'trapped' state to your campaign and you need the 'Standard Net Trap' macro located on lib:EventMacros. There are also a net token and a trip wire token available in the zip.
- updated manual with rules for the door images when using the VBL option.
- extended 'switch map' with the functionality to move selected tokens as well.

Version 20
Message macros. Version 20 contains an update not readily available for most but in the form of a new macro set. Message macros. Specifically bot_message('This is a message', 'This is the header', 'black-white', all(), 'Wolf', 'Prey'). This will broadcast a preformatted message with a header containing both the images of the Wolf and Prey token and the header text and with black background color and white text. I've also included 'user' macros like all(), self(), etc. that return a json array with the users in question. Read the macro manual for more info.
Other changes
- Switchmap automatically selects current map.
- Updated the virtual tables and message() so they remain compatible with java 7.
- added message() functions..
- fixed bug in turning the ontokenmove event on and off. Relic from the split up of the menu. Message is now set to gm only.
- the roof and canopy special pads are automatically moved to the background layer when moved over and moved back to the original layer when moved off
- solved issue with open frame OCL where players got an not gm error message
- track path is turned off for unsnapped to grid tokens
- vbl move check and path tracking now work together (single tok move only)
- updated issue in settings when upgrading from <v18
- show handout function now also has the option to show portrait and token image. Also updated the GUI of this function
- added option to the settings for track path that allows for manual/command removal of the 'path feet'

Version 19
Not really a big change but a new feat nonetheless: path tracking. In the settings --> toggles tab a new toggle has been added called <i>Show the last moved path</i>. When checked, small feet will be placed in the cells over which a token is moved. Red feet for NPCs and Blue feet for PCs.
Other changes
- formation rotation goes slightly faster as its optimized
- when the group is NOT snapped to grid the rotation will go in increments of 45 instead of 90 for snapped to grid
- when the selected token has tokenfacing set then the group is rotated according to that tokens rotation
- added Extra manual. When you click 'manual' you will get 2 manuals. The default one and one explaining the available functions from the macro lib.
- added waypointfinder macro to new macro utils (not yet accessible through campaign panel).

Version 18
Observant users might notice I've skipped v17 entirely, which I actually didn't but the whole version remained fully in beta and was only available through another topic. This concerned the addition of VBL (Vision Blocking Layer) support. After I was finished with that I did a FULL overhaul of EVERYTHING, mainly function names and property names. This means that this new version will not be backwards compatible with older versions. That is... if you only use teleport pads you need to reinitialize and everything will work, other stuff though like assign pads, doors and canopy probly not. I've made numerous changes and fixes in this version and did not keep track cause of the sheer amount of it. The major VBL changes however you can read. in this log under v 17
Note that this MT version supports the new VBL code, but you need both the .jar file and replace it with the current one in the mt install directory AND you need to turn on 'VBL support' in the settings.
Other changes under v18
-fixed two links in the assign and define area macro buttons, which occured during the tutorial session. The macros are ok, but the buttons were not.
-Added draw area macro, which enables you to fill up an area with one token by dragging the other. The 'one' token will be copied in the path of the moved token.
-Expanded options for Mass VBL with All and Selection
-Added VBL grenade. Select one or more tokens, run macro, set radius (in grid cells) and ALL VBL in that radius around the selected tokens will be cleared.
-Change canopyVBL into Mass VBL and added a lot of options (layers, search string and the option to save the VBl)
-Added Toggle Mass VBL macro, with which you can turn on or off mass VBL structures created by the Mass VBL macro.
-bugfix in the layers selection of Seek Token.
-added circular VBL Stamps
-VBL Stamps can now be added to multiple selected tokens (of different size and rotation)
-token stamp snap to grid issue resolved
-implemented the draw and erase funcitons with json variables
-added horizontal and vertical line option to the vbl stamp
-implemented the draw and erase funcitons with json variables
-added horizontal and vertical line option to the vbl stamp

Version 17
NEW: This version needs a special .jar file for the vbl support to work. Hopefully this code will be implemented in the last version of MT, for no you will need to replace the .jar file in the mt install directory with the vbl support one.
Added VBL draw and remove for doors (rotating, sliding and double doors for both). In addition some bugfixes to the doors code.
further improvements on seek token
- find duplicate lib:tokens and swiftly delete them
- sort the found tokens
- restructure the seek token GUI
- updated the regex for looking for partials. I've removed the start/end part but the results show up roughly 3x faster.
- maps in switch map are sorted
- updated manual.
- updated settings with VBL options.
- split up the virtual menu into two tabs (macro got a bit long)
- seekToken can now also be called in a macro, similar to getTokenNames only here you can actually set a name partial for the return.
- added token stamp vbl. If you label a token 'VBLStamp' then a vbl cross will be added to the token when you move it and the vbl will move along with the token.
- vbl stamp now also handles 90 degrees rotations.
- fixed issue with doors on multi clients and some clients getting a pop-up
- fixed vbl issue with doors on clients
- fixed several doors bugs (pop-up request on settin door, duplicate doors over clients)
- VBL for rotating doors is now set ON the door. So if the door is under an angle the VBL line is in the same angle.
- On door VBL now also works for double doors.
- fixed bug in seek token, move from map didn't work
- added couple of functions from Aliasmaks lib:math (cos, sin, toradians)
- created facingToCoord()
- updated door section to work with the new vbl functions
- fixed clearFoW issue (hopefully)
added the following VBL settings for doors:
- crack open door
- half way open door
- peek through key hole
- peek through window
- rewrote VBL part
- made it work for both the non-animated and the animated version
- updated set door with extra tab concerning VBL
- added setting: VBL support (so you can turn it off)

Version 16
NEW (well... incrementally over the last subversions): Seek Token. This function can look for a partial string in ALL tokens on ALL maps and allows for a wide variety of settings:
- where to look in the name (start, end, anywhere)
- what to show as result (image, name, layer)
- which layers to look on (token, hidden, object, background)
- The result is shown in the form of executable links which allow you to either: Copy, Move or Select the token.
- And finally: the macro will save the last settings

Other stuff:
- Added more functions to seek token. An image of the found token can be provided, you can set what to show in the results and the settings are saved. The latter means that if you use your own lib:Eventmacro token that you willl get pop-up requests on first use. After that these settings are saved and will be updated with every use.
- Added more functions to seek token. You can now also move or copy a token to the current location through the macro link.
- Added endswith and anywhere options to the seekToken function
- Added macro links to the seekToken results so you can goto the map and select the token automatically.
- Added new macro: <i>Fill Area</i>. This allows you to select one token set the upper left corner of the 'to be filled area' and then set the width and height of the area. The area will then be filled witht copies of the selected token.
- Restructued the show area macro (special areas)
- Added overlay tokens to show special areas
- Fixed some textual issues in assign special area
- updated manual
- Added 'startsWithTxt' option to 'getValidTokens' macro.
- Further improvement of seek token, it can now handle 'infinite' number of token instead of only the first 1000.
- dito for renumber tokens which was limited to 2000 tokens.
- The 'Seek token' macro can now sort found lib:Tokens per map. Also added checkbox to specifically search for these.
- Removed stray 'debug pause()' from initialize maps.
- Added extra setting to exclusions: you can now give a list of token property types that will NOT trigger the onTokenMoveEvent (request of JamzTheMan). For this I removed the earlier check that checked for ANY special pad and if it IS a special pad to abort the trigger. Now you need to set the property type to an excluded one to NOT trigger the event.
- changed the propertyType of ALL the special pads in the example campaign to: 'SpecialPad'. This is no requirement in your campaign file, but can be used to prevent triggering the onTokenMove event for certain property types. These you can set in the settings.
- Updated input screen for show token handout macro. It now depicts a thumbnail of the handout.
- Added show token handout. This forces a pop-up on all selected clients showing the handout.

Version 15
NEW - Event Areas: Added the option to create Areas with a resolution of the current grid that will trigger an event (macro) when a token moves (on, off, over, etc) this area. These Areas can take ANY form and do NOT need to be contiguous. The besst part: they are FAST! Especially when you need to use a lot of pads for e.g. difficult terrain, then Areas will make a HUGE difference in speed. I've also updated the Limit Movement event macro so it works with Areas assigned to it.
Other stuff:
- Fixed 'all' part of summon tokens.
- Added new versions of the teleport pads, showing the entire area they cover so you now exactly what the 'trigger' area is.
- upgraded the event toggle button on the macro panel
- updated 'execute event' macro. It now lists all the macros in lists per group. Multiple macros can be chosen this way to run consecutively
- Rebuild BASE map. The old one is now an example map. The new BASE map contains all the special tokens
- Added explainatory notes to all the special pads on the (new) BASE map.
- The 'result' frame after 'initalize pads' now no longer show the 'found none' entries
- Cleaned up redundant maps
- added option to settings to centre on 'centreOnMePad' on the map.
- Updated execAllPlayers with extra parameter where you can give a list of users to execute for
- Updated switchmap with a selection panel where you can select users
- Implemented code from the_meek which roughly halves the time to initialize the campaign file. As the initialization can vary from a few seconds upto minutes can have a HUGE positive impact on the initalization time!!
- Dice box now supports 10 different boxes (you can click the macro upto 10 times
- added 'show result to GM and You' option.
- added 'switch map' macro. This macro forces ALL clients to the chosen map AND forces view to the centreOnMePad (if its on the map).
- small update in manual
- added util: seek token: searches ALL maps and check ALL tokens to match the first part of a string you enter.

Version 14
hmm, forgot to keep track of this... I do remember fixing a LOT of things
The two MAJOR changes;
- I've integrated aliasmaks VBL move check, this is a setting you can turn on. When doing so the path of the token is checked and any move through VBL will be reverted. As a nice side effect, this will also prevent individual FoW lag.
- Because of this feat i had to integrate a defer, which has an effect on the token movement. It LOOKS very snappy but the calculations still take roughly the same amount of time. Point is that the move is done instantly and THEN the pads are checked. Unless you turn on the VBL check in which case your movement will be reverted first, then the path is checked and THEN the token is moved back. Just try it and you'll see what I mean
- Another Side effect of this implementation is that there is NO OUTPUT TO CHAT anymore. This means that for the events in which you want to port something to the chat you'll need to use broadcast(). I've updated the eventMacros to reflect this, so you have some examples.
- Added RUMBLES dice box. I did however rewrote most of the code, redid the dice images and added a couple of options. But its still recognizable as his work!
- bug in the roof, also made it a bit faster
- removed a stray 'pause' in the initialize pads.
- A LOT of restructuring so there is a fair chance that some things won't work properly, testing is required!!
- added extra idiot checks in the settings for lib:eventmacros
- It turned out that it was VERY difficult to setup the bag for a fresh campaign file. Fixed that. The settings will now also automatically run the first time IF you name your initial map not 'BASE'
- Added trigger event AFTER on(multiple)tokenmove.
- Added arguments to macro.
- Updated manual with General Event Macros (last section).
- Updated manual with how to upgrade.
- Added new feature. You can now set events to trigger simultaneous with other events: ontokenmove, onmultipletokenmove, onTeleport, afterTeleport, onInterTeleport and afterInterTeleport.
- fixed couple of bugs in animateText
- added <none> to the assignlist for assigned pads
- added 2 arguments to mtt_executeAssingPads(1,'red') the first executes all pads if set to one, the second limits this to only one group. Using this will immediately execute the teleportation without an input screen

AssignPads have been added to the mixture on request of BoneWhite. You can place these pads on the map give them a group name and an index name. Then run one macro to link tokens to the pads (this you typically do in preperation of you game). Then with another macro you can execute the teleportation and the linked tokens will be teleported onto the AssignedPads. More in the manual.
Other changes:
- Repaired set light source. You can now select multiple tokens, the current sources of the first selected token are taken as default, after you click ok, those settings are applied to ALL selected tokens. If you have 'set light source' in your campaign panel then turn off 'apply to selected tokens'
- Updated tooltip, noting that this macro does NOT work for light sources with a comma ',' in the name.
- Added functionality: you can assign a trigger macro (placed on lib:eventmacros) to a door.
- Removed macro existence checks from oncampaignload as they generated errors.
- Move the movement limitation macro outside of ontokenmove and onto lib:EventMacros, so a user can now change it to her own liking. Also updated the Settings to reflect this. This DOES REQUIRE YOU HOWEVER TO MOVE TWO FUNCTIONS FROM THE NEW LIB:EVENTMACROS TO YOUR LIB:EVENTMACROS. As I've placed the updated code there.
- onmultiple tokens move passed on the token ID instead of the token name to its macros.
- Expanded tool-tip for max movement and allowed for changing the message.
- Added Alternative code input for movement limiter.
- Added movement limiter to the settings (toggles). This will prevent tokens from moving further then the preset amount.
- removed the last references to pit pads. (now covered by eventPads)
- optimized the ontokenmove a bit, movement should be a bit speedier
- the distance for sliding doors is now set to gridSize of map per default
- added onCampaignLoad setting to automatically run the door switches form

Version 12 now supports sliding doors. This was a bit more tricky then I first envisioned and it required me to rewrite some of the code and variables for the rotating doors as well. In all it should work *better* (not that you would notice). HOWEVER: ALL EXISTING DOORS IN YOUR FRAMEWORK NEED TO BE RESET. With that I mean, if you have a framework with doors using an older version of the Bag of Tricks (<12), then if you update you need to select every existing door in your framework, click setup door and ok. Once thats done everything should be working as usual.
Other stuff:
- implented sliding doors without animation
- completely rewrote setup door
- added teleport demo maps to the campaign

A new number means new pads: InterPadBorder, PadStartBorder, PadEndBorder. I've created these to complete the list of teleport tokens. There existed already 'Border' pads but only for the jump/drop pads I've added them for the Start/End and Inter. This means that these border pads work TWO way, while the others work ONE way. In addition in this version I also did some cleaning up. Also completed a couple of incomplete lists, listing not all the special pads. The manual is updated with these new teleports
Other stuff:
-removed silly typo.
-base map name kept resetting when running setup.
-Fixed bug in MappedPads.
-Updated manual with reported mishaps.
-FoW is cleared for tokens after an teleport to another map (on request of Lonewolf).
-Bug fix startup coordinates, if set to 0 it can generate an error in the OCL.
-Bug fix in OCL map swap.
-added feature to settings to load picked map and coordinates when you load the campaign.
-fixed text animation to other clients
-fixed Set event pad macro

Version 10 entails a major overhaul of the Bag of Tricks. Which effectively result in two things:
1. The pit and trap special tokens have been replaced by EventPads, read the manual for further info. Note though that this build also contains a macro with which you can swiftly convert old campaign (with pits and traps macro) to be compatible with this build.
2. The introduction of a new library: lib:EventMacros. Here the macros associated with Pits and Traps can (must) be moved AND in addition all the settings, including the info about the pads for your campaign file are store on this token. So with future updates you no longer need to redo the settings and initializing pads. You can simply drag the updated lib:OnTokenMove to your campaign and leave the 'lib:EventMacros' intact.
The other changes
- Updated manual
- Added ALL to summon tokens
- toggle special now also works for selections
- fixed issue with initializing interjump/interdrop pads.
- minor fix and update in getValidTokens (summon token macro).
- Fixed issue with 'getNumSize not defined' error. (I hope).
- fixed issue with request to map mappads on ALL maps, even if there are no mapped pads.
- the time lock delay in the setting didn't work on the door buttons. Now it does.
- added option to summon multiple tokens of each selected token. Also added a spread option.

I used to up the version number with each new set of special tokens, but neglected to do that with the border pads. This time however on request of Lindsay (a looong time ago) and lonewolf, I decided to add 'Mapped' teleport pads ('MappedPads') to the mix. Hence the new version number.
- Added Mapped Pads, these pads work similar to the teleport pads, although of these there is only one type of pad and not two like the start and end pad with the 'normal' teleports. When initializing them you'll get a pop-up per map where they exist and here you can set the destination pad. The 'destination' must be a number, so you can if you like also put in forumulas or dice rolls, as long as the result is a number (and as long as a destination pad with that number actually exist).
- Added toggle to no longer activate special pads if the token was 'moved' around but put back on its original spot.
- another correction to scatter images
- Restore FoW and Centre on Token now happens AFTER taking care of special tokens instead of before (which lead to some unwanted behaviour with e.g. wards and teleports
- updated the manual
- updated the pause message for alt init map

- the one way teleports were not initialized when using the alt init map
- added one way teleport jumps border pads. Both map and intermap. These are activated when a token moves OVER (or onto) the token and can be used to transport tokens to different maps WITHOUT the need to actually step onto the token.
- correction in travelAngle
- correction in token animation
- implemented Oryans new formation buttons (thnx!!)
- Created seperate button for formations buttons for campaign panel
- added option to run a macro after each step in the animation move macro
- added option to travel a certain distance with the animation move macro
- added function snapAngle()

- Tabs in settings
- Added toggles to turn certain things on and off in the settings, among which:
- Added toggles to turn on 'restore FoW' on token move
- finally fixed the sorting issue with summon tokens (and its faster now)
- update in getValidTokens() _none no longer requires a mapswitch (the image is retrieved with getimage()
- fixed turn on/off ontokenmove toggle macro
- fixed move issue with group move when members of the group are deleted (this resulted in the moved token to be moved again)
- accidentily broke the door animations... (fixed)

- added new feature, force selection on 'slave' client. Read last part of the manual for more info.
- changed name of 'init' to mtt.init to prevent interference with token properties

- set group can be called with arguments
- added time-lock setting to the settings. In case of door animation being triggered multiple times when using the token buttons.

- open wedge for selected tokens didn't work properly
- packed wedge for both group tokens and selected tokens didn't work properly

- Added more formations to the group move.
- Changed the 'group' formation macros such that they also can be used for non grouped tokens, just select more then one token to use them.
- Changed the call for the group move macro panel onTokenSelect method, so the panel is NOT rebuild every time you select a group token
- Updated manual
- Updated notes of nearly all the tokens (new zip file)
- Removed a couple of buggy tokens from the zip file
- The macros running from the macro panel now ignore output (so you don't get blank lines)
- Changed formation macros for icons.
- Fixed a couple of macros that did not run when using the macro frame

- Added new feature: group move. You can combine a set of tokens into one group, then when you move one token of the group the rest will follow accordingly. Also added some extra macro for rotation and spread.

- Added settings 'run animation per client' (so you can turn this off)
- Updated manual
-Turned off ownership of lib token (again) (when an owner is checked, the BoT will not function well.)

- Fixed Proximity issue when using 'toggle doors'.
- Fixed Proximity issue for old door'.
- Added new functionality: doors can be linked to roofs, when this is done, then token can only 'enter' the roof when it went over an open door. Else the token is warded.

- Fixed interjumps: jumped to the wrong coordinates.

- Added setting: automaticaly switch map for interpads. Unchecking this will prevent the map from automatically switching

- Build in a proximity check for the door switch buttons
- updated manual
- cleaned up the 'set door' macro
- Fixed issue for 'special pads' with no number. This would ask the user for 'padName' when initializing
- Fixed sorting issue for summon tokens

- Moved the initialization report to a frame to prevent stac overflow when initializing a lot of maps.

- Added a Text animation macro and a corresponding input screen. you can both use the macro itself or use the input screen as a tool
- fixed small issue where the tokenOwnerOnlyVisible check was not turned off for animated doors when no server is running (e.g. when creating and testing a map)

- Added a macro with which you can temporarily disable the On Token Move Event. This is usefull for when you e.g. create a map.
- updated manual

- added Token door switch functionality. You can now set a switch on a door and when you click on that the door will autamatically open/close. This requires some preperations, read the manual for further instructions
- added option to set animation of doors to 0, in which case the door is simply opened without any animation
- added option to lock a door (which means that only the GM can open it.), for this too the manual must be read

- added one way teleports, both for on a map and in between them
- if no special tokens are listed, it will not show up in the summon tokens input
- if no proptypes are listed, it will no longer generate an error

- Added line at the bottom of the summon token with the coords and name of the selected token
- Fixed 'Init' request on Intermap teleport
- Started with text animation, not yet ready though
- Finetuning in the vbl bounce of animate movement

Changes in 6.6
- Added Movement Animation Support
- This version is no longer beta
- added tooltips to the macro panel.
- fixed resetPit
- Interpad didn't work properly

Changes in 6.5 beta
I've been working pretty hard to get this build out. I've sacked several versions before I came to this one. I think this is the best performace you can get out of this, without loosing any quality. The major change in this one is a different build up of alt.init.pads and a complete rebuild of onTokenMove and onMultipleTokenMove macros. This should result in a faster response to the movement of one or more tokens. I've also added an extra dimension to freesize tokens so in case they're rectangles the move over token works better. I think the most performance increase is noticeable with movement of multiple token in large forests (although even now its slower then I would have want it, but this really is as good as it gets....). Because of the HUGE rebuilds I've been doing between 6.4 and this one, you can consider this release again pretty 'BETA'. So pls test and give feedback.

Changes in 6.4 beta
- Performance update (mainly for maps which are initialized with 'Initialize Pads'
- Updated output, more condensed output and error reports
- Fixed blank line to chat when multiple tokens were moved
- Downsized tree trunks for performace increase
- fixed issue with set doors, got a bigdecimal error
- added 3 more trunks
- Manual text is updated
- Settings and Initialize Pads have been partially rewritten to allow funky characters in mapnames (thnx Alias)

Changes in 6.3 beta
- added light source editor, can also be adjusted in the settings.
- Added Summon Tokens Macro

Changes in 6.2 beta
- updated manual with 'Implementation'
- removed relic code from 'Bag of Tricks Macros' macro
- (size) fix in alt. init maps.

Changes in 6.1 beta
- removed the first couple of bugs to implement the rptok straight into a foreign FW.

Changes in 6.0 beta
Note that this version is HEAVILY updated and is thus still in beta fase. I've tested it a couple of times and encountered some errors (which I later couldn't reproduce) but despite the errors (which you can click away) everything appears to work.
- Created an alternative method to initialize pads, this method saves EVERY coordinate on the map where a special token is placed and when a token moves through it it checks vs that coordinate. This is a faster method if many special tokens (> 100) are used on the map, or when you move a lot of tokens at once.
- Rewritten the internal structure of ontokenmove and onmultipletokenmove
- Rewritten Autoforest
- Updated manual
- Renamed all UDF's to mtt_ so it does no longer interfere with anyones own macros.
- Added progress bar for huge calculations like the alternative initialization
- Updated settings so you can omit certain maps in the initialization process
- added macro frame containing all the Bag of Tricks Macros so it takes less space on the campaign panel.
- All the original campaign macros are still available, but are all updated so you need to re-drag these from the lib:token to your owns campaign panel (or use the alternative button).
- added a couple of usefull functions like:
- 'remove %20', this replaces any %20 with a normal space
- renumber tokens, this makes sure all the tokens of one type are numbered continuously
- toggle special, with this you can turn on/off all canopy, foliage or roofs in one click.
- set draw order, witht this you can better influence the z-order of a token.

Note: In the campaign file on the BASE map you'll find two extra libraries, rpedit and token manager, these are not mine, but are drop-ins from the forum which I use to code and debug this drop-in.

Changes in 5.2
- Few tweaks in Autoforest so it can also be used for 5ft squares

Changes in 5.1
- NEW: Auto Forests
- Rebuild scatter macros

Changes in 5.0
- NEW: CANOPY: Canopy has the same function as foliage however 'Canopy' tokens are given a treetrunk image as token handout automatically when 'Initialize maps' is run. Read Manual for further info.
- NEW: SCATTER: Merged scatter functions (drop-in of Craig, further developed by me) with the back of tricks. Especially usefull icw Canopy.
- Upgraded scatter with 'Spread' function.
- Updated Manual
- Manual is now shown in a frame.
- Added photoshopped images of Treetrunks to the campaign file and the zip.
- Removed code from Campaign Buttons.
- Added Remove %20 macro
- Added renum tokens macro
- Added toggle special pads macro

Changes in 4.2
- accidentily set ownership of the lib:token, meaning that the autoexec didn't work anymore meaning that the animations got screwed up.
- fixed issue when a player is on another map when you start the macro
- added feature to set a description for the door, which you find back in the Toggle Door
s macro.

Changes in 4.1
- animated doors function now works seperate on every client, this does however means that GMs will see ghost images of every clients animation
- fixed issue with duplicated lib:tokens when a client connects or when a server is started.

Changes in 4.0
- added animated doors functionality
- updated manual

Changes in 3.2
- fixed chkMapsOCL error when you only use the token

Changes in 3.1
- mfrizzell pointed out to me that the map initialization onCampaignLoad is confusing for some and certainly not always wanted. To make this tool as UF as possible it does a rough check on startup (onCampaignLoad) and if it finds anything it properly initilises all the maps. This makes it appear that all the maps are loaded serially (you see the maps flicker shortly by) instead of just loading the campaign file. For big maps this can be VERY annoying, while for small maps and during development this can be very usefull... so now its a setting. You can turn it on or off is you want. The default is on (checked).

Changes in 3.0
Big changes (even if they don't look like it) so reason for a version increase.
Full support for multiple tokens move. This means that if you position you tokens correctly, you can in one move of 4 tokens: teleport, move in a trap, another in a pit and move a fourth one to another map
- Couple of performance fixes (although overall performance for mutliple token move will have decreased, because of the full support)
- Tokens are not stopped in front of a warded area instead of a full reset of the move.
- The path of the token is now correctly cut off when e.g. trapped in a pit or stopped by a warded area. Before you could drag a token through a warded area onto foliage, which would let the foliage dissapear while the token was not on it.

Changes in 2.7
- If the pads are not yet initialized on this map, its done so automatically. Note that this only happens when the entry on the libtoken is empty!
- Added settings: use alternative 'transparent image for foliage' which allows the use of the token handout image in stead of the tabel image.
- Updated the manual
- Removed all the text tags and placed it in the 'Notes' sections of the tokens, so just click on the tokens for more info about them.
- Added macro 'set draw order' so you can manually set the draw order.

User avatar
Full Bleed
Posts: 4444
Joined: Sun Feb 25, 2007 11:53 am
Location: MD

Re: Wolph42's 'Drop-in' Bag of MT Tricks v.44 [CoMPad 2]

Post by Full Bleed »

First, thanks and congrats for producing the most popular MT drop-in. This thread renew comes after 1800+ replies and almost 125K views of the original. Well done!

Second, good to see you back in action. The site is always better when we've got you participating. :)

Dare I say, with all the new development going into 1.5+ it's starting to feel a bit like the good 'ole days!

Will be looking forward to see what you produce in the future.

Your work and contributions are much appreciated!
Maptool is the Millennium Falcon of VTT's -- "She may not look like much, but she's got it where it counts."

User avatar
Cave Troll
Posts: 45
Joined: Tue Jan 07, 2014 11:46 pm
Location: Inside Your Head! <USA>

Re: Wolph42's 'Drop-in' Bag of MT Tricks v.44 [CoMPad 2]

Post by BearFather »

I have to say I love this add-one the more I play with it, the more I truly appreciate your work. It has sparked my interest in maptool and campaign building again.

Post Reply

Return to “Drop-In Macro Resources”