You are viewing a potentially older version of this package. View all versions.
Wubarrk-VikingOS_BETA-0.9.1 icon

VikingOS BETA

Rebuild Valheim's interface. Move, resize and rotate any HUD, inventory or chat element in a live edit mode, saved in resolution-independent units. Plus chat that keeps your capitals, Always Shout, and drag-and-drop item sharing.

Date uploaded 20 hours ago
Version 0.9.1
Download link Wubarrk-VikingOS_BETA-0.9.1.zip
Downloads 22
Dependency string Wubarrk-VikingOS_BETA-0.9.1

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 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.2333
ValheimModding-JsonDotNET-13.0.4 icon
ValheimModding-JsonDotNET

Shared version 13.0.3 of Json.NET from Newtonsoft, net45 package for use in Valheim mods. Maintained by the ValheimModding team.

Preferred version: 13.0.4

README

🛡️ VikingOS

VikingOS — rebuild Valheim's interface

Valheim Mod Client Side Framework Interface Status

"THE HEARTH IS THAT WAY," he bellowed, because the gods had decreed that any man raising his voice must also lose the shape of his words. A Viking may shout. A Viking may also be understood. It was never obvious why he could not do both.

VikingOS lets you rebuild Valheim's interface. Press one key and every part of the screen is outlined — health, stamina, the hotbar, the minimap, the crafting list, the compass, and the hundred smaller pieces inside them. Drag them where you want them, with snap lines like a real editor. Resize a box and its contents re-flow to fit. Turn the health bar on its side and the numbers stay upright. It remembers exactly, and it remembers in a way that still makes sense when you change monitor.

And the chat becomes BarrkChat: ~1,900 emojis under the :shortcodes: you already know — a good chunk of them animated — with a picker, autocomplete, server-supplied custom emotes, item sharing by drag-and-drop, shouts that keep their capitals, and a chat window that finally moves, scales and resizes as one piece.

Every frame VikingOS draws is generated in code. No textures ship with this mod, and the metal is a colour picker.

🚧 THIS IS AN OPEN BETA. VikingOS is actively being built and it is not finished. Expect rough edges, and expect things to change between versions — features are still being added and fixes still being made, release by release. What you see today is not the final shape of it.

It is genuinely usable right now and it is tested before every release, but it has not had a long soak across many machines, mod lists and playstyles. If you want something that has been stable for years, this is not that yet. If you are happy to try something still growing and to tell me what breaks, you are exactly who this is for.

Your layout lives in one small file you can delete at any time to start over, so nothing here is hard to undo. Bug reports and suggestions are wantedDiscord is the fastest way to reach me, and reports genuinely do shape what gets built next.

⚠️ READ THIS FIRST

🛑 Running KG Marketplace & Server NPCs? KG Chat must be off.

VikingOS's chat does not work with KG Chat enabled — so if you run the server, set EnableKGChat = false on the server, before your first boot if you can, because it starts out enabled. Playing on someone else's server, there is nothing to do. The rest of KG Marketplace is completely unaffected. Full instructions in 🧩 Compatibility.

🪓 VikingOS can move other mods' interfaces

VikingOS does not work from a list of Valheim's own panels. It walks the interface and offers you everything it finds, and that includes UI belonging to every other mod you have installed. That is the whole point of it — but it also means you can move, resize, scale or rotate a panel that another mod is actively managing, and that mod was not written expecting you to.

Moving another mod's element can cause unwanted behaviour. Depending on the mod, you may see it snap back where it was, redraw in the wrong place, mis-position its own contents, stop responding to clicks where it looks like it should, or misbehave in ways neither mod can predict. There is no list of which mods are safe, because the answer depends on how each one was written.

This is not a bug in VikingOS and it is not a bug in the other mod. It is what happens when two things arrange the same object.

Nothing is permanent. Every change is reversible:

  • Right-click an element in edit mode puts that one back.
  • Your whole layout is one small file — delete it and everything returns to where your mods put it.
  • VikingOS stores every change as a difference from where an element already was, so a reset returns it to what your other mods intended, not to vanilla.

So: rearrange freely, and if something starts behaving oddly, put that element back first. If it still misbehaves afterwards, then it is worth reporting.

📜 Contents

🔗 Also mine: TortalPortal, a complete overhaul of Valheim's portal network, and Mists of Avalor, whose open beta is live on Hexium.


⚔️ Features

🪓 Rearrange Anything

Press F10. Everything adjustable on screen gets an outline.

Drag move it — it snaps to the screen and to other panels, with a gold guide line (Alt suspends)
Corner grip resize the box — contents re-flow to fit
Scroll, or + / scale it
[ / ] turn it a quarter turn — hold Shift for 15°
Arrow keys nudge by a single unit
Right-click put that one back
Click empty screen let go of whatever is selected

VikingOS does not work from a list of the dozen panels somebody thought of. It walks the interface and offers everything it finds — which means the pieces inside panels are adjustable too, and panels added by other mods show up without VikingOS knowing they exist. When elements overlap, the smallest one under your cursor wins, so a thing nested inside another thing is still reachable.

It walks the HUD, the inventory, the chat box, the dialogue and message panels, the trader, the skills and text windows, the barber and the menus — and how deep it goes is yours to set. The default lists panels and their major parts, which is what most screens want; turn it up and it reaches individual labels, icons and bar fills. Far more rows, so the search box becomes how you find anything — and nothing is lost by turning it back down, because positions you have already set are remembered by name and return when you raise it again.

