Back to mods
Window Storage Lib [Legacy] project artwork

Vintage Story Mod DB · Vintage Story mod

Window Storage Lib [Legacy]

There is a newer version of this mod Window Storage Lib still works and nothing using it is going to break. But it is no longer being updated - it has been replaced by Window Display Lib, which is a rewrite rather than an update: free item placement instead o

Choose a version Pick your version below, then grab the matching file.

Quick answer

Which Window Storage Lib [Legacy] release matches 1.22.0?

Updated 29 days ago
Best match for your filters 1.2.7
Game version 1.22.0, 1.22.1, 1.22.2
Loader Built-in Vintage Story mod system

Window Storage Lib [Legacy] 1.2.7 targets 1.22.0, 1.22.1, 1.22.2. It must be installed on the client. Installation on the dedicated server is optional. All 1 required mods have matching files.

Where it goes

Is Window Storage Lib [Legacy] required on the client, server, or both?

It must be installed on the client. Installation on the dedicated server is optional.

Client Required
Dedicated server Optional
Loader for this release Built-in Vintage Story mod system
Required install it here Optional supported, not mandatory Not supported do not install here Source doesn’t say do not assume

This release supports both sides, but the source does not require it on the server.

What else does Window Storage Lib [Legacy] 1.2.7 need?

1.2.7 on 1.22.0. Every mod below is checked against that same setup.

All 1 required mods have matching files

Install Attribute Rendering Library first. We found matching files for this game-version and loader setup.

We only count dependency files that match this setup. A file for another loader does not fill the gap.

Before you install it

Add Window Storage Lib [Legacy] without breaking your instance.

Built for Window Storage Lib [Legacy] 1.2.7 on 1.22.0. Pick another file and the loader, install side or required mods may change.

  1. 01

    Stick to this file

    Use 1.2.7. It targets 1.22.0, 1.22.1, 1.22.2; another release may have different loader, side or dependency requirements.

  2. 02

    Bring the mods it needs

    Install Attribute Rendering Library first. We found matching files for this game-version and loader setup.

  3. 03

    Put it on the correct side

    It must be installed on the client. Installation on the dedicated server is optional.

  4. 04

    Pick the file you checked

    Use the “Get this file” button beside 1.2.7. It opens that exact file at the source.

About this project

What does Window Storage Lib [Legacy] add?

There is a newer version of this mod

Window Storage Lib still works and nothing using it is going to break. But it is no longer being updated - it has been replaced by Window Display Lib, which is a rewrite rather than an update: free item placement instead of fixed slots, per-item rotation, a preview of where things will land, particles from stored items, and multi-block windows.

Both can be installed at once. The new one has its own block codes and does not touch anything this one does, so there is no rush and nothing to migrate before you are ready.

If you are a modder building display blocks of your own, the new library is the one to use - it is documented on its page.

Window Storage Lib

Library for my window storage mods - can be used by modders to make their own as well

Requirements & Important Info

Config Update: Should now automatically update the config file with the latest settings (Added by Window Storage Lib)
Linux Users: For issues with Linux, please update to the version of Window Storage Lib (1.2.3 or above) where it has been fixed. Thanks to Toyota for helping me with testing!

Features

Animations

  • Animations can be called absolutely anything.
  • Uses animationShapePath to define animations from a separate shape file, which can hold multiple animations.
  • You can use isWindow to animate things without actually changing the open/closed state.

Slot, Frame, & Collision Groups

  • slotGroups now have their own dedicated section in the JSON.
  • Supports any number of slot groups, with a max of 7 slots per group. You can now use asymmetrical counts per group (e.g., 3, 5, 4).
  • Transforms can be adjusted uniquely per group (spacing, startOffset, zCenter, yOffset, rotateY).
  • The selectionBoxes at the end of the JSON are used to determine the size and placement of item slots.
  • frameBoxGroups have their own JSON section. You can tie animations and boxes together for interactions using animOpen / animClose alongside openFrameBox and closedFrameBox.
  • Allows for multiple independent animations. You can also use isWindow: false to stop the open/closed state from changing.
  • Includes arrayed staticFrameBoxes for fixed elements that don't need animations.
  • collisionBoxGroups now have their own JSON section. Uses openCollisionBox and closedCollisionBox for animated parts, plus staticCollisionBoxes for normal static elements.

Opening & Closing

  • Includes a canOpen attribute so you can make window styles that stay closed.
  • FrameBoxGroups completely manage open/close interactions via selection boxes.
  • The open/closed toggle runs **Server-Side Only**, which allows linkedOpen to sync perfectly.
  • The linkedOpen attribute syncs stacked vertical windows so they toggle open together. Without it, stacked windows open independently.
  • Plays a nice "swoosh" sound whenever a window pane is toggled.
  • Breaking an open window will correctly drop its regular closed item variant.

