Jump to content

[solved] custom (additional) dataWatcher


SanAndreaP

Recommended Posts

I'm trying to port the ClaySoldiersMod to 1.3.1 incl. MP compatibility. For stuff which should be shown on the clay soldier (like the stick weapon) will be handled per dataWatcher. Now I ran into a problem: the dataWatcher instance from the entity supports only 32 fields and 18 fields are already occupied for vanilla stuff. But I need more than 13 fields for the little clay soldier.

So I decided to make my own dataWatcher instance, which is called "clayWatcher". The problem is that the clayWatcher fields are only updated when they spawn with this code:

 

@Override
public void writeSpawnData(ByteArrayDataOutput data) {
	ByteArrayOutputStream bos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(bos);
        try
        {
            this.clayWatcher.writeWatchableObjects(dos);
        }
        catch (IOException e)
        {
            // unpossible
        }

        data.write(bos.toByteArray());
}

@Override
public void readSpawnData(ByteArrayDataInput data) {
	byte[] ByteArr = new byte[33];		
	ByteArrayInputStream bis = new ByteArrayInputStream(ByteArr);
	DataInputStream dis = new DataInputStream(bis);
	List metadata = null;
	try
        {
            metadata = DataWatcher.readWatchableObjects(dis);
        }
        catch (IOException e)
        {
            // Nope
        }

        if (metadata != null)
        {
            this.clayWatcher.updateWatchedObjectsFromList((List)metadata);
        }
}

 

I want to make that the fields are updated while playing, like the dataWatcher, but I don't know how to do that. I probably have to send my own packets, but I don't know how because I never worked with packets before.

So if someone can show me what I have to do or where I can look, I would be very thankful.

 

 

Thanks in advance.

 

 

EDIT: I will use bitflags for my booleans now to decrease the amount of needed dataWatcher objects. Also the superclasses of my entity (EntityCreature->EntityLiving->Entity) occupy only 3 (instead of 18 which I thought) objects: index 0, 1 and 8.

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

