Agons are essentially just circular hazards, attached to blocks by chains.
They can be moved on layers, but this might mess with the way the chains are drawn.
Note: the chains use verlet rope physics, which can be very resource-intensive if not used in moderation. There is an NPC config to help remedy this.

Download link:
https://drive.google.com/file/d/1HjZUIB ... sp=sharing
Config:
- variants (number) - The amount of graphical variants the NPC has.
ㅤ - blockcheckrange (number) - The maximum length to check for a block to attach to below the npc, in pixels. If nothing is detected the NPC will attach to the bottom of the section boundary.
ㅤ - preventdespawn (bool) - If set to true, agons will never despawn as long as the player is in the same section.
ㅤ - doverletrope (number) - If set to 1, chains will always do verlet physics . If set to 2, chains will only do verlet physics if the agon is swaying. If set to 0, chains will not do verlet physics at all . Set to 1 by default.
This option is here purely because having the chains constantly update can lead to performance issues on lower-end PCs. Best to set this to 1 if you plan on having any custom movement.
ㅤ - frequency - (number) - Controls the frequency of the agons' sway. Set to 100 by default.
ㅤ - xamplitude (number) - Controls the width of the agons' sway. Set to 0.16 by default.
Credits:
Big thanks to Hoeloe for creating verletrope.lua, which i lifted from MaGLX3 and edited.
Also thanks to enjl for helping me debug my code