THE TEN RINGS
Shang-Chi's ten rings, rebuilt as a working Minecraft weapon set.
Hey this is me the author just wanted to tell that this mod was completely made by AI including the description of it and at the end i have mentioned how i made this mode completely using AI for Completey FREE!!!! Also if you want to use this mod on YT link this page Only for the mod download
Author: ZAYAAN + AI
Code and assets written by: Qoder (AI assistant, developed by the Qoder team)
Version: 1.0.0
Requires: Minecraft 1.20.1 with Forge 47.4.0 or newer
Side: install on both client and dedicated server
License: MIT
IMPORTANT DISCLOSURE ABOUT HOW THIS MOD EXISTS
Every line of code in this mod, and every texture in it, was generated by an AI assistant (Qoder) from written instructions. No human wrote any code for this project. There was no hand-editing of Java, no hand-painting of textures, no manual model work. The process was: describe an ability in plain language, have the AI implement it, have the AI build it, have the AI run a headless Forge server to check it did not crash, have the AI read the shipped code back to verify the numbers, then describe the fix when something behaved wrong and have the AI repair it. Several of the abilities below were the product of that loop rather than a single pass, and the notes at the end of this description explain, in the author's own words, exactly how it was achieved.
OVERVIEW
You hold all ten rings in a single item. Each ring is a real 3D entity in the world with its own texture and its own slot, and the item remembers every one of them: which sit in your main hand, which are in your off hand, which are orbiting you as a shield, which are loose somewhere in the world, which are linked into a chain, and which are currently spent spinning a tornado.
Ten abilities, all of them usable in survival:
- Throw a ring through the world. It shatters every breakable block in its path, damages and flings mobs, then hovers exactly where it stopped and waits for you.
- Call rings back with a click, at any distance the world still simulates.
- Grab: recall rings that catch mobs on the way home and drag them to your feet.
- An orbiting shield that cancels melee hits, reflects projectiles back at whoever fired them, and steps you entirely out of explosions.
- Split the set between your hands, deciding how many rings raise the shield and how many stay free to throw.
- Leap: the rings shove the ground and send you about twelve blocks skyward, with a free landing.
- A chain weapon of rigid spinning rings that lashes out nearly nine blocks.
- The vortex: a fifteen-block-wide, fifty-block-reach tornado that hauls everything nearby into one place, clamps shut, and crushes it for a hundred hearts.
Nothing here is a particle effect pretending to be a ring. The model is a real torus, twenty segments around with a ten-segment elliptical cross-section, shaded per-vertex from two fixed light directions plus a sharp specular polish, so the metal picks up the light as it turns. There are ten distinct band textures, so an orbiting shield is ten visibly different rings rather than one decal repeated. The rings are gold and bronze, with a scattering of teal rune pixels in some bands, a warm glow, and orange light-force strands that run the chain when it is out. They are about six-tenths of a block across and the same size in every mode. Rings cannot be damaged by anything, are fire and lava immune, and cannot be picked by your crosshair, so you cannot lose them and they never get in the way of your aim.
OBTAINING THE RINGS
There is no crafting recipe, no loot table entry and no smelting. This is a single legendary item, intended to be given: find the Ten Rings creative tab, or use
/give @s tenrings:ten_rings
Everything the set knows is stored on that one stack, so it survives being put away in a chest, being logged out, and a server restart.
A second item, the Ring Band, appears in your off hand automatically once you split the rings. It is a display mirror of the main stack, not a second set: the main stack is always the authority, the band is rebuilt from it about once a second, it destroys itself if it ever leaves the off hand and gets re-made, and it can never hit the floor as a dropped item.
CONTROLS
All seven keybinds live in their own "Ten Rings" category in the Controls menu and every one is rebindable. The mouse abilities are not keybinds.
Right mouse button - throw one free ring
Shift + right mouse button - throw every free ring in hand at once, fanned out so the volley does not overlap
Left mouse button - call one loose ring back
Shift + left mouse button - call all loose rings back
G - recall one ring and grab whatever mobs are in its path
Shift + G - same, for every loose ring
O - raise or drop the orbiting shield
F - open the split screen; press again to collapse everything back into one hand
Numpad minus - leap
Numpad 1 - link the rings in hand into the chain weapon, or put the chain away
Numpad 1, then left mouse button or just holding attack - lash the chain
Numpad 2 - spin the vortex
Rules that apply to all of them:
The item must be in your main hand for the mouse buttons to answer; the keybinds act on whichever hand carries the set. While the chain is out a left click becomes a lash rather than a punch, and while rings are loose a left click becomes a recall rather than a punch; in both cases the vanilla attack click is consumed. F deliberately swallows vanilla's swap-offhand key while you hold the rings, so it can never fling the set into your off hand by accident. The item has no vanilla right-click use of its own, so it never eats a block interaction you meant to make. Any open screen suppresses every binding.
THROW
A thrown ring leaves at eye level travelling 1.15 blocks per tick along where you are looking. Its path is walked in sub-steps of at most 0.28 blocks, so it cannot tunnel through a wall in a single tick.
Each step destroys blocks using the game's own break routine, which means the blocks drop their items and normal break effects run. Only blocks with real hardness are touched, so bedrock, barriers and similar unbreakables stop the ring dead: it throws sparks and parks itself on the last free step. By default there is no limit on how many blocks one throw eats, and returning rings keep breaking on the way home too.
Anything living the ring passes through takes 9 damage (four and a half hearts) and is flung: knockback is a quarter of its current motion plus 1.4 blocks per tick along the ring's flight direction plus half a block upward. Each mob can be hit once per flight, so a ring hovering in a crowd does not grind it. Thrown rings do damage players.
Speed decays by 0.3 percent per tick, which is what stops a ring that hit nothing. By default a ring flies to the edge of the distance your world still ticks: the mod probes outward in sixteen-block steps up to six hundred and forty blocks and parks the ring half a step before simulation stops, deliberately, because a ring past that line could not be recalled. If one ever ends up stuck out there, its master's tick carries it home.
When it stops, it hovers exactly where it stopped: dead still, no bobbing, no circling, waiting forever by default or for a configured number of seconds. It costs an amethyst chime and a hand swing. With no free ring you are told "No ring is free in your hand."
RECALL
Left click calls one loose ring home, or all of them with Shift. The return is a homing flight at 0.7 plus 0.2 times the distance, capped at 2.3 blocks per tick, aimed just in front of your eye. It lands when within 0.9 blocks of you, and after twelve seconds anything still out there is brought home rather than left hanging. Arrival costs an experience-orb chirp. With nothing loose: "No ring is out there."
GRAB
G does the same recall in grab mode: the returning ring catches mobs it passes and hauls them to you. Eligible captives are living, non-player things no wider than 2.4 blocks and no taller than 3.2 blocks that are not currently riding something, so zombies, skeletons, creepers, spiders, villagers and most modded humanoids, but not an iron golem, a ravager or a dragon. Up to three per ring by default.
Catching something costs it 2 damage immediately, with sparks and a groan. The captive is dragged toward a point eight-tenths of a block behind the ring, takes 1 damage every fourteen ticks and cannot accumulate fall damage. On arrival it is slammed: flung away from you at 1.5 blocks per tick and hit for 5.4 damage, sixty percent of throw damage, with an anvil thud and ten sparks. Grabbing never targets players.
SHIELD
O raises the rings as a wall around you. If you have split the set, the off-hand pool orbits while your main-hand rings stay free to throw; if you have not split, the whole set orbits.
The circle sits 1.05 blocks above your feet with a radius of 1.25 plus 0.062 times the number of rings, so about 1.3 blocks with one ring and 1.87 with all ten. It turns at 0.075 radians per tick, roughly four and a half seconds a revolution, with a slight vertical bob so the plane never looks static. Whatever non-player touches the orbit within five blocks of you takes 4 damage and is shoved away at 1.25 blocks per tick, with an eight-tick cooldown per mob so a trapped one is not minced.
Melee is cancelled outright. Anything that hits you from inside the shield radius plus 0.7 blocks has its damage event cancelled, so you take nothing, and the attacker is hit back for your shield damage value and knocked away at 1.7 blocks per tick. Creative-mode players are not hit back. Rings themselves never count as attackers.
Projectiles are reflected rather than destroyed. Every tick, projectiles inside the shield radius plus 0.85 blocks, excluding ones you fired yourself and anything still in its first tick, are turned around and sent outward at 1.45 times their incoming speed with a slight lift, and ownership transfers to you, so an arrow you deflect can legitimately kill the archer who shot it. Arrows, tridents, fireballs, thrown potions and modded projectiles all count.
Explosions are stepped out of entirely. You are removed from the blast's affected-entity list before the vanilla loop runs, so you take no explosion damage and no explosion knockback, while the world around you still gets torn up normally. Creepers, TNT, beds, ghast fireballs, modded explosives.
Every deflect throws six end-rod sparks and a high amethyst ring. Dropping the shield sends every orbiting ring home in recall mode and they arrive in your main hand ready to throw. With nothing free to orbit: "No ring is free to orbit."
SPLIT
F opens a division screen listing every possible split: ten in the main hand and none in the off, nine and one, all the way down to none and ten, plus Done. The header explains it: off-hand rings raise the shield, main-hand rings do everything else.
Divisions you cannot currently make are greyed out, because rings already loose in the world cannot be re-handed until they come back. Choosing takes effect instantly. If your off hand is holding something else you are told to empty it. Pressing F again collapses everything back into one hand.
LEAP
The rings shove the ground and put you in the air: about twelve blocks of height by default, with roughly half of your facing direction carried forward, and sixty percent of your existing horizontal momentum preserved. Looking straight down simply means straight up; the leap always travels the way you face.
It has its own key rather than being a special kind of throw on purpose, so nothing about your crosshair can silently turn a leap into a throw in the middle of a fight, and so it answers the same way every time.
This is also why it works every press now. A player's movement belongs to their own machine, so the server does not merely push you and hope the packet lands: you are lifted off the floor outright, told where you now are, given the speed, and then for the next few ticks the server measures how far you actually rose and re-applies any shortfall until the real rise agrees with what was promised. A client that obeyed is never pushed twice; one that swallowed the packet is corrected the next tick.
The landing is free. The catch stays armed for ten seconds after a launch; the fall ends on your feet with zero damage and zero fall distance, marked with sparks and an amethyst ring. Cooldown is ten ticks and hammering the key cannot stack launches, because it refuses while you are still climbing. It also refuses with an explanation while you are flying in creative, or while you are riding a boat, minecart or horse. Otherwise it fires with a dragon flap, cloud particles at your feet and sparks at head height.
CHAIN WEAPON
Numpad 1 links every ring in your hand into a weapon at your side, and a second press puts it away.
The shape is a straight, rigid rod, not a hanging curve. Each link sits its slot number times 0.55 blocks along your view vector from a grip ahead of, to the side of, and just below your eye. Nothing sags and nothing bends: the whole set lies on one line, and the rings animate by rolling along the rod rather than drooping. Every link's position is written from your own tick rather than flown to, so a chunk that stops simulating cannot strand a link. Ten rings at the default gap is a chain about five and a half blocks long.
Lashing, with left click or simply by holding attack, thrusts the rod out and folds it back over fourteen ticks on a sine ease that snaps out faster than it returns, reaching 1.62 times its idle length at full extension: about eight and nine blocks out with all ten rings, with a hit radius that grows from 0.62 to about 1.12 blocks as it does. Holding the button keeps the rhythm rather than spamming, because the server refuses a lash while the last one is still recovering.
A link passing through something deals 7 damage, three and a half hearts; a lash deals 1.8 times that, 12.6, six and a quarter hearts. Knockback scales with the extension, from 0.55 to about 2.0 blocks per tick, always away from you and slightly upward. The same mob can be struck again after twenty-six ticks by a lash or fourteen ticks by idle contact. Lash hits throw twelve sparks and a sweep sound; contact hits throw five sparks.
The chain is built from your hand, so if every ring is already out there is nothing to link and it says so. Linking costs a chain-place and a beacon tone; putting it away costs a chain break.
THE VORTEX
Numpad 2 is the finale, and the only ability that spends the rings rather than pointing them.
Phase one, the flight out, takes a second and a half. Every ring in your hand leaves you and flies to a point fourteen blocks ahead along where you face, dropped onto the ground that is actually there. A wide funnel stands at least its own radius away from you on purpose, so it never swallows its own master's feet. It opens with a portal scream, an amethyst ring and a sonic-boom flash at the core.
Phase two, the spin, lasts fourteen seconds by default. The rings stand up a tornado turning at 0.42 radians per tick, roughly one and a third revolutions a second: fifteen blocks wide at the ground, tapering up through a neck about a third of that, and about thirteen and three-quarter blocks tall, so it reads as a tornado and not a ring census. Snow climbs the walls in six height bands and eight spokes.
It reaches fifty blocks for anything that is not you, measured from the funnel's axis rather than the block it stands on, and the search volume extends thirty-two blocks below its floor and well above its top, so a mob on lower ground or one the wind has lifted is still inside its own tornado. Drag is a vacuum rather than a suggestion: things are pulled straight at the core at 0.55 plus 0.09 times their distance, capped at 2.6 blocks per tick, plus a swirl that grows with distance and a lift that is only enough to clear a stair. Something fifty blocks out is hauled in in about a second and a half. Cloud puffs follow every captive.
Crucially, nothing at all is damaged while it is only pulling. The long spin drags and does not cut, so a mob can be hauled the full fifty blocks and arrive unscathed.
And when the wind promises a distance the mob does not actually travel, because of ground friction, a wall, an AI walking against the pull or a chunk that stopped thinking, the funnel measures how far it really came and drags the shortfall by hand, going up and over an obstruction rather than losing the argument.
Phase three, the clamp, lasts about a second and a tenth. The whole shape spirals in on the core, down to a tenth of its width and dropping to core height, a warden wind-up plays, and this is where it starts to hurt: eight half-hearts every tick, rising as the walls close, which is on the order of seventy hearts torn off anything standing in the column for the whole clamp.
Phase four, the collapse: two hundred half-hearts, one hundred full hearts, on everything caught, with a warden sonic boom and a full particle detonation. The hit volume is the whole column and not merely the middle, and it also includes every captive the funnel was holding, so a mob dragged the length of fifty blocks but stopping a few short of the core still gets it.
Phase five, the quiet: the rings come home and refuse every ability for ten seconds. No throw, no shield, no chain, no leap, no second vortex. The on-screen readout counts the seconds down in purple. Pressing anything during the quiet tells you the rings are spent; trying to open a second funnel while one is turning tells you it is already pulling.
End to end that is about seventeen seconds of tornado plus ten seconds of quiet, so twenty-seven seconds before the rings obey again.
Three behaviours worth calling out.
Modded mobs cannot refuse it. The crush hits with a sonic-boom damage source, which gets past armour, damage-resistance cooldowns, invulnerability frames and invulnerable-to checks. Then, if the mob's own hook still refused, capped or soaked the hit, the difference is taken by hand directly off its health, and if that empties it the death is fired properly with its own drops and its own death message. A boss with a damage phase, an armour stack that would eat the whole amount, or a mod override that simply says no, all still lose the full hundred hearts. This applies to the clamp ticks as well as the collapse.
It does not give up early. Once the funnel has caught something it holds it: a captive that slips the scan for a tick is still dragged, still shredded and still hit, and the tornado never mistakes that gap for an empty sky and folds. This was the single hardest bug in the mod to get right, and the whole reason a vortex that clearly had mobs in it used to switch itself off after two seconds.
It cannot be rushed, and a miss is cheap. The clamp starts at the end of the configured spin. Everything reaching the middle can end it a little early, but only after seventy-two percent of the spin has already turned, which is eleven and a half of fourteen seconds, and only once every single captive has been inside 3.2 blocks of the core for ten ticks running. A vortex that catches nothing at all comes home after about seven seconds and is not spent, with no quiet at all, so firing into an empty field costs you seven seconds rather than seventeen.
The funnel's width, height, spin rate and the tick it begins clamping on are computed from world time and travel with the rings as synced entity data rather than being re-read from each machine's config, so a client whose config file disagrees with the server's cannot draw or hit a different tornado than the one that was actually opened.
STATE MODEL AND ROBUSTNESS
Each of the ten slots is always in exactly one state: idle in the main hand, idle in the off hand, orbiting as a shield, loose in the world, returning home, linked into the chain, or spent in a vortex. The item's name reports the state of the whole set, so it reads as The Ten Rings, The Ten Rings (4 away), The Ten Rings (shield, 6 out), The Ten Rings (chain of 8) or The Ten Rings (vortex of 10).
The stack reconciles its own data against reality every half second and re-syncs the client every second while held, which is what lets the set survive crashes, reloads and dimension changes. A ring entity the stack no longer claims is discarded. Rings the server no longer has a funnel for are called home instead of left frozen in mid-air. A ring that wanders past the ticking distance is carried back. Dying or respawning clears everything, dropping the leap catch and despawning every loose ring, so you never get a shield orbiting a corpse. Ring entities persist their owner, slot, mode, group, distance travelled, blocks broken and grab list, so a thrown ring that outlives a server restart is still a thrown ring when it comes back.
INTERFACE
A readout sits above the hotbar in gold, listing the set by state: main, off, shield, out, chain and vortex. Under it a second white line changes with the situation, in this order of priority: the vortex is spinning and everything nearby is being pulled in; the rings are spent, counting down the seconds before they answer again; the chain is out and left click lashes; the shield is up and blows and arrows are beaten away; rings are loose, left click to call one back and G to call one grabbing; otherwise the ready line reminding you that right click throws, numpad minus leaps, O shields, F splits, numpad 1 chains and numpad 2 vortices.
The item's tooltip lists all eight control hints under the line "Ten rings, one will", plus the live per-state count.
Every refusal explains itself in chat: no ring free to throw, no ring out there, no ring free to orbit, nothing free to link, nothing free to spin, the vortex is already turning, the rings are spent after the vortex, you are already flying, nothing to shove because you are riding something, every ring is still in the air, and your off hand is holding something else.
The readout can be switched off in the config.
CONFIGURATION
Everything is tunable in config/tenrings.toml. This is a common-type config, so on a server the server's file wins and only the server needs it; values are read live per ability, so an edit takes effect once the file is reloaded. The defaults below are what you get on first launch.
Throwing and recall:
ringsBreakBlocks, true or false, default true - thrown rings destroy blocks in their path.
maxBlocksPerThrow, 0 to 512, default 0 - blocks shattered before a ring gives up; zero means no limit.
throwRange, 0 to 512 blocks, default 0 - hard cap on flight distance; zero means fly to the edge of the ticking world.
throwSpeed, 0.2 to 3.0, default 1.15 - blocks per tick off the hand.
throwDamage, 0 to 100 half-hearts, default 9.0 - damage to anything a ring passes through.
autoReturnSeconds, 0 to 600, default 0 - hover time before a ring returns on its own; zero means wait forever.
ringsGrabMobs, true or false, default true - G recall catches mobs.
maxGrabbedPerRing, 1 to 10, default 3 - captives per returning ring.
Shield:
shieldDamage, 0 to 100 half-hearts, default 4.0 - damage to whatever touches the orbit, and the melee retaliation.
shieldDeflectsMelee, true or false, default true.
shieldDeflectsProjectiles, true or false, default true.
shieldDeflectsExplosions, true or false, default true.
Leap:
leapEnabled, true or false, default true.
leapPower, 0.2 to 4.0, default 1.35 - upward speed; 1.0 is about six blocks of height, 1.35 about twelve, 2.0 about twenty-five.
leapForward, 0 to 2.0, default 0.55 - how much of your facing carries forward; zero is straight up.
leapCooldownTicks, 0 to 100, default 10 - ticks between leaps, so holding the key cannot stack launches.
leapCushionsFall, true or false, default true - the landing costs no fall damage.
Chain:
chainDamage, 0 to 100 half-hearts, default 7.0 - a link passing through something; a lash is 1.8 times this.
chainLinkGap, 0.2 to 1.6 blocks, default 0.55 - spacing between links, so more rings or a bigger gap is a longer weapon.
Vortex:
vortexEnabled, true or false, default true.
vortexWidth, 4 to 48 blocks, default 15.0 - width at the ground; the neck is about a third of it and the height about 1.7 times the radius.
vortexDistance, 4 to 40 blocks, default 14.0 - how far ahead the funnel forms; it is never closer than its own radius plus four.
vortexPullRadius, 4 to 96 blocks, default 50 - how far the tornado reaches for mobs.
vortexSpinSeconds, 2 to 60, default 14 - spin time before the clamp. Early closing is only allowed after seventy-two percent of this.
vortexClampDamage, 0 to 200 half-hearts per tick, default 8.0 - the final second of shredding, rising as the walls close. Nothing is damaged while it is only pulling.
vortexDamage, 0 to 1000 half-hearts, default 200.0 - what the collapse lands. Two hundred is a hundred hearts, and it is forced through damage immunities.
vortexLockoutSeconds, 0 to 60, default 10 - the quiet afterwards.
Interface:
showHud, true or false, default true.
MULTIPLAYER AND COMPATIBILITY
The jar is needed on both the client and a dedicated server, since the mod registers an entity type and a renderer. Single-player is the same installation.
All authority is server-side. The client sends an intent for each ability and the server carries it out, so a modified client cannot throw a ring the server did not approve.
Vanilla damage rules are untouched except where an ability says otherwise: the vortex crush tops health up by hand, and the shield cancels hits against its own master only. Everything else in the world takes damage normally.
Thrown rings can hit other players. Grab and vortex ignore players entirely.
Unbreakable blocks stop a thrown ring; everything with a hardness does not.
Mods that add mobs with custom damage rules work, including mobs that normally refuse damage under certain circumstances, because the vortex's crush is written to assume refusal and correct for it rather than to hope for it.
FINAL NOTE
This description is deliberately exhaustive: every number in it was read back out of the shipped code rather than written from intention, so it should match what the mod actually does rather than what it was meant to do.
HOW I ACHIEVED THIS:-
as the AI said i used an app called Qoder which is like Codex and Chat-GPT Astra 6 combined in one currently it has the Qwen 3.8 model available for free unlimited use but for a limited time and it is actually good at Minecraft modding since it has computer use feature too and this is not sponsored i just wanted to share it.

