tModLoader Extensible Inventory - Limitless, paginated inventory

hamstar

Terrarian


Note: Requires Mod Helpers

kjpFJfh.png


Implements an extensible, paginated inventory for players, able to be increased endlessly.

Note: In its base form, this is a "cheat" mod, and it will always be. Limitations of use can be implemented via. config or via. the API for game modes, player abilities, special circumstances, or custom items (e.g. a backpack accessory). Ask if you need coding help with this, or to request new API functions.


Source available here. API also available.

Available config fields are defined here.

ExtensibleInventory.png



 
Last edited:
v1.5.2.1
  • Tweak to item sharing to failsafe against lost items
v1.5.2
  • Updated to MH v5.4.3
  • Pulled @JA-Martina "quick hotkey" PR
  • Attempted fix for config reset clearing coordinate fields
  • Updated mod description
  • Updated hotkey label
v1.5.1.1
  • Fixed inventory scroll wheel detect rectangle
v1.5.1
  • Updated for TML11.5
v1.5.0.4
  • Renamed screen coord config settings to avoid issue existing config settings
  • Added screen dimension clamping to screen coordinate settings
  • Tweaked screen coord defaults very slightly
v1.5.0.3
  • Fixed config settings for screen positions
v1.5.0.1
  • Added config properties as int aliases for screen position properties
  • Improved config layout
v1.5.0
  • Updated to TML11.4 and MH5b
v1.4.1.3
  • Fixed alignment issue with reloading configs for UI positions
  • Set EnableSharedInventoryRecipesViaRecipeHack to disabled
  • Added inbox message alert for enabling recipe hack setting
v1.4.1.2
  • Added (hopeful) fix for ScrollModeEnabled = false not preventing scroll wheel interference
v1.4.1.1
  • Added DebugModeUI
  • Attempted better error outputs for loading player inventory
  • Attempted remedy for UI interactivity fail
v1.4.1
  • Removed sharing button; sharing is now on for all pages by default
  • Added config setting to hide scroll mode icon (HideScrollModeIcon)
  • Recipes now correctly refresh with page changes
v1.4.0.4
  • Removed use of Mod.Call() for hooking purposes; not mod compatibility-friendly
v1.4.0.3
  • Disabled shared inventory recipes (until mod compat and lag issues can be resolved)
v1.4.0.2
  • Added native compatibility with kRPG (via. general mod compatibility additions)
  • Forced recipe refreshes with page changes
v1.4.0.1
  • Fixed issue with saving the 'IsShared' state of the current page
  • Refactored shared page saving to a more correct form
v1.4.0
  • Added InventoryBook.GetSharedItems(Player, bool)
  • Implemented use of RecipeHack to update recipes across shared pages
  • Added clickable page tab buttons
  • Added mod recommendations
v1.3.0.4
  • Fixed critical issue with saving items; misleading TagCompound functionality
v1.3.0.2 (USE 1.3.0.4+!)
  • Darkened "sharing off" icon
  • Added page sharing saving between games
v1.3.0.1
  • Fixed issue of coins being "shared" improperly
v1.3.0
  • Changed scroll mode icon
  • Defined Sharing toggle button icons
  • Restructured UI element code file folders
  • Implemented UIInventoryControlToggle
  • Implemented UI component for page sharing toggle
  • Restructured InventoryBook code layout
  • Refactored InventoryBook code layout a bit (API -> Pages)
  • Further restructured InventoryBook code
  • Separated inventory page-related code into a new InventoryPage class
  • Added setting for inventory pages to indicate if they're sharing
  • Restructured InventoryLibrary code layout
  • Renamed InventoryPageScrollerUI to InventoryUI
  • Restructured InventoryUI code layout
  • Moved IsPlayerInventoryEmpty from InventoryBook to ExtensibleInventoryPlayer
  • Implemented item stack sharing functionality (but no pickup messages yet)
  • Fixed potential future issue with InventoryBooks.GetPageItems()
  • Compressed UI buttons
  • Renamed base class file names
  • Implemented item sharing messages
  • Added some scroll mode 1s duration for simply selecting an item
  • Interrupted scroll mode when mouse exits inventory space
  • Added opacity scale inversely proportional to scroll mode duration