Display, Stagger & Stacking

  • Tooltips show the current display mode per group, individual slot item interactions, and block placement options based on player direction.
  • Includes 4 stagger configurations (Straight, Alternating, Random, Fine Tune) along with slotGroup display interactions.
  • Snaps items directly to texture pixels for a cleaner look.
  • Allows item placement fine-tuning in real-time via the in-game TFEdit menu (onWindowStorageTransform).
  • Detects when a BEWindowStorageLib block is placed directly below. When stacked, it completely hides slot selection boxes and blocks item placement. Display mode info is also automatically hidden when fully stacked.
  • You can manually pick which slot groups hide when stacked using the stackingHideGroups attribute.
  • Add placeWith: "shape path" and pairedWith: "below" to your JSON to automatically lay down stacked multi-block structures. Great for linking animations with linkedOpen. For 2-high or 3-high layouts, you can pair shapes together so they are placed or broken as one. If it detects a block blocking the space above, it throws a warning and prevents placement.

Food Storage, Lighting & Weather

  • Food Storage: Integrates with vanilla food spoil rules. The spoil rate changes naturally based on whether the window is open or closed, and shows per-slot freshness info and ripening spot metrics directly in the tooltip.
  • Lighting: Placed items with LightHsv values project light, showing their level and color. Lighting updates only when the brightest value shifts (preventing constant flicker). The legacy ghost block lighting bug is also completely fixed.
  • Rain Sound: Simulates rain noise against window panes. Uses a single sound instance across all active window instances to preserve frame rates. Volume scales with real-time rainfall intensity and fades naturally. Can be disabled per style using disableRainSound. When windows are toggled open, it dynamically blends into ambient weather sound.

Controls & Stagger Modes

Interactions are designed to be smooth and intuitive. You can fully interact with slots even while holding items.

  • Right Click on FrameBox to interact with window states
  • Right Click on an empty slot with an item to place it
  • Right Click on a filled slot to retrieve your item
  • Wrench + Right Click on a slot with an item to rotate it anti-clockwise (remembers rotation when removed)
  • Wrench + Sprint + Right Click to rotate clockwise
  • Sneak + Sprint + Right Click on any slot to cycle display modes for that entire group
  • Sprint + Right Click on a slot in Random Mode to shuffle item depth
  • Sprint + Right Click on a slot in Fine Tune Mode to move the item forward
  • Sneak + Right Click on a slot in Fine Tune Mode Only to move the item backwards

Stagger Modes Explained

Stagger modes can be applied per group (Group 0, 1, and 2 are entirely independent). The current setup is shown via an in-game Info Box format (Display 1/2/3 : Mode)

  • Straight / Alternating: Clean, structured alignments
  • Random Mode: Changes depth naturally per group. Use interactions to shuffle
  • Fine Tune Mode: Adjust the precise depth of an item per individual slot
  • Smart Hiding: Automatically hides slot group info boxes, perish rates, and stagger modes when stacked on other BEWindowStorageLib windows

Config File Options

Settings are managed via Window Storage Lib. Should now automatically update the config file with the latest settings. I highly recommend installing Config Lib and Auto Config Lib to allow mod settings to be changed in game.

  • Universal Rain on Window Volume: Range 0 (Off) to 10 (Loud)
  • Universal Rain Sound Range: 1 to 64 blocks
  • Universal Animation Speed: 1 (Very Slow) to 5 (Very Fast)
  • Universal Slot Rotation Degrees: 5 to 90 degrees
  • Universal Slot Stagger Strength: 1 (Subtle) to 5 (Strong)
  • Room Safe Opening: False (Default): Standard functions, True: Rooms will stay insulated whether windows are open/closed - all windows need to be closed before changing to work properly
How to add Window Storage Transforms
{
        "onWindowStorageTransformByType": {
            "*": {
                "translation": {
                    "x": 0.0,
                    "y": 0.00,
                    "z": 0.0
                },
                "rotation": {
                    "x": 0,
                    "y": 0,
                    "z": 0
                },
                "origin": {
                    "x": 0.5,
                    "y": 0.0,
                    "z": 0.5
                },
                "scale": 0.0
            }

Project description from Vintage Story Mod DB.

Pick your setup

Window Storage Lib [Legacy] releases for each Vintage Story version.

Choose the version and loader you play, then open the matching release.

19 available setups

Showing the newest 12 of 19 game versions. Older files are in the list below.

Check the dependencies, then try the file in a copied instance before changing a world you care about.

Recent files

Window Storage Lib [Legacy] versions and loaders

9 of 17 releases match
Clear filters

Looking for an older file? The official Vintage Story Mod DB project page is in Resources.