You are viewing a potentially older version of this package. View all versions.
sighsorry-VeiledRecipes-1.1.2 icon

VeiledRecipes

Shows undiscovered recipes and build pieces as masked previews without early unlocks. Reveals known materials/station info gradually, blocks crafting and placement until learned, with synced discovery/blacklist configs and notification controls.

Date uploaded 3 weeks ago
Version 1.1.2
Download link sighsorry-VeiledRecipes-1.1.2.zip
Downloads 93
Dependency string sighsorry-VeiledRecipes-1.1.2

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2351 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2351

README

VeiledRecipes

VeiledRecipes changes how Valheim presents unknown recipes and build pieces. Instead of keeping every undiscovered recipe completely invisible, it can show configurable masked previews: the player learns that something exists, while names, icons, descriptions, hidden materials, and hidden station requirements stay secret until the real unlock conditions are met.

The mod does not grant recipes early. Unknown previews cannot be crafted or placed.


Veiled recipes would be unlocked only when all the materials and station requirements were met.
The stations are unlocked only when the player interacts with them by default.


By default, veiled recipes are grouped below known recipes.


By default, even veiled recipes are not shown when crafting station level is not met.


InventorySlots mod is compatible with VeiledRecipes. Check it out!
https://thunderstore.io/c/valheim/p/sighsorry/InventorySlots/

Piece recipes are also veiled.
By default, players don't have to interact with the crafting station to unlock the piece recipes.

Strengths

  • Shows discovery progress without spoiling full recipes.
  • Keeps Valheim's actual recipe and piece unlock rules intact.
  • Masks crafting recipes, build pieces, item icons, descriptions, requirements, station levels, tooltips, and pinned tooltip content where supported.
  • Reveals known materials and station information gradually.
  • Blocks crafting and placement for entries that are only previews.
  • Supports strict station discovery rules for recipe unlocks.
  • Preserves recipe-less upgrade, socketing, and runtime build workflows added by other mods.
  • Provides server-synced blacklist controls for item outputs, build pieces, and requirement ingredients.
  • Offers client-side options for recipe grouping and noisy notifications.
  • Exposes a compatibility API for custom crafting UI mods.

Crafting Recipe Previews

When a crafting recipe is visible only as an unknown preview:

  • The recipe list icon is rendered as a black silhouette.
  • The recipe name is replaced by Unknown Name Text.
  • The selected recipe icon is rendered as a black silhouette.
  • The recipe description is replaced by Unknown Description Text.
  • Unknown requirement names and amounts are replaced by Unknown Requirement Text.
  • Unknown station level text is replaced by Unknown Requirement Text.
  • Requirements the player already knows are shown normally.
  • The craft button is disabled and crafting is blocked.

Recipe previews can be grouped below actually unlocked recipes so normal crafting remains easy to scan.

Build Piece Previews

Unknown build pieces can appear in hammer/build-piece tables as masked entries.

Until the piece is actually unlocked:

  • The piece icon is rendered as a black silhouette.
  • The piece name and description are hidden.
  • Unknown requirements are masked.
  • The placement ghost is blocked.
  • Placement is denied with Valheim's missing requirement message.

Once Valheim considers the piece known, VeiledRecipes stops masking it.

Recipe-Less Mod Workflows

Some mods let players upgrade or socket loot-only items without providing an unlockable crafting recipe. VeiledRecipes leaves these owned-item operations unmasked when no enabled or currently seasonal ObjectDB recipe can be learned for that item. A recipe-less entry without an existing target item is still treated as crafting and remains blocked, so this exception does not create a free crafting path.

Runtime pieces that are not registered in a regular PieceTable.m_pieces list, such as generated blueprint proxies, are also left unmasked. Regular registered build pieces continue to follow normal knowledge and preview rules.

Station Discovery

Valheim normally discovers crafting stations when the player walks close enough to them. That station awareness can affect recipe and piece unlocks.

VeiledRecipes separates two concepts:

  • Require Station Interaction For Recipe Unlock controls whether station-gated crafting recipes require direct interaction with the required station level before the recipe can truly unlock.
  • Enable Station Proximity Discovery controls whether walking near a crafting station discovers it through Valheim's normal proximity behavior.

Build pieces use Valheim's normal station awareness. If proximity discovery is enabled, walking near a station can help piece unlocks. If proximity discovery is disabled, interacting with the station is required before that station is known.