⚠️ Moving another mod's UI can make that mod behave oddly — it was not written expecting anything else to arrange it. Right-click puts an element back, and deleting your layout file undoes everything. See the full warning at the top of this page.

Search for an element by name and click the row: it is pinned — outlined, haloed for a few seconds so your eye can find it in a busy screen, holding the arrow keys and the corner grips, and draggable where it stands even when it is buried under three other panels. Deselect hands it back, and so does a click on empty screen.

Want a vertical health bar with upright numbers? Turn the panel 90° — the numbers stay readable by themselves.

🔑 F10 is rebindable, and vikingos_layout edit opens the same thing from the console. vikingos_layout on its own lists everything you have changed.

💬 F10 works while you are typing in chat, which is the one time the chat box is reliably on screen — vanilla hides it a few seconds after the last message. Edit mode holds it open for as long as you are arranging, so the thing you are dragging stops disappearing out from under you. (If you rebind edit mode to a letter, it stands down while you type, as it must.)

📐 Layouts That Survive A New Monitor

Valheim's interface is driven by a scaler that works out to min(width/1920, height/1080). Because of that min, the screen measured in interface units is exactly 1920×1080 at any 16:9 resolution — 1080p, 1440p and 4K are the same coordinate space. VikingOS stores your changes in those units, so a layout built at 4K comes back correct at 1080p, and corner-anchored things stay in their corners when the aspect ratio changes.

It also stores each change as a difference from where the element already was, never as a fixed position. So VikingOS cooperates with your other mods rather than overruling them: if something else has already moved your hotbar, that is simply the starting point — and reset puts the element back to what your mods intended, not to vanilla.

Your layout is one small file. It contains only what you actually changed. Delete it to start fresh, or send it to a friend. And it restores exactly — an element must hold still before its home position is trusted, so an intro animation can never smuggle a slightly-wrong "home" into your save.

🗂️ Saved Screens

One arrangement is rarely enough. A layout tuned for building is the wrong one for a boss fight, and the one you use on the big monitor is not the one you want on the laptop.

Type a name into the preset row at the top of the menu and press Save. That is a saved screen — panels, your clock and weight meter, the share box, the trade window, the metal colour, the text sizes. The ◀ ▶ arrows walk through what you have saved; Load puts one on.

A preset is a complete screen rather than a patch: loading one puts back anything it does not mention, so two presets always give you two results instead of the sum of everything you have ever tried. Your current layout is copied aside before a load, so a mis-click costs a file rename.

They are ordinary files in config/VikingOS/presets/, in the same format as your layout itself — so you can send one to a friend, or drop a layout you were given straight into the folder.

🧲 Snapping, Re-Flow, And The Details

The parts that make the engine feel like a desktop instead of a debug tool:

  • Grids re-flow. Valheim positions hotbar and inventory slots by hand in code, once — resize the box and vanilla would leave the slots where they were. VikingOS re-flows any uniform grid to fit its new box: narrow the hotbar and it wraps onto a second row; reset it and the game's own arrangement returns. The shape is detected, not the name, so modded bars re-flow too — and a re-flowed grid holds its arrangement when a status effect expires or an item moves.
  • Stat bars widen without breaking. A bar's width IS the game's readout of your maximum — write it directly and it stops growing when you eat. VikingOS adds your adjustment inside the game's own calculation instead, so a wider health bar still grows with max health.
  • Scale and rotate happen in place. Unity transforms around an element's pivot, and Valheim's pivots are rarely the middle — left alone, enlarging the health panel slides it away and rotating it swings it off screen. VikingOS compensates so things grow and turn about their own centre.
  • Rotated panels keep their text readable — the rotation is cancelled back out of the labels alone, at any depth.

😀 An Emoji Library Like A Phone's

~1,900 emojis are built into the mod itself, under the shortcodes you already know from Discord — :joy:, :fire:, :sob:, :skull:, :rocket:, :100: and the rest of the standard set. Nothing to download, nothing to set up. ~150 of the most-used are animated, powered by a GIF engine written for this mod, and an animated :joy: replaces the static one the way a phone keyboard would.

  • The picker: a ☺ Emoji button on the chat panel opens a browsable grid of everything — click one to chat it.
  • Autocomplete: type :fi in chat and matching suggestions pop above the input — click to complete. No second search box fighting the chat input for your keys.
  • Emojis render in the floating text over people's heads too, not just in the log.
  • Wide emotes render wide — up to 4:1 — instead of being squeezed into a square.

🏰 Server Emotes

Admins drop PNGs and GIFs into the server's emote folder; every player receives them automatically, cached so a rejoin costs nothing. The server's :skol: outranks the built-in one and your personal packs — the server's set is the world's identity.

  • Oversized GIFs are shrunk by the server instead of refused. Drop in a full-size internet GIF; a dedicated server — headless, no GPU — decodes, resizes and re-encodes it to transfer size itself. The original file is never touched.
  • vikingos_emotereload (admins only) picks up new files live, without a restart.
  • Priority when names collide: server → your packs → built-ins.

💬 One Chat Window

