AdminQoL
Console panel GUI with favorites, Expands vanilla itemsets command via YAML with EpicLoot and Jewelcrafting examples. Also adds learn/unlearn and clear-inventory commands, suppresses recipe unlock spam, removes equip delay and skill-up effects.AdminQoL
Console panel GUI with favorites, configurable language cycling, and expanded vanilla itemsets via YAML with EpicLoot and Jewelcrafting examples. Also adds learn/unlearn and clear-inventory commands, suppresses recipe unlock spam, removes equip delay and skill-up effects.
Search for all the console commands that vanilla and other mods adds. Also you can favorite the commands in groups.
There is also wooden theme for console panel. You can turn off console panel with f6 by default.
In vanilla, there is console command itemsets. Make your own sets for testing. You can edit vanilla sets or make your own sets. Set supports both Epicloot and Jewelcrafting.
Example of calling in built-in sets. Use command adminqol_clearinventory to clear your inventory if you need it.
Features
- Suppresses Valheim unlock popup spam from
MessageHud.QueueUnlockMsg. - Can hide skill level-up VFX/SFX and skill level-up alarm messages independently.
- Optional instant equip/unequip by removing Valheim's timed equip action.
- Adds admin-only local commands:
Features
- Suppresses Valheim unlock popup spam from
MessageHud.QueueUnlockMsg. - Can hide skill level-up VFX/SFX and skill level-up alarm messages independently.
- Optional instant equip/unequip by removing Valheim's timed equip action.
- Adds admin-only local commands:
- 'itemsets' <itemsetname> itemsetname is defined at
AdminQoL.ItemSets.yml,AdminQoL.ItemSets.EpicLoot.ymlandAdminQoL.ItemSets.Jewelcrafting.yml adminqol_learn <prefab|all>learns all recipes/discoveries, or a prefab item/build piece/crafting station and its related recipes.adminqol_unlearn <prefab|all>unlearns all known items, or a prefab item/build piece/crafting station and its related recipes.adminqol_clearinventorypermanently removes every item entry from the local player's inventory.adminqol_itemsets_reloadreloadsAdminQoL.ItemSets.yml.adminqol_itemsets_listlists currently loaded YAML itemsets.
- 'itemsets' <itemsetname> itemsetname is defined at
- Injects YAML itemsets into Valheim's vanilla
itemsetcommand, so custom sets work withitemset <name> [quality] [keep]. - Optional YAML item metadata for Jewelcrafting sockets and EpicLoot magic items when those mods are loaded.
- EpicLoot set bonuses remain defined by EpicLoot
legendaries.json; AdminQoL only marks itemset items with the matching EpicLoot IDs. - Adds a ConsolePanel command browser to Valheim's F5 console, with command grouping, search, numbered favorite profiles, and F6 show/hide.
- Makes the Settings language cycle order editable through
BepInEx/config/AdminQoL/LanguageSequence.yml. - Adds an admin-gated, read-only Prefab Profiling overlay for inspecting the currently hovered local object. G toggles the overlay and H copies the cached snapshot by default. A compatible ZoneSavior server can optionally resolve cached creator names; without it, unresolved creators remain
Unknown. - Does not use ServerSync. This is intentionally a client/admin utility.
- Admin-only
Ignore Carry Weightprevents encumbrance and lets automatic pickup continue above the weight limit while inventory space and normal stacking rules permit it.
Config
The BepInEx config file is BepInEx/config/sighsorry.AdminQoL.cfg.
Runtime-generated AdminQoL YAML files are stored in BepInEx/config/AdminQoL/.
1 - General:Require Server AdminandLoad YAML Item Sets.2 - Gameplay QoL: unlock popup/log suppression, skill level-up effects/alarm removal, instant equip, andIgnore Carry Weight(default:true).3 - Console Panel: panel size, visual style, vanilla console bottom offset, mouse cursor release, and toggle key.4 - Console Panel Favorites: favorite tab count and favorite command lists.5 - Prefab Profiling: enable/admin gate, toggle-or-hold mode, and display/copy keys. Snapshots refresh once per second and always include the component list.
Ignore Carry Weight applies only to the local host/admin player, even if Require Server Admin is disabled for commands. It respects the game's auto-pickup toggle, item ownership, pickup delay, range, and inventory space checks. It does not change item weights or maximum carry capacity, so the inventory can still display an overweight value. Turning the option off restores normal weight checks; the game's next status update adds or clears the encumbered effect as appropriate. On a dedicated server, enable it in the admin client's config; no AdminQoL server installation is needed.
Learn/unlearn examples:
adminqol_learn all
adminqol_learn ShieldWood
adminqol_learn piece_workbench
adminqol_unlearn all
adminqol_unlearn ShieldWood
adminqol_unlearn piece_workbench
Targets match prefab names only. Item targets affect item discovery and matching output recipes; crafting station targets affect the station entry and recipes crafted there. Both full learn and full unlearn use the explicit all target, and all is included in tab completion.
Language Sequence
Opening Settings > Gameplay on a client creates BepInEx/config/AdminQoL/LanguageSequence.yml from Valheim's current language order. The file is generated only when missing and is never overwritten after it exists.
The YAML is a top-level list of Valheim's internal language IDs:
- English
- Swedish
- French
- Korean
The right arrow follows the list from top to bottom, the left arrow follows it in reverse, and both directions wrap at the ends. English is used as the sequence anchor. The file is read whenever the settings screen opens, so close and reopen Settings after editing it. Unknown and duplicate IDs are ignored, while installed languages missing from the file are appended in their current runtime order. An unreadable or empty file, or one with no supported IDs, falls back to the last valid sequence or Valheim's current order. Dedicated servers do not create or use this file.
YAML Itemsets
When YAML itemsets are first needed, the mod creates BepInEx/config/AdminQoL/AdminQoL.ItemSets.yml from Valheim's built-in itemsets. The file is generated once and is never overwritten by AdminQoL after it exists. Files in the previous BepInEx/config/AdminQoL.ItemSets*.yml root location are not loaded or migrated.
AdminQoL also creates and loads these optional example/reference files:
BepInEx/config/AdminQoL/AdminQoL.ItemSets.EpicLoot.ymlBepInEx/config/AdminQoL/AdminQoL.ItemSets.Jewelcrafting.yml
All files matching AdminQoL.ItemSets*.yml are loaded. The generated EpicLoot file is parsed only when EpicLoot is installed, and the generated Jewelcrafting file is parsed only when Jewelcrafting is installed. Their example entries are copied from all vanilla itemsets, renamed, and expanded with mod-specific blocks. They are enabled: true by default; set an entry to enabled: false if you do not want it in the itemset command.
itemSets:
- name: MyAdminSet
items:
- prefab: SwordIron
quality: 4
stack: 1
use: true
hotbarSlot: 1
skills:
- skill: Swords
level: 100
knownStations:
- piece_workbench
knownItems:
- Wood
- Stone
inheritKnownFromItemSet:
- Start
hotbarSlot is Valheim's itemset hotbar placement. 1 means hotbar slot 1, 8 means hotbar slot 8, and 0 or an omitted field means no hotbar move.
If a YAML set name matches a vanilla set and replaceExisting is true, the YAML definition replaces the vanilla set at runtime. Missing replaceExisting is treated as false. Delete a generated file if you want AdminQoL to regenerate that file.
Known-item inheritance cycles are rejected before Valheim changes the inventory or character knowledge. Missing parent sets retain Valheim's normal behavior and are ignored. While applying a set, referenced crafting-station prefabs use their base level without querying scene-only extensions; placed stations retain Valheim's normal level calculation.
Jewelcrafting socket values support exact gem prefab names, empty, random_simple, random_advanced, and random_perfect. EpicLoot effects support exact effect IDs or type: random; value: random rolls through EpicLoot's effect value ranges.
AdminQoL does not register EpicLoot set definitions. Define custom EpicLoot sets in EpicLoot's legendaries.json, then reference the loaded legendaryId and optional setId from an AdminQoL.ItemSets*.yml file. If setId is omitted, AdminQoL asks EpicLoot which loaded set owns that legendaryId. The generated AdminQoL.ItemSets.EpicLoot.yml documents every supported epicLoot: field.
Known limitation: optional item metadata is applied to the item returned by Valheim's add operation. When one entry creates multiple item instances, earlier instances may not receive metadata; a partially failed add can also leave added items without metadata. For enhanced non-stackable gear, use separate stack: 1 entries and check inventory space. AdminQoL does not retry failed item grants.
Development verification
The Valheim 1.0 adaptation was originally checked against 1.0.7. The carry-weight option is built and contract-checked against 1.0.15 (Windows client build 25390630; dedicated-server build 25390671); actual in-game checks remain necessary. The manifest declares BepInExPack_Valheim 5.4.2350. Build references use the original installed game DLLs, without publicizing them.
Build against the installed Valheim assemblies and automatically deploy the merged Debug plugin to the local game's BepInEx/plugins folder:
dotnet build AdminQoL.sln -c Debug -p:DeployToGame=true
pwsh -NoProfile -File ./VerifyStructureRegression.ps1 -PluginDll ./bin/Debug/AdminQoL.dll -GamePath '<Valheim installation>'
pwsh -NoProfile -File ./VerifyLightweightXRay.ps1 -PluginDll ./bin/Debug/AdminQoL.dll -MonoCecilDll '<Valheim installation>/BepInEx/core/Mono.Cecil.dll'
The structure regression runner requires PowerShell 7 and executes managed methods from the built DLL: knowledge updates, inheritance validation, station-reference scoping, nested/finalizer cleanup, and the carry-weight instruction rewrite (including missing/ambiguous targets and preserved labels/exception markers). It also checks Harmony target signatures and injected parameters against original game assemblies, plus selected IL contracts and the original auto-pickup weight/space/ownership checks. It does not install Harmony patches, construct live Unity components, or change profiles/worlds. The attack target factory is checked through its compiled names instead of executing Harmony's initializer in PowerShell. Its optional -BaselineDll argument compares targets and priorities against the released AdminQoL 1.1.3 DLL, allowing only the two new carry-weight patches.
To repeat against preserved original dedicated-server DLLs, run the structure script in a fresh PowerShell process with -ManagedDirectory '<server snapshot>/original/valheim_server_Data/Managed'; keep -GamePath pointed at the client installation for BepInEx. Each run currently checks 184 assertions. This is an assembly/managed-code check, not a running dedicated server.
The 1.0 adaptation uses ZInput.pointerPosition, explicitly keeps custom commands visible without devcommands, and patches the new ten-argument Inventory.AddItem overload. Itemset grants still run through vanilla code, preserving the new cheated marking and dropIfFullInv behavior. AdminQoL does not intercept or retry overflow drops.
These checks do not replace in-game verification. Before release, confirm startup completes without AdminQoL patch errors; test F5/F6, pointer clicks, search focus during console/style changes and shutdown, category/favorite refresh after permission/config changes, language cycling, prefab and placed crafting stations, learn/unlearn, and item counts/metadata with optional mods. Check itemset grants with free/full inventory, dropped items, cheat marking, and failed/nested grants; check durability preservation during building, repairing, blocking, and attacks. Repeat relevant scenarios as host, dedicated-server admin, and non-admin client using disposable characters/worlds. Optional ZoneSavior name lookup must also degrade safely when the server integration is unavailable.
For Ignore Carry Weight, exceed the usual weight limit and verify movement/stamina plus automatic pickup into an empty slot or a compatible stack. Check full inventory with no stack capacity, auto-pickup disabled, an item owned by another peer, option toggling while encumbered, reconnects, and a non-admin client (also with Require Server Admin=false). Confirm the total inventory-plus-ground item count is conserved. A missing or ambiguous auto-pickup patch target logs a warning and leaves the original pickup weight check intact.


