
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.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 = shieldper 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.