You are viewing a potentially older version of this package. View all versions.
ZenDragon-ZenSign-1.0.6 icon

ZenSign

Assign an item to a sign and see quantity available in nearby containers. Interacting with the sign highlights the containers with that item. Organize your hoard!

Date uploaded 2 days ago
Version 1.0.6
Download link ZenDragon-ZenSign-1.0.6.zip
Downloads 68
Dependency string ZenDragon-ZenSign-1.0.6

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
ValheimModding-Jotunn-2.23.2 icon
ValheimModding-Jotunn

Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.

Preferred version: 2.23.2

README

ZenSign

Show the quantity of items in the containers near the signs.

Full gamepad support.

High performance real time updates can deal with thousands of items in hundreds of containers with no loss of framerate.

Organize Your Hoard

Example Hoard

Containers Highlight When Interacting With Signs

Highlight Chests

Why use this?

Vanilla container sizes and manual item movement were well-thought-out intentional features created by the developers. Yet, there was a few shortcomings to this approach as by default it quickly runs into a problem of finding anything. In multiplayer the problem is compounded since a new player has no idea where their friends stashed the item they are looking for. Each player has their own logical organization that makes sense to them but may not make sense to anyone else.

Vanilla signs offer some help for organization via textual hints, but they quickly fall apart when looking for a very specific item in a hoard of hundreds of containers that someone else organized. Furthermore, if someone moved the item to a different container then the signs would need to be manually updated to reflect the new supply status. As such there is no automated way to quickly get a Warehouse Overview of your total supplies available in a specific location.

The common solutions to this problem have been to automate the process by using mods to teleport items into your hands via crafting directly from containers. However, this can shorten the gameplay loop since it bypasses the logistical needs of well planned organization and warehouse construction. This is like having the dots in the Pac-Man maze automatically come to you. Easier, but less interactive.

Manually managing the hoard logistics is a key component of what makes Valheim great. When we bypass that mechanism by crafting directly from containers we are accelerating the gameplay loop. Hoard size should be a function of logistical space. I.e. if you have a giant stash of gear you should need to build a giant room to contain it, that's part of the progression.

The Solution

Vanilla signs have been augmented to enable the player to assign an item to them. The item's icon and quantity available in all the containers in the area is displayed on the sign. The totals are updated in realtime. A player can glance at the wall to see how many bars of iron their friends have put into the hoard while they were away. They can tap the sign to highlight which chests contain the iron bars. The camera will swiftly pan towards the nearest chest and all the chests in the area that contain iron will be highlighted for easy access.

My hope is that this will provide a way to stay close to vanilla mechanics while providing an immersive and enjoyable way for individuals to have an easy overview of all items in their hoard in single player mode while also accentuating a collaborative multiplayer experience so that players can more easily work together.

How To Use

Point at a sign and use the 1-8 hotkey to assign an item to a sign. The total will be displayed next to the item icon on that sign. Interact with a sign that has an item assigned to it to highlight all containers nearby that have that item in them.

Switch the sign to track a different item by just assigning a new item to it.

Standard text sign functionality still works. Interact to assign text.

If you want to reset a sign back to text mode then assign any item to it twice. The sign will reset to a vanilla text sign.

You can search for items in containers if you have the item in your inventory already. This makes it easier to find containers to stash existing items in case there is no sign nearby. Just press the hotkey while pointing at the item in your inventory. Hotkey is defined in config file. The default is the middle mouse button. This functionality can also be disabled in the config file if you don't want it.

When fueling a light source if you do not have the fuel in your inventory it will highlight the nearest container to show you where the fuel is. This is to simply make it easier to find fuel in the dark.

Carts and ships are not included in the totals. Unload cargo into your warehouse to see the totals reflected on the signs.

Caveats

Since the core reason for this mod's existence is to encourage better hoard management, and a large part of this game's core design and progression is focused on manual construction and organization of your castle supplies, there are no plans to support issues of compatibility with mods which facilitate automated crafting from containers or stacking into chests. Instead, this mod provides an intuitive way to organize and retrieve your resources manually. I have nothing against mods which facilitate automation. They are great and their authors are brilliant! However, I wanted to provide another way to approach the issue of hoard management that stayed true to the vanilla gameplay mechanics coupled with enhanced organizational tools.

Extend Functionality with Additional ZenMods

  • ZenRedecorate: Move chests around without destroying them.
  • ZenHoverItem: Preview container contents without opening them.
  • ZenItemStand: Include Armor Stands and Item Stands in the sign's calculations and make them behave like containers.
  • ZenBeehive: Include Beehives in the sign's calculations and make them behave like containers.
  • ZenRecycle: Obliterators return a randomly selected ingredient of the item.
  • ZenUseItem: Assign items to signs directly from your inventory without using 1-8 hotkey.
  • ZenTargeting: Not needed, but target lock is awesome! :)

