You are viewing a potentially older version of this package. View all versions.
Damntry-SuperQoLity-1.0.10 icon

SuperQoLity

AI, performance, and QoL changes for Supermarket Together

Date uploaded 5 days ago
Version 1.0.10
Download link Damntry-SuperQoLity-1.0.10.zip
Downloads 221
Dependency string Damntry-SuperQoLity-1.0.10

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

SuperQoLity

AI, performance, and QoL changes for Supermarket Together


🛠️ Features 🛠️

Every feature is optional and disabled by default:

  • NPC job coordination.
    • Employees wont choose the same jobs (Manufacturing pending).
    • Restockers do less and shorter trips with an improved box choosing logic.
    • Fixed game bug where products were being put in wrong shelves when other shelves are deleted.
  • Performance optimizations:
    • The job choosing logic for restockers is faster, multithreaded, and takes better decisions.
    • Idle storage workers wont cause stutters on big stores.
    • A configurable job scheduler to balance CPU usage vs employee/customer responsiveness.
    • And too many all around to add here.
  • Stuck customers fix
    • They can now free themselves when trapped.
  • Product highlighting,
    • 4 visual modes to choose from, with customizable colors and brightness.
    • Highlights shelves, shelf labels, and boxes on the ground or being held.
    • Enabled when picking up a box, or with a hotkey.
  • Configurable employee move speed when the store is closed. Faster and smoother than the star perk, and you move at normal speed so you can do work too.
  • Configurable, faster shelf product placing, for players and/or employees.
  • Broom shotgun!
  • Quickly equip any tool using a visual equipment wheel and optional hotkeys. Tools wont cheat themselves in, there must be a free one on the map or organizer.
  • Restrict customers to only shop for products that had been assigned to shelves, instead of every unlocked product.
    • Enables shop specialization, and customers will still complain if the assigned product runs out of stock.
  • Security employee improvements:
    • They can pick up multiple dropped products in an area around them, as they level up.
    • Configurable thief-chasing behaviour.
    • Nearest available guard will chase thieves, and not one at random.
  • Immersion tweaks:
    • Employees now try to look at the object they are interacting with.
    • Security employees look around while standing guard.
  • You can hold the mouse button to keep scanning products in the checkout belt.
  • Configurable employee wait time after finishing a job step.
  • Hotkeys to build or move the buildable you are looking at.
  • Adjustable % of customers paying with card vs cash.
  • Configurable storage priority for employees (labeled/unlabeled/any).
  • In the Manager Blackboard, you can click anywhere on a product panel to add it to the shopping list.
  • Storage employees prioritise the closest box on the floor, not a random one.
  • Setting to increase the limit of buildables and decorations that the game can load, from 5000 to 100000.
  • Customers wont complain when doubling the market price with the pricing gun (Check 0.8.2 changelog for why I see this as a bug).
  • And tons of my own bugs that I missed and you ll learn to love.

📙 Manual Installation Guide 📙


🌐 Multiplayer 🌐

This mod is 100% multiplayer ready. If a setting has any multiplayer details or requirements, its description will tell you so.

By design, and to promote fair play, the host has control over some of the allowed features. If the host doesnt have the mod, or it has the feature disabled in the settings, the client wont be able to use it.


⚙️ Settings ⚙️

All settings have, by default, base game values. You need to enable them to activate features (except npc coordination always being active when the employee module is enabled). If you dont have an in-game config manager, I very much recommend using the BepInEx5 version of BepInEx.ConfigurationManager, as it lets you change settings in real time.


BetterSMT is 100% compatible. Note that its "Quick stocking" and "Quick removing" settings have priority over my item transfer feature.

Many thanks to Mitche (kinda), Ika, and many others that helped get this thing out at the unofficial SMT discord.


📝 Full changelog 📝


Want to get in contact with me, request mod ideas, or get some help in your modding journey? Come join us at the semi-official SMT modding discord.


For suggestions or bug reports, you can use the Issues section on GitHub.

Like my work and want to support me or buy me a coffee?

Well, too bad, because you cant.

You though it would be a real link didnt you?


💀 Known bugs 💀

  • Clients may still see products dropped from thieves even after a security employee picks it up. For the host those products wont exist, but the client can still pick them up, so it is in practice money duping, though rare enough not to matter. This is a limitation due to network traffic. I plan to fix it for clients that have SuperQoLity installed, but Im studying what can be done for unmodded clients.

