Waste is a byproduct of energy consumption. Waste has yet to be standardized, so some actions produce disproportionately more waste than others.
When waste levels in a bot become greater than waste threshold (set in options panel) the bot will undergo "Alzheimer's", where random values are placed in random locations in the bots memory, causing many undesirable effects. The most common is for the bot to store some number in fixpos, becoming stuck in place.
Waste can be removed through several methods, the most popular of which is:
-4 .shoot store *.waste .shootval store
With the value of .waste typically specified in .shootval, all of the waste is shot.
Another favorite method is:
Causing the bot to give the bot it is tied to 99% of it's waste(see MB Sharing). The last, not so well known method is to use -4 .tieloc store to either give or take waste depending on the value of tieval. Currently there are some bugs with this involving veggies, but otherwise it works perfectly.
A Veggy is capable of metabolizing waste, converting it back into nrg for use.
A portion of the waste will become permanent(.pwaste) even if it has been transferred. This will eventually kill a bot through Alzheimer's mentioned above. The bot will also have a random chance of death from this.
A handy method for eventually unfixing the stuck bot is shown below:
' will normally unfix bot by restoring .fixpos to zero ' typically I place this in most bots to prevent possible attack and accidental fixing cond start .fixpos *.fixed mult dec stop