Even more!

Try them all out together! Check out ZenModpack Core

~ OR ~

Are you connecting to vanilla servers? Check out ZenModpack Vanilla

Enjoy!

Sample Config File

## Settings file was created by plugin ZenSign v0.3.21
## Plugin GUID: ZenDragon.ZenSign

[Fuel]

## [Admin] Range to search when sourcing fuel from containers for lights.
# Setting type: Single
# Default value: 25
# Acceptable value range: From 0 to 50
Fuel Search Range = 25

[General]

## [Admin] Radius of the sign to search for containers.
# Setting type: Single
# Default value: 20
# Acceptable value range: From 1 to 25
Sign Search Radius = 20

## The color of sign text.  White is selected as the default because it's easier to see in the dark.
## NOTE: This is only what you see.  Everyone else sees the default color. (Vanilla: Black)
# Setting type: Color
# Default value: FFFFFFFF
Sign Text Color = FFFFFFFF

## [Admin] Comma separated list of item prefab names that are not assignable to signs.
# Setting type: StringList
# Default value: 
Ignored Items = 

## [Admin] Number of seconds that highlighted objects will persist.  Set to 0 to disable highlighting.
# Setting type: Single
# Default value: 10
# Acceptable value range: From 0 to 60
Highlight Duration = 10

## [Admin] How many times per second the highlighted objects will blink.  Set to 0 to disable blinking.
# Setting type: Single
# Default value: 2
# Acceptable value range: From 0 to 10
Highlight Blinks/Second = 2

## [Admin] Only allow stackable items to be assigned to Signs. Otherwise any item can be assigned.
# Setting type: Boolean
# Default value: false
Stackable Items Only = false

[Input]

## [Admin] Remove Rich Text formatting tags from sign text.  This prevents <color> tag changes, but also prevents abuse of <size> tags on multiplayer servers.
# Setting type: Boolean
# Default value: true
No Rich Text Tags = true

## [Admin] Search directly from inventory via hotkeys enabled / disable.
## Note: Admin can always search from inventory
# Setting type: Boolean
# Default value: true
Inventory Search = true

