Jump to content

[SOLVED ..sorta] [1.7.10] mob boss renders two images


Glistre

Recommended Posts

my mob boss extends the renderbiped class.  everything works fine except it has an image INSIDE the model.  the image causes "z-fighting" and when the mob rotates, for example, you can see it inside my custom model ...it is the strangest effect .  . ..I have searched the web and have not found any reason for it ....

 

render class:

 

package com.glistre.glistremod.queen;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.model.ModelSkeleton;
import net.minecraft.client.renderer.entity.RenderBiped;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.util.ResourceLocation;

import org.lwjgl.opengl.GL11;

import com.glistre.glistremod.entities.guardian.TobieModelQueen;

@SideOnly(Side.CLIENT)
public class TobieQueenRender extends RenderBiped
{
    private static final ResourceLocation tobieQueenTextures = new ResourceLocation("glistremod:textures/entities/TobieQueenElizabeth.png");
//    private static final ResourceLocation witherSkeletonTextures = new ResourceLocation("glistremod:textures/entities/TobieQueenElizabeth.png");
//    private static final String __OBFID = "CL_00001023";

    public TobieQueenRender(TobieModelQueen tobieModelQueen, float f)
    {
        super(new TobieModelQueen(), 0.5F);
    }


/**
     * Allows the render to do any OpenGL state modifications necessary before the model is rendered. Args:
     * entityLiving, partialTickTime
     */
   protected void preRenderCallback(EntityTobieQueen tobieQueen, float partTicks)
    {
   //skeleton type == 1 wither; 1.2F, 1.2F, 1.2F == normal size , increase size without remodeling in Techne to 8.0F, 8.0F, 8.0F
       if (tobieQueen.getSkeletonType() == 0)
       {
            GL11.glScalef(6.0F, 6.0F, 6.0F);
      }
    }

   protected void func_82422_c()
    {
        GL11.glTranslatef(0.09375F, 0.1875F, 0.0F);
    }

    /**
     * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
     */
    protected ResourceLocation getEntityTexture(EntityTobieQueen tobieQueen)
    {
        return tobieQueenTextures;

    }

    /**
     * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
     */


    /**
     * Allows the render to do any OpenGL state modifications necessary before the model is rendered. Args:
     * entityLiving, partialTickTime
     */
   protected void preRenderCallback(EntityLivingBase tobieQueen, float partTicks)
    {
        this.preRenderCallback((EntityTobieQueen)tobieQueen, partTicks);
    }

    /**
     * Returns the location of an entity's texture. Doesn't seem to be called unless you call Render.bindEntityTexture.
     */
    protected ResourceLocation getEntityTexture(Entity tobieQueen)
    {
        return this.getEntityTexture((EntityTobieQueen)tobieQueen);
    }
}

 

model

package com.glistre.glistremod.queen;

import java.util.Random;

import org.lwjgl.opengl.GL11;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.model.ModelRenderer;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.util.MathHelper;

@SideOnly(Side.CLIENT)
public class TobieModelQueen extends ModelBiped
{
    
    public static Random rand;
    
  //fields
    ModelRenderer head;
    ModelRenderer body;
    ModelRenderer rightarm;
    ModelRenderer leftarm;
    ModelRenderer body2;
    ModelRenderer visor;

  
  public TobieModelQueen()
  {
    textureWidth = 64;
    textureHeight = 49;
    
      float f6 = 2.0F;
      head = new ModelRenderer(this, 12, 0);
      head.addBox(-5F, -10F, -5F, 10, 10, 10);
      head.setRotationPoint(0F, -2F, 0F);
      head.setTextureSize(64, 49);
      head.mirror = false;
      setRotation(head, 0F, 0F, 0F);
      body = new ModelRenderer(this, 17, 21);
      body.addBox(-5F, 0F, -3F, 10, 8, 5);
      body.setRotationPoint(0F, -1F, 0F);
      body.setTextureSize(64, 49);
      body.mirror = false;
      setRotation(body, 0F, 0F, 0F);
      rightarm = new ModelRenderer(this, 48, 22);
      rightarm.addBox(-5F, -2F, -2F, 4, 12, 4);
      rightarm.setRotationPoint(-5F, 1F, 0F);
      rightarm.setTextureSize(64, 49);
      rightarm.mirror = false;
      setRotation(rightarm, 0F, 0F, 0F);
      leftarm = new ModelRenderer(this, 0, 22);
      leftarm.addBox(1F, -2F, -2F, 4, 12, 4);
      leftarm.setRotationPoint(5F, 1F, 0F);
      leftarm.setTextureSize(64, 49);
      leftarm.mirror = false;
      setRotation(leftarm, 0F, 0F, 0F);
      body2 = new ModelRenderer(this, 19, 35);
      body2.addBox(-4F, 4F, -2F, 8, 11, 3);
      body2.setRotationPoint(0F, -1F, 0F);
      body2.setTextureSize(64, 49);
      body2.mirror = false;
      setRotation(body2, 0F, 0F, 0F);
      visor = new ModelRenderer(this, 42, 6);
      visor.addBox(-5F, -8F, -6F, 10, 3, 1);
      visor.setRotationPoint(0F, -2F, 0F);
      visor.setTextureSize(64, 49);
      visor.mirror = false;
      setRotation(visor, 0F, 0F, 0F);

  }

  @Override 
  public void render(Entity entity, float limbSwing, float limbSwingAmount, float rotFloat, float rotYaw, float rotPitch, float partTicks)
  {
    super.render(entity, limbSwing, limbSwingAmount, rotFloat, rotYaw, rotPitch, partTicks);
    setRotationAngles(limbSwing, limbSwingAmount, rotFloat, rotYaw, rotPitch, partTicks, entity);
    head.render(partTicks);
    body.render(partTicks);   
    rightarm.render(partTicks); 
    leftarm.render(partTicks);
    body2.render(partTicks);
    visor.render(partTicks);
    

  }
  
  private void setRotation(ModelRenderer model, float x, float y, float z)
  {
    model.rotateAngleX = x;
    model.rotateAngleY = y;
    model.rotateAngleZ = z;
  }
  /**
   * Sets the model's various rotation angles. For bipeds, par1 and par2 are used for animating the movement of arms
   * and legs, where par1 represents the time(so that arms and legs swing back and forth) and par2 represents how
   * "far" arms and legs can swing at most.
   */
  public void setRotationAngles(float limbSwing, float limbSwingAmount, float rotFloat, float rotYaw, float rotPitch, float partTicks, Entity entity)
  {
      /**
       * Arm Oscillations
       */
      super.setRotationAngles(limbSwing, limbSwingAmount, rotFloat, rotYaw, rotPitch, partTicks, entity);
      float f6 = MathHelper.sin(this.onGround * (float)Math.PI);
      float f7 = MathHelper.sin((1.0F - (1.0F - this.onGround) * (1.0F - this.onGround)) * (float)Math.PI);
      this.rightarm.rotateAngleZ = 0.0F;
      this.leftarm.rotateAngleZ = 0.0F;
      this.rightarm.rotateAngleY = -(0.1F - f6 * 0.6F);
      this.leftarm.rotateAngleY = 0.1F - f6 * 0.6F;
      this.rightarm.rotateAngleX = 0.0F;
      this.leftarm.rotateAngleX = 0.0F;
      this.rightarm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
      this.leftarm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F;
      this.rightarm.rotateAngleZ += MathHelper.cos(rotFloat * 0.09F) * 0.05F + 0.05F;
      this.leftarm.rotateAngleZ -= MathHelper.cos(rotFloat * 0.09F) * 0.05F + 0.05F;
      this.rightarm.rotateAngleX += MathHelper.sin(rotFloat * 0.067F) * 0.05F;
      this.leftarm.rotateAngleX -= MathHelper.sin(rotFloat * 0.067F) * 0.05F;

      /**
       * FullBody Floating
       */
      float oscillate = MathHelper.cos(rotFloat * 0.09F) * 0.005F;
      
      this.head.rotationPointY += oscillate;
      this.body.rotationPointY += oscillate;
      this.body2.rotationPointY += oscillate;
      this.rightarm.rotationPointY += oscillate;
      this.leftarm.rotationPointY += oscillate;
      this.visor.rotationPointY += oscillate;
      
  }
}


 

entity mob boss:

package com.glistre.glistremod.queen;

import java.util.Calendar;

import com.glistre.glistremod.GlistreMod;
import com.glistre.glistremod.entities.GlistreEntityRegistry;
import com.glistre.glistremod.items.ItemRegistry;
import com.glistre.glistremod.projectiles.blaster.EntityBlasterBolt;

