ModsJava
✦ SpinX ✦
Java mod listed for Minecraft 26.x. Download on the author's site.
⬇ Download on SpigotA cinematic and fully configurable Minecraft spin-machine plugin featuring animated reels, customizable symbols, virtual spin tokens, jackpots, rewards, statistics, leaderboards, and premium GUI animations.
Configuration structure
I recommend having separate configuration files instead of putting everything into one massive config.yml. Paper supports custom YAML configuration files, which is particularly useful when a plugin has many configurable systems.
SpinX/
├── config.yml
├── messages.yml
├── symbols.yml
├── rewards.yml
├── machines.yml
├── database.yml
├── animations.yml
├── sounds.yml
└── playerdata/
config.yml
plugin:
name: "SpinX"
version: "1.0.0"
machine:
enabled: true
reels: 5
spin-cost:
enabled: true
tokens: 1
cooldown:
enabled: true
seconds: 2
max-active-spins-per-player: 1
tokens:
enabled: true
starting-balance: 0
jackpot:
enabled: true
broadcast: true
fireworks: true
title: true
near-miss:
enabled: true
statistics:
enabled: true
leaderboard:
enabled: true
top-players: 10
database:
type: SQLITE
file: "spinx.db"
symbols.yml
symbols:
diamond:
material: DIAMOND
display-name: "&b Diamond"
weight: 15
emerald:
material: EMERALD
display-name: "&a Emerald"
weight: 18
gold:
material: GOLD_INGOT
display-name: "&6 Gold"
weight: 22
netherite:
material: NETHERITE_INGOT
display-name: "&8⚔ Netherite"
weight: 8
crown:
material: GOLDEN_HELMET
display-name: "&e Crown"
weight: 5
star:
material: NETHER_STAR
display-name: "&d★ Star"
weight: 3
creeper:
material: CREEPER_HEAD
display-name: "&a☠ Creeper"
weight: 12
mystery:
material: CHEST
display-name: "&5❓ Mystery"
weight: 10
rewards.yml
combinations:
THREE_DIAMONDS:
pattern:
- DIAMOND
- DIAMOND
- DIAMOND
reward:
commands:
- "give %player% diamond 5"
THREE_EMERALDS:
pattern:
- EMERALD
- EMERALD
- EMERALD
reward:
commands:
- "give %player% emerald 8"
THREE_NETHERITE:
pattern:
- NETHERITE
- NETHERITE
- NETHERITE
reward:
commands:
- "give %player% netherite_ingot 2"
THREE_CROWNS:
pattern:
- CROWN
- CROWN
- CROWN
reward:
commands:
- "spin give %player% 25"
FIVE_CROWNS:
jackpot: true
pattern:
- CROWN
- CROWN
- CROWN
- CROWN
- CROWN
reward:
commands:
- "give %player% nether_star 10"
- "spin give %player% 100"
GUI configuration
machines.yml
default:
title: "&8✦ &bSPINX MACHINE &8✦"
rows: 6
border:
enabled: true
material: BLACK_STAINED_GLASS_PANE
reels:
reel-1:
slots: [20, 29]
reel-2:
slots: [21, 30]
reel-3:
slots: [22, 31]
reel-4:
slots: [23, 32]
reel-5:
slots: [24, 33]
buttons:
spin:
slot: 49
material: LIME_CONCRETE
name: "&a&l✦ SPIN ✦"
lore:
- "&7Cost: &e%spin_cost% Token(s)"
- ""
- "&aClick to spin!"
rewards:
slot: 45
material: CHEST
name: "&6&lREWARDS"
lore:
- "&7View available combinations."
stats:
slot: 53
material: BOOK
name: "&b&lSTATISTICS"
lore:
- "&7View your SpinX statistics."
⚡ Animation configuration
animations.yml
spin:
enabled: true
starting-delay: 2
reel-speed:
reel-1: 2
reel-2: 3
reel-3: 4
reel-4: 5
reel-5: 6
stop-delay:
reel-1: 8
reel-2: 12
reel-3: 16
reel-4: 20
reel-5: 24
effects:
particles: true
sounds: true
screen-flash: true
jackpot:
title: "&e&l✦ JACKPOT ✦"
subtitle: "&f%player% hit the jackpot!"
fireworks: true
particles: true
duration: 80
sounds:
- ENTITY_PLAYER_LEVELUP
- UI_TOAST_CHALLENGE_COMPLETE
- ENTITY_FIREWORK_ROCKET_LAUNCH
Sounds
sounds.yml
spin:
start: BLOCK_NOTE_BLOCK_PLING
reel: BLOCK_NOTE_BLOCK_HAT
stop: BLOCK_NOTE_BLOCK_BELL
win:
small: ENTITY_PLAYER_LEVELUP
big: UI_TOAST_CHALLENGE_COMPLETE
jackpot:
- ENTITY_FIREWORK_ROCKET_LAUNCH
- ENTITY_PLAYER_LEVELUP
- UI_TOAST_CHALLENGE_COMPLETE
lose:
sound: BLOCK_NOTE_BLOCK_BASS
near-miss:
sound: BLOCK_NOTE_BLOCK_PLING
Messages
messages.yml
prefix: "&8[&bSpinX&8] "
spin:
started: "%prefix%&7Spinning..."
cooldown: "%prefix%&cYou must wait %time%s."
no-tokens: "%prefix%&cYou don't have enough Spin Tokens."
already-spinning: "%prefix%&cYou are already spinning!"
win:
small: "%prefix%&aYou won &e%reward%&a!"
big: "%prefix%&bBIG WIN! &fYou won &e%reward%&f!"
jackpot:
player: "&e&l✦ JACKPOT! &fYou won &e%reward%&f!"
broadcast: "&6&l✦ JACKPOT ✦ &e%player% &fhas hit the jackpot!"
admin:
reload: "%prefix%&aConfiguration reloaded."
give: "%prefix%&aGave &e%amount% &aSpin Tokens to &f%player%."
Commands
/spin
/spinmachine
/spin rewards
/spin balance
/spin stats
/spin top
/spin give <player> <amount>
/spin take <player> <amount>
/spin reload
/spinadmin
Permissions:
spinx.use
spinx.rewards
spinx.balance
spinx.stats
spinx.top
spinx.admin
spinx.give
spinx.take
spinx.reload
spinx.admin.gui
Configuration structure
I recommend having separate configuration files instead of putting everything into one massive config.yml. Paper supports custom YAML configuration files, which is particularly useful when a plugin has many configurable systems.
SpinX/
├── config.yml
├── messages.yml
├── symbols.yml
├── rewards.yml
├── machines.yml
├── database.yml
├── animations.yml
├── sounds.yml
└── playerdata/
config.yml
plugin:
name: "SpinX"
version: "1.0.0"
machine:
enabled: true
reels: 5
spin-cost:
enabled: true
tokens: 1
cooldown:
enabled: true
seconds: 2
max-active-spins-per-player: 1
tokens:
enabled: true
starting-balance: 0
jackpot:
enabled: true
broadcast: true
fireworks: true
title: true
near-miss:
enabled: true
statistics:
enabled: true
leaderboard:
enabled: true
top-players: 10
database:
type: SQLITE
file: "spinx.db"
symbols.yml
symbols:
diamond:
material: DIAMOND
display-name: "&b Diamond"
weight: 15
emerald:
material: EMERALD
display-name: "&a Emerald"
weight: 18
gold:
material: GOLD_INGOT
display-name: "&6 Gold"
weight: 22
netherite:
material: NETHERITE_INGOT
display-name: "&8⚔ Netherite"
weight: 8
crown:
material: GOLDEN_HELMET
display-name: "&e Crown"
weight: 5
star:
material: NETHER_STAR
display-name: "&d★ Star"
weight: 3
creeper:
material: CREEPER_HEAD
display-name: "&a☠ Creeper"
weight: 12
mystery:
material: CHEST
display-name: "&5❓ Mystery"
weight: 10
rewards.yml
combinations:
THREE_DIAMONDS:
pattern:
- DIAMOND
- DIAMOND
- DIAMOND
reward:
commands:
- "give %player% diamond 5"
THREE_EMERALDS:
pattern:
- EMERALD
- EMERALD
- EMERALD
reward:
commands:
- "give %player% emerald 8"
THREE_NETHERITE:
pattern:
- NETHERITE
- NETHERITE
- NETHERITE
reward:
commands:
- "give %player% netherite_ingot 2"
THREE_CROWNS:
pattern:
- CROWN
- CROWN
- CROWN
reward:
commands:
- "spin give %player% 25"
FIVE_CROWNS:
jackpot: true
pattern:
- CROWN
- CROWN
- CROWN
- CROWN
- CROWN
reward:
commands:
- "give %player% nether_star 10"
- "spin give %player% 100"
GUI configuration
machines.yml
default:
title: "&8✦ &bSPINX MACHINE &8✦"
rows: 6
border:
enabled: true
material: BLACK_STAINED_GLASS_PANE
reels:
reel-1:
slots: [20, 29]
reel-2:
slots: [21, 30]
reel-3:
slots: [22, 31]
reel-4:
slots: [23, 32]
reel-5:
slots: [24, 33]
buttons:
spin:
slot: 49
material: LIME_CONCRETE
name: "&a&l✦ SPIN ✦"
lore:
- "&7Cost: &e%spin_cost% Token(s)"
- ""
- "&aClick to spin!"
rewards:
slot: 45
material: CHEST
name: "&6&lREWARDS"
lore:
- "&7View available combinations."
stats:
slot: 53
material: BOOK
name: "&b&lSTATISTICS"
lore:
- "&7View your SpinX statistics."
⚡ Animation configuration
animations.yml
spin:
enabled: true
starting-delay: 2
reel-speed:
reel-1: 2
reel-2: 3
reel-3: 4
reel-4: 5
reel-5: 6
stop-delay:
reel-1: 8
reel-2: 12
reel-3: 16
reel-4: 20
reel-5: 24
effects:
particles: true
sounds: true
screen-flash: true
jackpot:
title: "&e&l✦ JACKPOT ✦"
subtitle: "&f%player% hit the jackpot!"
fireworks: true
particles: true
duration: 80
sounds:
- ENTITY_PLAYER_LEVELUP
- UI_TOAST_CHALLENGE_COMPLETE
- ENTITY_FIREWORK_ROCKET_LAUNCH
Sounds
sounds.yml
spin:
start: BLOCK_NOTE_BLOCK_PLING
reel: BLOCK_NOTE_BLOCK_HAT
stop: BLOCK_NOTE_BLOCK_BELL
win:
small: ENTITY_PLAYER_LEVELUP
big: UI_TOAST_CHALLENGE_COMPLETE
jackpot:
- ENTITY_FIREWORK_ROCKET_LAUNCH
- ENTITY_PLAYER_LEVELUP
- UI_TOAST_CHALLENGE_COMPLETE
lose:
sound: BLOCK_NOTE_BLOCK_BASS
near-miss:
sound: BLOCK_NOTE_BLOCK_PLING
Messages
messages.yml
prefix: "&8[&bSpinX&8] "
spin:
started: "%prefix%&7Spinning..."
cooldown: "%prefix%&cYou must wait %time%s."
no-tokens: "%prefix%&cYou don't have enough Spin Tokens."
already-spinning: "%prefix%&cYou are already spinning!"
win:
small: "%prefix%&aYou won &e%reward%&a!"
big: "%prefix%&bBIG WIN! &fYou won &e%reward%&f!"
jackpot:
player: "&e&l✦ JACKPOT! &fYou won &e%reward%&f!"
broadcast: "&6&l✦ JACKPOT ✦ &e%player% &fhas hit the jackpot!"
admin:
reload: "%prefix%&aConfiguration reloaded."
give: "%prefix%&aGave &e%amount% &aSpin Tokens to &f%player%."
Commands
/spin
/spinmachine
/spin rewards
/spin balance
/spin stats
/spin top
/spin give <player> <amount>
/spin take <player> <amount>
/spin reload
/spinadmin
Permissions:
spinx.use
spinx.rewards
spinx.balance
spinx.stats
spinx.top
spinx.admin
spinx.give
spinx.take
spinx.reload
spinx.admin.gui
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 26.1, 26.2, 26.3
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
✦ SpinX ✦ is a free Minecraft Java mod. Compatible with Minecraft 26.1, 26.2, 26.3. Downloaded 14 times (via Spigot). Download it and open it directly in the game.