Mods / Vinconomy - A Vintage Story Economy Mod

Category: #Crafting #Furniture #Other #QoL #Storage #Utility
Author: SeveredSkullz
Side: Both
Created: Sep 27th 2023 at 12:38 PM
Last modified: Jun 24th at 1:47 PM
Downloads: 23342
Follow Unfollow 165

Latest file for v1.19.8:
vinconomy_0.2.10.zip 1-click install


Vinconomy

Purpose
The goal of this was to sink or swim trying to get started into modding Vintage Story. I did not see any up-to-date trade mods, and the ones currently available either do not work on the most recent version of the game, or do not fit my tastes / needs. I wanted a trading mod that is useful, aesthetic, configurable to suit a more widespread use-case, and one that does not require any sort of commands in chat to function.

Features

  • Vinconomy has numerous different types of stalls for visual theming and display possibilities
    • Clothing Stand - Allows you to sell both Armor *AND* Clothing! You can finally show off those fancy shirts, boots, and accessories!
    • Trade Mat (Single / Double Tiers) - A simple mat for displaying a general selection of items.
    • Produce Crate - A crate mainly designated for selling food or other perishible goods
    • Sculpture Pad - Create your own sculputres and sell them in wholely with up to a 5x5x5 size
    • Shop Shelf - A simple wall shelf for disaplying a general selection of items in more horizontally challenged areas
    • Tool Rack - A rack for displaying all your tools for sale
    • Weapon Rack - A rack for selling up to 2 different weapons and a shield
    • ATM / Register - Stores all your currency, profits, and allows you to convert currencies from one form to another.
    • Gacha Stall / Gacha Loader - Gacha/Gumball chance-based purchases! Throw in a bunch of items and see what you get!
  • "Admin" shops which can provide an unlimited amount of items without having to restock the stalls.
  • Centralized retrieval of currency. No need to check each and every site for payment. It will all be located in the shop's Register
  • Protection System - No need to claim the land around your shop to protect your goods. Comes built in!
  • Configurable Perish speeds - Prevent your food from spoiling with a customizable configuration to modify the rate at which perishibles spoil

Player Shops - Selling

Player Shops - Selling

The system works via Shops and Stalls. The player can place various types of Stalls to which may be linked to a Shop Register. Any goods provided at the stalls will be paid for on-site, and any proceeds will be stored directly in the Register. Each stall may have one or more different types of goods, and each stall must be part of a shop in order to function.

To open a shop, you will need one or more Stalls and a Register. First place the Register in a location where you will often be checking for payment. There is currently no limit on distance to the stalls themselves. From there, you can open the interface and set the name of your shop - it can be anything you like. Any payment for items will end up here. Be sure to clear out your Register occasionally, as you cannot make a sale if you do not have enough space for payment.

Next for each Stall you wish to place, place it down in a suitable location to sell your goods. Most stalls have 4 stock slots, with 9 slots for each stall, for a total of 36 total stacks of goods. As an owner, you can Sneak-Rightclick to add an item to that Stall Slot, or Sneak-Sprint-Rightclick to add multiple. Each slot can only hold items of the same type, so you cannot put Turnips and Parsnips in the same Stall Slot, for example. If you wish to manage multiple slots without having to exit and right click on a different stall slot, you can switch slots with the arrow buttons on the top right. You may also change the Items Per Purchase amount in order to sell more than one item for each sale. The Currency slot below the Price label can take any item you see fit for payment. Note that you do not need to sacrifice the item for payment like in other mods - The slot will clone the itemstack when you click on it. You can also click on the price item slot to clear it.

Regarding Admin Shops:

Admin Shop Info

If you have the "Gamemode" permission, you can also set this stall as an Admin Shop which will allow you to sell infinite amounts of items without having to restock the stall. If you wish to still collect payment for these purchases - for example to use the currency again for situations such as limited circulation - you can set the shop as you would with a normal Stall. If you wish for the payment items to simply be deleted, leave the Shop set to "None"

Owner UI   Customer UI

Things to note:

  • The stall will not function if there is no price set for the item
  • The stall will not function if there is no Shop set for the stall (Unless it is an Admin Shop)

Player Shops - Buying

Player Shops - Buying
Purchases can be made simply by having the payment in your hand and Sneak-Rightclicking on the desired slot to make a purchase. Sprint-Sneak-Rightclicking will purchas items 5 at a time. Note that this is multiplied by the "Items Per Purchase" modifier, so if a stall sells 10 Turnips per gear, you would be purchasing 50 turnips. You may also simply right click the stall in order to see via a GUI what is for sale and for how much. you can then initiate the trade by clicking the "Deal" button.

Configuration