The vanilla chat is a pile of hardcoded rectangles wearing a window costume — its input line does not even follow its own box. VikingOS restructures it once, at load, into an actual window:

  • Drag the gold frame to move it. Log, input line and the VikingOS controls travel together, no edit mode needed.
  • Corner grip to resize — available while typing, the one moment your cursor is already free. The input line stays glued inside the box.
  • Mouse wheel over the control strip to scale the whole window.
  • The log's text size is yours — vanilla's 18-point text was written for smaller monitors. Applies live.
  • The VikingOS controls dock to the chat box — as a row across the top, a row underneath, or the original column beside it. The row is the default: it puts the buttons next to the emoji picker and hands the whole width back to the chat log instead of spending it on an empty grey column. Switch between them whenever you like; the chat box takes back or gives up the column's width to match.
  • Wherever they dock, the controls sit inside one shared frame with the log, so chat and buttons read as a single window. In the row, the three gold dots on the left are the handle.

All of it saves with your layout and restores exactly.

🔠 Chat That Keeps Your Capitals

Vanilla rewrites every message before it reaches your eyes: shouts are forced to ALL CAPITALS, whispers to all lowercase. Not styled — genuinely rewritten, so a name, an acronym and a coordinate all arrive flattened. Head SE from Haldor becomes HEAD SE FROM HALDOR.

VikingOS removes that rewrite and nothing else. Shout still carries the same distance, the channel colours are untouched — you just read the sentence that was typed. The change happens where the message is displayed, on your machine, so it fixes every message you receive from everyone, vanilla players included.

📣 Always Shout

A toggle on the chat panel. While it is on, every message you send goes out at Shout range — no /s in front of it, no typing a paragraph into the void because you were still in Normal. It overrides the channel prefix rather than working around it, so the two can never disagree.

On a server running VikingOS this is a server-owned rule — the chat is the server's; the screen is yours.

🤫 Whispers, And A Reply Button

Valheim already has a thing called whisper, and it is not what anyone means by the word: it is a volume, short-range and overheard by whoever happens to be standing near you. There is no "to", and so there is nothing to reply to.

/w <player> <message> reaches exactly one person, anywhere on the map. /msg and /tell do the same. /r answers whoever whispered you last.

The chat panel has both as buttons. Whisper hands you a list of who is online and fills the name in spelled correctly, which matters more than it sounds when the name has spaces in it. Reply shows whose name it will answer, so you are not trying to remember.

Whispers stay out of the server's chat log.

⇄ Trading, Without Trusting Anyone

Ask somebody to trade with the Trade button or /trade. You both get a window with two columns, and you fill your side the same way you share an item: drag it out of your inventory and drop it on your half of the table.

Then you both confirm. If either of you changes the offer afterwards, both confirmations are torn up and you each confirm again — so the deal you agree to is always the one you were looking at.

What happens next is the part worth explaining. Valheim keeps your inventory on your computer, which means a straight swap has a moment in the middle where an item has left one pack and not yet arrived in the other. A disconnect in that moment is how people lose gear. So VikingOS does not do that: the server takes both sides, and only then hands each of you the other's. The item is in exactly one place at every instant, and that place is never a connection that just dropped.

Most disconnects never get that far. The two clients keep a heartbeat while the window is open, so a partner who drops is noticed within a few seconds and the trade simply ends — with everything still in both inventories, nothing to refund and nothing to explain. The escrow is there for the cases that slip past it: a swap that went through is waiting for you the next time you log in, and a trade the other player walked away from comes back to you.

Because the server keeps offering your goods until your client confirms it has them, the same delivery can legitimately arrive twice. Your client remembers what it has already been paid, so a redelivery is recognised rather than applied again — which matters on servers that keep your character server-side, where an accidental duplicate is not something an admin can quietly roll back.

Items arrive whole — quality, durability, the name of whoever crafted them, and any data other mods have attached to them.

⚔️ Trading needs VikingOS on the server, because holding both sides safely is the server's job and there is no honest way to do it without one. Whispers and layouts do not care.

🎒 Share What You Found

Pick an item up in your inventory and drop it on the Share Item box — it opens beside your character panel whenever the inventory is open, and you can drag it by its title row to wherever you would rather have it. The party gets a line with the item's icon and its name — and hovering that name opens a framed card with the item's icon and its real stats in your language: the same tooltip you would see in your own inventory, at the right quality, durability and world level.

The item stays in your inventory. Sharing it is not dropping it.

The stats are worked out on the reader's machine, not baked into the message. Other mods that change an item's numbers show through correctly for whoever is reading.

💬 This one needs VikingOS on both ends. Item cards travel on their own channel so the item's data and the chat line arrive together and can never get out of order.

📜 A Log Of Everything Said

Every message your machine sees is written to a dated text file, one per day. On a server that is every message it relays — the closest thing Valheim has to a shout log, and the thing to reach for when somebody asks who said what three evenings ago. It is plain text; nothing needs to be running to read it.

⬛ The Inventory In Black And Gold

The inventory, container, crafting and item-info panel backgrounds re-skin in VikingOS black and gold — whole panels, never a half-themed seam — following your chosen metal colour, and toggling live so you can compare. Bars, slots and icons are deliberately never touched: the game redraws bars from cached values every frame, and fighting that produces flicker, not theming.

🕰️ The Clock, The Compass And The Weight Meter

