giniedp / nw-buddy

New World Buddy App
MIT License
33 stars 10 forks source link

New World Buddy

New World Buddy

New World Buddy is a desktop application designed to be used while playing New World.

Features

Links

Development

This repository does not contain the ingame data. Ingame data must be extracted from a local New World installation during development.

The software and development stack is based on the following technologies:

For build commands, see package.json

Quickstart

git clone git@github.com:giniedp/nw-buddy.git
cd nw-buddy
# create a .env file from example file
cp .env.example .env
# install dependencies
pnpm install
# download recent new world data files
pnpm nw-cdn download
# start development server
pnpm dev:web

Game Data Extraction

You can download game data from CDN (see quickstart) and skip the extraction step.

Prerequirements

Unpack (optional)

If you have already unpacked the game folder, adjust the NW_UNPACK_LIVE and/or NW_UNPACK_PTR env variables accordingly and skip the rest of this step.

Run pnpm nw-extract. This will extract all the necessary game data to whatever NW_UNPACK_LIVE and/or NW_UNPACK_PTR is set to.

Convert (mandatory)

This will read files from the unpacked game data folder, convert them and place the results in tmp/nw-data/live (or tmp/nw-data/ptr). The conversion includes:

Import (mandatory)

This will read files from the conversion folder and prepare them for runtime use, e.g.

The results are written to dist/nw-data/live (or dist/nw-data/ptr)

Running dev server

Run pnpm dev. Starts both, the electron app and a web browser in parallel Run pnpm dev:web if you only need a web browser for development

Building the app

There are multiple target that can be built

Electron App

Run build:electron. This will build the electron frame, the web app with electron target and then bundle it all together. The resulting .exe is written to releases/nw-buddy [VERSION].exe

Web App

Run build:web. This will build the web app that can be uploaded and hosted on a server. The result is written to dist/web