There are many configuration options in mind for Viconomy. Currently the only implemented feature is Food Decay. As these stalls will likely not be in a well-preserved location, their decay rate is statically set to a constant rate. This rate is configurable and can even be completely turned off to stop food rotting entirely. Other plans include limits on shops, stalls, items used for currency, and time-locked sales (RP Store's "Open Hours")

Future Plans / Roadmap

Future Plants / Roadmap
  • Tool Rack Stalls (DONE)
  • Type-Specific Stalls (Like Produce Crates only able to sell food) (DONE)
  • Event-driven system to provide/allow easy modification / extensions for other mods. (DONE)
    • Below are some current plans:
      • Attract NPC Traders to buy goods from your stalls (NYI)
      • Discord Webhooks for sales (NYI)
      • "Ledger"-like notekeeping for RP servers (Such as recording sales for taxes) (DONE)
  • Armor Stand Stalls - Display clothing and armor for sale (DONE)
  • Allow sales to take total stock into account, not just stack size. (DONE)
  • Configuration Settings (NYI)
    • Max Number of Stalls per player (NYI)
    • Max Number of Registers per player (NYI)
    • Require RP Sales (NYI)
    • Currency Item Whitelist (NYI)
    • Max Number of trades from Admin Shop per player per 24 hours (NYI)
    • Max Distance from Shop to Stall (NYI)
    • "Only Insert" mode for items (Prevent players from using stalls as long term food storage) (NYI)
  • Player / Player Group whitelist for who can buy from shops (WIP - Delayed. Trying to come up with a decent UI for this)
  • Discounted prices for Players / Player Groups (WIP - Delayed. Trying to come up with a decent UI for this)
  • RP Server configuration to allow sales to "queued" by customers and can be finalized/executed by the store owner to ensure the shopkeep is actually there. Can be bypassed if the shop owner is offline to still facilitate trades where it wouldnt be possible otherwise.
  • ATM-like block for currency conversion. Will pull from Register to use existing currency to exchange for new currency. (DONE)
  • Multiple seperate Mods extending off of current systems for optional features
    • Buying/Selling Land Claims (WIP)
    • Renting Land Claims (NYI)
    • City System - Mayors, Villagers, Workers, Etc. (WIP)
    • Resident tax / salary (NYI)
    • Cross Server Trading
    • REST-API for viewing / tracking sales outside of the game, including displaying current stock at each shop on the server (NYI)
    • Supply / Demand system for NPC Run stalls (NYI)

Known Issues

  • Crates do not tesselate properly and will display the generic "?" block instead.

For other issues:

Feel free to use the Official Vintage Story Discord's Mod Page for support, or message me directly (SeveredSkullz). My response times will likely be much faster on there.

Version For Game version Downloads Release date Changelog Download 1-click mod install*
v0.2.10 1415 Jun 24th at 1:47 PM Show vinconomy_0.2.10.zip Install now
v0.2.9 321 Jun 22nd at 10:21 PM Show vinconomy_0.2.9.zip Install now
v0.2.8 1833 Jun 6th at 2:34 AM Show vinconomy_0.2.8.zip Install now
v0.2.7 2555 May 8th at 8:06 AM Show vinconomy_0.2.7.zip Install now
v0.2.6 1580 May 4th at 12:00 AM Show vinconomy_0.2.6.zip Install now
v0.2.5 2321 Apr 9th at 6:29 PM Show vinconomy_0.2.5.zip Install now
v0.2.4 1457 Mar 24th at 9:48 AM Show vinconomy_0.2.4.zip Install now
v0.2.3 2098 Feb 21st at 1:50 PM Show vinconomy_0.2.3.zip Install now
v0.2.2 1686 Feb 4th at 4:44 PM Show vinconomy_0.2.2.zip Install now
v0.2.1 834 Jan 24th at 1:56 AM Show vinconomy_0.2.1.zip Install now
v0.2.0 752 Jan 14th at 5:46 PM Show vinconomy_0.2.0.zip Install now
v0.1.9 82 Feb 21st at 2:01 PM Show vinconomy_0.1.9.zip Install now
v0.1.8 465 Jan 15th at 3:42 PM Show vinconomy_0.1.8.zip Install now
v0.1.7 1015 Dec 19th 2023 at 10:24 PM Show vinconomy_0.1.7.zip Install now
v0.1.6 282 Dec 18th 2023 at 4:16 AM Show vinconomy_0.1.6.zip Install now
v0.1.5 581 Dec 10th 2023 at 12:42 AM Show vinconomy_0.1.5.zip Install now
v0.1.4 1279 Nov 14th 2023 at 12:40 AM Show vinconomy_0.1.4.zip Install now
v0.1.3 1535 Oct 19th 2023 at 3:18 AM Show vinconomy_0.1.3.zip Install now
v0.1.2 590 Oct 5th 2023 at 12:15 AM Show vinconomy_0.1.2.zip Install now
v0.1.1 404 Sep 30th 2023 at 1:28 AM Show vinconomy_0.1.1.zip Install now
v0.1.0 233 Sep 27th 2023 at 6:57 PM Show vinconomy_0.1.0.zip Install now

100 Comments (oldest first | newest first)

💬 SeveredSkullzAuthor, 1 day ago

Can you let me know what error message they recieve? What items are you trying to sell, what currency are you using, etc.? Can only speculate, otherwise.

💬 Teewi, 2 days ago

Heya!
I've set up a shop and a register but others are unable to purchase from my shop despite me ticking all the right boxes and adding the currency, etc. The stalls are linked to the register and visa versa. Have you encountered this before? Is there a fix? C:

💬 SeveredSkullzAuthor, Jul 6th at 5:30 AM

SoulReaperz - Apologies, Had typed out a response earlier today but then got pulled into a discord call with GreenM4N4 and lost the text here, then forgot.

There are a few ways you can handle this. First is to simply fill up the slots accordingly - If you want Common, Uncommon, and Rare, you can fill 3 slots with "Common" gacha balls, 2 with "Uncommon" and 1 with "Rare. That should give you a 50% / 32% / 16% split. The trick here is that you dont need to have the all of one type in 1 slot. For instance I could put all "Commons" in every slot but 1, which would give me a 88% / 11% split.

If this is not granular enough, you can tick the "Use Total Count Randomizer" checkbox and it will instead go from Slot-based chances to Item-Count-based chances. Meaning if you wanted to have a 1% chance in winning an item, you need to have a 99:1 ratio of items. The only downside to this implementation is that the winnings percentage is going to change based on the amount of items that exist in the stall - so if a player purchased 50 of them, its now a 49:1 ratio, leaving the chance of winning that 1 rare item at 2% instead of 1%. Statistically speaking, this follows the rules of probability and I made a compromise here instead of explicitly being able to set the winning rate.

The original use case for this was from a player simply wanted a gumball-like machine where they could sell candy and wanted a basic way to get a randomized output. I took the liberty of expanding this and turned it into the Gacha stall simply because it was "close enough" of an implementation to give you guys a bit more freedom and creative liberty. The end goal isnt to give you guys tools to implement outright gambling on servers, nor do I want Vinconomy to become a means of selling "loot boxes" or other pay-to-win mechanisms on multiplayer servers. Im therefore hesitant to implement that level of control because thats not the underlying intent of this stall type.

💬 SoulReaperz, Jul 5th at 7:41 PM

@SeveredSkullz

speaking of Gacha
would be nice to be able to have adjustments on each slots percentage chance so we could actually make true common, uncommon, rare, and very rare Gacha chances when playing the Gacha machine

kinda sucks right now when you fill all the slots and its is equally divided up into 11% each instead of being able to adjust each slots percentage chances to make some items more common when playing and some more rare

💬 SeveredSkullzAuthor, Jul 5th at 3:43 PM

It is not possible currently with crates, BUT you can abuse use the Gacha Balls to accomplish the same task

💬 EphKa, Jul 5th at 1:31 PM

Also i thought about a suggestion, in our server sometimes players need a lot of recources, like sticks or grass, clay, etc.. So what if we had a stall for crates? Like i fill a crate with a few thousand sticks and could sell the whole crate? I dont know if thats possible, but would be hell of a cool functionality, or selling barrels of wine or beer :)) P.S. we can move crates with carry on functionality, i think its a mod, so i dint know if its even a possibility to add to the mod. Just a suggestion to consider :))

💬 SeveredSkullzAuthor, Jun 28th at 11:37 PM

If you can send them to me in the Discord Thread I can take a look

💬 GreenM4N4, Jun 28th at 10:39 PM

Hey, I am a Mod on Sanctuary where EphKa's error is happening.

We have tried replacing registers and it looks like it is just creating a new shop ID everytime. Its almost like when the server restarts it is losing the mapping from register to shop ID. I can provide the DB and logs.

💬 SeveredSkullzAuthor, Jun 28th at 5:26 PM

