DisguiseCraft Logo

Tired of backwards EnderDragons? Upward looking chickens? Or some of the other bugs in MobDisguise? Ready to try something brand new? With DisguiseCraft we are taking a brand new approach on mob/player disguises by taking advantage of the advanced features released in the 1.1-R4 build of CraftBukkit!


  • Disguise as any mob
    • This includes: babies, colored sheep, sized slimes/magmacubes, tamed/aggressive wolves with colored collars, tabby/tuxedo/siamese cats, saddled pigs, villager occupations, and charged creepers
      • Also unnatural slime/magmacube sizes: bigger, massive, godzilla
    • You can also set the disguise on fire and hold blocks as an Enderman
  • Disguise as any player, including their skin, cape, and in-chat name
    • The item you are holding and arm swings are shown
  • Disguise as certain objects
    • This includes the vehicles: boat, minecart, poweredminecart, storageminecart
    • And the blocks: endercrystal, fallingblock (different materials)
  • No Spout necessary! Disguised players' names are not shown in SpoutCraft (This is because the disguised player's packets are not sent to other clients)
  • No Backwards EnderDragon! No messed up chicken head!
  • Permissions support (All popular permissions systems)
    • Multi-world permissions are supported
    • Granular player-disguise nodes
  • The player list doesn't show players who are disguised in your world
  • The ability to see through disguises is given with a permission node (disguisecraft.seer)
  • Disguises can fool mobs too! (disguisecraft.notarget & disguisecraft.notarget.strict)
  • Item-pickup can be disabled while wearing a disguise
  • You can disguise or undisguise other players
  • You can keep your disguise even after log out (Activate in the config)
  • Utilizes the Plugin Metrics service
  • All of the commands have tab completion
  • Developer API to allow for plugin integration