And the unknown bugs are the ones that still keep me up at night.

CHANGELOG

Changelog

1.0.1.0

Fucked up the Thunderstore release and there were missing files. The Nexusmods and GitHub releases are fine.

1.0.0.0

IMPORTANT: Many existing settings have changed and will be disabled. You have to set them up again.

* Changes
	- Highlights reworked and expanded:
		- 4 visual modes to choose from.
		- Boxes on the floor or being held by other employee/players will highlight too.
		- Highlights are now fully updated dynamically as boxes are put by others into storage, picked up, etc.
		- Brightness configurable via the alpha channel of its highlight color setting.
		- New hotkey to highlight the product you are aiming at. Clears highlights if no product.
* New
	- Pick up a broom, right click to start aiming, left click to shoot. Have fun.
		Works on trash too, and by trash I mean your coop friends, but it also destroys the piles of garbage that spawn on your store.
	- Customers added to the job scheduler to reduce them from standing around as much.
	- Stuck customers can now free themselves. As an extra last resort, they may teleport a small distance but this will probably never happen.
	- A custom made visual equipment wheel to select a tool to bring into your hands, with optional hotkeys. Tools wont cheat themselves in, there must be a free one on the map or an organizer.
	- New setting to restrict customers to only shop for products that had been assigned to shelves, instead of every unlocked product. 
		Enables store specialization. Customers will still complain if the assigned product runs out of stock.
	- Adjustable % of customers paying with card vs cash.
	- Hotkeys to build or move the buildable you are looking at. Saves you opening the build menu and manually looking for it.
	- Setting to increase the limit of buildables and decorations that the game can load, from 5000 to 100000.
	- Main menu mod logo
* Fixed
	- Broken mod features after multiple game updates, mostly from the employee module.
	- Base game bug where products were being put in wrong shelves after other shelves were deleted
	- Performance loss after first box pick up with highlighting enabled. 
		Large stores could lose >20% performance or more.

0.8.8.0 (0.8.7.68000 on thunderstore)

- Changes from last game update:
	Fixed item transfer not working correctly when placing items..
	Added new employee fixes.
- Fixed rare exception in restock jobs: "Unable to sort because the IComparer.Compare() method returns inconsistent results", that causes restock employees to stop working.	

Huge changes are coming soon.

0.8.7.7 (0.8.7.61000 on thunderstore)

- Fix for BetterSMT 2.5.0 update causing errors with highlighting.
- From now on, Thunderstore will have a different version number than everywhere else, until I hit 0.9.
	There are no other changes other than that, I made a mistake in versioning and this is the solution for now.

0.8.7.60001

- Tiny +0001 version bump just so Thunderstore blesses this humble modder with the groundbreaking ability to upload the correct changelog. Thank you Thunderstore for granting me your infinite mercy.

0.8.7.6

- New setting to control how security employees chase thieves, instead of all rushing the first one.
- When a thief is spotted, the security employee assigned to chase it will be the nearest one available, and not one random.
- Added employee changes from last base game update:
	- Online order employees will now drop empty boxes instead of putting them back in storage.
	- Slowed down cashier leveling.

0.8.7.0

- Employees will now try and look in the direction of the object they are interacting with. 
	This will not slow them down, its only a visual change that cancels once they have a new move order.
	Customers are planned later.
- Higher leveled security employees will now be able to pick up more than 1 stolen product from the ground, and in a bigger area around them.
	At first they can only pick up a single product in a very small area. Every extra level, the area increases very slightly, and every 5 levels (5, 10, 15, etc) they can take an extra product.
	This can be disabled or modified in the settings.
- Fixed elusive error that sometimes made restockers not work, even though there were product shelves with missing products that were available in storage.
- Fixed fuck up where security employees were not working at night.
- Added fixes from previous updates of the base game that I needed to add manually:
	Technician employees receiving too little xp from their work. This wasnt fixed in the base game yet, but probably on their next update
	Packagers employees experience was being added to restockers instead.
- Lots of reorganization and clean up of employee code, let me know if something I missed breaks catastrophically.

0.8.5.5

- Fucked up my previous patch and cashiers werent working. Fixed now.

0.8.5.4