A small clock — your local time, server time, and the in-game day and time of day — and a live carry-weight meter with a fill bar that blinks red when you are overloaded, so you can read 45/300 without opening anything. Drag either one anywhere while the cursor is free, and drag the gold grip in its bottom-right corner to resize it. Both remember their place as a fraction of the screen, so a resolution change cannot strand them, and both hide with the HUD.

Beside them, a compass across the top of the screen: a sliding tape of the horizon centred on where you are looking, marked with the eight cardinal points and a bearing in degrees, with north lit because north is the one you are looking for. It follows the camera rather than your body, so it turns with the view instead of lagging a step behind it, and the bearings it gives match the ones on your map.

And your map pins ride it. Every pin the map knows about slides along the top of the tape as you turn — your own markers, your death, your bed, the boss stones — and so does every pin any other mod leaves behind: portals, shops, quest targets, resource nodes, whatever it is. There is no list of supported mods here and there never needs to be one, because the compass reads the same pin list the minimap reads. If it is on your map it is on your compass, including a mod released tomorrow.

Other players show up too, as the same small red figure the map uses — anyone sharing their position, moving along the tape as they move. Look towards something and it names itself underneath, with how far away it is.

The map's own filter buttons carry across: hide a pin type on the map and it is hidden here as well, so the two can never tell you different things. Set how far away a pin can be and still count, how many can crowd the strip at once, how big the icons are, or turn pins, players and the caption off one at a time.

✨ Four Frames, And The Metal Is Yours

The ornate frame wraps the chat window, and wraps every panel of the inventory screen too: your inventory, the character and crafting side, and the item info strip. It is built from the panel backgrounds themselves, so a frame is always exactly the size of the box it surrounds, and the weight and armour roundels sit inside it with nothing cut off. Move, resize or scale a panel and its frame comes with it, live.

There are four carvings to choose between, and you can flip through them from the layout menu while the window you are looking at wears each one:

Gilt Polished double rails, acanthus corners, a palmette crest — the original.
Runic A broad chiselled band with square shoulders, a cut bind-rune at every corner and drilled pits marching along the edges. The austere one.
Serpent Two strands braided down every rail, resolving into a beast head biting each corner.
Ironbound A heavy riveted strap, a bracket hammered over each corner, and a shield boss at the crest.

All four are drawn to the same measurements, so switching between them never moves a single control — it is a change of carving, not of layout.

Two panels only share a frame if the result is actually a box — the panels inside a frame have to fill it. Push two panels together and they combine; leave a hole between them and they keep a frame each, rather than one frame drawn around open sky.

Every frame is generated at runtime, pixel by pixel — every rail, rune, rivet and crest, all lit by a single light over the top-left shoulder. Because it is generated rather than drawn, the metal is a setting: give it any colour and the shadow and highlight tones are derived from it, so silver, bronze, blackened iron or verdigris is one value, not a texture pack. A silver serpent or an iron rune band is two clicks apart. It rebakes while you watch.

🎨 And Everything Else Is A Setting Too

Nothing cascades from one dial any more. Window titles, sub-titles, the small gold labels, button text, list rows, footers and input fields each have their own size, on top of a single "everything a bit bigger" dial and a proportional zoom. If the body text is right but the titles are shouting, you change the titles.

The same goes for colour. Set the window background and how solid it is, the body and muted text colours, and — if you would rather not have them worked out from the metal — the metal's shadow and highlight by hand. The background colour reaches Valheim's own re-skinned panels as well, and the buttons, list rows and text fields are derived from it, so lightening the interface lightens the things you click rather than leaving them black on a pale panel.

🎛️ Want the features but not the look? One switch turns off everything VikingOS paints onto Valheim's own interface — the panel re-skin and the gilt frames — while leaving the chat window, emoji, item sharing and the entire layout editor exactly as they are. The two halves can also be turned off separately if you want one but not the other.

🎨 This is the same frame used by Fatty and TortalPortal. If you run more than one of them, give them all the same metal colour and text scaling — they share one set of generated artwork, so matching values make their windows read as one family.


🍗 Instructions

A start-to-finish guide to actually using the thing:

  1. Install BepInEx for Valheim if you have not already, then install VikingOS through your mod manager (or drop the DLL into BepInEx/plugins/).
  2. Launch once. Everything works out of the box; nothing needs setting up first. Running KG Marketplace & Server NPCs? KG Chat must be off — see 🧩 Compatibility.
  3. Press F10. The whole interface outlines. Drag a panel where you want it, grab its corner to resize, scroll to scale it, [ and ] to turn it. Right-click puts one thing back.
  4. Find the buried stuff by name. The menu's search box lists every element; click a row to pin it, and it stays outlined and reachable even under other panels. Deselect, or a click on empty screen, lets it go.
  5. Press F10 again to leave. Your layout is saved as you go and comes back exactly, at any resolution.
  6. Press Enter for chat. The window drags by its gold frame and resizes by the corner grip while you type. ☺ Emoji opens the picker; typing :fi autocompletes as you go.
  7. Shout without the slash. Flip Always Shout on the chat panel and every message carries at shout range.
  8. Share a find. Open your inventory, pick an item up and drop it on the Share Item box beside your character — drag the box by its title row first if you want it somewhere else. It goes to the party as a linked name they can hover for the full stat card, and it stays in your bag.
  9. Make it yours. Every VikingOS window is drawn rather than shipped, so the metal colour and text scaling are live settings — set them in-game with Configuration Manager (F1) and watch the artwork rebake.

