Alright so I've actually run into a pretty bad snag. I wrote the script and it works beautifully. Unfortunately I need to be logged into Roll20 to view the handout in the external journal. To web scrape it with Python I make a python web session and attempt to log in that way but it never works, and I don't know why. I create a request object and use <a href="https://app.roll20.net/sessions/new" rel="nofollow">https://app.roll20.net/sessions/new</a> as the post destination and use email and password as my payloads for the post. Does anybody have any insight into that? I assume there's some sort of token that needs to be included or saved or something but I cannot figure out what it is or how to do it. I was using <a href="http://kazuar.github.io/scraping-tutorial/" rel="nofollow">http://kazuar.github.io/scraping-tutorial/</a> as a guide. This may be an argument for using a browser extension to scrape the values. At any rate, below is my Roll20 script. It detects changes to character attributes, makes sure that it's a character controlled by a player (it is controlled by more than one person, and yes I know there's more accurate ways of doing it but it was easier to do it this way), and formats and updates the handout's gmnotes with the information. Interestingly I found out that attributes and characters are always fetched in the same order so instead of having to bend over backwards I can always pull apart and re-assemble the formatted string that gets put into the handout and the numbers and where they come from will always be the same. Code: <a href="https://pastebin.com/Csa3sDv5" rel="nofollow">https://pastebin.com/Csa3sDv5</a>