I assume you are on the most recent version given you saw my error message. Have your players made a new register, or are they just breaking and replacing the same register prior to the June 6th fix? If they made a new one and its still erroring out like that, I would certainly like to take a closer look at it via the logs and DB. If its the latter and they are re-using the same stall, then replacing it with a newly crafted Register should fix the issue. They store a bunch of IDs internally which are persisted each time you break/place them, and once that ID is used it is going to continue to bug out. The only way to fix it at that point is to craft a new Register and throw the old one away.

💬 EphKa, Jun 28th at 7:10 AM

You see, one of the players has the shop register inside the shop, like 5 blocks away, and the disconnection between shops and stalls happen after server restart, i think thats the problem.

💬 SeveredSkullzAuthor, Jun 27th at 8:39 PM

EphKa That is the INTENDED implementation in that it will only sell you things if the item matches exactly. And you're likely right in that it worked previously - I had to flip it because people were trying to Buy food from other players by setting the currency to the item they wish to buy and "sell" the rusty gears as compensation. Problem was then that it was too strict for food since the attributes change the second you harvest it and the "freshness" varibles would never be identical. Now that I've flipped the logic and told it to ignore the Source, its now too lax on things I actually want it to check. I cant tell you how many times this particular check has bit me trying to rely on the game's code to check these things. I'll have to write my own custom implementation to solve this problem, it seems.

 

Side note: "we are resseting our shops on every server restart because of unloaded chunk bug"
The solution here is just dont put your Registers 100+ blocks away from the shops. As long as they are nearby, this issue shouldnt occur.

💬 EphKa, Jun 27th at 8:25 PM

Yes, maybe it was even tested on vinconomy now that i think about it and it worked previously, my bad, it was not canmarket. Yeah i bought with unsigned parchment some goods where the price is a signed parchment. Is it possible to make the deal only if the price is met exactly how it is? idk if thats possible

 

💬 SeveredSkullzAuthor, Jun 27th at 8:23 PM

tRead - The amount on the right is simply the stock used to fufil purchases. If you are selling 8 peaches, you only need to have atleast 8 of them in any number of slots. You could have 1 Peach in 8 seperate slots, or 32 in a single slot - the arrangement does not mater, only that the total quantity is greater than or equal to the amount you are selling at a time.

EphKa - Just to make sure I am understanding the need / problem correctly: You are using signed parchments as a form of currency. When you put this item in the currency slot, people are able to buy your items with an unsigned / plain parchment?

💬 EphKa, Jun 27th at 7:02 PM

Hello, we had created a currency in our multiplayer server called Merits, which are parchments. So we had our economy running on canmarket mod, and the mod differentiated between a blank parchment and a signed parchment, but with vinconomy introduced to the server, anyone can counterfeit Merits to buy stuff from our shops, i was wondering if you could add differentiation between a parchment and a signed paper?

Also thank you for your hard work, we are resseting our shops on every server restart because of unloaded chunk bug, but its allright, we will wait for the fix. So thank you for the things you do, you bring us much joy in our roleplay :)) 

💬 tRead, Jun 25th at 10:58 PM

When stocking a shop, I understand that the part on the left is important for quantity: example 2 rusty gears for 8 peaches.  But what's the square area on the right for?  Simply inventory space for stacks of items to sell?  Don't need to separate peaches into stacks of 8?
So, "36 total stacks of goods" is the maximum I can fit at once; then refill when the quantity drops?

*Does it matter how many items are placed in a slot for an Admin shop?*

Btw, I recommend adding a brief description of the Teller comparing with the function of the Register.

💬 SeveredSkullzAuthor, Jun 6th at 8:01 PM

SiiMeR - Is this with a brand new register or a bugged out register prior to the fix? I am unable to replicate the problem.

💬 SiiMeR, Jun 6th at 12:42 PM

I have a problem on my server that players are somehow able to craft registers that make them crash upon placing them. After logging in again, a server-owned cash register will have been placed, with no possibility of removing it (and you will still have the cash register on hand). 

I thought that maybe the version update could fix it, but the error message has changed.

An exception is being thrown on the latest version 

