If you don't want to read the context/story behind this, you can skip to the end; I wont blame you. Who am I? I am new at scripting against the Roll20 API, but I am an experienced developer. I'm more an object-oriented guy (background in C#) than a scripter. That said, I decided to use Typescript instead of pure JavaScript to experiment with the Roll20 API since it allows for type checking, etc. etc. While looking at official scripts, where I found a ton of nice stuff, I was a little disappointed to see no official definition files (`.d.ts`), and that all scripts were located in a single git repo. No offense intended, but scripts could have been split into modules instead; loadable using `npm install` or some other mechanism/package manager for example. Anyway, that hasn't stopped me, so I dug a little, and I was pleased to find the following post: <a href="https://app.roll20.net/forum/post/4402547/slug%7D" rel="nofollow">https://app.roll20.net/forum/post/4402547/slug%7D</a>... which lead me to find a nice Roll20 type definition file inside; excellent starting point! Good job Shaangor! Then I found Mock20 , <a href="https://app.roll20.net/forum/post/5389098/slug%7D" rel="nofollow">https://app.roll20.net/forum/post/5389098/slug%7D</a>... which is so far a great mocking library for Roll20. Again, it's pure JavaScript, so no definition files. The amount of work behind it sounds incredible tho! Amazing job there Cill! I also decided to use the CommandShell script, instead of coding my own command library. Again, no `.d.ts` file: pure JavaScript (which is fine). I will skip all nonrelevant details and jump to the point: I've decided to create those missing definition files. Why? To be able to use all of that with TypeScript and add some IntelliSense as a bonus! I also created a custom npm registry that hosts those type definition files. I may publish them to the public registry at a later time, but since they are all depending on Roll20.d.ts, which is based on the work of Shaangor, I'd prefer to have he's permission first (if you read this, feel free to contact me). That said, for the copy/paste approach, all definition files are on GitHub (see below). For the npm packages, they are available there: <a href="https://www.myget.org/F/roll20/npm/" rel="nofollow">https://www.myget.org/F/roll20/npm/</a> The custom npm registry is also a proxy to the official one; which means that all packages can be resolved through it. GitHub repositories: <a href="https://github.com/Carl-Hugo/types-roll20" rel="nofollow">https://github.com/Carl-Hugo/types-roll20</a> <a href="https://github.com/Carl-Hugo/types-roll20-CommandS" rel="nofollow">https://github.com/Carl-Hugo/types-roll20-CommandS</a>... <a href="https://github.com/Carl-Hugo/types-mock20" rel="nofollow">https://github.com/Carl-Hugo/types-mock20</a> Contributions are welcome; feel free to create a PR or contact me. You can also open issues in GitHub. Suggestions and comments are also welcome. Enjoy!