/deadfire-needful-things

A mod for Pillars of Eternity 2: Deadfire that adds many existing unique/soulbound items to merchants in Neketaka.

Primary LanguageTypeScriptMIT LicenseMIT

Needful Things

A mod for Pillars of Eternity 2: Deadfire

Ado Watcher!

This mod adds many existing unique/soulbound items to merchants in Neketaka.

Items that are easy to get, like Miscreant's Leathers, The Eye of Wael, Lord Darryn's Volge, Saru-Sichr etc. are not included. Likewise anything that can be bought really easily is also not added, basically anything from easily accessible stores like The Treasure Trove, The Dark Cupboard, Deck of Many Things etc.

After nearly 1600 hours playing Deadfire (the majority being on upscaled Path of the Damned) I decided that I want some items earlier then it is possible to get in the game for RP reasons or for specific builds. I don't have the console installed or have any interest in entering console commands so I made this mod to give me access to various items early.

All this mod does is add the items to various vendors, it does not have anything to do with the prices those vendors charge. This is something I don't want to change or see any need to change. If you do not have the money for these items, go complete some bounties my cullies!

Supplies! Get your supplies here!

The following items have been made available:

Type Location
Armour Wanika (Queen's Berth)
Grimoires Osa (Queen's Berth)
Items Tiabo (Sacred Stair)
Shields Orlan Peddler (Brass Citadel)
Weapons Marihi (Periki's Overlook)

Armour

Grimoires

Items

Shields

Weapons

Surely you've a scrap to spare?

If you can help improve this mod feel free to make suggestions via the issues for this repo or if you are a javascript developer, fork this repo and submit a PR if you prefer.

Animancy Guide

This repo is not just a mod, it also has a complete build system for generating the mod.

If you are familiar with node, yarn, and have experience with javascript/typescript it should be easy for you to use or modify.

Scripts

The following scripts are available:

bold script = make sure the build folder has been created first

Script Description
clean Runs all clean scripts
clean:build Removes the "build" folder and all contents
clean:dist Removes the "dist" folder and all contents
compile Transpiles the typescript and saves it as javascript in the "build" folder
compile:watch As compile, but TSC is in watch mode and will continually update the "build" folder as you make changes to the code under the "src" folder
dev This will run main.js in the "build" folder in development mode. Bundle json will NOT be minified and will be saved in "build".
export Saves the items this mod adds as text files in the "build" folder. They can then be used in the readme or on Steam/Nexus mods. etc
lint Runs all lint scripts
lint:prettier Reformats all src .ts files using Prettier
lint:ts Lints all src .ts files using Eslint
package Build the mod for distribution: will run clean, and compile. Then copy the static folder, and then run production. It will also zip up the mod with the version number ready for you to distribute
package:test Test and check everything about the mod: will run clean, lint, and compile. Then validate UUIDs, and then run dev
production This will run main.js in the "build" folder in production mode. Bundle json will BE minified and will be saved in "dist" under "Needful Things/design/gamedata".
static-copy Copies the extension static files to the "dist" folder
test Run unit tests
validate Validates all UUIDs to make sure they are correctly formed, this is used to make sure there are no errors in the UUIDs that you copy. NB: DOES NOT VALIDATE THAT THEY EXIST IN DEADFIRE

Files and Folders

Noteworthy files and folders used by this mod:

Files/Folders Description
build Javascript created by compiling the typescript in src. Also exported items lists will be stored here, as well as bundle files in development mode
dist The mod for distribution. Copy the Needful Things folder from here to the override folder to test your mod. A zipped version will also be stored here if you run "package"
src The source files for this mod
src/bundles Code for generating the bundle file content using the UUID data
src/data The actual UUIDs of the items this mod adds.
src/fs Filesystem related functions for packaging the extension or exporting item lists.
src/main.ts The code that generates the bundles as well as a list of the bundles to be created.
static Fixed files needed by the mod. DO NOT CHANGE ANYTHING HERE unless you know what you are doing.

Development

You can run yarn compile:watch in one terminal and in another run yarn dev to see the results of your changes.

If you use the Terminals Manager extension, a terminals.json config for these terminals is in the .vscode folder.

Links