InventoryFlow

InventoryFlow — Frequently Asked Questions

The questions buyers ask before and after purchase — buying decision, compatibility, setup, RPG features, performance, save system, roadmap, and licensing.

Unity 6000+ SaveStack-native 579 tests IL2CPP-AOT-safe

Buying Decision

Q: Is InventoryFlow worth €49.99?

Yes if you’re shipping a Unity RPG or any game with non-trivial inventory needs. The 579-test discipline and SaveStack integration alone save 2–4 weeks of work versus rolling your own. If you’re building a casual mobile game with 3-item inventory, it’s overkill — go with a free or sub-€20 plugin.

Q: Is SaveStack required?

Yes. InventoryFlow’s persistence is built on SaveStack’s saver framework — they’re designed as a pair. The Bundle (Save+Inventory €69.99) saves €30 over buying separately.

If you already own SaveStack, you only need InventoryFlow at €49.99 (or €34.99 during launch sale).

Q: Can I use it without SaveStack?

Technically no — the SaveStack adapter is part of the package and the Saver MBs depend on SaveStack types. You could remove the SaveStack-asmdef and use the Core / Equipment / Currency / WorldContainers / UI / Quests modules without persistence, but you’d give up one of the main differentiators.

Q: How do I compare InventoryFlow to Devdog Inventory Pro or Opsive UIS?

See the feature matrix at tools.avanatro.com/inventoryflow/compare. Short answer:

  • vs Devdog Inventory Pro: Similar mid-market positioning. InventoryFlow ships more RPG polish (set bonuses, item compare, cooldowns), is SaveStack-native, and runs under dotnet test.
  • vs Opsive UIS: Opsive is suite-tier and couples to Opsive Character Controller. InventoryFlow is standalone and €35 cheaper. Pick Opsive if you’re committed to the Opsive suite; pick InventoryFlow otherwise.
Q: Can I generate inventory content with AI?

Yes, but via a separate companion plugin called LoreFlow (releasing Q3 2026). LoreFlow runs entirely in the Unity Editor — bring your own Anthropic/OpenAI API key, design a Lore Bible, and generate typed ItemDefinition assets that InventoryFlow consumes directly. Zero runtime cost for your players, zero DSGVO complication. Sign up at tools.avanatro.com/loreflow for the launch announcement.

Q: Does InventoryFlow lock me into the AI workflow?

No. InventoryFlow is fully usable standalone — design items manually via the Item Definition Wizard, ScriptableObject inspector, or your own custom generator. LoreFlow is opt-in and writes nothing inside InventoryFlow’s runtime; it just outputs .asset files that ItemRegistry.RegisterRange (v1.1) picks up.

Technical Compatibility

Q: What Unity versions does it support?

Unity 6000.0 LTS minimum. Older Unity versions (2021.3 LTS, 2022.3 LTS) are not supported — we dropped them for parity with SaveStack and to keep the test surface manageable.

Q: Does it work on WebGL / mobile?

Yes. IL2CPP-AOT-safe — no reflection.emit, no dynamic code. WebGL, Android, iOS-IL2CPP all tested. Performance is below frame budget for inventories up to ~1000 slots.

Q: Does it work with URP / HDRP?

Yes — pipeline-agnostic. InventoryFlow is data + UGUI only. The render pipeline doesn’t matter.

Q: Does it work with Game Creator / Opsive Character Controller / [Other Suite]?

InventoryFlow doesn’t depend on any specific character controller — it’s pure data + UGUI. You can wire it up to any character controller via your own bridge code. Migration guides for Opsive UIS and Game Creator Inventory ship with the package.

Q: Does it support 2D games?

Yes. The WorldContainers module includes both 2D (OverlapCircle) and 3D (OverlapSphere) Interactor logic. UI panels are UGUI — render-pipeline-agnostic.

Setup + Integration

Q: How long from package import to first save?

~5–10 minutes if you follow the Quick Start in Documentation~/README.md. The 7-minute tutorial on YouTube walks through a complete setup including UI prefabs and SaveStack integration.

Q: I imported the RPG Inventory Demo and the tooltip text is showing missing-glyph boxes.

You haven’t imported TMP Essential Resources. Open Window → TextMeshPro → Import TMP Essential Resources. This is a Unity-side step, not an InventoryFlow issue.

Q: WalletPanel doesn’t update when the Wallet changes.

WalletPanel.Bind(walletHost) takes a WalletHost bridge MB, not a raw Wallet domain object. Add a WalletHost to your player GameObject, assign your Wallet reference, then bind the panel to the host. This is documented in the troubleshooting section of the README.

Q: My inventory state isn’t persisting after save/load.

Make sure:

  1. InventoryHost is on a GameObject in your scene with the Inventory assigned.
  2. InventorySaver is on the same GameObject and references the Host.
  3. ItemRegistry is populated before you call SaveSystem.Load. The Registry is populated on Awake of host MBs by default — if you populate later, the load will skip missing IDs.
