Skip to content

Releases: Zyn-ic/Stoway

Stoway v2.4.1

04 Mar 19:52

Choose a tag to compare

Dynamic Hotbar Consistency Update (for DTA usage)

This release focuses on making dynamic hotbar behavior consistent, predictable, and synced between client and server but mainly fixed for usage with my RPG game Descend the Abyss.

Highlights

  • Dynamic hotbar now compacts correctly after removals, so slot ordering matches player expectations.
  • Client and server hotbar behavior is now aligned to prevent visual/data mismatches.
  • Added drag support for dropping storage items onto hotbar background to fill the first empty hotbar slot.
  • Hotbar selection mode now auto-selects the first occupied hotbar slot on entry.
  • Zoom lock behavior was rewritten for stability on keyboard/mouse while hovering hotbar.

Fixes

  • Fixed cases where items appeared in hotbar on client but remained in storage on server.
  • Fixed dynamic keybind/equip mapping to follow visible packed hotbar slots.
  • Fixed slot name/index parsing issues for 10+ slot UIs.
  • Added stronger correction sync paths when server rejects or reindexes operations.

Internal Improvements

  • Moved shared slot helpers into InventoryStore for cleaner reuse.
  • Reduced duplicate helper logic across SelectionManager and SlotFactory.

Note

I'll most likely change a lot of naming and come in and see where I can make the code base feel a little less "where did I put that again?" in future updates.

So far the underlying code is where I need it to be and I don't really need SlotBinds as yet so I'll most likely have that in the somewhat future.

Important

Will definitely redo that Intro Video I have in the docs cuz sheesh I'm lazy 😭 Hopefully I can get out a more watchable video

Caution

I might've messed up some core server functions ON MY LOCAL BUILD and will now need to go over from scratch with my restructuring, debloating and debugging ;(

Good thing everything seems to work and is functional but I'll dedicate this starting week of march for proper bug fixes.

Also the scrolling feature is still a tab bit off but that's just due to CameraOffSet not giving me a concrete answer on how far zoomed out or in a person is but it's still pretty seem-less and shouldn't be a issue if you're doing first person stuff.

Stoway v2.4.0

13 Jan 23:09

Choose a tag to compare

New Features and Better Documentation

This release introduces significant flexibility to the Stoway ecosystem, including support for hotbar-only gameplay modes, improved
PC/Mobile controls, and more intelligent interaction logic.

🌟 New Features

  • Hotbar-Only Mode: Added BackpackEnabled global setting to support experiences that don't require a full backpack system.
  • Smart Hotbar Swapping: When the hotbar is full and the backpack is disabled, picking up a new item now automatically swaps it with your currently equipped tool (or slot 1), dropping the old item into the world.
  • Auto-Equip Recovery: After a swap occurs (e.g., picking up a shovel to replace an equipped apple), the system now automatically equips the new tool if you were previously holding one.
  • Mouse Wheel Hotbar Cycling: PC users can now scroll to cycle through hotbar slots.
  • Intelligent Zoom Locking: Scrolling the mouse wheel over the hotbar now automatically locks your camera zoom distance, preventing unwanted "zooming in/out" while switching items.
  • Mobile Drag & Drop: Fully enabled touch support for item dragging and inventory management.
  • Adaptive Mobile UI: The "BackpackStuff" button now dynamically shows/hides based on device type and global backpack settings.
  • Hover-Aware Scrolling: Hotbar cycling only activates when your mouse is physically hovering over the hotbar UI.

credits to Lord_BradyRocks for the feature suggestions


🛠️ Bug Fixes & Improvements

  • Operation Security: Fixed AddToBackpack and Swap operations to strictly respect the BackpackEnabled global setting.
  • Settings Refactor: Strictly separated Global Settings from Per-Player Settings to ensure core logic remains immutable while allowing flexible player overrides.
  • Documentation Update: Added a comprehensive guide for implementing Restricted Slots (blocking specific slots like 7 & 8) when the backpack is disabled.
  • Simplified Readme: Refactored README.md for a cleaner, more documentation-focused landing page.

