javalent / initiative-tracker Goto Github PK
View Code? Open in Web Editor NEWTTRPG Initiative Tracker for Obsidian.md
License: GNU General Public License v3.0
TTRPG Initiative Tracker for Obsidian.md
License: GNU General Public License v3.0
Thanks for great plugin,
I think it would be nice to have, rounds tracker somewhere near actions control, it should make tracking some statuses easier.
When editing a creature in the Initiative Tracker, all fields except max HP is updated as expected.
This is true even when changing the creature the creature-entry is based off of, and when the creature-entry is not based on an existing creature.
Initiative Tracker 8.0.7
Obsidian 0.15.9
Have a clickable link (or maybe an icon like below) which links to a vault page.
This would especially great for party player characters, but could also be good for homebrew monsters so details more than just the stats can be viewed.
Init | Name | HP | AC |
---|---|---|---|
15 | Breeze ๐ | 65/65 | 18 |
13 | Kerym ๐ | 67/67 | 17 |
11 | Tandilli ๐ | 60/60 | 16 |
7 | Dyne ๐ | 79/79 | 20 |
Hi
is it just me or did the encounter plugin stopped working?
Does not work using even the readme encounter:
name: Example
creatures:
- 3: Goblin
-> No encounters created. Please check your syntax and try again.
When creating an encounter, either as table or single one, the encounter difficulty (when turned on) isn't calculating correctly inside of the note. Only when actually starting an encounter does it correctly show on the right hand side bar.
```encounter-table
name: Night at the Inn
players:
- Player Wizard
- Player Barbarian
- Player Druid
- Player Fighter
creatures:
- 4: Giant Rat
---
name: In the forest
players:
- Player Wizard
- Player Barbarian
- Player Druid
- Player Fighter
creatures:
- 2: Werewolf
Example: https://cdn.discordapp.com/attachments/932707309195493416/1012774210009047192/unknown.png
Hello! I run a play-by-post game with some friends over discord so some encounters can last over the course of a few days. I use the plugin for grabbing the initial order and keep track elsewhere, but I can't seem to find how to save it. Is it possible and I'm just blind? Or is this not a feature at this current time?
If it's the latter I can't request it enough, even if it does something as simple as saving and loading from a markdown or yaml file. Besides that issue I love this plugin and the ways it interacts with other dnd plugins available for obsidian!
It would be handy if the code block for triggering an encounter could be written:
Use Case: Random encounter tables often display lists of monsters to fight. Currently you need to make the encounter block beneath the table which then takes up a lot of screen space. If we could write it as a single line and then place that in a table cell it would clean up a lot of screen space.
Adding XP to the encounter block would help visually reminding me to properly give my players xp after each encounter.
```encounter
name:
players:
creatures:
xp: #Total experience points when entire encounter is complete
```
```encounter
X: [name, hp, ac, initiative modifer, xp]
```
(Bonus: All the xp of the creatures are summed up and display)
Maybe both of these show up like this in the block:
As well as appear on the initiative tracker pane, maybe on the right of the name:
app.js:1 Plugin failure: initiative-tracker ReferenceError: playerCreatures is not defined
at new InitiativeTracker (eval at <anonymous> (app.js:1), <anonymous>:31939:21)
at e.<anonymous> (app.js:1)
at app.js:1
at Object.next (app.js:1)
at s (app.js:1)
```
Error happens when I try to load the plugin. Has something be changed?
I just installed the Initiative Tracker and love it! It's such a helpful tool and I'm looking forward to using it in my game. I did notice a bug with the player view. When it loads up, it loads with Goblin 1-5, but after I start adding damage or conditions it sometimes decides to display duplicates of one or two goblins instead.
I attached an image where Goblin 1 and 4 are duplicated and 3 and 5 are missing. (3 should have a Grapple condition on it).
See #9
Will not install via the community plugins nor manually in version v.0.12.12 of Obsidian.
The usage instructions recently added are nice to get new users up to speed, but take up quite a lot of space and clutters the UI.
Request is to add an option for disabling these instructions.
Would it be possible ( or is it already and i didnt find the way for it)
to add additive initiave?
As well as running DnD im running a german System ( Splittermond) and there you got a time table and every action takes time, so i could simply reuse it with that one change, as calculating every step might overheat my brain.
Also is there a functionality to change the display order so the highest intitiative is at the bottom and vice versa?
Sincerely
Eric
I like the ability to see the encounter difficulty, but it's a little too wordy for me. I think something like this might be a nice way to do it:
Also maybe taking the colors from the bar to color the words would also be pretty neat. Then the hover tooltip can keep the full wording while keeping everything else nice and compact.
If you have multiples of 1 monster (e.g. Goblin 1 and Goblin 2), and you press on the name of lets say "Goblin 2" in the Initiative tracker the statblock breaks because it tries to read the statblock of "Goblin 2" instead of "Goblin"
EDIT: This can be used as a workaround in a custom CSS snippet to disable the ability to click on a name, doesn't seem to break anything.
.editable.name.svelte-cnqzyh:not(.player) {
pointer-events:none;
}
As described by @mic in Discord, the right hand panel is empty when loading an encounter. The errors can be recreated in my test vault for the issue of default Parties messing up. (opened by me in discord).
Error in console are:
app.js:1 Failed to open view TypeError: Cannot read properties of undefined (reading 'name')
at TrackerView.onOpen (eval at <anonymous> (app.js:1), <anonymous>:31690:27)
at TrackerView.<anonymous> (app.js:1)
at app.js:1
at Object.next (app.js:1)
at app.js:1
at new Promise (<anonymous>)
at A (app.js:1)
at TrackerView.t.open (app.js:1)
at t.<anonymous> (app.js:1)
at app.js:1
(anonymous) @ app.js:1
(anonymous) @ app.js:1
(anonymous) @ app.js:1
a @ app.js:1
Promise.then (async)
l @ app.js:1
s @ app.js:1
Promise.then (async)
l @ app.js:1
(anonymous) @ app.js:1
A @ app.js:1
t.open @ app.js:1
(anonymous) @ app.js:1
(anonymous) @ app.js:1
(anonymous) @ app.js:1
(anonymous) @ app.js:1
A @ app.js:1
t.setViewState @ app.js:1
addTrackerView @ VM145:32111
eval @ VM145:5201
eval @ VM145:164
__awaiter2 @ VM145:146
open @ VM145:5199
VM145:31486 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'name')
at TrackerView.newEncounter (eval at <anonymous> (app.js:1), <anonymous>:31486:25)
at new TrackerView (eval at <anonymous> (app.js:1), <anonymous>:31298:12)
at eval (eval at <anonymous> (app.js:1), <anonymous>:31917:57)
at t.<anonymous> (app.js:1)
at app.js:1
at Object.next (app.js:1)
at app.js:1
at new Promise (<anonymous>)
at A (app.js:1)
at t.setViewState (app.js:1)
When using the initiative tracker on an ipad I can select a creature and see the edit, add status, disable, remove options. But when I select "add status" nothing appears and I am unable to assign a status to the creature.
It looks like difficulty calculations in the notes don't take into account the quantity of creatures (it assumes only 1 of each type listed regardless). When sent to the tracker, though, the calculation looks correct.
Hello,
I just started using Obsidian and your initiative-tracker. For some time it worked and after a restart the code doesn't get rendered. It doesn't throw any errors like it does with wrong syntax.
I'm on MacOS
Code:
\```encounter
name: Drachennest
creatures:
- 1: Young White Dragon
- 3: Ice Mephit
\```
without the slashes
Initiative Tracker v7.0
When clicking away from the initiative tracker in a side panel and viewing another panel, the statblock viewer recently introducted w/ a recent Init Tracker update will not go away nor can you click on a "close" button.
Sometimes I only want to see the creatures in the encounter, so the players end up taking up a lot of vertical space that I don't really need to see.
Having an option for the encounter codeblock to hide the players from each or all would be great.
Maybe something like hide: players
or players: (hide) Name, Name
. This is mostly visual so I still want the players to load up once the encounter begins though.
```encounter
name: 2. Goblin Blind
hide: players
players:
- Althea Amasticia
- Salazar
- Amafrey
creatures:
- Goblin, 5
- Goblin, 4
```
```encounter
name: 2. Goblin Blind
players: (hide)
- Althea Amasticia
- Salazar
- Amafrey
creatures:
- Goblin, 5
- Goblin, 4
```
The difficulty calculations currently only count monsters only once per monster type in the markdown read view. In the initiative tracker window, the calculations work as expected, with modifiers according to how many monsters are in combat, but the markdown read view will display fighting 500 cultists to be an easy encounter with 12500 xp and an x1 modifier.
Would be nice if there was a way to tag creatures / npcs as friendly and have the encounter calculate difficulty accordingly
Version 8.0.11
The AC field will only display if it is a numeric value. If it contains text, then is does not show in the initiative grid, nor in the 5e template below.
This field needs to be able to strip out text characters so that the value can be shown in the grid, and display the complete string in the 5e template.
For instance, I created a monster whose AC is "14 (natural armor)" and it would not show up in either location, but if I just put in "14" it worked as expected.
This is not an issue in 5e statblock. The same creature show up as expected if I just pull them up via statblock
.
Although it looks like the 5e statblock importer drops the text so it's not an easily found problem. Pulling the MM from 5eTools, "Archmage" should have an AC of "12, (15 with mage armor)", but when I look at the JSON for that entry, statblock only has "12". So that would be a different issue/feature enhancement.
When you click Begin Encounter from an encounter block the party is resetting and displaying all players in the json.
You can't easily fix it either due to not being able to select the current party as the tool assumes they are already selected so you need to select a different party and then select the original party to get the right players in the combat.
Issue request to make XP visible in the encounter-table. Extra credit for a total at the bottom ๐
When an encounter is created in a note using encounter-table
, the calculated XP and resulting difficulty do not appear to account for multiple instances of the same creature, and as a result an incorrect XP and difficulty are shown in the table view. The correct XP and difficulty are shown when the encounter is launched.
Example: an encounter with 5 bugbears (CR 1, 200 XP) should have a total XP of 2000 (1000 XP from the bugbears, multiplied by 2 for the number of opponents). For a party of 3 level 5 characters, this should be a Medium encounter. However, an encounter created using
encounter-table
name: Five Bugbears
creatures:
- 5: Bugbear
(with a default party of 3 level 5 characters) shows the encounter difficulty as Easy, and the hovertext for difficulty shows a total XP of 200, with an adjusted XP of 200. When the encounter is launched, the initiative tracker correctly shows the encounter difficulty as Medium, with a total XP of 1000 and an adjusted XP of 2000.
If the same encounter is created using
encounter
name: Five Bugbears
creatures:
- 5: Bugbear
the correct difficulty and XP are displayed in the note.
Side note: thanks for a great set of plugins, these are incredibly useful!
Would it be possible to add a feature for tracking spell slots for monsters with spellcasting? It would also be great if the effects/to-hit/damage rolls are supported.
If I create two encounters. Both are exactly the same just one is a normal encounter and the other is via an encounter table, the difficulties arent calculated incorrectly within the table version .(see screenshot).
Encounter code is below:
name: Example 1
creatures:
- Hobgoblin
- 3: Goblin
name: Example 2
creatures:
- Hobgoblin
- 3: Goblin
Hi there, it seems that your plugin ID doesn't match the one that was submitted to the plugins repo:
"obsidian-initiative-tracker" vs "initiative-tracker"
https://github.com/valentine195/obsidian-initiative-tracker/blob/master/manifest.json#L2
This causes Obsidian to fail to install your plugin - let me know which side you want to get this changed.
Hi Jeremy,
FYI, I just tested this plugin on ipad pro 12.9 and my initial tests showed no problems so far.
I have the following questions for this plugin (all based on tests with Desktop version on Mac OS):
And a general question: How exactly is initiative calculated (1d20+modifier?). Would it be possible to configure this via settings? I use Fantasy AGE, which uses 3d6 + modifier.
BTW: Thank you very much for your great plugins! I intend to use most of them (with the exception of 5e Statblocks, which is unfortunately too DND-specific for me).
Best,
Matthias
Would it be possible to create a encounter log as the tracker is used?
Ie on X's turn X loses X amount of HP, next turn etc.
It would be great to be able to put a custom or additional name for a creature. If I have three thieves, for example, I'd like to be able to name them other than Thief 1, Thief 2, Thief 3. This used to be possible before the integration with the Stablocks (which I love!) broke it due to using the name.
Perhaps passing a string as part of the array?
`
I have a player saved. In settings, I can see mod + 3 but the roll in the toolbar always says +0 (hover over initiative result).(I have the modifier stored in the header of player note as modifier: 3.
I'm not really sure where to set the %mod for creatures? But default creatures (Ancient Black Dragon) has +0 as well. I would assume it should have +dex mod (+2)?
It would be nice to assess how difficult an encounter is either using official guidelines or a heuristic such as Sly Flourish's benchmark.
To do that, we need information about the character levels and creature (monster) CR's.
I'd love to implement this utility but I just started learning js/ts/svelte so I am not sure if I am capable of the task ;)
During prep time its sometimes useful to be able to pull up the statblock just for references purposes and it would be useful to do so without needing to add the statblock to a note. The Initiative Tracker already has a Combatant view which I really like and I would like to be able to type in the name of a creature and have that statblock show in that window.
Currently my process is to add a statblock to the note
```statblock
monster: Goblin
```
and then render it, check it, then delete it, but if I could just pull it up in a sidebar that would be ideal.
Thanks! I love these plugins!
If you click just outside the HP-box, the creature gets added without resistance, while if you click on the HP-box, it gets added with resistance. With this behaviour, it's very easy to accidentally add a creature with no modifiers when intending to add a creature with their resist field set to true.
If the intention is to have a larger area to click when adding creatures, I'd recommend ensuring the functionality for only opening the statblock is on the creature's name, instead the entire creature row, while the rest of the creature row adds them for damage and status application.
Cannot close creature view statblock in the Initiative Tracker (bottom right corner) once opened.
Clicking on the X to close it does nothing.
Can we have Party and Players both active in an encounter block (actually for NPCs)? That way I can add not only the current Party, but also a random number of NPCs (using dice roller) like the following example. Below the Captain and Sailors are NPCs that are randomly on their boat, while the Party themselves are in the party field. The way it works today is that it is either party or players. Having both allows me to prep encounters with extra NPCs quite well...
```encounter
name: Random Sea Encounter
party: My Party
players:
- Captain
- 1d12 Sailor
creatures:
- 5 Sahuagin
``\`
That is, assuming, that one sets up their NPCs to have at least the same YAML block as the players and imports them into the Initiative Tracker as well, (which I do. It is double work but make the Difficulty of the encounter come out right. The NPCs are good and not bad, you know. ๐ )
I was expecting the "display name" to appear on the player window. Instead, it displays the stat block name. Also, the creatures don't appear in the GM window as numbered as they do in the player window. If you save the encounter and then re-open it, then the creature numbers appear. It would be nice if that just happened the first time.
Hi there! Love your Obsidian plugins. I noticed that when I have a high-AC PC / monster that has high HP too, the formatting of the table on the right pane is somewhat narrow. There's no margin between the AC and HP, making it hard to read until the current HP hit two digits again:
And that only when one of the digits is a little more narrow.
Is it possible to make the width of the columns scale with the width of the pane?
There are scenarios, i.e.: when tracking an event that influences the combat on every round on initiative count 10.
I'd like to set the initiative for a creature to be static so it skips rolling and takes the value.
I'd like to see this implemented in the YAML encounter description
Hi Jeremy, I saw this morning your initiative tracker plugin on the discord's starboard, and the first thing that I thought for your plugin was to use it as a kanban board. I have the kanban plugin but at the same time, I use the slide panes plugin, which loses its purpose with the kanban plugin because I have to scroll inside the file if I have too many lists.
Your plugin is perfect, as soon as the file is filled with lists, it starts in a new line below the other lists. I would like to request you to make a few adjustments, maybe on a separate plugin or within modifiable settings, to make it kanban-friendly.
As you can see in the image below, I have highlighted the things that I consider could make the plugin more kanban-friendly. The sword logo could be turned off; the creatures header could be renamed or omitted; the number of creatures (or tasks) could be turned off; when the name of the creature (or task) is too long it overlaps with the next list, it could continue in a new line just like the name of the list. A couple of things that could be added are checkboxes and the possibility of using links to notes.
I hope my request isn't much to ask, I thought only of minimal changes that could make the plugin easier to use for kanban. I know this is not the purpose you have for the plugin in the first place, but I must express that I really like this way of using it and I will keep using it even if no changes are made in this direction. That is how much I enjoy the way your plugin is set up.
Best regards, Mateo Durรกn.
As a dungeon master; I want all monsters that use the same stat block to act on the same initiative; so that combat has less context switching, making it more predictable and smoother for the players.
Current behaviour: every monster rolls initiative independently.
Desired behaviour: Having an option when defining an encounter to group monsters that will act on the same turn. It should allow this without interrupting the current behaviour, or requiring aditional syntax for dungeon masters who want to continue using the current behaviour.
Having a settings flag that universially switches the behaviour on or off. It groups monsters by comparing the origin of each monster (be it SRD Monster, Homebrew, or inline stats).
eg, for the following encounter, all the goblins will be grouped, but Inline A and Inline B won't
name: Example 1
creatures:
- 1: Goblin
- 1: Inline A, 7, 15, 2
- 1: Goblin
- 1: Inline B, 7, 15, 2
- 5: Goblin
Disadvantages
name: Example 2
creatures:
- 1: Inline, 7, 15, 2
- 1: Inline, 7, 15, 2
- 1: Inline, 10,15,2
- 1: Inline, 7,15,3
Use the same setting flag as above, but this time creating one group per line. So Example 1 from above would create 5 groups under this system, whereas it created 3 earlier.
Instead of using any kind of flags, aditional syntax is added to build monster groups.
e.g. (Syntax as example only, will need futher work.)
name: Example 3
creatures:
- 1: Hobgoblin Chieftan
-
name: Melee Minions
mod: 2
creatures:
- 2: Goblin Bandit
- 2: Goblin Thug
-
name: Artillerist Minions
creatures:
- 4: Goblin Archer
In this example there are 3 groups: the boss, and two groups on minions. The name and mod keys are optional. If the mod is excluded, it takes the average mod of all the monsters in the group.
G4: Goblin archer
indicates 4 Goblin archers who will act as a group?Adding the encounter code block yields undefined creatures:
\```encounter
name: Example
creatures:
- 3: Goblin
\```
(Using back slashes to escape the code block.)
This will show up as "undefined Goblins" and the initiative tracker will show no creatures at all.
I have imported from DndAppFile and 5e.tools, just to see whether it is a format issue. I see 490 homebrew monsters in the settings; they are not listed there though.
The data.json
file does include the monsters and the JSON format is sound. Adding statblock
for a Goblin works without a problem.
I've updated all plugins and restarted Obsidian, but that did not make a difference. Neither does switching between live preview and preview.
TTRPG statblocks 2.14.2
Initiative Tracker 7.4.1
Obsidian 0.14.2
Dice Roller 8.3.1
Edit: Added Dice roller version number.
If I "add status" then type something (i.e., not select one of the default choices) then click on a different window before closing the status input (i.e., hitting return) Initiative Tracker freezes. This happens even if I only hit the space bar and then click on a different window before returning to Initiative Tracker.
I then have to close obsidian and then re-open it to get Initiative Tracker to work again - but then the encounter has reset, and I've lost all the changes.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.