Skip to content

A Deno based modding framework for modern World of Warcraft Classic clients.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

wowemulation-dev/deno-wow-kit

deno-wow-kit

Modern World of Warcraft modding framework built with Deno, TypeScript, and cascette-rs/ngdp.

Discord License License

Features

  • CASC archive support via battle-tested cascette-rs/ngdp CLI tool
  • Type-safe DBC file processing
  • BDD test-driven development
  • Clean architecture and modern TypeScript
  • Streaming for large file handling
  • No C++ compilation required
  • Professional CASC tooling with CDN failover and caching

Quick Start

Prerequisites

  • Deno 2.x or later
  • ngdp CLI tool (from cascette-rs project)
  • MySQL 8.x or MariaDB 10.x (for server data)
  • Classic WoW client with CASC storage

Installation

# Install ngdp CLI tool first
cargo install ngdp-client

# Or use install script
curl -fsSL https://raw.githubusercontent.com/wowemulation-dev/cascette-rs/main/install.sh | bash

# Verify ngdp installation
ngdp --version

# Clone the repository
git clone https://github.com/wowemulation-dev/deno-wow-kit.git
cd deno-wow-kit

# Run tests to verify setup
deno task test

# Start development server
deno task dev

Basic Usage

import { CASCReader, DBCParser, SpellSchema } from "deno-wow-kit";

// Initialize CASC reader with WoW path
const cascReader = new CASCReader({
  wowPath: "/path/to/wow/Data",
  region: "us",
});

// Extract DBC file using ngdp
const spellDBC = await cascReader.getFileByName("DBFilesClient/Spell.dbc");

// Parse DBC file
const parser = new DBCParser(SpellSchema);
const spells = parser.parse(spellDBC);

// List available files
const files = await cascReader.listFiles();
const dbcFiles = files.filter((f) => f.path?.endsWith(".dbc"));

Development

Running Tests

# Run all tests
deno task test

# Watch mode
deno task test:watch

# With coverage
deno task test:coverage
deno task coverage

# Integration tests with real WoW data (set WOW_PATH environment variable)
export WOW_PATH="/path/to/wow/Data"
deno task test

Code Quality

# Format code
deno task fmt

# Lint code
deno task lint

# Type check
deno task check

Building

# Create standalone executable
deno task compile

Environment Variables

  • WOW_PATH: Path to WoW Data directory (for integration tests)
  • NGDP_PATH: Custom path to ngdp executable (optional)

Documentation

License

This project is licensed under either of

at your option.

Contributing

Contributions welcome! Please read our contributing guidelines and code of conduct.

Dependencies

  • cascette-rs/ngdp: Battle-tested CASC/NGDP implementation
  • Deno: Modern TypeScript runtime
  • MySQL/MariaDB: Server-side data storage

Support

  • GitHub Issues: Report bugs and request features
  • cascette-rs Issues: For CASC/ngdp related problems
  • WoW Emulation Community: General modding support

About

A Deno based modding framework for modern World of Warcraft Classic clients.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published