- Updated employee logic to add the packager (for online orders) from last update.

0.8.5.0

- Updated employee logic to add the technician from last update.

0.8.4.7

- Updated baler logic to avoid exception introduced with last update.

0.8.4.5

- Added missing logic from last update: 
	* Achievement to recycle 40 cardboard bales.
	* All security employees pick up ground products if no customers are left at closing hours.

0.8.4.0

- Added Carboard Baler logic from last update to employees, so they make use of it.
- Potential fix for an employee restocking problem that made them not restock sometimes. Contact me if you still get this bug so I can find how it happens.
- Made the expensive restock background method lighting fast and multithreaded! Much faster than base game now, no longer will it bog down the rest of the game.
- The above change made it so I can now do resource-heavy logic that wasnt viable before, and still have plenty to spare. Now restockers will decide which box to restock from, based on box content quantity and distance from the product shelf.
- Fixed yet another exception that happened when the setting "Hold click to scan checkout products" was disabled.

0.8.3.2

- Fixed exception happening after new SMT update that made restockers not work.
- Fixed exception that happened when the setting "Hold click to scan checkout products" was disabled.

0.8.3.0

- Requested by Aretha Cairn: You can now hold the mouse button to scan items in the checkout belt.
	It should make easier to play cashier for long periods of time.
- Requested by Aretha Cairn: New setting to expand the clickable area of the product order button in the blackboard, so it can be clicked (almost) anywhere in its product square.
- Added support for "Custom Products" mod to avoid an exception when loading the game.
- Removed debug log from the pricing gun fix that I forgot to remove. Oh no.

0.8.2.0

- Pricing gun fixed so doubling the price no longer makes customers complain.
	This one needs a bit of an explanation on why I consider it a bug:

	A customer only complains if something is over 2 times the price.
	Yet when you double an item s market price with the pricing gun, sometimes customers still complain. 
	Why? Because the market price is a lie: The pricing gun might show you a market price of 1.25, so you would think 2.5 should be fine. 
	In reality its something like 1.2453, which doubled results in 2,4906. 
	When a customer comes and checks the price, 2.5 is greater than 2,4906, so they complain.

	All of this only happens depending on calculated market price. Some products are fine with a 200% markup and a certain inflation value, but then comes inflation day and setting the same product to 200% gets complains.
	This inconsistency is what makes it a bug, though a pretty small one.

	The pricing machine doesnt have this problem (even if you dont round down 1 cent), but not because it is doing hidden magic, but because it does calculations based on what is being shown.
		
	I changed it so what you see is what you get. If the pricing gun tells you the market price is 1.25, it really is. 
	Now you can trust the pricing gun and stop doing -1 cent on everything.

	At least until they change it to something else. Or I do.
- Reworked the entire mod network communication. Tell me if something goes wrong with item transfer not using the host's value.

0.8.1.0

- Main restocker process optimized and shouldnt stutter anymore, alike to base game.
	Much better optimizations are already planned to make it not just faster than base game, but also have restockers find jobs sooner.
- Fixed higher leveled employees sometimes putting more items in product shelves than what should fit.
- Fixed that when an employee was on its way to pick up a box from storage, a player removing or adding items into it would make the employee still think it had the old amount in it.

0.8.0.6

- Fixed cache exception happening after the "Electronics II + Decoration" game update.
- Fixed setting "Maximum workload reduction per cycle" showing default as a negative value.

0.8.0.5

- Fixed employees recycling only at the furthest recycle bin.
- Fixed some "Host only" settings keeping previous values when you were a client, instead of going default.
- Fixed Dev mode always disabled at game start.
- Fixed logging not activated when Dev mode was enabled while in-game.
- Currently, the only thing slower than base game is the main restocker process.
	I made it a bit faster for now, but I expect to finish the complete solution to this for the next update. 
	It should be a pretty decent optimization in big stores.

0.8.0.2

- Fixed bug introduced in 0.8.0.1 where if a reserved storage target wasnt valid anymore, the NPC would have no destination.
- Added that whenever an storage worker destination was invalid, the employee looks for new storage instead of directly going to drop the box at the left over spot

0.8.0.1

- Fixed bug where box items would be lost if there were more than 2 boxes to merge by storage workers.

0.8

- Initial GitHub commit. Who knows what changed before? Not me, fish memory.