Server-Synced Config

These options are synced through ServerSync when configuration locking is enabled.

  • Lock Configuration Locks synced config so only the server/admin config controls gameplay behavior.

  • Show Unknown Crafting Recipes Enables masked crafting recipe previews at relevant crafting stations. Default: On

  • Show Unknown Build Pieces Enables masked build-piece previews in build-piece tables. Default: On

  • Require Station Level For Unknown Crafting Recipes If enabled, unknown crafting recipe previews only appear when the current crafting station meets the required station level. A forge level 2 recipe will not appear at a forge level 1 unless it is already truly unlocked. Default: On

  • Require Station Interaction For Recipe Unlock If enabled, station-gated crafting recipes unlock only after the player has interacted with the required crafting station level. If disabled, recipe station knowledge follows Valheim's normal known station behavior. Default: On

  • Enable Station Proximity Discovery If enabled, walking near a crafting station discovers it normally. If disabled, proximity discovery is blocked and station knowledge requires interaction. Default: On

  • Recipe Preview Prefab Blacklist Item prefab names whose unknown crafting recipe previews should never appear. This affects preview visibility only; unlocked recipes still appear normally. Default: empty

  • Piece Preview Prefab Blacklist Piece prefab names whose unknown build-piece previews should never appear. This affects preview visibility only; unlocked pieces still appear normally. Default: empty

  • Requirement Preview Prefab Blacklist Ingredient/resource prefab names that prevent unknown previews from appearing for any recipe or piece that requires them. This is useful for cheat, admin, or hidden resource prefabs. Default: SwordCheat, SledgeCheat

  • Unknown Name Text Text shown when a recipe, piece, material, or station name is hidden. Default: ???

  • Unknown Description Text Text shown when a recipe or piece description is hidden. Default: Not enough info

  • Unknown Requirement Text Text shown when an amount or station level is hidden. Default: ?

Client-Side Config

These options are not synced. Each player can choose their own client behavior.

  • Enable Admin Bypass Lets a verified host or server admin bypass recipe and build-piece masking, crafting restrictions, and placement restrictions on this client. Enabling it as a non-admin has no effect. Default: false

  • Group Unknown Recipe Previews Below Known Recipes Groups masked crafting recipe previews below actually unlocked recipes in crafting station recipe lists. Default: true

  • Show Recipe Unlock Notifications Shows or hides Valheim's recipe unlock popup. Default: true

  • Show Piece Unlock Notifications Shows or hides Valheim's build piece and dish unlock popup. Default: false

  • Show Skill Level Up Notification/Effect Shows or hides skill level-up messages and VFX/SFX, including the first time a skill reaches level 1. Default: true

Blacklist Format

All prefab blacklist entries are case-insensitive. Whitespace is trimmed, and a trailing (Clone) suffix is ignored.

Entries can be separated by commas, semicolons, pipes, or line breaks.

Output blacklists match the item or piece being previewed:

ArmorIronLegs, SwordIron
piece_workbench_ext1
piece_chest

The requirement blacklist matches ingredient/resource prefabs used by the recipe or piece:

SwordCheat, SledgeCheat

AAA Crafting Compatibility

Built-in support for AzuAntiArthriticCrafting activates automatically when that mod is installed. No AAA DLL changes or additional configuration are required.

  • Unknown recipes stay masked in AAA's list and grid layouts, including names, icons, output counts, and hover tooltips.
  • Hover tooltips return to their normal content when the recipe is learned or admin bypass becomes active.
  • Unknown recipes cannot be added to AAA's recipe tracker. Already tracked recipes are temporarily hidden while recipe knowledge is required, without removing the tracked entries.
  • Known recipes and recipe-less upgrade/socket targets retain their existing behavior. With Group Unknown Recipe Previews Below Known Recipes enabled, previews are grouped after known recipes across the entire filtered list before AAA splits it into pages, in both craft and upgrade views. AAA's original order is preserved within each group.
  • Grouping uses current recipe knowledge whenever a page is generated, including cached page changes. Disabling the option restores AAA's original order without changing its cache or filtering rules. Unsupported AAA pagination changes fall back to page-local grouping with a log warning.

This integration does not change AAA's search/filter rules and does not add built-in support for ZenUI's custom panels.

Compatibility API

VeiledRecipes patches Valheim's vanilla crafting and build-piece UI. Mods that draw their own recipe UI may need to call the public API and mask their own controls.

