You are viewing a potentially older version of this package. View all versions.
VKTR-VKTR_DiamondHUD-1.1.5 icon

VKTR DiamondHUD

A diamond HUD for playing Valheim on a controller. Dedicated slots for melee, ranged, consumables and tools, no hotbar micromanagement in a fight, spears that stack like ammo, macros for sword and shield, and re-equip your lost gear while moving.

By VKTR
Date uploaded 3 weeks ago
Version 1.1.5
Download link VKTR-VKTR_DiamondHUD-1.1.5.zip
Downloads 43
Dependency string VKTR-VKTR_DiamondHUD-1.1.5

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

VKTR_DiamondHUD

My friends have been playing with a controller for years. After trying it myself I was shocked at how much it holds you back compared to mouse and keyboard. Moving through the hotbar is a minigame of its own, and not being able to move with the inventory open adds a lot of small annoyances. This mod tries to give controller players the same freedom of action they'd get on m&k.


What it does

It replaces the vanilla hotbar with four slots arranged in a diamond and maps them to the d-pad. Each direction holds one kind of item. Tapping a direction moves the highlight inside that category; holding it runs a shortcut. Buttons your gamepad layout leaves unused go to the things vanilla has no room for: your light, your shield, your belt items, and your armour after a death.

Input What it does
d-pad up cycle weapons — melee and magic
d-pad left cycle bows, crossbows and spears
d-pad right cycle food, meads and bombs
d-pad down cycle tools
hold d-pad left turn your light on or off
hold d-pad right jump to the first food or mead, skipping any bombs
hold d-pad down sit down or stand up
heavy attack change ammo, or change bait with the rod out
X (Classic) / B (Alt1, Alt2) eat or drink what the food slot is showing
guard + X equip or unequip your shield
guard + Y sheathe your weapons, or draw them again
both left shoulder buttons cycle your belt items, or re-equip your armour after a death
tap the sheath button (Alt1, Alt2) crouch
L3 + R3 (Classic) forsaken power

Layout = Auto reads the gamepad layout you picked in the game's own Controls settings and places the shortcuts on buttons that layout leaves free. Change layout while playing and the mod follows without a restart.


Your new HUD

The four slots

Slot What's in it Reads from
up weapons — melee and magic your hotbar
left bows, crossbows, spears your hotbar
right food, meads, bombs your hotbar
down tools your whole inventory

In more detail:

  • up — swords, axes, clubs, knives, atgeirs, two-handers and every staff. Anything you swing or cast. The Abyssal harpoon is here too, because it isn't thrown away.
  • left — bows, crossbows and throwing spears: everything you use at range.
  • right — food, meads and bombs.
  • down — hammer, hoe, cultivator, pickaxe, fishing rod, serving tray, and any one-handed axe that isn't on your hotbar. Anything that opens a build menu is treated as a tool.

A one-handed axe is the only item that can go either way. On the hotbar it counts as a weapon and appears in the weapon slot; in your inventory it counts as a tool and appears in the tool slot. Move it and it switches sides. There's nothing to configure.

Where each slot looks

The top, left and right slots only read the hotbar row. What you put on the hotbar is what you can reach during a fight, and that's a choice you make beforehand, so those three slots stay as short as you keep them.

The tool slot and the ammo window read your whole inventory instead. A pickaxe isn't worth a hotbar slot and neither are arrows, but you still want both within reach.

Some things have their own shortcut and take no slot at all: torches and lanterns, shields, belt items, the Dverger circlet, ammo, and the spear that refills the left slot after a throw. Those are all read from your whole inventory as well.

The fifth window

A small window next to the diamond changes with what you're holding:

  • shield equipped — it shows the shield
  • bow, crossbow or fishing rod out — it shows your ammo and how much is left, and heavy attack changes it
  • neither — the window is hidden

The centre of the diamond

Whatever is in your utility slot is shown in the middle: Megingjord, Wishbone, or anything else that goes there. The mod also removes that item's icon from the status bar, since the diamond already shows it.

Display options

