{"id":166486,"date":"2026-06-09T21:24:36","date_gmt":"2026-06-09T18:24:36","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/"},"modified":"2026-06-09T21:24:36","modified_gmt":"2026-06-09T18:24:36","slug":"villagercycle","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/","title":{"rendered":"Villager Cycle"},"content":{"rendered":"<p># Villager Cycle<\/p>\n<p>![Minecraft](https:\/\/minecraft.net)<br \/>\n![Fabric](https:\/\/fabricmc.net)<br \/>\n![License](LICENSE)<br \/>\n![Version](https:\/\/github.com\/Partacus-SPQR\/VillagerCycle\/releases)<\/p>\n<p>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.<\/p>\n<p>## Features<\/p>\n<p>&#8211; **Cycle Trades Button**: Customizable button above the villager trading GUI<br \/>\n&#8211; **Draggable Button Position**: Reposition the button via drag screen<br \/>\n&#8211; **Real-Time Updates**: Trade offers refresh instantly without closing the GUI<br \/>\n&#8211; **Keybind Support**: Keyboard and mouse button bindings for all mod functions<br \/>\n&#8211; **Configurable Cycle Limits**: Set limits on how many times trades can be cycled (per villager)<br \/>\n&#8211; **Wandering Trader Support**: Optional feature (operator-controlled on servers)<br \/>\n&#8211; **Smart Validation**: Only works on valid villagers (must have profession, not traded with)<br \/>\n&#8211; **Server-Side Security**: All validation happens server-side<br \/>\n&#8211; **Anti-Exploit Protection**: Clears trade input slots to prevent item duplication<\/p>\n<p>## Installation<\/p>\n<p>1. Download from Releases<br \/>\n2. Place `.jar` in your `.minecraft\/mods` folder<br \/>\n3. Required: **Fabric API** (version matched to your MC version)<br \/>\n4. Recommended: **Cloth Config** 20.0.149+ (enhanced config UI, not available for MC 26.1)<br \/>\n5. Recommended: **ModMenu** 16.0.0+ (in-game config access)<br \/>\n6. Launch Minecraft with Fabric Loader 0.18.4+<\/p>\n<p>## How to Use<\/p>\n<p>1. Open a villager&#8217;s trading interface<br \/>\n2. Click the &#8220;Cycle Trades&#8221; button (or use the keybind)<br \/>\n3. The villager&#8217;s Level 1 trades will regenerate with new offers<\/p>\n<p>## Configuration<\/p>\n<p>### Config File Location<br \/>\n&#8211; **Windows**: `%appdata%.minecraftconfigvillagercycle.json`<br \/>\n&#8211; **macOS**: `~\/Library\/Application Support\/minecraft\/config\/villagercycle.json`<br \/>\n&#8211; **Linux**: `~\/.minecraft\/config\/villagercycle.json`<\/p>\n<p>### Options<\/p>\n<p>&#8220;`json<br \/>\n{<br \/>\n  &#8220;enableCycleButton&#8221;: true,<br \/>\n  &#8220;allowWanderingTraders&#8221;: false,<br \/>\n  &#8220;showSuccessMessage&#8221;: true,<br \/>\n  &#8220;showWanderingTraderSuccessMessage&#8221;: true,<br \/>\n  &#8220;villagerCycleLimit&#8221;: -1,<br \/>\n  &#8220;wanderingTraderCycleLimit&#8221;: 1,<br \/>\n  &#8220;buttonOffsetX&#8221;: 6,<br \/>\n  &#8220;buttonOffsetY&#8221;: -25,<br \/>\n  &#8220;buttonWidth&#8221;: 100,<br \/>\n  &#8220;buttonHeight&#8221;: 20<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>| Option | Default | Description |<br \/>\n|&#8212;&#8212;&#8211;|&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;&#8212;-|<br \/>\n| `enableCycleButton` | `true` | Show\/hide the cycle button |<br \/>\n| `showSuccessMessage` | `true` | Show villager cycle success message (client-side) |<br \/>\n| `showWanderingTraderSuccessMessage` | `true` | Show wandering trader success message (client-side) |<br \/>\n| `allowWanderingTraders` | `false` | Enable wandering trader cycling (**operator only** on servers) |<br \/>\n| `villagerCycleLimit` | `-1` | Max cycles per villager: -1=unlimited (**operator only** on servers) |<br \/>\n| `wanderingTraderCycleLimit` | `1` | Max cycles per wandering trader: -1=unlimited (**operator only** on servers) |<br \/>\n| `buttonOffsetX\/Y` | `6`\/`-25` | Button position offset from GUI |<br \/>\n| `buttonWidth\/Height` | `100`\/`20` | Button dimensions (pixels) |<\/p>\n<p>### Keybinds<\/p>\n<p>All keybinds are **unbound by default**. Set them in Options \u2192 Controls \u2192 Villager Cycle.<\/p>\n<p>Supports both keyboard keys and mouse buttons (e.g., Mouse Button 4\/5).<\/p>\n<p>| Keybind | Function |<br \/>\n|&#8212;&#8212;&#8212;|&#8212;&#8212;&#8212;-|<br \/>\n| Toggle Button Visibility | Show\/hide the cycle button |<br \/>\n| Open Button Position Screen | Open drag screen to reposition button |<br \/>\n| Open Config Screen | Open the mod configuration screen |<br \/>\n| Reload Config File | Reload config from disk |<br \/>\n| Cycle Trades | Cycle trades while in merchant screen (keyboard or mouse) |<\/p>\n<p>## Singleplayer vs Multiplayer<\/p>\n<p>&#8211; **Singleplayer**: All features available with full control over all settings.<br \/>\n&#8211; **Multiplayer**: Operator permission (level 4) required for:<br \/>\n  &#8211; Allow Wandering Traders toggle<br \/>\n  &#8211; Villager Cycle Limit<br \/>\n  &#8211; Wandering Trader Cycle Limit<\/p>\n<p>Success message toggles are client-side \u2014 each player controls their own preference.<\/p>\n<p>## Limitations<\/p>\n<p>&#8211; Only works on villagers not yet traded with<br \/>\n&#8211; Only works on villagers with valid professions (not Nitwits\/Unemployed)<br \/>\n&#8211; Only refreshes Level 1 trades (experience level 0)<br \/>\n&#8211; Items in trade slots are returned to inventory when cycling<\/p>\n<p>## Technical Requirements<\/p>\n<p>&#8211; **Minecraft**: 1.21.9, 1.21.10, 1.21.11, or 26.1<br \/>\n&#8211; **Fabric Loader**: 0.18.4+<br \/>\n&#8211; **Java**: 21+ (Java 25+ for MC 26.1)<br \/>\n&#8211; **Fabric API**: Required (version matched to your MC version)<br \/>\n&#8211; **Cloth Config**: Optional, recommended (not available for MC 26.1 as of late)<br \/>\n&#8211; **ModMenu**: Optional, recommended<\/p>\n<p>## License<\/p>\n<p>MIT License \u2014 Free to include in modpacks.<\/p>\n<p>## Support<\/p>\n<p>Open an issue on GitHub for bugs or suggestions.<\/p>\n<p>## Author<\/p>\n<p>Created by Partacus-SPQR<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Minecraft Fabric mod that adds a button to refresh villager trades.<\/p>\n","protected":false},"featured_media":166487,"template":"","meta":{"_minecraft_slug":"villagercycle","_minecraft_project_id":"lI4LXqQa","_minecraft_author":"Partacus-SPQR","_minecraft_license":"MIT","_minecraft_downloads":22940,"_minecraft_follows":14,"_minecraft_client_side":"required","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"villagercycle.zip","_minecraft_size_bytes":7219604,"_minecraft_version_count":5,"_minecraft_updated_at":"2026-05-16T22:07:26.454057Z","_minecraft_date_created":"2025-12-02T22:23:29.488637Z","_minecraft_date_modified":"2026-03-26T00:44:33.964519Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/villagercycle","_minecraft_icon_attachment_id":166487,"_minecraft_imported_at":"2026-06-09T18:24:36+00:00","_minecraft_import_hash":"693947ea10decac438180b9c6b697fed","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[97,89,92],"mod_loader":[99],"minecraft_version":[40,41,83],"class_list":["post-166486","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-fabric","mod_category-game-mechanics","mod_category-utility","mod_loader-fabric","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-26-1"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Villager Cycle - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Villager Cycle - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A Minecraft Fabric mod that adds a button to refresh villager trades.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/villagercycle\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/villagercycle\\\/\",\"name\":\"Villager Cycle - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/villagercycle\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/villagercycle\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/villagercycle-icon-a5929b3039aa647ac83c77c6ff8a0995758f4acc_96.webp\",\"datePublished\":\"2026-06-09T18:24:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/villagercycle\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/villagercycle\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/villagercycle\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/villagercycle-icon-a5929b3039aa647ac83c77c6ff8a0995758f4acc_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/villagercycle-icon-a5929b3039aa647ac83c77c6ff8a0995758f4acc_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/villagercycle\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Villager Cycle\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Villager Cycle - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/","og_locale":"en_US","og_type":"article","og_title":"Villager Cycle - Minecraft","og_description":"A Minecraft Fabric mod that adds a button to refresh villager trades.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/","name":"Villager Cycle - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/villagercycle-icon-a5929b3039aa647ac83c77c6ff8a0995758f4acc_96.webp","datePublished":"2026-06-09T18:24:36+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/villagercycle-icon-a5929b3039aa647ac83c77c6ff8a0995758f4acc_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/villagercycle-icon-a5929b3039aa647ac83c77c6ff8a0995758f4acc_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/villagercycle\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"Villager Cycle"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/166486","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/166487"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=166486"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=166486"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=166486"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=166486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}