尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Pick any Old School RuneScape boss and get a DPS-optimised gear loadout built from your own bank, plus the mechanics and special-attack weapons that matter for the fight.
Not affiliated with Jagex Ltd. Old School RuneScape is a trademark of Jagex. This is a fan-made, third-party tool. All game data comes from the OSRS Wiki.
/boss/[slug]).There's also an item browser (/items) with sortable bonuses and live GE
prices, and shareable loadout links that encode a setup into a URL.
OSRS Wiki Real-time Prices API ──► Next.js app (read-only server proxy adds the
(GE prices, item mapping) wiki-required User-Agent; caches briefly)
│
RuneLite plugin ──► bank.json ──► your browser ──► DPS engine + optimizer
(optional, opt-in) (local file) (reads the file ──► recommended loadout
reads your game in .runelite locally; nothing
state, no network directory is uploaded)
There is no backend that stores or even receives your bank. The plugin writes a file on your machine; the browser reads it locally. Without the plugin (or without connecting the file), the app runs in Budget mode — pick a boss and it builds the best setup for a GP cap, so you can try every feature with no setup.
The RuneScape community rightly scrutinises any tool that reads game data, so here is exactly what happens — see SECURITY.md for the full write-up.
bank.json inside your RuneLite directory. The web
app reads that file in your browser. Nothing is uploaded to any server.plugin/src/.../BankSyncPlugin.java.)plugin/No database, no auth service, no server-side state.
npm install
cp .env.example .env.local # optional — only needed for GE prices / feedback email
npm run dev # http://127.0.0.1:3000
The app runs fully without any env vars — they only enable live GE prices and the feedback email relay.
All optional; documented in .env.example:
| Variable | For | Notes |
|---|---|---|
WIKI_USER_AGENT_CONTACT | GE prices | Contact info the OSRS Wiki requires in the User-Agent. |
RESEND_API_KEY | feedback email | Resend key. Blank in dev → feedback prints to the console. |
EMAIL_FROM | feedback email | Verified sender address. |
FEEDBACK_TO | feedback inbox | Where in-app feedback is emailed. |
No secrets are committed — .env* is gitignored (only *.example is tracked).
app/ Next.js routes & API endpoints
api/ wiki price/mapping proxies (read-only) + feedback relay
boss/[slug]/ the one dynamic boss page every boss shares
components/ React UI (panels, modals, the equipment grid, BankConnect, …)
lib/
dps/ the combat/DPS math engine
optimize/ the bank-driven loadout optimizer
localBank.ts reads the plugin's local bank.json (File System Access API)
liveBank.ts adapts the local bank into the shape the UI consumes
data/ static game data (weapon styles, mechanics, spells, …)
*/catalog.ts GENERATED — do not hand-edit (see below)
scripts/ data-build codegen + the DPS oracle harness
plugin/ the RuneLite local-bridge plugin (Java/Gradle)
tests/ Vitest unit + regression tests
The item and monster catalogs (data/items/catalog.ts,
data/monsters/catalog.ts) are generated from vendored OSRS Wiki data by the
build scripts and regenerated on every build:
npm run build-data # runs automatically before build & test
npm test # Vitest unit + regression suite
npm run typecheck # tsc --noEmit
npm run lint # eslint
npm run oracle # cross-check the DPS engine against the real wiki calculator
See SECURITY.md. TL;DR: no backend receives your data, no third-party tracking, and the RuneLite plugin only writes a local file.
See CONTRIBUTING.md.