Download Shifting Wares — Minecraft Mods — MetaMods

Shifting Wares

Active

Downloads

0

Last update

2 months ago

Versions

1.19.4 — 1.21.7
Server
Fabric
Economy
Game mechanics

Shifting Wares

This mod transforms the interaction with villagers in Minecraft by introducing a system of periodic updates to their trade offerings. Villagers now independently replace their goods up to three times per day, making the interaction with them more dynamic and engaging.

The changes are particularly noticeable for professions that trade enchanted items or colored goods - now a single such trader can offer a much more diverse range of items over time.

Main Benefits

The modification reduces the effectiveness of exploitative gameplay strategies while making random discoveries and spontaneous findings more valuable. Perfect deals with villagers no longer last forever, and unsuccessful offers eventually improve over time. Although theoretically one villager could provide everything needed, having multiple representatives of the same profession remains useful for increasing the chances of obtaining specific items.

Since all trade offers eventually become outdated, villagers become easier to replace if they die. Now you can allow them to move freely around the territory without significant risk to your economy.

Trade Update Mechanisms

The mod provides two configurable game rules that control the offer update process (both features are active by default).

  • shiftingWares.dailyReroll: Forces villagers to completely refresh all their offers once per day when first visiting their workplace.
  • shiftingWares.depleteReroll: Triggers updates for any fully depleted trade offers during each visit to the work station. Also prevents stock replenishment for offers that still have remaining uses.

Explorer Map Features

Minecraft permanently saves all created maps and blocks the appearance of their structures on other explorer maps. To prevent daily updates of endless amounts of unsold maps, these deals are handled differently.

By default, map offers are never updated. They can only be replaced when the shiftingWares.allowMapReroll rule is enabled and if the trade has been used at least once.

Workstation Protection

Breaking and replacing a villager's workstation no longer forces them to change their trade offers. Initial deals are generated using a deterministic random algorithm where the villager's UUID serves as the seed value.

This behavior is regulated by the shiftingWares.workstationProtection rule.

Technical Details

If a villager cannot generate an offer for a slot, it is replaced with an empty deal. In the vanilla version, this should only occur with cartographers who cannot create explorer maps in worlds without structures.

These empty placeholders are necessary to ensure the updating of offers of equivalent level, since the position of the deal in the list is the only indicator of its level. Filler deals never take the place of valid offers - they only appear when all other options are exhausted.

As a side effect of this modification, the "Demand Bonus" mechanic is significantly weakened since demand bonus data is deleted along with the updated offers.

Updating depleted deals has a chance to result in duplicate offers.

For Developers

By default, Shifting Wares assumes 2 deals per level and takes its offer pools from the same source as the vanilla version. Other modifications can override this behavior by using the shifting-wares entry point and implementing the ITradeLayoutProvider interface.

If your mod contains custom implementations of map trade factories or produces other items with permanent data, you can inform Shifting Wares that they should be persistent by implementing the methods defined in the IShiftingTradeFactory interface. No dependency on Shifting Wares is required for this - it's sufficient to provide methods with matching names and prototypes.

Project members
Estecka

Estecka

Developer

Created: 12 Aug 2023

ID: 3946