🛠️ How-To

😀 Add Your Own Emojis

The built-in set covers the standard Discord shortcodes, and you can add any number of your own.

  1. Drop PNGs or GIFs into the emojipacks folder in VikingOS's own config directory.
  2. The filename is the shortcode, so skol.png becomes :skol:.
  3. Restart the game — your own folder is read at startup. (Emotes arriving from a server need no restart.)

Your packs outrank the built-ins, so naming a file after a standard emoji replaces it for you.

📡 Share Emotes From Your Server

Your players do not need your files. The server can hand them out.

  1. Drop your PNGs and GIFs into the emotes folder in VikingOS's config directory on the server.
  2. Run vikingos_emotereload from any admin's console, or restart the server.
  3. That's it. Each client downloads what it is missing and caches it, so the download happens once per machine.

What that buys you: a guild's own emote set that everyone at the table has, with nothing to install and no modpack to rebuild. Oversized GIFs are transcoded by the server itself rather than rejected, so you can drop a full-size internet GIF straight in and let the server deal with it.

🧭 When Something Is Not Working

  • vikingos_debug prints a feature-by-feature status report — what attached, what did not, and why. If something is not working, run this and paste the output.
  • vikingos_debug on turns on verbose logging live: shares, emote sync, layout captures, and the reason anything was rejected.
  • vikingos_layout lists every change you have made; vikingos_layout edit opens edit mode from the console.
  • vikingos_emotes lists every emote currently loaded and where each came from.

🩺 Some warnings are never silenced. VikingOS's riskiest mechanisms — the chat case fix, which edits Valheim's own compiled code, and the item-share channel — fail quietly if a game update moves what they hook. Each one checks that it actually attached and says so in the log if it did not.


🤝 Multiplayer

Your screen is yours; the chat rules are the server's. Everything about layout, scale, theme and text size is purely local and never touched by a server. Chat behaviour is server-owned on servers running VikingOS.

Feature Works against vanilla players / servers?
Layout engine, theming, chat window ✅ Yes — purely local
Chat keeps its capitals ✅ Yes — you see everyone's real text
Always Shout ✅ Yes — an ordinary shout, indistinguishable from a manual one
Built-in emojis ✅ Yes — a player without VikingOS just sees the :joy: you typed
Server emotes 🏰 The server must run VikingOS; players with it get them automatically
Item share cards Needs VikingOS on both ends — see the note above

⚠️ Versions must match. A server running VikingOS requires every client to run the same version, and refuses clients that do not have it at all. Half the chat overhaul is built while the game starts up, so a mismatched pair would disagree about what exists — better a clear refusal at the door than a session that breaks an hour in. In practice: update the server and its players together. A single-player game is unaffected, and a vanilla server does not care what you are running.

A server also gets one master switch for the whole chat side, because chat is the only part of VikingOS that reaches other people — everything else is a picture on one player's monitor. Turned off, everyone connected keeps Valheim's own chat.


🧩 Compatibility

🛑 Running KG Marketplace & Server NPCs? KG Chat must be off.

This one is not a preference and not a soft recommendation. Both mods provide a complete chat, only one of them can be in place, and VikingOS requires KG Chat to be switched off. With it on, the VikingOS chat will not work — no emoji, no picker, no item sharing, no shout strip.

On a server: set EnableKGChat = false in BepInEx/config/Marketplace/MarketPlace.cfg on the server, and restart it. That setting is server-side, so it must be done there rather than on a client — and do it before the server's first boot if you can, because it starts out enabled.

As a player on someone else's server: nothing to do. VikingOS switches it off on your machine by default.

The rest of KG Marketplace is completely unaffected — the marketplace, the NPCs, the quests and trading all carry on exactly as they do now. It is only the chat.

HUDCompass (Neobotics) — hard incompatibility. Do not run both.

Not a conflict to be configured around: two compasses is one compass too many. Both mods draw a heading strip across the top of the screen, both read your map pins onto it, and both expect to own that space — so running the pair gives you two tapes fighting for the same band of screen, two sets of pin icons for the same pins, and two answers to a question that has one.

Pick one and remove the other. There is nothing to be gained by running the pair. If you would rather keep HUDCompass, switch the VikingOS compass off in the configuration and everything else in VikingOS carries on untouched — but leaving both switched on is not a supported arrangement and bug reports from it cannot be acted on.

Checked against, and specifically built to coexist with:

  • KG Marketplace & Server NPCs — see the callout above. Chat aside, the two run together with no conflicts.
  • AzuExtendedPlayerInventory (Azumatt) — item dragging reads the inventory's drag state directly; extended hotbars re-flow like vanilla ones because the grid shape is detected, not the class name; and the wide panel it builds across the character and crafting area is themed and framed along with everything else.
  • Hygge, MarsarahTweaks — no conflicts; anything they move becomes the baseline VikingOS adjusts from.
  • Fatty, TortalPortal — share VikingOS's frame. See the colour-matching note above.

Chat patches are surgical: the forced-case rewrite is removed by editing exactly the two instructions that perform it. Vanilla's guard against players typing rich-text markup into chat is not weakened; item cards and emojis get past it by routes that never put markup on the wire in the first place.


