
Built-in System-agnostic Character Sheets
- Customizable character sheets support any system from the ever-present D&D, to that fantasy heartbreaker from the 90s.
- Easily access character sheets by double clicking on a token, not by switching to another tab.
Revolutionary Hotbar System
When you select a token, a state-of-the-art Hotbar appears at the bottom of the screen. The Hotbar displays all the information a player or GM cares about in one compact space, making GM-ing large combats or managing multiple playable characters a breeze. Gone are the days of dozens of tabs worth of stat blocks cluttering your monitor!Robust Macro System
- Roll dice, edit your character sheet, send predefined messages in chat, and even play sounds at one press of a button.
- Customize the color and text of any macro button, and where they should be shown on the Hotbar
- Support for user-defined variables, which can include mathematical equations and/or any value on a token's character sheet.
Support For Almost Any TTRPG System or Wargame
Default Character Sheet values and macros, as well as compendium weapons, armour, spells, and tables are defined in .json files and stored independently on a per-campaign basis. Easily customize Gothic Virtual Tabletop to suit each and every one of your needs.Built-In Compendium
Define weapons, armour, abilities, spells, and rollable tables present in your system of choice and easily add them to a token at the press of a button.Built-in Jukebox
Browse your campaign's music library and add queue up the perfect songs for the occasion!Absolutely Sublime Text Chat
- Rolls always show what the individual die rolls were, even when part of a complex equation or macro.
- Easily whisper to other players, or the GM.
- Roll dice for all to see, or just to the GM in secret.
- Roll on tables and show the result in chat.
- Support for robes and wizard hats.
Per-map whiteboard layer for drawing up battle strategies or doodling while that player takes the slowest turn ever.
Feature-rich Map editor
- Quick and easy fog-of-war tools to keep curious players from scouting out secret rooms and ambushes.
- Adjust the grid to fit any image, whether it has a baked-in grid or not.
- Turn grid lines on and off.
- Supports Common types of map grids, including square, hex (horizontal), hex (vertical), and no grid.
No Loading Screens
Okay, there is one loading screen that appears when a player first connects to the server and downloads assets. After that, you're free to game in peace.Self Hosted
- All your maps, tokens, sounds, and music files are stored locally, on your computer. Gone are the days of juggling storage space when trying to upload a new map for your next encounter!
- Password Protected Lobbies
- Easily view who is connected to the server in the bottom left, a green bubble means connected, and yellow means connecting.
Add new drawing modes (Circle, Square, Cones 45,60,90 degrees)
- click the drawing tool button to cycle between drawing modes.
- The eraser tool will use the current drawing mode for its erasing.
- You can also cycle through drawing modes by clicking the eraser button.
- When in circle, square, or cone drawing/erasing mode, the pen size slider instead toggles between drawing the outline of the shape, and filling in the shape.
- Drawing large shapes WILL cause lag briefly while drawing the shape. Once a large shape is drawn, there is little to no performance impact on regular gameplay.
- Swapping between maps with tons of (or several large) drawings will be slower than swapping to the same maps with little to no-drawings.
Add circle and cone (45, 60, 90 degree variants) ruler options.
To change your ruler:
[olist]
[/olist]
And just like every other tool, right click to leave the ruler mode.
When you select the pencil/eraser tool from the top menu bar, a slider will appear under those buttons allowing you to change the pen size. The technology is here, people. We made it.
Allow you to provide runtime arguments to macros executed from link_macro().
This change will not break any macros.
New usage of link_macro():
link_macro(token, "macro_name", arg0, arg1, ... , argn);
[code]
link_macro(self, "Take Damage", 7, "Goblin Spear");
[/code]
See documentation for a nearly identical example.
- Fix ruler distance on maps with grid type set to 'none', the cell size and distance_per_cell now properly interact.
- Increase default token import size to 256x256, previously the default was 100x100. For larger tokens this led to badly pixelated images. *
* You can always import tokens that are larger sizes than 256x256, just check the 'keep aspect ratio' box. This not only allows you to create non-square dimension tokens that don't get deformed, but also keeps the dimensions of the original image.
This update adds two tabs to the Macro character sheet tab. One is 'Battlecry', and the other is 'On Turn'.
Both tabs have a text box for you to enter a macro script. You can leave them blank.
The script in the 'Battlecry' tab is executed when a token is first dragged out from the token drawer onto a map.
The script in the 'On Turn' tab is executed every time the token receives initiative in combat, or at the start of each of its turns in combat.
Suggested Uses:
- Randomize initial health of non-unique tokens (automatically roll health for each goblin in an encounter)
- Reset energy / mana / action counter/ at the start of a turn.
- start of turn heal effects (monsters with regeneration)
- and many more!
- add "keep_middle" argument to roll() macro function (docs updated)
"keep_middle" lets you keep x median values from a set of rolls. (If keeping_middle on an even number of rolls, the lower of the two 'median' values will always be picked.)
- add "is_clickable" token setting, found on the token's character sheet 'settings' tab.
When checked, you will be able to pick up, select, or open the token's character sheet with a left click (or double click) as usual.
When unchecked, you will only be able to select the token by clicking and dragging a select box around it. Once selected, you'll be able to move the token or open it's character sheet as usual.
- add "show_name_on_hover" token setting, found on the token's character sheet 'settings' tab.
When checked, hovering the mouse over the token will show its name, as usual.
When unchecked, hovering the mouse over the token will not show its name.
If you have selected the token, its name will always be shown.
- Added macro function 'is_valid_variable(var_name)'
- Added script comments * (Comments begin with the pound sign '#', and MUST END WITH A SEMICOLON, just like any other line.) Any line beginning with a '#' will not be executed as a part of the macro.
- documentation updated
- Fixed bug where multiple tokens in a stack would scale up as if they were all picked up. Only the top token (fully visible token) in a stack will be picked up.
is_valid_variable(var_name)
This function will return true if var_name is a variable with an assigned value in the current macro script, otherwise it will return false.I'm using this in a macro to test and see if the macro was provided any runtime arguments (arg0), which changes what the macro should do.
Here's a snippet of a macro that checks if a variable (in this case a macro's runtime argument arg0) is valid in order to change the macro's behavior:
[code]
if is_valid_variable(arg0) {
target = pick_token();
target_value = self.get_value("skills/Small Guns/value") - target.get_value("armour/locations/head") - self.RAD_PENALTY;
show(self.get_value("bio/name") + " fires their " + arg1);
}
else {
target_value = self.get_value("skills/Small Guns/value") - self.RAD_PENALTY;
}
...
...
...
[/code]
if is_valid_variable(arg0) {
- All of my weapon macros pass the weapon's damage and name to the macro of the appropriate skill for the weapon used. So If I am shooting a Beretta M9, I run the "Small Guns" macro with "2d6" and "Beretta M9" as runtime arguments. So, if arg0 is a valid variable (if arg0 has a value assigned to it) then I know I am attacking attacking someone. In that case, we want to adjust our target number by the enemy's armour value.
else {
- If we are just running the 'Small Guns' macro on its own (like in a circus' shooting gallery), then arg0 will NOT be a valid variable (it will have no value assigned to it), and the target number will just be the value of our "Small Guns" skill, and there is no need to choose a target.
This update brings the long awaited New Macro System!
For anyone currently running a campaign, [u]YOU AND YOUR PLAYERS[/u] should switch to the 'classic-macros' beta branch BEFORE you open the campaign on this new update. You can switch to the classic-macros' beta branch like this:
[olist]
[/olist]
If you open an old campaign on the new update, all is not lost. All of your macros should just work. They will most likely not have full functionality, but at the very least any die rolls in your macros should still roll dice to chat. Anything in the 'text' and 'meta' field of classic macros will not do anything.
I should also mention that the 'classic-macros' branch is considered deprecated, and the following changelog does not apply to that branch. The 'classic-macros' branch will not receive any more updates, except in very rare circumstances. If you have any questions, reach out.
Changelog
Bulk Character Sheet Editor
The bulk sheet editor can be opened by clicking the new button between the 'Edit Map' and 'Fog Of War' buttons on the top menu bar.When opening the bulk character sheet editor you first select which token's character sheets you'd like to change. Once the character sheet opens, you'll see character sheet entries that ALL of the selected sheets share. if the values of a particular field match, you will see the shared value. If the character sheets have different values for a field (such as the token's name) you will see an ellipsis (...) in place of the value. When the bulk character sheet is saved, any fields with an ellipsis will be replaced with the value originally on that token's character sheet. All other values will overwrite the token's originals.
WARNING: When using the bulk character sheet editor, ALL selected character sheets will become (nearly) exact copies of the visible sheet. If you do not see the macro/ inventory entry/ weapon/ spell/ attribute/ etc on the bulk sheet editor, it WILL NOT be present when you save.
Sheets will only be saved when you click the red floppy disc icon. I'd recommend making some copies of the tokens/ folder in your campaign directory and playing with the bulk character sheet editor to make sure you understand its quirks.
Macro Changes
My holidays were busier than expected (oops) so there is NOT a macro conversion guide. For questions I direct you to the new macro documentation (linked below), and also to the Gothic VTT Discord Server . If you would like help converting a macro, please make a thread in the #macro-conversion-help channel and I'll help you as quickly as I can.See new documentation here (you can also access the documentation in your steam library after clicking on Gothic VTT, or in-game by clicking on the blue 'i' information button and going to the credits + documentation tab.)
New functions:
Allows you to link a macro in chat, so anyone can run that macro by clicking the link.
Allows you to edit a token's auras in macros
[u]If you are currently running a game using Gothic VTT, you and your players need to switch to the 'classic-macros' beta branch.[/u]
To switch to a beta branch:
[olist][/olist]
Classic macros [u]will not[/u] be able to be converted to the new system 100% automatically, things have changed a bit too much for that. The macro/compendium documentation will be updated along with the update, and there will most likely be a macro migration guide as well.
This upcoming update also has a sizable list of tweaks and fixes, which will be listed in the notes of this imminent update.
F.A.Q.
"New macros when?"
- Soon :)
This update comes with one 'breaking' change: default_character_sheet.json is no longer located in the base campaign folder, it is now in the tokens/ folder. This change will happen automatically for you when you open an existing campaign. There is nothing you need to do.
changes:
- fixed something small, I don't even remember what it was
- Added the ability to save a character sheet as a 'template.' Learn more below!
Character Sheet Templates
Think of character sheet templates as multiple 'default' character sheets. When you create a new token, you will get to choose from a list of available templates you have created.
To create a new character sheet template:
[olist]
[/olist]
To use a character sheet template:
[olist]
[/olist]
Changes
- add [u]link_table(visible_text, table_name)[/u] macro meta function [1]
- add [u]link_compendium(category, entry)[/u] macro meta function [1]
- fix min(a,b) and max(a,b) not simplifying equations or dice expressions in some cases.
- fix link_roll(display_text, roll_string) macro meta function not handling roll functions as a part of the roll_string
1. See documentation .pdf for examples
Changes:
- Fixed a crash that occurred when connecting clients received certain network packets out of order.
- Fixed token status icons not appearing correctly when toggled by players instead of the GM.
- Add string equality comparison support for if() meta functions.
- Scrolling (with the mouse wheel) on compendium tabs and character sheet tabs will change the open tab. [1]
- Compendium categories can now be customized. Choose what default compendium .json files are loaded, and add arbitrary custom categories.
1. The actual clickable tab labels do not scroll to follow the tab changes as you would expect, yet. This is a problem with the current Tab system, and will need a custom solution that will take a bit of work. It will be fixed eventually!
To customize your compendiums:
[olist]Windows: [code]%APPDATA%\Godot\app_userdata\Gothic_VTT\campaigns\local[/code]
Linux: [code]~/.local/share/godot/app_userdata/Gothic_VTT/campaigns/local[/code]
[code]
{
"default_map": "default_map",
"init_sort": false,
"compendium": [
"weapons.json",
"armour.json",
"items.json",
"spells.json",
"abilities.json",
"tables.json"
]
}
[/code]
If your file is missing the "compendium": [] portion, open your campaign in Gothic VTT and then hit Control+S or close Gothic VTT to save the campaign. This will update the campaign_properties.json.
[/olist]
Custom compendium .json files should contain an Array of Dictionaries, use the example file below if you don't understand the assignment.
Each dictionary should have a "name" and "description" key, whose roles are self explanatory.
Here are the contents of an example "vehicles.json":
[code]
[
{"name":"Car", "description": "Four wheels, very very fast."},
{"name":"Bicycle", "description": "Two wheels, faster than walking."},
{"name":"Plane", "description": "Many wheels, but flies instead. Much faster than a car!"},
]
[/code]
After updating the campaign_properties.json or any of the compendium .json files, you can refresh the compendium in-game using the 'Refresh' button on the compendium tab.
- add ping feature (right click on the map to ping)
- fixed an issue where macro meta functions were resolved in the wrong order, resulting in confusing output.
- Campaigns autosave every 3 minutes (new), in addition to when you close the application (old), and when pressing ctrl+s (old).
- added /tgm and /tablegm chat commands to roll on a table only to the GM.
- reduced overall amount of network traffic
- fixed a (rare-ish) crash when adding tokens to initiative
- add copy + paste for tokens on maps (GM only.)
Ctrl+C to copy selected tokens.
Ctrl+V to paste the copied tokens.
You can copy paste across maps. - fix green token select disc scaling issues
- fix initiative arrow pointing to nothing sometimes
- fix initiative arrow only appearing for GM.
It is live. It has colors, it will never hide off screen, it is new and improved.
What more could you want? Perfection? Bah, perfection comes long after good enough.
This update contains various additions, tweaks to existing features, and fixes. Most changes are thanks to wdaoygtp on discord, thanks again!
Changelog:
- add min(a, b) and max(a, b) functions for macros
- add drop-down menus to the input() macro function
To use, add a comma separated list of values inside the parenthesis.
Examples:
[code]
1d20 + input(1, 2, 3, 4, 69, 420)
[/code]
In this example, when you run the macro you will get to choose whether to add 1, 2, 3, 4, 69, or 420 to your roll.
[code]
1d20 + [input(STR, DEX, CON, INT, WIS, CHA)]
[/code]
In this example, STR, DEX, CON, INT, WIS, and CHA are macro variable names, choosing one will add the value of that macro variable to 1d20.
- Initiative tracker no longer automatically sorts when updating a token's initiative value.
(If initiative values change in the middle of a round, you'll no longer lose where you are in the turn order.)
- application will no longer crash when trying to add a weapon/armour/ability to a character sheet when there are no compendium entries of that type.
- if() meta functions now accurately account for modified character sheet values via previous calls to set_value() in the same macro.
NOTE: 'Take Damage' and 'Heal' macros from the default "d20 + modifiers" campaign preset in campaigns made before today will incorrectly calculate whether a token is dead or not. Below are the updated macro meta fields to paste into existing character sheets:
[code]Heal macro meta field:
set_value([hud/HP/value], [hud/HP/value] + input()); if([hud/HP/value] > 0, true=set_status(dead, false))
Take Damage macro meta field:
set_value([hud/HP/value], [hud/HP/value] - input()); if([hud/HP/value] <= 0, true=set_status(dead, true))[/code]
- tokens with even dimensions (2x2, 4x4, 6x6, etc.) now align onto the grid.
This doesn't quite feel perfect yet, more tweaks to follow.
- full roll strings for macro roll fields are now hidden in the tooltip.
With particularly complex macros, the chat roll result tooltip could get too wide for your monitor very quickly. For now, I've hidden the full roll string from the tooltip, which will ensure the actual die rolls are visible at all times. Just to make things clear: You can still see all of the dice rolls in a macro, just not the formula/ equation at the top. It's not ideal, but the actual die rolls are more important most of the time anyway. I'm working on implementing custom tooltips that won't suck.
Thanks to Wdaoygtp on discord!
- Fixed macro meta field errors when running macros on non-unique tokens.
- automatically focus the "fill all boxes" text box when running a macro using input(), and pressing enter with the "fill all boxes" text box focused will run the macro.
This update adds support for an items.json file, for creating a default set of in-game items for your campaigns. (Think healing potions, rope, toothpicks... You know, the essentials.)
If you load a campaign which does not have an items.json file, one will be created for you in the campaign folder.
An example items.json file:
[code]
[
{
"name": "Potion of Healing",
"description": "Restores 2d4 + 2 HP on use.",
"weight": 0.1,
},
]
[/code]
- When adding an item to a token(s) from the compendium, if the item already exists in the token's inventory, the quantity is increased by 1 instead of creating a new entry.
- Item descriptions are available in the compendium, but not on character sheets.
To learn more see the documentation pdf either in-game, or in your steam library under 'Additional Content' on the right hand side.
To update an existing token's image:
- Drag and drop the new image onto the game window
- At the bottom of the import window, choose the token whose image you want to update from the drop-down menu, and click the update button.
- ???
- Profit
Fixes:
- Fixed a crash that occurred when players deleted tokens from the map OR tried to open a token's character sheet from the token drawer while using steam for networking.
Additions
- Added the ability to join + host games using Steam. For details see below.
- Hovering tokens in the token drawer (left panel) will show their name in a tooltip.
- Added HP bar toggle for tokens, allowing you to show/hide any token's HP bar. This settings is on the tokens character sheet 'Settings' tab.
- Added a yellow arrow that points to the token your mouse is hovering over on the initiative tracker window.
- Added the macro meta functions: 'play_music(track_name)' and 'stop_sound()'. The first allows you to play music files (files that show up in the jukebox music library) through tokens. The second will the token from playing any sound (be it the token's battlecry, from a play_sound() function, or music playing from a play_music() function). As always, details are in the game's Manual found on the game's library page.
Note: If you switched to the beta branch to test the steam networking update out, switch back to the default branch by:
- Right click Gothic VTT in steam, and select 'Properties'
- Go to the 'Betas' tab
- Change the 'Betas Participation' drop down menu from 'testing' to 'None'
To Host a Game With Steam:
- Open a campaign
- Click 'Network', followed by 'Start Steam Server'
- Players can then join you though the steam friends list, or you can send them invites by clicking on 'Network', then selecting 'Invite Steam Friends'.
The latest update to the testing branch includes the ability to host and connect to friend's games using steam, as opposed to using direct connecting over the internet with the server's IP address. Both Steam networking and direct connecting will be supported going forward.
To join the testing branch, in your Steam Library:
[olist][/olist]
To leave a branch:
[olist][/olist]
Changes:
To host a game using Steam:
- Added warning when a compendium .json file fails to parse.
- Removed crash when a compendium .json file fails to parse.
- Token volume slider now correctly adjusts volume of currently playing token sounds.
Add the target() function for use in macros. This can be used to get information about any other token for use in a macro by another token.
Example:
Display the AC of the target token as a part of the attacking token's to-hit roll.
See documentation pdf for details.
A user who shall remain anonymous (you know who you are) was complaining about performance when drawing extremely large hexagon grids.
As a result of his incessant whining the performance has been greatly improved.
Thank you for your time.
Minimum Setup
- OS: Kernel 5.4+
- Processor: Quad Core Intel 4th gen (4000) or equivalentMemory: 8 GB RAM
- Memory: 8 GB RAM
- Graphics: Dedicated Card RecommendedNetwork: Broadband Internet connection
- Storage: 200 MB available space
Recommended Setup
- OS: Kernel 5.4+
- Processor: Anything within the last 5 yearsMemory: 8 GB RAM
- Memory: 8 GB RAM
- Graphics: NVIDIA GTX 1080 or equivalent and aboveNetwork: Broadband Internet connection
- Storage: 200 MB available space
[ 6407 ]
[ 1893 ]
[ 4309 ]