How exactly are 18 taken up[ by vanilla items?

Also, That seems like a horrible idea to have so many objects synced between client and server.

You may need a re-design to lower that number. What exactly are you watching?

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

How exactly are 18 taken up[ by vanilla items?

Also, That seems like a horrible idea to have so many objects synced between client and server.

You may need a re-design to lower that number. What exactly are you watching?

 

1. ups, I saw a tutorial somewhere for dataWatchers which said that 18 are occupied by the superclasses (EntityCreature->EntityLiving->Entity). I've looked into these now and occupied are, as far as I saw, only 0, 1 and 8.

2. I would never use so many if I need those, but I looked in some classes which send the dataWatcher and it seems the dataWatcher will be send completely with all 32 possible fields, so it souldn't be that horrible. Please correct me if I'm wrong :P

3. Here's a list what I have to watch:

 

  • team color (value for texture picking)
  • if it has a stick and how many uses it has (one value)
  • if it has a blaze rod and how many uses it has (one value)
  • if the soldier has a crown
  • if the soldier has a cape
  • if a feather is deployed (when the soldier falls and has a feather)
  • if the soldier has gunpowder
  • if it has armor and how many "uses" it has(one value)
  • if the stick is sharpened
  • if it's glued to the ground and how long this effect works (one value)
  • if it has gravel
  • if it has snowballs
  • if it has firecharges
  • if it has a shield
  • if it has a bone and how many uses it has
  • if it has a studded shield
  • if it's camouflaged
  • if it has blaze powder

 

These are needed, because they will be rendered from the soldier, for example if it has a blaze rod, it renders a blaze rod in its hand.

I could put all these boolean stuff into one [short] field and access them with bitwise operators, but I just want to test stuff out before I improve the coding.

 

But thank you for opening me the eyes because of these occupied dataWatchers. For now I can use more.

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

You should use Bitflags for all the booleans.

 

1 Byte = 8 bits = 00000000

 

1. bit = if it has gravel

2. bit = if it has snowballs

3  bit = if it has firecharges

4. bit = if it has a shield

5. bit = if it has a bone and how many uses it has

6. bit = if it has a studded shield

7. bit = if it's camouflaged

8. bit = if it has blaze powder

 

How to set and get single bits: http://www.vipan.com/htdocs/bitwisehelp.html

(couldn't find a better tutorial and it looks harder than it really is)

 

Just use bitwiseOperaters.

 

Link to comment
Share on other sites

You should use Bitflags for all the booleans.

 

1 Byte = 8 bits = 00000000

 

1. bit = if it has gravel

2. bit = if it has snowballs

3  bit = if it has firecharges

4. bit = if it has a shield

5. bit = if it has a bone and how many uses it has

6. bit = if it has a studded shield

7. bit = if it's camouflaged

8. bit = if it has blaze powder

 

How to set and get single bits: http://www.vipan.com/htdocs/bitwisehelp.html

(couldn't find a better tutorial and it looks harder than it really is)

 

Just use bitwiseOperaters.

 

I know how to use bitwise stuff, but thanks :)

Yes, I think I'll stick with bitflags for all my booleans.

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Link to comment
Share on other sites

For example, my TF2 dispenser mod uses a byte "options"

 

1. bit = heal player

2. bit = feed player

3. bit = repair players tool

4. bit = neutralize effects

 

In my TileEntity I'm using custom packets, but in your Entity you can use datawatcher instead :)

 

 

package net.minecraft.src;

import java.util.ArrayList;

public class TileEntityTF2Dispenser extends TileEntity implements IInventory
{

private ItemStack itemStack;
public int energy;
private int counter;
private int delay;
public int maxEnergy;
private boolean spawnBeam;
private Packet230ModLoader packet;
// ModelTF2Dispenser model;

// effects, repair, feed, heal
public byte options;

public TileEntityTF2Dispenser()
{
	// model = new ModelTF2Dispenser();
	energy = 0;
	options = 7;
	counter = 0;
	spawnBeam = false;
	delay = 20;
	packet = new Packet230ModLoader();
	packet.packetType = 0;
	int[] data =
	{ xCoord, yCoord, zCoord, energy, maxEnergy, options };
	packet.dataInt = data;
	packet.modId = ModLoaderMp.getModInstance(mod_TF2Dispenser.class).getId();
}

public void updateEntity()
{

	boolean flag = isActive();
	boolean flag1 = false;
	ArrayList<EntityPlayer> players = anyPlayerInRange();
	ArrayList<EntityPlayer> beams = new ArrayList<EntityPlayer>();
	++counter;

	if (counter > delay)
	{
		if (flag)
		{
			for (EntityPlayer player : players)
			{
				spawnBeam = false;
				if (player != null && canPlayerUseDispenser(player))
				{
					if (player.isBurning())
					{
						player.extinguish();
						spawnBeam = true;
					}

					if ((options & 1) == 1)
					{
						spawnBeam = heal(player) || spawnBeam;
					}
					if ((options & 2) == 2)
					{
						spawnBeam = feed(player) || spawnBeam;
					}
					if ((options & 4) == 4)
					{
						spawnBeam = repair(player) || spawnBeam;
					}
					if ((options &  == 
					{
						spawnBeam = neutralize(player) || spawnBeam;
					}
				}
				if(spawnBeam == true){
					beams.add(player);
				}
			}
		}

		if (!isActive() && itemStack != null)
		{
			fillUp();

		}

		if (flag != isActive())
		{
			flag1 = true;
			BlockTF2Dispenser.updateBlockState(energy > 0, worldObj, xCoord, yCoord, zCoord);
		}

		if (flag1)
		{
			onInventoryChanged();
		}
		counter = 0;
	}

	if (!beams.isEmpty() && flag && counter % 4 == 0 && options > 0)
	{
		mod_TF2Dispenser.sendSpawnBeam(players, this);
	}

	// { xCoord, yCoord, zCoord, energy, maxEnergy, options };

	if (packet.dataInt[3] != energy || packet.dataInt[5] != options)
	{
		sendUpdatePacket();
	}

}

private boolean canPlayerUseDispenser(EntityPlayer player)
{
	if(mod_TF2Dispenser.teamsEnabled){

		try{
			if (!isRed() )
			{
				if(mod_TF2TeamAddon.isPlayerInTeam(player.username, false)){
					return false;
				}
			}else{
				if(mod_TF2TeamAddon.isPlayerInTeam(player.username, true)){
					return false;
				}
			}
		}catch(Exception e){

		}
	}
	return true;
}

public void sendUpdatePacket()
{
//		System.out.println("send te");
	int[] data =
	{ xCoord, yCoord, zCoord, energy, maxEnergy, options };
	packet.dataInt = data;
	mod_TF2Dispenser.sendPacketToClosestPlayers(this, packet);

}

private void fillUp()
{
	int value = 0;
	if (itemStack.itemID == Item.ingotIron.shiftedIndex)
	{
		value = 100;

	} else if (itemStack.itemID == Item.ingotGold.shiftedIndex)
	{
		value = 200;

	} else if (itemStack.itemID == Item.diamond.shiftedIndex)
	{
		value = 800;

	}
	if (value != 0)
	{
		energy = maxEnergy = value;
		--itemStack.stackSize;
		if (itemStack.stackSize <= 0)
		{
			itemStack = null;
		}
		worldObj.playSoundEffect(xCoord, yCoord, zCoord, "TF2.dispenser.fillUp", mod_TF2Dispenser.fillUpVolume, 1F);
	}

}

private boolean heal(EntityPlayer player)
{
	if (player.getHealth() < player.getMaxHealth())
	{
		player.heal(1);
		energy -= 2;
		return true;
	}
	return false;
}

private boolean feed(EntityPlayer player)
{
	if (player.getFoodStats().needFood())
	{
		player.getFoodStats().addStats(1, 0.2f);
		energy -= 2;
		return true;
	}
	return false;

}

private boolean repair(EntityPlayer player)
{
	ItemStack item = player.getCurrentEquippedItem();
	if (item != null && item.isItemDamaged())
	{
		if (item.getItemDamage() - 50 > 0)
		{
			item.damageItem(-50, player);
		} else
		{
			item.setItemDamage(0);
		}
		energy -= energy >= 15 ? 15 : energy;

		return true;
	}
	return false;

}

private boolean neutralize(EntityPlayer player)
{
	if (!player.getActivePotionEffects().isEmpty())
	{

		player.clearActivePotions();
		energy -= 10;
		return true;
	}
	return false;
}

// @Override
// public Packet getDescriptionPacket()
// {
// // System.out.println("send");
//
//
//
// return packet;
// }

public boolean isRed()
{
	return worldObj.getBlockMetadata(xCoord, yCoord, zCoord) > 7 ? true : false;
}

public void readFromNBT(NBTTagCompound par1NBTTagCompound)
{
	super.readFromNBT(par1NBTTagCompound);

	NBTTagCompound nbttagcompound = par1NBTTagCompound.getCompoundTag("Item");
	itemStack = ItemStack.loadItemStackFromNBT(nbttagcompound);

	energy = par1NBTTagCompound.getInteger("Energy");
	maxEnergy = par1NBTTagCompound.getInteger("MaxEnergy");
	options = par1NBTTagCompound.getByte("Options");

}

public void writeToNBT(NBTTagCompound par1NBTTagCompound)
{
	super.writeToNBT(par1NBTTagCompound);
	par1NBTTagCompound.setInteger("Energy", energy);
	par1NBTTagCompound.setInteger("MaxEnergy", maxEnergy);
	par1NBTTagCompound.setByte("Options", options);

	if (itemStack != null)
	{
		par1NBTTagCompound.setCompoundTag("Item", itemStack.writeToNBT(new NBTTagCompound()));

	}
}

public ArrayList<EntityPlayer> anyPlayerInRange()
{
	ArrayList<EntityPlayer> players = new ArrayList<EntityPlayer>();

	for (int i = 0; i < worldObj.playerEntities.size(); i++)
	{
		EntityPlayer entityplayer1 = (EntityPlayer) worldObj.playerEntities.get(i);
		double d1 = entityplayer1.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5);

		if ((5 < 0.0D || d1 < 15))
		{
			players.add(entityplayer1);
		}
	}

	return (ArrayList<EntityPlayer>) players.clone();
}

public int getSizeInventory()
{
	return 1;
}

public ItemStack getStackInSlot(int i)
{
	return itemStack;
}

public ItemStack decrStackSize(int i, int j)
{
	if (itemStack != null)
	{
		if (itemStack.stackSize <= j)
		{
			ItemStack itemstack = itemStack;
			itemStack = null;
			return itemstack;
		}

		ItemStack itemstack1 = itemStack.splitStack(j);

		if (itemStack.stackSize == 0)
		{
			itemStack = null;
		}

		return itemstack1;
	} else
	{
		return null;
	}
}

public void setInventorySlotContents(int i, ItemStack par2ItemStack)
{
	itemStack = par2ItemStack;

	if (par2ItemStack != null && par2ItemStack.stackSize > getInventoryStackLimit())
	{
		par2ItemStack.stackSize = getInventoryStackLimit();
	}

}

public String getInvName()
{
	return "TF2 Dispenser";
}

public int getInventoryStackLimit()
{

	return 64;
}

public int getMaxEnergie()
{
	return maxEnergy;
}

@Override
public ItemStack getStackInSlotOnClosing(int par1)
{
	if (itemStack != null)
	{
		ItemStack itemstack = itemStack;
		itemStack = null;
		return itemstack;
	} else
	{
		return null;
	}
}

@Override
public boolean isUseableByPlayer(EntityPlayer entityplayer)
{
	if (worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) != this)
	{
		return false;
	}
	return entityplayer.getDistanceSq((double) xCoord + 0.5D, (double) yCoord + 0.5D, (double) zCoord + 0.5D) <= 64D;
}

public boolean isActive()
{
	return energy > 0;
}

@Override
public void openChest()
{
	// TODO Auto-generated method stub

}

@Override
public void closeChest()
{
	// TODO Auto-generated method stub

}

}

 

Link to comment
Share on other sites

For example, my TF2 dispenser mod uses a byte "options"

 

1. bit = heal player

2. bit = feed player

3. bit = repair players tool

4. bit = neutralize effects

 

In my TileEntity I'm using custom packets, but in your Entity you can use datawatcher instead :)

 

 

package net.minecraft.src;

import java.util.ArrayList;

public class TileEntityTF2Dispenser extends TileEntity implements IInventory
{

private ItemStack itemStack;
public int energy;
private int counter;
private int delay;
public int maxEnergy;
private boolean spawnBeam;
private Packet230ModLoader packet;
// ModelTF2Dispenser model;

// effects, repair, feed, heal
public byte options;

public TileEntityTF2Dispenser()
{
	// model = new ModelTF2Dispenser();
	energy = 0;
	options = 7;
	counter = 0;
	spawnBeam = false;
	delay = 20;
	packet = new Packet230ModLoader();
	packet.packetType = 0;
	int[] data =
	{ xCoord, yCoord, zCoord, energy, maxEnergy, options };
	packet.dataInt = data;
	packet.modId = ModLoaderMp.getModInstance(mod_TF2Dispenser.class).getId();
}

public void updateEntity()
{

	boolean flag = isActive();
	boolean flag1 = false;
	ArrayList<EntityPlayer> players = anyPlayerInRange();
	ArrayList<EntityPlayer> beams = new ArrayList<EntityPlayer>();
	++counter;

	if (counter > delay)
	{
		if (flag)
		{
			for (EntityPlayer player : players)
			{
				spawnBeam = false;
				if (player != null && canPlayerUseDispenser(player))
				{
					if (player.isBurning())
					{
						player.extinguish();
						spawnBeam = true;
					}

					if ((options & 1) == 1)
					{
						spawnBeam = heal(player) || spawnBeam;
					}
					if ((options & 2) == 2)
					{
						spawnBeam = feed(player) || spawnBeam;
					}
					if ((options & 4) == 4)
					{
						spawnBeam = repair(player) || spawnBeam;
					}
					if ((options &  == 
					{
						spawnBeam = neutralize(player) || spawnBeam;
					}
				}
				if(spawnBeam == true){
					beams.add(player);
				}
			}
		}

		if (!isActive() && itemStack != null)
		{
			fillUp();

		}

		if (flag != isActive())
		{
			flag1 = true;
			BlockTF2Dispenser.updateBlockState(energy > 0, worldObj, xCoord, yCoord, zCoord);
		}

		if (flag1)
		{
			onInventoryChanged();
		}
		counter = 0;
	}

	if (!beams.isEmpty() && flag && counter % 4 == 0 && options > 0)
	{
		mod_TF2Dispenser.sendSpawnBeam(players, this);
	}

	// { xCoord, yCoord, zCoord, energy, maxEnergy, options };

	if (packet.dataInt[3] != energy || packet.dataInt[5] != options)
	{
		sendUpdatePacket();
	}

}

private boolean canPlayerUseDispenser(EntityPlayer player)
{
	if(mod_TF2Dispenser.teamsEnabled){

		try{
			if (!isRed() )
			{
				if(mod_TF2TeamAddon.isPlayerInTeam(player.username, false)){
					return false;
				}
			}else{
				if(mod_TF2TeamAddon.isPlayerInTeam(player.username, true)){
					return false;
				}
			}
		}catch(Exception e){

		}
	}
	return true;
}

public void sendUpdatePacket()
{
//		System.out.println("send te");
	int[] data =
	{ xCoord, yCoord, zCoord, energy, maxEnergy, options };
	packet.dataInt = data;
	mod_TF2Dispenser.sendPacketToClosestPlayers(this, packet);

}

private void fillUp()
{
	int value = 0;
	if (itemStack.itemID == Item.ingotIron.shiftedIndex)
	{
		value = 100;

	} else if (itemStack.itemID == Item.ingotGold.shiftedIndex)
	{
		value = 200;

	} else if (itemStack.itemID == Item.diamond.shiftedIndex)
	{
		value = 800;

	}
	if (value != 0)
	{
		energy = maxEnergy = value;
		--itemStack.stackSize;
		if (itemStack.stackSize <= 0)
		{
			itemStack = null;
		}
		worldObj.playSoundEffect(xCoord, yCoord, zCoord, "TF2.dispenser.fillUp", mod_TF2Dispenser.fillUpVolume, 1F);
	}

}

private boolean heal(EntityPlayer player)
{
	if (player.getHealth() < player.getMaxHealth())
	{
		player.heal(1);
		energy -= 2;
		return true;
	}
	return false;
}

private boolean feed(EntityPlayer player)
{
	if (player.getFoodStats().needFood())
	{
		player.getFoodStats().addStats(1, 0.2f);
		energy -= 2;
		return true;
	}
	return false;

}

private boolean repair(EntityPlayer player)
{
	ItemStack item = player.getCurrentEquippedItem();
	if (item != null && item.isItemDamaged())
	{
		if (item.getItemDamage() - 50 > 0)
		{
			item.damageItem(-50, player);
		} else
		{
			item.setItemDamage(0);
		}
		energy -= energy >= 15 ? 15 : energy;

		return true;
	}
	return false;

}

private boolean neutralize(EntityPlayer player)
{
	if (!player.getActivePotionEffects().isEmpty())
	{

		player.clearActivePotions();
		energy -= 10;
		return true;
	}
	return false;
}

// @Override
// public Packet getDescriptionPacket()
// {
// // System.out.println("send");
//
//
//
// return packet;
// }

public boolean isRed()
{
	return worldObj.getBlockMetadata(xCoord, yCoord, zCoord) > 7 ? true : false;
}

public void readFromNBT(NBTTagCompound par1NBTTagCompound)
{
	super.readFromNBT(par1NBTTagCompound);

	NBTTagCompound nbttagcompound = par1NBTTagCompound.getCompoundTag("Item");
	itemStack = ItemStack.loadItemStackFromNBT(nbttagcompound);

	energy = par1NBTTagCompound.getInteger("Energy");
	maxEnergy = par1NBTTagCompound.getInteger("MaxEnergy");
	options = par1NBTTagCompound.getByte("Options");

}

public void writeToNBT(NBTTagCompound par1NBTTagCompound)
{
	super.writeToNBT(par1NBTTagCompound);
	par1NBTTagCompound.setInteger("Energy", energy);
	par1NBTTagCompound.setInteger("MaxEnergy", maxEnergy);
	par1NBTTagCompound.setByte("Options", options);

	if (itemStack != null)
	{
		par1NBTTagCompound.setCompoundTag("Item", itemStack.writeToNBT(new NBTTagCompound()));

	}
}

public ArrayList<EntityPlayer> anyPlayerInRange()
{
	ArrayList<EntityPlayer> players = new ArrayList<EntityPlayer>();

	for (int i = 0; i < worldObj.playerEntities.size(); i++)
	{
		EntityPlayer entityplayer1 = (EntityPlayer) worldObj.playerEntities.get(i);
		double d1 = entityplayer1.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5);

		if ((5 < 0.0D || d1 < 15))
		{
			players.add(entityplayer1);
		}
	}

	return (ArrayList<EntityPlayer>) players.clone();
}

public int getSizeInventory()
{
	return 1;
}

public ItemStack getStackInSlot(int i)
{
	return itemStack;
}

public ItemStack decrStackSize(int i, int j)
{
	if (itemStack != null)
	{
		if (itemStack.stackSize <= j)
		{
			ItemStack itemstack = itemStack;
			itemStack = null;
			return itemstack;
		}

		ItemStack itemstack1 = itemStack.splitStack(j);

		if (itemStack.stackSize == 0)
		{
			itemStack = null;
		}

		return itemstack1;
	} else
	{
		return null;
	}
}

public void setInventorySlotContents(int i, ItemStack par2ItemStack)
{
	itemStack = par2ItemStack;

	if (par2ItemStack != null && par2ItemStack.stackSize > getInventoryStackLimit())
	{
		par2ItemStack.stackSize = getInventoryStackLimit();
	}

}

public String getInvName()
{
	return "TF2 Dispenser";
}

public int getInventoryStackLimit()
{

	return 64;
}

public int getMaxEnergie()
{
	return maxEnergy;
}

@Override
public ItemStack getStackInSlotOnClosing(int par1)
{
	if (itemStack != null)
	{
		ItemStack itemstack = itemStack;
		itemStack = null;
		return itemstack;
	} else
	{
		return null;
	}
}

@Override
public boolean isUseableByPlayer(EntityPlayer entityplayer)
{
	if (worldObj.getBlockTileEntity(xCoord, yCoord, zCoord) != this)
	{
		return false;
	}
	return entityplayer.getDistanceSq((double) xCoord + 0.5D, (double) yCoord + 0.5D, (double) zCoord + 0.5D) <= 64D;
}

public boolean isActive()
{
	return energy > 0;
}

@Override
public void openChest()
{
	// TODO Auto-generated method stub

}

@Override
public void closeChest()
{
	// TODO Auto-generated method stub

}

}

 

 

Well, I think I'll stick with a short datatype, because I have some more booleans to handle than 8 ^^

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

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

    • The game crashed whilst rendering overlay Error: java.lang.RuntimeException: null New 1.21.1 modpack ---- Minecraft Crash Report ---- // I bet Cylons wouldn't have this problem. Time: 2024-10-08 17:23:39 Description: Rendering overlay java.lang.RuntimeException: null     at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.runTasks(DeferredWorkQueue.java:58) ~[fmlcore-1.21.1-52.0.17.jar:1.0]     at TRANSFORMER/[email protected]/net.minecraftforge.fml.core.ParallelTransition.lambda$finalActivityGenerator$2(ParallelTransition.java:35) ~[forge-1.21.1-52.0.17-universal.jar:?]     at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?]     at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]     at TRANSFORMER/[email protected]/net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:69) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:162) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:136) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:121) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1140) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:795) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:228) ~[forge-1.21.1-52.0.17-client.jar:?]     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]     at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]     at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:85) ~[fmlloader-1.21.1-52.0.17.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:69) ~[fmlloader-1.21.1-52.0.17.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:77) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:97) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:116) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) [modlauncher-10.2.2.jar!/:?]     at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188) [bootstrap-2.1.3.jar!/:?]     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]     at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]     at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133) [bootstrap-2.1.3.jar:2.1.3]     at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53) [bootstrap-2.1.3.jar:2.1.3]     at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19) [bootstrap-2.1.3.jar:2.1.3]     Suppressed: java.lang.IllegalStateException: Can not register to a locked registry. Modder should use Forge Register methods.         at TRANSFORMER/[email protected]/net.minecraftforge.registries.NamespacedWrapper.register(NamespacedWrapper.java:73) ~[forge-1.21.1-52.0.17-universal.jar!/:?]         at TRANSFORMER/[email protected]/net.minecraft.core.Registry.register(Registry.java:130) ~[forge-1.21.1-52.0.17-client.jar!/:?]         at TRANSFORMER/[email protected]/net.minecraft.core.Registry.register(Registry.java:126) ~[forge-1.21.1-52.0.17-client.jar!/:?]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.forge.component.ForgeBalmComponents.lambda$registerComponent$0(ForgeBalmComponents.java:37) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.api.DeferredObject.resolve(DeferredObject.java:37) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.forge.component.ForgeBalmComponents$Registrations.lambda$commonSetup$0(ForgeBalmComponents.java:27) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.lambda$makeRunnable$1(DeferredWorkQueue.java:83) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.makeRunnable(DeferredWorkQueue.java:78) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.runTasks(DeferredWorkQueue.java:61) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at TRANSFORMER/[email protected]/net.minecraftforge.fml.core.ParallelTransition.lambda$finalActivityGenerator$2(ParallelTransition.java:35) ~[forge-1.21.1-52.0.17-universal.jar:?]         at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?]         at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]         at TRANSFORMER/[email protected]/net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:69) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:162) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:136) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:121) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1140) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:795) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:228) ~[forge-1.21.1-52.0.17-client.jar:?]         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]         at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]         at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:85) ~[fmlloader-1.21.1-52.0.17.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:69) ~[fmlloader-1.21.1-52.0.17.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:77) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:97) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:116) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) [modlauncher-10.2.2.jar!/:?]         at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188) [bootstrap-2.1.3.jar!/:?]         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]         at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]         at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133) [bootstrap-2.1.3.jar:2.1.3]         at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53) [bootstrap-2.1.3.jar:2.1.3]         at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19) [bootstrap-2.1.3.jar:2.1.3]     Suppressed: java.lang.IllegalStateException: Can not register to a locked registry. Modder should use Forge Register methods.         at TRANSFORMER/[email protected]/net.minecraftforge.registries.NamespacedWrapper.register(NamespacedWrapper.java:73) ~[forge-1.21.1-52.0.17-universal.jar!/:?]         at TRANSFORMER/[email protected]/net.minecraft.core.Registry.register(Registry.java:130) ~[forge-1.21.1-52.0.17-client.jar!/:?]         at TRANSFORMER/[email protected]/net.minecraft.core.Registry.register(Registry.java:126) ~[forge-1.21.1-52.0.17-client.jar!/:?]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.forge.component.ForgeBalmComponents.lambda$registerComponent$0(ForgeBalmComponents.java:37) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.api.DeferredObject.resolve(DeferredObject.java:37) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) ~[?:?]         at TRANSFORMER/[email protected]/net.blay09.mods.balm.forge.component.ForgeBalmComponents$Registrations.lambda$commonSetup$0(ForgeBalmComponents.java:27) ~[balm-forge-1.21.1-21.0.19-all.jar!/:21.0.19]         at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804) ~[?:?]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.lambda$makeRunnable$1(DeferredWorkQueue.java:83) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.makeRunnable(DeferredWorkQueue.java:78) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.runTasks(DeferredWorkQueue.java:61) ~[fmlcore-1.21.1-52.0.17.jar:1.0]         at TRANSFORMER/[email protected]/net.minecraftforge.fml.core.ParallelTransition.lambda$finalActivityGenerator$2(ParallelTransition.java:35) ~[forge-1.21.1-52.0.17-universal.jar:?]         at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?]         at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]         at TRANSFORMER/[email protected]/net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:69) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:162) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:136) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:121) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1140) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:795) ~[forge-1.21.1-52.0.17-client.jar:?]         at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:228) ~[forge-1.21.1-52.0.17-client.jar:?]         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]         at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]         at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:85) ~[fmlloader-1.21.1-52.0.17.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:69) ~[fmlloader-1.21.1-52.0.17.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:77) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:97) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:116) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75) [modlauncher-10.2.2.jar!/:?]         at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) [modlauncher-10.2.2.jar!/:?]         at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188) [bootstrap-2.1.3.jar!/:?]         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]         at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]         at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133) [bootstrap-2.1.3.jar:2.1.3]         at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53) [bootstrap-2.1.3.jar:2.1.3]         at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19) [bootstrap-2.1.3.jar:2.1.3] Transformer Audit:   java.util.ArrayList     REASON: mixin   net.blay09.mods.balm.api.DeferredObject     REASON: classloading   net.blay09.mods.balm.forge.component.ForgeBalmComponents     REASON: classloading   net.blay09.mods.balm.forge.component.ForgeBalmComponents$Registrations     REASON: classloading     PLUGIN: eventbus:AFTER   net.minecraft.client.Minecraft     REASON: mixin     PLUGIN: accesstransformer:BEFORE     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraftclient     TRANSFORMER: fml:xaerominimap:xaero_minecraftclient     PLUGIN: runtimedistcleaner:AFTER     REASON: classloading     PLUGIN: accesstransformer:BEFORE     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraftclient     TRANSFORMER: fml:xaerominimap:xaero_minecraftclient     PLUGIN: mixin:APP:sound_physics_remastered.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:bookshelf.mixins.json:access.client.AccessorMinecraft     PLUGIN: mixin:APP:balm.forge.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:MixinResourceReloadEnd     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:MixinResourceReloadStart     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:accessor.MinecraftClientAccessor     PLUGIN: mixin:APP:entity_texture_features-common.mixins.json:reloading.MixinMinecraftClient     PLUGIN: mixin:APP:entity_texture_features-common.mixins.json:reloading.MixinResourceReload     PLUGIN: mixin:APP:spyglass_improvements.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:monolib.forge.mixins.json:MixinMinecraft     PLUGIN: mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin     PLUGIN: mixin:APP:configuration.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:iceberg.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:xaeroplus.mixins.json:mc.MixinMinecraftClient     PLUGIN: mixin:AFTER     PLUGIN: runtimedistcleaner:AFTER   net.minecraft.client.main.Main     REASON: classloading     PLUGIN: runtimedistcleaner:AFTER   net.minecraft.core.Registry     REASON: mixin     REASON: classloading   net.minecraft.server.packs.resources.SimpleReloadInstance     REASON: classloading   net.minecraft.util.thread.BlockableEventLoop     REASON: computing_frames     PLUGIN: accesstransformer:BEFORE     REASON: mixin     PLUGIN: accesstransformer:BEFORE     REASON: classloading     PLUGIN: accesstransformer:BEFORE   net.minecraft.util.thread.ReentrantBlockableEventLoop     REASON: computing_frames     REASON: mixin     REASON: classloading   net.minecraftforge.fml.core.ParallelTransition     REASON: classloading   net.minecraftforge.registries.NamespacedWrapper     REASON: classloading A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Suspected Mods: NONE Stacktrace:     at LAYER PLUGIN/[email protected]/net.minecraftforge.fml.DeferredWorkQueue.runTasks(DeferredWorkQueue.java:58) ~[fmlcore-1.21.1-52.0.17.jar!/:1.0]     at TRANSFORMER/[email protected]/net.minecraftforge.fml.core.ParallelTransition.lambda$finalActivityGenerator$2(ParallelTransition.java:35) ~[forge-1.21.1-52.0.17-universal.jar!/:?]     at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?]     at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]     at TRANSFORMER/[email protected]/net.minecraft.server.packs.resources.SimpleReloadInstance.lambda$new$3(SimpleReloadInstance.java:69) ~[forge-1.21.1-52.0.17-client.jar!/:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:162) ~[forge-1.21.1-52.0.17-client.jar!/:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[forge-1.21.1-52.0.17-client.jar!/:?]     at TRANSFORMER/[email protected]/net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:136) ~[forge-1.21.1-52.0.17-client.jar!/:?] Transformer Audit:   net.minecraft.server.packs.resources.SimpleReloadInstance     REASON: classloading   net.minecraft.util.thread.BlockableEventLoop     REASON: computing_frames     PLUGIN: accesstransformer:BEFORE     REASON: mixin     PLUGIN: accesstransformer:BEFORE     REASON: classloading     PLUGIN: accesstransformer:BEFORE   net.minecraft.util.thread.ReentrantBlockableEventLoop     REASON: computing_frames     REASON: mixin     REASON: classloading   net.minecraftforge.fml.core.ParallelTransition     REASON: classloading -- Overlay render details -- Details:     Overlay name: net.minecraftforge.client.loading.ForgeLoadingOverlay Stacktrace:     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.GameRenderer.render(GameRenderer.java:885) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.runTick(Minecraft.java:1180) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:795) ~[forge-1.21.1-52.0.17-client.jar:?]     at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:228) ~[forge-1.21.1-52.0.17-client.jar:?]     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]     at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]     at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:85) ~[fmlloader-1.21.1-52.0.17.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/net.minecraftforge.fml.loading.targets.CommonLaunchHandler.lambda$makeService$0(CommonLaunchHandler.java:69) ~[fmlloader-1.21.1-52.0.17.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:77) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:97) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:116) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:75) [modlauncher-10.2.2.jar!/:?]     at SECURE-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapEntry.main(BootstrapEntry.java:17) [modlauncher-10.2.2.jar!/:?]     at [email protected]/net.minecraftforge.bootstrap.Bootstrap.moduleMain(Bootstrap.java:188) [bootstrap-2.1.3.jar!/:?]     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]     at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]     at net.minecraftforge.bootstrap.Bootstrap.bootstrapMain(Bootstrap.java:133) [bootstrap-2.1.3.jar:2.1.3]     at net.minecraftforge.bootstrap.Bootstrap.start(Bootstrap.java:53) [bootstrap-2.1.3.jar:2.1.3]     at net.minecraftforge.bootstrap.ForgeBootstrap.main(ForgeBootstrap.java:19) [bootstrap-2.1.3.jar:2.1.3] Transformer Audit:   net.minecraft.client.Minecraft     REASON: mixin     PLUGIN: accesstransformer:BEFORE     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraftclient     TRANSFORMER: fml:xaerominimap:xaero_minecraftclient     PLUGIN: runtimedistcleaner:AFTER     REASON: classloading     PLUGIN: accesstransformer:BEFORE     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraft_runtick_render_call     TRANSFORMER: fml:xaeroworldmap:xaero_wm_minecraftclient     TRANSFORMER: fml:xaerominimap:xaero_minecraftclient     PLUGIN: mixin:APP:sound_physics_remastered.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:bookshelf.mixins.json:access.client.AccessorMinecraft     PLUGIN: mixin:APP:balm.forge.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:MixinResourceReloadEnd     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:MixinResourceReloadStart     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:accessor.MinecraftClientAccessor     PLUGIN: mixin:APP:entity_texture_features-common.mixins.json:reloading.MixinMinecraftClient     PLUGIN: mixin:APP:entity_texture_features-common.mixins.json:reloading.MixinResourceReload     PLUGIN: mixin:APP:spyglass_improvements.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:monolib.forge.mixins.json:MixinMinecraft     PLUGIN: mixin:APP:fallingleaves.mixins.json:MinecraftClientMixin     PLUGIN: mixin:APP:configuration.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:iceberg.mixins.json:MinecraftMixin     PLUGIN: mixin:APP:xaeroplus.mixins.json:mc.MixinMinecraftClient     PLUGIN: mixin:AFTER     PLUGIN: runtimedistcleaner:AFTER   net.minecraft.client.main.Main     REASON: classloading     PLUGIN: runtimedistcleaner:AFTER   net.minecraft.client.renderer.GameRenderer     REASON: mixin     PLUGIN: accesstransformer:BEFORE     PLUGIN: runtimedistcleaner:AFTER     REASON: classloading     PLUGIN: accesstransformer:BEFORE     PLUGIN: mixin:APP:entity_model_features-common.mixins.json:MixinGameRenderer     PLUGIN: mixin:APP:tombstone.mixins.json:GameRendererMixin     PLUGIN: mixin:AFTER     PLUGIN: runtimedistcleaner:AFTER -- Uptime -- Details:     JVM uptime: 21.546s     Wall uptime: 6.750s     High-res time: 18.114s     Client ticks: 38 ticks / 1.900s -- Last reload -- Details:     Reload number: 1     Reload reason: initial     Finished: No     Packs: vanilla, mod_resources -- System Details -- Details:     Minecraft Version: 1.21.1     Minecraft Version ID: 1.21.1     Operating System: Windows 11 (amd64) version 10.0     Java Version: 21.0.3, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 509429240 bytes (485 MiB) / 1300234240 bytes (1240 MiB) up to 10569646080 bytes (10080 MiB)     CPUs: 12     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 5 3600 6-Core Processor                   Identifier: AuthenticAMD Family 23 Model 113 Stepping 0     Microarchitecture: Zen 2     Frequency (GHz): 3.59     Number of physical packages: 1     Number of physical CPUs: 6     Number of logical CPUs: 12     Graphics card #0 name: NVIDIA GeForce RTX 3060     Graphics card #0 vendor: NVIDIA     Graphics card #0 VRAM (MiB): 12288.00     Graphics card #0 deviceId: VideoController1     Graphics card #0 versionInfo: 31.0.15.5123     Memory slot #0 capacity (MiB): 8192.00     Memory slot #0 clockSpeed (GHz): 3.20     Memory slot #0 type: DDR4     Memory slot #1 capacity (MiB): 8192.00     Memory slot #1 clockSpeed (GHz): 3.20     Memory slot #1 type: DDR4     Virtual memory max (MiB): 32576.43     Virtual memory used (MiB): 15733.25     Swap memory total (MiB): 16288.21     Swap memory used (MiB): 4549.58     Space in storage for jna.tmpdir (MiB): available: 15838.38, total: 953079.06     Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): available: 15838.38, total: 953079.06     Space in storage for io.netty.native.workdir (MiB): available: 15838.38, total: 953079.06     Space in storage for java.io.tmpdir (MiB): available: 15838.38, total: 953079.06     Space in storage for workdir (MiB): available: 15838.38, total: 953079.06     JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx10080m -Xms256m     Launched Version: forge-52.0.17     Launcher name: minecraft-launcher     Backend library: LWJGL version 3.3.3+5     Backend API: NVIDIA GeForce RTX 3060/PCIe/SSE2 GL version 4.6.0 NVIDIA 551.23, NVIDIA Corporation     Window size: 1024x768     GFLW Platform: win32     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Is Modded: Definitely; Client brand changed to 'forge'     Universe: 400921fb54442d18     Type: Client (map_client.txt)     Graphics mode: fancy     Render Distance: 12/12 chunks     Resource Packs: vanilla, mod_resources     Current Language: en_us     Locale: en_US     System encoding: Cp1252     File encoding: UTF-8     CPU: 12x AMD Ryzen 5 3600 6-Core Processor      ModLauncher: 10.2.2     ModLauncher launch target: forge_client     ModLauncher naming: mcp     ModLauncher services:          / slf4jfixer PLUGINSERVICE          / runtimedistcleaner PLUGINSERVICE          / runtime_enum_extender PLUGINSERVICE          / object_holder_definalize PLUGINSERVICE          / capability_token_subclass PLUGINSERVICE          / accesstransformer PLUGINSERVICE          / eventbus PLUGINSERVICE          / mixin PLUGINSERVICE          / fml TRANSFORMATIONSERVICE          / mixin TRANSFORMATIONSERVICE      FML Language Providers:          [email protected]         lowcodefml@52         [email protected]     Mod List:          kuma-api-forge-21.0.5-SNAPSHOT.jar                |KumaAPI                       |kuma_api                      |21.0.5-SNAPSHOT     |SIDED_SETU|Manifest: NOSIGNATURE         supermartijn642configlib-1.1.8-forge-mc1.21.jar   |SuperMartijn642's Config Libra|supermartijn642configlib      |1.1.8               |SIDED_SETU|Manifest: NOSIGNATURE         dynamiclights-1.21.1.1.jar                        |Dynamic Lights                |dynamiclights                 |1.21.1.1            |SIDED_SETU|Manifest: NOSIGNATURE         sound-physics-remastered-forge-1.21.1-1.4.6.jar   |Sound Physics Remastered      |sound_physics_remastered      |1.21.1-1.4.6        |SIDED_SETU|Manifest: NOSIGNATURE         ForgeEndertech-1.21-12.0.0.1-build.0100.jar       |ForgeEndertech                |forgeendertech                |12.0.0.1            |SIDED_SETU|Manifest: NOSIGNATURE         cookingforblockheads-forge-1.21.1-21.1.2.jar      |Cooking for Blockheads        |cookingforblockheads          |21.1.2              |SIDED_SETU|Manifest: NOSIGNATURE         Controlling-forge-1.21.1-19.0.3.jar               |Controlling                   |controlling                   |19.0.3              |SIDED_SETU|Manifest: NOSIGNATURE         mixinextras-forge-0.4.0.jar                       |MixinExtras                   |mixinextras                   |0.4.0               |SIDED_SETU|Manifest: NOSIGNATURE         softerhaybales-1.21.1-3.3.jar                     |Softer Hay Bales              |softerhaybales                |3.3                 |SIDED_SETU|Manifest: NOSIGNATURE         Bookshelf-forge-1.21.1-21.1.7.jar                 |Bookshelf                     |bookshelf                     |21.1.7              |SIDED_SETU|Manifest: NOSIGNATURE         fullturtlearmor-1.10-forge-mc1.21.jar             |Full Turtle Armor             |fullturtlearmor               |1.10                |SIDED_SETU|Manifest: NOSIGNATURE         keepmysoiltilled-1.21.1-2.4.jar                   |Keep My Soil Tilled           |keepmysoiltilled              |2.4                 |SIDED_SETU|Manifest: NOSIGNATURE         balm-forge-1.21.1-21.0.19-all.jar                 |Balm                          |balm                          |21.0.19             |SIDED_SETU|Manifest: NOSIGNATURE         PrickleMC-forge-1.21.1-21.1.4.jar                 |PrickleMC                     |prickle                       |21.1.4              |SIDED_SETU|Manifest: NOSIGNATURE         darktimer-forge-1.21-1.2.2.jar                    |DarkTimer                     |darktimer                     |1.2.2               |SIDED_SETU|Manifest: NOSIGNATURE         carryon-forge-1.21.1-2.2.2.11.jar                 |Carry On                      |carryon                       |2.2.2               |SIDED_SETU|Manifest: NOSIGNATURE         despawningeggshatch-1.21.1-4.4.jar                |Despawning Eggs Hatch         |despawningeggshatch           |4.4                 |SIDED_SETU|Manifest: NOSIGNATURE         darksmithing-forge-1.21-1.1.8.jar                 |DarkSmithing                  |darksmithing                  |1.1.8               |SIDED_SETU|Manifest: NOSIGNATURE         darkglint-forge-1.21-1.1.5.jar                    |DarkGlint                     |darkglint                     |1.1.5               |SIDED_SETU|Manifest: NOSIGNATURE         entity_model_features_forge_1.21-2.2.6.jar        |Entity Model Features         |entity_model_features         |2.2.6               |SIDED_SETU|Manifest: NOSIGNATURE         entity_texture_features_forge_1.21-6.2.5.jar      |Entity Texture Features       |entity_texture_features       |6.2.5               |SIDED_SETU|Manifest: NOSIGNATURE         Explorify v1.6.2 f10-48.jar                       |Explorify                     |explorify                     |1.6.2               |SIDED_SETU|Manifest: NOSIGNATURE         Beekeeper-1.21-1.0.5.jar                          |Beekeeper                     |bk                            |1.0.5               |SIDED_SETU|Manifest: NOSIGNATURE         RapidLeafDecay-1.21.1-2.0.2.jar                   |Rapid Leaf Decay              |rapid_leaf_decay              |2.0.2               |SIDED_SETU|Manifest: NOSIGNATURE         Chunky-1.4.16.jar                                 |Chunky                        |chunky                        |1.4.16              |SIDED_SETU|Manifest: NOSIGNATURE         supermartijn642corelib-1.1.17e-forge-mc1.21.jar   |SuperMartijn642's Core Lib    |supermartijn642corelib        |1.1.17+e            |SIDED_SETU|Manifest: NOSIGNATURE         corail_woodcutter-forge-1.21.1-3.4.3.jar          |Corail Woodcutter             |corail_woodcutter             |3.4.3               |SIDED_SETU|Manifest: NOSIGNATURE         collective-1.21.1-7.84.jar                        |Collective                    |collective                    |7.84                |SIDED_SETU|Manifest: NOSIGNATURE         darkmining-forge-1.21-1.2.4hf2.jar                |DarkMining                    |darkmining                    |1.2.4hf2            |SIDED_SETU|Manifest: NOSIGNATURE         advancednetherite-forge-2.1.6-1.21.1.jar          |Advanced Netherite            |advancednetherite             |2.1.6               |SIDED_SETU|Manifest: NOSIGNATURE         spyglass_improvements-1.5.5+mc1.21+forge.jar      |Spyglass Improvements         |spyglass_improvements         |1.5.5+mc1.21+forge  |SIDED_SETU|Manifest: NOSIGNATURE         Searchables-forge-1.21.1-1.0.1.jar                |Searchables                   |searchables                   |1.0.1               |SIDED_SETU|Manifest: NOSIGNATURE         dungeons-and-taverns-v4.4.4 [Forge].jar           |Dungeons and Taverns          |mr_dungeons_andtaverns        |1-v4.4.4            |SIDED_SETU|Manifest: NOSIGNATURE         tombstone-1.21.1-9.1.1.jar                        |Corail Tombstone              |tombstone                     |9.1.1               |SIDED_SETU|Manifest: NOSIGNATURE         wormhole-1.1.16-forge-mc1.21.jar                  |Wormhole (Portals)            |wormhole                      |1.1.16              |SIDED_SETU|Manifest: NOSIGNATURE         darksmelting-forge-1.21-1.1.6.jar                 |DarkSmelting                  |darksmelting                  |1.1.6               |SIDED_SETU|Manifest: NOSIGNATURE         refurbished_furniture-forge-1.21.1-1.0.6.jar      |MrCrayfish's Furniture Mod: Re|refurbished_furniture         |1.0.6               |SIDED_SETU|Manifest: 0D:78:5F:44:C0:47:0C:8C:E2:63:A3:04:43:D4:12:7D:B0:7C:35:37:DC:40:B1:C1:98:EC:51:EB:3B:3C:45:99         monolib-forge-1.21.1-1.3.0.jar                    |MonoLib                       |monolib                       |1.3.0               |SIDED_SETU|Manifest: NOSIGNATURE         disenchanting_table-forge-1.21-3.0.1.jar          |Dis-Enchanting Table          |disenchanting_table           |3.0.1               |SIDED_SETU|Manifest: NOSIGNATURE         golden_foods-forge-1.21-2.3.0.jar                 |Golden Foods                  |golden_foods                  |2.3.0               |SIDED_SETU|Manifest: NOSIGNATURE         AdChimneys-1.21-11.0.3.0-build.0260.jar           |Advanced Chimneys             |adchimneys                    |11.0.3.0            |SIDED_SETU|Manifest: NOSIGNATURE         framework-forge-1.21.1-0.9.2.jar                  |Framework                     |framework                     |0.9.2               |SIDED_SETU|Manifest: 0D:78:5F:44:C0:47:0C:8C:E2:63:A3:04:43:D4:12:7D:B0:7C:35:37:DC:40:B1:C1:98:EC:51:EB:3B:3C:45:99         smallships-forge-1.21.1-2.0.0-b1.5.jar            |Small Ships                   |smallships                    |2.0.0-b1.5          |SIDED_SETU|Manifest: NOSIGNATURE         PortableCraftingTable-forge-1.21.1-3.2.6.jar      |Portable Crafting Table       |portablecraftingtable         |3.2.6               |SIDED_SETU|Manifest: NOSIGNATURE         collectorsalbum-forge-1.21.1-2.1.3.jar            |Collector's Album             |collectorsalbum               |2.1.3               |SIDED_SETU|Manifest: NOSIGNATURE         randombonemealflowers-1.21.1-4.6.jar              |Random Bone Meal Flowers      |randombonemealflowers         |4.6                 |SIDED_SETU|Manifest: NOSIGNATURE         corail_pillar-6.4.0.jar                           |Corail Pillar                 |corail_pillar                 |6.4.0               |SIDED_SETU|Manifest: NOSIGNATURE         BetterAdvancements-Forge-1.21.1-0.4.2.19.jar      |Better Advancements           |betteradvancements            |0.4.2.19            |SIDED_SETU|Manifest: NOSIGNATURE         doubledoors-1.21.1-5.9.jar                        |Double Doors                  |doubledoors                   |5.9                 |SIDED_SETU|Manifest: NOSIGNATURE         formationsnether-1.0.5-mc1.21+.jar                |Formations Nether             |formationsnether              |1.0.5               |SIDED_SETU|Manifest: NOSIGNATURE         reg-more-foods-1.1.2+1.21+forge.jar               |Reg's More Foods              |rmf                           |1.1.2+1.21+forge    |SIDED_SETU|Manifest: NOSIGNATURE         additionallanterns-1.1.1-forge-mc1.21.jar         |Additional Lanterns           |additionallanterns            |1.1.1               |SIDED_SETU|Manifest: NOSIGNATURE         treeharvester-1.21.1-9.1.jar                      |Tree Harvester                |treeharvester                 |9.1                 |SIDED_SETU|Manifest: NOSIGNATURE         jei-1.21.1-forge-19.8.4.113.jar                   |Just Enough Items             |jei                           |19.8.4.113          |SIDED_SETU|Manifest: NOSIGNATURE         stonesmelting-1.21.1-0-forge.jar                  |StoneSmelting                 |stonesmelting                 |1.21.1-0-forge      |SIDED_SETU|Manifest: NOSIGNATURE         waystones-forge-1.21.1-21.1.4.jar                 |Waystones                     |waystones                     |21.1.4              |SIDED_SETU|Manifest: NOSIGNATURE         fallingleaves-1.21-2.4.0.jar                      |Fallingleaves                 |fallingleaves                 |2.4.0               |SIDED_SETU|Manifest: NOSIGNATURE         mcw-paintings-1.0.5-1.21.1forge.jar               |Macaw's Paintings             |mcwpaintings                  |1.0.5               |SIDED_SETU|Manifest: NOSIGNATURE         Clumps-forge-1.21.1-19.0.0.1.jar                  |Clumps                        |clumps                        |19.0.0.1            |SIDED_SETU|Manifest: NOSIGNATURE         saddlemod-0.0.1.jar                               |Saddle Mod                    |saddlemod                     |0.0.1               |SIDED_SETU|Manifest: NOSIGNATURE         comforts-forge-9.0.2+1.21.1.jar                   |Comforts                      |comforts                      |9.0.2+1.21.1        |SIDED_SETU|Manifest: NOSIGNATURE         NaturesCompass-1.21.1-1.11.7-forge.jar            |Nature's Compass              |naturescompass                |1.21.1-1.11.7-forge |SIDED_SETU|Manifest: NOSIGNATURE         dailyquests-1.21.1-1.8.jar                        |Daily Quests                  |dailyquests                   |1.8                 |SIDED_SETU|Manifest: NOSIGNATURE         additional_lights-1.21-2.1.9.jar                  |Additional Lights             |additional_lights             |2.1.9               |SIDED_SETU|Manifest: NOSIGNATURE         deathquotes-forge-1.21-3.3.jar                    |DeathQuotes                   |deathquotes                   |3.3                 |SIDED_SETU|Manifest: NOSIGNATURE         Terralith_1.21.x_v2.5.5.jar                       |Terralith                     |terralith                     |2.5.5               |SIDED_SETU|Manifest: NOSIGNATURE         fusion-1.1.1-forge-mc1.21.jar                     |Fusion                        |fusion                        |1.1.1               |SIDED_SETU|Manifest: NOSIGNATURE         formations-1.0.2-forge-mc1.21.jar                 |Formations                    |formations                    |1.0.2               |SIDED_SETU|Manifest: NOSIGNATURE         skinlayers3d-forge-1.6.7-mc1.21-all.jar           |3d-Skin-Layers                |skinlayers3d                  |1.6.7               |SIDED_SETU|Manifest: NOSIGNATURE         forge-1.21.1-52.0.17-universal.jar                |Forge                         |forge                         |52.0.17             |SIDED_SETU|Manifest: NOSIGNATURE         mcw-paths-1.0.5-1.21.1forge.jar                   |Macaw's Paths and Pavings     |mcwpaths                      |1.0.5               |SIDED_SETU|Manifest: NOSIGNATURE         forge-1.21.1-52.0.17-client.jar                   |Minecraft                     |minecraft                     |1.21.1              |SIDED_SETU|Manifest: NOSIGNATURE         trade-cycling-forge-1.21.1-1.0.15.jar             |Trade Cycling                 |trade_cycling                 |1.21.1-1.0.15       |SIDED_SETU|Manifest: NOSIGNATURE         EnchantmentDescriptions-forge-1.21.1-21.1.4.jar   |EnchantmentDescriptions       |enchdesc                      |21.1.4              |SIDED_SETU|Manifest: NOSIGNATURE         MouseTweaks-forge-mc1.21-2.26.jar                 |Mouse Tweaks                  |mousetweaks                   |2.26                |SIDED_SETU|Manifest: NOSIGNATURE         configuration-forge-1.21.1-3.1.0.jar              |Configuration                 |configuration                 |3.1.0               |SIDED_SETU|Manifest: NOSIGNATURE         new_slab_variants-forge-1.21.1-3.0.1.jar          |New Slab Variants             |new_slab_variants             |3.0.1               |SIDED_SETU|Manifest: NOSIGNATURE         inventorytotem-1.21.1-3.3.jar                     |Inventory Totem               |inventorytotem                |3.3                 |SIDED_SETU|Manifest: NOSIGNATURE         darkloot-forge-1.21-1.2.9.jar                     |DarkLoot                      |darkloot                      |1.2.9               |SIDED_SETU|Manifest: NOSIGNATURE         spectrelib-forge-0.17.2+1.21.jar                  |SpectreLib                    |spectrelib                    |0.17.2+1.21         |SIDED_SETU|Manifest: NOSIGNATURE         packedup-1.0.30b-forge-mc1.21.jar                 |Packed Up                     |packedup                      |1.0.30+b            |SIDED_SETU|Manifest: NOSIGNATURE         Iceberg-1.21-forge-1.2.5.jar                      |Iceberg                       |iceberg                       |1.2.5               |SIDED_SETU|Manifest: NOSIGNATURE         Highlighter-1.21-forge-1.1.11.jar                 |Highlighter                   |highlighter                   |1.1.11              |SIDED_SETU|Manifest: NOSIGNATURE         MerchantMarkers-1.21-forge-1.3.5.jar              |Merchant Markers              |merchantmarkers               |1.3.5               |SIDED_SETU|Manifest: NOSIGNATURE         Storage Drawers-forge-1.21-13.7.1.jar             |Storage Drawers               |storagedrawers                |13.7.1              |SIDED_SETU|Manifest: NOSIGNATURE         smeltingsand-1.21.1-11-forge.jar                  |SmeltingSand                  |smeltingsand                  |1.21.1-11-forge     |SIDED_SETU|Manifest: NOSIGNATURE         regrowth-1.21.1-52.31.3.jar                       |Regrowth                      |regrowth                      |52.31.3             |SIDED_SETU|Manifest: NOSIGNATURE         inventoryhud.forge.1.21.1-3.4.26.jar              |Inventory HUD+                |inventoryhud                  |3.4.26              |SIDED_SETU|Manifest: NOSIGNATURE         betterarcheology-1.2.1-1.21.1.jar                 |Better Archeology             |betterarcheology              |1.2.1-1.21.1        |SIDED_SETU|Manifest: NOSIGNATURE         modonomicon-1.21.1-forge-1.108.1.jar              |Modonomicon                   |modonomicon                   |1.108.1             |SIDED_SETU|Manifest: NOSIGNATURE         XaeroPlus-2.24.3+forge-1.21-WM1.39.0-MM24.5.0.jar |XaeroPlus                     |xaeroplus                     |2.24.3              |SIDED_SETU|Manifest: NOSIGNATURE         XaerosWorldMap_1.39.0_Forge_1.21.jar              |Xaero's World Map             |xaeroworldmap                 |1.39.0              |SIDED_SETU|Manifest: NOSIGNATURE         Xaeros_Minimap_24.5.0_Forge_1.21.jar              |Xaero's Minimap               |xaerominimap                  |24.5.0              |SIDED_SETU|Manifest: NOSIGNATURE         portabletanks-1.1.7-forge-mc1.21.jar              |Portable Tanks                |portabletanks                 |1.1.7               |SIDED_SETU|Manifest: NOSIGNATURE         connectedglass-1.1.11-forge-mc1.21.jar            |Connected Glass               |connectedglass                |1.1.11              |SIDED_SETU|Manifest: NOSIGNATURE         mvw-2.3.3b_beta.jar                               |MoreVanillaWeapons            |mvw                           |2.3.3b_beta         |SIDED_SETU|Manifest: NOSIGNATURE     Crash Report UUID: 27a54f81-da06-4a1d-ae66-e4bc3ff4b369     FML: 0.0     Forge: net.minecraftforge:52.0.17
    • Hello All,  I've been constructing my own 1.20 modpack recently and after installing a few extra ones there has appeared an extra bar right above the middle of my XP bar.  It looks like a shorter XP bar itself, but doesn't fill up when I collect XP.  I have tried removing every new mod systematically and nothing seems to get rid of it.  The modpack is large enough that it's hard for me to sift through and identify which mod is causing this (I've scoured through the list several times and I can't think of any mod that would cause this).  I was wondering if anyone on here has heard of this extra XP bar issue before?  I've attached my list of mods below (229 mods) if that's helpful.  If anyone is able to point out what's causing it so I can remove it I'd be extremely grateful!    
    • Recently decided to join a server a friend made using Hostinger. Version 1.20.1 Forge 47.3.0. I can't connect, it's not even showing the ping. The error is: Connection timed out no further information. I've tried countless amount of things, from firewall settings to port forwarding, but nothing seems to fix it. Every other friends can join just fine, i have no idea why i can't.  I've noticed that when i change the Minecraft version, i can see the server correctly but obviously i can't join since it needs forge to run the mods. Both in my and my friends console i don't show up trying to join. I honestly can't think of anything else to try, help.  
    • There is a mod build and it has mods for optimization.
  • Topics

×
×
  • Create New...

Important Information

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