v1.2.4
  • Implemented scroll mode (lingers several seconds after inventory page scrolls)
  • Added ScrollModeEnabled
  • Added inbox message about scrolling
v1.2.3.5
  • Added safety checks against bad local player references
v1.2.3.4
  • Changed from Item.Clone() to DeepClone() (fixes errors?)
  • Prevented UI hovering effects without needed settings to enable buttons
  • Removed SpriteBatch Begin compensations in ModifyInterfaceLayers
v1.2.3.3
  • Attempted failsafe for SpriteBatch.Begin error
v1.2.3.2
  • Added errors for UI scroll button fails
  • Attempting some counter measures against player controls glitching...
  • Set inventory-to-memory dump methods to clone items (might address hang bugs?)
v1.2.3
  • Cleaned up remaining snake case
  • Updated to MH v4.2.3 (including conventions)
v1.2.2.1
  • Updated to MH v4.2.2
v1.2.2
  • Switched from snake case to camel case
  • Update to MH v4.2
v1.2.1.4
  • Updated for MHv4
v1.2.1.3
  • Fixed issue with MP PreItemCheck (possible source of other issues)
v1.2.1.2
  • Revised inventory dupe fix to solve issue of disappearing pages
v1.2.1.1
  • Added a failsafe against page duping
v1.2.1
  • Restructured internal Inventory and UI file layout
  • Set UI buttons to not render when config setting disables them
v1.2.0
  • Altered config to use mod version instead of its own versioning
  • Set scroll wheel to cycle inventory pages when an item is held
  • Added small ticks to indicate inventory pages
  • Refactored draw code structure
  • Fixed inventory page buttons to correctly re-position when talking to shop NPC
  • Set page tick color saturation to reflect page fullness
  • Restructured UI code file layout (separated Draw code)
v1.1.0.2
  • Fixed failing to load default extended inventory data ("book") from previous version
  • Tidied up load/save code slightly
v1.1.0.1
  • Added missing mod settings syncing in MP
  • (Missing commit from prev vers) Added default inventory loading backwards compatibility
  • Fixed premature inventory page disabling
v1.1.0
  • Restructured to allow multiple inventory page sets (books); untested
  • Added book names (internal-only)
  • Offloaded 'current page' rendering to UI class
  • Refactored UI code to add book picker
  • Refactored UI layout code and files
  • Implemented API
  • Exposed some fields as scoped-controlled properties
  • Implemented book enable/disable
  • Fixed Add Page button premature disable
  • More code refinements and streamlining
  • Added button disable display FX overlay
  • Blocked item use when hovering buttons
v1.0.0
  • First release.
 