📦 Dependencies


Made by Wubarrk. Bug reports and abuse welcome on Discord.


License to Modify: User may alter, translate, or create derivative works based on the original material, provided two conditions are met: 1) A request to alter the work is made and approved by the original author (waived in the case of simple translations), and 2) Full attribution is given to the original author along with a link to the original work (if still available). All changes should be clearly marked or noted as modified from the original source.

Modification or reuse of the work does not grant the user any right to imply official endorsement or sponsorship by the original creator.

The permission granted herein is non-exclusive, and the original creator retains all rights, title, and interest in the original work.

CHANGELOG

Changelog — VikingOS

[0.9.1] — Start of public beta

✨ Added

  • The compass shows your map pins. Every pin the map knows about now slides along the top of the compass tape as you turn — your own markers, your death, your bed and the boss stones — and so does every pin any other mod leaves behind, portals, shops, quest targets and resource nodes alike. There is no list of supported mods and there never needs to be one: the compass reads the same pin list the minimap reads, so if it is on your map it is on your compass, including pins from a mod released tomorrow.
  • Other players appear on it too, as the same small red figure the map uses — anyone sharing their position, moving along the tape as they move.
  • Whatever you have turned to face names itself underneath the compass, with how far away it is. Only the mark nearest the centre line is named; a caption on every pin would be a row of overlapping text.
  • The map's own pin filters carry across. Hide a pin type with the map's filter buttons and it is hidden on the compass as well, so the two can never tell you different things. Pins ticked off as visited are shown faded rather than removed — they are still landmarks. Pins that came in on somebody else's shared map appear only while you are actually looking at shared map data, greyed exactly as the map greys them.
  • Six new settings, under HUD Widgets: map pins and players can be turned off one at a time, the caption can be turned off, and you can set how far away a pin can be and still count, how many pins may crowd the strip at once, and how big the icons are.

🔧 Changed

  • The compass strip is a little taller when pins are shown, so the icons get a band of their own and never sit on top of a cardinal letter.

⚠️ Compatibility

  • HUDCompass (Neobotics) is now a hard incompatibility — do not run both. Both mods draw a heading strip with your map pins on it across the top of the screen, so the pair gives you two compasses fighting over the same band. Pick one. If you would rather keep HUDCompass, switch the VikingOS compass off in the configuration and the rest of VikingOS is unaffected.

[0.9.0] — Closed Beta

✨ Added

  • Three more frames to choose from, beside the original gilt. Runic is a broad chiselled band with square shoulders, a cut bind-rune at every corner and drilled pits marching along the edges. Serpent braids two strands down each rail and resolves them into a beast head biting each corner. Ironbound is a heavy riveted strap with a bracket at the corners and a shield boss at the crest. All four take their metal from your own colour, so a silver serpent or a blackened iron rune band is one more setting. Swap them from the Frame row in the layout menu (F10) and watch the window you are standing in change as you click. Every style is drawn at the same size, so switching never moves a control.
  • A compass across the top of the screen. A sliding tape of the horizon centred on where you are looking, with the eight cardinal points, a bearing in degrees, and north lit because north is the one you look for. It follows the camera rather than your body, so it turns with the view, and its bearings match the map's. Drag it anywhere, resize it by the corner grip, and it hides with the HUD like the clock and weight meter.
  • Every kind of text has its own size now. There used to be two dials for twelve styles, so "the buttons are too small" could only be answered by making the whole window bigger. Window titles, sub-titles, small gold labels, button text, list rows, footers and input fields each have their own setting, all on top of the single "All Text Size" dial that still moves everything at once.
  • The colours are yours. The window background and its opacity, the body and muted text colours, and — if you turn off the derived tones — the metal's shadow and highlight by hand. The panel colour reaches Valheim's own re-skinned panels too, and the buttons, list rows and text fields are derived from it, so lightening the interface lightens the things you click instead of leaving them black on a pale panel.

🔧 Changed

  • The configuration file has been reorganised into sections named for the question each answers — Theme, Theme Colours, Text Sizes, Chat, HUD Widgets, Layout, Window Positions, Compatibility. Your existing settings move with it; nothing is reset.

🩹 Fixes

  • Your own messages were written to the chat transcript twice. Only yours, and only with someone else on the server — the game sends a shout to each player separately, so with two people your own line arrived by two different routes and the log counted both. It would have been three times with three players. Everyone else's lines were always correct.
  • Keys pressed while the emoji grid was open reached the game. Browsing emoji could walk you, mount your horse or crouch you, and the chat window "stuck" until you closed the picker by hand. The grid now holds the keyboard for exactly as long as it is on screen, and Escape closes it.

[0.8.3] — Closed Beta

🩹 Fixes

  • Dragging an item into a trade dropped it on the ground instead. The trade window's "YOU OFFER" column was measuring where it sat inside its own window rather than where it sat on the screen, so releasing an item over it matched nothing and the game fell back to throwing the item at your feet. Items were never lost — they landed on the ground and could be picked back up — but no trade could be set up. The offer column now claims the release wherever the window has been moved to.
  • A side effect of the same fault: while a trade window was open, dropping an item in the empty top-left corner of the screen would silently add it to your offer. That phantom zone is gone.

[0.8.2] — Closed Beta

