What is ReMap?

ReMap is a translation-plugin. It can translate itself, other plugins and even Bukkit into any language. WorldEdit in Norwegian? Swedish command names for WorldGuard? Profanity filters? Anything related to translations and replacements in the chat can be done using this plugin.

ReMap is currently in a beta-state, awaiting bug reports and feature requests.

In short - what can ReMap do?

  • Translate any plugin into any language
  • Add new command aliases to any existing commands
  • Make a single command trigger multiple actions
  • Modify any chat message sent by either players or the server itself
  • Block commands


ReMap depend on ProtocolLib to hook into chat messages sent by the server. It uses the PlayerCommandPreprocessEvent to translate commands. ProtocolLib is a "soft dependency", which means that ReMap will function without it, but swaps and bleeps will become disabled (learn what that means in the tutorial).

Basically, if you run ReMap without ProtocolLib, you can only use command-related features, like changing command names, adding aliases, auto-replies and such. ProtocolLib does not require any kind of setup. Just download it, and ReMap will put it to good use automatically.

How do I get ReMap up and running?

To get started quickly, head over to the quick start guide. To explore the full power of ReMap, read the detailed tutorial.

Does ReMap have any commands or permissions?

Yes, it does.


  • /remap - Display this command list.
  • /remap block - Toggle command blocking. When enabled, only remapped commands will work.
  • /remap message - Change the message sent to players who are using a blocked command. Can be empty.
  • /remap reload - Reloads configuration and translation files.
  • /remap status - Display some stats.

Note: For safety reasons, "/remap block" can still be used when command blocking is enabled. However, it will act as if it's blocked if the client does not have permission to turn it off.


ReMap accept commands from players with the "remap" permission node as well as server operators (OP).

How does ReMap handle permissions for remapped commands?

ReMap executes remapped commands as if they were executed by the player. If the player doesn't have permission, the usual permission-message for that command is displayed, if any.

Source code?

Visit GitHub.

Recent changes

This list only contains important stuff. For a more technical and complete list of changes for each version, please read the log attached to each file in the download section.

  • ProtocolLib is now a "soft dependency". ReMap can function without it. Sort of.
  • Words and phrases can now be removed, not just replaced.

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of JPDayz JPDayz Jul 26, 2014 at 10:27 UTC - 1 like

    Yeah, he's back! Hope he updates it.


  • Avatar of JPDayz JPDayz Jul 24, 2014 at 08:12 UTC - 0 likes

    The last time he came to bukkit was in May so yeah this might be dead.

  • Avatar of Melonking Melonking Jul 21, 2014 at 00:44 UTC - 0 likes

    @Monezombie: Go

    I posted that ticket almost 3 months ago, still no fix, while it still works, this plugin may be dead.

  • Avatar of Monezombie Monezombie Jul 07, 2014 at 04:10 UTC - 0 likes

    @tingeel: Go

    Same problem even with the last version :/ , I just saw someone with the same problem in the ticket section, so I'll just wait for the new version to come out hoping this will be fixed

  • Avatar of Monezombie Monezombie Jun 12, 2014 at 22:28 UTC - 0 likes

    the plugin is working fine but each time a player login to my server there is an error

    [18:24:35] [Server thread/ERROR]: [ReMap] Unhandled exception occured in onPacketSending(PacketEvent) for ReMap java.lang.ClassCastException: java.lang.String cannot be cast to org.json.simple.JSONObject at com.kiwhen.remap.ChatListener$1.onPacketSending( [ReMap.jar:?] at com.comphenix.protocol.injector.SortedPacketListenerList.invokeSendingListener( [ProtocolLib.jar:?] at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending( [ProtocolLib.jar:?] at com.comphenix.protocol.injector.PacketFilterManager.handlePacket( [ProtocolLib.jar:?] at com.comphenix.protocol.injector.PacketFilterManager.invokePacketSending( [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.NettyProtocolInjector.packetQueued( [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.NettyProtocolInjector.onPacketSending( [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector.processSending( [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector.access$300( [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector$3.handleScheduled( [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.ChannelInjector$3.onMessageScheduled( [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.ChannelProxy$2.schedulingRunnable( [ProtocolLib.jar:?] at com.comphenix.protocol.injector.netty.EventLoopProxy.execute( [ProtocolLib.jar:?] at net.minecraft.server.v1_7_R3.NetworkManager.b( [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.NetworkManager.handle( [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.PlayerConnection.sendPacket( [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer.sendRawMessage( [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at org.bukkit.craftbukkit.v1_7_R3.entity.CraftPlayer.sendMessage( [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at com.earth2me.essentials.textreader.TextPager.showPage( [Essentials.jar:?] at com.earth2me.essentials.EssentialsPlayerListener$ [Essentials.jar:?] at [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftScheduler.mainThreadHeartbeat( [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.MinecraftServer.v( [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.DedicatedServer.v( [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at net.minecraft.server.v1_7_R3.MinecraftServer.u( [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] at [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-b3084jnks] [18:24:35] [Server thread/WARN]: [ProtocolLib] Warning: Cannot convert to a String with Apache: null [18:24:35] [Server thread/ERROR]: Parameters: { a = (("TextComponent{text='', siblings=[], style=Style{hasParent=false, color=null, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null}}")), b = true, timestamp = 1402611875850 }

  • Avatar of Melonking Melonking May 16, 2014 at 16:17 UTC - 0 likes

    I have this set in config: bleep: '[BlockRegeneration]': '&7[&cMelo&8Co&7]'

    And for some reason it is replacing almost every letter of anything any plugin or person says with '&7[&cMelo&8Co&7]'

    0.4.2 on ProtocolLib 3.3.1 and 3.4.0 With Spigot-1475 (MC: 1.7.9)

    EDIT: Adding quotes in a different program fixes it, but stops all bleeps from working completely, removing the quotes causes the bug again.

    Last edited May 16, 2014 by Melonking
  • Avatar of kiwhen kiwhen May 09, 2014 at 14:10 UTC - 0 likes

    @Rothendras: Go

    The upcoming version will support these features. I'm rewriting the whole "translation language" to allow for hooking specific events to specific actions, also taking permissions into account. Interestingly, this will allow for multi-language support, using permission nodes to define a user's language.

    It's a bit of a jump from the current version, which is why it has taken a while to get it up and running. Working on it, though!

    Thank you for your interest in ReMap!

  • Avatar of Rothendras Rothendras May 08, 2014 at 22:28 UTC - 0 likes

    A really good & essential plugin! I would follow the evolution!

    But, I have one question :p - Can we block certain commands, and not all those not remap ? Or, just let activate all commands for OPs or Admins perm group ?

  • Avatar of kiwhen kiwhen May 05, 2014 at 19:57 UTC - 0 likes

    @technowix: Go

    Oh no, not dead at all! Just a bit late. There's some serious updating at work.

  • Avatar of technowix technowix May 02, 2014 at 10:57 UTC - 0 likes

    This amazing plugin is dead ? :/


Date created
May 19, 2013
Last update
Jan 18, 2014
Development stage
  • enUS
GNU General Public License version 3 (GPLv3)
Curse link
Recent files



Optional dependency