Hi Folks, I've been looking for a better way to handle dynamic lighting lines for doors lately, and I think I've created an easy to use and set up solution. There are already some great solutions out there, but I wanted something that could be as close to "load and go" as possible. With this in mind, I created Door Knocker. It's a door management script that doesn't need any pre placement of door controls or linking of DL lines to door control tokens. Simply drop the door knocker character onto the map, make sure all your doors are a single color, and set that as the color of doors in the script's settings; and you're good to go. You can find the code in two places: Stable Released Code: in the Roll20 API repository or get it from the on-click drop down Beta In Development Code: No Beta version currently Full details on how to use the script are below. Hope you all like it, Scott EDIT: And, cause I'm a thankless task master, I forgot to thank Keith for his assistance in alpha testing this script and designing the scope of the script, and The Aaron for his help in figuring out some of the calculation issues. :End Edit EDIT the 2nd: The script has two dependencies: Path Math and Vector Math by Stephen L. Both of them are available from the one-click drop library. Door Knocker v1.12 Welcome to Door Knocker. This script helps quickly open and close doors by controlling the dynamic lighting lines. If you have any questions, comments, or find a bug; please drop by the Door Knocker forum thread . Using Door Knocker The script will move dynamic lighting lines used as doors to the map layer and make them transparent, opening the door. It determines what is a door and a wall based on the stroke color of the polygon and will only open doors within 1 square (default 70px) of the door knocker token. Basic Command Syntax The script uses a standardized API command syntax. All Door Knocker commands will begin with !knock. This will then be followed by a space a double dash preceding a keyword and options group. This looks like this: !knock --keyWord|option1|option2|... Opening and Closing Doors Open and close using the key or push keyword followed by an option to tell the script whether to open doors, close doors, or toggle doors. You can also pass an optional second option to tell the script to open/close/toggle all doors within range of the knocker token, on the page, or in the campaign. These commands look like: !knock --key/push|open/close/toggle|all/page/campaign key/push: This is the keyword that tells the script to manipulate door dynamic lighting lines. The key keyword operates on both locked and unlocked doors and is GM only. The push keyword only operates on unlocked doors. open/close/toggle/reveal/hide/togglehide/anyopen/anyclose/anytoggle: This option tells the script to open, close, or toggle (open closed doors and close open doors) the closest door (or all doors if also using the all option described below). Reveal, hide, and togglehide cause the command to work on hidden doors instead and only work with the key keyword. anyopen, anyclose, and anytoggle work on all types of doors and only work with the key keyword. all/page/campaign: Optional argument This option tells the script to operate on all doors within range, all doors on a page, or all doors in the campaign. The page and campaign keywords are GM only and do not work with the push keyword. Setting up the Door Knocker Set the wall, door, and locked door stroke colors in the settings menu using hex color codes (e.g. #000000). You can also set these values by selecting an already created DL line. This functionality is only accessible to the GM. The command syntax for using a selected DL line looks like: !knock --preset|wall/door/unlocked/hidden/farAura/closeAura|hex color preset: This is the keyword that tells the script to change it's settings wall/door/unlocked/farAura/closeAura: This option tells the script to update the color setting for walls, doors, unlocked doors, and close and far door detection hex color: Optional argument Passing a hex color here will set the script to consider all polygons on the Dynamic Lighting layer with a stroke of this color to be doors/walls. If this option is not passed the script will look for a selected polygon to pull a stroke color from. Setting up your maps The only map setup needed is to ensure your dynamic lighting doors are the appropriate color. This functionality is only accessible to the GM. If you are adapting a module or add-on to an already existing door color scheme you can select a door line and run the following chat command: !knock --adapt|door/wall/unlocked/hidden|campaign adapt: This is the keyword that tells the script to update all polygons on the dynamic lighting layer with the same stroke color as the selected polygon(s) to have the script's door/wall stroke color wall/door/unlocked: This option tells the script to update the stroke color to that of walls, doors, or unlocked doors campaign: Optional argument adding this optional argument tells the script to update polygons on all pages, not just the current page. Searching for Doors By default the script will create two auras around the door knocker token when a door is with in range. Aura 1 will display the range to the closest door while aura 2 will display the range to the furthest door. You can customize what color these auras are from the settings menu on this character. You can also turn the feature can off (or back on) from there as well. It is also possible to generate these auras on other tokens by selecting them and running the following command: !knock --search|on/off search: This is the keyword that tells the script turn on or off aura detection of nearby walls for the selected token(s) on/off: Optional argument Adding this optional argument will tell the script to only turn on or off aura detection. When omitted the script will toggle aura detection instead. Using this feature will still allow you to use your token's auras as you wish because the aura is actually created on an invisible token that is slaved to the selected token. Customizing the Script Door knocker token The script uses a generic key token as the door knocker token. You can customize this by changing the default token of this character. Script created abilities The script also creates six abilities on this character as token actions. These can be disabled as token actions, but should not be deleted as the script will simply remake them. You can also add whatever other macros you want to this character. Attributions The default token image is from <a href="https://game-icons.net/" rel="nofollow">https://game-icons.net/</a> under the creative commons license . Thanks to Keith Curtis for finding this awesome token. For those that prefer visual and auditory learning. There's now a tutorial video . Known Issues (as of 9/3/19) The search function will not currently work with maps using an actual map image as the aura is displayed behind all the images on the map layer. EDITS 11/8/20 Removed the broken demo gif. Added a link to a tutorial video 9/3/19 Updated the how to in the post to reflect the current version (1.12) Added a Known Issues section