Compare commits
21 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 33f967309d | |||
| 611dfeb925 | |||
| 4d21972cd8 | |||
| 8597c9061e | |||
| 0fa8b36a8c | |||
| 8941cbed05 | |||
| 117d8a6112 | |||
| 635c4ff8c3 | |||
| 74720d5412 | |||
| 04447d3ab5 | |||
| a5d61cf589 | |||
| 034d163235 | |||
| a796212445 | |||
| a8b2db4ef7 | |||
| 56f2281835 | |||
| e2dd2eff07 | |||
| 6cc2da47e0 | |||
| 2e33e3e38e | |||
| 442b36e806 | |||
| 3b5b103c06 | |||
| 1cbb7ac40a |
56 changed files with 784 additions and 33 deletions
57
README.md
Executable file
57
README.md
Executable file
|
|
@ -0,0 +1,57 @@
|
|||
# Daggerheart: Voidborne
|
||||
|
||||
Unofficial Daggerheart Playtest content for FoundryVTT
|
||||
|
||||
## Installation
|
||||
Install the module via the manifest url `https://git.geeks.gay/cosmo/daggerheart-voidborne/raw/branch/main/module.json`
|
||||
|
||||
## Progress
|
||||
|
||||
Environments:
|
||||
- [x] Tier 1
|
||||
- [x] Tier 2
|
||||
- [x] Tier 3
|
||||
- [x] Tier 4
|
||||
|
||||
Adversaries:
|
||||
- [x] Tier 1
|
||||
- [x] Tier 2
|
||||
- [x] Tier 3
|
||||
- [x] Tier 4
|
||||
|
||||
- [x] Age of Umbra Adversaries (Umbra-Touched)
|
||||
|
||||
Heritages:
|
||||
- [x] Ancestries
|
||||
- [x] Communities
|
||||
|
||||
Special Features:
|
||||
- [x] Transformations
|
||||
|
||||
Classes:
|
||||
- [x] Assassin
|
||||
- [x] Blood Hunter (updated 2026-07-09)
|
||||
- [x] Brawler
|
||||
- [x] Warlock
|
||||
- [x] Witch
|
||||
- [x] Summoner
|
||||
|
||||
Domains:
|
||||
- [x] Dread
|
||||
- [x] Blood (updated 2026-07-09)
|
||||
|
||||
## Important Information
|
||||
|
||||
### Automation
|
||||
Not all Features and Actions can be automated currently, as a lot of work in the system backend is needed. Content will be updated as the system backend evolves.
|
||||
|
||||
### Content Availability
|
||||
Once content is no longer part of the Void Playtest Materials, it will be removed from this module - regardless of it being adopted into official content or not.
|
||||
|
||||
|
||||
## Daggerheart System
|
||||
Daggerheart is a trademark of Darrington Press LLC. All original content, mechanics, and intellectual property related to the Daggerheart roleplaying game are © Darrington Press LLC.
|
||||
|
||||
This project is intended for personal or non-commercial use. All rights to Daggerheart’s original materials remain with their respective owners.
|
||||
|
||||
This project is an unofficial fan creation and is not affiliated with or endorsed by Darrington Press or Critical Role.
|
||||
136
icons/svg/blood.svg
Executable file
136
icons/svg/blood.svg
Executable file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 5 MiB |
144
icons/svg/blood_domain.svg
Executable file
144
icons/svg/blood_domain.svg
Executable file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 5 MiB |
138
icons/svg/dread.svg
Executable file
138
icons/svg/dread.svg
Executable file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 5 MiB |
146
icons/svg/dread_domain.svg
Executable file
146
icons/svg/dread_domain.svg
Executable file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 5 MiB |
18
module.json
Normal file → Executable file
18
module.json
Normal file → Executable file
|
|
@ -3,11 +3,12 @@
|
|||
"title": "Daggerheart: Voidborne",
|
||||
"url": "https://git.geeks.gay/cosmo/daggerheart-voidborne",
|
||||
"manifest": "https://git.geeks.gay/cosmo/daggerheart-voidborne/raw/branch/main/module.json",
|
||||
"download": "https://git.geeks.gay/cosmo/daggerheart-voidborne/releases/download/0.1.0/daggerheart-voidborne.zip",
|
||||
"version": "0.1.0",
|
||||
"download": "https://git.geeks.gay/cosmo/daggerheart-voidborne/releases/download/0.11.4/daggerheart-voidborne.zip",
|
||||
"version": "0.11.4",
|
||||
"compatibility": {
|
||||
"minimum": "14",
|
||||
"verified": "14"
|
||||
"minimum": "13",
|
||||
"verified": "14",
|
||||
"maximum": "14"
|
||||
},
|
||||
"description": "<p>Unofficial Daggerheart Playtest content for FoundryVTT</p>",
|
||||
"authors": [
|
||||
|
|
@ -19,7 +20,6 @@
|
|||
"flags": {}
|
||||
}
|
||||
],
|
||||
"url": "https://git.geeks.gay/cosmo/daggerheart-voidborne",
|
||||
"flags": {
|
||||
"canUpload": true
|
||||
},
|
||||
|
|
@ -61,7 +61,6 @@
|
|||
"flags": {}
|
||||
}
|
||||
],
|
||||
"action": "manageModule",
|
||||
"relationships": {
|
||||
"systems": [
|
||||
{
|
||||
|
|
@ -70,5 +69,8 @@
|
|||
"compatibility": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"esmodules": [
|
||||
"scripts/voidborne.js"
|
||||
]
|
||||
}
|
||||
|
|
|
|||
0
packs/Voidborne/000004.log
Normal file → Executable file
0
packs/Voidborne/000004.log
Normal file → Executable file
0
packs/Voidborne/000005.ldb
Normal file → Executable file
0
packs/Voidborne/000005.ldb
Normal file → Executable file
0
packs/Voidborne/CURRENT
Normal file → Executable file
0
packs/Voidborne/CURRENT
Normal file → Executable file
0
packs/Voidborne/LOCK
Normal file → Executable file
0
packs/Voidborne/LOCK
Normal file → Executable file
0
packs/Voidborne/LOG
Normal file → Executable file
0
packs/Voidborne/LOG
Normal file → Executable file
0
packs/Voidborne/MANIFEST-000002
Normal file → Executable file
0
packs/Voidborne/MANIFEST-000002
Normal file → Executable file
3
packs/voidborne-actors/.fuse_hidden01261bf80046f3b5
Normal file
3
packs/voidborne-actors/.fuse_hidden01261bf80046f3b5
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
2026/07/09-23:40:00.307031 153bc51fe6c0 Recovering log #173
|
||||
2026/07/09-23:40:00.325445 153bc51fe6c0 Delete type=3 #171
|
||||
2026/07/09-23:40:00.325650 153bc51fe6c0 Delete type=0 #173
|
||||
0
packs/voidborne-actors/.fuse_hidden01261bfc0046f3ae
Normal file
0
packs/voidborne-actors/.fuse_hidden01261bfc0046f3ae
Normal file
BIN
packs/voidborne-actors/.fuse_hidden01261bfd0046f3af
Normal file
BIN
packs/voidborne-actors/.fuse_hidden01261bfd0046f3af
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
packs/voidborne-actors/000192.ldb
Normal file
BIN
packs/voidborne-actors/000192.ldb
Normal file
Binary file not shown.
0
packs/voidborne-actors/000214.log
Normal file
0
packs/voidborne-actors/000214.log
Normal file
|
|
@ -1 +1 @@
|
|||
MANIFEST-000010
|
||||
MANIFEST-000213
|
||||
|
|
|
|||
0
packs/voidborne-actors/LOCK
Normal file → Executable file
0
packs/voidborne-actors/LOCK
Normal file → Executable file
|
|
@ -1,3 +1,3 @@
|
|||
2026/04/07-02:35:30.041633 146900200b38 Recovering log #8
|
||||
2026/04/07-02:35:30.055657 146900200b38 Delete type=3 #6
|
||||
2026/04/07-02:35:30.055869 146900200b38 Delete type=0 #8
|
||||
2026/07/10-21:11:17.654338 153bc49fd6c0 Recovering log #211
|
||||
2026/07/10-21:11:17.673200 153bc49fd6c0 Delete type=3 #209
|
||||
2026/07/10-21:11:17.673395 153bc49fd6c0 Delete type=0 #211
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
2026/04/07-01:42:05.635827 146901206b38 Recovering log #4
|
||||
2026/04/07-01:42:05.649830 146901206b38 Delete type=3 #2
|
||||
2026/04/07-01:42:05.650037 146901206b38 Delete type=0 #4
|
||||
2026/04/07-02:34:54.254844 1466fed4ab38 Level-0 table #9: started
|
||||
2026/04/07-02:34:54.269996 1466fed4ab38 Level-0 table #9: 219326 bytes OK
|
||||
2026/04/07-02:34:54.276846 1466fed4ab38 Delete type=0 #7
|
||||
2026/04/07-02:34:54.277286 1466fed4ab38 Manual compaction at level-0 from '!actors!FmqtvDRydJIiUYSR' @ 72057594037927935 : 1 .. '!folders!wGAczMU7K2yV8sWc' @ 0 : 0; will stop at (end)
|
||||
2026/04/07-02:34:54.277374 1466fed4ab38 Manual compaction at level-1 from '!actors!FmqtvDRydJIiUYSR' @ 72057594037927935 : 1 .. '!folders!wGAczMU7K2yV8sWc' @ 0 : 0; will stop at (end)
|
||||
2026/07/10-20:53:15.322831 153bc59ff6c0 Recovering log #207
|
||||
2026/07/10-20:53:15.342061 153bc59ff6c0 Delete type=3 #205
|
||||
2026/07/10-20:53:15.342255 153bc59ff6c0 Delete type=0 #207
|
||||
2026/07/10-20:59:14.278643 153b777fe6c0 Level-0 table #212: started
|
||||
2026/07/10-20:59:14.278854 153b777fe6c0 Level-0 table #212: 0 bytes OK
|
||||
2026/07/10-20:59:14.287815 153b777fe6c0 Delete type=0 #210
|
||||
2026/07/10-20:59:14.288165 153b777fe6c0 Manual compaction at level-0 from '!actors!207urfCMyvYwCBTZ' @ 72057594037927935 : 1 .. '!folders!zrU38zHjY6cO0YP8' @ 0 : 0; will stop at (end)
|
||||
2026/07/10-20:59:14.288263 153b777fe6c0 Manual compaction at level-1 from '!actors!207urfCMyvYwCBTZ' @ 72057594037927935 : 1 .. '!folders!zrU38zHjY6cO0YP8' @ 0 : 0; will stop at (end)
|
||||
|
|
|
|||
Binary file not shown.
BIN
packs/voidborne-actors/MANIFEST-000213
Normal file
BIN
packs/voidborne-actors/MANIFEST-000213
Normal file
Binary file not shown.
3
packs/voidborne-items/.fuse_hidden01261bed0046f3b6
Normal file
3
packs/voidborne-items/.fuse_hidden01261bed0046f3b6
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
2026/07/09-23:40:00.255224 153bc59ff6c0 Recovering log #178
|
||||
2026/07/09-23:40:00.282674 153bc59ff6c0 Delete type=3 #176
|
||||
2026/07/09-23:40:00.282906 153bc59ff6c0 Delete type=0 #178
|
||||
BIN
packs/voidborne-items/.fuse_hidden01261bf10046f3b1
Normal file
BIN
packs/voidborne-items/.fuse_hidden01261bf10046f3b1
Normal file
Binary file not shown.
BIN
packs/voidborne-items/.fuse_hidden01261bf20046f3b2
Normal file
BIN
packs/voidborne-items/.fuse_hidden01261bf20046f3b2
Normal file
Binary file not shown.
BIN
packs/voidborne-items/.fuse_hidden01261bf40046f3b0
Executable file
BIN
packs/voidborne-items/.fuse_hidden01261bf40046f3b0
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
packs/voidborne-items/000200.ldb
Normal file
BIN
packs/voidborne-items/000200.ldb
Normal file
Binary file not shown.
BIN
packs/voidborne-items/000222.log
Normal file
BIN
packs/voidborne-items/000222.log
Normal file
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
MANIFEST-000010
|
||||
MANIFEST-000221
|
||||
|
|
|
|||
0
packs/voidborne-items/LOCK
Normal file → Executable file
0
packs/voidborne-items/LOCK
Normal file → Executable file
|
|
@ -1,3 +1,3 @@
|
|||
2026/04/07-02:35:30.022844 146901206b38 Recovering log #8
|
||||
2026/04/07-02:35:30.036790 146901206b38 Delete type=3 #6
|
||||
2026/04/07-02:35:30.037007 146901206b38 Delete type=0 #8
|
||||
2026/07/10-21:11:17.631042 153bc49fd6c0 Recovering log #219
|
||||
2026/07/10-21:11:17.649482 153bc49fd6c0 Delete type=3 #217
|
||||
2026/07/10-21:11:17.649674 153bc49fd6c0 Delete type=0 #219
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
2026/04/07-01:42:05.617824 146900a03b38 Recovering log #4
|
||||
2026/04/07-01:42:05.631822 146900a03b38 Delete type=3 #2
|
||||
2026/04/07-01:42:05.632058 146900a03b38 Delete type=0 #4
|
||||
2026/04/07-02:34:54.230519 1466fed4ab38 Level-0 table #9: started
|
||||
2026/04/07-02:34:54.240473 1466fed4ab38 Level-0 table #9: 57996 bytes OK
|
||||
2026/04/07-02:34:54.247260 1466fed4ab38 Delete type=0 #7
|
||||
2026/04/07-02:34:54.277224 1466fed4ab38 Manual compaction at level-0 from '!folders!T7RHxoElWRbPZP8S' @ 72057594037927935 : 1 .. '!items.effects!0FTZNZYDBE2REZRj.sj0wYqkaXT4IGhgN' @ 0 : 0; will stop at (end)
|
||||
2026/07/10-20:53:15.298676 153bc59ff6c0 Recovering log #215
|
||||
2026/07/10-20:53:15.317681 153bc59ff6c0 Delete type=3 #213
|
||||
2026/07/10-20:53:15.317885 153bc59ff6c0 Delete type=0 #215
|
||||
2026/07/10-20:59:14.269181 153b777fe6c0 Level-0 table #220: started
|
||||
2026/07/10-20:59:14.269438 153b777fe6c0 Level-0 table #220: 0 bytes OK
|
||||
2026/07/10-20:59:14.278422 153b777fe6c0 Delete type=0 #218
|
||||
2026/07/10-20:59:14.288131 153b777fe6c0 Manual compaction at level-0 from '!folders!0WGVWescnZUp5YTq' @ 72057594037927935 : 1 .. '!items.effects!zQgAwGqG30iGTwUz.v6rwroHG9nfwPZYv' @ 0 : 0; will stop at (end)
|
||||
|
|
|
|||
Binary file not shown.
BIN
packs/voidborne-items/MANIFEST-000221
Normal file
BIN
packs/voidborne-items/MANIFEST-000221
Normal file
Binary file not shown.
0
packs/voidborne-items/lost/000182.log
Normal file
0
packs/voidborne-items/lost/000182.log
Normal file
BIN
packs/voidborne-items/lost/MANIFEST-000180
Normal file
BIN
packs/voidborne-items/lost/MANIFEST-000180
Normal file
Binary file not shown.
3
packs/voidborne-macros/.fuse_hidden01261c030046f3b7
Normal file
3
packs/voidborne-macros/.fuse_hidden01261c030046f3b7
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
2026/07/09-23:40:00.785100 153bc59ff6c0 Recovering log #165
|
||||
2026/07/09-23:40:00.812536 153bc59ff6c0 Delete type=3 #163
|
||||
2026/07/09-23:40:00.812746 153bc59ff6c0 Delete type=0 #165
|
||||
0
packs/voidborne-macros/.fuse_hidden01261c070046f3b3
Normal file
0
packs/voidborne-macros/.fuse_hidden01261c070046f3b3
Normal file
BIN
packs/voidborne-macros/.fuse_hidden01261c080046f3b4
Normal file
BIN
packs/voidborne-macros/.fuse_hidden01261c080046f3b4
Normal file
Binary file not shown.
Binary file not shown.
BIN
packs/voidborne-macros/000020.ldb
Executable file
BIN
packs/voidborne-macros/000020.ldb
Executable file
Binary file not shown.
0
packs/voidborne-macros/000202.log
Normal file
0
packs/voidborne-macros/000202.log
Normal file
|
|
@ -1 +1 @@
|
|||
MANIFEST-000002
|
||||
MANIFEST-000201
|
||||
|
|
|
|||
0
packs/voidborne-macros/LOCK
Normal file → Executable file
0
packs/voidborne-macros/LOCK
Normal file → Executable file
|
|
@ -1 +1,3 @@
|
|||
2026/04/07-02:35:30.082311 146900a03b38 Delete type=3 #1
|
||||
2026/07/10-21:11:17.678086 153bc59ff6c0 Recovering log #199
|
||||
2026/07/10-21:11:17.696881 153bc59ff6c0 Delete type=3 #197
|
||||
2026/07/10-21:11:17.697152 153bc59ff6c0 Delete type=0 #199
|
||||
|
|
|
|||
8
packs/voidborne-macros/LOG.old
Normal file
8
packs/voidborne-macros/LOG.old
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
2026/07/10-20:53:15.347511 153bc51fe6c0 Recovering log #195
|
||||
2026/07/10-20:53:15.366541 153bc51fe6c0 Delete type=3 #193
|
||||
2026/07/10-20:53:15.366732 153bc51fe6c0 Delete type=0 #195
|
||||
2026/07/10-20:59:14.288469 153b777fe6c0 Level-0 table #200: started
|
||||
2026/07/10-20:59:14.288709 153b777fe6c0 Level-0 table #200: 0 bytes OK
|
||||
2026/07/10-20:59:14.297653 153b777fe6c0 Delete type=0 #198
|
||||
2026/07/10-20:59:14.340131 153b777fe6c0 Manual compaction at level-0 from '!macros!GEnYqd0qGRjAjx2K' @ 72057594037927935 : 1 .. '!macros!vbdAkchJjUslprnx' @ 0 : 0; will stop at (end)
|
||||
2026/07/10-20:59:14.340255 153b777fe6c0 Manual compaction at level-1 from '!macros!GEnYqd0qGRjAjx2K' @ 72057594037927935 : 1 .. '!macros!vbdAkchJjUslprnx' @ 0 : 0; will stop at (end)
|
||||
Binary file not shown.
BIN
packs/voidborne-macros/MANIFEST-000201
Normal file
BIN
packs/voidborne-macros/MANIFEST-000201
Normal file
Binary file not shown.
14
scripts/features.js
Executable file
14
scripts/features.js
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
/**
|
||||
* Library of Void Features
|
||||
* Export functions here to make them available globally under window.Void
|
||||
*/
|
||||
|
||||
export function ComboStrikes() {
|
||||
console.log("Combo Strikes executed!");
|
||||
// Logic for Combo Strikes
|
||||
}
|
||||
|
||||
export function NewFunction() {
|
||||
console.log("New Void Function executed!");
|
||||
// Logic for New Function
|
||||
}
|
||||
95
scripts/voidborne.js
Executable file
95
scripts/voidborne.js
Executable file
|
|
@ -0,0 +1,95 @@
|
|||
// Import generic features from the library file
|
||||
import * as VoidFeatures from './features.js';
|
||||
|
||||
const MODULE_ID = 'daggerheart-voidborne';
|
||||
|
||||
console.log(`${MODULE_ID} | Module JS Loaded`);
|
||||
|
||||
Hooks.once('init', () => {
|
||||
console.log(`${MODULE_ID} | Initializing The Void (Unofficial)`);
|
||||
|
||||
// Expose the Void features globally
|
||||
// This allows Void.ComboStrikes(), Void.NewFunction(), etc.
|
||||
window.Void = window.Void || {};
|
||||
|
||||
// Assign all exported functions from features.js to window.Void
|
||||
Object.assign(window.Void, VoidFeatures);
|
||||
|
||||
console.log(`${MODULE_ID} | Void features registered:`, Object.keys(VoidFeatures));
|
||||
});
|
||||
|
||||
Hooks.on('ready', async () => {
|
||||
// Only run if the system is Daggerheart
|
||||
if (game.system.id !== 'daggerheart') return;
|
||||
|
||||
// Register Blood and Dread domains in system settings
|
||||
await registerVoidDomains();
|
||||
});
|
||||
|
||||
async function registerVoidDomains() {
|
||||
// Access Daggerheart Homebrew Settings
|
||||
// The system stores homebrew config in a setting named 'Homebrew' (case sensitive check needed)
|
||||
|
||||
// Check if the setting exists
|
||||
let homebrewSettings;
|
||||
try {
|
||||
homebrewSettings = game.settings.get('daggerheart', 'Homebrew');
|
||||
} catch (e) {
|
||||
try {
|
||||
homebrewSettings = game.settings.get('daggerheart', 'homebrew');
|
||||
} catch (e2) {
|
||||
console.warn(`${MODULE_ID} | Could not find Daggerheart 'Homebrew' or 'homebrew' setting.`);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!homebrewSettings) return;
|
||||
|
||||
const domainData = {
|
||||
'blood': {
|
||||
id: 'blood',
|
||||
label: 'Blood',
|
||||
src: `modules/${MODULE_ID}/icons/svg/blood.svg`,
|
||||
description: 'The Blood domain.'
|
||||
},
|
||||
'dread': {
|
||||
id: 'dread',
|
||||
label: 'Dread',
|
||||
src: `modules/${MODULE_ID}/icons/svg/dread.svg`,
|
||||
description: 'The Dread domain.'
|
||||
}
|
||||
};
|
||||
|
||||
let updates = false;
|
||||
// user domains are in homebrewSettings.domains
|
||||
const currentDomains = { ...(homebrewSettings.domains || {}) };
|
||||
|
||||
for (const [key, data] of Object.entries(domainData)) {
|
||||
if (!currentDomains[key]) {
|
||||
console.log(`${MODULE_ID} | Registering missing domain: ${data.label}`);
|
||||
currentDomains[key] = data;
|
||||
updates = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (updates) {
|
||||
// Update the setting
|
||||
try {
|
||||
// We need to keep the structure of homebrewSettings intact
|
||||
const newSettings = {
|
||||
...homebrewSettings,
|
||||
domains: currentDomains
|
||||
};
|
||||
|
||||
// We need to know the Key used to set it.
|
||||
let key = 'Homebrew';
|
||||
if (game.settings.settings.has('daggerheart.homebrew')) key = 'homebrew';
|
||||
|
||||
await game.settings.set('daggerheart', key, newSettings);
|
||||
|
||||
ui.notifications.info(`${MODULE_ID} | Registered missing domains (Blood/Dread) in Homebrew Settings.`);
|
||||
} catch (err) {
|
||||
console.error(`${MODULE_ID} | Failed to update settings:`, err);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue