You are viewing a potentially older version of this package. View all versions.
KadrioS-RecipePinner-1.2.1 icon

RecipePinner

Stop running back and forth! Pin any recipe or structure to your HUD. Tracks materials in your inventory, with optional scanning for nearby chests.

Date uploaded 2 days ago
Version 1.2.1
Download link KadrioS-RecipePinner-1.2.1.zip
Downloads 335
Dependency string KadrioS-RecipePinner-1.2.1

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2202 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured and includes unstripped Unity DLLs.

Preferred version: 5.4.2202

README

๐Ÿ“Œ Recipe Pinner

Stop running back and forth between chests just to check how much Iron you need!

Recipe Pinner is a quality-of-life mod that lets you "pin" any crafting recipe to your HUD. It tracks materials in your inventory (and nearby chests!) in real-time, helping you focus on crafting, not memorizing numbers.

โš ๏ธ IMPORTANT FOR v1.2.0 UPDATE: The configuration structure has been heavily overhauled. Please delete your old com.Kadrio.RecipePinner.cfg file before launching the game to let a fresh config generate!


๐ŸŒŸ Key Features

  • ๐Ÿ›๏ธ Master Gathering List (NEW): Press F8 to view a combined total of all required materials across ALL your pinned recipes! Auto-opens when you pin multiple items and smartly aligns next to open chests for effortless material gathering.
  • ๐Ÿšฆ Craft Readiness Indicator (NEW): A sleek color-coded accent bar next to each pin tells you instantly if you can craft it (Green = Ready, Red = Missing materials).
  • ๐Ÿ“ Pin & Forget: Hover over any recipe (Crafting Table, Cauldron) or Construction Piece (Hammer) and press Middle Mouse to pin it. Automatically unpins when you craft or build the item!
  • ๐Ÿ“ฆ Smart Chest Scanner: Automatically counts items in nearby chests. (You must enable it in the configuration to use it.)
    • Green Text: You have enough in your Inventory.
    • Yellow Text: You have enough combined (Inventory + Nearby Chests).
    • Red Text: Missing materials. Time to farm!
  • ๐Ÿ”„ Dynamic UI Repositioning: Pins intelligently slide to the bottom right when you open your inventory or a chest, keeping your screen clutter-free.
  • ๐Ÿ“„ Pagination System: Pinned too many recipes? No problem! The list automatically splits into pages with stylish diamond-shaped indicators. You can navigate between pages by pressing the ALT key.
  • ๐ŸŽจ Fully Customizable: Change colors, font sizes, positions, opacity, and pins per page via config.

๐Ÿ–ผ๏ธ Mod Photos & Layouts (Click to Expand)

The mod supports 4 different layout modes to fit your screen perfectly. (Note: UI automatically shifts to Bottom Right when inventory/chests are opened!)

1. Auto-Detect Mode

This is the default setting. If you are using the MyLittleUI mod, this setting automatically switches the pins to Horizontal Mode; if you are not using it, it switches them to Vertical Mode.

2. Vertical Mode (Standard)

Placed under the minimap. Good for vanilla UI. Vertical Layout Screenshot

3. Horizontal Mode (Map Side)

Perfect if you use MyLittleUI. Places pins to the left of the map. Horizontal Layout Screenshot

4. Horizontal Mode (Bottom Right)

Keeps the top screen clean. Places pins near your ammo/hotbar. Bottom Right Horizontal Screenshot

If you don't like these 3 layouts, you can set your own layout using Configuration Manager.

Using MyLittleUI

If you're using the MyLittleUI mod, it automatically switches to Horizontal Mode to prevent your pins from overlapping with the weather panel and effects Using MyLittleUI

When Inventory Open

If you open the inventory, the pins automatically switch to Bottom Right Horizontal mode. This way, you can still see your pins while the inventory is open. When you close the inventory, they return to their original state. When Inventory Open

Gathering List (When Chest Open)

If you pin multiple items, this is a list showing the total required materials. When the chest is opened, it appears next to the chest panel. It can be closed using a button. Gathering List