Immersive mode is on by default. The diamond fades out after three seconds without input and comes back as soon as you press something. It stays visible during combat. The one exception to the fade is a lit torch: its slot stays on screen, because the durability bar on it is how much light you have left. F1 turns immersive mode on and off.

Biome colours are on by default too. The slot frames take their colour from where you are — green in the Meadows, gold in the Plains, deep red in the Ashlands. You can set a colour per biome or turn the whole thing off.

Repositioned status window is on by default. The mod takes the vanilla row of status icons out from under the minimap and puts it next to the forsaken power, at 70% size, filling left to right. The bottom of the screen is where most of your character's information already is, so moving the icons next to the health bar means you have to move your eyes less to check a poison timer mid-fight.


Features

Taps and holds

Each d-pad direction does two things. A tap moves the highlight in that slot, and a hold runs one shortcut:

  • hold left — your light
  • hold right — jump to the first food or mead, skipping any bombs
  • hold down — sit

Up has no hold, so you can keep it pressed to scroll through your weapons. A hold takes one second by default, and DPadHoldSeconds = 0 disables all three, which gives you plain scrolling on every direction.

The remaining shortcuts sit on guard, a button you're usually already holding when a fight goes wrong: guard + X for your shield, guard + Y to sheathe, both left shoulder buttons for belt items and armour. Holding guard also blocks weapon and tool swaps while leaving food and ammo available, so you can't change weapon by accident mid-block.

Light

Hold d-pad left to turn your light on. If you're carrying a Dverger circlet it goes on your head and both hands stay free. Otherwise you get a torch or a lantern, and the mod keeps the weapon you were holding:

  • sword and shield — the shield is unequipped to make room, and re-equipped when the torch goes away
  • two-hander or bow — the mod draws your last one-handed weapon first, so the torch has a hand free

Hold d-pad left again to go back to exactly what you had before. While a light is out, tapping d-pad left switches between the lights you're carrying.

Shields

Shields aren't in the d-pad cycle. Guard + X handles them on its own:

  • shield equipped — it comes off
  • one-handed weapon in hand, or showing in the weapon slot — the shield goes on
  • two-hander, bow or empty hands — the mod draws a one-handed weapon and equips the shield, in one press
  • no shield on your hotbar — it draws your first weapon instead, so the button still does something

Equip a sword next to a shield once and the mod records the pair. From then on, drawing that sword also equips its shield. To clear a pair, take the shield off with guard + X.

Belt items

Both left shoulder buttons cycle the utility items in your inventory, without a hotbar slot and without opening the inventory. Swapping the Megingjord for the Wishbone in the middle of a crypt is one press.

Re-equipping after a death

The mod records what you were wearing when you died: chest, legs, helmet, utility, cape and trinket. Once you've looted your grave, press both left shoulder buttons and it re-equips all of it in that order. Slots that were empty when you died stay empty — if you had no cape, the mod doesn't wait for one. Press again for anything that wasn't in your inventory the first time. Once every recorded slot is filled, by that gear or anything else, the combo goes back to cycling belt items.

If you're over the weight limit when you press it, the Megingjord is equipped first, before the rest of the list, so you can carry everything else home.

Spears

The left slot shows how many spears of that kind you're carrying in total, not just the one in your hand. When you throw one, the next spear of the same kind is moved from your inventory into the slot you threw from and equipped, so you can keep throwing. Upgrade levels are counted together, and the slot shows the level of the one you're holding.

When you run out, the mod keeps that slot reserved. It remembers which slot you throw each kind of spear from, and when you pick one up off the ground it's moved back there. If something else has ended up in that slot in the meantime it gets moved out of the way, unless it's an item the diamond cycles — a weapon, tool, food, shield, torch or ammo — which the mod leaves where it is, on the assumption that you put it there deliberately.

If that spear was also the last weapon you had in your hand, and your hands are still empty, picking it up equips it. Draw anything else in between and the spear is only moved back to its slot.

Bombs

