benilla README

The project's README from github.com/samwhosung/benilla. As one markdown file: README.md.

benilla

A complete World of Warcraft 1.12.1 client, written from scratch in Rust and Bevy

Discord YouTube devlog License

benilla plays the whole game: character creation, questing and professions, dungeons and raids, battlegrounds and honor, groups, guilds, trade, mail and the auction house, on the stock 1.12 interface and with your addons. It connects to a 1.12.1 server over the original protocol and reads the game's data from your own 1.12.1 install. Every file format, the network protocol and the interface engine are written from scratch, with no original client code, no third-party WoW crates and no bundled game assets.

What's inside

The format readers and the UI engine core are plain Rust with no Bevy in them, and the world renderer runs with no game attached. docs/MAP.md maps every crate and subsystem, generated from the code.

Status

Complete and fully playable. What is left:

benilla is a faithful 1.12.1 client and the foundation people build on. There are no prebuilt downloads: a packaged build, a particular server's changes or anything 1.12.1 never had belongs in a fork, and forks are welcome. GitHub lists every public fork.

Not planned: other expansions or client versions, Warden (anticheat).

Running it

benilla builds and runs on macOS, Linux and Windows. You need:

WOW_DATA=/path/to/WoW/Data cargo run --release -p benilla

On Windows, in PowerShell:

$env:WOW_DATA="C:\path\to\WoW\Data"; cargo run --release -p benilla

Each release is a tag on the Releases page: git checkout <tag> first runs that release, and main is the development tip.

WOW_DATA names the install's Data folder; a link to the install named WoW at the repo root does the same (ln -s /path/to/WoW WoW, or on Windows a junction, which needs no admin rights: New-Item -ItemType Junction -Path WoW -Target C:\path\to\WoW). The server defaults to localhost:3724, the stock auth port. Point WOW_HOST at another (WOW_HOST=play.example.com, or play.example.com:5000 for a remapped port), or set it from the Realmlist button on the login screen, which remembers it. Credentials go in at the login screen, or set WOW_USER and WOW_PASS to skip it.

Settings, screenshots and addons live in benilla-config/ at the repo root: a 1.12 addon goes in benilla-config/AddOns/. docs/CONTRIBUTING.md has the rest, from the player build to the tests.

Contributing

Issues and pull requests are open. docs/CONTRIBUTING.md says where to start, what gets in, how a change is judged and what happens to a pull request once it is open. Bugs, questions and ideas are welcome on the Discord too.


Early inspiration and file format guidance came from the wowemulation-dev community, and warcraft-rs in particular.

benilla is an independent fan project, not affiliated with or endorsed by Blizzard Entertainment. It ships no Blizzard content: no art, models, sounds, maps, MPQ contents or FrameXML. You provide your own legally obtained 1.12.1 client, and the stock interface runs off its FrameXML at runtime. The few files under crates/benilla-app/assets/ui/ are our own, not copies of it: adapters over stock files, and the settings windows and script error log benilla draws itself.

World of Warcraft is a trademark of Blizzard Entertainment, Inc. Our own code is licensed under MIT or Apache 2.0, at your option. The two vendored components under third_party/, the kira audio engine and a Lua 5.1 patched to the 1.12 client's dialect, keep their own upstream licenses, alongside each.

benilla (samwhosung/benilla)

Searching Database…

这是什么?Benilla 是一个完整的《魔兽世界》1.12.1 游戏客户端,完全用 Rust 和 Bevy 从零写成,让你能在原版 1.12 界面上玩任务、地下城、团队副本、战场、公会、交易和拍卖行。
这是游戏客户端,还是服务器模拟器?它纯粹是客户端。你仍然需要一个单独的 1.12.1 服务器来连接;benilla 只读取你的游戏数据,并用原始协议与服务器通信。
怎么让它跑起来?克隆仓库并检出一个发布标签(想用最新开发版就用 main),设置 WOWDATA,或者把一个名为 WoW 的文件夹符号链接到客户端的 Data 文件夹,然后运行;除非你设置了 WOWHOST,服务器默认是 localhost:3724。
开玩之前需要准备什么?你自己合法获得的英文版 1.12.1 客户端(build 5875)、一个运行中的 1.12.1 服务器(比如关闭 Warden 的 vmangos)、稳定版 Rust,以及一个 C 编译器(客户端内置的 Lua 要从源码构建)。
有什么缺失或不打算做的?没有预构建的下载(要自己构建),也不计划支持其他《魔兽世界》资料片、其他客户端版本或 Warden 反作弊;这些留给社区分支去做。
它能在哪些平台上运行?Benilla 可以在 macOS、Linux 和 Windows 上原生构建并运行。
benilla 支持 Questie 或 Bartender2 这类第三方 1.12 插件吗?支持,它基于你安装的补丁链运行 FrameXML 和 Lua 引擎,Questie、pfUI、Bagnon 和 Bartender2 等插件都能和原版界面一起用。
benilla 为什么完全从零写起,而不是复用现有的 WoW 代码?它不含任何原始客户端代码、第三方 WoW crate 或打包的游戏资源,因此是一个独立的粉丝自制项目,只读取你自己合法获得的客户端文件。
benilla 可以连接哪些服务器软件?任何支持原始协议的 1.12.1 服务器核心,比如 vmangos(开发所针对的对象)或 cMaNGOS,并需禁用 Warden。
能不能直接下载现成的构建,不用自己编译?不能,没有预构建的下载——你要用 Rust 和 Bevy 从源码构建,打包版本的事留给社区分支。
Creator
samwhosung
Size
46.4 MB
Stars
754
Age
2mo
Commits · 90 Days