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

ZenSign

Signs automatically show the quantity of items nearby for a better overview of your supplies

Date uploaded a year ago
Version 0.3.23
Download link ZenDragon-ZenSign-0.3.23.zip
Downloads 113
Dependency string ZenDragon-ZenSign-0.3.23

This mod requires the following mods to function

ZenDragon-Zen_ModLib-1.11.13 icon
ZenDragon-Zen_ModLib

Shared code library used in all ZenMods.

Preferred version: 1.11.13

README

ZenSign

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

High performance, can deal with thousands of items in hundreds of containers and no loss of framerate. Does not poll or use colliders.

Under the hood this uses vanilla signs so that it is backwards compatible if you remove the mod all your signs don't suddenly vanish. Reinstall the mod and all your signs work just like before.

Full gamepad support.

Screenshot

Why use this?

I take a very different approach to hoard management than a lot of mods here. As such this mod is intentionally not making any effort to be compatible with mods which allow for crafting from container or auto stacking into chests. I have nothing against those mods. They are great and their authors are brilliant! However, I wanted to provide something different to the game. Another approach to hoard management:

I believe that managing the hoard logistics is a key component of what makes Valheim great. However, when we bypass that mechanism by crafting directly from containers we are accelerating the gameplay because 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.

Additionally, when items are moved around magically it can be confusing as to what items are pulled or pushed from where and a lot of automation rules need to be defined. To that effect I feel that the 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 even more compounded since a new player has no idea where his friends stashed the Coal, or Bones, or Wood, etc. Each player has their own logical organization that makes sense to them and while vanilla signs offer some help for organization 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 or used them all up the signs all 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 Solution

This mod fixes all that. Now vanilla signs have been enhanced to automatically update the quantity of the item assigned to them in the area nearby. The totals are updated in realtime. A new player can at a glance just check the wall to see how many bars of iron that their friends have put in the hoard while they were away. They can then tap the sign to highlight which chest contains the iron bars. The camera will swiftly pan towards the nearest chest and all of the chests in the area that contain iron will be highlighted for easy access.

My hope is that his will provide a more immersive and enjoyable way for individuals to have an easy overview of all items in their hoard in single player mode while also accentuate 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 as normal, just interact to assign text.

If you want to reset a sign back to text mode just assign the same item twice. It will then remove the item and behave as a standard 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, default middle mouse button. This functionality can also be disabled in the config file if you don't want it.

NOTE: 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.

Extend functionality with additional ZenMods

  • ZenUseItem: Assign items directly from your inventory without using 1-8 hotkey.
  • ZenRedecorate: Easily move signs around.
  • ZenHoverItem: Preview container contents without opening the container.
  • 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.
  • ZenTargeting: Not needed, but target lock is awesome! :)

(Check out the whole collection really, lots of good stuff)

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: ZenMapPin
Ignored Items = ZenMapPin

## [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.8.1

  • fix: when swapping items on ItemStands in multiplayer the signs totals were not synchronized for all players for that item.
  • added pet rock's hat to the sign counts.

v1.8.0

  • integrated scanning beehives and itemstands for contents. (still working on ArmorStands)
  • fix: when searching for fuel in containers, the wards were not being checked correctly so some containers could be highlighted when they shouldn't have been.
  • recompile for Zen.ModLib v1.11.13

v1.7.1

  • fix the text in the Compendium explaining how to search from inventory.

v1.7.0

  • add help info to Compendium
  • recompile for Zen.ModLib v1.10.0

v1.6.0

  • add feature: track static resource pieces such as wood stacks, stone piles, and coin piles. For example, Now when you add a sign to track coins it will also include the nearby piles of coins in the displayed total.
  • add config: Ignored Pieces, list any pieces that will not be used for tracking.

v1.5.1

  • fix: certain edge cases when searching for fuel for a fireplace was unable to find the fuel in nearby containers.

v1.5.0

  • add configs for setting the crafting station and crafting materials for building signs. Default is vanilla values.

