The definitive inventory management addon for World of Warcraft 3.3.5a
- Features
- Background Story
- Getting Started
- What's Inside
- Architecture
- What's Next
- Contributing
- Resources
- License
Switch between three view modes on the fly:
- Grid View (Bagnon-style) โ Unified container, familiar layout
- Flow View (AdiBags-style) โ Smart categories with dynamic sections
- List View (Sorted-style) โ Data-dense spreadsheet layout
- Automatic item classification (Quest, Equipment, Consumables, Trade Goods)
- Rule-based custom categories for power users
- Stable merge-sort eliminates "dancing items"
- Event Bucketing โ Coalesces rapid BAG_UPDATE events (no spam)
- Object Pooling โ Zero GC churn, no frame drops
- Lazy Loading โ Bank data loads on demand
- Integrates with Auctionator/TSM for item pricing
- "Sell Junk" button at vendors
- Total inventory value display
- See items across all alts
- "Also on: Alt (20)" in tooltips
- Offline bank viewing
- API Shim layer bridges 3.3.5a to Retail
- Portable codebase for Dragonflight/War Within
The WoW 3.3.5a addon ecosystem has long been fragmented:
- Bagnon offers simplicity but no organization
- AdiBags offers categories but "layout jitter"
- ArkInventory offers power but overwhelming complexity
OmniInventory unifies the best of all worlds โ the visual simplicity of Bagnon, the intelligent sorting of AdiBags, and the configurability of ArkInventory โ while solving the performance issues that plague older addons.
Built from the ground up with forward-compatible architecture, OmniInventory is designed to be the last bag addon you'll ever need.
- World of Warcraft 3.3.5a client
- No external libraries required (self-contained)
- Download the latest release
- Extract to your WoW AddOns folder:
{WoW Install}/Interface/AddOns/OmniInventory/ - Restart WoW or
/reload - Press B to open bags or type
/omni
| Command | Action |
|---|---|
/omni or /oi |
Toggle bags |
/oi config |
Open settings |
/oi debug |
Show pool stats |
OmniInventory/
โโโ OmniInventory.toc # Addon manifest
โโโ Core.lua # Entry point, slash commands
โโโ AGENTS.md # AI agent instructions (MCAF)
โโโ Omni/ # Core logic modules
โ โโโ API.lua # Shim layer (3.3.5a โ Retail)
โ โโโ Events.lua # Event bucketing
โ โโโ Pool.lua # Object recycling
โ โโโ Utils.lua # Helper functions
โ โโโ Data.lua # SavedVariables
โ โโโ Categorizer.lua # Item classification
โ โโโ Sorter.lua # Sort algorithms
โ โโโ Rules.lua # Custom rule engine
โโโ UI/ # Visual components
โ โโโ Frame.lua # Main window
โ โโโ ItemButton.lua # Item slot widget
โ โโโ GridView.lua # Grid layout
โ โโโ FlowView.lua # Category flow layout
โ โโโ ListView.lua # List/table layout
โโโ docs/ # Documentation (MCAF)
โ โโโ Features/ # Feature specifications
โ โโโ ADR/ # Architecture decisions
โ โโโ Testing/ # Test strategy
โ โโโ Development/ # Setup guides
โโโ legacy/ # ZenBags v1 archive
OmniInventory uses a layered architecture:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ UI Layer โ
โ (Frame, GridView, FlowView, ListView) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Logic Layer โ
โ (Categorizer, Sorter, Rules, Pool) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Data Layer โ
โ (Data, Events, SavedVariables) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ API Shim Layer โ
โ (OmniC_Container โ WoW API) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
The API Shim (Omni/API.lua) wraps legacy 3.3.5a calls into modern table-returning functions, enabling portability to Retail with minimal changes.
- Phase 1: Foundation
- Phase 2: Filter Engine (Visual Editor)
- Phase 3: Visual Polish & Masque
- Phase 4: Integrations (Offline Bank, Pawn)
- Phase 5: Release v2.0-beta
- Cross-character viewing (UI pending)
- Search History
- Item Set Manager integration
Contributions are welcome! Please read CONTRIBUTING.md first.
- Fork the repository
- Create a feature branch
- Write feature doc (MCAF workflow)
- Implement and test in-game
- Submit a Pull Request
This project is licensed under the MIT License โ see LICENSE for details.