Attachments

  • ExtensibleInventory v1.0.0.zip
    28.3 KB · Views: 2,702
  • ExtensibleInventory v1.1.0.zip
    34.8 KB · Views: 630
  • ExtensibleInventory v1.1.0.1.zip
    35.7 KB · Views: 508
  • ExtensibleInventory v1.1.0.2.zip
    35.9 KB · Views: 500
  • ExtensibleInventory v1.2.0.zip
    37.2 KB · Views: 542
  • ExtensibleInventory v1.2.1.zip
    38.1 KB · Views: 472
  • ExtensibleInventory v1.2.1.1.zip
    38.7 KB · Views: 435
  • ExtensibleInventory v1.2.1.2.zip
    38.6 KB · Views: 490
  • ExtensibleInventory v1.2.1.3.zip
    38.7 KB · Views: 745
  • ExtensibleInventory v1.2.1.4.zip
    38.8 KB · Views: 874
  • ExtensibleInventory v1.2.2.zip
    38.1 KB · Views: 418
  • ExtensibleInventory v1.2.2.1.zip
    38 KB · Views: 510
  • ExtensibleInventory v1.2.3.zip
    38 KB · Views: 451
  • ExtensibleInventory v1.2.3.2.zip
    38.2 KB · Views: 407
  • ExtensibleInventory v1.2.3.3.zip
    38.3 KB · Views: 404
  • ExtensibleInventory v1.2.3.4.zip
    38.4 KB · Views: 460
  • ExtensibleInventory v1.2.3.5.zip
    38.5 KB · Views: 396
  • ExtensibleInventory v1.2.4.zip
    38.6 KB · Views: 438
  • ExtensibleInventory v1.3.0.zip
    43.6 KB · Views: 423
  • ExtensibleInventory v1.3.0.1.zip
    43.6 KB · Views: 416
  • ExtensibleInventory v1.3.0.2.zip
    43.7 KB · Views: 446
  • ExtensibleInventory v1.3.0.4.zip
    43.7 KB · Views: 618
  • ExtensibleInventory v1.4.0.zip
    48.3 KB · Views: 526
  • ExtensibleInventory v1.4.0.1.zip
    48.4 KB · Views: 457
  • ExtensibleInventory v1.4.0.2.zip
    49.7 KB · Views: 439
  • ExtensibleInventory v1.4.0.3.zip
    49.9 KB · Views: 462
  • ExtensibleInventory v1.4.0.4.zip
    48.6 KB · Views: 622
  • ExtensibleInventory v1.4.1.zip
    47.1 KB · Views: 551
  • ExtensibleInventory v1.4.1.1.zip
    47.6 KB · Views: 668
  • ExtensibleInventory v1.4.1.2.zip
    47.6 KB · Views: 507
  • ExtensibleInventory v1.4.1.3.zip
    48.1 KB · Views: 1,276
  • ExtensibleInventory v1.5.0.zip
    96.3 KB · Views: 493
  • ExtensibleInventory v1.5.0.1.zip
    106.9 KB · Views: 558
  • ExtensibleInventory v1.5.0.3.zip
    107.4 KB · Views: 417
  • ExtensibleInventory v1.5.0.4.zip
    107.6 KB · Views: 688
  • ExtensibleInventory v1.5.1.zip
    109 KB · Views: 813
  • ExtensibleInventory v1.5.1.1.zip
    109 KB · Views: 1,291
  • ExtensibleInventory v1.5.2.zip
    113.1 KB · Views: 1,006
  • ExtensibleInventory v1.5.2.1.zip
    113.3 KB · Views: 19,003
Last edited:
Damn, I was hoping to beat someone to the punch with a kinda backpack thing, well.. back to the drawing board
Well, if you want an API to bind this to an item, I can provide that, and you'll still get your wish. I'm basically doing this with my On A Rail mod's release version.
 
Damn, I was hoping to beat someone to the punch with a kinda backpack thing, well.. back to the drawing board
Dunno what you have in mind, but I'd love to see some kinda backpack mod. There's currently 2 mods that I know of that kinda fit that theme.. Portable Storage and Bags of Holding. Portable Storage has some bugs (just earlier one of my bags deleted all it's contents), and Bags of Holding requires you to use up accessory slots if you want to auto pickup items into the bags. It also requires you to right click with the bag in the hotbar to access it's inventory. They also have pretty much infinite storage by extending stack size of item types. So I'd personally love to see a decent backpack mod that simply gives you more inventory space, but not infinite space as to keep things balanced, and without the hassle of having to give up accessories or use the hotbar. If that's what you had in mind anyway.
 
Seems that the bottom row of the inventory will overlap the top row of a chest's inventory, however that might be one of my other mods (Would have no idea which because none directly change the inventory to add extra rows to it as far as I am aware), also would be good if the mod could use all of the inventory instead of just the selected page. (Kalciphoz's RPG mod gives you 3 inventory pages and even a whole new inventory altogether and it can craft with items from any of the 3 pages regardless of which is selected, but chests don't like the extra pages that much and won't quick stack from all of them at once, etc.)

