diff --git a/_macros/hotbar_0e/death_save.js b/_macros/hotbar_0e/death_save.js
index 8957565..85fbb53 100644
--- a/_macros/hotbar_0e/death_save.js
+++ b/_macros/hotbar_0e/death_save.js
@@ -46,17 +46,17 @@ if ((macroTarget === 'character' && !game.user.character) || (macroTarget === 't
buttons: {
button1: {
label: `Advantage`,
- callback: () => game.mosh.initRollTable(`cZOHlhEJcYGZsQBM`,`1d10 [+]`,`high`,false,false,null,null),
+ callback: () => game.mosh.initRollTable(game.settings.get('mosh','table0eDeath'),`1d10 [+]`,`high`,false,false,null,null),
icon: ``
},
button2: {
label: `Normal`,
- callback: () => game.mosh.initRollTable(`cZOHlhEJcYGZsQBM`,`1d10`,`high`,false,false,null,null),
+ callback: () => game.mosh.initRollTable(game.settings.get('mosh','table0eDeath'),`1d10`,`high`,false,false,null,null),
icon: ``
},
button3: {
label: `Disadvantage`,
- callback: () => game.mosh.initRollTable(`cZOHlhEJcYGZsQBM`,`1d10 [-]`,`high`,false,false,null,null),
+ callback: () => game.mosh.initRollTable(game.settings.get('mosh','table0eDeath'),`1d10 [-]`,`high`,false,false,null,null),
icon: ``
}
}
diff --git a/_macros/hotbar_1e/death_save.js b/_macros/hotbar_1e/death_save.js
index 486e7e1..90fa6d1 100644
--- a/_macros/hotbar_1e/death_save.js
+++ b/_macros/hotbar_1e/death_save.js
@@ -46,17 +46,17 @@ if ((macroTarget === 'character' && !game.user.character) || (macroTarget === 't
buttons: {
button1: {
label: `Advantage`,
- callback: () => game.mosh.initRollTable(`W36WFIpCfMknKgHy`,`1d10 [+]`,`low`,true,false,null,null),
+ callback: () => game.mosh.initRollTable(game.settings.get('mosh','table1eDeath'),`1d10 [+]`,`low`,true,false,null,null),
icon: ``
},
button2: {
label: `Normal`,
- callback: () => game.mosh.initRollTable(`W36WFIpCfMknKgHy`,`1d10`,`low`,true,false,null,null),
+ callback: () => game.mosh.initRollTable(game.settings.get('mosh','table1eDeath'),`1d10`,`low`,true,false,null,null),
icon: ``
},
button3: {
label: `Disadvantage`,
- callback: () => game.mosh.initRollTable(`W36WFIpCfMknKgHy`,`1d10 [-]`,`low`,true,false,null,null),
+ callback: () => game.mosh.initRollTable(game.settings.get('mosh','table1eDeath'),`1d10 [-]`,`low`,true,false,null,null),
icon: ``
}
}
diff --git a/_macros/triggered_0e/death_save+.js b/_macros/triggered_0e/death_save+.js
index cd55b42..4649408 100644
--- a/_macros/triggered_0e/death_save+.js
+++ b/_macros/triggered_0e/death_save+.js
@@ -1 +1 @@
-game.mosh.initRollTable(`cZOHlhEJcYGZsQBM`,`1d10 [+]`,`high`,false,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table0eDeath'),`1d10 [+]`,`high`,false,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_0e/death_save-.js b/_macros/triggered_0e/death_save-.js
index 542ec68..30cd734 100644
--- a/_macros/triggered_0e/death_save-.js
+++ b/_macros/triggered_0e/death_save-.js
@@ -1 +1 @@
-game.mosh.initRollTable(`cZOHlhEJcYGZsQBM`,`1d10 [-]`,`high`,false,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table0eDeath'),`1d10 [-]`,`high`,false,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/bleeding_wound+.js b/_macros/triggered_1e/bleeding_wound+.js
index 3f9cdaf..22a8ab5 100644
--- a/_macros/triggered_1e/bleeding_wound+.js
+++ b/_macros/triggered_1e/bleeding_wound+.js
@@ -1 +1 @@
-game.mosh.initRollTable(`ata3fRz3uoPfNCLh`,`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBleeding'),`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/bleeding_wound-.js b/_macros/triggered_1e/bleeding_wound-.js
index 03b2022..6ef50aa 100644
--- a/_macros/triggered_1e/bleeding_wound-.js
+++ b/_macros/triggered_1e/bleeding_wound-.js
@@ -1 +1 @@
-game.mosh.initRollTable(`ata3fRz3uoPfNCLh`,`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBleeding'),`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/bleeding_wound.js b/_macros/triggered_1e/bleeding_wound.js
index 149a8d9..59d6576 100644
--- a/_macros/triggered_1e/bleeding_wound.js
+++ b/_macros/triggered_1e/bleeding_wound.js
@@ -1 +1 @@
-game.mosh.initRollTable(`ata3fRz3uoPfNCLh`,`1d10`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBleeding'),`1d10`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/blunt_force_wound+.js b/_macros/triggered_1e/blunt_force_wound+.js
index fcff5a6..e849e9e 100644
--- a/_macros/triggered_1e/blunt_force_wound+.js
+++ b/_macros/triggered_1e/blunt_force_wound+.js
@@ -1 +1 @@
-game.mosh.initRollTable(`31YibfjueXuZdNLb`,`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBluntForce'),`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/blunt_force_wound-.js b/_macros/triggered_1e/blunt_force_wound-.js
index 4e3d24d..4f00228 100644
--- a/_macros/triggered_1e/blunt_force_wound-.js
+++ b/_macros/triggered_1e/blunt_force_wound-.js
@@ -1 +1 @@
-game.mosh.initRollTable(`31YibfjueXuZdNLb`,`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBluntForce'),`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/blunt_force_wound.js b/_macros/triggered_1e/blunt_force_wound.js
index 8dd8282..aad9e6a 100644
--- a/_macros/triggered_1e/blunt_force_wound.js
+++ b/_macros/triggered_1e/blunt_force_wound.js
@@ -1 +1 @@
-game.mosh.initRollTable(`31YibfjueXuZdNLb`,`1d10`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBluntForce'),`1d10`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/death_save+.js b/_macros/triggered_1e/death_save+.js
index 26aa2ee..85f810a 100644
--- a/_macros/triggered_1e/death_save+.js
+++ b/_macros/triggered_1e/death_save+.js
@@ -1 +1 @@
-game.mosh.initRollTable(`W36WFIpCfMknKgHy`,`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eDeath'),`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/death_save-.js b/_macros/triggered_1e/death_save-.js
index 03c72a0..66dbc80 100644
--- a/_macros/triggered_1e/death_save-.js
+++ b/_macros/triggered_1e/death_save-.js
@@ -1 +1 @@
-game.mosh.initRollTable(`W36WFIpCfMknKgHy`,`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eDeath'),`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/fire_&_explosives_wound+.js b/_macros/triggered_1e/fire_&_explosives_wound+.js
index 97a8c54..27098b3 100644
--- a/_macros/triggered_1e/fire_&_explosives_wound+.js
+++ b/_macros/triggered_1e/fire_&_explosives_wound+.js
@@ -1 +1 @@
-game.mosh.initRollTable(`lqiaWwh5cGcJhvnu`,`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundFireExplosives'),`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/fire_&_explosives_wound-.js b/_macros/triggered_1e/fire_&_explosives_wound-.js
index d781215..ed220d0 100644
--- a/_macros/triggered_1e/fire_&_explosives_wound-.js
+++ b/_macros/triggered_1e/fire_&_explosives_wound-.js
@@ -1 +1 @@
-game.mosh.initRollTable(`lqiaWwh5cGcJhvnu`,`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundFireExplosives'),`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/fire_&_explosives_wound.js b/_macros/triggered_1e/fire_&_explosives_wound.js
index 1db2364..d76bea7 100644
--- a/_macros/triggered_1e/fire_&_explosives_wound.js
+++ b/_macros/triggered_1e/fire_&_explosives_wound.js
@@ -1 +1 @@
-game.mosh.initRollTable(`lqiaWwh5cGcJhvnu`,`1d10`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundFireExplosives'),`1d10`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/gore_&_massive_wound+.js b/_macros/triggered_1e/gore_&_massive_wound+.js
index f6c6256..a11bb41 100644
--- a/_macros/triggered_1e/gore_&_massive_wound+.js
+++ b/_macros/triggered_1e/gore_&_massive_wound+.js
@@ -1 +1 @@
-game.mosh.initRollTable(`uVfC1CqYdojaJ7yRd`,`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGoreMassive'),`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/gore_&_massive_wound-.js b/_macros/triggered_1e/gore_&_massive_wound-.js
index 19ede53..579c627 100644
--- a/_macros/triggered_1e/gore_&_massive_wound-.js
+++ b/_macros/triggered_1e/gore_&_massive_wound-.js
@@ -1 +1 @@
-game.mosh.initRollTable(`uVfC1CqYdojaJ7yR`,`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGoreMassive'),`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/gore_&_massive_wound.js b/_macros/triggered_1e/gore_&_massive_wound.js
index b5e2565..e8e768a 100644
--- a/_macros/triggered_1e/gore_&_massive_wound.js
+++ b/_macros/triggered_1e/gore_&_massive_wound.js
@@ -1 +1 @@
-game.mosh.initRollTable(`uVfC1CqYdojaJ7yR`,`1d10`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGoreMassive'),`1d10`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/gunshot_wound+.js b/_macros/triggered_1e/gunshot_wound+.js
index 219ca27..c9ed71a 100644
--- a/_macros/triggered_1e/gunshot_wound+.js
+++ b/_macros/triggered_1e/gunshot_wound+.js
@@ -1 +1 @@
-game.mosh.initRollTable(`XjDU2xFOWEasaZK0`,`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGunshot'),`1d10 [+]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/gunshot_wound-.js b/_macros/triggered_1e/gunshot_wound-.js
index f6eb3e9..3f77011 100644
--- a/_macros/triggered_1e/gunshot_wound-.js
+++ b/_macros/triggered_1e/gunshot_wound-.js
@@ -1 +1 @@
-game.mosh.initRollTable(`XjDU2xFOWEasaZK0`,`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGunshot'),`1d10 [-]`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/_macros/triggered_1e/gunshot_wound.js b/_macros/triggered_1e/gunshot_wound.js
index 55f0228..9937339 100644
--- a/_macros/triggered_1e/gunshot_wound.js
+++ b/_macros/triggered_1e/gunshot_wound.js
@@ -1 +1 @@
-game.mosh.initRollTable(`XjDU2xFOWEasaZK0`,`1d10`,`low`,true,false,null,null);
\ No newline at end of file
+game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGunshot'),`1d10`,`low`,true,false,null,null);
\ No newline at end of file
diff --git a/module/actor/actor.js b/module/actor/actor.js
index a45dc08..2968b14 100644
--- a/module/actor/actor.js
+++ b/module/actor/actor.js
@@ -1345,14 +1345,14 @@ export class MothershipActor extends Actor {
if (firstEdition) {
if (androidPanic && this.system.class.value.toLowerCase() === 'android') {
if (useCalm) {
- tableId = 'GCtYeCCQVQJ5M6SE';
+ tableId = game.settings.get('mosh','table1ePanicCalmAndroid');
aimFor = 'low';
zeroBased = true;
checkCrit = true;
rollAgainst = 'system.other.stress.value';
comparison = '<';
} else {
- tableId = 'aBnY19jlhPXzibCt';
+ tableId = game.settings.get('mosh','table1ePanicStressAndroid');
aimFor = 'high';
zeroBased = false;
checkCrit = false;
@@ -1361,14 +1361,14 @@ export class MothershipActor extends Actor {
}
} else {
if (useCalm) {
- tableId = 'MOYI6Ntj5OVFYk06';
+ tableId = game.settings.get('mosh','table1ePanicCalmNormal');
aimFor = 'low';
zeroBased = true;
checkCrit = true;
rollAgainst = 'system.other.stress.value';
comparison = '<';
} else {
- tableId = 'ypcoikqHLhnc9tNs';
+ tableId = game.settings.get('mosh','table1ePanicStressNormal');
aimFor = 'high';
zeroBased = false;
checkCrit = false;
@@ -1379,14 +1379,14 @@ export class MothershipActor extends Actor {
} else {
if (androidPanic && this.system.class.value.toLowerCase() === 'android') {
if (useCalm) {
- tableId = 'VW6HQ29T7zClNIZ6';
+ tableId = game.settings.get('mosh','table0ePanicCalmAndroid');
aimFor = 'low';
zeroBased = true;
checkCrit = true;
rollAgainst = 'system.other.stress.value';
comparison = '<';
} else {
- tableId = 'egJ11m2mJM3HBd6d';
+ tableId = game.settings.get('mosh','table0ePanicStressAndroid');
aimFor = 'high';
zeroBased = false;
checkCrit = false;
@@ -1395,14 +1395,14 @@ export class MothershipActor extends Actor {
}
} else {
if (useCalm) {
- tableId = 'kqKpQAXyLTEEyz6Z';
+ tableId = game.settings.get('mosh','table0ePanicCalmNormal');
aimFor = 'low';
zeroBased = true;
checkCrit = true;
rollAgainst = 'system.other.stress.value';
comparison = '<';
} else {
- tableId = '1vCm4ElRPotQXgNB';
+ tableId = game.settings.get('mosh','table0ePanicStressNormal');
aimFor = 'high';
zeroBased = false;
checkCrit = false;
@@ -1426,7 +1426,7 @@ export class MothershipActor extends Actor {
//set special roll value for use later
specialRoll = tableId;
//assign variables
- tableId = 'kqz8GsFVPfjvqO0N';
+ tableId = game.settings.get('mosh','table1eMaintenance');
zeroBased = true;
checkCrit = true;
rollAgainst = 'system.stats.systems.value';
@@ -2405,7 +2405,7 @@ export class MothershipActor extends Actor {
let compendium = game.packs;
let currentLocation = ``;
let tableLocation = ``;
- let tableId = `BsfdIl7CJNs1PViS`;
+ let tableId = game.settings.get('mosh','table1eBankruptcy');
//loop through each compendium
compendium.forEach(function(pack){
//is this a pack of rolltables?
@@ -3417,17 +3417,17 @@ export class MothershipActor extends Actor {
buttons: {
button1: {
label: `Advantage`,
- callback: () => this.rollTable(`UxAjAqUTjYTcCbS8`,`1d10 [+]`,`low`,true,false,null,null),
+ callback: () => this.rollTable(game.settings.get('mosh','table1eDistressSignal'),`1d10 [+]`,`low`,true,false,null,null),
icon: ``
},
button2: {
label: `Normal`,
- callback: () => this.rollTable(`UxAjAqUTjYTcCbS8`,`1d10`,`low`,true,false,null,null),
+ callback: () => this.rollTable(game.settings.get('mosh','table1eDistressSignal'),`1d10`,`low`,true,false,null,null),
icon: ``
},
button3: {
label: `Disadvantage`,
- callback: () => this.rollTable(`UxAjAqUTjYTcCbS8`,`1d10 [-]`,`low`,true,false,null,null),
+ callback: () => this.rollTable(game.settings.get('mosh','table1eDistressSignal'),`1d10 [-]`,`low`,true,false,null,null),
icon: ``
}
}
diff --git a/module/actor/ship-sheet-sbt.js b/module/actor/ship-sheet-sbt.js
index 9424f0e..89c16cb 100644
--- a/module/actor/ship-sheet-sbt.js
+++ b/module/actor/ship-sheet-sbt.js
@@ -166,7 +166,7 @@ export class MothershipShipSheetSBT extends ActorSheet {
const actorData = sheetData.data;
//A script to return the data from a table.
- let tableId = 'AqGWwoWXzijFs427';
+ let tableId = game.settings.get('mosh','table1eMegadamageEffects');
let currentLocation = '';
let tableLocation = '';
//find where this table is located
diff --git a/module/settings.js b/module/settings.js
index 8577ae2..9a029b9 100644
--- a/module/settings.js
+++ b/module/settings.js
@@ -1,3 +1,5 @@
+import { rolltableConfig } from "./windows/settings-rolltables.js";
+
export const registerSettings = function () {
game.settings.register('mosh', 'firstEdition', {
@@ -295,4 +297,151 @@ export const registerSettings = function () {
}
});
-};
+ game.settings.registerMenu('mosh', 'rolltableSelector', {
+ name: "Rolltable Configuration",
+ label: "Choose Tables",
+ hint: "Customize which rolltables are used.",
+ icon: "fa-solid fa-list",
+ type: rolltableConfig
+ });
+
+ game.settings.register('mosh', 'rolltableSelector', {
+ scope: 'world',
+ config: true,
+ type: Object
+ });
+
+ game.settings.register('mosh', 'table0ePanicStressNormal', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "1vCm4ElRPotQXgNB"
+ });
+
+ game.settings.register('mosh', 'table0ePanicStressAndroid', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "egJ11m2mJM3HBd6d"
+ });
+
+ game.settings.register('mosh', 'table0ePanicCalmNormal', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "kqKpQAXyLTEEyz6Z"
+ });
+
+ game.settings.register('mosh', 'table0ePanicCalmAndroid', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "VW6HQ29T7zClNIZ6"
+ });
+
+ game.settings.register('mosh', 'table1ePanicStressNormal', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "ypcoikqHLhnc9tNs"
+ });
+
+ game.settings.register('mosh', 'table1ePanicStressAndroid', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "aBnY19jlhPXzibCt"
+ });
+
+ game.settings.register('mosh', 'table1ePanicCalmNormal', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "MOYI6Ntj5OVFYk06"
+ });
+
+ game.settings.register('mosh', 'table1ePanicCalmAndroid', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "GCtYeCCQVQJ5M6SE"
+ });
+
+ game.settings.register('mosh', 'table1eWoundBluntForce', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "31YibfjueXuZdNLb"
+ });
+
+ game.settings.register('mosh', 'table1eWoundBleeding', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "ata3fRz3uoPfNCLh"
+ });
+
+ game.settings.register('mosh', 'table1eWoundGunshot', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "XjDU2xFOWEasaZK0"
+ });
+
+ game.settings.register('mosh', 'table1eWoundFireExplosives', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "lqiaWwh5cGcJhvnu"
+ });
+
+ game.settings.register('mosh', 'table1eWoundGoreMassive', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "uVfC1CqYdojaJ7yR"
+ });
+
+ game.settings.register('mosh', 'table0eDeath', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "cZOHlhEJcYGZsQBM"
+ });
+
+ game.settings.register('mosh', 'table1eDeath', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "W36WFIpCfMknKgHy"
+ });
+
+ game.settings.register('mosh', 'table1eDistressSignal', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "UxAjAqUTjYTcCbS8"
+ });
+
+ game.settings.register('mosh', 'table1eMegadamageEffects', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "AqGWwoWXzijFs427"
+ });
+
+ game.settings.register('mosh', 'table1eMaintenance', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "kqz8GsFVPfjvqO0N"
+ });
+
+ game.settings.register('mosh', 'table1eBankruptcy', {
+ scope: 'world',
+ config: false,
+ type: String,
+ default: "BsfdIl7CJNs1PViS"
+ });
+
+};
\ No newline at end of file
diff --git a/module/windows/settings-rolltables.js b/module/windows/settings-rolltables.js
new file mode 100644
index 0000000..e3d727a
--- /dev/null
+++ b/module/windows/settings-rolltables.js
@@ -0,0 +1,84 @@
+export class rolltableConfig extends FormApplication {
+ static get defaultOptions() {
+ const options = super.defaultOptions;
+ //options.id = 'sheet-modifiers';
+ //options.classes = ["mosh", "sheet", "actor", "ship"];
+ options.id = 'rolltable-modifiers';
+ options.classes = ["mosh"];
+ options.template = 'systems/mosh/templates/dialogs/settings-rolltableconfig-dialog.html';
+ options.width = 800;
+ options.height = 'auto';
+ options.resizeable = false;
+ return options;
+ }
+
+ /**
+ * Construct and return the data object used to render the HTML template for this form application.
+ * @return {Object}
+ */
+ getData() {
+ const tableSelection = super.getData();
+ tableSelection.table0ePanicStressNormal = game.settings.get("mosh", "table0ePanicStressNormal");
+ tableSelection.table0ePanicStressAndroid = game.settings.get("mosh", "table0ePanicStressAndroid");
+ tableSelection.table0ePanicCalmNormal = game.settings.get("mosh", "table0ePanicCalmNormal");
+ tableSelection.table0ePanicCalmAndroid = game.settings.get("mosh", "table0ePanicCalmAndroid");
+ tableSelection.table1ePanicStressNormal = game.settings.get("mosh", "table1ePanicStressNormal");
+ tableSelection.table1ePanicStressAndroid = game.settings.get("mosh", "table1ePanicStressAndroid");
+ tableSelection.table1ePanicCalmNormal = game.settings.get("mosh", "table1ePanicCalmNormal");
+ tableSelection.table1ePanicCalmAndroid = game.settings.get("mosh", "table1ePanicCalmAndroid");
+ tableSelection.table1eWoundBluntForce = game.settings.get("mosh", "table1eWoundBluntForce");
+ tableSelection.table1eWoundBleeding = game.settings.get("mosh", "table1eWoundBleeding");
+ tableSelection.table1eWoundGunshot = game.settings.get("mosh", "table1eWoundGunshot");
+ tableSelection.table1eWoundFireExplosives = game.settings.get("mosh", "table1eWoundFireExplosives");
+ tableSelection.table1eWoundGoreMassive = game.settings.get("mosh", "table1eWoundGoreMassive");
+ tableSelection.table0eDeath = game.settings.get("mosh", "table0eDeath");
+ tableSelection.table1eDeath = game.settings.get("mosh", "table1eDeath");
+ tableSelection.table1eDistressSignal = game.settings.get("mosh", "table1eDistressSignal");
+ tableSelection.table1eMegadamageEffects = game.settings.get("mosh", "table1eMegadamageEffects");
+ tableSelection.table1eMaintenance = game.settings.get("mosh", "table1eMaintenance");
+ tableSelection.table1eBankruptcy = game.settings.get("mosh", "table1eBankruptcy");
+
+ return tableSelection;
+ }
+ /* -------------------------------------------- */
+
+ /** @override */
+ activateListeners(html) {
+ super.activateListeners(html);
+
+ // Close Button
+ html.find('.close-button').click(ev => this.close());
+ }
+
+ /**
+ * This method is called upon form submission after form data is validated
+ * @param event {Event} The initial triggering submission event
+ * @param formData {Object} The object of validated form data with which to update the object
+ * @private
+ */
+ async _updateObject(event, formData) {
+
+ await Promise.all([
+ game.settings.set("mosh", "table0ePanicStressNormal", formData["table0ePanicStressNormal"]),
+ game.settings.set("mosh", "table0ePanicStressAndroid", formData["table0ePanicStressAndroid"]),
+ game.settings.set("mosh", "table0ePanicCalmNormal", formData["table0ePanicCalmNormal"]),
+ game.settings.set("mosh", "table0ePanicCalmAndroid", formData["table0ePanicCalmAndroid"]),
+ game.settings.set("mosh", "table1ePanicStressNormal", formData["table1ePanicStressNormal"]),
+ game.settings.set("mosh", "table1ePanicStressAndroid", formData["table1ePanicStressAndroid"]),
+ game.settings.set("mosh", "table1ePanicCalmNormal", formData["table1ePanicCalmNormal"]),
+ game.settings.set("mosh", "table1ePanicCalmAndroid", formData["table1ePanicCalmAndroid"]),
+ game.settings.set("mosh", "table1eWoundBluntForce", formData["table1eWoundBluntForce"]),
+ game.settings.set("mosh", "table1eWoundBleeding", formData["table1eWoundBleeding"]),
+ game.settings.set("mosh", "table1eWoundGunshot", formData["table1eWoundGunshot"]),
+ game.settings.set("mosh", "table1eWoundFireExplosives", formData["table1eWoundFireExplosives"]),
+ game.settings.set("mosh", "table1eWoundGoreMassive", formData["table1eWoundGoreMassive"]),
+ game.settings.set("mosh", "table0eDeath", formData["table0eDeath"]),
+ game.settings.set("mosh", "table1eDeath", formData["table1eDeath"]),
+ game.settings.set("mosh", "table1eDistressSignal", formData["table1eDistressSignal"]),
+ game.settings.set("mosh", "table1eMegadamageEffects", formData["table1eMegadamageEffects"]),
+ game.settings.set("mosh", "table1eMaintenance", formData["table1eMaintenance"]),
+ game.settings.set("mosh", "table1eBankruptcy", formData["table1eBankruptcy"])
+ ]);
+
+ }
+}
diff --git a/module/windows/ship-megadamage.js b/module/windows/ship-megadamage.js
index 4f86dd6..16b2887 100644
--- a/module/windows/ship-megadamage.js
+++ b/module/windows/ship-megadamage.js
@@ -40,7 +40,7 @@ export class DLShipMegaDamage extends FormApplication {
const actorData = sheetData.object;
//A script to return the data from a table.
- let tableId = 'AqGWwoWXzijFs427';
+ let tableId = game.settings.get('mosh','table1eMegadamageEffects');
let currentLocation = '';
let tableLocation = '';
//find where this table is located
diff --git a/packs/macros_hotbar_0e.db b/packs/macros_hotbar_0e.db
index afc3981..ae25f9b 100644
--- a/packs/macros_hotbar_0e.db
+++ b/packs/macros_hotbar_0e.db
@@ -1,4 +1,4 @@
-{"_id":"2xRvRAixuocjCm40","name":"Death Save","type":"script","scope":"global","img":"systems/mosh/images/icons/ui/rolltables/death_save.png","command":"//init vars\nlet macroTarget = game.settings.get('mosh','macroTarget');\n//warn user if character is not selected\nif ((macroTarget === 'character' && !game.user.character) || (macroTarget === 'token' && !canvas.tokens.controlled.length)) {\n //warn player\n game.mosh.noCharSelected();\n//else pop up the dialog\n} else {\n //pop up the death save dialog box\n new Dialog({\n title: `Death Save`,\n content: `\n \n
\n
\n
\n
Death Save
Whenever you reach 0 Health, make a Body Save: Failure means you die. Success means you fall unconscious, make a Death Save to find out when you regain consciousness. Crew members with a medscanner, relevant skills like First Aid or Biology, or scientists and androids who pass an Intellect Check can determine your condition. \n
\n
\n Select your roll type:
\n `,\n buttons: {\n button1: {\n label: `Advantage`,\n callback: () => game.mosh.initRollTable(`cZOHlhEJcYGZsQBM`,`1d10 [+]`,`high`,false,false,null,null),\n icon: ``\n },\n button2: {\n label: `Normal`,\n callback: () => game.mosh.initRollTable(`cZOHlhEJcYGZsQBM`,`1d10`,`high`,false,false,null,null),\n icon: ``\n },\n button3: {\n label: `Disadvantage`,\n callback: () => game.mosh.initRollTable(`cZOHlhEJcYGZsQBM`,`1d10 [-]`,`high`,false,false,null,null),\n icon: ``\n }\n }\n },{width: 600,height: 265}).render(true);\n}","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"2xRvRAixuocjCm40","name":"Death Save","type":"script","scope":"global","img":"systems/mosh/images/icons/ui/rolltables/death_save.png","command":"//init vars\nlet macroTarget = game.settings.get('mosh','macroTarget');\n//warn user if character is not selected\nif ((macroTarget === 'character' && !game.user.character) || (macroTarget === 'token' && !canvas.tokens.controlled.length)) {\n //warn player\n game.mosh.noCharSelected();\n//else pop up the dialog\n} else {\n //pop up the death save dialog box\n new Dialog({\n title: `Death Save`,\n content: `\n \n \n
\n
\n
Death Save
Whenever you reach 0 Health, make a Body Save: Failure means you die. Success means you fall unconscious, make a Death Save to find out when you regain consciousness. Crew members with a medscanner, relevant skills like First Aid or Biology, or scientists and androids who pass an Intellect Check can determine your condition. \n
\n
\n Select your roll type:
\n `,\n buttons: {\n button1: {\n label: `Advantage`,\n callback: () => game.mosh.initRollTable(game.settings.get('mosh','table0eDeath'),`1d10 [+]`,`high`,false,false,null,null),\n icon: ``\n },\n button2: {\n label: `Normal`,\n callback: () => game.mosh.initRollTable(game.settings.get('mosh','table0eDeath'),`1d10`,`high`,false,false,null,null),\n icon: ``\n },\n button3: {\n label: `Disadvantage`,\n callback: () => game.mosh.initRollTable(game.settings.get('mosh','table0eDeath'),`1d10 [-]`,`high`,false,false,null,null),\n icon: ``\n }\n }\n },{width: 600,height: 265}).render(true);\n}","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"9Bq5LYoToO1sjCn3","name":"Gain Calm","type":"script","scope":"global","img":"systems/mosh/images/icons/ui/macros/relieve_stress.png","command":"//init vars\nlet macroTarget = game.settings.get('mosh','macroTarget');\n//warn user if character is not selected\nif ((macroTarget === 'character' && !game.user.character) || (macroTarget === 'token' && !canvas.tokens.controlled.length)) {\n //warn player\n game.mosh.noCharSelected();\n//else pop up the dialog\n} else {\n new Dialog({\n title: `Gain Calm`,\n content: `\n \n \n \n
\n
\n
Gain Calm
Occasionally, certain moments, places, or events can automatically calm you down. Escaping perilous situations, finding a serene location, or experiencing a touching moment with a loved one can have meaningful impacts on your mood and outlook on life. If your Calm is getting close to 0, you should consider making a Rest Save - as the effects of a failed Panic Check can be devastating. \n
\n
\n Select your modification:
\n `,\n buttons: {\n button1: {\n label: `Gain 5 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',5,null,true),\n icon: ``\n },\n button2: {\n label: `Gain 10 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',10,null,true),\n icon: ``\n },\n button3: {\n label: `Gain 1d20 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',null,`1d20`,true),\n icon: ``\n }\n }\n },{width: 600,height: 265}).render(true);\n}","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"ilBclUmPwcd7aNQK","name":"Gain Stress","type":"script","scope":"global","img":"systems/mosh/images/icons/ui/macros/gain_stress.png","command":"//init vars\nlet macroTarget = game.settings.get('mosh','macroTarget');\n//warn user if character is not selected\nif ((macroTarget === 'character' && !game.user.character) || (macroTarget === 'token' && !canvas.tokens.controlled.length)) {\n //warn player\n game.mosh.noCharSelected();\n//else pop up the dialog\n} else {\n new Dialog({\n title: `Gain Stress`,\n content: `\n \n \n \n
\n
\n
Gain Stress
You gain 1 Stress every time you fail a Stat Check or Save. Occasionally, certain locations or entities can automatically give you Stress from interacting with or witnessing them. Your Minimum Stress starts at 2, and the Maximum Stress you can have is 20. Any Stress you take over 20 instead reduces the most relevant Stat or Save by that amount. \n
\n
\n \n Select your modification:
\n `,\n buttons: {\n button1: {\n label: `Gain 1 Stress`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',1,null,true),\n icon: ``\n },\n button2: {\n label: `Gain 2 Stress`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',2,null,true),\n icon: ``\n },\n button3: {\n label: `Gain 1d5 Stress`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',null,`1d5`,true),\n icon: ``\n }\n }\n },{width: 600,height: 265}).render(true);\n}","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"D8ytoUTWfpq8A2td","name":"Lose Calm","type":"script","scope":"global","img":"systems/mosh/images/icons/ui/macros/gain_stress.png","command":"//init vars\nlet macroTarget = game.settings.get('mosh','macroTarget');\n//warn user if character is not selected\nif ((macroTarget === 'character' && !game.user.character) || (macroTarget === 'token' && !canvas.tokens.controlled.length)) {\n //warn player\n game.mosh.noCharSelected();\n//else pop up the dialog\n} else {\n new Dialog({\n title: `Lose Calm`,\n content: `\n \n \n \n
\n
\n
Lose Calm
Occasionally, certain locations or entities can automatically give you Stress from interacting with or witnessing them. You live in a terrifying, uncaring universe, so your Maximum Calm caps out at 85 and cannot go lower than zero. \n
\n
\n \n Select your modification:
\n `,\n buttons: {\n button1: {\n label: `Lose 5 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',-5,null,true),\n icon: ``\n },\n button2: {\n label: `Lose 10 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',-10,null,true),\n icon: ``\n },\n button3: {\n label: `Lose 1d20 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',null,`-1d20`,true),\n icon: ``\n }\n }\n },{width: 600,height: 265}).render(true);\n}","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
diff --git a/packs/macros_hotbar_1e.db b/packs/macros_hotbar_1e.db
index b3c59e3..1b5f769 100644
--- a/packs/macros_hotbar_1e.db
+++ b/packs/macros_hotbar_1e.db
@@ -1,5 +1,5 @@
{"_id":"6wsDxyoKPHxpoHtF","name":"Cover","type":"script","scope":"global","img":"systems/mosh/images/icons/ui/attributes/armor.png","command":"prepCover();\n\n//tell the actor to run the function\nasync function prepCover() {\n //determine who to run the macro for\n if (game.settings.get('mosh','macroTarget') === 'character') {\n //is there a selected character? warn if no\n if (!game.user.character) {\n //warn player\n game.mosh.noCharSelected();\n } else {\n //run the function for the player's 'Selected Character'\n game.user.character.chooseCover();\n }\n } else if (game.settings.get('mosh','macroTarget') === 'token') {\n //is there a selected character? warn if no\n if (!canvas.tokens.controlled.length) {\n //warn player\n game.mosh.noCharSelected();\n } else {\n //run the function for all selected tokens\n canvas.tokens.controlled.forEach(function(token){\n token.actor.chooseCover();\n });\n }\n }\n}","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"NsRHfRuuNGPfkYVf","name":"Death Save","type":"script","scope":"global","img":"systems/mosh/images/icons/ui/rolltables/death_save.png","command":"//init vars\nlet macroTarget = game.settings.get('mosh','macroTarget');\n//warn user if character is not selected\nif ((macroTarget === 'character' && !game.user.character) || (macroTarget === 'token' && !canvas.tokens.controlled.length)) {\n //warn player\n game.mosh.noCharSelected();\n//else pop up the dialog\n} else {\n //pop up the death save dialog box\n new Dialog({\n title: `Death Save`,\n content: `\n \n \n
\n
\n
Death Save
Your character is incapacitated when you receive a fatal wound, or once your Current Wounds equal your Maximum Wounds. As soon as someone spends a turn checking your vitals, make a Death Save to reveal your fate. If your death seems imminent, make your last moments count: save someone’s life, solve an important mystery, or give the others time to escape. \n
\n
\n Select your roll type:
\n `,\n buttons: {\n button1: {\n label: `Advantage`,\n callback: () => game.mosh.initRollTable(`W36WFIpCfMknKgHy`,`1d10 [+]`,`low`,true,false,null,null),\n icon: ``\n },\n button2: {\n label: `Normal`,\n callback: () => game.mosh.initRollTable(`W36WFIpCfMknKgHy`,`1d10`,`low`,true,false,null,null),\n icon: ``\n },\n button3: {\n label: `Disadvantage`,\n callback: () => game.mosh.initRollTable(`W36WFIpCfMknKgHy`,`1d10 [-]`,`low`,true,false,null,null),\n icon: ``\n }\n }\n },{width: 600,height: 265}).render(true);\n}","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"NsRHfRuuNGPfkYVf","name":"Death Save","type":"script","scope":"global","img":"systems/mosh/images/icons/ui/rolltables/death_save.png","command":"//init vars\nlet macroTarget = game.settings.get('mosh','macroTarget');\n//warn user if character is not selected\nif ((macroTarget === 'character' && !game.user.character) || (macroTarget === 'token' && !canvas.tokens.controlled.length)) {\n //warn player\n game.mosh.noCharSelected();\n//else pop up the dialog\n} else {\n //pop up the death save dialog box\n new Dialog({\n title: `Death Save`,\n content: `\n \n \n
\n
\n
Death Save
Your character is incapacitated when you receive a fatal wound, or once your Current Wounds equal your Maximum Wounds. As soon as someone spends a turn checking your vitals, make a Death Save to reveal your fate. If your death seems imminent, make your last moments count: save someone’s life, solve an important mystery, or give the others time to escape. \n
\n
\n Select your roll type:
\n `,\n buttons: {\n button1: {\n label: `Advantage`,\n callback: () => game.mosh.initRollTable(game.settings.get('mosh','table1eDeath'),`1d10 [+]`,`low`,true,false,null,null),\n icon: ``\n },\n button2: {\n label: `Normal`,\n callback: () => game.mosh.initRollTable(game.settings.get('mosh','table1eDeath'),`1d10`,`low`,true,false,null,null),\n icon: ``\n },\n button3: {\n label: `Disadvantage`,\n callback: () => game.mosh.initRollTable(game.settings.get('mosh','table1eDeath'),`1d10 [-]`,`low`,true,false,null,null),\n icon: ``\n }\n }\n },{width: 600,height: 265}).render(true);\n}","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"GSFEBhrKC9yuD88V","name":"Gain Calm","type":"script","scope":"global","img":"systems/mosh/images/icons/ui/macros/relieve_stress.png","command":"//init vars\nlet macroTarget = game.settings.get('mosh','macroTarget');\n//warn user if character is not selected\nif ((macroTarget === 'character' && !game.user.character) || (macroTarget === 'token' && !canvas.tokens.controlled.length)) {\n //warn player\n game.mosh.noCharSelected();\n//else pop up the dialog\n} else {\n new Dialog({\n title: `Gain Calm`,\n content: `\n \n \n \n
\n
\n
Gain Calm
Occasionally, certain moments, places, or events can automatically calm you down. Escaping perilous situations, finding a serene location, or experiencing a touching moment with a loved one can have meaningful impacts on your mood and outlook on life. If your Calm is getting close to 0, you should consider making a Rest Save - as the effects of a failed Panic Check can be devastating. \n
\n
\n Select your modification:
\n `,\n buttons: {\n button1: {\n label: `Gain 5 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',5,null,true),\n icon: ``\n },\n button2: {\n label: `Gain 10 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',10,null,true),\n icon: ``\n },\n button3: {\n label: `Gain 1d20 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',null,`1d20`,true),\n icon: ``\n }\n }\n },{width: 600,height: 265}).render(true);\n}","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"X0L0NnWt53b0rHYG","name":"Gain Stress","type":"script","scope":"global","img":"systems/mosh/images/icons/ui/macros/gain_stress.png","command":"//init vars\nlet macroTarget = game.settings.get('mosh','macroTarget');\n//warn user if character is not selected\nif ((macroTarget === 'character' && !game.user.character) || (macroTarget === 'token' && !canvas.tokens.controlled.length)) {\n //warn player\n game.mosh.noCharSelected();\n//else pop up the dialog\n} else {\n new Dialog({\n title: `Gain Stress`,\n content: `\n \n \n \n
\n
\n
Gain Stress
You gain 1 Stress every time you fail a Stat Check or Save. Occasionally, certain locations or entities can automatically give you Stress from interacting with or witnessing them. Your Minimum Stress starts at 2, and the Maximum Stress you can have is 20. Any Stress you take over 20 instead reduces the most relevant Stat or Save by that amount. \n
\n
\n \n Select your modification:
\n `,\n buttons: {\n button1: {\n label: `Gain 1 Stress`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',1,null,true),\n icon: ``\n },\n button2: {\n label: `Gain 2 Stress`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',2,null,true),\n icon: ``\n },\n button3: {\n label: `Gain 1d5 Stress`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',null,`1d5`,true),\n icon: ``\n }\n }\n },{width: 600,height: 265}).render(true);\n}","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"trU0DtBJvJCPddsQ","name":"Lose Calm","type":"script","scope":"global","img":"systems/mosh/images/icons/ui/macros/gain_stress.png","command":"//init vars\nlet macroTarget = game.settings.get('mosh','macroTarget');\n//warn user if character is not selected\nif ((macroTarget === 'character' && !game.user.character) || (macroTarget === 'token' && !canvas.tokens.controlled.length)) {\n //warn player\n game.mosh.noCharSelected();\n//else pop up the dialog\n} else {\n new Dialog({\n title: `Lose Calm`,\n content: `\n \n \n \n
\n
\n
Lose Calm
Occasionally, certain locations or entities can automatically give you Stress from interacting with or witnessing them. You live in a terrifying, uncaring universe, so your Maximum Calm caps out at 85 and cannot go lower than zero. \n
\n
\n \n Select your modification:
\n `,\n buttons: {\n button1: {\n label: `Lose 5 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',-5,null,true),\n icon: ``\n },\n button2: {\n label: `Lose 10 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',-10,null,true),\n icon: ``\n },\n button3: {\n label: `Lose 1d20 Calm`,\n callback: () => game.mosh.initModifyActor('system.other.stress.value',null,`-1d20`,true),\n icon: ``\n }\n }\n },{width: 600,height: 265}).render(true);\n}","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
diff --git a/packs/macros_triggered_0e.db b/packs/macros_triggered_0e.db
index c388278..411e8c2 100644
--- a/packs/macros_triggered_0e.db
+++ b/packs/macros_triggered_0e.db
@@ -62,8 +62,8 @@
{"_id":"5N4b4Q2OhEj1zv0P","name":"Combat Check","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100','low','combat',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"N20OKT1TDhywkeco","name":"Combat Check -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [-]','low','combat',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"voAUUe17Qw4MJlup","name":"Combat Check +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [+]','low','combat',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"4hmYrNF0uWVqsfEk","name":"Death Save -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`cZOHlhEJcYGZsQBM`,`1d10 [-]`,`high`,false,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"Az3RocMlh0JFxAlu","name":"Death Save +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`cZOHlhEJcYGZsQBM`,`1d10 [+]`,`high`,false,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"4hmYrNF0uWVqsfEk","name":"Death Save -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table0eDeath'),`1d10 [-]`,`high`,false,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"Az3RocMlh0JFxAlu","name":"Death Save +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table0eDeath'),`1d10 [+]`,`high`,false,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"Er4ULzvdn2urxuet","name":"Fear Save","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100','low','fear',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"RdJ2nh41wDUT4ZTP","name":"Fear Save -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [-]','low','fear',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"RzOmeM0RNSpFAna0","name":"Fear Save +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [+]','low','fear',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
diff --git a/packs/macros_triggered_1e.db b/packs/macros_triggered_1e.db
index ff61f0a..721d80c 100644
--- a/packs/macros_triggered_1e.db
+++ b/packs/macros_triggered_1e.db
@@ -78,32 +78,32 @@
{"_id":"ISd2nEMYvWCPQpl0","name":"-2d10 Body Save","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initModifyActor('system.stats.body.value',null,'-2d10',true);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"pS6A6OklvM6S3bvO","name":"-2d10 Health","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initModifyActor('system.health.value',null,'-2d10',true);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"nECUu4pcwsNTE8C5","name":"-3d10 Health","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initModifyActor('system.health.value',null,'-3d10',true);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"1DD8i6eCS6nx2Ip0","name":"Bleeding Wound","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`ata3fRz3uoPfNCLh`,`1d10`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"tFcWNddtZvlv7tsg","name":"Bleeding Wound -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`ata3fRz3uoPfNCLh`,`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"xr2o2PU5vdrR6fxQ","name":"Bleeding Wound +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`ata3fRz3uoPfNCLh`,`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"TAjlQjA5AAy3qYL3","name":"Blunt Force Wound","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`31YibfjueXuZdNLb`,`1d10`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"oL3GH0HoEPlP8vzG","name":"Blunt Force Wound -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`31YibfjueXuZdNLb`,`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"k0zf8ZGivRguc0wb","name":"Blunt Force Wound +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`31YibfjueXuZdNLb`,`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"1DD8i6eCS6nx2Ip0","name":"Bleeding Wound","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBleeding'),`1d10`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"tFcWNddtZvlv7tsg","name":"Bleeding Wound -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBleeding'),`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"xr2o2PU5vdrR6fxQ","name":"Bleeding Wound +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBleeding'),`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"TAjlQjA5AAy3qYL3","name":"Blunt Force Wound","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBluntForce'),`1d10`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"oL3GH0HoEPlP8vzG","name":"Blunt Force Wound -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBluntForce'),`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"k0zf8ZGivRguc0wb","name":"Blunt Force Wound +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundBluntForce'),`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"X3gqTFFwMe7AudiS","name":"Body Save","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100','low','body',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"ItHLy3URKFQVLipe","name":"Body Save -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [-]','low','body',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"IG2NQgEnqvPjiV5C","name":"Body Save +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [+]','low','body',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"9FOBS5lQCwtVtrgh","name":"Combat Check","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100','low','combat',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"vxcDSg3xiAxDYQIb","name":"Combat Check -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [-]','low','combat',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"5hlvK0p68imanBmy","name":"Combat Check +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [+]','low','combat',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"E2bDXSVfH57BnGEI","name":"Death Save -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`W36WFIpCfMknKgHy`,`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"KHL2lJ6RRvhupFZ3","name":"Death Save +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`W36WFIpCfMknKgHy`,`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"E2bDXSVfH57BnGEI","name":"Death Save -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eDeath'),`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"KHL2lJ6RRvhupFZ3","name":"Death Save +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eDeath'),`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"R2KizR1soAhFYDZm","name":"Fear Save","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100','low','fear',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"wVhApjRP5MXue2kh","name":"Fear Save -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [-]','low','fear',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"DadBoZJblU4uBY5E","name":"Fear Save +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [+]','low','fear',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"bZi1qKmcKLFvnhZ2","name":"Fire & Explosives Wound","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`lqiaWwh5cGcJhvnu`,`1d10`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"dJnQKDf0AlwK27QD","name":"Fire & Explosives Wound -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`lqiaWwh5cGcJhvnu`,`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"7rYhbDAaFeok1Daq","name":"Fire & Explosives Wound +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`lqiaWwh5cGcJhvnu`,`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"S9nnHKWYGSQmjQdp","name":"Gore & Massive Wound","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`uVfC1CqYdojaJ7yR`,`1d10`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"DuVjNlE4lsnR7Emc","name":"Gore & Massive Wound -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`uVfC1CqYdojaJ7yR`,`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"eQPuDgwv8evetFIk","name":"Gore & Massive Wound +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`uVfC1CqYdojaJ7yRd`,`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"XgCOLv9UunBddUyW","name":"Gunshot Wound","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`XjDU2xFOWEasaZK0`,`1d10`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"fnVATRHYJEUlS3pR","name":"Gunshot Wound -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`XjDU2xFOWEasaZK0`,`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
-{"_id":"LTpa1ZYVZl4m9k6z","name":"Gunshot Wound +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(`XjDU2xFOWEasaZK0`,`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"bZi1qKmcKLFvnhZ2","name":"Fire & Explosives Wound","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundFireExplosives'),`1d10`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"dJnQKDf0AlwK27QD","name":"Fire & Explosives Wound -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundFireExplosives'),`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"7rYhbDAaFeok1Daq","name":"Fire & Explosives Wound +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundFireExplosives'),`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"S9nnHKWYGSQmjQdp","name":"Gore & Massive Wound","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGoreMassive'),`1d10`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"DuVjNlE4lsnR7Emc","name":"Gore & Massive Wound -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGoreMassive'),`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"eQPuDgwv8evetFIk","name":"Gore & Massive Wound +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGoreMassive'),`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"XgCOLv9UunBddUyW","name":"Gunshot Wound","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGunshot'),`1d10`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"fnVATRHYJEUlS3pR","name":"Gunshot Wound -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGunshot'),`1d10 [-]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
+{"_id":"LTpa1ZYVZl4m9k6z","name":"Gunshot Wound +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollTable(game.settings.get('mosh','table1eWoundGunshot'),`1d10 [+]`,`low`,true,false,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"DMjVDa7vUq7xGpn8","name":"Intellect Check","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100','low','intellect',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"ln3OpNFK4mN4Ym5q","name":"Intellect Check -","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [-]','low','intellect',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
{"_id":"DXfAjkwJVwSCOqZ1","name":"Intellect Check +","type":"script","scope":"global","img":"icons/svg/d10-grey.svg","command":"game.mosh.initRollCheck('1d100 [+]','low','intellect',null,null,null);","folder":null,"flags":{},"_stats":{"systemId":"mosh","systemVersion":"0.4.0","coreVersion":"11.308","createdTime":1685936572185,"modifiedTime":1693515520278,"lastModifiedBy":"6EeM38DJkcBWNAmw"}}
diff --git a/templates/dialogs/settings-rolltableconfig-dialog.html b/templates/dialogs/settings-rolltableconfig-dialog.html
new file mode 100644
index 0000000..efed318
--- /dev/null
+++ b/templates/dialogs/settings-rolltableconfig-dialog.html
@@ -0,0 +1,119 @@
+
\ No newline at end of file