⚠️ Remaining Issues

  • Networking: The network architecture is currently being handled poorly from a readability standpoint; cleanup is planned for future builds.

🔮 Future Roadmap (v2.x)

I am actively working on making Stoway even more flexible. The next major focus for the v2 cycle is:

  • Customizable Keybinds: Full support for user-defined keybinds for both PC and Console, allowing players to tailor controls to their preference.

Multiplatform Support v2.3.6

11 Jan 18:29

Choose a tag to compare

Stoway Release - v2.3.6

I am excited to announce the release of Stoway v2.3.6! This update brings significant advancements in platform accessibility, specifically targeting console support, alongside important architectural improvements and bug fixes.

🚀 New Features

🎮 Console & Gamepad Support

Stoway now fully supports gamepad interactions!

  • Hybrid Input System: Seamlessly switch between Keyboard/Mouse and Gamepad inputs.
  • Console Navigation: Dedicated selection management and drop UI optimized for controller use.
  • Gamepad Controls: Intuitive bindings for inventory management, including equipping, dropping, and moving items.

🏗️ Core-UI Modularization

  • Refactored the core UI structure into modular components, paving the way for easier customizability and skinning in future updates.

🛠️ Improvements & Refactors

  • New InputManager: Centralized input handling logic to better support multiple input devices simultaneously.
  • Internal Keybind Config: Updated the underlying keybind configuration structure to support more dynamic input assignment.

🐛 Bug Fixes

  • Inventory Swapping: Resolved a visual desync issue in the InventoryController that could occur when swapping items rapidly.

⚠️ Remaining Issues

  • Networking being handled poorly on a readable stand point
  • Documentation being lackluster with having barely any clear guide on how to change, add, and remove things.

🔮 Future Roadmap (v2.x)

I am actively working on making Stoway even more flexible. The next major focus for the v2 cycle is:

  • Customizable Keybinds: Full support for user-defined keybinds for both PC and Console, allowing players to tailor controls to their preference.
  • Updated Documentation with a clear flow on GUI creation, feature removal, feature addition, better syntax support and a beginner's guide for plug and play nature without the need code changes.

v1.2.2 Full Stack Rewrite

25 Dec 05:42

Choose a tag to compare

🚀 Release: Stoway v1.2.0 - The Fusion Rewrite

Stoway v1.2 marks the transition from the v0.5.x prototype to a production-ready, modular inventory framework. This release is
a complete codebase rewrite utilizing Elttob's Fusion for reactive UI state management and a decoupled client-server
architecture.

⚡ Core Architecture & Performance

  • Fusion Implementation: The client UI is now fully powered by Fusion, replacing the legacy Instance.new approach. State
    changes (Items, Weight, Equipped) automatically drive UI updates without manual polling.
  • Data-Driven Design: Items are now tracked via UUIDs in strict Lua tables (Hotbar, Storage). Physical Tool instances are only
    spawned when equipped, significantly reducing instance count and memory usage.
  • Delta Replication: Network traffic is minimized. The server now calculates state diffs (Add, Remove, Swap, UpdateMeta) and
    replicates only the changes to the client, rather than sending the entire inventory table every frame.
  • Modular Operations: Server logic is split into atomic operations (AddOperation, RemoveOperation, SwapOperation,
    EquipOperation) with built-in validation and anti-exploit locks per player.

✨ New Features

  • UI Skins & Theming: Introduced Settings.DifferentUIs and a HookManager. Developers can now swap entire UI layouts ("Skins")
    and hook into UI events (OnSlotClick, OnDragStart) without modifying core logic.
  • Advanced Stacking: Rewrite of the stacking logic (StackChecker). Supports metadata comparison, custom max stack sizes, and
    automatic overflow handling (e.g., adding to a new slot if the stack is full).
  • Robust Drag-and-Drop: Completely refactored DragHandler with ghost overlays, proper offset calculation, and validation for
    Hotbar↔Storage swapping.
  • Sorting & Filtering: Implemented SortOrder (Rarity, Name, ItemType) and real-time text filtering for the backpack.

