Longhouse

Skra

Chests and portals show who built them, and the builder decides who else may open or travel through them.

  1. Why
  2. What it does
  3. Characters, not accounts
  4. Names
  5. What it does not do
  6. Multiplayer
  7. Admins
  8. Honest limits
  9. Removing it
  10. Settings
  11. Installing
  12. Licence

Built, not yet run in game. The locks are unproven in multiplayer, and the settings panel has no layout yet.

Chests and portals show who built them. The builder can make one private, and then only they, the characters they put on its list, and the server's admins can use it.

The name is Old Norse. Skrá is both a lock and a register, which is the whole mod.

Why

On a shared server a well-stocked base looks like a public hub. On Longhouse a player emptied someone's chests and said afterwards that he believed the place was a hub for everyone. The owner line on its own answers that belief, because he would have read someone's name on the first chest he opened. The lock is for the honest players who would otherwise help themselves anyway.

It stays small on purpose. Public is vanilla exactly, everything starts public, and the only objects it covers are chests and portals a player built.

What it does

Hover a chest or a portal and it says who built it, using the game's own "Owner" wording from wards. A private one says so.

Your own chests and portals show one more line: hold the alternate key and press use (Shift and E by default) while standing still to open the settings. The hover names whatever keys you have bound, and a gamepad works the same way. Sprinting into your storage room with Shift still held and pressing E opens the chest as normal, because Shift is also the run key.

In the settings you switch the object between public and private and choose who is on its list.

Public changes nothing. The chest or portal behaves exactly as it does without the mod.

Private means only you, the characters on the list, and server admins. Anyone else gets "No access". A private portal refuses travel in both directions, so nobody can walk into your base from a portal of their own that happens to share your tag, and nobody off the list can retag it.

Everything starts public, including every chest already standing in your world, so installing Skra locks nothing overnight.

Vanilla's personal chest is already private to its builder. It stays that way, and its builder can now add people to it.

Characters, not accounts

Lists hold characters. Your second character is a stranger to your first until you add it, the same way it is for a ward.

The settings show your own name with a number after it, like Balder #2917. That number is the last four digits of your character's id, so a friend can open one of his own chests, read his number out, and you can find the right person even when two characters share a name.

Names

Chests and portals only store the builder's character id, never a name. The server builds a name book for each world from what the save already holds: beds, wards and the people let into them, tombstones, and everyone who logs in after Skra is installed. The book is saved beside the server's config as skra-names-<world id>.txt.

A builder who has never had a bed, a ward or a tombstone, and has not logged in since, shows as unknown #1234. The chest still has an owner and the lock still works for them.

When two characters in the book share a name, the owner line adds the number. In the settings every name always carries its number and the day it was last seen. Typing a name and pressing Enter only adds someone when exactly one character matches, so a copied name cannot sneak onto your list. Click the one you mean.

What it does not do

It does not protect anything from damage. Breaking a private chest still spills it, and a private portal can still be knocked down. Keeping things standing is a ward's job.

It does not cover carts, ships, tombstones or dungeon chests. Only chests and portals a player built count.

Hammer removal is not blocked in this version. In a base without a ward, anyone with a hammer and a workbench in range can remove a private chest that still holds items, and it spills. Removing the floor under it has the same result. A ward is what stops both.

It does not protect you from a modified game client. See the limits below.

Multiplayer

Everyone needs it: the server and every player. With Core installed, the server turns away a player who does not have Skra at the same build. That matters here more than for most mods, because a player without Skra simply ignores every lock.

Without Core it still runs, but nothing turns such a player away, so the locks become an agreement between players.

Singleplayer works on its own.

Online, the server's settings decide for everyone. A player's own config file cannot switch the lock off for that player.

Admins

Admins are the lines in the server's adminlist.txt. The server works out who is an admin and tells every player, so the chest's side and the admin's side always agree once both have heard. Write the Steam_7656... form. Skra also accepts a bare Steam id, but vanilla and other mods only recognise the prefixed one.

The bypass covers the one chest or portal an admin is using: opening it, stacking into it, taking from it, travelling through it, retagging it. Other mods that read nearby chests on an admin's behalf, such as crafting from chests in range, get nothing. It does not open vanilla's personal chest, which no admin could open before either. And the settings stay the builder's. An admin can use a private chest but cannot change who is on its list.

