
Mods / Quick Stack
Author: Hellaeh
Side: Both
Created: Dec 11th 2023 at 2:34 AM
Last modified: 17 hours ago
Downloads: 3249
Follow Unfollow 64
Recommended download (for Vintage Story 1.20.12):
QuickStack-0.7.1.zip
1-click install
Requires Favorite mod to function
It is recommended to keep whitelist (default) mode on
Quick Stack:
- Scans the content of your inventory, while ignoring favorite items
- Scans nearby containers in radius (configurable)
- Tries to place items from your inventory into container based on their content, preferring already filled slots
Quick Refill:
- Scans the content of your inventory, while ignoring non-favorite items
- Scans nearby containers in radius (confugurable)
- Tries to refill your non-full favorite slots from containers
Usage:
- Assign hotkey for Quick Stack in settings
- Assign hotkey for Quick Refill in settings
- Items marked as Favorite will not stack away on quick stack to nearby inventories
- Items marked as Favorite will be refilled on quick refill from nearby inventories
Server Config:
- MaxRadius - enforces a limit on Radius, keep it reasonable (hard cap is 256)
Client Config:
- Radius - how far the mod should scan for containers, limited by MaxRadius
- Mode
- 0 - Whitelist
- 1 - Blacklist
- Whitelist - a list of whitelisted containers, use chat commands to add/remove container
- Blacklist - a list of blacklisted containers, use chat commands to add/remove container
Chat commands:
Values in square brackets [...] are optional, and brackets themself should be omitted in any case
/quickstack maxradius [value] or /qs maxradius [value] - sets or prints "MaxRadius" (need to be a root)
.quickstack or .qs - adds the container you're looking at to the current mode list (or removes if already present)
.qs add - adds the container you're looking at to the current mode list
.qs remove - removes the container you're looking at from the current mode list
.qs mode - toggle between blacklist and whitelist modes
.qs radius [value] - sets or prints "Radius"
Currently in alpha. Expect many bugs. Feel free to report any bug found in the comments below or on github
Roadmap:
- Add visual and sound cue to highlight the container that took the items
- Blacklist / Whitelist for containers partially done
- Refill from containers
- Make favorite system a standalone mod
- More? Write down your wishes in the comments.
Mod Version | For Game version | Downloads | Release date | Changelog | Download | 1-click mod install* |
---|---|---|---|---|---|---|
0.7.1 | 34 | 17 hours ago | QuickStack-0.7.1.zip | 1-click install | ||
- fix loading issue (?) | ||||||
0.7.0 | 165 | Jun 30th at 4:26 PM | QuickStack-0.7.0.zip | 1-click install | ||
- add `/quickstack maxradius` and alias `/qs maxradius` commands, requires root | ||||||
0.6.0 | 88 | Jun 27th at 2:49 PM | QuickStack-0.6.0.zip | 1-click install | ||
| ||||||
0.5.1 | 105 | Jun 21st at 11:12 PM | QuickStack-0.5.1.zip | 1-click install | ||
0.5.1 - fix client radius not being used
| ||||||
0.4.2 | 1448 | Jan 18th 2024 at 5:19 PM | QuickStack-0.4.2.zip | 1-click install | ||
Fix stack\refill from\to sealed barrels - issue | ||||||
0.4.1 | 350 | Dec 30th 2023 at 6:13 PM | QuickStack-0.4.1.zip | 1-click install | ||
Can no longer stack/refill to/from ground storage (piles, pit kiln) to avoid a crash | ||||||
0.4.0 | 230 | Dec 25th 2023 at 9:12 PM | QuickStack-0.4.0.zip | 1-click install | ||
1.19 ready Added quick refill functionality. Default hotkey "CTRL+X". Summary: | ||||||
0.3.1 | 222 | Dec 23rd 2023 at 4:03 PM | QuickStack-0.3.1.zip | 1-click install | ||
Split into "Quick Stack" and "Favorite" | ||||||
0.2.2 | 261 | Dec 15th 2023 at 2:02 AM | QuickStack-0.2.2.zip | 1-click install | ||
Added sound cue on the container that took at least one item | ||||||
0.2.1 | 169 | Dec 13th 2023 at 6:56 PM | QuickStack-0.2.1.zip | 1-click install | ||
Fix stacking to the same container | ||||||
0.2.0 | 171 | Dec 12th 2023 at 9:15 PM | Empty | QuickStack-0.2.0.zip | 1-click install |
Hopefully i fixed the issue. You have to update both this and "favorite" mods.
Bov1ne, BulletSponge
I'm a new player and just installed the most recent stable. I only installed 4 mods including favorite and this one. The default quickstack key (X) doesn't seem to do anything when I tried putting half a stack of cattails in a chest, but mods do work as the 'bed respawn' I also installed works. I noticed in the keymappings that 'favorite toggle' or something was present (not sure if that's part of the favorite mod or not but I thought it might be). I didnt' see anything for quick stack to map it though. I noticed X which you say is your default guy was mapped by default to 'swap left and right hands'. I changed that mapping to something else, but X didn't quick stack when I tried it after.
I tried 'stack attack' mod and that one lets me quickstack, the controls also show up in the mapping. If yours starts with 'Q' it wasn't showing in the bindings search, but this other mod does. Hope that helps narrow down troubleshooting a bit for you.
I do sometimes wonder if my mod works at all for you guys? Judging by the comments it does work for some.
A quick checklist:
Hey Hellaeh sorry for a delayed reply, I was trying to stack like-blocks in creative in a standard chest. I had non-favorited blocks of "low fertility soil", "hay-bale" and "slate cobblestone". I had about 10 of each in my inventory, and about 20 of each in the chest. Tried it with and without other mods, no dice.
What exactly are you trying to stack? Just an FYI - this is not quick deposit mod, it will stack only identical (or similar things), that are not favorited, from your inventory to nearest compatible whitelisted container. BulletSponge
If you're sure what you're doing is correct, then try to disable other mods if you have any (aside from "favorite" mode), and test it in creative.
Edit: If container is empty, then no stack will happen as there's nothing to stack.
I can see the config files, and the option in key configuration. Mode is whitelist, and the chests I'm interacting with are added to that list, but nothing seems to happen when pressing X, tried it with different keys, same result.
I don't see the keys for the mod in settings & pressing X in game doesn't do anything it seems. I have favorites installed as well
Post classnames of inventories you want to add by default. Test them first tho, because i will not.
Explanation of client config keys:
"Mode": 0 - whitelist (default), 1 - blacklist
"Whitelist": works only if `Mode == 0` contains an object with key-value pairs example `{"inventoryClassName": { "ApplicableTo": 0 }}`
"Blacklist": works only if `Mode == 1` otherwise same as whitelist
"Radius": self-explanatory
So if you want to add a new container type you would need to get it's inventory classname and add a new entry to `Blacklist`/`Whitelist` respectively.
Inner object inside value with "ApplicableTo" does nothing atm, but still needed, don't forget about when adding a new container.
Ughhh, i really didn't wanna release it this early. But otherwise it will take forever (i'm too lazy). 0.5.0 by default is in whitelist mode with only chests and barrels allowed to quickstack/refill. You can add/change it in client config (yeah, not very user friendly, ik).
JustaKobold
I have a crash happening, i used quick stack to sort some of my inventory, i also have primitive survival and had some of the smokers around, one of the smokers already had fire wood on it and it seems it stacked more firewood into it, i noticed it sticking out of it weirdly and tried to break it to retrieve the fire wood, it then crashed. Crash report shows Primitive survival crashing but its due to Quick stack putting fire wood where it can go, is it possible to blacklist the smokers?
here is the log if its helpful
System.Exception: Can't create itemstack without item!
at Vintagestory.API.Common.ItemStack..ctor(Item item, Int32 stacksize) in VintagestoryApi\Common\Collectible\ItemStack.cs:line 225
at PrimitiveSurvival.ModSystem.BESmoker.OnBreak() in C:\net7repos\primitivesurvival\primitivesurvival\ModSystem\blockentity\besmoker.cs:line 339
at PrimitiveSurvival.ModSystem.BlockSmoker.OnBlockBroken(IWorldAccessor world, BlockPos pos, IPlayer byPlayer, Single dropQuantityMultiplier) in C:\net7repos\primitivesurvival\primitivesurvival\ModSystem\block\blocksmoker.cs:line 112
at Vintagestory.API.Common.CollectibleObject.OnBlockBrokenWith(IWorldAccessor world, Entity byEntity, ItemSlot itemslot, BlockSelection blockSel, Single dropQuantityMultiplier) in VintagestoryApi\Common\Collectible\Collectible.cs:line 586
at Vintagestory.GameContent.ItemAxe.OnBlockBrokenWith_Patch2(ItemAxe this, IWorldAccessor world, Entity byEntity, ItemSlot itemslot, BlockSelection blockSel, Single dropQuantityMultiplier)
at Vintagestory.Client.NoObf.ClientMain.OnPlayerTryDestroyBlock(BlockSelection blockSelection) in VintagestoryLib\Client\ClientMain.cs:line 1751
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.ContinueBreakSurvival(BlockSelection blockSelection, Block block, Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 798
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleMouseInteractionsBlockSelected(Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 598
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnFinalizeFrame(Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 85
at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 188
at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 996
at Vintagestory.Client.GuiScreenRunningGame.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 242
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 695
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 670
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 127
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 334
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 130
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
I did a brief testing on 1.20. There were no API changes, so everything should work as expected. I'm working on a generic approach to mod compatibility issues - blacklisting\whitelisting, but it will take a while. Desolae
Really hoping for a 1.20 version!
After 0.3.0 requires Favorite Mod to function
Thank you for feedback! My keyboard mapping is indeed different from defaults.
You're supposed to change 'X' to whatever suitable for you.
I will split this mod into two - `Quick Stack` and `Favorite` in 0.3.0, which will address a lot of issues like marking item, not slot, as favorite, and ability to change modifier key.
As for your wishlist:
Item switching - is already implemented in some mod (I don't remember which, sorry), and it is outside of `Quick Stack` mod functionality.
Crafting grid - same reasons as above.
Ailith
Perhaps I'm missing something about how to use the mark slots alt+LC, or you're in a keyboard layout with different defaults, but the us layout default function of alt with the backpack open is to lock the cursor back to fps look, so you can't click and inventory slot with default controls. Also x is swap hands by default and also didn't work until I remapped that.
There doesn't appear to be a controls setting to change the way favouriting works so I have to remap default alt to something else either permenantly, or any time I want to change my saved slots?
Not dealbreakers but odd choices.
As for a wishlist - Item switching (broken tools, emptied slots, on the hotbar replace with inventory stacks) and a modifier key to send items to the crafting grid if that's even possible (and not somehow something I failed to figure out you can already do) or either are in the scope of this mod would be cool.