Use the ShouldMask* methods for display and action decisions. IsRecipeActuallyKnown and IsPieceActuallyKnown report player knowledge, while ShouldMaskRecipePair also considers the pair's target item so recipe-less upgrade and socket operations are handled correctly.

API type:

VeiledRecipes.VeiledRecipesCompat

Useful members include:

  • PluginGuid
  • PluginName
  • PluginVersion
  • Author
  • UnknownNameText
  • UnknownDescriptionText
  • UnknownRequirementText
  • GroupUnknownRecipePreviewsBelowKnownRecipes
  • IsAdminBypassActive
  • GetRecipeVisibilityState(recipe)
  • GetRecipeVisibilityState(player, recipe)
  • IsUnknownRecipePreview(recipe)
  • IsUnknownRecipePreview(player, recipe)
  • ShouldMaskRecipe(recipe)
  • ShouldMaskRecipe(player, recipe)
  • ShouldMaskRecipePair(pair)
  • ShouldMaskRecipePair(player, pair)
  • IsRecipeActuallyKnown(player, recipe)
  • ShouldMaskPiece(piece)
  • ShouldMaskPiece(player, piece)
  • IsPieceActuallyKnown(player, piece)
  • IsMaterialKnown(requirement)
  • IsMaterialKnown(player, requirement)
  • KnowsRecipeStationRequirement(recipe, quality)
  • KnowsRecipeStationRequirement(player, recipe, quality)
  • KnowsPieceStationRequirement(piece)
  • KnowsPieceStationRequirement(player, piece)
  • RegisterKnownPieceOverride(predicate) / UnregisterKnownPieceOverride(predicate)
  • RegisterKnownPiecePrefabOverride(prefabName) / UnregisterKnownPiecePrefabOverride(prefabName)
  • RegisterKnownPieceTypeOverride(typeName) / UnregisterKnownPieceTypeOverride(typeName)

Soft dependency GUID:

sighsorry.VeiledRecipes

Git

https://github.com/sighsorry1029/VeiledRecipes

Building

Normal Debug and Release builds do not copy the DLL into the live Valheim installation. To opt into local deployment, pass the DeployToGame MSBuild property:

dotnet build .\VeiledRecipes.csproj -c Debug -p:DeployToGame=true

Release builds still create the Thunderstore and Nexus zip packages normally.

The solution also builds the compatibility test runner. Run its managed regression checks explicitly:

dotnet build Tests/AaaCompatibility.Tests.csproj -c Release -t:Check

See Tests/README.md for optional AAA DLL contract checks and the separate in-game verification checklist.

CHANGELOG

Changelog

1.1.6

  • Added the server-synced Learn Materials From Opened Containers option, disabled by default. When enabled, items are discovered after a container's contents are displayed and when those contents change while open, without moving items or changing their quantities.
  • Uses Valheim's normal item discovery, including trophy records and personal raid eligibility. Station requirements still apply, and discoveries remain on the character after the option is turned off.
  • Added automated checks for container discovery, live configuration changes, and subscription cleanup when containers, players, or UI instances change.
  • Updated the package's BepInEx dependency to 5.4.2351.

1.1.5

  • Updated recipe discovery for Valheim 1.0.12 so ordinary and upgrader materials both participate while a crafting station is active, while requirement display and consumption remain station-specific.
  • Removed the optional admin bypass and its recurring permission probe. Vanilla global/no-cost unlocks continue to reveal recipes and pieces, and the legacy public IsAdminBypassActive member remains available but always reports false.
  • Simplified InfinityHammer compatibility by relying on the normal registered-piece boundary for runtime build-menu tools while preserving active command selections.
  • Verified the built-in AAA Crafting hook, tooltip, tracker, and pagination contracts against AAA Crafting 2.1.8 without adding a dependency or modifying its DLL.

1.1.4

  • Removed the light anti-aliased edge around veiled Hammer-tab piece icons by rendering only the black silhouette while veiled. Hover and click behavior remains intact, and known pieces without enough materials remain grey.

1.1.3

  • Fixed unknown piece icons appearing as insufficient-material grey in the Valheim 1.0.7 Hammer piece panel by adding the same black silhouette used in the description panel. Known pieces without enough materials remain grey.