v1.4.1

  • removed the CraftyCarts incompatibility flag as CraftyCarts v3.1.11 fixed the incompatible code.

v1.4.0

  • update for Zen.ModLib v1.5.0

v1.3.9

  • add Portuguese_Brazilian translation

v1.3.8

  • add translation for:
    • Polish
    • Russian

v1.3.7

  • cosmetics:
  • added an outline to the sign text and changed the default text color to off-white.
  • reset your text color config to see the off-white color instead of bright white.

v1.3.6

  • add German translations

v1.3.5

  • update for Valheim v0.221.4, Call to Arms
  • relaxed the config option Item Display Style to be end-user configurable, not admin only.

v1.3.4

  • moved highlight color config to Zen.ModLib
  • update to Zen.ModLib v1.2.5

v1.3.3

  • improved responsiveness when middle-clicking a recipe ingredient for search.

v1.3.2

  • refinement of the prev update. Can now also search from the build piece selection menu.

v1.3.1

  • add feature: search for build item ingredients from actively selected build peace. Open inventory while a build piece is on your cursor and middle-click a recipe ingredient from build HUD ingredients.

v1.3.0

  • bugfixes
  • updated for Zen.ModLib v1.2.0
  • recompile for BepInEx v5.4.2332
  • recompile for JVL v2.26.0

v1.2.14

  • Add KeyHint for container search in SignUI

v1.2.13

  • bugfix: nullref error when search results are destroyed while highlighted.

v1.2.12

  • update readme, no code changes.

v1.2.11

  • Cleaned up configs: removed unsupported gamepad button customization. No features were removed, just configs that were no longer needed/supported.
  • update to Zen.ModLib v1.1.24

v1.2.10

  • move the piece highlighting code into Zen.ModLib so that other ZenMods can use it like ZenDistribute.

v1.2.9

  • fix: ensure the mouse cursor is inside the correct area before doing a middle-click search.

v1.2.8

  • add feature: search for crafting requirements by middle-clicking them. nearby chests will highlight.

v1.2.7

  • compatibility fix for "Missing Pieces - Wooden Drawer"

v1.2.6

  • code cleanup, minor optimizations, no major functional changes.
  • flagged as incompatible with CraftyCarts because the carts mod alters the load timing of containers in such a way that it creates a race condition. This results in indeterministic calculations between containers and signs when moving through an area. This results in signs not always showing the correct totals.

v1.2.5

  • update for compatibility with ZenRaids v0.3.6, ignore alt interaction press on fireplaces when searching for fuel.

v1.2.4

  • update for Zen.ModLib v1.1.0

v1.2.3

  • recompile for compatibility with internal changes to Zen.ModLib

v1.2.2

  • fixed config sync

v1.2.1

  • removed BepInEx from dependency, Zen.ModLib handles it.

v1.2.0

  • Refactor to use Zen.ModLib
  • Config option for outline color
  • Config option to set the default mode of the camera focus toggle key.

v1.1.1

  • add outline to sign icons. looks nicer.

v1.1.0

  • improved sign rendering to properly handle fog and mist. no more glow in the dark sign icons that don't blend correctly with the atmosphere.

v1.0.15

  • add config option to bypass search camera autofocus when key is held down, default LeftShift

v1.0.14

  • update readme and description, no code changes.

v1.0.13

  • update logging and configs subsystem

v1.0.12

  • UPDATE FOR VALHEIM v0.220.3

v1.0.11

  • fix nullref when closing build cursor

v1.0.10

  • fix nullref when closing build cursor
  • ERROR IN UPDATE: signs do not init, use v1.0.11 instead.

v1.0.9

  • Fixed: when vanilla and modded players were in the same area it would sometimes cause signs to become unresponsive to new item assignment.

v1.0.8

  • Bugfixes
    • Sometimes smashing a chest would not update signs.
    • Can play with friends who don't have the mod installed, like xbox clients.
    • Misc optimizations

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