!CuGO Title Image
Trust me it's relatively simple to understand!
In this mod, the Copper Golems get a massive revamp. It has near-infinite memory, reconfigurable almost everything, and a couple new behaviors to make the lil guy a bit more interactive.
When you first spawn your lil guy in, he won't go straight to work. He'll check his surroundings first! He'll wander about your base or storage facility. As it explores, a hidden "Wander Chance" decreases. The longer it wanders, the more likely it is to stop and take a break. If it gets stuck or can't find a path (if you put it in a maze), it will shrink its search radius to focus on more immediate possible pathing.
When CuGO gets bored of wandering, it enters a Lingering State. It will begin to look around, standing still.
The work begins. The reason for all this buildup is so it can ping the local area for storage containers. These can be:
Home will be chosen of the Copper Chests it discovered. Nothing is truly special about this Copper Chest for now, but may be in the future.
Whenever it is not working, it will wander about, linger, then ping, making sure its internal map is always up to date, no matter what changes you make to the layout.
This is the big one. I made a memory and priority system for CuGO to follow.
When the Golem decides it's time to work, it scans its known "Home" and nearby Copper Chests to find items to move.
Once CuGO has an item in its possession, its goal is to find the perfect place for it. I made the vanilla purity check a bit better.
CuGO is a pro at the forbidden art of tactical cowardice. When the going gets tough, CuGO would rather let someone else deal with it. If that fails, it books it for the hills.
It will only calm down once the known threat is dead, gone, or safely over 16 blocks away.
If enabled in the config, CuGO is powered by a finite battery.
Golems are smart enough to recognize a redstone hot spot when they walk over one.
If you look good, you feel good. CuGO follows this to a T. Provide them with the right tools, and they will maintain themselves.
The Copper Golem continues to follow the aging process, with a few tweaks.
This is getting long. Statues can be recharged. And yes, this, too, is configurable.
rechargeableStatues set to true, using an axe won't bring it back to life. Setting it to false does the vanilla thing.Turn debugMode on if you want to get spammed in chat and server logs, or if you need to debug. See what I see.
debugMode - Setting to true allows for your console to show debug messages. Helps to picture what is going on in CuGO's head.
redstoneBoost - Walking across Redstone Blocks gives CuGO speed.
rechargeableStatues - Setting to true allows you to reactivate statues back into a new CuGO. This currently does not save the original's NBT.
rechargeableGolems - When set to true, golems have a battery. If any part of them visibly touches or is next to a redstone signal, it will stand still and recharge when it is at 10%.
damageItemsOnUse - Setting to true allows the golem, when using an axe to scrape its oxidization, to use up the tool's durability.
barrelAsOutput - Barrels are a valid container to be sorted into if set to true
shulkerAsOutput - Shulker Boxes are valid containers to be sorted into if set to true
wanderRadius - Changes the max radius that CuGO searches while randomly wandering. Integer value.
wanderTime - Changes how long CuGO remains in the random wander state before being forced to go to FetchBehavior. Integer value in seconds.
lingerTime - Changes how long CuGO lingers before pinging. This is purely cosmetic. Integer value in seconds.
searchRadius - Searches a radius around it for containers and redstone sources. Integer value.
panicTime - This is the amount of time it takes for CuGO to calm down while CuGO is safe. this is paused if danger remains nearby. Integer value in seconds.
xzInteractRange - Probably should've named this horizInteractRange. It is the horizontal dimension of the box that CuGO checks when deciding whether it is in range of a chest to open it. Double (decimal) value.
yInteractRange - Probably should've named this vertInteractRange. It is the vertical dimension of the box that CuGO checks when deciding whether it is in range of a chest to open it. Double (decimal) value.
maxStackSize - The max stack size CuGO can hold at any one time. In vanilla, this is 32. In CuGO default configs, it is 64. Integer value.
batteryLife - The battery life of CuGO, used when rechargeableGolems is turned on. Integer value in minutes.
warningThreshold - When this amount of time is left, it begins searching for charge. Integer value in minutes. Keeping this approximately 10% of the batteryLife seems healthiest.
batteryDrain - Each tick, this decides how many charges are used. Integer value, charge per tick.
chargeTime - The amount of time it takes for CuGO to, hypothetically, go from 0% to 100%. Integer value in seconds.
passiveCharge - If true, CuGO can charge by casually walking through a valid charge location.
passiveChargeRateMultiplier - If passiveCharge is true, this affects the rate of that passive charge. Double (decimal) value.
consumeConsumables - If true, this will consume things like copper ingots when healing itself.
losUnderThreshold - If above this relative to CuGO's position, CuGO will ignore LOS. Positive Integer value.
losOverThreshold - If below this relative to CuGO's position, CuGO will ignore LOS. Positive Integer value.

Copper Golem Overcomplication. The Copper Golem now has better AI.