Q: How do I migrate from Inventory Pro / Opsive UIS / my custom system?

See Documentation~/MigrationGuides.md. Each migration path takes 6–12 hours of focused work depending on item-catalog size and coupling depth.

Q: Can I use my existing UI? I don’t want UGUI panels.

Yes. The UI module is one asmdef of 11 — you can ignore it entirely and bind your own UI to the domain events (Inventory.OnSlotChanged, Wallet.OnBalanceChanged, EquipmentSet.OnEquipmentChanged). The data layer doesn’t depend on any specific UI framework.

RPG Features

Q: How does the rarity system work?

7 tiers by default: None, Common, Uncommon, Rare, Epic, Legendary, Unique. Set on ItemDefinition.Rarity. Tooltips auto-tint based on DefaultRarityColors (overridable via RaritySwatch SO). ItemRarityComparer sorts inventory by rarity-desc + name-asc + empties-last by default.

Q: Can I add custom rarity tiers?

The enum has 23 bits of headroom for user-defined tiers — extend the enum (or use (ItemRarity)128 for a custom value), then add color mappings in your RaritySwatch override.

Q: How do set bonuses work?

Create an EquipmentSetBonusDefinition SO with tier-list (e.g. 3 pieces → +5% crit, 6 pieces → +15% crit + 10% attack speed). Mark items with matching SetId. Call EquipmentSet.AggregateSetBonuses(stats, bonusList) to fold bonuses into your stat accumulator. Highest-matching-tier wins (Witcher 3 Cat-School pattern).

Q: Do cooldowns work across save/load?

Yes — ItemCooldownTracker uses DateTime.UtcNow for deterministic time tracking. Cooldown state can be persisted alongside the Inventory state via the same SaveStack mechanism. Past-future logic is handled (cooldowns expired during a save-load cycle don’t trigger).

Q: Does the inventory support drag-and-drop between panels?

Yes. DragDropOperation is a pure-C# helper that the UGUI panels use. Drag from InventoryPanel to EquipmentPanel swaps via EquipmentSet.TryEquip (Witcher / Skyrim semantics). Cross-inventory drag (Player → Container) uses InventoryTransfer.TryMoveAll with atomicity guarantees.

Q: Can I have NPCs with their own inventories?

Yes. NpcInventoryHost is a MonoBehaviour that wraps an Inventory — NPCs have inventories via composition, not inheritance. NpcLootDropper adds 3 modes: DropAll (everything on death), RollFromTags (probability-based by tag), FromLootList (explicit weighted list).

Performance

Q: How fast is it?

Stress-tested at 1000-slot inventories with TryAdd operations in ~2–5ms total (well below frame budget). ItemRegistry lookups at O(1). Full benchmark table at tools.avanatro.com/inventoryflow/performance.

Q: Will it cause GC spikes?

The hot path is allocation-light. Inventory.OnSlotChanged allocates one ItemStack clone per mutation (snapshot pattern). InventoryFilter.ByTag / ByText are zero-allocation lazy IEnumerable. TradeHelper.TryBuy allocates zero on the success path.

Q: Can it handle 10,000+ items?

Yes for the ItemRegistry (Dictionary<string, ItemDefinition>, O(1) lookup, stress-tested at 10k items in <100ms register, <50ms lookup). For inventories: design target is up to 1000 slots — beyond that, performance is extrapolated linear, not stress-tested.

Q: What about grid-spatial inventories like Diablo / PoE?

Not in v1.0 — the slot model is the v1.0 design. Grid-spatial inventory is on the v2.0 roadmap (Q2 2027) as a separate major version, with breaking changes to the slot data model.

Save System

Q: What happens if I remove an item from the registry but save files still reference it?

ItemRegistry is resilient — missing item IDs log a warning and leave the slot empty rather than crashing. The save schema is wrapped in a _v envelope for future migration. Inspect what’s in a save file via the Save Data Inspector window.

Q: Can I migrate from save version v1 to v2 in the future?

Yes. The SaveSchema._v field is exactly that — a version-envelope. SaveStack’s MigrationHandler framework handles versioned migrations. We’ll publish migration guides when breaking schema changes happen (v2.0 grid-spatial inventory).

Q: How is save data encrypted?

AES-256-CBC by default via SaveStack. AES-256-GCM is also available as a SaveStack option (experimental IL2CPP-only in v1.0 of SaveStack, full Mono support coming in SaveStack v1.1).

Q: Can I save inventory to the cloud?

Yes via SaveStack’s IStorageProvider interface. Plug in your own cloud storage (Steam Cloud, PlayFab, Firebase, etc.) — InventoryFlow doesn’t care where the bytes end up.

Roadmap

