<b>Note:</b> At the moment Windows and OSX support has been confirmed. Linux support is unknown, there is no official Linux support for the Stream Deck, but there exist a 3rd party <a href="https://timothycrosley.com/project-7-streamdeck_ui">Stream Deck UI</a> that might be compatible.<br>
<b>In any case: Proceed at your own risk, I will not take any responsibility if you spent money and the module doesn't work!</b>

<b>Please read the documentation carefully, especially if you want to modify the default profile!</b>

I created a <a href="https://discord.gg/3hd4G6TkmA">Discord server</a> to discuss this and other hardware-based Foundry modules. Feel free to join if you'd like to join the discussion and be updated on this module.

[![Youtube Video](https://github.com/CDeenen/MaterialDeck/blob/Master/wiki/img/Youtube.png)](https://youtu.be/7h5Ew8cJYxg "FoundryVTT Material Deck Demonstration")

# Material Deck
Material Deck is a Foundry VTT module that allows you to control certain Foundry functions using an Elgato Stream Deck. A Stream Deck is a device that has physical buttons with displays behind them. Material Deck uses this to, for example, control playlists, execute macros, display and control the combat tracker.<br><br>
The module allows a high degree of customization, where each button on the Stream Deck can be assigned any desired function. Furthermore, it supports folder structures, allowing easy switching between various button configurations so you can easily switch between the combat tracker, soundboard, or any other (custom) configuration.<br><br>
The functions are categorized into actions. Here is a list of the available actions and their most important functions:
<ul>
  <li>Playlist Action: Control Foundry's playlists</li>
  <ul>
    <li>Play/Stop playlists</li>
    <li>Play/Stop tracks</li>
    <li>Stop all tracks & playlists</li>
  </ul>
  <li>Soundboard Action: Play sounds</li>
  <ul>
    <li>Play/Stop sound</li>
    <li>Stop all sounds</li>
  </ul>
  <li>Token Action: Display token info</li>
  <ul>
    <li>Display selected token's name, icon or stats (HP/AC/Movement/etc)</li>
    <li>Open selected token's character sheet or token config</li>
    <li>Target token</li>
    <li>Toggle token visibility, combat state, conditions</li>
  </ul>
  <li>Move Action: Move selected token or the canvas</li>
  <li>Macro Actions: Execute macros</li>
  <ul>
    <li>Execute macro from hotbar</li>
    <li>Execute macro from macro board</li>
  </ul>
  <li>Combat Tracker Actions: Control and display the combat tracker</li>
  <ul>
    <li>Display combatants</li>
    <li>Start/Stop combat</li>
    <li>Next/Previous turn/round</li>
  </ul>
  <li>Other Actions: Misc other actions</li>
  <ul>
    <li>Pause/Resume game</li>
    <li>Scene selection/activation</li>
    <li>Toggle control buttons</li>
    <li>Control darkness level</li>
    <li>Open/Roll from a roll table</li>
    <li>Open sidebar tab</li>
    <li>Open compendium pack</li>
    <li>Open journal entry</li>
  </ul>
</ul>
  
## Instructions and More Info
Instructions and more info can be found in the <a href="https://github.com/CDeenen/MaterialDeck/wiki">wiki</a>.

## Latest releases
<a href="https://github.com/CDeenen/MaterialDeck/releases">Module</a><br>
<a href="https://github.com/CDeenen/MaterialDeck_SD/releases">Stream Deck</a><br>
<a href="https://github.com/CDeenen/MaterialServer/releases">Server</a><br>
<br>
Module manifest: https://raw.githubusercontent.com/CDeenen/MaterialDeck/Master/module.json

## Software Versions & Module Incompatibilities
<b>Foundry VTT:</b> Tested on 0.7.9 - 0.8.5<br>
<b>Module Incompatibilities:</b> None known.<br>

## Developer Guide
See the [developer guide](./DEVGUIDE.md) for a guide on how to add new systems to `MaterialDeck`.

## Feedback
If you have any suggestions or bugs to report, feel free to create an issue, contact me on Discord (Cris#6864), or send me an email: cdeenen@outlook.com.

## Credits
<b>Author:</b> Cristian Deenen (Cris#6864 on Discord)<br>
<br>
Special thanks to Asmodeus#7588 who made this module possible by generously donating a Stream Deck XL
<br>
Please consider supporting me on <a href="https://www.patreon.com/materialfoundry">Patreon</a>, and feel free to join the Material Foundry <a href="https://discord.gg/3hd4G6TkmA">Discord</a> server.

## Abandonment
Abandoned modules are a (potential) problem for Foundry, because users and/or other modules might rely on abandoned modules, which might break in future Foundry updates.<br>
I consider this module abandoned if all of the below cases apply:
<ul>
  <li>This module/github page has not received any updates in at least 3 months</li>
  <li>I have not posted anything on "the Foundry", "the League of Extraordinary Foundry VTT Developers" or the "Material Foundry" Discord servers in at least 3 months</li>
  <li>I have not responded to emails or PMs on Discord in at least 1 month</li>
  <li>I have not announced a temporary break from development, unless the announced end date of this break has been passed by at least 3 months</li>
</ul>
If the above cases apply (as judged by the "League of Extraordinary Foundry VTT Developers" admins), I give permission to the "League of Extraordinary Foundry VTT Developers" admins to assign one or more developers to take over this module, including requesting the Foundry team to reassign the module to the new developer(s).<br>
I require the "League of Extraordinary Foundry VTT Developers" admins to send me an email 2 weeks before the reassignment takes place, to give me one last chance to prevent the reassignment.<br>
I require to be credited for my work in all future releases.
