Sueta

DupePlus

1.4.3

A highly modular Dupe Plugin Adds the /dupe command to your server.

·Plugin
  1. 1.4.3latestDupePlus 1.4.3Jun 25, 2026

    DupePlus 1.4.3

    If you have any issues with the plugin or want to request a feature, then please report it at the [DupePlus GitHub Repository Issue](https://github.com/meme20200/dupeplus/issues)

    20K+ Downloads! 🎉

    DupePlus has come a long way to become what it is today, and it is all thanks to everyone who uses it, including the players who join the Dupe server! Thank you for using this plugin.

    Bundle Checker in Bundle (Reported by Pro2021CA)

    Patched an exploit where players can skip the blocklist by putting a blocked item in a bundle within a bundle

    [Unblocker (Sub)command](https://github.com/meme20200/dupeplus/issues/10)

    Added a new (sub)command to unblock the item that is blocked from /dupeplus block, /dupeblock, or manually adding the NBT/Item Component "dupenotallowed"
    /dupeplus unblock
    /dupeunblock

    Sound Feedback

    Added a new feature that plays a chosen sound to the player whenever they do /dupe. <details> <summary>Sound Feedback in config.yml</summary>
      # Plays the set sound whenever you use /dupe
      # Permission: dupeplus.sound
      sound-feedback:
        # Enables or disables this feature. (Default: false)
        enabled: true
    
        # The Minecraft sound category used to play the sound. (Default: master)
        # Acceptable Values: master, music, record, weather, block, hostile, neutral, player, ambient, voice
        category: master
    
        # The sound used whenever the player uses /dupe. (Default: "minecraft:block.amethyst_block.chime")
        sound: "minecraft:block.amethyst_block.chime"
    
        # The volume of the sound played to a player whenever they use /dupe. (Default: 1)
        volume: 1
    
        # The pitch of the sound played to a player whenever they use /dupe. (Default: 1)
        pitch: 1
    
        # Make it false to let everyone allowed to use this feature. (Default: false)
        # Permission: dupeplus.sound
        permission: false
    </details>

    Economy Feature

    You need Vault & an Economy Plugin to use this feature.
    Added the economy feature to DupePlus that makes it so that /dupe cost a specific in-game currency price. <details> <summary>Economy Feature in config.yml</summary>
      # Deducts money from the player whenever they use /dupe
      # Permission: dupeplus.bypasseconomy
      economy:
        # Enables or disables this feature. (Default: false)
        # Note: You must have Vault installed and must set vault in integrations to true if you are going to use this feature.
        enabled: true
    
        # Whenever the player does /dupe <times>, should it deduct from the player once or every time? (Default: true)
        charge-per-dupe: true
    
        # The message sent to the player whenever the deduction was complete. (Can be silent)
        # Allowed Message Variables: <prefix>, <price>, <item_type>, <item_name>, <item_count>
        # Leave blank for no message
        successful-message: ""
    
        # The message sent to the player whenever they don't have enough currency to use /dupe.
        # Leave blank for no message
        # Allowed Message Variables: <prefix>, <price>, <item_type>, <item_name>, <item_count>
        not-enough-message: "<prefix> <red>You don't have enough currency to use /dupe!</red>"
    
        # The price that deducts from the player whenever they use /dupe (Default: 25)
        # Setting this to 0 will not deduct anything from the player.
        # Do not use negative numbers
        price: 25
    
        # Make it false to make everyone pay to use /dupe. (Default: false)
        # Permission: dupeplus.bypasseconomy
        permission: false
    </details>

    [@bobhenl's Issue](https://github.com/meme20200/dupeplus/issues/11)

    Fixed an issue where the /dupe would crash in newer Minecraft versions, we have moved from using NBTEditor to now using item-nbt-api.

    Fixes

    - Removed the modern tag usage (1.21.2+) in Bundle Check to support 1.20 and above. - Implemented options in config.yml that are missing from the code.
    9270 downloads
  2. 1.4.2DupePlus 1.4.2 (NO BUNDLES)Mar 18, 2026
    ❌ No Bundle Support (under 1.21.2)
    If you have any issues with the plugin or want to request a feature, then please report it at the [DupePlus GitHub Repository Issue](https://github.com/meme20200/dupeplus/issues)
    If your server version is over 1.21.2 then use [BUNDLES](https://modrinth.com/plugin/dupeplus/version/1.4.2).

    [@Averageguyhehe's Issue](https://github.com/meme20200/dupeplus/issues/8)

    - Bumped NBTEditor dependency to 7.20.3 (was 7.20.1)

    [@bobhenl's Issue](https://github.com/meme20200/dupeplus/issues/7)

    - Fixed World message using Custom NBT Message - Fixed bug where duping nothing would send a message

    FastStats

    - DupePlus now uses [FastStats](https://faststats.dev) alongside keeping [bStats](https://bstats.org)

    List

    - Fixed Blacklist shulker and bundle checks

    New Commands

    - Added two new commands: "/dupeblock" and "/dupeblocklist" - Added new subcommand for convenience: /dupeplus issues

    Permission Updates

    - Made the dupeplus.cooldown permission actually do something - dupeplus.blocklist -> dupeplus.admin.blocklist - dupeplus.block -> dupeplus.admin.block - dupeplus.admin.* gives all the admin permissions
    5525 downloads
  3. 1.4.1DupePlus 1.4.1Dec 11, 2025

    v1.4.1

    If you have any issues with the plugin or want to request a feature, then please report it at the [DupePlus GitHub Repository Issue](https://github.com/meme20200/dupeplus/issues)

    Now doesn't break on 1.21.10 and 1.21.9

    DupePlus now works on 1.21.10 and 1.21.9 without any known issues. [@RenegadeActual's issue](https://github.com/meme20200/dupeplus/issues/6)

    Custom Commands Notice

    If you changed the custom command for dupe and reloaded the configuration, then players must rejoin to see the changes.

    Improvement on blocklist

    /dupeplus blocklist DupePlus now has a Blocklist Menu, which allows you to add and remove items from the blocklist, and make an item undupeable. And turn off and on the whitelist/blacklist from the menu with ease.

    Make your item undupeable fast

    /dupeplus block Adds the dupenotallowed tag on your item. (small fix)
    5501 downloads
  4. 1.4.0DupePlus 1.4.0Nov 2, 2025

    v1.4.0

    If you have any issues with the plugin or want to request a feature, then please report it at the [DupePlus GitHub Repository Issue](https://github.com/meme20200/dupeplus/issues/new/choose)
    DupePlus will no longer support versions below 1.20

    Custom Command

    You can now customise the /dupe command. You can change the name of the command /<name>, and the aliases of the command (Another way of using /dupe). [@8Ad8's feature](https://github.com/meme20200/dupeplus/issues/4) [CommandAPI](https://docs.commandapi.dev/)

    PlaceholderAPI Support

    You can now use PlaceholderAPI in the customizable messages in config.yml. [PlaceholderAPI available placeholders](https://api.extendedclip.com/all/)

    New change to Variables

    Instead of using % for variables. You will need to use < > (for PlaceholderAPI, use the regular %).

    Worlds

    You can now block or allow /dupe in specific worlds.

    Changes to Blacklist

    You are now able to whitelist or blacklist worlds or items. Whitelist blocks everything and allows the worlds/items in the list. Blacklist does the opposite. [@Sonicscream's suggestion](https://github.com/meme20200/dupeplus/issues/1#issuecomme…

    Bugfixes

    - Fixed an issue where duplicating items would send an error instead of the dupe message. - Removed the Checking Key in console. (i forgot to remove it after releasing it)

    Small change

    Changed com.galaxydevnetwork into net.meme20200 Turned off cooldown by default. [@ziadhashimeh80-eng's issue](https://github.com/meme20200/dupeplus/issues/5) Added a way to list all ItemsAdder items by using itemsadder:*
    1242 downloads
  5. 1.3.0DupePlus 1.3.0Mar 14, 2025

    v1.3.0

    If you have any issues with the plugin or want to request a feature then please report it at the [DupePlus GitHub Repository Issue](https://github.com/meme20200/dupeplus/issues/new/choose)

    Custom NBT Item

    Block items from being duplicated by adding the {"dupenotallowed":true} to the item.
    1.20.5 and above
    In the new change, Minecraft changed NBTs into components, and they also changed how custom tag works, it has to be in the custom_data. Example:
    /give @p minecraft:diamond_sword[minecraft:custom_data={dupenotallowed:true}]
    The command gives you a diamond sword with the undupeable tag in the Component format.
    1.20.4 and below
    Instead of using components, you have to use NBT which is JSON formatted, instead of including the custom tag into the custom_data, you don't have to put it anywhere.
    /give @p minecraft:diamond_sword{dupenotallowed:true}
    The command gives you a diamond sword with the undupeable tag in the NBT format.

    Cooldown Permission

    Let some players/groups off the cooldown by adding the permission dupeplus.cooldown

    Times Max Value

    Have multiple max values for players/groups, for an example the max-value for VIP is 8. Add vip: 8 in the max-values then give the permission dupeplus.times.max.vip to the group/player.

    one-time-message

    Sometimes the times can be spammy for chat, if this option is enabled then whenever you use times, it will only send the message once.

    Lore

    Add lore to a duplicated item to show that it's duplicated, the original item will not be affected by the lore feature.

    Item Identifier

    A Custom Item Identifier for blacklist, instead of TRIDENT it will be minecraft:trident, this also supports itemsadder:<id>.

    ItemsAdder Support (Blacklist)

    Block some ItemsAdder items from being duplicated, use itemsadder:<Item's ID>, if you want to disable itemsadder support then disable it from the integrations

    New Placeholders

    %dupe_item% is now replaced by %item_name%. %raw_dupe_item% is removed. - %item_type% - %item_name% - %old_item_count% - %new_item_count% - %item_count%

    config.yml

    <details> <summary>config.yml</summary> ```yml

    DupePlus's Settings

    Message Variables

    %item_type% = The Duplicated item

    %item_name% = The Item's Display Name

    %old_item_count% = The Item Count before dupe

    %new_item_count% = The Item Count after dupe

    %item_count% = Item Count

    %prefix% = The default prefix or the prefix you set

    %max% = The maximum

    %min% = The minimum

    Use this website to help you customize your messages

    https://webui.advntr.dev

    dupe: # The prefix for you to use prefix: "<green>DupePlus</green>" # Make it false to let everyone allowed to use this command (Default: false) # Permission: dupeplus.dupe permission: false # The message sent to the player when try to execute dupe or reloadconfig no permission (Only if the above is true) (Default: "%prefix% <dark_gray>|</dark_gray> <red>You are not allowed to use this command</red>") # Leave blank for no message permission-message: "%prefix% <dark_gray>|</dark_gray> <red>You are not allowed to use this command</red>" # The message sent to the player when you duplicate an item. (Default: "%prefix% <dark_gray>|</dark_gray> <gray>Duped %item_name%</gray>") # Allowed Message Variables: %prefix%, %item_type%, %item_name%, %old_item_count%, %new_item_count% message: "%prefix% <dark_gray>|</dark_gray> <gray>Duped %item_name%</gray>" # The message sent whenever the player tries to dupe nothing (Air) (Default: "") # Leave blank for no message duping-nothing-message: "" # Checks if the item has a NBT Tag of "dupenotallowed", if it has, it will not dupe the item. custom-nbt-item: # Make it false to disable the Custom NBT feature, make it true to enable it (Default: true) enabled: true # Allowed message variable: %prefix%, %item_type%, %item_name%, %item_count% (Default: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>") # Leave blank for no message blocked-message: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>" # When using /dupe, in which hand will it dupe? (Default: MainHand) # OffHand # MainHand dupe-on: MainHand # Message to the sender if they try to dupe as a non-player (Default: "DupePlus | You can't do that!") console-message: "DupePlus | You can't do that!" # Settings for blacklist blacklist: # Make it false to disable the blacklist, make it true to enable it (Default: false) enabled: false # If the player tries to dupe an item that is in (Default: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>") # Allowed message variable: %prefix%, %item_type%, %item_name%, %item_count% # Leave blank for no message blocked-message: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>" # Add or remove items to block them from being duped, also do not include spaces. (NO: "diamond block" YES: "diamond_block") # Begin the item's id with minecraft: to check the item's type only, it will ignore if the item is part of a custom plugin. (Default: - minecraft:barrier) # Begin the item's id with itemsadder: if you want to check if the item's itemsadder id, it will not check for the namespace. items: - minecraft:barrier # Settings for the cooldown of /dupe cooldown: # Make it false to disable the cooldown, make it true to enable it. (Default: false) enabled: false # How many seconds for the cooldowns to be. (Default: 3) seconds: 3 # If the player tries to dupe while the cooldown is set. (Default: "%prefix% <dark_gray>|</dark_gray> <red>Please wait %duration%.</red>") # Allowed message variable: %prefix%, %duration% # Leave blank for no message wait-message: "%prefix% <dark_gray>|</dark_gray> <red>Please wait %duration%.</red>" # Make it true if you want players with the permission to ignore the cooldown, make it false if you want everyone to have cooldown. (Default: false) # Permission: dupeplus.cooldown permission: true # Settings for this (ignore if you don't want this) players can still run /dupe # /dupe <times> times: # Make it false to disable this feature, make it true to enable this feature (Default: false) enabled: false # Set it to 0 to disable the times (Default: 5) (Recommended: 5) # Permission to let a player/group have no maximum regardless of this option: dupeplus.times.max.unlimited # dupeplus.times.max.<name> max-values: pro: 10 vip: 8 default: 5 # Default permission or players without the permission who are using the dupe times. # If the player puts the value above the maximum then what's the message? (Default: "%prefix% <dark_gray>|</dark_gray> <red>This is higher than maximum! Do something lower than %max%</red>") # Allowed message variable: %prefix%, %max%, %min% # Leave blank for no message max-message: "%prefix% <dark_gray>|</dark_gray> <red>This is higher than maximum! Do something lower than %max%</red>" # 0 for no minimum amount of times the player can run (Default: 0) (Recommended: 0) # Permission to let a player/group have no minimum regardless of this option: dupeplus.times.min.unlimited # It is recommended to just keep this at 0 min: 0 # If the player puts the value below the minimum (Default: "%prefix% <dark_gray>|</dark_gray> <red>This is lower than minimum! Do something higher than %min%</red>") # Allowed message variable: %prefix%, %max%, %min% # Leave blank for no message min-message: "%prefix% <dark_gray>|</dark_gray> <red>This is lower than minimum! Do something higher than %min%</red>" # Instead of sending the dupe message for every time it duplicates, it sends it one time to stop spam. (Default: true) one-time-message: true # Make it false t
    4238 downloads
  6. 1.2.0DupePlus 1.2.0Oct 14, 2024

    DupePlus 1.2.0

    config.yml

    Made a large change to config.yml <details> <summary>config.yml</summary>
    # The command's settings
    # Message Variables
    # %dupe_item% = The Duplicated item
    # %prefix% = The default prefix or the prefix you set
    # %max% = The maximum
    # %min% = The minimum
    
    # Use this website to help you customize your messages
    # https://webui.advntr.dev
    dupe:
      # The prefix for you to use
      prefix: "<green>DupePlus</green>"
    
      # Make it false to let everyone allowed to use this command (Default: false)
      # Permission: dupeplus.dupe
      permission: false
    
      # The message sent to the player when try to execute dupe or reloadconfig no permission (Only if the above is true) (Default: "%prefix% <dark_gray>|</dark_gray> <red>You are not allowed to use this command</red>")
      permission-message: "%prefix% <dark_gray>|</dark_gray> <red>You are not allowed to use this command</red>"
    
      # Leave blank for no message (Default: "%prefix% <dark_gray>|</dark_gray> <gray>Duped %dupe_item%</gray>")
      # Allowed Message Variables: %prefix%, %raw_dupe_item%, %dupe_item%
      message: "%prefix% <dark_gray>|</dark_gray> <gray>Duped %dupe_item%</gray>"
    
      # The message sent whenever the player tries to dupe nothing (Air) (Default: "")
      # Leave blank for no message
      duping-nothing-message: ""
    
      # When using /dupe, in which hand will it dupe? (Default: MainHand)
      # OffHand
      # MainHand
      dupe-on: MainHand
    
      # Message to the sender if they try to dupe as a non-player (Default: "DupePlus | You can't do that!")
      console-message: "DupePlus | You can't do that!"
    
      # Settings for blacklist
      blacklist:
        # Make it false to disable the blacklist, make it true to enable it (Default: false)
        enabled: false
        # If the player tries to dupe an item that is in (Default: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>")
        # Allowed message variable: %prefix%, %dupe_item%
        blocked-message: "%prefix% <dark_gray>|</dark_gray> <red>The item is blocked from being duped!</red>"
        # Add or remove items to block them from being duped, also do not include spaces, for an example (NO: "diamond block" YES: "diamond_block")
        items:
          - barrier
    
      # Settings for the cooldown of /dupe
      cooldown:
        # Make it false to disable the cooldown, make it true to enable it. (Default: false)
        enable: false
        # How many seconds for the cooldowns to be.
        seconds: 3
        # If the player tries to dupe while the cooldown is set. (Default: "%prefix% <dark_gray>|</dark_gray> <red>Please wait %duration%.</red>")
        # Allowed message variable: %prefix%, %duration%
        wait-message: "%prefix% <dark_gray>|</dark_gray> <red>Please wait %duration%.</red>"
    
    
      # Settings for this (ignore if you don't want this) players can still run /dupe
      # /dupe <times>
      times:
        # Make it false to disable this feature, make it true to enable this feature (Default: false)
        enabled: false
    
        # 0 for no maximum amount of times the player can run (Default: 5) (Recommended: 5)
        # Permission to let a player/group have no maximum regardless of this option: dupeplus.times.max.unlimited
        max: 5
    
        # If the player puts the value above the maximum then what's the message? (Default: "%prefix% <dark_gray>|</dark_gray> <red>This is higher than maximum! Do something lower than %max%</red>")
        # Allowed message variable: %prefix%, %max%, %min%
        max-message: "%prefix% <dark_gray>|</dark_gray> <red>This is higher than maximum! Do something lower than %max%</red>"
    
        # 0 for no minimum amount of times the player can run (Default: 0) (Recommended: 0)
        # Permission to let a player/group have no minimum regardless of this option: dupeplus.times.min.unlimited
        min: 0
    
        # If the player puts the value below the minimum (Default: "%prefix% <dark_gray>|</dark_gray> <red>This is lower than minimum! Do something higher than %min%</red>")
        # Allowed message variable: %prefix%, %max%, %min%
        min-message: "%prefix% <dark_gray>|</dark_gray> <red>This is lower than minimum! Do something higher than %min%</red>"
    
        # Make it false to let everyone allowed to use this command (Default: false)
        # Permission: dupeplus.times
        permission: false
    
    # Checks for updates using the set API (Modrinth or SpigotMC),
    updates:
      # Checks on startup for updates, disable if you do not wish to update DupePlus.
      checkupdate: true
    
      # Which Service should the Check Update use? (Default: Modrinth)
      # Modrinth
      # SpigotMC
      api: Modrinth
    
      notify:
        # Notify players with the permission to update the plugin to the latest version.
        player-notify: true
        # The message sent to everyone who has the permission (Default: "%prefix% <dark_gray>|</dark_gray> <white><green>DupePlus</green> is outdated, please update at: <blue>%link%</blue>")
        # (Permission: dupeplus.updates.notify)
        # Allowed message variable: %prefix%, %link%, %currentversion%, %newversion%
        notify-message: "%prefix% <dark_gray>|</dark_gray> <white><green>DupePlus</green> is outdated, please update at: <blue>%link%</blue>"
    
        # Send message to the console for the server owner to update the plugin.
        console-notify: true
    
        # The message sent to the console (Default: "%prefix% | Update DupePlus at %link%")
        # Allowed message variable: %prefix%, %link%, %currentversion%, %newversion%
        console-notify-message: "%prefix% | Update DupePlus at %link%"
    
    # Don't edit this
    # Previous: 1.1
    # config-version: 1.2
    config-version: 1.2
    </details>

    Update Checker

    Using either the Modrinth API or the SpigotMC API, you can be sure that you are in the new version.

    Cooldown

    Add a cooldown to the /dupe, by default it's turned off.

    Additional Updates

    - %dupe_item% is now %raw_dupe_item%, Example: %raw_dupe_item%: TRIDENT however %dupe_item% will be Trident for better clarity.
    1192 downloads
  7. 1.1.4DupePlus 1.1.4Jul 22, 2024
    Added /dupeplus blacklist <item>, Permission for the command is dupe.admin.blacklist
    492 downloads
  8. 1.1.3DupePlus 1.1.3Jul 18, 2024
    Sorry it's been a while since I updated this plugin but I have finally updated the plugin! Blacklisted Items are the only feature in this update, if you want new features then please request them in the Github Repository.
    167 downloads
  9. 1.0.0DupePlus 1.0.0Jun 20, 2023
    DupePlus [1.0] (1.17.x - 1.20.x)
    987 downloads

Similar projects

Plugin →