Legend: <required> [optional]

  • /d or /dis or /disguise [mobname/materialname] - Disguise as a mob or falling block of a given material (If no mob is given, the available disguises are listed) {also gives current disguise}
  • /d baby [mobname] - Disguise as a baby mob (If no mob is given, the current disguise is used)
  • /d <color> [sheep/wolf] - Disguise as a colored sheep or a wolf with a colored collar
  • /d charged creeper - Disguise as a charged creeper
  • /d <tiny/small/big/bigger/massive/godzilla> [slime/magmacube] - Disguise as a specifically-sized slime or magmacube
  • /d <tamed/aggressive> [wolf] - Disguise as a tamed or aggressive wolf
  • /d <tabby/tuxedo/siamese> [ocelot] - Disguise as a tabby, tuxedo, or siamese cat
  • /d <saddled> [pig] - Disguise as a saddled pig
  • /d <donkey/mule/undead/skeletal> [horse] - Disguise as a horse type
  • /d <librarian/priest/blacksmith/butcher/generic> [villager] - Disguise as a villager with an occupation
  • /d infected [zombie] - Disguise as a villager zombie
  • /d wither skeleton - Disguise as a wither skeleton
  • /d hold <block name/id #> - Hold blocks as an Enderman
  • /d <burning> [mobname] - Disguise as a burning form of any mob
  • /d player <playername> - Disguise as a player
  • /d <nopickup/np> - Disable item pickup
  • /d <blocklock/bl> - Locks your disguise to the center of the block you're in
  • /d <noarmor/bl> - Makes your armor not show on your disguise
  • /d <send/s> <playername/*> - Send your disguise to another player (or everybody)
  • /u or /undis or /undisguise [playername/*] - Undisguise yourself or another player (or everybody)
    These commands can all also be run from the console. You just need to specify the player name right after the /d or /u.

Permission Nodes:

Defaulted group in parenthesis (Note: Defaults are overriden by the '*' permission)

  • disguisecraft.* - Has all DisguiseCraft privileges (Nobody)
  • disguisecraft.other.* - Can use any of the disguise commands affecting others (Op)
    • disguisecraft.other.disguise - Can disguise other players
    • disguisecraft.other.undisguise - Can undisguise other players
  • disguisecraft.seer - Can see nametags through disguises (Nobody)
  • disguisecraft.notarget - Is not targeted by mobs while disguised as one (Everybody)
    • disguisecraft.notarget.strict - Not targeted even after attacking the mob (Op)
  • disguisecraft.player.* - Can disguise as any player (Op)
    • disguisecraft.player.<playername> - Can disguise as the specified player
  • disguisecraft.mob.* - Can disguise as any mob (Op)
    • disguisecraft.mob.<mobname> - Can disguise as the specified mob
    • disguisecraft.mob.<mobname>.baby - Can disguise as baby form
    • disguisecraft.mob.sheep.color.* - Can disguise as a sheep of any color
    • disguisecraft.mob.creeper.charged - Can disguise as a charged creeper
    • disguisecraft.mob.<slime/magmacube>.size.* - Can disguise as any size slime or magmacube
    • disguisecraft.mob.wolf.<tamed/aggressive> - Can disguise as either a tamed or aggressive wolf
    • disguisecraft.mob.wolf.collar.* - Can disguise as a wolf with a colored collar
    • disguisecraft.mob.ocelot.cat.* - Can disguise as any type cat
    • disguisecraft.mob.pig.saddled - Can disguise as a saddled pig
    • disguisecraft.mob.enderman.hold - Can hold blocks as an Enderman
    • disguisecraft.mob.horse.type.* - Can be any horse type
    • disguisecraft.mob.villager.occupation.* - Can disguise as a villager of any occupation
    • disguisecraft.mob.zombie.infected. - Can disguise as an infected zombie (zombie villager)
    • disguisecraft.mob.skeleton.wither - Can disguise as a wither skeleton
  • disguisecraft.object.* - Can disguise as any object
    • disguisecraft.object.vehicle.* - Can disguise as any vehicle
      • disguisecraft.object.vehicle.<vehiclename> - Can disguise as the specified vehicle
    • disguisecraft.object.block.* - Can disguise as any block entity
      • disguisecraft.object.block.<blockname> - Can disguise as a specific block entity (TNTPrimed, EnderCrystal, FallingBlock)
        • disguisecraft.object.block.fallingblock.material - Can disguise as a FallingBlock of any material
  • disguisecraft.burning - Can have burning disguises
  • disguisecraft.nopickup - Can use the "/d nopickup" command
  • disguisecraft.blocklock - Can use the "/d blocklock" command
  • disguisecraft.noarmor - Can use the "/d noarmor" command

How to use:

  1. Put Disguisecraft and http://www.spigotmc.org/resources/protocollib.1997/ in your plugins folder
  2. Restart your server
  3. Disguise! (e.g. /disguise Creeper)
  4. Run around scaring your friendssssssssssssss


Planned or ToDo <== Put suggestion comments over here!
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
Dev Builds (Jenkins) <== Contains the latest DisguiseCraft builds!
JavaDocs and Source Code

Plugins Utilizing the API:

How to negate the disguisecraft.seer node with PermissionsEx

Or, how to make it so that you don't see the nametag of the person inside of the disguise!

  1. Open up your permissions.yml file
  2. Add the permission node "-disguisecraft.seer" to the group that is seeing the double disguises!
  3. Do /pex reload ingame.

Example pex file:

      rank: '1'
    - -disguisecraft.seer
    - '*'

Project Page Notices: (Please Read)
  • Be sure to read our Frequently Asked Questions section.
  • Report errors using the ticket system and be sure that you are using this plugin with the CraftBukkit build that it supports. Any error reported in the comment area may be deleted and ignored. Also make sure to check your tickets often and report in when a build or release has fixed the issue.
  • We will only release for stable CraftBukkit builds. Do not report errors when using our plugin with a build it was not listed to support. Because we need to recompile for each specific build, you will only ever see versions for CraftBukkit Dev builds in our jenkins.

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

  • Avatar of andrewkm andrewkm Nov 24, 2013 at 05:31 UTC - 0 likes

    @chozo4: Go

    Interesting :) Thanks.

  • Avatar of andrewkm andrewkm Nov 24, 2013 at 05:30 UTC - 0 likes

    There is also a crash issue with your latest build (27) for Spigot 1.7 hack. If a player is disguised and attacks another player in a PVP zone; it will crash all clients on that map at the time except the disguised player.

    edit: Wrote this before reading below response.

    Last edited Nov 24, 2013 by andrewkm
  • Avatar of chozo4 chozo4 Nov 24, 2013 at 05:02 UTC - 0 likes

    @andrewkm: Go

    Aye, I get that too when using the 1.6.4 build of DC in the latest 1.7 spigot build. A Disguised player would cause other server players to get crashed/forcefully disconnected when taking any form of damage. A workaround fix was to cancel the EntityDamageEvent (on LOWEST priority) for the player when disguised by cancelling the event. It effectively gives the player full godmode but it avoids the crashes. I have yet to curb the entityinteractevent issue though through protocol lib.

    To note, I don't have a build of DC with this workaround as I'm using buscript for a scripted workaround.

    Last edited Nov 24, 2013 by chozo4
  • Avatar of andrewkm andrewkm Nov 24, 2013 at 00:39 UTC - 0 likes

    Spigot 1.7 Hack http://pastie.org/8504260

    This happens when a player hits a disguised player.

    Last edited Nov 24, 2013 by andrewkm
  • Avatar of GoguCraftLikeABoss GoguCraftLikeABoss Nov 21, 2013 at 13:15 UTC - 0 likes

    Is this compatible with Essentials and GroupManager ? Because when I install it the essentials got crazy (the broadcast doesn't work correctly, the biggest grade doesn't have acces to /spawn :)) )

  • Avatar of xXxBob xXxBob Nov 19, 2013 at 22:17 UTC - 0 likes

    if you use this plugin fro prophunt do you have to give people the diguise object permissions for them to do it or can you just not give it to them so people dont go around as blocks and stuff

  • Avatar of aadnk aadnk Nov 18, 2013 at 00:15 UTC - 0 likes

    @lme999: Go

    It's not any newer than the one on the official build server, if that's what you're asking. I had to move hosting provider, as both the server and any backups of it got lost or corrupted. It might have been possible to change the build date, but I figured it didn't matter.

  • Avatar of lme999 lme999 Nov 17, 2013 at 21:56 UTC - 0 likes

    What is the Dev Builds Backup? It shows one from November 2nd... Is that an actual dev build? or something else?

    I'm looking for plugin developers! Interested? Apply at craftingcrafter.com/devapp.html craftingcrafter.com Minecraft Mini-games and Factions server.

  • Avatar of TeeePeee TeeePeee Nov 17, 2013 at 06:37 UTC - 0 likes

    Decided on DisguiseCraft as an optional dependency for supporting reverse MineZ gameplay for my plugin MyZ. It'd be awesome if you want to list MyZ as a plugin using DisguiseCraft. Very handy and cool tool, thanks!

  • Avatar of TheJamiePatrol TheJamiePatrol Nov 16, 2013 at 21:36 UTC - 0 likes

    When in use causes players client to crash. Also when not in use gives an error message as below.

    com.comphenix.protocol.reflect.FieldAccessException: Field index must be within 0 - count at com.comphenix.protocol.reflect.StructureModifier.read(StructureModifier.java:191) at pgDev.bukkit.DisguiseCraft.listeners.DCPacketListener$1.onPacketReceiving(DCPacketListener.java:38) at com.comphenix.protocol.injector.SortedPacketListenerList.invokeReceivingListener(SortedPacketListenerList.java:115) at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketRecieving(SortedPacketListenerList.java:68) at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:552) at com.comphenix.protocol.injector.PacketFilterManager.invokePacketRecieving(PacketFilterManager.java:518) at com.comphenix.protocol.injector.spigot.SpigotPacketInjector.packetReceived(SpigotPacketInjector.java:480) at com.comphenix.protocol.injector.spigot.SpigotPacketInjector.packetReceived(SpigotPacketInjector.java:423) at com.comphenix.protocol.injector.spigot.SpigotPacketInjector$1.intercept(SpigotPacketInjector.java:200) at org.spigotmc.netty.PacketListener$$EnhancerByCGLIB$$76eee1c7.packetReceived(<generated>) at org.spigotmc.netty.PacketListener.callReceived(PacketListener.java:58) at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:234) at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java:117) at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37) at org.spigotmc.netty.NettyServerConnection.b(NettyServerConnection.java:131) at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:604) at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:240) at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:493) at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:425) at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583) Caused by: java.lang.IndexOutOfBoundsException: Out of bounds ... 20 more

    Hope this is sufficient for you to be able to look into and fix this issue. Thanks for making and up-keeping such a great plugin!


Date created
Feb 28, 2012
Last update
Mar 17, 2015
Development stage
GNU General Public License version 3 (GPLv3)
Curse link
Recent files
  • R: v5.1 for 1.8.3 Mar 17, 2015
  • R: v5.0 for 1.6.4 Sep 29, 2013
  • R: v4.9 for 1.6.2 Jul 17, 2013
  • R: v4.8 for CB 1.5.2-R0.1 Jun 04, 2013
  • R: v4.7 for CB 1.5.2-R0.1 May 06, 2013