import net.minecraft.block.Block;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.EnumCreatureAttribute;
import net.minecraft.entity.IEntityLivingData;
import net.minecraft.entity.IRangedAttackMob;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.EntityAIArrowAttack;
import net.minecraft.entity.ai.EntityAIAttackOnCollide;
import net.minecraft.entity.ai.EntityAIFleeSun;
import net.minecraft.entity.ai.EntityAIHurtByTarget;
import net.minecraft.entity.ai.EntityAILookIdle;
import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
import net.minecraft.entity.ai.EntityAIRestrictSun;
import net.minecraft.entity.ai.EntityAISwimming;
import net.minecraft.entity.ai.EntityAITargetNonTamed;
import net.minecraft.entity.ai.EntityAIWander;
import net.minecraft.entity.ai.EntityAIWatchClosest;
import net.minecraft.entity.monster.EntityCaveSpider;
import net.minecraft.entity.monster.EntityEnderman;
import net.minecraft.entity.monster.EntityIronGolem;
//import net.minecraft.entity.monster.EntityCreeper;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.monster.EntitySpider;
import net.minecraft.entity.monster.EntityWitch;
import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.entity.projectile.EntityLargeFireball;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.stats.AchievementList;
import net.minecraft.util.DamageSource;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.WorldProviderHell;

public class EntityTobieQueen extends EntityMob implements IRangedAttackMob
{
    private EntityAIArrowAttack aiArrowAttack = new EntityAIArrowAttack(this, 1.0D, 20, 60, 15.0F);
    private EntityAIAttackOnCollide aiAttackOnCollide = new EntityAIAttackOnCollide(this, EntityZombie.class, 1.2D, false);
//    private static final String __OBFID = "CL_00001697";

    public EntityTobieQueen(World p_i1741_1_)
    {
        super(p_i1741_1_);
        //add attack AI for TobieQueen to player next line
        this.targetTasks.addTask(0, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true));
        this.tasks.addTask(0, new EntityAISwimming(this));
        this.tasks.addTask(1,  new EntityAIAttackOnCollide(this, EntityZombie.class, 1.0D, true));
        this.tasks.addTask(3, new EntityAIRestrictSun(this));
//        this.tasks.addTask(3, new EntityAIFleeSun(this, 1.0D));
        this.tasks.addTask(4, new EntityAIWander(this, 1.0D));
        this.tasks.addTask(0, new EntityAIWatchClosest(this, EntityZombie.class, 8.0F));

        this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityWitch.class, 3, true));
        
        this.tasks.addTask(4, new EntityAILookIdle(this));
        this.targetTasks.addTask(0, new EntityAIHurtByTarget(this, true));
        this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityZombie.class, 2, true));
//        this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntitySkeleton.class, 2, true));
        this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntitySpider.class, 3, true));
        this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityIronGolem.class, 3, true));
        this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityCaveSpider.class, 4, true));
        this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityEnderman.class, 4, true));
      

        if (p_i1741_1_ != null && !p_i1741_1_.isRemote)
        {
            this.setCombatTask();
        }
    }
    

    protected void applyEntityAttributes()
    {
        super.applyEntityAttributes();
//       this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D);
        this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(150.0D);
        this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.34000000417232513D);
        this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(12.0D);
//     raise health from 15.0D to 115.0D
        this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(115.0D);
        this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(10.0D);
    }

    protected void entityInit()
    {
        super.entityInit();
        this.dataWatcher.addObject(13, new Byte((byte)0));
    }

    /**
     * Returns true if the newer Entity AI code should be run
     */
    public boolean isAIEnabled()
    {
        return true;
    }

    /**
     * Returns the sound this mob makes while it's alive.
     */
    protected String getLivingSound()
    {
        return "mob.skeleton.say";
    }

    /**
     * Returns the sound this mob makes when it is hurt.
     */
    protected String getHurtSound()
    {
        return "mob.skeleton.hurt";
    }

    /**
     * Returns the sound this mob makes on death.
     */
    protected String getDeathSound()
    {
        return "mob.skeleton.death";
    }

    protected void func_145780_a(int p_145780_1_, int p_145780_2_, int p_145780_3_, Block p_145780_4_)
    {
        this.playSound("mob.skeleton.step", 0.15F, 1.0F);
    }

    public boolean attackEntityAsMob(Entity p_70652_1_)
    {
        if (super.attackEntityAsMob(p_70652_1_))
        {
            if (this.getSkeletonType() == 1 && p_70652_1_ instanceof EntityLivingBase)
            {
                ((EntityLivingBase)p_70652_1_).addPotionEffect(new PotionEffect(Potion.wither.id, 200));
            }

            return true;
        }
        else
        {
            return false;
        }
    }

    /**
     * Get this Entity's EnumCreatureAttribute
     */
    public EnumCreatureAttribute getCreatureAttribute()
    {
        return EnumCreatureAttribute.UNDEAD;
    }

    /**
     * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons
     * use this to react to sunlight and start to burn.
     */
