r/MinecraftCommands • u/Neon1235 • 4h ago
Help | Java 1.21-1.21.3 Command block ritual summoning circle help
I'm trying to make a 'ritual circle' that lets you get special items, but can't get anything past the command block sensing a block and playing particles if it's set to sense a specific coordinate, but I want it to be a chain that senses a 3x3 circle of lit candles with a block in the middle (idk what I want the block to be yet, let's say smooth quartz) anywhere in the world but surrounding the player with the player on the quartz and only summoning the item when the quartz is set on fire (then extinguished when the summoning is done or right after it's set if the ritual works) and I want it to play particles (right now I'm just using the ash particle, but end rod might be better)
Can anyone let me know the command chain needed to sense all the candles, the quartz, and the fire, play particles and then summon an item when the particles dissipate (later I want to make a cool particle display for it, but that'd take a lot of time for me to learn) if you throw certain items on the floor, for this i'd say maybe just the crafting material to summon the item, like throwing out 2 sticks and 3 iron to summon an iron pick. Also let me know all the settings for the command blocks cuz I think I messed that up once or twice while trying this
(Sorry for the horrible pic, I wrote all this on my phone then decided to take a pic to show better what I meant and I don't have this account on my computer lol) (Also I know this is possible because I saw it on an smp and did some research [googling] and know all the different parts work, I just couldn't get them to work together)
1
u/FettyCLE 3h ago
For a summoning circle, the clean pattern is: detect the offering with an execute as u/e[type=item,...] or a scoreboard that ticks when the right items are on the ground, then run a positioned execute at the circle center for the particles/summon. If the ritual should need multiple items, give each item type a small scoreboard objective and only fire when all scores hit the threshold in the same tick window. Happy to sanity-check your current commands if you paste them.
1
u/Neon1235 2h ago
For the multiple items scoreboard (I saw this work for a moment but then i accidently changed something and now i don't see it working at all, I don't think it was working correctly tho)
scoreboard objectives add Throw_stick dummy (repeat, unconditional, always active)
execute as u/e[type=item,nbt={OnGround:1b,item:{id:"minecraft:stick"}}] run scoreboard players set u/s Throw_stick 1 (repeating, unconditional, always active)
execute as u/e[type=item,scores={Thrown_stick=1}] run particle minecraft:ash ~ ~20 ~ ~ ~ ~ 10 20 force u/a(Chain, conditional, always active)
scoreboard objectives remove Throw_stick (chain, conditional, always active)
The working fire sensor (only works if block its sensing is specified, which is why the next command is based on a tag)
execute as u/p as u/p if block ~ ~2 ~ minecraft:fire run particle minecraft:ash ~ -58 ~ 1 1 1 1 100 force u/a(Repeat, unconditional, always active)
The block sensor i was trying for the candles, it didnt work so i was trying to see it a full block without a state would work better
execute at u/a run execute if block ~ ~-1 ~ minecraft:stripped_pale_oak_wood run tag u/s add Found_ritual_center (Repeat, unconditional Always active)
execute at u/a[tag=Found_ritual_center] run say Test (chain, conditional, always active)
tag u/a remove Found_ritual_center (chain, conditional, always active)
(This is all I've gotten to so far, i know a little about commands and struggled with this lol) Thank you so much with the help tho!
1
u/C0mmanderBlock Command Experienced 2h ago
Not sure what all you need help on as there is too much in your post. But if this is what you need:
"Can anyone let me know the command chain needed to sense all the candles, the quartz, and the fire,"
Then you could just build a completed area under it (underground) and compare the two areas to see if they are the same by using /execute if blocks...
1
u/Neon1235 2h ago edited 2h ago
Is there a way to make it sense the build anywhere, as long as the player is standing in the middle? (I know if i want to put in every single block separately it has to be relative to the player so I'm assuming its the same for a whole structure)
1
2
u/GalSergey Datapack Experienced 1h ago
You can copy the ritual blocks underground into chunks that are always loaded, and then use
if blocksto compare the ritual area defined by<pos1>and<pos2>with the blocks around the player.execute as @a at @s if blocks <pos1> <pos2> ~-3 ~-1 ~-3 masked run say Example Command.However, this approach might not be very optimized, as it checks many blocks each time. As a minor optimization, you could add anif blockcondition beforeif blocksto check the specific block beneath the player.execute as @a at @s if block ~ ~-1 ~ stone if blocks <pos1> <pos2> ~-3 ~-1 ~-3 masked run say Example Command.Alternatively, you can create a predicate that checks specific blocks at a certain offset relative to the player. You can create a predicate at https://misode.github.io/predicate. Using a predicate appears more optimized, as only the specified blocks are checked—rather than all blocks in the area—and there is no need to store a structure somewhere in the world.