Edit: The mod using all the pages instead of just the selected one is almost necessary at least to a certain point, picking up items won't stack them with the same item in a different page which makes working with this mod extremely difficult. Trying to switch pages with a consumable item will also use the item at the same time it switches the page.
 
It's amazing idea, i love it. Thou a little overpowered? How about another version of the mod where you have to craft an upgrade and use it to add page to inventory? Those upgrades would be harder to craft each time you apply a new upgrade, so it could be limited to for example 10 upgrades or so?
I agree with this, maybe it could be like the Demon heart/(celestial onion from calamity), where when you beat wall of flesh/moon lord, you get a cosumable which permentally adds an extra page (2nd page after the wall, 3rd after moonlord)

I like this idea alot, but I'm not going to download it unless there's some kind of balance thrown in. I'm 99% sure your going to do this and this as of right now is just an API/proof of concert
 
I would prefer the current "Just add or remove however many pages you want" thing, because:
1. This would be better for those who have lots of mods that add lots of items, this could be good for people to find their own appropriate amount of pages depending on however many items they end up typically carrying with them from all of these mods, making it perfect for people to find just the right amount of inventory space for the amount of mods they use
2. Would be good to just let this be a cheat-y type mod like cheat sheet, for people who are in the game just for fun and not the inventory management (Or for those who just don't find it fun.)
3. This is the only mod I know of that just lets you choose how much inventory space you have, removing that part and forcing people to use items to increase it (And limiting the amount of pages you can get anyway) would completely leave out anybody else who want's a mod like this (including myself).
 
Knowing Hamstar, we'll very likely get a config file where we can choose the way we want to play the mod.

For the record there 'is' another mod that adds more pages, but it's limited to 3 and it's tied into a complete RPG revamp which, has corruption issues.
 
There's already config options for the mod, but the next version will have more, for sure.

It's the API, however, where the real options become available. It will be up to modders to make use of that, though. On A Rail will use it, also.
 
Im getting this popup everytime i change equipment tab. How do i fix it?
@edit damn i didnt know all these screenshots got uploaded
 

Attachments

  • Screenshot_3.png
    Screenshot_3.png
    66.8 KB · Views: 1,587
  • Screenshot_3.png
    Screenshot_3.png
    66.8 KB · Views: 994
  • Screenshot_2.png
    Screenshot_2.png
    1.4 KB · Views: 981
  • Screenshot_3.png
    Screenshot_3.png
    66.8 KB · Views: 972
For the record there 'is' another mod that adds more pages, but it's limited to 3 and it's tied into a complete RPG revamp which, has corruption issues.
Kalciphoz's RPG mod, fun mod but I found another RPG mod that I like more which is why I want to use this for the extra inventory
There's already config options for the mod, but the next version will have more, for sure.

It's the API, however, where the real options become available. It will be up to modders to make use of that, though. On A Rail will use it, also.
We still need it so that the game can use all pages instead of whichever one is currently selected and it still needs to be made so that changing inventory pages with an item doesn't use the item.
 
Hello! Amazing mod, I have been looking for something like this since forever! Thank you so much for making this mod!
If it's possible could you please add these features?
1) When clicking on the arrows(<,>) or the + sign my character uses the currently selected item in the hotbar, In general it's not a problem for me but you might want to look into it.
2) Please add the ability to name the pages, The name would appear under the keys (<,>,+). For example dedicating a whole page for weapons only and naming it Weapons, etc.

edit: 3)
Only complaint I have is that only the active/selected page is used rather than the inventory as a whole.
Otherwise great mod.

This too please ^

But in general thank you alot for making this mod, its great!
 
Last edited:
Back
Top Bottom