🛠️ Developer Tools

  • Debug Suite: Added ChatCommands.luau for runtime testing.
    • /inv (Dump state), /add [id], /set_limit, /setui, /clear.
  • Configuration: Centralized Settings.luau in Shared for controlling Limits, Stacking, Keybinds, and Rarity colors.

🐛 Bug Fixes (from v0.5.3)

  • Resolved: Stack action visual glitches between equipped/unequipped tools.
  • Resolved: Inconsistent tool tracking logic (replaced with UUID lookup).
  • Resolved: Monolithic script structure (split into Core, Operations, Utils, World).

⚠️ Migration Note
This is a breaking change from v0.5.3. Old data structures and Settings configurations are not compatible. A fresh installation
is required.

⚠️ Issues Note
Somethings might be a little laggy as I rushed to get this as functional as possible with the little time I had with school being out.
Although these issues are all client based and fusion related so you can just use the headless backend that is 9/10 bug free.

Pre-Release: v0.5.3

12 Jun 22:49

Choose a tag to compare

Pre-Release: v0.5.3 Pre-release
Pre-release

🚧 Pre-Release: Stoway📦 (v0.5.3)

⚠️ Important Note
This is the only pre-1.0.0 release. The system is functional and useful for learning or even self-optimizing, especially for those wanting to work without a UI framework.

Fusion has been declared in the code but is not yet used. The next major update will involve a complete rewrite using Fusion, focused on performance and structure.

Note that 1.0.0 and higher are really close and I have started the recoding and restructuring of the code base. You might see some of this in the provided Place file. Although its recommend you just delete or leave them alone since it doesn't concern the core functionality of this release.

Click to expand/collapse Early Pictures

image
image
image

---

✨ Features (Pre-Release)

  • 🔢 Max Slots
    Set the maximum number of slots available in the hotbar.

  • ⚖️ Limit
    Defines the maximum total weight all items combined can carry.

  • 🧹 Sorting
    Fully functional with all sorting types.

    🔍 Note: Filtering logic was added but not implemented.

  • 📦 CanStack
    Determines whether items (and their weight) can stack.

  • 🔢 MaxStackCount
    Limits how much weight one stack can hold.

  • 🏷️ RarityCheck
    Disables or enables rarity-based logic like applying or checking item rarity.

  • 🚫 Droppable
    When off, prevents any item from being dropped.

  • 📊 Tracking Total Weight
    Shows how much total weight the player is carrying. Helps with managing inventory.

  • 🖱️ Drag-N-Drop
    Drag-and-drop functionality is mostly working!


🔮 Planned for Future Releases

  • 🧰 HotbarType
  • 🎒 CarryingType
  • ⌨️ BindKey
  • 🧩 BindFunction
  • 💾 SaveBackpackandSlotInfo / Persistence

    This will serve as a demo, not part of the core system itself.


🐞 Known Issues & Limitations

  • ⚠️ Stack Action Bug
    A visual glitch occurs when stacking weights between two tools, especially when one is equipped.

  • 🐢 Optimization
    Current implementation uses excessive loops and lacks efficient tool-tracking logic.

  • 🏗️ Code Structure Problems

    1. Tool tracking is inconsistent and messy.
    2. Equipped tool logic which including tracking is poorly handled.
    3. Code flow is difficult to understand due to lack of comments and logical ordering.
    4. All logic is bundled in one large ModuleScript, making the architecture hard to scale.

💬 Final Thoughts

This version is a stepping stone, built with functionality in mind, not optimization. It’s perfect for learning, modifying, and extending, especially if you want a foundation without committing to a full UI framework.

Fusion is coming next. Stay tuned! 🚀