## [Admin] Keyboard or mouse button to press to search for an item from the inventory UI.
# Setting type: KeyCode
# Default value: Mouse2
# Acceptable values: None, Backspace, Tab, Clear, Return, Pause, Escape, Space, Exclaim, DoubleQuote, Hash, Dollar, Percent, Ampersand, Quote, LeftParen, RightParen, Asterisk, Plus, Comma, Minus, Period, Slash, Alpha0, Alpha1, Alpha2, Alpha3, Alpha4, Alpha5, Alpha6, Alpha7, Alpha8, Alpha9, Colon, Semicolon, Less, Equals, Greater, Question, At, LeftBracket, Backslash, RightBracket, Caret, Underscore, BackQuote, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, LeftCurlyBracket, Pipe, RightCurlyBracket, Tilde, Delete, Keypad0, Keypad1, Keypad2, Keypad3, Keypad4, Keypad5, Keypad6, Keypad7, Keypad8, Keypad9, KeypadPeriod, KeypadDivide, KeypadMultiply, KeypadMinus, KeypadPlus, KeypadEnter, KeypadEquals, UpArrow, DownArrow, RightArrow, LeftArrow, Insert, Home, End, PageUp, PageDown, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, Numlock, CapsLock, ScrollLock, RightShift, LeftShift, RightControl, LeftControl, RightAlt, LeftAlt, RightMeta, RightCommand, RightApple, LeftMeta, LeftCommand, LeftApple, LeftWindows, RightWindows, AltGr, Help, Print, SysReq, Break, Menu, Mouse0, Mouse1, Mouse2, Mouse3, Mouse4, Mouse5, Mouse6, JoystickButton0, JoystickButton1, JoystickButton2, JoystickButton3, JoystickButton4, JoystickButton5, JoystickButton6, JoystickButton7, JoystickButton8, JoystickButton9, JoystickButton10, JoystickButton11, JoystickButton12, JoystickButton13, JoystickButton14, JoystickButton15, JoystickButton16, JoystickButton17, JoystickButton18, JoystickButton19, Joystick1Button0, Joystick1Button1, Joystick1Button2, Joystick1Button3, Joystick1Button4, Joystick1Button5, Joystick1Button6, Joystick1Button7, Joystick1Button8, Joystick1Button9, Joystick1Button10, Joystick1Button11, Joystick1Button12, Joystick1Button13, Joystick1Button14, Joystick1Button15, Joystick1Button16, Joystick1Button17, Joystick1Button18, Joystick1Button19, Joystick2Button0, Joystick2Button1, Joystick2Button2, Joystick2Button3, Joystick2Button4, Joystick2Button5, Joystick2Button6, Joystick2Button7, Joystick2Button8, Joystick2Button9, Joystick2Button10, Joystick2Button11, Joystick2Button12, Joystick2Button13, Joystick2Button14, Joystick2Button15, Joystick2Button16, Joystick2Button17, Joystick2Button18, Joystick2Button19, Joystick3Button0, Joystick3Button1, Joystick3Button2, Joystick3Button3, Joystick3Button4, Joystick3Button5, Joystick3Button6, Joystick3Button7, Joystick3Button8, Joystick3Button9, Joystick3Button10, Joystick3Button11, Joystick3Button12, Joystick3Button13, Joystick3Button14, Joystick3Button15, Joystick3Button16, Joystick3Button17, Joystick3Button18, Joystick3Button19, Joystick4Button0, Joystick4Button1, Joystick4Button2, Joystick4Button3, Joystick4Button4, Joystick4Button5, Joystick4Button6, Joystick4Button7, Joystick4Button8, Joystick4Button9, Joystick4Button10, Joystick4Button11, Joystick4Button12, Joystick4Button13, Joystick4Button14, Joystick4Button15, Joystick4Button16, Joystick4Button17, Joystick4Button18, Joystick4Button19, Joystick5Button0, Joystick5Button1, Joystick5Button2, Joystick5Button3, Joystick5Button4, Joystick5Button5, Joystick5Button6, Joystick5Button7, Joystick5Button8, Joystick5Button9, Joystick5Button10, Joystick5Button11, Joystick5Button12, Joystick5Button13, Joystick5Button14, Joystick5Button15, Joystick5Button16, Joystick5Button17, Joystick5Button18, Joystick5Button19, Joystick6Button0, Joystick6Button1, Joystick6Button2, Joystick6Button3, Joystick6Button4, Joystick6Button5, Joystick6Button6, Joystick6Button7, Joystick6Button8, Joystick6Button9, Joystick6Button10, Joystick6Button11, Joystick6Button12, Joystick6Button13, Joystick6Button14, Joystick6Button15, Joystick6Button16, Joystick6Button17, Joystick6Button18, Joystick6Button19, Joystick7Button0, Joystick7Button1, Joystick7Button2, Joystick7Button3, Joystick7Button4, Joystick7Button5, Joystick7Button6, Joystick7Button7, Joystick7Button8, Joystick7Button9, Joystick7Button10, Joystick7Button11, Joystick7Button12, Joystick7Button13, Joystick7Button14, Joystick7Button15, Joystick7Button16, Joystick7Button17, Joystick7Button18, Joystick7Button19, Joystick8Button0, Joystick8Button1, Joystick8Button2, Joystick8Button3, Joystick8Button4, Joystick8Button5, Joystick8Button6, Joystick8Button7, Joystick8Button8, Joystick8Button9, Joystick8Button10, Joystick8Button11, Joystick8Button12, Joystick8Button13, Joystick8Button14, Joystick8Button15, Joystick8Button16, Joystick8Button17, Joystick8Button18, Joystick8Button19
Inventory Search - Keyboard/Mouse = Mouse2

## [Admin] Gamepad button to press to search for an item from the inventory UI.
# Setting type: GamepadInput
# Default value: Select
# Acceptable values: None, DPadLeft, DPadRight, DPadDown, DPadUp, FaceButtonA, FaceButtonB, FaceButtonX, FaceButtonY, StickLHorizontal, StickLVertical, StickLButton, StickRHorizontal, StickRVertical, StickRButton, BumperL, BumperR, TriggerL, TriggerR, Select, Start, DualShockTouchpad, StickRUp, StickRDown, StickRLeft, StickRRight, StickLUp, StickLDown, StickLLeft, StickLRight, StickR, StickL
Inventory Search - Gamepad = Select

Like My Mods? Donations Welcome

Bitcoin: bc1q34lrc82dp73jhv9ylefz0gvmeqfn96e938p4pf

Donation QR

CHANGELOG

v1.0.7

  • Relax the config permissions if connecting to vanilla server.

v1.0.6

  • Fix shaders for Vulkan support.

v1.0.5

  • Update README, no code change.

v1.0.4

  • Removed compatibility restrictions.

v1.0.3

  • Optimize outline rendering to compute once on startup instead of every time they are enabled. (No performance impact on gameplay, I just don't like to waste CPU cycles)

v1.0.2

  • fixed compatibility issue with ZenMap.

v1.0.1

  • minor tweaks

v1.0.0

  • version number correction for release

v0.3.25

  • initial release