Wheel of Wacky
Adds a fun wheel of fortune to the game that can either generously reward or cruelly punish the player who dares to spin it! The results are always unpredictable and often provoke laughter.
Important: For playing on Fabric, Sinytra Connector and Forgified Fabric API are not required.

How to Get Wheel of Wacky
To acquire this amazing wheel, you'll need to find a special "basement" structure in the world. Inside this underground hideout, you'll discover Wheel of Wacky, which can be mined using a pickaxe of diamond level or higher.


Creating Custom Spells
To create personalized spells, first you need to create a data pack folder. If you don't know how to do this, we recommend checking out the data pack creation guide.
After creating the data pack, create a data folder inside it, then create a wacky_wheel folder inside data, and finally — a spell_type folder inside wacky_wheel.
The full path should look like this: <your data pack folder>/data/wacky_wheel/spell_type.
Now create a JSON file in this folder. For example, let's call it free_diamond.json.
First, set the spell name that will be displayed to the player when it lands on the wheel:
{
"name": "Free Diamond!"
}
Additionally, you can specify the title text color and add explanatory text:
{
"name": "Free Diamond!",
"titleColor": "#ADD8E6",
"flavorText": "Enjoy your free diamond :)"
}
Next, you need to specify the item identifier that will represent the spell on the wheel segments:
{
"name": "Free Diamond!",
"titleColor": "#ADD8E6",
"flavorText": "Enjoy your free diamond :)",
"itemID": "minecraft:diamond"
}
The castingTime field determines the time (in ticks) required to cast the spell after the wheel stops:
{
"name": "Free Diamond!",
"titleColor": "#ADD8E6",
"flavorText": "Enjoy your free diamond :)",
"itemID": "minecraft:diamond",
"castingTime": 60
}
The final step is to specify the name of the .mcfunction file that implements the spell effect:
{
"name": "Free Diamond!",
"titleColor": "#ADD8E6",
"flavorText": "Enjoy your free diamond :)",
"itemID": "minecraft:diamond",
"castingTime": 60,
"onCastFunction": "give_diamond"
}
Now create the give_diamond.mcfunction file in the <your data pack folder>/data/wacky_wheel/functions folder:
give @s diamond
By default, the onCastFunction applies to the player who spun the wheel.
To test the new command, type /wheel free_diamond in chat and receive your free diamond.
JSON Properties for Spells
name: Spell name
titleColor (optional): Title text color
flavorText (optional): Additional text under the spell name
flavorTextColor (optional): Additional text color
itemID: Item identifier for representing the spell on the wheel
castingTime: Time in ticks to cast the spell
onCastFunction: Name of .mcfunction file for spell effect
executeOnCastFunctionAtPlayer (optional): If true, executes onCastFunction AT player instead of AS player
duration (optional): Spell duration in ticks
onTickFunction (optional): Name of .mcfunction file executed every tick of spell duration
executeOnTickFunctionAtPlayer (optional): If true, executes onTickFunction AT player instead of AS player
onEndFunction (optional): Name of .mcfunction file executed when spell ends
executeOnEndFunctionAtPlayer (optional): If true, executes onEndFunction AT player instead of AS player