Bombs are used up rather than swapped to, so they share the food slot. D-pad right scrolls through them along with your meads, and the use button puts one in your hand, ready to throw. Bombs are never paired with a shield. If you're carrying a lot of them, hold d-pad right to jump past them to the first food or mead.

Fishing

Take out the rod and the mod loads your first bait. Baits appear in the fifth window, in the same place arrows do, and heavy attack changes them. Bait takes a moment to equip, unlike arrows, so the mod waits until you stop scrolling before loading it rather than equipping on every press. Put the rod away and your previous ammo is restored.

Equip delay and queueing

Tapping a direction only moves the highlight. The swap itself happens 350 ms after your last press, so scrolling past five weapons costs one equip animation instead of five.

You can keep cycling while an equip animation is playing, and change slot while you're at it. The new choice goes into the game's own action queue and starts when the current animation ends, so a press during a weapon change is never lost.


Configuration

The config file is created after the first launch, at BepInEx/config/viktor.diamondhud.cfg. Changes apply immediately, so you can adjust the HUD with a config manager while standing in the world.

Section Setting Default What it does
Bindings Layout Auto Follows the game's Controls setting. Set it to Classic, Alt1 or Alt2 to lock it, or Custom to place every shortcut yourself
Bindings DPadHoldSeconds 1 How long a hold takes. 0 disables all three holds
Bindings ClassicGuardianPowerCombo true Puts the forsaken power on L3 + R3 on Classic, where the d-pad no longer has room for it
Input EquipDelay 0.35 How long the mod waits after your last press before equipping
Input AutoShield true Drawing a paired weapon also equips its shield
Input AutoShieldWeapon true Guard + X also draws the one-handed weapon your weapon slot is showing, not just the shield
Input RestoreGearAfterDeath true Records your armour when you die and re-equips it on the combo
Input AutoMegingjord true Equips the Megingjord first if you're over the weight limit
Input SpearRestock true Moves the next spear into the slot after a throw
Input SpearSlotMemory true Returns a spear you pick up to the slot you throw it from
Input RestoreAmmoAfterFishing true Restores your previous ammo when you put the rod away
Input RequireGamepad true Shows the diamond only while a controller is in use
HUD AnchorX / AnchorY / PixelOffsetX / PixelOffsetY 0 / 1 / 170 / -320 Where the diamond sits on screen
HUD Radius / Scale 77 / 1 How far apart the slots are, and how big they are
HUD ImmersiveMode / ImmersiveIdleSeconds true / 3 Whether the diamond fades out when idle, and after how long
HUD BiomeTint true Frame colour follows the biome
HUD MoveStatusList true Moves the status effect row from under the minimap to next to the forsaken power. Off puts it back
HUD StatusListOffsetX / StatusListOffsetY / StatusListScale 60 / 0 / 0.7 Where the moved row sits and how big it is
HUD StatusTimerScale 1.4 Size of the timer text inside each status icon, on top of the row's own scale
HUD StatusListLeftToRight true Fills the row left to right. Vanilla fills it the other way
HUD ShowBeltWindow true Shows your belt item in the middle of the diamond
HUD HideUtilityStatusIcon true Removes that item's icon from the status bar
HUD ShowTorchWindow false A separate torch window that never fades. Off by default, because the slot already shows the same bar

If the mod sorts a modded item into the wrong slot, use the name lists to correct it: ExtraToolNames, TorchNames, RodNames, CircletNames, ExtraBombNames, SpearExcludeNames, MegingjordNames.

If you're building a Custom layout, set DebugButtons = true and the log will print every button as you press it, so you can see which ones your controller has free.


Notes

  • Client-side only. It doesn't need to be on the server, your friends don't need it, and versions don't have to match. Everything it changes happens on your screen.
  • Your weapon and shield pairs are stored in a plain text file per character, one weapon = shield per line. You can open and edit it.
  • The gear you were wearing when you died is saved to the same file, so quitting between dying and looting your grave doesn't lose it.
  • Bait takes time to equip and arrows don't, which is why the fifth window waits before loading bait but never waits on arrows.
  • Taking a shield off with guard + X also clears that weapon-and-shield pair. Equip them together again to record it.