Chest Scanner

If you enable the Chest Scanner setting in the config, it will scan nearby chests. If you donโ€™t have enough items in your inventory but the chest contains enough, the numbers will turn yellow. Chest Scanner

When Sailing

If you're sailing, your pins will automatically switch to Bottom Right Horizontal Mode When Sailing


โš™๏ธ Configuration

I strongly recommend using Configuration Manager to edit settings in-game (Press F1).

You can tweak:

  • Colors (Hex & RGBA for Headers, Missing Mats, Accent Bars)
  • Controls
  • UI Position (X, Y coordinates) & Scales
  • Pagination Settings (Pins per Page, Dot Size, Spacing)
  • Fonts and Opacity
  • Gathering List Automation

Config Menu


๐Ÿ”ง Installation

  1. Download and install BepInEx.
  2. Extract the RecipePinner.dll and RecipePinner_languages folder into Valheim/BepInEx/plugins/.
  3. Done!

โš ๏ธ IMPORTANT: Ensure the RecipePinner_languages folder is next to the RecipePinner.dll file for translations to work.


๐ŸŽฎ Controls

Default keys (Changeable in Config):

Action Key
Pin Recipe / Add Count (+1) Middle Mouse Button
Unpin / Decrease Count (-1) Shift + Middle Mouse Button
Cycle Pages Left Alt
Clear All Pins P
Show/Hide Overlay F7
Toggle Gathering List F8

๐ŸŒ Supported Languages

Auto-detected based on your game language.

๐Ÿ‡บ๐Ÿ‡ธ English, ๐Ÿ‡น๐Ÿ‡ท Turkish, ๐Ÿ‡ฉ๐Ÿ‡ช German, ๐Ÿ‡ท๐Ÿ‡บ Russian, ๐Ÿ‡ช๐Ÿ‡ธ Spanish, ๐Ÿ‡ซ๐Ÿ‡ท French, ๐Ÿ‡ง๐Ÿ‡ท Portuguese, ๐Ÿ‡ต๐Ÿ‡ฑ Polish, ๐Ÿ‡จ๐Ÿ‡ณ Chinese, ๐Ÿ‡ฏ๐Ÿ‡ต Japanese, ๐Ÿ‡ฐ๐Ÿ‡ท Korean, ๐Ÿ‡ฎ๐Ÿ‡น Italian, ๐Ÿ‡บ๐Ÿ‡ฆ Ukrainian.

โš ๏ธ Note: If you can't find your language in the app, please let me know so I can add it in the next update; or you can add it yourself:

๐ŸŒ How to Add Your Language

  1. Open your Valheim folder and navigate to: BepInEx/plugins/RecipePinner/RecipePinner_languages/
  2. Create a new JSON file and name it YourLanguage.json (e.g., Italian.json).
  3. Open the file with a text editor (like Notepad) and paste this template:
    {
      "pinned": "Recipe Pinned!",
      "unpinned": "Pin Removed",
      "list_full": "List Full!",
      "added_more": "Added More: {0}x",
      "decreased": "Decreased: {0}x",
      "cleared": "Pinned Recipes Cleared",
      "max_level": "Max Level Reached",
      "no_upgrade_cost": "No upgrade cost found",
      "gathering_title": "GATHERING LIST",
      "gathering_opened": "Gathering List Opened",
      "gathering_closed": "Gathering List Closed",
      "gathering_empty": "No Recipes Pinned",
      "gathering_hint": "Open/Close: {0}"
    }
    
  4. Translate the sentences on the right side.
    • Important: Do not change the {0}x or {0} parts, as they show the numbers and hotkeys!
  5. Save the file.
  6. To use it: Open the mod settings (F1) or config file, and set LanguageOverride to your file name (e.g., Italian).

๐Ÿ”ฎ Future Plans & Roadmap