/*   public void onLivingUpdate()
    {
        if (this.worldObj.isDaytime() && !this.worldObj.isRemote)
        {
            float f = this.getBrightness(1.0F);

            if (f > 0.5F && this.rand.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.worldObj.canBlockSeeTheSky(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ)))
            {
                boolean flag = true;
                ItemStack itemstack = this.getEquipmentInSlot(4);

                if (itemstack != null)
                {
                    if (itemstack.isItemStackDamageable())
                    {
                        itemstack.setItemDamage(itemstack.getItemDamageForDisplay() + this.rand.nextInt(2));

                        if (itemstack.getItemDamageForDisplay() >= itemstack.getMaxDamage())
                        {
                            this.renderBrokenItemStack(itemstack);
                            this.setCurrentItemOrArmor(4, (ItemStack)null);
                        }
                    }

                    flag = false;
                }

                if (flag)
                {
                    this.setFire(;
                }
            }
        }

        if (this.worldObj.isRemote && this.getSkeletonType() == 1)
        {
            this.setSize(0.72F, 2.34F);
        }

        super.onLivingUpdate();
    }*/

    /**
     * Handles updating while being ridden by an entity
     */
    public void updateRidden()
    {
        super.updateRidden();

        if (this.ridingEntity instanceof EntityCreature)
        {
            EntityCreature entitycreature = (EntityCreature)this.ridingEntity;
            this.renderYawOffset = entitycreature.renderYawOffset;
        }
    }

    /**
     * Called when the mob's health reaches 0.
     */
    public void onDeath(DamageSource p_70645_1_)
    {
        super.onDeath(p_70645_1_);

        if (p_70645_1_.getSourceOfDamage() instanceof EntityBlasterBolt && p_70645_1_.getEntity() instanceof EntityPlayer)
        {
            EntityPlayer entityplayer = (EntityPlayer)p_70645_1_.getEntity();
            double d0 = entityplayer.posX - this.posX;
            double d1 = entityplayer.posZ - this.posZ;

            if (d0 * d0 + d1 * d1 >= 2500.0D)
            {
                entityplayer.triggerAchievement(AchievementList.snipeSkeleton);
            }
        }
    }

    protected Item getDropItem()
    {
        return ItemRegistry.enderGun;
    }

    /**
     * Drop 0-2 items of this living's type. @param par1 - Whether this entity has recently been hit by a player. @param
     * par2 - Level of Looting used to kill this mob.
     */
    protected void dropFewItems(boolean p_70628_1_, int p_70628_2_)
    {
        int j;
        int k;

        if (this.getSkeletonType() == 1)
        {
            j = this.rand.nextInt(3 + p_70628_2_) - 1;

            for (k = 0; k < j; ++k)
            {
                this.dropItem(ItemRegistry.sceptre_1, 1);
            }
        }
        else
        {
        j = this.rand.nextInt(3 + p_70628_2_);

        for (k = 0; k < j; ++k)
        	{
            this.dropItem(GlistreMod.enderbolt_1, 1);
        	}
        }

        j = this.rand.nextInt(3 + p_70628_2_);

        for (k = 0; k < j; ++k)
        	{
            this.dropItem(ItemRegistry.Glistre_Dust, 1);
        	}
        
        j = this.rand.nextInt(3 + p_70628_2_);

        for (k = 0; k < j; ++k)
        	{
            this.dropItem(ItemRegistry.Glistre_Ingot, 1);
        	}    
    }


    protected void dropRareDrop(int p_70600_1_)
    { 
        if (this.getSkeletonType() == 1)
        	
        // what does float do here?       	       	
           {
        	this.entityDropItem(new ItemStack(ItemRegistry.blasterGun_1, 1, 1), 0.0F);
           }
        //make non-wither TobySkeleton guardian drop rare drop
        else 
        {
            this.entityDropItem(new ItemStack(GlistreEntityRegistry.TobieWorstProjectile_1, 1, 1), 0.0F);
        } 
    }

    
    /**
     * Makes entity wear random armor based on difficulty
     */
   protected void addRandomArmor()
    {
//       super.addRandomArmor();
       this.setCurrentItemOrArmor(0, new ItemStack(ItemRegistry.tobieGun_1));
        // sets the ability for the RayGun to drop which is different than enderGun don't want RayGun for player
        this.equipmentDropChances[0] = 0.0F;
    }

    public IEntityLivingData onSpawnWithEgg(IEntityLivingData p_110161_1_)
    {
        p_110161_1_ = super.onSpawnWithEgg(p_110161_1_);

        if (this.worldObj.provider instanceof WorldProviderHell && this.getRNG().nextInt(5) > 0)
        {
            this.tasks.addTask(2, this.aiAttackOnCollide);
            this.setSkeletonType(1);
            this.setCurrentItemOrArmor(0, new ItemStack(ItemRegistry.sceptre_1));
            this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(4.0D);
// sets the ability for the RayGun to drop which is different than blaster dont want RayGun for player
            this.equipmentDropChances[0] = 0.0F;
        }
        else
        {
            this.tasks.addTask(0, this.aiArrowAttack);
            this.addRandomArmor();
            this.setCurrentItemOrArmor(0, new ItemStack(ItemRegistry.tobieGun_1));
            this.enchantEquipment();
        }

        this.setCanPickUpLoot(this.rand.nextFloat() < 0.55F * this.worldObj.func_147462_b(this.posX, this.posY, this.posZ));

        if (this.getEquipmentInSlot(4) == null)
        {
            Calendar calendar = this.worldObj.getCurrentDate();

            if (calendar.get(2) + 1 == 10 && calendar.get(5) == 31 && this.rand.nextFloat() < 0.25F)
            {
                this.setCurrentItemOrArmor(4, new ItemStack(this.rand.nextFloat() < 0.1F ? Blocks.lit_pumpkin : Blocks.pumpkin));
                this.equipmentDropChances[4] = 0.0F;
            }
        }

        return p_110161_1_;
    }

    /**
     * sets this entity's combat AI.
     */
    public void setCombatTask()
    {
        this.tasks.removeTask(this.aiAttackOnCollide);
        this.tasks.removeTask(this.aiArrowAttack);
        ItemStack itemstack = this.getHeldItem();

        if (itemstack != null && itemstack.getItem() == ItemRegistry.tobieGun_1)
        {
            this.tasks.addTask(0, this.aiArrowAttack);
        }
        else
        {
            this.tasks.addTask(1, this.aiAttackOnCollide);
        }
    }

    /**
     * Attack the specified entity using a ranged attack.
     */
    public void attackEntityWithRangedAttack(EntityLivingBase entity, float distance)
    {
        EntityBlasterBolt entityblasterbolt = new EntityBlasterBolt(this.worldObj, this, entity, 1.6F, (float)(14 - this.worldObj.difficultySetting.getDifficultyId() * 4));
        int i = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, this.getHeldItem());
        int j = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, this.getHeldItem());
        entityblasterbolt.setDamage((double)(distance * 2.0F) + this.rand.nextGaussian() * 0.25D + (double)((float)this.worldObj.difficultySetting.getDifficultyId() * 0.11F));

        if (i > 0)
        {
            entityblasterbolt.setDamage(entityblasterbolt.getDamage() + (double)i * 0.5D + 0.5D);
        }

        if (j > 0)
        {
            entityblasterbolt.setKnockbackStrength(j);
        }

        if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, this.getHeldItem()) > 0 || this.getSkeletonType() == 1)
        {
            entityblasterbolt.setFire(100);
        }

        this.playSound("glistremod:laserblaster", 1.2F, 1.0F / (this.getRNG().nextFloat() * 0.4F + 0.8F));
        this.worldObj.spawnEntityInWorld(entityblasterbolt);
        
        //next part shoots fireballs from Tobie Queen
        //calculates the x,y,z DISTANCE between the projectile and the target. getLook() only gives the DIRECTION.

            double d0 = entity.posX - this.posX;
            double d1 = entity.boundingBox.minY + (double)(entity.height / 2.0F) - (this.posY + (double)(this.height / 2.0F));
            double d2 = entity.posZ - this.posZ;
            //calculating the accuracy (randomness) of the projectile. (The square root of the total distance divided by half. So, larger distances are more accurately fired.)

            float f1 = MathHelper.sqrt_float(distance) * 0.5F;
            this.worldObj.playAuxSFXAtEntity((EntityPlayer)null, 1009, (int)this.posX, (int)this.posY, (int)this.posZ, 0);

            for (int k = 0; k < 1; ++k)
            {
         //This sets the x,y,z vector of the projectile, it uses the distance numbers calculated above, times a random number. (Because the Blaze fires randomly), 
         //you can take out "this.rand.nextGaussian() * (double)f1" and the projectile will always hit you dead on.    

                EntityLargeFireball entitylargefireball = new EntityLargeFireball(this.worldObj, this, d0 + this.rand.nextGaussian() * (double)f1, d1, d2 + this.rand.nextGaussian() * (double)f1);
        //This is where the projectile starts, the 0.5F is added to half the height to place it near normanl size mobs mouth area , but for Queen should be 8.0 chest area, 8.9 mouth.            
   //mob.ghast.fireball
                entitylargefireball.posY = this.posY + (double)(this.height / 2.0F) + 8.0D;
                this.playSound("mob.blaze.hit", 1.2F, 1.0F / (this.getRNG().nextFloat() * 0.4F + 0.8F));

                this.worldObj.spawnEntityInWorld(entitylargefireball);
            }
        }
            
            
    

    /**
     * Return this skeleton's type.
     */
    public int getSkeletonType()
    {
        return this.dataWatcher.getWatchableObjectByte(13);
    }

    /**
     * Set this skeleton's type.
     */
    public void setSkeletonType(int p_82201_1_)
    {
        this.dataWatcher.updateObject(13, Byte.valueOf((byte)p_82201_1_));
        this.isImmuneToFire = p_82201_1_ == 1;

        if (p_82201_1_ == 1)
        {
            this.setSize(0.72F, 2.34F);
        }
        else
        {
            this.setSize(0.6F, 1.8F);
        }
    }

    /**
     * (abstract) Protected helper method to read subclass entity data from NBT.
     */
    public void readEntityFromNBT(NBTTagCompound p_70037_1_)
    {
        super.readEntityFromNBT(p_70037_1_);

        if (p_70037_1_.hasKey("SkeletonType", 99))
        {
            byte b0 = p_70037_1_.getByte("SkeletonType");
            this.setSkeletonType(b0);
        }

        this.setCombatTask();
    }

    /**
     * (abstract) Protected helper method to write subclass entity data to NBT.
     */
    public void writeEntityToNBT(NBTTagCompound p_70014_1_)
    {
        super.writeEntityToNBT(p_70014_1_);
        p_70014_1_.setByte("SkeletonType", (byte)this.getSkeletonType());
    }

    /**
     * Sets the held item, or an armor slot. Slot 0 is held item. Slot 1-4 is armor. Params: Item, slot
     */
    public void setCurrentItemOrArmor(int slot, ItemStack itemstack)
    {
        super.setCurrentItemOrArmor(slot, itemstack);

        if (!this.worldObj.isRemote && slot == 0)
        {
            this.setCombatTask();
        }
    }

    /**
     * Returns the Y Offset of this entity.
     */
    public double getYOffset()
    {
        return super.getYOffset() - 0.5D;
    }
}

 

I registered the mob in client proxy which extends common proxy

 

Link to comment
Share on other sites

the dupe image is actually inside the model I created and turns independently it's like a shadow effect and seems to be part of the skeleton animation somehow

 

I thought that was the answer but I cannot find anywhere unchecked for world.isRemote == false  ... where would I look? 

 

here is my spawning class  I have world.isRemote checked false in public Entity spawnEntity

 

package com.glistre.glistremod.queen;
import java.util.List;

import com.glistre.glistremod.GlistreMod;
import com.glistre.glistremod.reference.Reference;
import com.glistre.glistremod.tabs.TabRegistry;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockLiquid;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.IEntityLivingData;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemMonsterPlacer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.Facing;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeCache.Block;


public class QueenElizabethMonsterPlacer extends ItemMonsterPlacer
{
    @SideOnly(Side.CLIENT)
    private IIcon theIcon;
    protected int colorBase = 0xFF0000;
    protected int colorSpots = 0xFFFF5D;

   protected String entityToSpawnName = "Tobie Queen Elizabeth";
   protected String entityToSpawnNameFull = "Tobie Queen Elizabeth";
    protected EntityLiving entityToSpawn = null;

    
    public QueenElizabethMonsterPlacer(String parEntityToSpawnName, int parPrimaryColor, 
          int parSecondaryColor)
    {
        setHasSubtypes(false);
        maxStackSize = 64;
        this.setMaxDamage(800);
        setCreativeTab(TabRegistry.tabCustom);
        setEntityToSpawnName(parEntityToSpawnName);
        colorBase = parPrimaryColor;
        colorSpots = parSecondaryColor;
        // DEBUG
//       System.out.println("Spawn egg constructor for "+entityToSpawnName);
    }

