We are pleased to announce the release of MapTool 1.4.0.3, now available from the Download page.

MapTool 1.4.0.3 includes the following fixes, improvements, and additions.

- Added json.removeFirst macro function, similar to json.difference() but will only remove the first occurrence of match. e.g. json.removeFirst(‘[2,2,4,5,6,6,4]’, ‘[2,6]’) = [2,4,5,6,4]
- Fix for trailing end of line character of version string in getInfo(‘client’) macro function.
- Added a client id to getInfo. This will return the id of a client (an essentially randomly generated id that can’t be used to identify your ip etc). This is so macro writers can save settings per client in the campaign.
- Fix for parser error messages not being displayed nicely.

Also, the following math functions have been added. While they have been tested they could stand to have more testing done, so please test them a bit more before relying on them

- math.abs — Return the absolute (non-negative) of a value.
- math.ceil — Return the nearest whole number, rounding up
- math.floor — Return the nearest whole number, rounding down
- math.cos — Return the cosine of an angle (angle in degrees)
- math.cos_r — Return the cosine of an angle (angle in radians)
- math.sin — Return the sine of an angle (angle in degrees)
- math.sin_r — Return the sine of an angle (angle in radians)
- math.tan — Return the tangent of an angle (angle in degrees)
- math.tan_r — Return the tangent of an angle (angle in radians)
- math.acos — Return the inverse cosine of a ratio (returned angle is in degrees)
- math.acos_r — Return the inverse cosine of a ratio (returned angle is in radians)
- math.asin — Return the inverse sine of a ratio (returned angle is in degrees)
- math.asin_r — Return the inverse sine of a ratio (returned angle is in radians)
- math.atan — Return the inverse tangent of a ratio (returned angle is in degrees)
- math.atan_r — Return the inverse tangent of a ratio (returned angle is in radians)
- math.atan2 — A version of atan that takes 2 arguments instead of a ratio so that it can return angle based on signs of inputs (allowing you to determine quadrant). Return is in degrees
- math.atan2_r — A version of atan that takes 2 arguments instead of a ratio so that it can return angle based on signs of inputs (allowing you to determine quadrant). Return is in radians
- math.cbrt, math.cuberoot — Return the cube root of a number
- math.hypot, math.hypotenuse — Return the hypotenuse (h = sqrt(a*a + b*b)) for the two sides passed in
- math.log — Return the natural logarithm of a number
- math.log10 — Return the base 10 logarithm of a number
- math.min — Returns the minimum number from its arguments (2+ arguments)
- math.max — Returns the maximum number from its arguments (2+ arguments)
- math.mod — Returns the modulus of the arguments (remainder from the division)
- math.pow — Returns the value of the first argument raised to the power of the second
- math.sqrt, math.squareroot — Returns the square root of a number
- math.toRadians — Converts an angle from degrees to radians
- math.toDegrees — Converts an angle from radians to degrees
- math.pi — Returns the value of PI, mmmmm pie…
- math.e — Returns the mathematical constant e (base of natural logarithm)
- math.isOdd — Returns 1 if the argument is odd, 0 if it is even
- math.isEven — Returns 1 if the argument is even, 0 if it is odd
- math.isInt — Returns 1 if the argument is an integer, 0 if it is not.

Please visit the Announcements page for more details.

I run into the same “cannot locate .jar folder issue.” I’m running Windows 10, and I’ve read the forums but cannot figure out why it wont run out of the box upon download. Can you please help me.

worldbuilder@sbcglobal.net

I’ve run into this with my group. Some Windows 10 installs work, others don’t. Generally, if you can open a command window and navigate to the directory containing MapTool you should be able to get it to work by running something like

java -Xmx1024M -Xss4M -jar maptool-1.4.0.3.jar

Change the Xmx value to your maximum memory size and the Xss value to the stack size required by your framework. If you don’t use a framework then you likely don’t need that setting.

The really good news is, our next release should alleviate the need for any of this. Stay tuned.