On a game a friend hosts, the host counts as an admin, the same as in vanilla.

Honest limits

The lock is decided on players' machines, the same way vanilla decides its own personal chest and wards. It stops honest players. It does not stop someone running a modified client, who can ignore it, and nothing a client-side mod does can change that.

When a chest or portal is asked about, who is asking is whatever the asking game says. The server logs every lock change and names the machine that wrote it, which is not proof of which person pressed the button.

Right after a change, a player whose game has not caught up yet can be refused with vanilla's "someone is using this" message instead of "No access". It settles within a few seconds.

A portal made private while someone is already standing in front of its partner can let them through in the first second or so.

Some mods do not ask the chest before using it. Vaettir's Stow posts deposit into private chests, and its optional rule editor key edits any chest's rule. Thralls and Tether ignore locks too.

Lock changes go into the server's own log. Vitni cannot see them.

Removing it

Nothing is lost. Each chest or portal that was ever changed keeps two small entries the game ignores, everything behaves as vanilla again, and the personal chest goes back to its builder only. Reinstalling brings every lock back.

Settings

The file is BepInEx/config/ezomic.valheim.skra.cfg. Every setting has a comment above it.

Enabled turns the whole mod off without losing any locks. AdminsBypass decides whether admins get through private chests and portals. Both are the server's call when you are online. Verbose writes refusals to the log and is yours alone.

There are no keybinds. Skra uses the game's own alternate key, so rebinding that in the game's settings is all there is.

BepInEx writes every setting on first run and the saved value wins, so a changed default in a new version does nothing on a machine that already ran the mod.

Installing

Needs BepInEx. By hand, put Skra.dll in BepInEx/plugins/Skra/, on the server and on every player's game.

Licence

MIT. See LICENSE.

Coming next

Written, not released yet. This is what the next version of Skra will carry as 0.1.0, and it can still change.

First version. Built, not yet run in game, and the locks are unproven in multiplayer.

Chests and portals a player built now say who built it when you hover them, and the builder can make one private so only they, the characters on its list, and server admins can use it. A private portal refuses travel both ways and refuses retagging by anyone off its list. Everything starts public, so installing it changes nothing until a builder decides otherwise, and vanilla's personal chest stays private and gains a list.

The server keeps a name book per world, built from beds, wards, tombstones and logins, so an owner line has a name to show even for a builder who is offline. It also decides who counts as an admin and tells every player, because vanilla's own admin check disagrees between the server and the players for a bare Steam id.

The settings panel opens and closes and every action behind it is wired, but its layout is not drawn yet. It waits for a pick between three mockups.

Not in this version, on purpose: damage protection, carts, ships, tombstones and dungeon chests, and blocking hammer removal of a private chest in a base without a ward.

Every setting · 3

All of it lives in one file, written on first run with each description beside its default. The file is the source of truth; edit it there.

BepInEx/config/ezomic.valheim.skra.cfg

server On a server, the host's value applies to everyone while they are connected; your own file is left alone and counts again when you leave. yours Keys and personal settings stay as you set them, on any server.

Access 1
SettingWhat it doesDefaultWhose
AdminsBypass Server admins may open, stack into, take from, travel through and retag chests and portals their builders made private, for abandoned bases and investigations. It covers only the one object an admin is using: other mods reading nearby chests on an admin's behalf, such as crafting from chests in range, get no bypass. It does not open vanilla's personal chest, which no admin could open before Skra. It never lets an admin change who is on a list. Admins are the lines in adminlist.txt, read by the server. Skra accepts either form, but write Steam_7656..., because vanilla and other mods only recognise that one. Online the server's value decides for everyone. true server
Diagnostics 1
SettingWhat it doesDefaultWhose
Verbose Write refusals and list parsing to BepInEx/LogOutput.log. Changes to a lock are always logged on the server whatever this says. Personal: a server cannot turn this on for you. false yours
General 1
SettingWhat it doesDefaultWhose
Enabled Off leaves Skra loaded and deciding nothing: every chest and portal behaves as vanilla, no owner line shows, and Shift+E does nothing. Locks already set are kept on the objects and come back when this is turned on again. Online the server's value decides for everyone, and a player's own value is ignored there. true server

Discussion

Nothing said yet.

Sign in or make an account to join in.