Technical details

Tested on Valheim 1.0.15 with BepInExPack Valheim 5.4.2351.

The mod reuses three parts of the vanilla HUD rather than drawing its own, so another UI mod that moves the same parts can conflict with it. Each one has its own setting:

  • the vanilla hotbar is hidden while the diamond is shown — HideVanillaHotbar
  • the status effect row is moved next to the forsaken power — MoveStatusList
  • the forsaken power can be moved into the middle of the diamond — GuardianPowerInCentre, off by default

The mod also takes a few controller buttons away from the game so the shortcuts can use them: sit, crouch, automatic weapon-holstering, and the face buttons while guard is held. SuppressVanillaSit, SuppressVanillaCrouch, SuppressVanillaAutoHolster and GuardOwnsMacroButtons give them back one at a time.

The diamond slots are clones of the vanilla hotbar slots, so item icons, stack counts, durability bars and upgrade levels are drawn by the game rather than redrawn here. Nothing is written to your world or your character beyond the one text file per character.


Installation

With r2modman or Thunderstore Mod Manager: click install.

Manually: install BepInExPack Valheim, then put DiamondHotbar.dll in BepInEx/plugins.

CHANGELOG

Changelog

1.1.6

1.1.5

  • Spears keep their slot. The mod records which hotbar slot you throw each kind of spear from. When you pick one up off the ground it's moved back to that slot, and anything that ended up there in the meantime is moved out of the way — unless it's an item the diamond cycles, which is left alone. New setting SpearSlotMemory, on by default.
  • Picking a spear up can also equip it, if that spear was the last weapon you had in your hand and your hands are still empty. If you drew something else in between, the spear is only moved back to its slot.
  • Fixed: the spear restock never equipped the new spear. It refilled the slot after a throw and stopped there. Moving an item inside the inventory replaces it with a copy, and the mod was still holding the original, which the game won't equip because it's no longer in your inventory. It now equips the spear that actually ended up in the slot.
  • Fixed: ListRefreshSeconds, the fallback that rebuilds the slot lists after a set time, only applied to three of the five lists. It now applies to all of them. No change at the default of 0.
  • Fixed: if another UI mod replaced the vanilla hotbar, the mod searched the HUD for it on every frame indefinitely. The search is now spaced out.

1.1.1

  • You can cycle while an equip animation is playing, and change slot while you're at it. Previously the diamond was locked for the whole animation and anything you pressed during it was lost. The new choice goes into the game's own action queue and starts when the current animation ends, so the equips themselves are unchanged. The 350 ms delay still decides which choice gets sent, so scrolling past five weapons is still one swap.
  • The highlight now stays on what you picked until the game gets to it, instead of jumping back to your previous weapon for the length of the animation.
  • The diamond no longer dims during an equip, since you can act during one.

1.1.0

  • Shields are no longer in the d-pad cycle. They're on guard + X: it equips or unequips the shield, and from a two-hander or a bow it draws a one-handed weapon and equips the shield in one press. If you have no shield on the hotbar it draws your first weapon instead.
  • The ammo window now doubles as a shield window. It shows your shield when one is equipped, your ammo when a bow, crossbow or fishing rod is out, and is hidden otherwise.
  • Spears moved to the left slot, with the bows and crossbows. The weapon slot is melee and magic only.
  • Your armour can be re-equipped after a death. The mod records chest, legs, helmet, utility, cape and trinket when you die, and re-equips them in that order when you press both left shoulder buttons with your grave looted. Slots that were empty stay empty. If you're over the weight limit, the Megingjord goes on first.
  • New: AutoShieldWeapon (on) — guard + X also draws the one-handed weapon your weapon slot is showing, not just the shield.
  • New: RestoreGearAfterDeath (on) and AutoMegingjord (on), for the armour restore above.
  • EquipDelay raised from 0.3 to 0.35. 300 ms was close enough to instant to be awkward mid-fight.

1.0.0

First public release.