The Recode

This page contains details and information regarding the DisguiseCraft recode which is currently in progress.

Purpose of the Recode

DisguiseCraft was originally made as a proof-of-concept. It was designed in a way such that future additions of mob metadata (disguise subtypes) would be easy to add. It was released to the public after a difference in developmental approach caused desmin88 to no longer accept Devil Boy's code contributions to MobDisguise. Tux2 and Devil Boy designed DisguiseCraft's core system almost a year and a half ago. Very few major changes to the design have been made since then while Minecraft and CraftBukkit have evolved greatly. We have deemed DisguiseCraft's current system to no longer be an efficient method of disguise handling. We strive to create a new core system that is familiar with our users, but much more economic with server resources.

Our Aims

There will be a massive change in how we use system resources, mainly RAM and CPU. With data collected from various server administrators, we've decided to push for the usage of more RAM so that we can reduce our load on the CPU. However, we want the final balance to be the decision of the server admin through several configurable options. We also plan to implement/allow for features that could not be effectively added on to our older system:

  • The disguising of any entity
    • The new system will be able to track and update disguises for any moving entity in the game
  • A fully implemented "dropped disguise" system
    • As some of you may have found out, DisguiseCraft has contained an unfinished "/d drop" feature. This will be completed in the recode to allow for the stacking of disguises (spider jockeys) and the creation of fake-players and fake-mobs
  • Compatibility over multiple server mods and versions
    • We plan to abstract our code in a way that makes the plugin less dependent on specific CraftBukkit versions
    • If you have ProtocolLib installed, DisguiseCraft will utilize it and be compatible with any server mod or version ProtocolLib is compatible with
    • If you do not have ProtocolLib installed, no features will be lost, but DisguiseCraft will break on CraftBukkit updates
  • Multi-lingual support
    • This is a feature that has often been asked for, but not something that can be easily added to a large program
    • We plan to implement dynamic output from the start, so that it will be available for the duration of the plugin's existence
    • Yes, we will need translators to help us create a language pack for distribution
  • A more extensive API
    • Though our old API has been sufficient for simple hooks, we found that for plugins that wish to do more creative things with our disguises, our API could not provide enough
    • To prevent the need to hook deep into DIsguiseCraft's code, we plan to design an API with hooks into more of the plugin's internal systems
  • Custom mob support
    • We're abstracting our disguise data structures to be independent of the mobs found in Vanilla Minecraft and CraftBukkit
    • We plan to allow for custom mobs from mods such as Mo' Creatures
  • New licensing
    • The newly developed program will be released under the BSD license.
    • This is so that programs that hook into our API will not be forced under any specific license.


Posts Quoted:
Clear All Quotes