Iโ€™m actively thinking about how I can make this mode even better! Here are some features Iโ€™m considering adding in future updates:

  • ๐Ÿ“ฆ Visual Chest Highlighting: If the Chest Scanner is enabled, visually highlight or mark the specific chests in your base that contain the pinned materials, so you know exactly which box to open!
  • VNEI Compatibility

Mirror

NexusMods


๐Ÿ“ž Support & Feedback

Found a bug? Have a feature request? Ping me on Discord: kadrio or create an Issue on GitHub.

Enjoy crafting! ๐Ÿ› ๏ธ


CHANGELOG

1.2.1

  • README.md fixed only. No need to delete config file.

1.2.0

  • โš ๏ธ IMPORTANT: The configuration structure has been heavily overhauled. Please delete your old com.Kadrio.RecipePinner.cfg file before launching the game!
  • ๐ŸŒ LOCALIZATION UPDATE: Added new translation keys for the Gathering List (gathering_title, gathering_opened, gathering_closed, gathering_empty, gathering_hint). The 13 default languages are already updated, but if you use a custom language file, please update it!
  • Added a new 'Gathering List' panel (Toggle: F8) that aggregates total required materials across all pinned recipes.
  • Added automatic visibility logic for the Gathering List (auto-opens when 2+ recipes are pinned, auto-closes when below 2).
  • Added a 'Craft Readiness Indicator' to pins, displaying a colored accent bar (green = ready to craft, red = missing materials).
  • Added Auto-Unpin functionality that automatically removes recipes from the screen after crafting or building them.
  • Inventory/Chest Awareness: When opening your inventory or a chest, the pins will now automatically temporarily switch to the existing 'Bottom Right Horizontal' layout so they don't block the screen.
  • The Gathering List will also reposition itself next to the chest panel for easy comparison.
  • Implemented real-time live-updating for the Gathering List while interacting with chest contents.
  • Improved UI aesthetics by dynamically aligning all pin heights on each page to match the longest panel, preventing jagged layouts and ensuring a clean, uniform look.
  • Optimized overall performance by significantly reducing unnecessary UI rebuilds and per-frame calls.
  • Improved general codebase stability through extensive cleanup.

1.1.4

  • In the 1.1.3 update, I put in an old DLL lol (sorry).

1.1.3

  • Fixed upgrade recipes (โ˜…3, โ˜…4) showing incorrect material amounts โ€” now correctly calculates costs based on upgrade level.
  • Optimized container scanning with a movement cooldown to prevent excessive scans.
  • Reduced memory allocations by reusing container snapshot buffers instead of creating new lists each scan.
  • Improved dictionary access efficiency across TogglePin, AutoUnpinHook, and AutoUnpinBuildHook using TryGetValue pattern.
  • Removed unused legacy PinnedRecipe.cs file.

1.1.2

  • Added full support for tracking Item Upgrades (pinning directly from the Upgrade tab).
  • Added smart auto-unpin logic to correctly distinguish between crafting new items and upgrading existing ones.
  • Added new localization keys (max_level, no_upgrade_cost) for upgrade notifications.
  • Optimized internal logic with reflection caching to improve performance and reduce overhead.
  • Note: Users with custom language files must update them to include new keys to avoid missing text.

1.1.1

  • Updated installation instructions in README. No code changes.

1.1.0

  • Added pagination system to handle large numbers of pins (configurable 'PinsPerPage').
  • Added visual pagination indicators (diamond dots) with configurable size, spacing, and opacity.
  • Added 'Cycle Page' hotkey (Default: LeftAlt) to switch between pages.
  • Fixed critical issue where auto-unpinning did not work for construction/hammer placement (added Player.PlacePiece hook).
  • Fixed 'Save path invalid' and 'ObjectDB null' warnings in logs during startup/shutdown.
  • Optimized UI rendering with dirty-check mechanism to improve performance.
  • Updated configuration handling.

1.0.2

  • Fixed an issue where using the Middle Mouse Button to remove/deconstruct build pieces would accidentally pin the recipe. Pinning is now restricted to hovering over HUD icons only.

1.0.1

  • Fixed README images

1.0.0

  • Initial Release