Перейти к содержимому
Mineforgian

Villager Cycle

A Minecraft Fabric mod that adds a button to refresh villager trades.

Загрузки
30K
Подписчики
16
Обновлён
23 июня 2026 г.
Лицензия
MIT

Опубликован 1 декабря 2025 г.

Villager Cycle

Minecraft Fabric License Version

A Quality of Life mod for Minecraft Fabric that adds a button to villager trading screens, allowing you to refresh their trades before making any purchases.

Features

  • Cycle Trades Button: Customizable button above the villager trading GUI
  • Draggable Button Position: Reposition the button via drag screen
  • Real-Time Updates: Trade offers refresh instantly without closing the GUI
  • Keybind Support: Keyboard and mouse button bindings for all mod functions
  • Configurable Cycle Limits: Set limits on how many times trades can be cycled (per villager)
  • Wandering Trader Support: Optional feature (operator-controlled on servers)
  • Smart Validation: Only works on valid villagers (must have profession, not traded with)
  • Server-Side Security: All validation happens server-side
  • Anti-Exploit Protection: Clears trade input slots to prevent item duplication

Installation

  1. Download from Releases
  2. Place .jar in your .minecraft/mods folder
  3. Required: Fabric API (version matched to your MC version)
  4. Recommended: Cloth Config 20.0.149+ (enhanced config UI, not available for MC 26.x)
  5. Recommended: ModMenu 16.0.0+ (in-game config access)
  6. Launch Minecraft with Fabric Loader 0.18.4+

How to Use

  1. Open a villager's trading interface
  2. Click the "Cycle Trades" button (or use the keybind)
  3. The villager's Level 1 trades will regenerate with new offers

Configuration

Config File Location

  • Windows: %appdata%\.minecraft\config\villagercycle.json
  • macOS: ~/Library/Application Support/minecraft/config/villagercycle.json
  • Linux: ~/.minecraft/config/villagercycle.json

Options

{
  "enableCycleButton": true,
  "allowWanderingTraders": false,
  "showSuccessMessage": true,
  "showWanderingTraderSuccessMessage": true,
  "villagerCycleLimit": -1,
  "wanderingTraderCycleLimit": 1,
  "buttonOffsetX": 6,
  "buttonOffsetY": -25,
  "buttonWidth": 100,
  "buttonHeight": 20
}
Option Default Description
enableCycleButton true Show/hide the cycle button
showSuccessMessage true Show villager cycle success message (client-side)
showWanderingTraderSuccessMessage true Show wandering trader success message (client-side)
allowWanderingTraders false Enable wandering trader cycling (operator only on servers)
villagerCycleLimit -1 Max cycles per villager: -1=unlimited, 0=disabled, 1+=limited (operator only on servers)
wanderingTraderCycleLimit 1 Max cycles per wandering trader: -1=unlimited, 0=disabled, 1+=limited (operator only on servers)
buttonOffsetX/Y 6/-25 Button position offset from GUI
buttonWidth/Height 100/20 Button dimensions (pixels)

Keybinds

All keybinds are unbound by default. Set them in Options → Controls → Villager Cycle.

Supports both keyboard keys and mouse buttons (e.g., Mouse Button 4/5).

Keybind Function
Toggle Button Visibility Show/hide the cycle button
Open Button Position Screen Open drag screen to reposition button
Open Config Screen Open the mod configuration screen
Reload Config File Reload config from disk
Cycle Trades Cycle trades while in merchant screen (keyboard or mouse)

Singleplayer vs Multiplayer

  • Singleplayer: All features available with full control over all settings.
  • Multiplayer: Operator permission (level 4) required for:
    • Allow Wandering Traders toggle
    • Villager Cycle Limit
    • Wandering Trader Cycle Limit

Success message toggles are client-side — each player controls their own preference.

Limitations

  • Only works on villagers not yet traded with
  • Only works on villagers with valid professions (not Nitwits/Unemployed)
  • Only refreshes Level 1 trades (experience level 0)
  • Items in trade slots are returned to inventory when cycling

Technical Requirements

  • Minecraft: 1.21.9, 1.21.10, 1.21.11, 26.1, or 26.2
  • Fabric Loader: 0.18.4+
  • Java: 21+ (Java 25+ for MC 26.x)
  • Fabric API: Required (version matched to your MC version)
  • Cloth Config: Optional, recommended (not available for MC 26.x)
  • ModMenu: Optional, recommended

License

MIT License — Free to include in modpacks.

Support

Open an issue on GitHub for bugs or suggestions.

Author

Created by Partacus-SPQR

Ченджлог

1.5.0Релиз26.2 · 23 июня 2026 г.

[1.5.0] - 2026-06-23

Added

  • Minecraft 26.2 support (unobfuscated builds, Java 25)

Changed

  • 26.2 is now the primary build target; multi-version builds now cover 1.21.9, 1.21.10, 1.21.11, 26.1, and 26.2
  • Adapted to the 26.2 screen API change via a new ScreenCompat helper:
    • Minecraft.setScreen()Minecraft.setScreenAndShow()
    • Minecraft.screen field → Minecraft.gui.screen()
  • Updated dependencies for 26.2: Fabric API 0.153.0+26.2, Mod Menu 20.0.0-beta.4

Fixed

  • Cycle-limit sliders (fallback config screen) could not reliably select 0 (Disabled): the slider's far-left mapped to -1 (Unlimited), so setting villager or wandering-trader cycling to disabled silently did nothing — and a "disabled" wandering trader could still be cycled once at the default limit of 1. Sliders now order options as Disabled (0) → 1…N → Unlimited (-1), so every value (especially Disabled) is reliably selectable. The Cloth Config screen was unaffected.
  • Wandering-trader cycle limit of 0 now reports a clear "cycling is disabled by the server" message, matching villager behavior.