    /**
     * Callback for item usage. If the item does something special on right clicking, 
     * he will have one of those. Return
     * True if something happen and false if it don't. This is for ITEMS, not BLOCKS
     */
    @Override
    public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, 
          World world, int par4, int par5, int par6, int par7, float par8, 
          float par9, float par10)
    {
    	
        if (world.isRemote)
        {
            return true;
        }
        else
        {
            net.minecraft.block.Block block = world.getBlock(par4, par5, par6);
            par4 += Facing.offsetsXForSide[par7];
            par5 += Facing.offsetsYForSide[par7];
            par6 += Facing.offsetsZForSide[par7];
            double d0 = 0.0D;

            if (par7 == 1 && block.getRenderType() == 11)
            {
                d0 = 0.5D;
            }

            Entity entity = spawnEntity(world, par4 + 0.5D, par5 + d0, par6 + 0.5D);

            if (entity != null)
            {
                if (entity instanceof EntityLivingBase && par1ItemStack.hasDisplayName())
                {
                    ((EntityLiving)entity).setCustomNameTag(par1ItemStack.getDisplayName());
                }

                if (!par2EntityPlayer.capabilities.isCreativeMode)
                {
                    --par1ItemStack.stackSize;
                }
            }
            //adds sound effect on spawning entity
            
            world.playSoundAtEntity(par2EntityPlayer, "glistremod:sceptre_1", 1.0F, 2.0F);
            
        	par2EntityPlayer.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack));
        	par1ItemStack.damageItem(1, par2EntityPlayer);

            return true;
        }
    }

    /**
     * Called whenever this item is equipped and the right mouse button is pressed. 
     *Args: itemStack, world, entityPlayer
     */
    @Override
    public ItemStack onItemRightClick(ItemStack itemStack, World world, 
          EntityPlayer player)
    {

        if (world.isRemote)
        {

            return itemStack;
        }
        else
        {
            MovingObjectPosition movingobjectposition = 
                  getMovingObjectPositionFromPlayer(world, player, true);

            if (movingobjectposition == null)
            {
                return itemStack;
            }
            else
            {
                if (movingobjectposition.typeOfHit == MovingObjectPosition
                      .MovingObjectType.BLOCK)
                {
                    int i = movingobjectposition.blockX;
                    int j = movingobjectposition.blockY;
                    int k = movingobjectposition.blockZ;

                    if (!world.canMineBlock(player, i, j, k))
                    {
                        return itemStack;
                    }

                    if (!player.canPlayerEdit(i, j, k, movingobjectposition
                          .sideHit, itemStack))
                    {
                        return itemStack;
                    }

                    if (world.getBlock(i, j, k) instanceof BlockLiquid)
                    {
                        Entity entity = spawnEntity(world, i, j, k);

                        if (entity != null)
                        {
                            if (entity instanceof EntityLivingBase && itemStack
                                  .hasDisplayName())
                            {
                                ((EntityLiving)entity).setCustomNameTag(itemStack
                                      .getDisplayName());
                            }

                            if (!player.capabilities.isCreativeMode)
                            {
                                --itemStack.stackSize;
                            }
                        }
                    }
                    //adds sound effect if you hit entity
        	        
        	        world.playSoundAtEntity(player, "glistremod:sceptre_1", 1.0F, 2.0F);

                }
                return itemStack;
            }
        }
    }

    public Entity spawnEntity(World world, double posX, double posY, double posZ)
    {
     
       if (!world.isRemote) // never spawn entity on client side
       {
            entityToSpawnNameFull = Reference.MOD_ID + "." + entityToSpawnName;
            if (EntityList.stringToClassMapping.containsKey(entityToSpawnNameFull))
            {
                entityToSpawn = (EntityLiving) EntityList
                      .createEntityByName(entityToSpawnNameFull, world);
                entityToSpawn.setLocationAndAngles(posX, posY, posZ, 
                      MathHelper.wrapAngleTo180_float(world.rand.nextFloat()
                      * 360.0F), 0.0F);
                
                world.spawnEntityInWorld(entityToSpawn);
               
                entityToSpawn.onSpawnWithEgg((IEntityLivingData)null);
                entityToSpawn.playLivingSound();
            }
            else
            {
                //DEBUG
                System.out.println("Entity not found "+entityToSpawnName);
            }
        }
      
        return entityToSpawn;
    }


    /**
     * returns a list of items with the same ID, but different meta (eg: dye returns 16 items)
     */
    @Override
    @SideOnly(Side.CLIENT)
    public void getSubItems(Item parItem, CreativeTabs parTab, List parList)
    {
        parList.add(new ItemStack(parItem, 1, 0));     
    }

    @Override
    @SideOnly(Side.CLIENT)
    public int getColorFromItemStack(ItemStack par1ItemStack, int parColorType)
    {
        return (parColorType == 0) ? colorBase : colorSpots;
    }

    @Override
    @SideOnly(Side.CLIENT)
    public boolean requiresMultipleRenderPasses()
    {
        return true;
    }
    
    @Override
    // Doing this override means that there is no localization for language
    // unless you specifically check for localization here and convert
    public String getItemStackDisplayName(ItemStack par1ItemStack)
    {
        return (EnumChatFormatting.RED + "Spawn "+entityToSpawnName);
    }  


/*    @Override
    @SideOnly(Side.CLIENT)
    public void registerIcons(IIconRegister par1IconRegister)
    {
        super.registerIcons(par1IconRegister);
        theIcon = par1IconRegister.registerIcon(getIconString() + "sceptre_1");
    }*/
    
    @Override   
    @SideOnly(Side.CLIENT)

        public void registerIcons(IIconRegister iconRegister)
        {
    	this.itemIcon = iconRegister.registerIcon(Reference.MOD_ID +":" + "tobieQueenSceptre");
        }
    /**
     * Gets an icon index based on an item's damage value and the given render pass
     */
    @Override
    @SideOnly(Side.CLIENT)
    public IIcon getIconFromDamageForRenderPass(int parDamageVal, int parRenderPass)
    {
        return parRenderPass > 0 ? this.itemIcon : super.getIconFromDamageForRenderPass(parDamageVal, 
              parRenderPass);
    }
    
   public void setColors(int parColorBase, int parColorSpots)
    {
     colorBase = parColorBase;
     colorSpots = parColorSpots;
    }
    
    public int getColorBase()
    {
     return colorBase;
    }
    
    public int getColorSpots()
    {
     return colorSpots;
    }
    
    public void setEntityToSpawnName(String parEntityToSpawnName)
    {
        entityToSpawnName = parEntityToSpawnName;
        entityToSpawnNameFull = Reference.MOD_ID+"."+entityToSpawnName; 
    }

}

 

Link to comment
Share on other sites

Solved . ..well, sorta ...I commented out this in #render

 

super.render(entity, limbSwing, limbSwingAmount, rotFloat, rotYaw, rotPitch, partTicks);

 

and everything works ..BUT 

 

don't think it's good to comment out the super

 

any thoughts??

Link to comment
Share on other sites

Solved . ..well, sorta ...I commented out this in #render

 

super.render(entity, limbSwing, limbSwingAmount, rotFloat, rotYaw, rotPitch, partTicks);

 

and everything works ..BUT 

 

don't think it's good to comment out the super

 