🩹 Fixes

  • Panels could keep their black-and-gold trim after the theme was switched off. Turning the look off restored every panel VikingOS remembered changing — but another mod can copy a panel background after it has been re-skinned, and a copy is a different thing wearing the same coat. Those were walked straight past. Switching the theme off now sweeps for anything still drawing a VikingOS panel and puts it back, recognising it by what is drawn rather than by what was remembered. Panels also get their original draw mode back, not just their original texture.
  • F10 now works while you are typing in chat. The chat box is the hardest thing on screen to arrange, because the game hides it a few seconds after the last message — so the one moment you can see it properly was exactly when the key was refused. Edit mode also holds the chat box open for as long as you are arranging. A letter key rebound to edit mode still stands down while you type, as it must.
  • Chat buttons are no longer cut off. The button row divides the width it actually has, and claims enough width for all five buttons even when the chat box is narrower than that — instead of drawing the last one or two past the edge of the window.
  • The player list is bigger, and wide enough for a name. It used to inherit the button column's width, so anything longer than about twelve characters was clipped in the one list whose whole job is showing names. It also says how many people it found.

[0.8.1] — Closed Beta

✨ Added

  • The chat buttons can sit in a row across the top or bottom of the chat box instead of in a column beside it — which hands the column's width back to the chat log. The row is the new default.
  • Heading text has its own size. Window titles and the small gold labels used to move only with the body text, so making the text smaller left the titles looking twice the size they should. Now they adjust on their own.
  • How deep the layout editor looks is yours to set. The default lists panels and their major parts; turn it up to reach individual labels, icons and bar fills. Positions survive being turned back down.
  • Far more of the interface is adjustable: the dialogue and NPC panels, the top-left messages, subtitles, the tutorial and join-code overlays, the trader, the skills and text windows, the barber and the menus. Previously the editor only ever walked the HUD, the inventory and the chat box.
  • Body text is a little smaller by default.

🩹 Fixes

  • A traded item that you were wearing is now taken off first. Trading away an equipped weapon or armour left you still holding something you no longer owned until you logged out.
  • Trade payloads could not be read back without being sent. Harmless in a real trade — the network layer papered over it — but it made the feature impossible to test, and anything that reads a payload without sending it got nothing.

[0.8.0] — Closed Beta

🪓 Layout presets

  • Save a whole screen and load it back by name. The layout menu (F10) has a preset row: type a name, Save, and everything about your arrangement is written to config/VikingOS/presets/. Use the ◀ ▶ arrows to walk what you have saved, and Load to put one on.
  • A preset is a complete screen, not a patch. Loading one resets every element it does not mention, so switching between two presets always gives you the same result rather than the two of them piled on top of each other.
  • A preset carries more than panel positions: your clock and weight meter, the share box, the trade window, the metal colour and the text sizes all travel with it. What it deliberately does not carry: anything the server owns, your keybind, and the layout behaviour switches.
  • Undoable. Loading a preset copies your current layout to layout.backup.json first, exactly as "Reset all" does. An accidental click costs a file rename.
  • Preset files are ordinary layout.json files with one extra block, so you can hand one to somebody else — or drop your layout.json into the presets folder and it just works.

💬 Whispers, and a reply that knows who

  • Real private messages. /w <player> <message> reaches exactly one person, wherever they are on the map. Valheim's own whisper is a volume — short-range and overheard by anyone standing near — so this is a new thing rather than a louder one. /msg and /tell do the same.
  • /r replies to whoever whispered you last, and the chat strip's reply button shows their name so you do not have to remember it.
  • A Whisper button on the chat strip opens a list of who is online and fills the name in for you, spelled right.
  • Whispers are not written to the server's chat transcript.

⇄ Player-to-player trading

  • A proper trade window. /trade, or the Trade button on the chat strip, asks somebody to trade. Both of you get a two-column window: drag items from your inventory onto your side to offer them, exactly the way item sharing already works.
  • Both sides confirm, and any change tears up both confirmations. If they add or remove something after you have confirmed, you confirm again — so what you agreed to is always what you saw.
  • The server holds both sides while the swap happens. Items go from your inventory to the server to their inventory, existing in exactly one place at every instant. If either of you disconnects mid-trade, nothing is destroyed: a swap that completed is delivered when you next log in, and a trade the other player abandoned is returned to you.
  • A disconnect is caught before anything moves. The two clients keep a heartbeat while the window is open, so a partner who drops out ends the trade in a few seconds — with both inventories untouched — rather than being noticed only once goods are already in transit.
  • A redelivered trade cannot pay you twice. The server keeps offering your goods until your client confirms it has them, which is what stops a lost packet costing you the trade. Your client remembers every delivery it has already applied, so the second offer of the same one is recognised and simply confirmed again.
  • Items keep everything — quality, durability, who crafted them, and any data other mods have attached.

⚠️ Trading needs the server to be running VikingOS. The escrow is the server's job, and there is no safe way to do it without one. Whispers and presets work regardless.

⚠️ Versions must match. A server on 0.8.0 will not accept a client on 0.7.1. Update the server and its players together.

[0.7.1] — Closed Beta

🪓 The layout engine

  • The Share Item box can be moved. It was the one thing on screen you could not place: it docked itself beside your character panel and stayed there. Drag it by its title row and it stays where you put it, remembered as a fraction of the screen like the clock and the weight meter, so it holds through a resolution change. Leave it alone and it docks itself exactly as before.

