Introduction to Add-on libraries

From RPTools Wiki
Revision as of 23:59, 15 February 2024 by Azhrei (talk | contribs) (Added note about how setLibProperty() stores persistent data)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

BEGINNER
THIS IS A BEGINNER ARTICLE

What Is An Add-on Library?

An Add-on Library is an extension to MapTool that may contain code, images or more. These were introduced in MapTool 1.11, and are intended to be a replacement for Library Tokens that are easier to work with while offering more functionality.

Add-on libraries are generally distributed as .mtlib files, which are just renamed .zip file with a specific structure.

Add-on Libraries are added to a campaign and are saved as part of the campaign file.

When the setLibProperty() function is called on an add-on, the property name and value are stored in a campaign area. That area is NOT cleared when the add-on is removed. This allows the data to persist across add-on updates. (Currently (as of v1.14.3), there are no corresponding functions to clear this data, so the only way to erase it is to create a new campaign.)

Managing the Add-On Libraries for Your Campaign

Add-on Library dialog

The dialog to manage the add-on libraries for your campaign can be reached using the File > Add On Libraries... menu option.

This dialog can be used to add or remove add-on libraries, view the details of all add-ons in the campaign and view their license/read me files.

As of MapTool 1.12, add-on libraries can be dragged and dropped onto the map from your system's file explorer. This will either add the add-on library to the campaign or replace it if it is already in the campaign.








Things still to be addressed

  • There is only minimal checking of data when importing add-ons so error reporting is not great.
  • Expanding the JavaScript API which will make this much more useful (part of another change set).
  • Better replacement for user defined functions.
  • Providing an equivalent to Library Tokens buttons.
  • Ability to check URL for later version and update from that (most likely GitHub to start with)
  • Link maps to required add-ons when exporting/importing.
  • Documentation / procedures for creating a GitHub release for your add-on.
  • The data store could be slightly smarter about large text blocks that remain static and attempt to cache them.


Return to: Add-On Library