Uploaded March 2022 | Updated September 2026, 1 week ago
An epicycle is a curve generated by tracing a circle as its center rotates around another circle. More and more complex curves can be generated by adding more and more circles, each with different radii, frequencies, and starting angles. In fact, any path in the plane can be approximated with enough circles stacked on each other in this way.
In this video, I use a datapack to trace out these curves in Minecraft. Each spawn egg contains all the information required for tracing out the curves, which is just a list of radii, rotation frequencies, and starting angles.
You can download the datapack from my GitHub here: github.com/DqwertyC/epicycles-datapack
Want to make your own epicycle generated curves? Use my epicycle webtoy to generate give commands for spawn eggs compatible with this datapack: dqwertyc.github.io/epicycles-webtoy
Check out this 3Blue1Brown video on Fourier series for an in depth explanation behind how this works: youtube.com/watch?v=r6sGWTCMz2k
Happy pi day!
An epicycle is a curve generated by tracing a circle as its center rotates around another circle. More and more complex curves can be generated by adding more and more circles, each with different radii, frequencies, and starting angles. In fact, any path in the plane can be approximated with enough circles stacked on each other in this way.
In this video, I use a datapack to trace out these curves in Minecraft. Each spawn egg contains all the information required for tracing out the curves, which is just a list of radii, rotation frequencies, and starting angles.
You can download the datapack from my GitHub here: github.com/DqwertyC/epicycles-datapack
Want to make your own epicycle generated curves? Use my epicycle webtoy to generate give commands for spawn eggs compatible with this datapack: dqwertyc.github.io/epicycles-webtoy
Check out this 3Blue1Brown video on Fourier series for an in depth explanation behind how this works: youtube.com/watch?v=r6sGWTCMz2k
Happy pi day!


![Rage Potion in Minecraft using Command Blocks
Questions about this episode or want help on your own Minecraft creations? Join the Command Block Cove on Discord: https://discord.gg/Vr9vfP6EqH
This week, were creating a rage potion in Minecraft. This is a potion that will cause mobs to attack other, nearby mobs.
The Bad Luck effect does not occur naturally in Minecraft, and only impacts player luck while fishing. This makes it a convenient choice for custom potion effects.
The same technique of using a modified snowball can still be used without a potion to enrage mobs against other specific mobs and players.
Here are the commands used in this episode:
Command 1 - Create Rage Potions:
execute as @e[type=item,nbt={Item:{id:minecraft:poisonous_potato}}] at @s if block ~ ~ ~ minecraft:water_cauldron[level=3] if block ~ ~-1 ~ minecraft:soul_campfire[lit=true] as @e[type=item,nbt={Item:{id:minecraft:lingering_potion,tag:{Potion:minecraft:harming}}},distance=0..1,sort=nearest,limit=3] run data merge entity @s {Item:{tag:{Potion:,CustomPotionEffects:[{Id:27,Duration:20,ShowParticles:0b,Amplifier:0b}],CustomPotionColor:11023616,display:{Name:{text:Rage Potion,italic:false}}}},Motion:[0.0d,0.5d,0.0d]}
Command 2 - Destroy Extra Ingredients:
execute as @e[type=item,nbt={Item:{id:minecraft:poisonous_potato}}] at @s if entity @e[type=item,nbt={Item:{tag:{CustomPotionColor:11023616}}},distance=0..1] run kill @s
Command 3 - Modify Rage Area Effect Cloud:
execute as @e[type=minecraft:area_effect_cloud,nbt={Age:0,Effects:[{Id:27,Amplifier:0b}]}] run data merge entity @s {Radius:5.0f,RadiusOnUse:0.0f,RadiusPerTick:-0.1f,ReapplicationDelay:200,Particle:minecraft:angry_villager ~ ~ ~ 0 0 0 0 0 normal}
Command 4 - Summon the Rage Snowball:
execute as @e[nbt={ActiveEffects:[{Id:27,Amplifier:0b,Duration:19}]}] at @s run summon minecraft:snowball ~ ~5 ~ {Motion:[0.0d,-1.0d,0.0d],Item:{id:minecraft:nether_wart,Count:1b},Tags:[rage_snowball]}
Command 5 - Change Rage Snowballs Owner:
execute as @e[tag=rage_snowball] at @s positioned ~ ~-5 ~ run data modify entity @s Owner set from entity @e[type=!player,nbt={DeathTime:0s},distance=0.5..25.0,sort=nearest,limit=1] UUID
Chapters:
0:00 - Intro
2:45 - Command 1
4:39 - Command 2
5:06 - Command 3
6:45 - Command 4
7:48 - Command 5
9:12 - Outro Rage Potion in Minecraft using Command Blocks](https://i.ytimg.com/vi/URUo6kcIMC4/mqdefault.jpg)


![Command Deep Dive - Cupids Arrows
Questions about this episode or want help on your own Minecraft creations? Join the Command Block Cove on Discord: https://discord.gg/Vr9vfP6EqH
This episode, were taking a closer look at Cupids Arrows in Minecraft. These custom tipped arrows dont do any damage and will make breedable mobs act like theyve just been fed.
Check out the original episode here: https://youtu.be/-FqsZJZ6SOs
Commands used in this creation:
Command 1 - Summon Custom Arrows
execute as @e[type=arrow,nbt={inBlockState:{Name:minecraft:hay_block}}] if entity @e[type=minecraft:area_effect_cloud,nbt={Potion:minecraft:healing},distance=0..4] store result entity @s life short 1201 run summon minecraft:item ~ ~ ~ {Item:{id:minecraft:tipped_arrow,Count:1b,tag:{CustomPotionEffects:[{Id:26,Duration:1,ShowParticles:0b,Amplifier:0b}],CustomPotionColor:16711752,CustomModelData:1077417179,display:{Name:{text:Cupids Arrow,italic:false}}}},Motion:[0.0d,0.5d,0.0d]}
Command 2 - Modify Arrow in Flight
execute as @e[type=arrow,nbt={Color:16711752},nbt=!{damage:0.0d}] run data merge entity @s {Owner:[],damage:0.0d,SoundEvent:minecraft:entity.illusioner.cast_spell}
Command 3 - Modify Mob Data
execute as @e[nbt={ActiveEffects:[{Id:26,Amplifier:0b}]}] run data merge entity @s {InLove:600,HurtByTimestamp:0}
Command 4 - Summon Heart Particles
execute at @e[nbt={InLove:600,ActiveEffects:[{Id:26,Amplifier:0b}]}] run particle minecraft:heart ~ ~ ~ 1 1 1 1 30 normal
Command 5 - Kill Arrow in Ground
kill @e[type=arrow,nbt={Color:16711752,inGround:1b}]
Chapters:
0:00 - Command 1
3:35 - Command 2
5:44 - Command 3
6:43 - Command 4
7:11 - Command 5
8:00 - Outro Command Deep Dive - Cupids Arrows](https://i.ytimg.com/vi/YW2bpsTnlUc/mqdefault.jpg)