1.1.2

  • Updated the mod for Valheim 1.0.7 client and dedicated-server assemblies while preserving configuration keys, saved station knowledge, public compatibility APIs, and optional mod boundaries.
  • Updated the vendored ServerSync integration for Valheim 1.0.7, including current administrator checks and pre-login buffering for the expanded login message set.
  • Added support for the new build UI and PieceTable availability structures, including masked icons, upgrade indicators, material tags, search terms, pooled button reuse, and runtime knowledge refreshes.
  • Added enhanced-upgrader resource, quality, and station-level handling to recipe discovery and requirement previews without changing the game's crafting, consumption, ownership, or authority paths.
  • Added managed build-UI regression checks and original client/server Mono compatibility checks for Harmony targets, runtime private access, recipe requirements, station knowledge, and build-piece categories.

1.1.1

  • Reduced redundant preview checks in the build HUD and recipe grouping, preserving recipe-less upgrade/socket targets and existing masking rules.
  • Removed the temporary requirement list allocated while updating masked crafting details, preserving quality, multicraft amounts, and cycling pages.
  • Ensured configuration saving behavior is restored after initialization or reload failures, and the configuration watcher is disposed even when saving during shutdown fails.
  • Simplified configuration registration while preserving existing keys, defaults, synchronization settings, and public compatibility APIs.
  • Added regression checks for partial AAA pagination patch failures, rollback, and continued tooltip masking. Included the test runner in the solution with an explicit Check target and expanded the in-game verification checklist.

1.1.0

  • Extended AAA Crafting preview grouping across the entire filtered recipe list before pagination, in both craft and upgrade tabs.
  • Preserved AAA's original order within each group and restored its normal ordering when the existing grouping option is disabled.
  • Re-evaluated recipe knowledge on cached page changes without modifying AAA's cache, while preserving recipe-less upgrade target handling.
  • Added pagination compatibility checks and regression tests. Unsupported AAA pagination changes fall back to page-local grouping without disabling masking.

1.0.9

  • Added automatic AAA Crafting compatibility for veiled recipe names, icons, output counts, and hover tooltips in list and grid layouts.
  • Restored open hover tooltips when recipes are learned or admin bypass changes, while preserving the original tooltip text.
  • Blocked tracking unknown recipes and temporarily hid previously tracked unknown entries without removing them.
  • Preserved AAA's grid layout when grouping unknown previews and added compatibility regression checks. Existing compatibility APIs remain available.

1.0.8

  • Kept loot-only and upgrade-only items unmasked and usable in owned-item upgrade/socket workflows when no enabled crafting recipe can be learned.
  • Kept runtime pieces without a regular PieceTable registration unmasked, including generated InfinityHammer blueprint proxies.
  • Separated actual recipe knowledge from masking/action policy and made RecipeDataPair compatibility checks target-item aware while preserving normal craft blocking.

1.0.7

  • Simplified recipe and build-piece visibility evaluation while reducing repeated known-state and InfinityHammer compatibility checks.
  • Refined Admin Bypass probing with cached lookups, separate denied/transient retry intervals, and periodic revalidation.
  • Removed unused localization template code and colocated notification policy with its patches.
  • Hardened release packaging with opt-in live deployment, validated manifest updates, and refreshed documentation.

1.0.6

  • Added AzuCraftyBoxes compatibility so unknown build-piece names and descriptions stay veiled after build HUD count updates.

1.0.5

  • Added a client-side Admin Bypass option that only takes effect for verified host/server admins.
  • Fixed InfinityHammer command selections losing their placement ghost and failing with missing-info behavior.
  • Improved config reload debounce and simplified piece station requirement UI handling.

1.0.4

  • Simplified internal recipe, piece, station, and override state into focused files.
  • Removed redundant custom version-handshake code in favor of ServerSync handling.
  • Removed nullable-disabled patch files and shared requirement UI masking helpers.

1.0.3

  • Fixed InfinityHammer active tool selections staying veiled and unusable.
  • Limited the InfinityHammer known-piece override to tool selections so normal unknown pieces remain veiled after selection.

1.0.2

  • Kept InfinityHammer admin menu tools unmasked by default.
  • Added type-based known-piece override API for compatibility mods.
  • Improved admin tool compatibility for ZoneSavior.

1.0.1

  • Added a synced option to require crafting station knowledge before unknown build-piece previews appear.
  • Added compat APIs for masking checks and known-piece overrides.
  • Added Homestead support so blueprint/tool pseudo-pieces can stay unmasked.

1.0.0

  • Initial Release