Tabletop Simulator Lua Extension for VSCodeExtension for VSCode to make writing Lua scripts for Tabletop Simulator easier. Features
Requirements
Quick InstallationFrom the marketplaceLaunch VS Code Quick Open (
From packageYou can also Install from the VSIX Package, you can find it under Releases Manual InstallationDownload or clone this repository and place it under:
Usage
Tip: Press enter or double click on the Console++ Panel to focus the command input at the bottomRecomendationsClick each one to expandDebug your Lua code step-by-step with Enhanced Moonsharp## Enhanced Moonsharp DebuggingWIP Add source control to your projects and keep track of every change to collaborate with other developers## Source ControlWIP Enable custom suggestions and avoid errors using static analysis with EmmyLua## EmmyLuaWIP Console++This extension proves a quick and easy way to install Console++ By default, the TTS Console++ Panel will only show messages and errors from Tabletop, to enable further interaction you need to install Console++ along with a modified version that listens on Bring up the Command Palette ( If successful you should see a notification near the bottom right letting you know so. Finally activate the scripts by including them in your Global scope:
Save and Play ( Here is a tutorial series on how to use Console++ You can also choose to not prefix a command and be able to catch them in TTS like this:
Nested File FeatureThis extension, similar to the official Atom Plugin, allows developers to structure their scripts among several files, the way of doing so is with the following statements:
Replacing
|
Command | Description | Hotkey |
---|---|---|
Open TTS Console++ | This command will open the Console++ Panel in VSCode to the side, where you'll find messages sent from the game and be able to send your own commands | Ctrl+Alt+` |
Get Lua Scripts | Once confirmed, this will pull all scripts from the game to the editor | Ctrl+Alt+L |
Save And Play | This will save all currently modified files and then push them to be executed on the game | Ctrl+Alt+S |
Install Console++ | This is the automated install, once finished you'll be able to require Console++ in your scripts like so require('vscode/console') |
Palette Only |
Add include folder to workspace | Use this command to quickly add the default include folder to your workspace (~/Documents/Tabletop Simulator ) |
Palette Only |
Extension Settings
This extension contributes the following settings:
Setting | Description | Default |
---|---|---|
TTSLua.autoOpen |
Which files should be opened automatically | Global |
TTSLua.clearOnReload |
Enable to clear console history when reloading | false |
TTSLua.consoleFontFamily |
Font family for console | Amaranth |
TTSLua.consoleFontSize |
Font size for console in pixels | 16 |
TTSLua.consoleInputHeight |
Set Height for command input in pixels | 27 |
TTSLua.coroutinePostfix |
Postfix to be appended to coroutine functions | _routine |
TTSLua.createXml |
Create XML UI File for each Lua received | false |
TTSLua.clearOnFocus |
Enable to clear command input on input focus | false |
TTSLua.guidPostfix |
Postfix of variable when guessing getObjectFromGUID |
_GUID |
TTSLua.includeOtherFiles |
Enable file nesting | true |
TTSLua.includeOtherFilesPaths |
Additional paths to search for files | [] |
TTSLua.bundleSearchPattern |
Pattern used to look for additional files | ["?.ttslua","?.lua"] |
TTSLua.logSave |
Enable to log a message when a save occurs | true |
TTSLua.parameterFormat |
Formatting for Autocomplete | TYPE_name |
TTSLua.parameterToDisplay |
Autocomplete parameter insertion | Both |
Known Issues
In order from most difficult to least difficult to fix
- Console panel sometimes displays print messages out of order.
- Line numbers on error are mismatched when using
require()
. - Execute Lua Code is not supported.
- Command Input has no history. (
Arrow Up
) - Partial theme support. Needs more testing.
Release Notes
Check CHANGELOG.md
About
This project was motivated on trying out different solutions to communicate VSCode with TTS and being rather unsuccessful at that. I tried using OliPro007's Extension and was a bit finicky for me, I also checked out dustinlacewell's vatts and was able to retrieve scripts but not send them. I guess I'm just inexperienced setting up these extensions which is why I wanted to dive into it by making my own and hoped to streamline the process for someone else.
I kind of ended up doing my own thing.
I included OliPro007's snippet generation & autocomplete and built a much more simple communication architecture, which probably means it has a bit worse performance, however it works out for my purposes.
If you have any suggestions feel free to contact me or submit a PR.