Skip to content

Primeiros Passos ​

Requisitos ​

  • Node.js >= 24 (veja engines no package.json)

Instalação ​

bash
npm install uesp-eso-build-wrapper

Dados do jogo ​

Os dados do jogo (UespInitData) não vêm no pacote npm — a biblioteca embala apenas os scripts do motor. Você fornece os dados na inicialização.

A fonte canônica é o vendor/uesp-data/uesp-game-data.json, commitado no repositório e regenerado dos dumps SQL da UESP a cada patch de ESO. O campo _meta registra de qual patch foi gerado — atualize ou fixe sua cópia deliberadamente para que seus números correspondam a uma versão conhecida do jogo.

Formas de obter:

  1. Copiar do repositório — baixe o uesp-game-data.json do repositório acima e carregue com fs.readFileSync.

  2. Gerar você mesmo — o wrapper traz um pipeline self-contained que faz o parse direto dos dumps MariaDB da UESP (sem depender de projeto externo), usando o mesmo runtime Node >= 24 da biblioteca:

    bash
    npm run db:seed -- --dir /caminho/dumps --version <patch>

    (Ou semeie um banco SQLite e use o npm run generate-data -- --db /caminho/local.db --version <patch>.)

Inicialize o motor ​

Chame initEsoEngineFromData() uma vez por processo, antes de qualquer cálculo. Chamadas seguintes são no-op.

ts
import fs from 'fs';
import { initEsoEngineFromData } from 'uesp-eso-build-wrapper';
import type { UespInitData } from 'uesp-eso-build-wrapper';

const initData = JSON.parse(
  fs.readFileSync('uesp-game-data.json', 'utf-8'),
) as UespInitData;

initEsoEngineFromData({ initData });

Seu primeiro cálculo ​

ts
import { calculateBuild } from 'uesp-eso-build-wrapper';

const stats = calculateBuild({
  character: {
    race: 'High Elf',
    class: 'Sorcerer',
    level: 50,
    attributes: { health: 0, magicka: 64, stamina: 0 },
  },
});

console.log(stats.Health);       // 16000
console.log(stats.Magicka);      // 19104
console.log(stats.MagickaRegen); // 514
console.log(stats.SpellDamage);  // 1000

O objeto de resultado também traz stats.raw — todos os 204 stats num record simples. Veja Lendo o Resultado.

Próximos passos ​

Elder Scrolls Online is a trademark of ZeniMax Media Inc. This project is not affiliated with or endorsed by ZeniMax Media Inc.