Technical

  • Server-side networking, merchant accessors, and trade-cycle logic required no changes — they reuse the existing >=26.1 Stonecutter conditionals
  • Screen API difference centralised in ScreenCompat (gated on >=26.2) so 1.21.x and 26.1 are unaffected
1.4.0Релиз26.1 · 26 марта 2026 г.

[1.4.0] - 2026-03-25

Added

  • Minecraft 26.1 support
  • Minecraft 1.21.9 and 1.21.10 support
  • Java 25 toolchain support
  • Unobfuscated jar handling for MC 26.1 (no mappings required)
  • Multi-version builds via Stonecutter (1.21.9, 1.21.10, 1.21.11, 26.1)

Changed

  • Migrated from Yarn to Mojang mappings
  • Updated Gradle wrapper to 9.4.1
  • Updated Fabric Loom to 1.15.5
  • Updated Fabric Loader to 0.18.4
  • Adapted all source files with Stonecutter conditionals for API changes:
    • PayloadTypeRegistry.playC2S()serverboundPlay() (26.1)
    • displayClientMessage()sendSystemMessage() (26.1)
    • KeyBindingHelperKeyMappingHelper / KeyBindingKeyMapping (26.1)
    • GuiGraphicsGuiGraphicsExtractor with new render methods (26.1)
    • Villager package restructured in 1.21.11+
    • ResourceLocationIdentifier (1.21.11+)
    • Permission API changes for 1.21.11+
  • Cloth Config excluded for 26.1 (no compatible version available yet)
  • Fallback config screen used when Cloth Config is unavailable

Technical

  • Stonecutter 0.5.1 for multi-version source management
  • Single source tree with version conditionals
1.3.0Релиз1.21.11 · 11 декабря 2025 г.

[1.3.0] - 2025-12-11

Added

  • Fallback Config Screen: Vanilla config UI when Cloth Config is not installed
  • Mouse Button Keybinds: Cycle trades keybind now supports mouse buttons (e.g., Button 4/5)

Changed

  • Cloth Config: Now optional (recommended for enhanced config UI)
  • ModMenu: Now optional (recommended for in-game config access)
  • Updated to Minecraft 1.21.11
  • Updated to Fabric Loader 0.18.2
  • Updated to Fabric API 0.139.4+1.21.11
  • Updated to Gradle 9.2.1 and Loom 1.14

Fixed

  • Cycle trades keybind now properly detects key presses while merchant screen is open
1.2.0Релиз1.21.10 · 7 декабря 2025 г.

[1.2.0] - 2025-12-07

Added

  • Draggable Button: Reposition the cycle button via drag screen (set keybind to access)
  • Villager Cycle Limit: Configurable limit on cycles per villager (operator only, default: unlimited)
  • Wandering Trader Cycle Limit: Configurable limit on cycles per trader (operator only, default: 1)
  • Show Villager Success Message: Client-side toggle to hide success messages (reduces chat spam)
  • Show Wandering Trader Success Message: Client-side toggle to hide trader success messages
  • Button Size Sliders: Configurable button width and height in config
  • Keybinds: All unbound by default, set in Controls menu:
    • Toggle button visibility
    • Open button position (drag) screen
    • Open config screen
    • Reload config file
    • Cycle trades (works while merchant screen is open)

Changed

  • Success message settings are now client-side (each player controls their own)
  • Cycle limits are operator-only settings on multiplayer servers
  • All features work in singleplayer with full control

Author's Note

I was thinking to myself that it could be better, so I made it better :D The drag feature is high key a blessing lol.

1.1.0Релиз1.21.10 · 1 декабря 2025 г.

[1.1.0] - 2025-12-01

Added

  • Wandering Trader Support: Can now cycle trades for wandering traders (operator level 4 required on servers)
  • Visual Config Screen: In-game configuration GUI via Cloth Config API
  • Manual Config Support: JSON config file for users who don't want ModMenu
  • Anti-Exploit Protection: Items in trade slots are automatically returned to inventory when cycling
  • Trade Validation: Prevents cycling wandering traders that have already been traded with
  • Enhanced Tooltips: Config screen displays default values and ranges for all settings
  • Operator Permissions: Wandering trader setting requires operator level 4 on multiplayer servers
  • Config Sync System: Network packets properly sync wandering trader setting between client and server

Fixed

  • Wandering Trader Detection: Fixed instanceof check preventing false error messages for regular villagers
  • Button Focus: Button no longer stays highlighted after multiple trade cycles
  • Config Persistence: Config changes in GUI now properly sync to server in multiplayer

Changed

  • Cloth Config: Now a required dependency
  • ModMenu: Now optional (only needed for in-game config access)
  • Wandering trader cycling disabled by default for security
  • Config tooltips show default values in gray text
  • Server logs show operator actions when toggling settings
1.0.0Релиз1.21.10 · 1 декабря 2025 г.

[1.0.0] - Initial Release - 2025-12-01

Added

  • Cycle Trades button on villager trading GUI
  • Real-time trade refresh without closing GUI
  • Basic validation (profession check, experience check, trade-used check)
  • Server-side security and validation
  • Configurable button position and size
  • Support for singleplayer and multiplayer
  • Clear user feedback messages

Full Changelog: https://github.com/Partacus-SPQR/VillagerCycle/commits/v1.0.0

Комментарии

Загружаем…