Exception: Value must be set.
at Microsoft.Data.Sqlite.SqliteParameter.Bind(sqlite3_stmt stmt)
at Microsoft.Data.Sqlite.SqliteParameterCollection.Bind(sqlite3_stmt stmt)
at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteScalar()
at Viconomy.Database.ViconDatabase.AddShop(ShopRegistration shop)
at Viconomy.Registry.ShopRegistry.AddShop(String owner, String ownerName, String name, BlockPos pos)
at Viconomy.ViconomyCoreSystem.AddShop(String owner, String ownerName, String name, BlockPos pos)
at Viconomy.BlockEntities.BEVRegister.UpdateShop(String Owner, String OwnerName, Int32 ID, String Name)
at Viconomy.BlockTypes.BlockVRegister.DoPlaceBlock(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel, ItemStack byItemStack)
at Vintagestory.GameContent.BlockBehaviorHorizontalOrientable.TryPlaceBlock(IWorldAccessor world, IPlayer byPlayer, ItemStack itemstack, BlockSelection blockSel, EnumHandling& handling, String& failureCode) in VSSurvivalMod\BlockBehavior\BehaviorHorizontalOrientable.cs:line 55
at Vintagestory.API.Common.Block.TryPlaceBlock(IWorldAccessor world, IPlayer byPlayer, ItemStack itemstack, BlockSelection blockSel, String& failureCode) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 836
at Viconomy.BlockTypes.BlockVRegister.TryPlaceBlock(IWorldAccessor world, IPlayer byPlayer, ItemStack itemstack, BlockSelection blockSel, String& failureCode)
at Vintagestory.Server.ServerSystemBlockSimulation.TryModifyBlockInWorld(ServerPlayer player, Packet_ClientBlockPlaceOrBreak cmd) in VintagestoryLib\Server\Systems\World\BlockSimulation.cs:line 575
at Vintagestory.Server.ServerSystemBlockSimulation.HandleBlockPlaceOrBreak(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\Systems\World\BlockSimulation.cs:line 346
at Vintagestory.Server.ServerMain.ProcessNetMessage(NetIncomingMessage msg, NetServer mainSocket) in VintagestoryLib\Server\ServerMainNetworking.cs:line 138

 

On the previous version, the exception was:

Exception: Tried to update a non-existant shop at Viconomy.Registry.ShopRegistry.UpdateShop(Int32 id, String name, BlockPos pos) at Viconomy.ViconomyCoreSystem.UpdateShop(String owner, Int32 iD, String name, BlockPos pos) at Viconomy.BlockEntities.BEVRegister.UpdateShop(String Owner, String OwnerName, Int32 ID, String Name) at Viconomy.BlockTypes.BlockVRegister.DoPlaceBlock(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel, ItemStack byItemStack) at Vintagestory.GameContent.BlockBehaviorHorizontalOrientable.TryPlaceBlock(IWorldAccessor world, IPlayer byPlayer, ItemStack itemstack, BlockSelection blockSel, EnumHandling& handling, String& failureCode) in VSSurvivalMod\BlockBehavior\BehaviorHorizontalOrientable.cs:line 43 at Vintagestory.API.Common.Block.TryPlaceBlock(IWorldAccessor world, IPlayer byPlayer, ItemStack itemstack, BlockSelection blockSel, String& failureCode) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 836 at Viconomy.BlockTypes.BlockVRegister.TryPlaceBlock(IWorldAccessor world, IPlayer byPlayer, ItemStack itemstack, BlockSelection blockSel, String& failureCode) at Vintagestory.Server.ServerSystemBlockSimulation.TryModifyBlockInWorld(ServerPlayer player, Packet_ClientBlockPlaceOrBreak cmd) in VintagestoryLib\Server\Systems\World\BlockSimulation.cs:line 575 at Vintagestory.Server.ServerSystemBlockSimulation.HandleBlockPlaceOrBreak(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\Systems\World\BlockSimulation.cs:line 346 at Vintagestory.Server.ServerMain.ProcessNetMessage(NetIncomingMessage msg, NetServer mainSocket) in VintagestoryLib\Server\ServerMainNetworking.cs:line 138

💬 Jenpai, Jun 4th at 3:46 PM

Suggestion/Request:
Could we get a register that is more designed for buybacks? for example if you setup a shop for buying stone, your reister is going to fill up rather quickly. So maybe a register with a slot for coins/money and a slot for inventory, that coudl also be conected to a hopper? (so coins don't fall out due to the hopper) - to make for larger bulk sales a bit more eaiser?

💬 Jenpai, May 30th at 7:55 AM

Following what Mcquiggles said; maybe something like how the current chisled things are sold could work for bundling/mixing sale items; (infact that might be possible now? might need to test that, but the bundles wouldn't be random)

a gumball/slotmachine for random prizes would be a fun idea to include as well.

McSquiggles

💬 McSquiggles, May 30th at 12:51 AM

I am making a Candy Shop in the Rouge House Server and I'm trying to make "mystery boxes". Which is a random assortment of candies in a wattle basket, bark basket, etc... There's no way as of now to be able to put a basket in a slot to sell (on shelf, crate, etc...) but I am curious if there's possibly a way to do it or make it work? If not it might be a good idea to be able to create "foil bags/baskets". I was thinking if there was a shop barrel, where you could put a few different items in it (9 slots?), but it would give the player a random slot from that barrel for a set price. Where all the random items in that barrel would have the same price. Doesn't have to be a barrel but that's just an example.

I love this amazing mod btw, I've really enjoyed being able to walk around to others shops and buy products! I can't wait to see the next updates and new ideas coming out of this mod.

-Julia

💬 Jenpai, May 28th at 2:22 AM

Could we possibly have the ability to craft the shops with plain cloth? I actually like the natural white color over the dyed white.

https://prnt.sc/Q_iMZ0kVE4ix

💬 Quiche, May 8th at 4:47 PM

@SeveredSkullz It is Expanded Foods' syrup covered fruit breads (any it would seem as I had a multitude of different fruit breads with different swirls), they would all become just regular base game breads on the Acacia shelves. I've not tested with other shelves. Thank you for the recent fix with the armour!

💬 SeveredSkullzAuthor, May 8th at 4:30 AM

Quiche I am unable to replicate the problem with the food. I even tested it with Screwy over in the discord's mod page. Is there a specific type of Cooked food that does not show up? I am able to replicate the problem with the Armor stands and working on a fix.

 

💬 Quiche, May 5th at 6:08 PM

Strange things happening with new update. Armour helms on the armour stands will show up on the floor and all EF bread becomes a base game flax loaf with no pretty swirls showing. Crocks do show up larger, but cooking pot and bowls do not. Thanks for all your hard work, I did have to do a rollback to the previous 2.5 and things were working peachy again.

💬 DilanRona, May 3rd at 2:16 PM

guess you got a point. would have prefered the teller machine, but can settle for one of the other stalls

💬 SeveredSkullzAuthor, May 1st at 1:46 PM

DilanRona - Then dont use the ATM block for that - just use a normal stall and "sell" the currency youre trying to convert. ATMs are exactly what they say on the tin. They convert currency. If I give you a dollar for 4 quarters, I should be able to turn those 4 quarters back into a dollar - they are equivalent.

Screwy - I will try to take a look in the next few days if I get some free time. Will also try to see if I can figure out the expanded food issue too, though I dont use that mod. From what I've been told the food rendering is very complicated and annoying to work with - so no promises Ill be able to fix that in the same timeframe.

💬 Screwy, May 1st at 7:37 AM

Books used to show up on shop mats. At least the unwritten ones, in previous versions of this mod. We just realized on our server, that this isn't the case anymore. I hope you can fix that soon, because we try to establish selling informations about resources, written in books.

💬 DilanRona, May 1st at 4:54 AM

I am referring specifically to the Shop Teller Machine. They can go both ways (ie reverse trade). There is currently 6 set up on my server, but I need to have 1 or 2 set up to only go one way. In otherwords I want to disable reverse trade on specific Shop Teller Machines.

💬 SeveredSkullzAuthor, Apr 21st at 7:54 PM

All trades are only "One Way" - I dont understand what you mean? You have a Price and a Product. You give the stall the Price, and recieve the Product. You cannot give up the Product and recieve the Price item.

💬 DilanRona, Apr 21st at 2:28 PM

Have a request, is it possible to have the trades go only one way? There are some trades I need to set up for an admin shop but it should only be one way.

💬 SeveredSkullzAuthor, Apr 16th at 8:22 PM

I will add it to my "Todo" list Keito

💬 Keito, Apr 15th at 11:09 PM

Hello, this is a silly request but would it be possible to increase the size of pottery items on the shelves and mats? Right now, bowls and crocks for example are comically small, but I think they would fit at essentially actual size. "What are these... pottery for ants?" 

💬 Screwy, Apr 9th at 11:01 PM

Some food items from the Expanded Foods mod still don't render in stalls. While trying to reproduce the bug, I recognized that this is only the case, if the items are made in survival. Maybe this is a usefull information. The equivalents that you get from creative mode will work perfectly fine. For testin we used sushi and breaded foods.

💬 SeveredSkullzAuthor, Apr 9th at 6:31 PM

The issue should be fixed.

💬 AbsoluteTrash, Apr 9th at 12:09 AM

Norbix

SeveredSkullz

I am experiencing the same issue with Sculpture Stalls.  Set up a register with a store name saved, currency in register.  Placed a Sculpture Stall, attached it to the created store name, placed in items, disabled unused slots, assigned a price.  Everytime you go to purchase, "This stall is not registered with a  shop yet.  Unable to make a purchase."  See imgur album for reference imgur.com/a/uZOSyaW

Update: Any attempt to name sculptures within the stall does not work.  It doesn't save.  Also, the sculpture stalls are remembering every shop I've ever created, instead of what is "active".  Every other stall type lists exclusively active shop registers, the sculpture stalls are listing EVERYTHING.

💬 Hydromancerx, Mar 24th at 12:56 AM

SeveredSkullz

It worked! Thank you!

💬 SeveredSkullzAuthor, Mar 22nd at 8:36 PM

Hydromancerx - You must have atleast enough for a sale - Setting it as admin only prevents it from removing the stock from the stall. It doesnt disable all the other checks. Since you set the amount to give to 10, but only have 1 in the stall, it fails. Either add more to the stall, or set the amount per sale to 1, then buy a few until you have 10.

💬 Hydromancerx, Mar 22nd at 6:08 PM

SeveredSkullz

So I made Produce crate and set it to sell flax fibers for a rusty gear. But when i click to buy it says You purchaced 0x Flax for 0x Rusty Gear. Later i added a cash regester and set the shop up. But still had the same result.

💬 SeveredSkullzAuthor, Mar 21st at 8:16 PM

Hydromancerx - it is absolutely possible in Single Player. I cannot assist without further information

Norbix - Any luck reproducing the problem?

💬 Hydromancerx, Mar 19th at 2:39 AM

Is this just not possible in single player? I tried to set up an admin shop to buy from the infinate goods but it just gave 0 for 0. :(

💬 Norbix, Mar 3rd at 12:56 PM

Hey, we put a stand for the sculpture, set up a 2x2 sculpture and assigned it to a store, and when we try to buy, we get a message that the stand is not assigned to any store. Are we doing something wrong or is it a bug? I will try to reproduce it more precisely

💬 WickedSchnitzel, Mar 1st at 8:59 PM

I would like to suggest some sort of whitelist for the config file to let admins specify the items that would count as currency. As of now it's "gear-rusty", in our servers case i would also like to add "gear-rusty-gold" as an possible currency. These are coins (re-skinned rusty gears) that the players can produce themselves.

💬 SeveredSkullzAuthor, Mar 1st at 5:53 PM

Kara - theres only so many combinations I can add to a given entity. Shift and Control are the only modifiers allowed, and both are taken. I simply do not have any more combinations available to me in order to do so. You can take control of the shop / stall with the "setowner" command which should be a suitable workaround - and then set the owner back to the original player once you are done.

💬 Kara, Feb 27th at 1:15 PM

SeveredSkullz may you please add the ability for admins to open players shops/register? duped items hidden in a register, i had to break it, to get it out. 

Bug: ice in a shop, wont render the blocks behind them allowing players to use it as a xray for seeing caves. 

💬 SeveredSkullzAuthor, Feb 21st at 2:04 PM

Morning Fellas - Just pushed Version 1.9 for VS 1.18.x, and Version 2.3 for VS 1.19.x which should fix the issue.

As a side note, I know some people are still on 1.18 and do not wish to update. However, it is starting to get troublesome to reinstall older versions of the game, blow away my entire solution, rebuild the solution, fix the dependencies so they point to the older version of the game, recompile, and then undo all of that to go back to 1.19. With that said, this is likely my last update for 1.18.x

💬 SeveredSkullzAuthor, Feb 18th at 7:37 PM

Hey fellas! Just got back home from the vacation. Stayed a bit longer than we had anticipated. Our son got to go to the beach for the first time and he was loving it so much we decided to stay an extra few days. As soon as we are unpacked and settled in, I will take a look at the issues you guys mentioned. Should have a fix for it within the next few days.

💬 Angellord, Feb 12th at 5:56 PM

SeveredSkullz
The bug he's talking morlanius 

about is in earlier versions of the mod (v0.1.8 too). It's pretty serious.

It's a good thing there are nice testers out there who were able to detect it :3 

💬 morlanius, Feb 10th at 10:49 PM

SeveredSkullz

Bug: Making the quantity a negative number of gears whilst having at least 1 gear in your hand will give you gears as a positive number. The gears are not taken from the register and no items are exachnged, basically a gear dupe. The register is right next to the shop. 

Using version 0.2.2 on server version 1.19.3

💬 Kara, Feb 10th at 11:11 AM

SeveredSkullz Thats fine, you have a good vacation and try not to stress about a silly game =D. have a lovly vacation =D. ^v^

💬 SeveredSkullzAuthor, Feb 10th at 10:51 AM

Kara - I am currently on vacation with my family and dont have access to my PC for a while. When I return I will be happy to take a look into it. The only thing that comes to mind is if the register is in an unloaded chunk when the sale is made. I dont know how far away you are considering "near" in this case, but if we are talking hundreds of blocks that is likely the cause. Currently I dont have any code to try and load the chunks before a sale is made. Vintage Story has a way to Force-load chunks, but no way to *UN*force-load the chunk. It was a problem I have been looking around for a solution for a while to no avail, and as such I did not want to force-load hundreds of chunks for all the registers and stalls, likely reducing performance on all of your servers.

💬 Kara, Feb 7th at 11:15 PM

I have been getting reports from my players that the shops have randomly stopped working. us breaking the shop and them placing a new one needs to fix the issue, although i dont have any crash reports or errors to go off of, just reports from players D=. ill report if i get more into from the. 

It seems the Registers seem to break when not placed near the shalls selling items. 

This make the stalls through errors like they are out of stock or unregistered/not set up correctly

💬 SeveredSkullzAuthor, Jan 24th at 1:59 AM

Issue should be fixed now. Added an additional failsafe in order to prevent that from messing up the GUI even if it doesnt get cleared up in the future for whatever reason.

I also fixed the Mod's Game Dependencies, so you shouldnt see that "Failed parsing version string '1.19.0-rc.*'" error anymore on 19.0. Im aware Tyron fixed this bug in 19.1 but oh well :D

💬 SeveredSkullzAuthor, Jan 23rd at 7:30 PM

WickedSchnitzel / Kara - Will try and take a look at this tonight. Thanks for letting me know. Didnt seem to be an issue in the release candidate version, so Ill look into what changed.

💬 WickedSchnitzel, Jan 23rd at 1:50 PM

seems to be buggy in 1.19.1. -shop wont get displayed in the drop down menu until you relog. -old shops will display even if the cash registers have been destroyed

💬 Kara, Jan 22nd at 10:08 PM

Not sure if its a bug or What, but Old "shops" are not being removed from the list. i am also unable to create New shops after pressing save. 

💬 SeveredSkullzAuthor, Jan 17th at 10:27 PM

WickedSchnitzel - That was the format for the Release Candidates, which is what the current 2.0 version was built for. You can safely ignore this warning - It wont cause any errors.

💬 WickedSchnitzel, Jan 17th at 3:19 PM

[Warning] [vinconomy] Dependency 'game': Failed parsing version string '1.19.0-rc.*' at index 10: Unexpected character '*' in PRE_RELEASE identifier (best guess: 1.19.0-rc)

💬 MimiKitty, Jan 17th at 2:09 AM

if you ddi add automatic conversion you could also include an ATM already setup to exchange between those rates as well

💬 SeveredSkullzAuthor, Jan 16th at 2:25 PM

Alatyr I do not have any plans on adding support for 2 different types of currency, as it does not make any sense to in my opinion. Take the US Dollar - you have whole and partial dollar amounts. If something cost me $1.50, I do not HAVE to have 1 USD and 2 Quarters. I can have 6 Quarters instead, or 15 Dimes. You can set the price to the equivalent of what it would cost in Rusty Gears, and have a Temporal Gear trade in the ATM.

As an example, say I wanted to have a stack of Turnips at 5 Rusty Gears and 1 Temporal Gear. I could have 1 Temporal Gear = 10 Rusty Gears, and thus would set the price at 15 Rusty Gears. Players then could use either 15 Rusty Gears, or trade their Temporal Gear at the ATM for 10 Rusty Gears, and then buy the item.

I have been toying with the idea of being able to automatically exchange currencies - but I am worried about players potentially trading an item they did not intend due to the automatic nature of things. Will need to come up with a solution to that before I actually implement it.

If you can think of a reason that I absolutely must support 2 different types of currencies, please let me know and I will look into it. As the code is written, it would take a significant amount of work to re-write the entire logic for all the stalls in order to be able to support this - almost a complete rewrite. I am not going to be making that effort unless there is an absolute *need* for it.

💬 Alatyr, Jan 15th at 11:17 PM

Is it possible to add the ability to set a price for 2 items? For example, set the price equal to 1 temporal gear and 1 Rusty, for example.

💬 Cpt_C0nfus3d, Jan 14th at 6:06 PM

Nice thank you very much I was just waiting for it :-)

💬 SeveredSkullzAuthor, Jan 14th at 5:56 PM

I have uploaded the 0.2.0 Release for 1.19-Pre... Keep in mind this new version is NOT COMPATIBLE with older versions of the mod. The save system was migrated over to a new SQLite database and any attempt to use shops registered under the old system WILL NOT WORK.

💬 TimSithis, Jan 10th at 2:20 PM

Hmm my idea was Like having a Register what Have like a tube. Or something simmilar What could go down into a Storage area, I have trouble to always empty the Register out when my Friend sells his stones. But thank you for hearing me out.

💬 SeveredSkullzAuthor, Jan 9th at 9:19 PM

TimSithis Im open to ideas, but thats essentially what the Register already does - How would it be any different from a mechanics perspective? The only difference is you have a model that looks like a safe instead of a cash register. I do have plans for a sort of "treasury" when I finally get to the Cities / Claims aspect of things, but that wouldnt be a part of Vinconomy.

💬 TimSithis, Jan 8th at 7:55 PM

Hmmm do you think you will someday make it possible that Your Currentcy..or Let's say the money you get can be put into something Like a HUGE Safe for keeping and storage?

💬 BraniyaKz, Dec 18th 2023 at 6:06 PM

Honestly a fantastic mod to build a functional/aesthetically-pleasing shop with. I love it!

💬 SeveredSkullzAuthor, Dec 17th 2023 at 5:39 AM

Screwy -   It is highly unlikely it will be in the next update, as I have one thats been in the works and I have been trying to get finished for a few weeks now. IRL issues keep getting in the way and preventing me to finish the final features (If you're curious, check the Mod Page on discord). As for the food - you are right, it is intentional that the items must match exactly - especially for food. I did not want situations where players might abuse the stalls with only 1 item that was "fresh" and the rest borderline rotting / rotten. The UI is going to show the first item that is not an empty slot for simplicity's sake, and that fact could be abused. Internally, I am doing a simple "Satisfies" check which is entirely built into VS - meaning it's not my code. In order to do what you want I would have to roll my own - which is totally doable, but it might just take some time with everything going on right now. I can certainly add it to the list, and perhaps just put the replacement implementation behind a configuration variable to use exact matching or approxomite. Another solution is I can just average out the decay rate on all the item stacks when you try to add a new stack. I will play around with it and see what feels right.

As for your message about it not showing item info in the customer UI, what exactly do you mean? It should be showing you a passive item slot containing the first non-empty item for that slot. I have not heard of any issue with this from anyone else, and I have not seen it in my own testing. If possible, could you please provide a screenshot of the problem either here or up on discord to demonstrate what you mean?

 

💬 Screwy, Dec 16th 2023 at 3:42 AM

SeveredSkullz I'd like to thank you so much for this awesome mod! We use it on our upcoming German server and it enables us to manage almost every aspect of our economy.

But one thing is a bit... annoying. I understand that it has to be the exact same item on all 9 slots of a stall. But this makes it almost impossible to get more than one food item in there.
Is there any way this could be fixed in the next update? Maybe my either ignoring the decay rate while checking if it is the same item, or by some tolerance value for this variable.
And there is no item info in the customer UI. Is this intended? Can we have a config bool for that?

💬 SeveredSkullzAuthor, Dec 8th 2023 at 1:33 AM

WickedSchnitzel - You shouldnt need World Edit simply to remove the shop. If you are in Creative Mode it will bypass the protection and allow you to remove it. That was a request by AngelLord via Discord that I added in 0.1.4. Im also sitting on a change that allows players to use shops within claims so you will no longer have to use /allowuseeveryone that was requested by him as well up on discord. They were using Claims as a sort of "rental" property and didn't want to have to manage adding/removing everyone all the time. Im also in the process of refactoring the code to allow sales to be conducted without having to have all the items in your hand, which is preventing me from pushing said change right now. I hope to have time this weekend to finish up the implementation and get that out to you guys soon.

But yes, the stalls / registers have protections in place in that they do not need to be within claimed land to be protected. As you saw, it wont allow anyone to break the shop unless they are the owner, or an Admin currently in Creative Mode (You HAVE to be in creative mode). If a player has left the server, and you believe they are not coming back, you can also use the "/vicon setowner [player] [x] [y] [z]" command for the stall/register in question to take over ownership of it instead of outright removing it.

paintmoses - Assisted via Discord :)

💬 paintmoses, Dec 6th 2023 at 1:42 AM

How to you find the commands for your mod, I am trying to make shops I can use and edit, if thats a possibility?

Thanks in advance.

💬 WickedSchnitzel, Dec 3rd 2023 at 7:30 AM

Maybe i am missing something here, but it seems like the shops got their own protection system, like people who are not the owners are not able to modify them even after a claim has been removed. Maybe you could add a config option to remove shop protection, so that people have to place the shop into a claim with /allowuseeveryone. i had to remove a player from the server and removed their claims as well, but the shop is still protected. i mean, its not a big deal, i could just remove it manually. still such an option would be good. 

Edit: It seems like even i as an admin cannot remove the shop, it just tells me "you do not own this".
Edit2: i was able to delete the shop with worldedit. 

💬 fipil, Nov 14th 2023 at 4:13 PM

Wow, that's great. Thank you very much SeveredSkullz!

I'm going to try it :-)

💬 SeveredSkullzAuthor, Nov 14th 2023 at 12:42 AM

fipil - Just pushed 0.1.4 which adds the features you requested. Still dont have much free time with all the chaos, but its still next on my "todo" list for ATMs.

💬 fipil, Nov 12th 2023 at 11:44 AM

Thank you SeveredSkullz!
Your solution would be fine. Another approach could be introducing of some admin item so user should hold it to open the admin view. But I understand that this would unpleseantly change the existing workflow to which users are already used to.

I noticed the ATM block in the future plans, so I'm looking forward to it. :-) Hope that the ATM design will look medieval, we build a medieval world so some modern ATM machine with a display would be a little bit problem for us :-D.

I'd be also very nice if your mod could work with our smaller denomination Copper wheels. For example user wants to buy a carrot priced 4 copper gears. Then he'll pay 1 rusty gear and the shop returns him a change: 6 copper gears. 

💬 HerbDashwell, Nov 8th 2023 at 2:21 AM

Fantastic mod! It seems that sometimes though, it will say a player does not have enough of a currency item in hand when in fact they do. The shop is well stocked too, so I cannot see why this would happen. It seems to happen randomly, and relogging does not solve. 

💬 SeveredSkullzAuthor, Nov 7th 2023 at 5:33 AM

fipil It is not possible to check for an arbitrary key as a Hotkey, unfortunately. While I cannot add any more hotkeys, I can check if the item in your hand is the currency item while you are sneaking to allow you to purchase items from your own stall. I will add this to my "To Do" list along with the ability to remove other players stalls/registers as an admin someone else requested via Discord. Should be able to get to it in the next day or two, provided I get a break from the IRL chaos.

Also, please note that an ATM block explictly designed for currency conversion is on my Future Plans / Roadmap in the mod description. Eventually, you won't need a dedicated shop to do this. I just need to get the free time back to be able to implement it. 🙃

💬 fipil, Nov 6th 2023 at 11:54 PM

Hi SeveredSkullz

I love your mod. I see only one big problem: As an owner of the shop, I cannot USE the shop. You can ask why want I use my own shop? The reasons are the following:

  • I want simply test my shop, if it works and is configured properly.
  • We have two kind of money on our server, the vanilla rusty gears and the copper gears, provided by our mod, which we use as change: 1 rusty gear = 10 copper gears. I created an admin shop, where player can change 1 rusty gear by 10 copper gears and also to change 10 copper gears to 1 rusty gear. Problem is that I cannot USE the shop. I'm an admin but also a player which want to use the shop as an ordinary player.

So please, would it be possible to change behaviour so the shop configuration will open only by using some hotkey together with a mouse click and if player does not use the hotkey, the shop will act as a shop for him?

Thank you very much.

Fipil

💬 SeveredSkullzAuthor, Nov 5th 2023 at 11:29 PM

JunidO - I'm not sure what you mean by that. If you are referring to the number of slots that is used to sell the items to other players, then no I do not have any plans on increasing that amount. I feel that 36 slots for stock is way more than enough. The whole design philosophy is for you to have a large shop if you want to sell large quantities of items. If you need more inventory slots for a given item, you can always use more than one Stall Slot. There is nothing preventing you from selling 9 stacks of Turnips in each of the 4 Stall Slots.

If that is not what you mean, I would need a bit more clarification.

💬 JunidO, Nov 1st 2023 at 8:25 AM

A great mod, I've been waiting for it for a long time. I'm excited to see what else comes next.
Could you integrate extra storage space for things you want to buy through your shop or expand the storage space of the shop register?
Hope you understand what I mean, unfortunately I can't speak English and have to use a translator.

💬 SeveredSkullzAuthor, Oct 11th 2023 at 3:26 PM

Hey WickedSchnitzel Dealing with some maddness IRL so havent gotten a chance to work on it since the last release.

Clothing Stand is still WIP as of right now. It works, but I dont have a crafting recipe for it yet since I'm fighting with some positioning - though I might just give up on being a perfectionist and take a "Close Enough" approach. Without going though and doing a whole slew of custom models for each clothing piece, I dont think they will ever line up correctly / not overlap.

As for the Chiseled objects, I absolutely plan on getting that working. You can still sell them, but they wont be displayed correctly currently. The only workaround right now is to open up the UI, which should render the item's icon so you can atleast get a glimpse at what it is. I am also toying with an idea of having some sort of "Multiblock" display for those creations that take up more than 1 block (like a 3x3x3 creation).

💬 WickedSchnitzel, Oct 10th 2023 at 7:06 PM

The thing is that people would like to sell chiseled objects as well, also clothing etc. Will support for these objects be added in the future? If you have problems with implementing it, maybe take a look at CAN Market's source, as it works there?
mods.vintagestory.at/canmarket

💬 fipil, Oct 7th 2023 at 10:23 AM

Wow! What a brilliant mod! Looks like the shopping mod I was dreamed of :-). I'm going to try it! Thanks. Keep up the perfect work.

💬 Horizons, Oct 2nd 2023 at 7:08 PM

Thanks for working with Ket! We've reinstalled the new v1.1 and things seem to be working fine now. I appreciate the explanation. Keep at it and happy modding!

💬 SeveredSkullzAuthor, Oct 2nd 2023 at 2:56 PM

Thats why I said "Redownload" - While I was working with Ketamine/Horizons on Discord, I was had mistakenly changed 1.1's Zip and hadn't made a new version (Was still trying to figure out the site). At the time I think there was only like 8 people had downloaded it, so I didnt think anything of it. I assume you were one of those 8 people.

If you redownload and reinstall v1.1 and its *still* erroring out, please let me know - and preferably send me your save so I can take a look.

💬 WickedSchnitzel, Oct 2nd 2023 at 1:33 PM

It happened with 0.1.1, which is the latest version SeveredSkullz

💬 SeveredSkullzAuthor, Oct 2nd 2023 at 1:26 PM

WickedSchnitzel Not sure if you are up to date or not on the mod, but this issue was already addressed below from help with Horizons. Redownload v0.1.1 and the issue should be fixed.

💬 WickedSchnitzel, Oct 2nd 2023 at 7:37 AM

Run ok for a while, then crashed the whole server with

[Server Error] Exception thrown during handling event OnSaveGameLoaded: System.NullReferenceException: Object reference not set to an instance of an object.
at Viconomy.Registry.ShopRegistry.GetCount()
at Viconomy.ViconomyModSystem.OnSaveGameLoading()
at Vintagestory.Server.ServerEventManager.TriggerSaveGameLoaded() in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Server\ServerEventManager.cs:line 474

💬 SeveredSkullzAuthor, Sep 30th 2023 at 5:08 PM

Horizons I spoke with Ketastrophe via discord and he sent me the world files from your server. I have narrowed down the root cause being an edge case where the game saved when you had no Registers placed. My clean-up code kicked in to remove the listing for that register, and ultimately the serialization of an empty Dictionary caused the value to be saved as "null" for your Player UUID. When the game then went to load your Registers, it got null instead of the Dictionary to loop through. Problem fixed - And fortunately, I can say that Fantasy Creatures (or any mod) had nothing to do with this issue.

💬 Adelion, Sep 30th 2023 at 3:47 AM

@SeveredSkullz AHH ok alright! then i said nothing :D 

💬 SeveredSkullzAuthor, Sep 30th 2023 at 1:39 AM

Horizons Unfortunately I am still unable to replicate the issue you are facing. I created a new world, Set up 3 different Registers, with 4 Stalls each. I then saved the game, quit to the main menu, installed Fantasy Creatures, and reloaded the game.

The stacktrace you posted is much more helpful as it actually has a listing to my mod showing me an issue with the OnSaveGameLoading() method. While I cannot seem to replicate the exact issue you are facing, if you can send me the world save I can try and take a closer look. I have also uploaded a redundant check to discard any Shop Registry data if the  loading fails. This means you will have to reconfigure your Registers (Preferably removing them entirely and craft a new one so there is not an ID clash later on) - but you should still be able to reopen your original save file.

I am also on the Offficial Vintage Story Discord with the same name - SeveredSkullz - Feel free to message me on there / send files / etc.

💬 Horizons, Sep 29th 2023 at 11:57 PM

Thank you for your time testing for our bug!

Because you were wondering, the method used to determine Vinconomy is the issue was removing half the mods, seeing which half still had the error, and then repeating. We narrowed it down to seeing the error with only Vinconomy installed. With all other mods except Vinconomy installed, the error did not appear.

This morning we did more testing, including in singleplayer, a copy of the server, and the original server. We found that the issue seems to be linked to the save file itself. A new save does not have any issues with Vinconomy or Vinconomy with our other mods.

After further testing with a new save file, we managed to replicate the error by first installing Vinconomy, testing it in game, and then Fantasy Creatures (which was previously removed from our server), which triggered the set of errors right away. It seems that despite removing Fantasy Creatures, something about how it alters the save file does not play well with Vinconomy.

We did find an additional error in the log:

29.9.2023 08:41:11 [Server Error] Exception thrown during handling event OnSaveGameLoaded: System.NullReferenceException: Obje ct reference not set to an instance of an object. at Viconomy.Registry.ShopRegistry.GetCount() at Viconomy.ViconomyModSystem.OnSaveGameLoading() at Vintagestory.Server.ServerEventManager.TriggerSaveGameLoaded() in C:\Users\Tyron\Documents\vintagestory\game\Vintagestor yLib\Server\ServerEventManager.cs:line 474

Once again, thanks for your time. We fell in love with the mod right away and can't wait to play with it on a new save!

💬 SeveredSkullzAuthor, Sep 29th 2023 at 4:32 PM

Adelion - You're saying that if you place a Stall and a Register, link it up, and then remove the Register that the Stall will still have that Register's Shop listed in the dropdown? If I understood you correctly, That is intentional. This way if you ever wanted to move the register to a new position in the future, you wouldnt have to reconfigure each and every one of your stalls. You can simply move your Register and all the Stalls will still use that Register. When the save game is loaded, it tries to go through and clean up any Shops that currently do not have a Register placed. This means that the Stalls will reconfigure themselves as long as you place down your Register again before the next restart. Otherwise the Shop will be cleaned up and you will then have to go back to each Stall and set the Shop again.

For the Admin Shop, if you set the Shop as "None" the currency will be deleted as you suggested. This is the only time you can have the Stall set to "None" for a shop. I attempted to describe this feature with "The stall will not function if there is no Shop set for the stall (Unless it is an Admin Shop)" but it seems it was not clear enough as to what was implied here. The "Shop" selection dictates where payment will go. If you dont have a place for the payment, it just goes "poof". I will make a note of this in the Mod Description to clarify.

💬 Adelion, Sep 29th 2023 at 3:16 PM

😁 cool so far , i found some simple issues i guess, the list from the shop does not update by itself by removing a "Shop register" and for adminshops i think would be better that the currency would deleted

💬 SeveredSkullzAuthor, Sep 29th 2023 at 3:57 AM

I was fairly confident upon seeing the stacktrace that my mod had nothing to do with that error. To be sure though, I went and made a new world, set up a few simple shops, and started a temporal storm with "/nexttempstorm now" and did not crash. Retried on 2 additional worlds for a total of 3. Could not replicate the issue.

Im not sure what is giving you the impression that Vinconmy is at fault here, but looking at the source of RiftWeather.cs up on Github the root cause is trying to getting the next drifter to spawn. I assume you have a mod that modifies drifter spawns. This is obviously not modified by my mod - everything here is custom.

💬 Horizons, Sep 29th 2023 at 2:04 AM

Getting fatal errors when there's a temporal storm. To our surprise, we narrowed it down to Vinconomy. Can you take a look, please?

The error:

28.9.2023 17:55:00 [Fatal] System.NullReferenceException: Object reference not set to an instance of an object.
at Vintagestory.GameContent.ModSystemRiftWeather.onServerTick(Single dt) in C:\Users\Tyron\Documents\vintagestory\game\VSSurvivalMod\Systems\Rifts\RiftWeather.cs:line 211
at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Common\EventManager.cs:line 59
at Vintagestory.Server.CoreServerEventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Server\ServerEventManager.cs:line 124
at Vintagestory.Server.ServerMain.Process() in C:\Users\Tyron\Documents\vintagestory\game\VintagestoryLib\Server\ServerMain.cs:line 881

💬 SeveredSkullzAuthor, Sep 28th 2023 at 5:13 PM

PatrickStar10 - It is for both, meaning in order for it to function at all it needs to be on both the Client and Server. It will work fine in Singleplayer, but I dont know what use it will be for you unless you enjoy buying and selling goods to yourself (Which you cannot do anyway - Stall owners will only get the Owner UI and Interactions).

💬 PatrickStar10, Sep 28th 2023 at 4:18 PM

Does this work in singleplayer or is it a client mod only right now?

💬 TheoTheNeko, Sep 28th 2023 at 3:47 PM

The future plan for NPCs being able to buy sounds really nice 

💬 Adelion, Sep 28th 2023 at 6:43 AM

pls add donation link :D this is the mod i already waited for 

💬 Moon_Dew, Sep 27th 2023 at 9:58 PM

This would pair well with Xel's Coinage or Zolgrim's Coinz.

(edit comment delete)