death-save / maestro Goto Github PK
View Code? Open in Web Editor NEWAudio-focused QOL module for Foundry Virtual Tabletop
License: GNU General Public License v3.0
Audio-focused QOL module for Foundry Virtual Tabletop
License: GNU General Public License v3.0
They just overlap.
Give full access to trusted players to see, edit and play your playlists just like a GM.
With enough trusted players you can improve your online experience by assigning someone to DJ duty.
This is a tried and tested method that is preferred by Japanese users due to it being a default option in one of their VTTs.
A default Hypetrack that can be auto-assigned to NPCs would be convenient. It would allow for use of the hype track for loop music rather than just intros.
The Combat Track continues to play when a Hype Track starts, resulting in a muddy train wreck.
Maybe stopping the Combat Track when a Hype Track starts and then starting it again as the Hype Track ends would create a de facto default NPC hype track?
Thanks for making this--it's awesome. And it gives new life to my mp3 collection. ๐
Due to the styles in the WFRP4e system the button looks out of place. We should think about a better way to create the button so it's more in-line with/can be styled by system styles.
dasuberchin says: I'm running into an issue where an NPC's hype sound doesn't play for the players on the npc's turn in the combat tracker. The players get an error saying ''' User [username] lacks permission to update Tokens in parent mo8UtOKWHxAOxX43 ''' , where mo8UtOKWHxAOxX43 is the id of the scene. Playing combat music from the tracker works fine, and playing the hype sound files from the Audio Playlists tab plays them fine too
Partial Scratch That. NPC Hype Sounds ARE playing, they're just accompanied by the error message
Am seeing this error...
item-track.js:111 Uncaught (in promise) TypeError: Cannot read property 'data' of null
at ItemTrack.getItemFlags (item-track.js:111)
at ItemTrack.chatMessageHandler (item-track.js:76)
getItemFlags @ item-track.js:111
chatMessageHandler @ item-track.js:76
async function (async)
chatMessageHandler @ item-track.js:73
(anonymous) @ maestro.js:180
_call @ foundry.js:2220
call @ foundry.js:2205
callOriginalFunction @ Patches.js:57
(anonymous) @ Debug.js:42
render @ foundry.js:27956
async function (async)
render @ foundry.js:27952
_renderBatch @ foundry.js:39800
async function (async)
_renderBatch @ foundry.js:39800
_render @ foundry.js:39769
async function (async)
_render @ foundry.js:39768
_render @ foundry.js:24744
async function (async)
_render @ foundry.js:24734
render @ foundry.js:3831
initializeUI @ VM12185:389
setupGame @ VM12185:292
async function (async)
setupGame @ VM12185:286
_initializeGameView @ VM12185:938
initialize @ VM12185:223
async function (async)
initialize @ VM12185:215
window.addEventListener.once @ foundry.js:6480
async function (async)
window.addEventListener.once @ foundry.js:6479
When having on Maestro, CUB, Dynamic Effects and MQOL and rolling for a saving throw
Foundry VTT | Created ChatMessage with id zPeDKBtIR1H8CkDe
minor-qol.js:7 Minor Qol | Ability save result is Thorim Redforge rolled 13 vs con DC 14
foundry.js:9682 Foundry VTT | Created ChatMessage with id dcpcQ1dt6NzzsDBS
Uncaught (in promise) TypeError: Cannot read property 'data' of null
at ItemTrack.getItemFlags (item-track.js:111)
at ItemTrack.chatMessageHandler (item-track.js:76)
index.js:89 {cp: 22, sp: 16, ep: 4, gp: 589, pp: 184}
index.js:104 {cp: 2, sp: 3, ep: 1, gp: 2, pp: 243}
Uncaught (in promise) TypeError: Cannot read property 'data' of null
at ItemTrack.getItemFlags (item-track.js:111)
at ItemTrack.chatMessageHandler (item-track.js:76)
getItemFlags @ item-track.js:111
chatMessageHandler @ item-track.js:76
async function (async)
chatMessageHandler @ item-track.js:73
(anonymous) @ maestro.js:180
_call @ foundry.js:2220
call @ foundry.js:2205
callOriginalFunction @ Patches.js:57
(anonymous) @ Debug.js:42
render @ foundry.js:27956
async function (async)
render @ foundry.js:27952
postOne @ foundry.js:39928
_onCreate @ foundry.js:28024
(anonymous) @ foundry.js:9673
_handleCreate @ foundry.js:9663
create @ foundry.js:9644
async function (async)
create @ foundry.js:9636
create @ foundry.js:27968
checkSaves @ minor-qol.js:1635
async function (async)
checkSaves @ minor-qol.js:1588
processDamageRoll @ minor-qol.js:1463
(anonymous) @ minor-qol.js:535
_call @ foundry.js:2220
call @ foundry.js:2205
callOriginalFunction @ Patches.js:57
(anonymous) @ Debug.js:42
render @ foundry.js:27956
async function (async)
render @ foundry.js:27934
postOne @ foundry.js:39928
_onCreate @ foundry.js:28024
(anonymous) @ foundry.js:9673
_handleCreate @ foundry.js:9663
create @ foundry.js:9644
async function (async)
create @ foundry.js:9636
create @ foundry.js:27968
toMessage @ foundry.js:7793
_roll @ dice.js:226
callback @ dice.js:267
submit @ foundry.js:13537
_onClickButton @ foundry.js:13498
dispatch @ jquery.min.js:2
v.handle @ jquery.min.js:2
Example a monster growling so players "hear it before seeing it"
suggested for core by Tritone
Example being a loot sheet NPC could trigger a chest open sound
Player X lacks the permission to update PlaylistSound
If everyone is added to the combat tracker and select the "Begin Combat" the first actor's hype track won't play unless you switch to another actor and back.
Would be great to be able to add a Victory sound. Final Fantasy 7 one comes to mind as an example.
Reported by llothos on discord
Currently, the hype track music keeps playing unless you manually stop the track. It be nice if it turns off once the combat was ended.
Add a method of defining at which time the track starts and at which time it stops playing/entering the next loop.
Through this many tracks that usually fade out at the end can be made to enter into a pseudo loop state or one can define a track to start at its climax without having to wait for the wind-up.
Suggested by rick(-4)#1217:
Is there a way to link a Playlist in a story module? When I try to drag the playlist to the story it simply shows the path but does not create a link like it would a character or table... If this does not exist is there anyone interested in doing the code? If price is OK I would be ready to pay... I,m sure other would find it useful to just click in your journal entry and have the music start... not having to go to the playlist tab and look for the right sound or music!
Story module = journal
Posted in discord asking about a way to play sounds when certain keywords appear in attack rolls/ damage. Was told to post here :)
investigate line 66 onwards in item-track.js
scenario: characters continually reimported via VTTA-ddb lose their item tracks (assume the items are deleted and recreated each time)
for playlists/tracks to play when it's day, night, raining, snowing, eclipse, etc. This would greatly enhance the usefulness for me and a qol improvement.
Add a field where the user can define the source for a specific track or playlist. This source would then show a pop-up or message info as to what the original track name is and from whom and where it was taken from.
When outputting the source it would first check against the source of the track and if lacking it would default to the source of the playllist.
With Maestro on and in PF2, Roll NPC and Roll All buttons no longer work and disappear when clicked.
manical-laugh.gif.wav
It would be great to allow different sounds depending on whether an item's roll missed, or hit and caused damage.
When you enable the hype track via the settings, go to your actor and select the button, nothing happens and an error is given:
hype-track.js:179 Uncaught (in promise) TypeError: Cannot read property 'sounds' of null
at HypeTrackActorForm.getData (hype-track.js:179)
at HypeTrackActorForm._render (foundry.js:3209)
at HypeTrackActorForm.render (foundry.js:3183)
at HypeTrack._openTrackForm (hype-track.js:147)
at HTMLAnchorElement. (hype-track.js:132)
Even after adding the playlist, this issue can still exist. It currently requires a page refresh to get it to work.
Refreshing window after enabling Hype Tracks fixes the issue.
Allow the DM to leverage streaming APIs from dropbox, youtube, Spotify, syrinscape, etc.
This is a feature request to play a sound on death. In roll20 I've done this with scripts, and its always a bit of a laugh when the wilhelm scream plays for each minion.
need options to change the playlist, set it to play random track etc
We should harden up our logic for targeting the correct application instance
A basic soundboard UI where the user can define the name, image, source and key combination for a specific sound effect.
The sound is later played by either clicking on the icon that appears on the soundboard or by pressing the key combination.
See the following site for an example
https://www.myinstants.com/categories/sound%20effects/
I've noticed the combat tracks overlap with existing music being played. Is there an automagical way to stop other tracks when the combat starts, perhaps a 'pause other playlist sounds when combat starts'?
Due to the way we are hooking on every item sheet render, the Item Track button shows up even on Compendium-stored items. This is problematic as you cannot save data to a compendium entity.
We should do 1 of the following:
From lictor:
errational howdy chief - quick question on the Maestro mod: is it possible to randomize the sounds attached to an item? For example, having 3-4 the mod chooses from for the sounds of a dagger attack? Only asking because I know that was requested a couple of times in core requests and wondered how far you'd taken it.
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.