For the past few years, I've been focusing my energy on Vault Zero, an iPadOS/Apple Silicon app for Destiny 2. Fate hasn't gotten much love in that time, though it still continues to function, and I use it daily. This month, I'll be making a modernization pass to the tech, getting the build back online, etc.
Fate of All Fools
(or "Fate" for short) is a suite of visual modifications and data overlays on top of Destiny Item Manager (DIM) for the Destiny video game. It works by modifying the presentation of DIM while it's running, directly in the browser.
Fate
builds on DIM in two ways:
- Visual Modification: It modifies the presentation of existing information, that DIM provides.
- Information Overlays: It displays new information, that you provide.
Fate is compatible with the online version of DIM, not the DIM browser extension, mobile app, etc.
- Install the Tampermonkey browser extension.
- Install Fate from OpenUserJS.
- Reload DIM.
Fate is a node-based project using ES6 as TypeScript wasn't yet a thing when I kicked this off in 2017. Much of the complexity of project configuration has been done to accelerate development; primarily the local modify => refresh => test loop.
Upon saving any file, everything is built, tested and released (locally).
- Install Tampermonkey from the Chrome Web Store. You cannot use the Safari version of TamperMonkey for development because Safari will not allow you to configure the next setting.
- In Chrome's "Extension" settings, choose "Tampermonkey" and enable the option to
Allow access to file URLs
. This allows you to refresh your browser to pick up changes during development, using the file URLs present in the next steps. - Create a new script in Tampermonkey and paste the contents of fateOfAllFools.dev.user.js.
- Modify the
@require
and@resource
directives to be accurate based on your filesystem. npm install
- (TODO - MISSING STEPS FOR PATHING)
brunch watch
Monitors filesystem for changes to JS and CSS, building as appropriate.karma start
Monitors assets for changes, running tests in response.