Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
Anvil은 Europa Universalis IV용 플러그인 로더이며, 네이티브 플러그인을 지원하고 eu4.exe를 변경하지 않습니다
Anvil is a plugin loader for Europa Universalis IV. Native plugins, no changes to eu4.exe.
플러그인C++ · CMakeGitHub @happy-dwarf-team온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Anvil: plugin loader for Europa Universalis IV (proxy version.dll, no changes to eu4.exe)
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Anvil is a plugin loader for Europa Universalis IV (Windows, Steam). It lets
native plugins improve or extend the game without modifying eu4.exe.
Install guide, plugin catalog and docs for plugin authors: anvil.happydwarf.dev.
Status: Anvil 1.x with plugin API 2 — see Releases and CHANGELOG.md. Supported game build: EU4 1.37.5 (Steam, Windows 64-bit); on other builds only plugins that use no game addresses load. Design: docs/design.md. Plugin API 2: include/anvil/anvil_plugin.h (C) and include/anvil/anvil.hpp (C++20 wrapper); examples: examples/hello-c and examples/hello-cpp.
version.dll placed next to eu4.exe. Windows loads it
together with the game; it forwards every version.dll call to the system
copy and, in addition, loads plugins.anvil/plugins/<plugin-id>/ (manifest + DLL). They can also
come in EU4 mods, from the Steam Workshop or the local mod folder, as
anvil/<plugin-id>/ in the mod. Such a plugin loads only while its mod is
enabled in the playset and only after the player approves its exact files
in the overlay or in AnvilManager.exe. An update waits for a new approval.
Approvals are kept in anvil/trust.toml, and an approved plugin loads from
Anvil's own copy in anvil/data/anvil/approved/.symbols.toml; on another build it is skipped. Broken plugins, plugins
written for an older plugin API or an empty plugins folder mean the game
simply starts as usual. The manifest format is described in
docs/design.md.anvil-game (anvil/plugins/anvil-game/):
game readiness, a frame event, work on the main thread and game sessions
(include/anvil/anvil_game.h). Plugins that
change the simulation need it: in ironman and multiplayer games Anvil takes
their changes out unless the player allows them in anvil/anvil.toml.anvil-overlay (anvil/plugins/anvil-overlay/): in-game
notices about plugins that were not loaded, the previous crash and safe
mode, and a panel on Ctrl+Shift+F12 with the status, "disable at the next
start", the crash report, the log and every plugin's settings. It draws on
the game's Direct3D 9 renderer and stays off with OpenGL.anvil/anvil.log: what was loaded, what was skipped and why.anvil/crashes/ (the last 10 are kept): where it
happened and which plugins were involved, with each plugin's issues link.
After two starts in a row that ended before the game was ready, the next
start loads only Anvil's standard plugins (safe mode), and the overlay says
why.Download from the
Releases page (the newest
build is always at
releases/latest).
SHA256SUMS.txt there holds the checksums of the assets.
With Anvil Manager (AnvilManager.exe). Run it, and it finds the game
through Steam (or lets you pick the folder that contains eu4.exe).
"Install Anvil" copies version.dll, the standard plugins and the Manager
into that folder; from then on, start the Manager there.
eu4.exe, and edits plugin settings.version.dll, the standard plugins and the
Manager, and keeps your plugins, their settings and anvil/anvil.toml.
Tick "Also remove my plugins…" to remove the anvil folder too.By hand. Extract anvil-windows-x64.zip into the game folder (the
archive has its own SHA256SUMS.txt for the extracted files). To uninstall,
delete version.dll, AnvilManager.exe and the anvil folder.
eu4.exe is never changed, so Steam updates and "Verify integrity of game
files" keep working. Without version.dll the game starts vanilla.
The plugin catalog lists released plugins with their install guides:
Etch, a preview for EU4 interface mods in
Visual Studio Code, is built on Anvil too: its game host runs a private copy
of the game with pinned builds of Anvil, anvil-game, Bellows and Etch's own
plugin. It is not a catalog plugin. To write a plugin, start from the
plugin template
and the author docs.
Requirements: Visual Studio 2022 (or Build Tools) with the C++ workload, CMake ≥ 3.25, Git (dependencies are fetched at configure time: toml++ 3.4.0, SafetyHook 0.7.0 with Zydis 4.1.0).
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure
cmake --install build --config Release --component anvil --prefix dist # version.dll + anvil/ layout
The build also produces anvil.exe, the command-line tool for plugin authors.
It shares the anvil_core library (manifests, symbols.toml and its
verification, settings.toml, the game build identity) with version.dll:
anvil gen symbols.toml build\generated # symbols.gen.h and symbols.gen.hpp
anvil gen settings.toml build\generated # settings.gen.h and settings.gen.hpp
anvil gen --lang rust symbols.toml out # symbols.gen.rs (Rust plugins, anvil-sys)
anvil check my-plugin --exe "C:\...\eu4.exe" # verify against the game, write symbols.lock
anvil check my-plugin --format github # in CI, without the game: schemas and symbols.lock
The Rust side (sdk/rust/anvil-sys, examples/hello-rust, see
§9) is a Cargo workspace at the root; it needs
Rust 1.82 or newer and the anvil.exe built above, which the hello's build.rs
runs. CI uses Rust 1.99.1, and sdk/rust/regen-bindings.ps1 (bindgen 0.73.2 and
libclang) regenerates the committed bindings after a change to the header:
$env:ANVIL = "$PWD\build\Release\anvil.exe"
cargo build --workspace
cargo test --workspace
See docs/design.md §16 for the
checks, the instruction-boundary rule and the symbols.lock format.
Contributions, the commit convention and the release process: see CONTRIBUTING.md.
MIT — see LICENSE. Anvil is an unofficial community project, not affiliated with or endorsed by Paradox Interactive.