any thoughts??

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hi everyone, I'm working on a mod where I need to display a custom GUI on top of the inventory screen that includes a slider. The goal is to allow the player to select a number using the slider, and then confirm the action, which will split an item stack (similar to shift-clicking, but with a custom number). I've successfully created custom GUIs before using Screen, but I’m running into a couple of issues when trying to integrate a slider into the inventory screen (AbstractContainerScreen): I found the slider in the forge package (net.minecraftforge.client.gui.widget.Slider), but I couldn’t find any usages or examples on how to properly implement it or use it in this context. My Questions: How can I properly integrate a slider into the custom gui screen ? Is net.minecraftforge.client.gui.widget.Slider the right class to use for this? If yes, are there any examples or recommended usages of this Forge slider widget? If not, what would be a good alternative to create a custom slider (maybe extending AbstractSlider or another class)? How do I ensure proper interaction between the slider and the rest of the inventory screen? Any advice, code snippets, or examples would be greatly appreciated! Thanks in advance for your help!
    • I can´t craft in minecraft because it shows: "forge empty tag", does anyone know a fix for this issue? Thank you for your time!
    • ---- Minecraft Crash Report ---- // Daisy, daisy... Time: 2024-10-13 19:15:43 Description: Exception in server tick loop java.lang.NullPointerException: Cannot invoke "com.cobblemon.mod.common.api.conditional.RegistryLikeCondition.fits(Object, net.minecraft.class_2378)" because "condition" is null     at com.cobblemon.mod.common.api.spawning.condition.SpawningCondition.fits(SpawningCondition.java:85)     at com.cobblemon.mod.common.api.spawning.condition.AreaTypeSpawningCondition.fits(AreaTypeSpawningCondition.java:30)     at com.cobblemon.mod.common.api.spawning.condition.GroundedTypeSpawningCondition.fits(GroundedTypeSpawningCondition.java:28)     at com.cobblemon.mod.common.api.spawning.condition.GroundedTypeSpawningCondition.fits(GroundedTypeSpawningCondition.java:24)     at com.cobblemon.mod.common.api.spawning.condition.SpawningCondition.isSatisfiedBy(SpawningCondition.java:68)     at com.cobblemon.mod.common.api.spawning.detail.SpawnDetail.isSatisfiedBy(SpawnDetail.java:78)     at com.cobblemon.mod.common.api.spawning.spawner.Spawner$DefaultImpls.getMatchingSpawns(Spawner.java:42)     at com.cobblemon.mod.common.api.spawning.spawner.TickingSpawner.getMatchingSpawns(TickingSpawner.java:31)     at com.cobblemon.mod.common.api.spawning.selection.FlatContextWeightedSelector.getSelectionData(FlatContextWeightedSelector.java:79)     at com.cobblemon.mod.common.api.spawning.selection.FlatContextWeightedSelector.select(FlatContextWeightedSelector.java:106)     at com.cobblemon.mod.common.api.spawning.spawner.AreaSpawner.run(AreaSpawner.java:94)     at com.cobblemon.mod.common.api.spawning.spawner.TickingSpawner.tick(TickingSpawner.java:71)     at com.cobblemon.mod.common.api.spawning.SpawnerManager.onServerTick(SpawnerManager.java:58)     at com.cobblemon.mod.common.events.ServerTickHandler.onTick(ServerTickHandler.java:20)     at com.cobblemon.mod.common.Cobblemon$initialize$7.invoke(Cobblemon.java:368)     at com.cobblemon.mod.common.Cobblemon$initialize$7.invoke(Cobblemon.java:368)     at com.cobblemon.mod.common.api.reactive.ObservableSubscription.handle(ObservableSubscription.java:16)     at com.cobblemon.mod.common.api.reactive.SimpleObservable.emit(SimpleObservable.java:39)     at com.cobblemon.mod.fabric.CobblemonFabric.initialize$lambda$8(CobblemonFabric.kt:440)     at net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents.lambda$static$2(ServerTickEvents.java:43)     at net.minecraft.server.MinecraftServer.handler$cka002$fabric-lifecycle-events-v1$onEndTick(MinecraftServer.java:6862)     at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:847)     at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:671)     at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:265)     at java.base/java.lang.Thread.run(Thread.java:1583) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Cobblemon -- Details:     Version: 1.5.2     Is Snapshot: false     Git Commit: df8f078 (https://gitlab.com/cable-mc/cobblemon/-/commit/df8f078d13702ab9a000438910b822ceffbb2248)     Branch: HEAD -- System Details -- Details:     Minecraft Version: 1.20.1     Minecraft Version ID: 1.20.1     Operating System: Linux (amd64) version 6.5.0-41-generic     Java Version: 21.0.4, Amazon.com Inc.     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Amazon.com Inc.     Memory: 3487078768 bytes (3325 MiB) / 5360320512 bytes (5112 MiB) up to 11567890432 bytes (11032 MiB)     CPUs: 2     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 7 5800X 8-Core Processor     Identifier: AuthenticAMD Family 25 Model 33 Stepping 0     Microarchitecture: Zen 3     Frequency (GHz): -0.00     Number of physical packages: 1     Number of physical CPUs: 8     Number of logical CPUs: 16     Graphics card #0 name: unknown     Graphics card #0 vendor: unknown     Graphics card #0 VRAM (MB): 0.00     Graphics card #0 deviceId: unknown     Graphics card #0 versionInfo: unknown     Virtual memory max (MB): 68443.22     Virtual memory used (MB): 51550.91     Swap memory total (MB): 4096.00     Swap memory used (MB): 793.75     JVM Flags: 2 total; -Xms128M -XX:MaxRAMPercentage=95.0     Fabric Mods:          a_man_with_plushies: A Man With Plushies 4.2.0         alloy_forgery: Alloy Forgery 2.1.2+1.20         almostunified: AlmostUnified 1.20.1-0.9.4         alternate-current: Alternate Current 1.9.0         amendments: Amendments 1.20-1.2.11         another_furniture: Another Furniture 1.20.1-3.0.1         appleskin: AppleSkin 2.5.1+mc1.20         architectury: Architectury 9.2.14         artifacts: Artifacts 9.5.13             cardinal-components-base: Cardinal Components API (base) 5.2.2             cardinal-components-entity: Cardinal Components API (entities) 5.2.2             expandability: ExpandAbility 9.0.4             step-height-entity-attribute: Step Height Entity Attribute 1.2.0         athena: Athena 3.1.2         attributefix: AttributeFix 21.0.4         automobility: Automobility 0.4.2+1.20.1-fabric             jsonem: JsonEM 0.2.1+1.20         bakery: [Let's Do] Bakery 1.1.15         balm-fabric: Balm 7.3.9             kuma_api: KumaAPI 20.1.8         barteringstation: Bartering Station 8.0.0         bbb: Building But Better 1.20.1-fabric-1.0.2         bcg_smp: BCG_SMP 1.0.1         bcgmusic: BCG Music 1.1.0-1.20.1         bcgutil: BCG Util 1.0.5         bclib: BCLib 3.0.14             wunderlib: WunderLib 1.1.5         beautify: Beautify 1.2.0+1.20.1         bedbenefits: BedBenefits 13.0.3         beekeeperhut: Friends&Foes - Beekeeper Hut 2.0.1         better_climbing: Better Climbing 3         bettercombat: Better Combat 1.8.6+1.20.1         betterdungeons: YUNG's Better Dungeons 1.20-Fabric-4.0.4             org_reflections_reflections: reflections 0.10.2         betterend: Better End 4.0.11         betterendisland: YUNG's Better End Island 1.20-Fabric-2.0.6         bettermineshafts: YUNG's Better Mineshafts 1.20-Fabric-4.0.4         betteroceanmonuments: YUNG's Better Ocean Monuments 1.20-Fabric-3.0.4         betterstrongholds: YUNG's Better Strongholds 1.20-Fabric-4.0.3         bitsandchisels: BitsAndChisels 2.7.3         blahaj: Blåhaj 0.3.2         boatbreakfix: Boat Break Fix 1.0.2         bookshelf: Bookshelf 20.2.13         brewery: [Let's Do] Brewery 1.1.9         bwncr: Bad Wither No Cookie Reloaded 3.17.0         candlelight: [Let's Do] Candlelight 1.2.13         cardinal-components: Cardinal Components API 5.2.2             cardinal-components-block: Cardinal Components API (blocks) 5.2.2             cardinal-components-chunk: Cardinal Components API (chunks) 5.2.2             cardinal-components-item: Cardinal Components API (items) 5.2.2             cardinal-components-level: Cardinal Components API (world saves) 5.2.2             cardinal-components-scoreboard: Cardinal Components API (scoreboard) 5.2.2             cardinal-components-world: Cardinal Components API (worlds) 5.2.2         carryon: Carry On 2.1.2.7         charmofundying: Charm of Undying 6.5.0+1.20.1         chefsdelight: Chefs Delight 1.0.3-fabric-1.20.1         chimes: Chimes 2.0.1         chipped: Chipped 3.0.6         clickadv: Clickable Advancements Mod 1.20.1-3.8         cloth-config: Cloth Config v11 11.1.136             cloth-basic-math: cloth-basic-math 0.6.1         clumps: Clumps 12.0.0.4         cobbledex: Cobbledex 1.1.0         cobbledollars: CobbleDollars 1.5.1+1.20.1         cobblemon: Cobblemon 1.5.2+1.20.1         cobblemon-ui-tweaks: Cobblemon UI Tweaks 1.0.6         cobblemon_capturexp: Cobblemon Capture EXP 1.5-fabric-1.0.1         cobblemon_counter: Cobblemon Counter 1.5-fabric-1.2.0         cobblemon_quests: Cobblemon Quests 1.1.11         cobblemon_spawn_notification: Cobblemon Spawn Notification 1.5-fabric-1.1.0         cobblemonbreakouts: Cobblemon Outbreaks fabric-1.1.4-1.20.1         cobblemontrainers: CobblemonTrainers 1.1.11+1.5.2         cobblepedia: Cobblepedia 0.6.8         cobbreeding: Cobbreeding 1.7.2         collective: Collective 7.84         comforts: Comforts 6.4.0+1.20.1         commonnetworking: Common Network 1.0.5-1.20.1         compact_storage: CompactStorage 6.0.1.64         connectivity: Connectivity Mod 1.20.1-5.8         convenientdecor: Convenient Decor 0.4.3             omega-config: OmegaConfig 1.4.0+1.20.1         copycats: Create: Copycats+ 2.1.4+mc.1.20.1-fabric         coroutil: CoroUtil 1.20.1-1.3.7         crawl: Crawl 0.12.0         create: Create 0.5.1-f-build.1417+mc1.20.1             com_google_code_findbugs_jsr305: jsr305 3.0.2             milk: Milk Lib 1.2.60                 dripstone_fluid_lib: Dripstone Fluid Lib 3.0.2             porting_lib_brewing: Porting Lib Brewing 2.3.2+1.20.1             porting_lib_client_events: Porting Lib Client Events 2.3.2+1.20.1             porting_lib_tags: Porting Lib Tags 3.0             registrate-fabric: Registrate for Fabric 1.3.62-MC1.20.1         create_cobblemon: Create: Cobblemon Industrialized 0.4         create_enchantment_industry: Create Enchantment Industry 1.2.16             create_dragon_lib: Create Dragon Lib 1.4.2         createaddition: Create Crafts & Additions 1.2.4         createbigcannons: Create Big Cannons 5.5.1+mc.1.20.1-fabric             ritchiesprojectilelib: Ritchie's Projectile Library 2.0.0-dev+mc.1.20.1-fabric-build.182                 porting_lib_utility: Porting Lib Utility 2.1.1127+1.20                     porting_lib_gametest: Porting Lib GameTest 2.1.1127+1.20         createdeco: Create Deco 2.0.2-1.20.1-fabric         creeperoverhaul: Creeper Overhaul 3.0.2         cupboard: cupboard 1.20.1-2.7         customcursorcomm: CustomCursorComm 1.2.0         dailyshop: Daily Shop 1.0.2         darkutils: DarkUtilities 17.0.5         debugify: Debugify 1.20.1+2.0         design_decor: Create: Design n' Decor 0.4.0b_fabric+1.20.1         deuf_refabricated: DEUF Refabricated 1.1.0         diagonalfences: Diagonal Fences 8.1.4         diagonalwalls: Diagonal Walls 8.0.3             diagonalblocks: Diagonal Blocks 8.0.5         diagonalwindows: Diagonal Windows 8.1.4         dimensionalsyncfixes: DimensionalSyncFixes 1.20.1-0.0.2         doapi: [Let's Do] API 1.2.15             terraform-wood-api-v1: Terraform Wood API (v1) 7.0.1         dragonfight: Dragonfight Mod 1.20.1-4.6         drippyloadingscreen: Drippy Loading Screen 3.0.2         e4mc_minecraft: e4mc 5.2.1             folk_sisby_kaleido-config: kaleido-config 0.3.1+1.3.1         easy_npc: Easy NPC 5.6.0         easyanvils: Easy Anvils 8.0.2         easymagic: Easy Magic 8.0.1         elytraslot: Elytra Slot 6.4.4+1.20.1             mixinsquared: MixinSquared 0.1.2-beta.6         emi: EMI 1.1.14+1.20.1+fabric         emi_letsdo_compat: emi-letsdo-compat 1.3         endermanoverhaul: Enderman Overhaul 1.0.4         endrem: End Remastered 5.2.4         ends_delight: End's Delight 2.1         entityculling: EntityCulling 1.7.0         everycomp: Every Compat 1.20-2.6.76             porting_lib_attributes: Porting Lib Attributes 2.3.4+1.20.1             porting_lib_common: Porting Lib Common 2.3.4+1.20.1             porting_lib_entity: Porting Lib Entity 2.3.4+1.20.1             porting_lib_extensions: Porting Lib Extensions 2.3.4+1.20.1             porting_lib_model_generators: Porting Lib Model Generators 2.3.4+1.20.1                 porting_lib_data: Porting Lib Data 2.3.4+1.20.1                 porting_lib_model_materials: Porting Lib Model Materials 2.3.4+1.20.1             porting_lib_model_loader: Porting Lib Model Loader 2.3.4+1.20.1             porting_lib_models: Porting Lib Models 2.3.4+1.20.1             porting_lib_obj_loader: Porting Lib Obj Loader 2.3.4+1.20.1             porting_lib_transfer: Porting Lib Transfer 2.3.4+1.20.1         expandeddelight: Expanded Delight 0.3.2         explorerscompass: Explorer's Compass 1.20.1-2.2.3-fabric         exposure: Exposure 1.7.7         extendedgears: Extended Cogwheels 2.1.1-1.20.1-0.5.1.f-fabric         fabric-api: Fabric API 0.92.2+1.20.1             fabric-api-base: Fabric API Base 0.4.31+1802ada577             fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.6.36+1802ada577             fabric-biome-api-v1: Fabric Biome API (v1) 13.0.13+1802ada577             fabric-block-api-v1: Fabric Block API (v1) 1.0.11+1802ada577             fabric-block-view-api-v2: Fabric BlockView API (v2) 1.0.1+1802ada577             fabric-command-api-v1: Fabric Command API (v1) 1.2.34+f71b366f77             fabric-command-api-v2: Fabric Command API (v2) 2.2.13+1802ada577             fabric-commands-v0: Fabric Commands (v0) 0.2.51+df3654b377             fabric-containers-v0: Fabric Containers (v0) 0.1.64+df3654b377             fabric-content-registries-v0: Fabric Content Registries (v0) 4.0.11+1802ada577             fabric-convention-tags-v1: Fabric Convention Tags 1.5.5+1802ada577             fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.2.19+1802ada577             fabric-data-attachment-api-v1: Fabric Data Attachment API (v1) 1.0.0+de0fd6d177             fabric-data-generation-api-v1: Fabric Data Generation API (v1) 12.3.4+1802ada577             fabric-dimensions-v1: Fabric Dimensions API (v1) 2.1.54+1802ada577             fabric-entity-events-v1: Fabric Entity Events (v1) 1.6.0+1c78457f77             fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.6.2+1802ada577             fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.63+df3654b377             fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.40+1802ada577             fabric-item-api-v1: Fabric Item API (v1) 2.1.28+1802ada577             fabric-item-group-api-v1: Fabric Item Group API (v1) 4.0.12+1802ada577             fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 2.2.22+1802ada577             fabric-loot-api-v2: Fabric Loot API (v2) 1.2.1+1802ada577             fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.1.45+9e7660c677             fabric-message-api-v1: Fabric Message API (v1) 5.1.9+1802ada577             fabric-mining-level-api-v1: Fabric Mining Level API (v1) 2.1.50+1802ada577             fabric-networking-api-v1: Fabric Networking API (v1) 1.3.11+1802ada577             fabric-networking-v0: Fabric Networking (v0) 0.3.51+df3654b377             fabric-object-builder-api-v1: Fabric Object Builder API (v1) 11.1.3+1802ada577             fabric-particles-v1: Fabric Particles (v1) 1.1.2+1802ada577             fabric-recipe-api-v1: Fabric Recipe API (v1) 1.0.21+1802ada577             fabric-registry-sync-v0: Fabric Registry Sync (v0) 2.3.3+1802ada577             fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.3.37+92a0d36777             fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 3.0.28+1802ada577             fabric-resource-conditions-api-v1: Fabric Resource Conditions API (v1) 2.3.8+1802ada577             fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.11.10+1802ada577             fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.3.30+1802ada577             fabric-transfer-api-v1: Fabric Transfer API (v1) 3.3.5+8dd72ea377             fabric-transitive-access-wideners-v1: Fabric Transitive Access Wideners (v1) 4.3.1+1802ada577         fabric-language-kotlin: Fabric Language Kotlin 1.12.2+kotlin.2.0.20             org_jetbrains_kotlin_kotlin-reflect: kotlin-reflect 2.0.20             org_jetbrains_kotlin_kotlin-stdlib: kotlin-stdlib 2.0.20             org_jetbrains_kotlin_kotlin-stdlib-jdk7: kotlin-stdlib-jdk7 2.0.20             org_jetbrains_kotlin_kotlin-stdlib-jdk8: kotlin-stdlib-jdk8 2.0.20             org_jetbrains_kotlinx_atomicfu-jvm: atomicfu-jvm 0.25.0             org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm: kotlinx-coroutines-core-jvm 1.9.0             org_jetbrains_kotlinx_kotlinx-coroutines-jdk8: kotlinx-coroutines-jdk8 1.9.0             org_jetbrains_kotlinx_kotlinx-datetime-jvm: kotlinx-datetime-jvm 0.6.1             org_jetbrains_kotlinx_kotlinx-io-bytestring-jvm: kotlinx-io-bytestring-jvm 0.5.4             org_jetbrains_kotlinx_kotlinx-io-core-jvm: kotlinx-io-core-jvm 0.5.4             org_jetbrains_kotlinx_kotlinx-serialization-cbor-jvm: kotlinx-serialization-cbor-jvm 1.7.2             org_jetbrains_kotlinx_kotlinx-serialization-core-jvm: kotlinx-serialization-core-jvm 1.7.2             org_jetbrains_kotlinx_kotlinx-serialization-json-jvm: kotlinx-serialization-json-jvm 1.7.2         fabricloader: Fabric Loader 0.16.5             mixinextras: MixinExtras 0.4.1         fancymenu: FancyMenu 3.2.3             com_github_keksuccino_japng: japng 0.5.3             com_github_rtyley_animated-gif-lib-for-java: animated-gif-lib-for-java animated-gif-lib-1.7         farmersdelight: Farmer's Delight 1.20.1-2.1.6+refabricated             mm: Manningham Mills 2.3             porting_lib_accessors: Porting Lib Accessors 2.3.4+1.20.1             porting_lib_base: Porting Lib Base 2.3.4+1.20.1                 porting_lib_core: Porting Lib Core 2.3.4+1.20.1                 porting_lib_fluids: Porting Lib Fluids 2.3.4+1.20.1                 porting_lib_mixin_extensions: Porting Lib Mixin Extensions 2.3.4+1.20.1             porting_lib_config: Porting Lib Config 2.3.4+1.20.1             porting_lib_lazy_registration: Porting Lib Lazy Register 2.3.4+1.20.1             porting_lib_loot: Porting Lib Loot 2.3.4+1.20.1             porting_lib_networking: Porting Lib Networking 2.3.4+1.20.1             porting_lib_recipe_book_categories: Porting Lib Recipe Book Categories 2.3.4+1.20.1             porting_lib_tool_actions: Porting Lib Tool Actions 2.3.4+1.20.1         farsight: Farsight Mod 1.20.1-4.3             org_jctools_jctools-core: jctools-core 4.0.1         faster-random: Faster Random 5.1.0         fastpaintings: Fast Paintings 1.20-1.2.7         ferritecore: FerriteCore 6.0.1         fightorflight: Cobblemon Fight or Flight Fabric 0.5.0         flowerymooblooms: Friends&Foes - Flowery Mooblooms 2.0.2         forgeconfigapiport: Forge Config API Port 8.0.0         framework: Framework 0.6.16             org_javassist_javassist: javassist 3.29.2-GA         friendsandfoes: Friends & Foes 3.0.3         ftbchunks: FTB Chunks 2001.3.1         ftbessentials: FTB Essentials 2001.2.2         ftblibrary: FTB Library 2001.2.4         ftbquests: FTB Quests 2001.4.8             team_reborn_energy: Energy 3.0.0         ftbteams: FTB Teams 2001.3.0         ftbultimine: FTB Ultimine 2001.1.5         ftbxmodcompat: FTB XMod Compat 2.1.1         fwaystones: Fabric Waystones 3.3.2+mc1.20.1         fzzy_config: Fzzy Config 0.5.0+1.20.1             blue_endless_jankson: jankson 1.2.3             fabric-permissions-api-v0: fabric-permissions-api 0.3.1             net_peanuuutz_tomlkt_tomlkt-jvm: tomlkt-jvm 0.3.7         geckolib: GeckoLib 4 4.4.9             com_eliotlash_mclib_mclib: mclib 20         getittogetherdrops: Get It Together, Drops! fabric-1.20-1.3.1         globalpacks: Global Data- & Resourcepacks 1.16.1_fabric         go-fish: Go Fish 1.6.3+1.20.1         gpumemleakfix: Gpu memory leak fix mod 1.20.1-1.8         grindenchantments: Grind Enchantments 3.1.2+1.20             codec-config-api: Codec Config API 1.0.2+1.19.3         guarding: Guarding 2.4.0             scribe: Scribe 1.20.1-0.5.0-alpha         guardvillagers: GuardVillagers 2.0.9-1.20.1         gymbadges: GymBadges 1.0         hamsters: Hamsters fabric-1.0.3-1.20.1         handcrafted: Handcrafted 3.0.6         healingcampfire: Healing Campfire 6.1         herbalbrews: [Let's Do] HerbalBrews 1.0.8.1         herdspanic: Herds Panic 1.1.0         horseexpert: Horse Expert 8.1.1         icarus: Icarus 2.10.0         idwtialsimmoedm: idwtialsimmoedm 0.3.1+1.20         illagerinvasion: Illager Invasion 8.0.6             extensibleenums: Extensible Enums 7.0.1         immersive_aircraft: Immersive Aircraft 1.1.2+1.20.1             org_mariuszgromada_math_mathparser_org-mxparser: MathParser.org-mXparser 5.2.1         immersive_paintings: Immersive Paintings 0.6.7+1.20.1         incantationem: Incantationem 1.2.1+1.20         incendium: Incendium 5.3.5         item_obliterator: Item Obliterator 2.3.0         itemcollectors: Item Collectors 1.1.10         itemfilters: Item Filters 2001.1.0-build.59         jade: Jade 11.11.0+fabric         java: OpenJDK 64-Bit Server VM 21         jmi: JourneyMapIntegration 1.20.1-0.14-48         journeymap: Journeymap 5.10.2             journeymap-api-fabric: JourneyMap API 1.20-1.9-fabric-SNAPSHOT         jumpoverfences: Jump Over Fences 1.3.1         konkrete: Konkrete 1.8.1         leavesbegone: Leaves Be Gone 8.0.0         letmedespawn: Let Me Despawn 1.3.2b         lithium: Lithium 0.11.2         lmft: Load My F***ing Tags 1.0.2+1.20         logbegone: Log Begone 1.0.8         lootintegrations: Loot integration Mod 1.20.1-3.7         lootr: Lootr 0.7.34.84         luphieclutteredmod: Cluttered 2.1.0+1.20.1         magnumtorch: Magnum Torch 8.0.2         man_of_many_planes: Man of Many Planes 0.2.0+1.20.1         mavapi: More Axolotl Variants API 1.1.4         mavm: More Axolotl Variants Mod 1.2.6         mcwbridges: Macaw's Bridges 3.0.0         mcwdoors: Macaw's Doors 1.1.1         mcwfences: Macaw's Fences and Walls 1.1.2         mcwfurnitures: Macaw's Furniture 3.3.0         mcwholidays: Macaw's Holidays 1.1.0         mcwlights: Macaw's Lights and Lamps 1.1.1         mcwpaths: Macaw's Paths and Pavings 1.0.5         mcwroofs: Macaw's Roofs 2.3.1         mcwtrpdoors: Macaw's Trapdoors 1.1.3         mcwwindows: Macaw's Windows 2.3.0         megamons: Ascension Megamons 1.5.0+1.20.1-forge+fabric-75b66fa         melody: Melody 1.0.3         memoryleakfix: Memory Leak Fix 1.1.2         mighty_mail: Mighty Mail 1.0.14         mine-spawners: mine-spawners 1.0         minecraft: Minecraft 1.20.1         mixintrace: MixinTrace 1.1.1+1.17         modernfix: ModernFix 5.19.4+mc1.20.1         moonlight: Moonlight 1.20-2.13.2         more-axolotl: More Axolotl 2.0.1         mr_remove_terralithintromessage: Remove Terralith Intro Message 1.0         mss: Moog's Soaring Structures 1.1.2-1.20-fabric         mvs: Moog's Voyager Structures 4.1.4-1.20-fabric         mythicmetals: Mythic Metals 0.19.9+1.20.1             additionalentityattributes: Additional Entity Attributes 1.7.3+1.20.0             common-protection-api: Common Protection API 1.0.0             reach-entity-attributes: Reach Entity Attributes 2.4.0         mythsandlegends: Myths and Legends 1.5-HOTFIX             com_moandjiezana_toml_toml4j: toml4j 0.7.2         naturalist: Naturalist 4.0.3         naturescompass: Nature's Compass 1.20.1-2.2.3-fabric         necronomicon: Necronomicon 1.6.0         neruina: Neruina 2.1.2             com_fasterxml_jackson_core_jackson-annotations: jackson-annotations 2.17.0             com_fasterxml_jackson_core_jackson-core: jackson-core 2.17.0             com_fasterxml_jackson_core_jackson-databind: jackson-databind 2.17.0             org_apache_maven_maven-artifact: maven-artifact 3.8.1             org_kohsuke_github-api: github-api 1.318         netherportalfix: NetherPortalFix 13.0.1         nightlights: Night Lights 1.1         nochatreports: No Chat Reports 1.20.1-v2.2.2         notenoughanimations: NotEnoughAnimations 1.7.6         oceansdelight: Ocean's Delight fdrf-fabric-1.0.2-1.20         owo: oωo 0.11.2+1.20         packetfixer: Packet Fixer 1.4.2         patchouli: Patchouli 1.20.1-84-FABRIC             fiber: fiber 0.23.0-2         pehkui: Pehkui 3.8.3+1.14.4-1.21             kanos_config: Kanos Config 0.4.1+1.14.4-1.19.4         permanentsponges: Permanent Sponges 8.1.2         pigpen: PigPen 15.0.2         ping-wheel: Ping Wheel 1.9.1         player-animator: Player Animator 1.0.2-rc1+1.20         plushies: Plushie Mod 1.4.0         polymorph: Polymorph 0.49.7+1.20.1             spectrelib: SpectreLib 0.13.17+1.20.1         puzzleslib: Puzzles Lib 8.1.23             puzzlesaccessapi: Puzzles Access Api 8.0.7         railways: Create: Steam 'n' Rails 1.6.4+fabric-mc1.20.1         reacharound: Reacharound 1.3.0         recipeessentials: recipeessentials Mod 1.20.1-3.6         resourcefulconfig: Resourcefulconfig 2.1.2         resourcefullib: Resourceful Lib 2.1.29             com_teamresourceful_bytecodecs: bytecodecs 1.0.2             com_teamresourceful_yabn: yabn 1.0.3         ribbits: Ribbits 1.20.1-Fabric-3.0.0         runelic: Runelic 18.0.2         seasons: Fabric Seasons 2.3+1.20         seasonsdelightcompat: Fabric Seasons: Delight Compat 1.0-1.3.9         seasonsterralithcompat: Fabric Seasons: Terralith Compat 1.0-2.3.7         sellingbin: Selling Bin 1.0.4         serverredirect: Server Redirect 1.4.5         shadertoggle: Shader Toggle 1.0         simpletms: Cobblemon: Simple TM's 1.1.2         simplyswords: Simply Swords 1.56.0-1.20.1         sliceanddice: Create Slice & Dice 3.3.1         smallships: Small Ships 2.0.0-b1.4         spark: spark 1.10.53         spiceoffabric: Spice of Fabric 1.6.2+mc1.20.1             capsaicin: Capsaicin 1.3.3+mc1.20.1             tweed4_annotated: tweed4_annotated 1.3.1+mc1.20-pre1             tweed4_base: tweed4_base 1.7.1+mc1.20-pre1             tweed4_data: tweed4_data 1.2.1+mc1.20-pre1             tweed4_data_hjson: tweed4_data_hjson 1.1.1+mc1.20-pre1             tweed4_tailor_lang_json_descriptions: tweed4_tailor_lang_json_descriptions 1.1.0+mc1.20-pre1         stacc: Stacc 1.7.0         starterkit: Starter Kit 7.1         strawstatues: Straw Statues 8.0.3             puzzlesapi: Puzzles Api 8.1.4         structory: Structory 1.3.5         structory_towers: Structory: Towers 1.0.7         structureessentials: Structure Essentials Mod 1.20.1-3.4         supermartijn642configlib: SuperMartijn642's Config Lib 1.1.8+a         supermartijn642corelib: SuperMartijn642's Core Lib 1.1.17+a         supplementaries: Supplementaries 1.20-2.8.17         suppsquared: Supplementaries Squared 1.20-1.1.15         terrablender: TerraBlender 3.0.1.7             com_electronwill_night-config_core: core 3.6.7             com_electronwill_night-config_toml: toml 3.6.7         terralith: Terralith 2.5.4         thiccpackets: Extra Thicc Packets 1.17-1.19+         things: Things 0.3.3+1.20             lavender: Lavender 0.1.0-pre.18+1.20                 lavender-md: lavender-md 0.1.0-pre.3+1.20                 lavender-md-owo-ui: lavender-md-owo-ui 0.1.0-pre.3+1.20         toms_storage: Tom's Simple Storage Mod 1.6.8         toolstats: ToolStats 16.0.9         trade_cycling: Trade Cycling 1.20.1-1.0.7         tradingpost: Trading Post 8.0.2         trashcans: Trash Cans 1.0.18         travelersbackpack: Traveler's Backpack 9.1.17         trinkets: Trinkets 3.7.2         tutorialmod: Fullers Pokecenters 1.0.0             structurized-reborn: Structurized Reborn 1.20.1-01         ubesdelight: Ube's Delight 0.2.0             midnightlib: MidnightLib 1.4.1             porting_lib_registries: Porting Lib Registries 2.3.4+1.20.1         universal_shops: Universal Shops 1.3.2+1.20.1             common-economy-api: Common Economy API 1.1.1             placeholder-api: Placeholder API 2.1.1+1.20             polymer-core: Polymer (Core) 0.5.3+1.20.1                 polymer-networking: Polymer (Networking) 0.5.3+1.20.1                 polymer-registry-sync-manipulator: Polymer (Registry Sync Manipulator) 0.5.3+1.20.1             polymer-resource-pack: Polymer (Resource Pack) 0.5.3+1.20.1                 polymer-common: Polymer (Common) 0.5.3+1.20.1             polymer-virtual-entity: Polymer (Virtual Entity) 0.5.3+1.20.1             server_translations_api: Server Translations API 2.0.0+1.20                 packet_tweaker: Packet Tweaker 0.4.0+1.19.4             sgui: sgui 1.2.2+1.20         vanityslots: Vanity Slots 1.2.9         villagernames: Villager Names 8.1         vinery: [Let's Do] Vinery 1.4.28         visualworkbench: Visual Workbench 8.0.0         voicechat: Simple Voice Chat 1.20.1-2.5.23         wands: Building Wands 2.6.9-release         watut: What Are They Up To 1.20.1-1.1.3         xercamusic: Music Maker Mod fabric-1.20.1-1.0.2         xercapaint: Joy of Painting fabric-1.20.1-1.0.1         yet_another_config_lib_v3: YetAnotherConfigLib 3.5.0+1.20.1-fabric             com_twelvemonkeys_common_common-image: common-image 3.10.0             com_twelvemonkeys_common_common-io: common-io 3.10.0             com_twelvemonkeys_common_common-lang: common-lang 3.10.0             com_twelvemonkeys_imageio_imageio-core: imageio-core 3.10.0             com_twelvemonkeys_imageio_imageio-metadata: imageio-metadata 3.10.0             com_twelvemonkeys_imageio_imageio-webp: imageio-webp 3.10.0             org_quiltmc_parsers_gson: gson 0.2.1             org_quiltmc_parsers_json: json 0.2.1         yigd: You're in Grave Danger 2.0.9             libgui: LibGui 8.1.1+1.20.1                 jankson: Jankson 6.0.0+j1.2.3                 libninepatch: LibNinePatch 1.2.0         yosbr: YOSBR 0.1.2         ysns: You Shall Not Spawn 2.0.1         yungsapi: YUNG's API 1.20-Fabric-4.0.6         yungsextras: YUNG's Extras 1.20-Fabric-4.0.3     Server Running: true     Player Count: 3 / 20; [class_3222['TreverForever'/674, l='ServerLevel[world]', x=-524.99, y=124.62, z=-103.03], class_3222['Shadowknight3420'/675, l='ServerLevel[world]', x=-180.57, y=65.48, z=216.34], class_3222['XThatSamuraiGuyX'/1223, l='ServerLevel[world]', x=-78.28, y=65.00, z=220.26]]     Data Packs: vanilla, Everycomp Generated Pack, Supplementaries Generated Pack, Suppsquared Generated Pack, fabric, file/AlphabetSoup-v2.1, file/AshiMons_ver1.3, file/BCG Cobblemon Loot, file/BCG Datapack, file/BCG x AllTheMons 1.1.0, file/Cobblemon Village, file/Genomons [1.5.1], file/HiddenMons [Cobblemon] v0.5.3, file/Kale's Collection [v1.7], file/LackingMons-ReleaseCanditate-1, file/MissingMon_v3.0 [METALIC MADNESS], file/NotSoCobblemon, file/PigeonPack, file/Project Eevolve Data (incompatible), file/SaltMons v2.0, file/Vivillon Pride Patterns v1.0, file/Wavimons1.1, file/cobble_cats, file/diance, file/CobblemonLoot-v1.1.1, file/CobblemonPokeLoot 1.5, file/Legendary Structures v1.1.1, file/Poké Costume [2.0], file/Pokémon Fishing v1.1.4 [1.20.1-v1.4+], file/MythsandLegends-Datapack-v1.0.2     Enabled Feature Flags: minecraft:vanilla     World Generation: Stable     Is Modded: Definitely; Server brand changed to 'fabric'     Type: Dedicated Server (map_server.txt)
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.