⚠️ Versions must match. A server on 0.7.1 will not accept a client on 0.7.0. Update the server and its players together.

[0.7.0] — Closed Beta

Everything from 0.0.1 through 0.7.0 was built privately. This is the first release handed to anyone outside, so rather than list seven months of internal churn, here is what actually arrived.

🪓 The layout engine

  • Move, resize, scale and rotate any element on screen. Press F10 and everything adjustable is outlined — vanilla panels, the pieces inside them, and other mods' panels too, discovered by walking the interface rather than working from a list of the dozen somebody thought of.
  • Layouts are stored in resolution-independent units, so a layout built at 4K comes back correct at 1080p, and as differences from where your other mods put things — VikingOS composes with them instead of overruling them. Reset returns an element to what your mods intended, not to vanilla.
  • Resizing a grid re-flows it. Valheim positions slots in code, once. Narrow the hotbar and it wraps onto a second row; the arrangement survives items and status effects coming and going, and modded bars re-flow too because the shape is detected, not the name.
  • Stat bars widen without breaking. A bar's width is the game's readout of your maximum, so the adjustment rides inside the game's own calculation — a wider health bar still grows with max health.
  • Scale and rotate happen about the centre, not Valheim's wandering pivots, and rotated panels keep their text upright at any depth.
  • Snapping to screen centre, screen edges and other panels, with a gold guide line. Alt suspends it.
  • Layouts restore exactly after a relog — an element must hold still before its home is trusted, so an intro animation can never smuggle a wrong position into your save.
  • Select an element from the search list and it is pinned in the world: outlined, haloed for a few seconds so you can find it, and draggable where it stands even when buried under other panels. Deselect with the button or a click on empty screen.

😀 A phone's emoji library, built in

  • ~1,900 emojis embedded in the mod under the shortcodes you know from Discord. ~150 are animated, running on a GIF engine written for this mod, and an animated :joy: outranks its static twin the way a phone keyboard would.
  • A picker and autocomplete — a browsable grid, and suggestions that pop above the chat input as you type :fi.
  • Emojis render in the floating text over people's heads, and wide emotes render wide (up to 4:1) instead of being squeezed square.
  • Server emotes: admins drop PNGs and GIFs into a folder on the server and every player receives them, cached across sessions. Oversized GIFs are shrunk by the server itself — headless, no GPU — rather than refused. A console command picks up new files live.

💬 One chat window

  • The chat is restructured into an actual window: drag the gold frame to move it, corner grip to resize (while typing — the input line stays glued inside the box), wheel over the control strip to scale. The VikingOS controls dock to the chat inside one shared frame. All of it saves with your layout.
  • Shouts keep their capitals. Vanilla's forced ALL-CAPS rewrite is removed at the display end, so you read what was typed — from everyone, vanilla players included.
  • Always Shout — every message goes out at Shout range, no /s. Server-owned on servers running VikingOS: the chat is the server's, the screen is yours.
  • Drag an item onto the chat to share it. The party gets a linked name; hovering it opens a card with the item's icon and real stats, localized in the reader's own language and computed on the reader's machine at the right quality, durability and world level. A Share Item box also opens beside your character panel whenever the inventory is open.
  • A chat transcript on disk, one file per day. On a server that is every message it relays — the closest thing Valheim has to a shout log.

⬛ The look

  • The inventory, container, crafting and item-info panels re-skin in black and gold — whole panels, never a half-themed seam.
  • An ornate gilt frame — polished double rails, carved corners, palmette crests — around the chat window and around every panel of the inventory screen. It is built from the panel backgrounds themselves, so a frame is always exactly the size of the box it wraps, and it follows a panel that you move, resize or scale. Panels that visually touch share one frame; panels with a gap between them keep a frame each, rather than one frame drawn around open sky.
  • None of it is a shipped image. Every rail, flourish and crest is generated in code at runtime, so the metal is a colour rather than a texture pack — silver, bronze, verdigris, applied live.
  • A clock and a carry-weight meter on the HUD, both resizable, both remembering their place as a fraction of the screen.
  • A master switch turns all of it off while leaving the chat window, emoji, item sharing and the whole layout editor exactly as they are.

🤝 Multiplayer

  • Chat behaviour is server-owned; everything about your screen is local and never touched by a server.
  • A server switch turns the whole chat side off for everyone connected — the one setting a server really needs, because chat is the only part of VikingOS that reaches other people.
  • Versions must match. A server running VikingOS requires every client to run the same version, and refuses clients without it.

🧩 Compatibility

  • KG Marketplace & Server NPCsKG Chat must be off; server admins set EnableKGChat = false on the server. The marketplace, NPCs, quests and trading are completely unaffected. See the README.
  • AzuExtendedPlayerInventory — extended hotbars re-flow like vanilla ones, and the panel it builds over the crafting and character area is themed and framed with the rest.

🚧 This is a beta. It is tested before every release and it is genuinely usable, but it has not had a long soak across many machines and mod lists. Rough edges are expected, and bug reports genuinely shape what gets built next.

⚠️ VikingOS can move other mods' UI, and doing so may cause unwanted behaviour — those mods were not written expecting anything else to arrange them. Every change is reversible: right-click resets one element, deleting your layout file resets everything. Read the warning at the top of the README before you start rearranging.