Valheim
You are viewing a potentially older version of this package. View Latest Version
Install

Details

Date Uploaded
yesterday
Downloads
4
Size
121KB
Dependency string
Wubarrk-The_Eye-2.1.1
ADDatHost Valheim hosting
30% off!

👁️ WubarrksEye (TheEye)

"Stop guessing what the IL does. Stop decompiling 130,000 lines just to find out if CanSenseTarget is virtual or static. The truth is in the assembly, and now it's in your hands."

Join the Mists of Avalor Open BETA find it only on Hexium where you will find all the newest version of my mods!

WubarrksEye (TheEye) is a deterministic, cross-platform Valheim API extraction tool. It is, without exaggeration, a vibe coder's wet dream. But let's be real—with this data at your fingertips, you're not just a vibe coder anymore. You're an AI-augmented game mod designer, and your dreams can come true. When Valheim 1.0 drops and the entire API shifts, this is the only tool you will need to seamlessly map the new world and feed it straight to your AI pair programmer.

Forget hand-grepping decompiled source code for hours. Forget guessing why your Harmony patches are misfiring because you bound the wrong overload, or realizing months later that your custom monster AI was inert because vanilla's Character.OnDamaged never actually fires for most creatures. TheEye gives you the absolute ground truth of the game's architecture, serialized data, and method call graphs, straight from memory.

This isn't just a dumper; it's an autopsy table for the game engine, built explicitly so you and your AI can rewrite the rules of the realm.


⚔️ Features

🕸️ Deep Call-Graph Extraction

TheEye walks the method IL and emits call and field-access edges, giving you the exact execution flow of the game's logic. It tells you exactly what a method body actually does. Does an override actually call base? Which overload does a call site really reach—static or instance? Who calls method X, and how often? All these questions are answered deterministically in CallGraph_Dump.json. Say goodbye to MissingFieldException and patches that silently do nothing.

💎 Serialized Value Extraction

Vanilla's codebase gives you declarations; TheEye gives you the actual Unity serialized prefab data. Want to know ArmorAshlandsMediumChest's base armor or the exact drop chance of a rare item? It walks the deep reflection tree, navigating up to 32 levels deep, capturing arrays, nested structs, and flattened paths without exploding your system's memory. Every prefab, recipe, status effect, and biome location is meticulously dumped into Values_Dump.json.

🗺️ The Complete API Surface

The API_Dump gives you the unambiguous truth of the game's structure. Declaring types, complete overload sets, virtual/abstract/override modifiers, and full parameter types. It cuts through the noise and shows you exactly what is callable. If you need to know if a member is public, protected, or private at runtime, it's right there.

🚀 Zero-Stall Background Architecture

Running a dump doesn't mean freezing your client or crashing your server. TheEye batches its operations via coroutines, scales its workload off your system's RAM profile, handles cancellation gracefully, and streams directly to disk (with optional ZIP compression). The game keeps rendering, the server keeps ticking, while you rip its secrets out in the background.

🧠 Intelligent Scope Restraints

Memory and stall safety are baked into the core. It limits IL walks and component scanning strictly to the game assembly (typeof(ZNetScene).Assembly), ignoring Unity internals, BepInEx noise, and mscorlib. It features cycle-detecting hash sets on reference equality and budget caps per node, ensuring that your 50MB dump is exactly the data you need, and nothing you don't.

👑 The Single Ground Truth

One tool, one command. It replaces half a dozen standalone scripts. ObjectDB, ZNetScene prefabs, ZDO configurations, API declarations, IL call graphs, and Unity serialized values—all dumped at once, deterministically, with proper UTF-8 formatting.


🍗 Guide to Extraction

  • Launch the Game — Let the main menu or a world load. For the most complete values (like ServerSync overrides), run the dump after connecting to a live world.
  • Run the Dump — Run dump_eye in the F5 console, or press F8 and use Start Dump. The command accepts arguments for specific extractions.
  • Review the Goods — Output goes to BepInEx/config/WubarrksEye_Dumps/<timestamp>/. Each extractor writes its own *.json file, and AgentML_Complete_Dump.zip bundles all of them as one JSONL for machine ingestion.
  • Write Better Mods — Search the JSON for your target method or item and write better mods with AI you vibe coder you.

What You Will Find Inside:

File Contains
API_Dump.json Declared types, members, and signatures.
Prefabs_Dump.json ZNetScene prefabs and their components.
Scene_Dump.json Active scene root objects.
ZDO_Dump.json Live ZDO state.
ObjectDB_Dump.json Items and recipes.
Values_Dump.json Actual field contents for items, recipes, status effects, vegetation, locations.
CallGraph_Dump.json Per-method IL call and field-access edges, plus a CalledBy inverted index.

🔎 Why Before You Grep The Decompile

The API_Dump.json answers three major questions without you needing to read a single line of decompiled source:

  1. Which type declares a member — fields and methods are dumped DeclaredOnly, so if m_targetCreature shows up under MonsterAI it is not on BaseAI. Binding to the wrong declaring type throws MissingFieldException at runtime, usually into a catch that swallows it.
  2. The full overload set — with complete parameter types, so you can tell whether the overload you are about to call actually exists.
  3. virtual / override / abstract — derived directly from GetBaseDefinition().

But that's just the surface. CallGraph_Dump.json goes deeper. It answers method body questions that reflection cannot see:

  • ChainsToBase — does this override call base? Humanoid.OnDamaged does not, so a patch on Character.OnDamaged never fires for most creatures in the game. Player.OnDamaged does.
  • Calls[].Opcall vs callvirt, which is what distinguishes a base chain from re-dispatch, and which tells you whether a call site reaches a static or an instance overload.
  • CalledBy — who calls a given method, which a forward-only graph cannot answer.
  • Reads / Writes — which fields a body touches.

This is an edge index, not a decompiler. It tells you that an edge exists, not under which branch—read the decompiled source for the specific logic if needed. Accessibility is reported as the runtime assembly's. Projects compiling against a publicized assembly_valheim will see members that are private here as directly callable.


⚙️ Configuration

Settings are managed via the dump options parameter set, controlled directly through the Valheim console when executing dump_eye.

Dump Options

Setting What it does
DumpCallGraph Walks the IL of the game assembly and emits call and field-access edges.
DumpValues Walks Unity serialized prefab data to dump real values for items, recipes, and vegetation.
DumpAPI Emits the structural declarations, overload sets, and modifiers.
DumpObjectDB Dumps the state of ObjectDB.instance.
DumpZNetScene Dumps the state of ZNetScene.instance.m_prefabs.
ZipOutput Packages the resulting JSONs into a single minified archive for easy distribution.

⚠️ Dependencies: BepInEx, Newtonsoft.Json (ships seamlessly with the payload)


Thunderstore development is made possible with ads. Please consider making an exception to your adblock.