You have to know Skript if you want to use that, if you have any question add me on discord Phe0X#5907 (Sorry for bad english and ugly site, I did that quickly)

All the functions and what they do (and what they return)

Disguise players for everyone or for a list of players : Disguise(p: players, mob: string, ForAll: boolean, ToPlayers: players) :: int:
Usage : Disguise( player(s) you want to disguise, "mob", True if for all players/false otherwise, player(s) that will see the disguise |MUST BE FILLED EVEN IF YOU PUT TRUE BEFORE|)
Return 0 if there was a problem (see console) or 1 if everything was done correctly

Disguise a player (as a Zombie) when he use the command /zombie
command /zombie:
   trigger:
      Disguise(player, "Zombie", true, player)
      #1st player is the player to disguise
      #"Zombie" is the mob
      #True means that every player will see him as a zombie
      #2nd player is not usefull since he is desguised for everyoen

Disguise a player as a Sheep for the player in the command /sheep <player>
command /sheep <player>:
   trigger:
      Disguise(player, "Sheep", false, arg-1)
      #1st player is the one to disguise
      #"Sheep" is the mob
      #false means that everyone won't see the disguise
      #arg-1 is the only player that will see the disguise

• Remove a disguise (if possible use UndisguiseOffline ou UndisguiseOnline, it causes less lags) : Undisguise(p: offline players):
Usage : Undisguise( player(s) you want to undisguise)
#Don't check if the player is disguised or not

Remove a disguise with the command /removedisguise <offline player>
command /removedisguise <offline player>:
   trigger:
      Undisguise(arg-1)
      send "Undisguised !"

• Remove the disguise of an online player : UndisguiseOnline(p: players):
Usage : UndisguiseOnline( online player(s) you want to undisguise)
#Don't check if the player is disguised or not

Remove the disguise of all online players with the command /undisguiseall
command /undisguiseall:
   trigger:
      UndisguiseOnline(all players) #The players are online so we use UndisguiseOnline

• Remove the disguise of an offline player : UndisguiseOffline(p: offline players):
Usage : UndisguiseOffline( offline player(s) )
#Don't check if the player is disguised or not

Remove the disguise of a player when he disconnects
on quit:
   wait 1 tick #be sure he is considered as disconnected
   UndisguiseOffline(player)

• Know if a player is disguise or not (if possible use IsDisguiseOnline or IsDisguiseOffline, less lag) : IsDisguise(p: offline players) :: boolean
Usage : IsDisguise( offline/online player(s) you want to check ):
Return true if all players in the function are disguised , false if AT LEAST one of the player is not disguise

Know if an offline player is disguised
command /DisguiseCheck <offline player>:
   trigger:
      if IsDisguise(arg-1) is true:
         send "Disguised"
         stop
      send "Not disguised"

• Know if an online player is disguised or not : IsDisguiseOnline(p: players) :: boolean
Usage : IsDisguiseOnline( player(s) you want to check):
Return true if all players in the function are disguised , false if AT LEAST one of the player is not disguise

Know if an online player is disguised or not
command /DisguiseOnline <player>:
   trigger:
      if IsDisguiseOnline(arg-1) is true:
         send "Disguised"
         stop
      send "Not disguised"

• Know if an offline player is disguised or not (left while disguised) : IsDisguiseOffline(p: offline players) :: boolean
Usage : IsDisguiseOffline( player(s) you want to check ):
Return true if all players in the function are disguised , false if AT LEAST one of the player is not disguise

Savoir si un joueur online est déguisé:
command /DisguiseOffline <player>:
   trigger:
      if IsDisguiseOffline(arg-1) is true:
         send "Disguise"
         stop
      send "Not disguised"

In the code but can still be useful

• MobToId(mob: text) :: int:
Usage : MobToId( "Mob you want the id") #ex MobToID("Sheep")
Return the id Type of mob of the mob you want in 1.14 if everything went right (+1 if you want the 1.15 one and check the code for 1.13), return -5 if the mob is not compatible with your version, return -1 if the mob doesn't exist, return -6 if the mob was removed from the game (eg Pigmen)

• MobToId12(mob: text) :: int:
Same but for 1.12 and below

• MobToId16(mob: text) :: int:
Same but for 1.16

• SkinReload(p: player)
Usage : SkinReload(player whose skin will be refresh)#refresh a skin in 1.15
Return nothing

• UpdateHand16(p: player)
Usage : UpdateHand16(the player whose hand will be refreshed to show the right item)#refresh the item in a hand in 1.16
Return nothing