** This question is solved. It is mainly because newer version of Minecraft has changed how spawning armor stands works. ** If you are here through a forum or Google search: 1. The question contains code that works for old Minecraft versions below 1.11. 2. The answer contains code that works for Minecraft versions 1.12 or above. Please see the first reply. 3. ArmorStand is a treated LivingEntity at server level. However it is treated as Entity at protocol level. Resulting in packet type as SPAWN_ENTITY instead of SPAWN_ENTITY_LIVING. --------------------------------------------------- I am currently looking for a way to spawn an armorstand that relies on ProtocolLib instead of NMS. Currently my code is: Code (Text): ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager(); PacketContainer packet = protocolManager.createPacket(PacketType.Play.Server.SPAWN_ENTITY_LIVING); // Entity ID packet.getIntegers().write(0, somerandomentityid); // Entity Type packet.getIntegers().write(1, 78); // Set location packet.getIntegers().write(2, (int)(location.getX() * 32D)); packet.getIntegers().write(3, (int)(location.getY() * 32D)); packet.getIntegers().write(4, (int)(location.getZ() * 32D)); // Set watcher - ↓ removing that line does not do anything. packet.getDataWatcherModifier().write(0, WrappedDataWatcher()); protocolManager.sendServerPacket(player, packet); For the DataWatcher, I also tried using a cloned data by using this but doesn't help. Code (Text): World world = Bukkit.getWorld("world"); Entity entity = world.spawnEntity(new Location(world, 0, 256, 0), EntityType.ARMOR_STAND); armorstandwatcher = WrappedDataWatcher.getEntityWatcher(entity).deepClone(); entity.remove(); Result is nothing happens. I have looked through the internet and sadly cannot find anything useful. Thoughts?