Q: What’s coming in v1.1?
  • Vendor module — NPC merchants with refill schedules, buy-back buffer, vendor-specific markup
  • Crafting module — recipes, stations, recipe books, discovery flow
  • Welle 3 RPG polish — buy-back buffer, bulk sell junk, currency conversion, equipment conflict groups, auto-replace-on-pickup
  • PlayMode test sweep — drag-drop, physics-cast interactor, coroutine respawn, save roundtrip

ETA ~8 weeks after v1.0 submit (~2026-09-15). Free upgrade for v1.0 buyers.

Q: What’s coming in v2.0?
  • Grid-spatial inventory — Diablo / PoE / Tarkov stash-grid with placement validation and rotation
  • Socketing / modifiers — gem sockets, modifier aggregation

v2.0 is a breaking change with separate pricing (new buyers pay more, existing buyers get free upgrade). ETA Q2 2027.

Q: Will you add multiplayer / networked inventory?

Not on the v1.x or v2.x roadmap directly. Networked inventory can be built on top of InventoryFlow by serializing Inventory state via the DTOs over your netcode of choice. Mirror / Netcode adapters are planned for v1.2+ pending demand.

Q: Can you add [Specific Feature]?

Open an issue at github.com/avanatrotools/inventoryflow with use-case context. Avanatro Tools is solo-staffed — features that align with our roadmap or have clear demand from multiple users get prioritized.

Licensing + Support

Q: Is it open source?

No, but full source code is included with purchase. Asset Store EULA — you can modify for your own projects but not redistribute the source.

Q: Do you offer refunds?

Asset Store has a 14-day no-questions-asked refund policy. Beyond 14 days, refunds for reproducible bugs that block plugin use can be requested via Publisher Support.

Q: Where do I get support?
  • GitHub Issues: github.com/avanatrotools/inventoryflow (preferred for bugs + feature requests)
  • Email: contact@avanatro.com (preferred for purchase + license questions)
  • Discord: Avanatro Tools community server (preferred for general dev chat)

Response time during launch period (2026-07-15 to 2026-08-15): typically within 24 hours. Otherwise: within 48 hours.

Q: Is there an Avanatro Tools Discord?

Yes — link on tools.avanatro.com. SaveStack and InventoryFlow community in one server. Pre-launch we’re seeding it with the beta-pilot cohort.

Q: Can I use InventoryFlow in commercial games?

Yes. Asset Store EULA covers commercial use. No royalties, no per-game licensing fees.

Q: What about CC0 / public-domain / open-source-license-compatible projects?

Asset Store EULA doesn’t allow source redistribution, which conflicts with many OSS licenses. Reach out at contact@avanatro.com with your specific case — there’s flexibility for educational / open-source / nonprofit projects.

Common Issues

Q: I see compile errors after import about “Reference to nonexistent assembly AvanatroTools.InventoryFlow.UIFlow”.

Expected and harmless. The Test asmdefs reference UIFlow optionally via versionDefines. Install UIFlow to silence the warning, or ignore it — tests run either way.

Q: SaveStack-Saver components don’t show up in the Add Component menu.

Make sure SaveStack is installed (Package Manager → SaveStack should appear under “In Project”). The InventoryFlow.SaveStack asmdef requires SaveStack as a hard dependency.

Q: My custom interactable isn’t being picked up by the Interactor.

Implement IInventoryInteractable (CanInteract, Interact, PromptText). The Interactor uses OverlapSphere (3D) or OverlapCircle (2D) plus a polymorphic interface lookup — no registration step required. Make sure your GameObject has a Collider with the correct layer.

Q: Where are the sample scenes?

Import via Package Manager → InventoryFlow → Samples → “RPG Inventory Demo” → Import. The sample is code-only with a [MenuItem] that generates UI prefabs at edit-time — the actual scene is built by you following the 10-step README in the sample folder (~12 minutes setup time).

Top 10 — Compact FAQ for Asset-Store-Listing-Embed

The condensed version — the same answers in 10 one-liners, used as a FAQ block at the bottom of the Asset-Store long-description.

  1. Q: Is SaveStack required? Yes — included or bundle.
  2. Q: Does it work on WebGL/mobile? Yes, IL2CPP-safe.
  3. Q: Does it work in 2D? Yes, OverlapCircle Interactor.
  4. Q: Can I migrate from Inventory Pro / Opsive UIS? Yes, migration guides included.
  5. Q: How long to set up? 5–10 minutes for basic Save+Load, ~12 minutes for the full demo.
  6. Q: What’s the test coverage? 579 NUnit tests, dotnet-test compatible.
  7. Q: Does it support custom rarity tiers? Yes, 23 bits of headroom on the enum.
  8. Q: What’s the v1.1 roadmap? Vendor + Crafting + 5 polish features, free upgrade.
  9. Q: Cloud-save support? Yes via SaveStack’s IStorageProvider.
  10. Q: Refund policy? Asset-Store 14-day no-questions, plus bug-refunds beyond.