SuperLuckyBlock | The MOST CUSTOMIZABLE LuckyBlock Plugin | CUSTOM Surprises | Wands | 1.16 - 1.21.x icon

SuperLuckyBlock | The MOST CUSTOMIZABLE LuckyBlock Plugin | CUSTOM Surprises | Wands | 1.16 - 1.21.x -----

Create your own CUSTOM surprises, lucky blocks, wands, and more with SuperLuckyBlock!



7.png

SuperLuckyBlock requires Java 17 or higher! Please ask your hosting service to upgrade if you are on a lower version.

To download the last version that supported Minecraft 1.8 - 1.11.x click here.
To download the last version that supported Minecraft 1.12 click here.
To download the last version that supported Minecraft 1.13 - 1.15.x click here.


Want to try this plugin out before buying? Take a look at SuperLuckyBlock Lite.

Support will only be provided on my discord server or via PMs. Do not use the discussion or reviews for support.


Logo.png

SuperLuckyBlock is the MOST customizable luckyblock plugin that gives you complete control over its features.
You can create your own custom surprises, create multiple own custom luckyblocks, create your own custom wands, modify almost every single part of the plugin, and much more!
You can use SuperLuckyBlock in any way you want!


SLB-Divider-Features.png
Custom Surprises
Exclusive to SuperLuckyBlock: create your own custom surprises and modify them to your liking.
Spawn mobs, drop items, create buildings, execute commands, or all of these at once!



Lua Surprises
SuperLuckyBlock allows you to create custom surprises in the Lua scripting language. This allows you to create surprises in any way you want! You can fully interact with the Spigot API, allowing you to create any surprise you want!
Sandboxed (untrusted) script:
Code (Text):
--[[
Example script that can run untrusted.

The following variables are available to lua scripts. All of these variables are exact copies of their Java classes from Spigot:
- player - The player that broke the luckyblock. Documentation: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/Player.html
- loc - The location of the broken luckyblock. Documentation: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Location.html
- world - The world the luckyblock was broken in. Documentation: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/World.html
- scheduler - The bukkit scheduler which can be used to, for example, delay tasks: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/scheduler/BukkitRunnable.html
- All material enum values are available as global variables, prefixed with MATERIAL_. (For example, you can use MATERIAL_IRON_BOOTS to use the IRON_BOOTS Material). Materials: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html
- All effect enum values are available as global variables, prefixed with EFFECT_. Usage is the same as the material values. Effects: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Effect.html
- All sound enum values are available as global variables, prefixed with SOUND_. Usage is the same as the material values. Sounds: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
- All enchantment values are available as global variables, prefixed with ENCHANTMENT_. Usage is the same as the material values. Enchantments: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/enchantments/Enchantment.html

SuperLuckyBlock also provides a utils class, which allows you to do the following things:
- utils:createItemStack(material, amount) - Allows you to create a new ItemStack. Docs: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/inventory/ItemStack.html
- utils:colorText(text) - Converts values like &3 to their respective colors.
- utils:createEnchantment(name) - Creates an Enchantment object with the specified enchantment. Enchantments: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/enchantments/Enchantment.html

Methods on these variables can be called in 2 ways:
- player:setFireTicks(100)
- player.setFireTicks(player, 100)

As you can see, calling a method with a dot requires you to pass the variable(in this case player) alongside the other arguments. You don't have to do that when using the semicolon.

If you are missing access to any classes/methods, feel free to contact me and I will look into adding support for it.
]]

local name = player:getName()

if string.find(name, "i") ~= nil then
    local itemStack = utils:createItemStack(MATERIAL_DIAMOND_SWORD, 1)
    local itemMeta = itemStack:getItemMeta()

    itemMeta:setDisplayName(utils:colorText("&2&lSome &3&lRandom &4&lSword"))
    itemMeta:addEnchant(utils:createEnchantment("KNOCKBACK"), math.random(1, 10), true)
    itemStack:setItemMeta(itemMeta)
    world:dropItemNaturally(loc, itemStack)
else
    local fireTicks = math.random(100, 500)

    player:setFireTicks(fireTicks)
    player:chat("I'm on fire for " .. fireTicks .. " ticks!")
end
 
Unsandboxed (trusted) script:
Code (Text):
--[[
Example script that can only be ran in trusted mode.

The same methods as specified in example.lua are available in trusted mode. In addition to that, scripts that run in trusted mode have access to the following features:
- All Java and Spigot classes (Luajava library)
- Any file reading or writing
- The IO library
- The OS library
- Loading other scripts
- Creating coroutines

Luajava provides two important functions that make trusted mode so powerful, but also dangerous:
- luajava.bindClass("fully.qualified.class.name") - Example: luajava.bindClass("org.bukkit.Bukkit"). Allows you to call static methods, access static fields and enum values
- luajava.newInstance("fully.qualified.class.name") - Example luajava.newInstance("org.bukkit.inventory.ItemStack"). Creates a new instance of the specified class. Allows the methods of that class to be used.
]]

local bukkit = luajava.bindClass("org.bukkit.Bukkit")
local server = bukkit:getServer()
local itemstack = luajava.newInstance("org.bukkit.inventory.ItemStack", MATERIAL_DIAMOND_BLOCK, 4)

player:chat("Hello! Welcome to " .. server:getName())
world:dropItemNaturally(player:getLocation(), itemstack)


Unlimited LuckyBlocks

SuperLuckyBlocks allows you to create unlimited CUSTOM luckyblocks.
You can set the skin of the skull, require permission, create custom surprises, and more!
You can use these as lootbox, a donation perk, or just a block that is craftable.



Wands
Wands are special weapons which all do different, special things. They can shoot entities, spawn lightning, or even heal the player. All wands can be found in the spoiler below:
- Slime Wand - Lets the player shoot a slime of configurable size.
- TNT Wand - Shoots a primed TNT.
- Blaze Wand - Shoots a blaze entity.
- Fireball Wand - Shoots a configurable amount of fireballs with a 0.5-second delay.
- Lightning Wand - Strikes lightning on the block the player is aiming at.
- Heal Wand - Heals the player with the configured amount of health.
- Teleport Wand - Teleports the player on top of the block they are currently looking at, as long as it is within the configured range.


Custom Wands
Do you not like the built-in wands, or are there any missing wands? SuperLuckyBlock allows you to create your own wands that can do the following things:
- Throw blocks
- Spawn entities
- Execute commands



Custom Skull Textures
SuperLuckyBlock allows you to use skin textures from websites like https://minecraft-heads.com/ by using their texture URL (example: http://textures.minecraft.net/textu...fc999a0cb127ca2f9705af1554a86fef131112b9c11ac). You can also use a player's skin.
[​IMG]



Chances per Surprise
Surprises in SuperLuckyBlock aren't just randomly selected, they use a chance system, so you can decide which surprises are rarer than the other ones!
Don't want to see everyone walking around with a strong Lucky Sword? No problem! Just lower the chance to make it rare!



LuckyActions
Only getting luckyblocks from crafting would be boring, right?
That's why SuperLuckyBlock contains a system named LuckyActions!
[​IMG]
LuckyActions gives your players a configurable chance to get a luckyblock while performing certain actions in the game.
This makes being active on your server more fun and rewarding.
Currently, supported actions are:
- Mining - Players have a small chance of finding a LuckyBlock while mining, depending on the block they broke.
- Player kill and mob kill - Players have a slight chance of finding a LuckyBlock when killing a player or mob.
- Other actions will be added in the future!



Custom Messages
SuperLuckyBlock allows you to add a message to each surprise, including custom surprises!


Crafting Recipe
LuckyActions aren't the only way to get luckyblocks.
You can enable and customize a crafting recipe, so your players can craft the luckyblocks.
[​IMG]


Shop
SuperLuckyblock allows you to buy or sell Luckyblocks using a GUI. You can set any price you want.

[​IMG]


PlaceholderAPI support
PlaceholderAPI can be used to display information about a player's luckyblock statistics.
More info can be found in the compatibility section.



High Customizability
SuperLuckyBlock allows you to change many settings.
You can disable luckyblocks in a specific world, you can set permissions, change the skull skin, customize the sound and particles on break, and a lot more.
default.yml (luckyblock configuration):
The luckyblock configuration file is too large for the Spigot resource page, you can find it on pastebin: https://pastebin.com/HD9nVhyH

wands.yml
Code (YAML):
Settings :
  # Settings this to false will fully disable wands.
  Enabled
: true

# Throws a blaze.
Blaze
:
  # The display name of the want.
  DisplayName
: "&6&lBlaze Wand"
  # The material of the item the player will receive.
  Material
: "FIRE_CHARGE"
  # The amount of times a wand can be used before it breaks. Set to -1 for infinite uses.
  Uses
: 4
  # The amount of time the player must wait before being able to use the wand again. Set to 0 to disable.
  Cooldown
: 30
  # A higher strength means that the TNT is thrown further, a lower multiplier means it will land closer to the player.
  ThrowStrength
: 0.25
# Shoots a fireball
Fireball
:
  # The display name of the wand.
  DisplayName
: "&4&lFireball Wand"
  # The material of the item the player will receive.
  Material
: "STICK"
  # The amount of times a wand can be used before it breaks. Set to -1 for infinite uses.
  Uses
: 7
  # The amount of time the player must wait before being able to use the wand again. Set to 0 to disable.
  Cooldown
: 20
  # The amount of fireballs to shoot per use.
  Amount
: 3
  # The delay between each fireball in ticks. (20 ticks = 1 second)
  Delay
: 5
# Heals the player.
Heal
:
  # The display name of the want.
  DisplayName
: "&a&lHeal Wand"
  # The material of the item the player will receive.
  Material
: "GOLDEN_APPLE"
  # The amount of times a wand can be used before it breaks. Set to -1 for infinite uses.
  Uses
: 5
  # The amount of time the player must wait before being able to use the wand again. Set to 0 to disable.
  Cooldown
: 30
  # The amount of health to add. (1 = half a heart)
  Amount
: 10
# Strikes lightning at where the player is looking at.
Lightning
:
  # The display name of the want.
  DisplayName
: "&b&lLightning Wand"
  # The material of the item the player will receive.
  Material
: "BLAZE_ROD"
  # The amount of times a wand can be used before it breaks. Set to -1 for infinite uses.
  Uses
: 6
  # The amount of time the player must wait before being able to use the wand again. Set to 0 to disable.
  Cooldown
: 15
  # The maximum range in blocks.
  Range
: 100
# Throws a slime.
Slime
:
  # The display name of the wand.
  DisplayName
: "&2&lSlime Wand"
  # The material of the item the player will receive.
  Material
: "SLIME_BALL"
  # The amount of times a wand can be used before it breaks. Set to -1 for infinite uses.
  Uses
: 4
  # The amount of time the player must wait before being able to use the wand again. Set to 0 to disable.
  Cooldown
: 30
  # A higher strength means that the TNT is thrown further, a lower multiplier means it will land closer to the player.
  ThrowStrength
: 0.25
# Throws an ignited TNT.
TNT
:
  # The display name of the wand.
  DisplayName
: "&c&lTNT Wand"
  # The material of the item the player will receive.
  Material
: "TNT"
  # The amount of times a wand can be used before it breaks. Set to -1 for infinite uses.
  Uses
: 5
  # The amount of time the player must wait before being able to use the wand again. Set to 0 to disable.
  Cooldown
: 20
  # A higher strength means that the TNT is thrown further, a lower multiplier means it will land closer to the player.
  ThrowStrength
: 0.15
Custom
:
  # Name of the wand, can be anything you want as long as it doesn't interfere with any other premade or custom wand.
  SandWand
:
    Enabled
: true
    DisplayName
: "&eSand Wand"
    Material
: "STICK"
    Uses
: 10
    Cooldown
: 15
    Mode
:
      # Throws the specified block with the given strength.
      Throw
:
        Enabled
: true
        # The block to throw.
        Block
: SAND
        # A higher strength means that the sand is thrown further, a lower multiplier means it will land closer to the player.
        ThrowStrength
: 0.20
      # Spawns an entity at the given location.
      Spawn
:
        Enabled
: false
        # The entity to spawn.
        Entity
: CREEPER
        # The spawn location. Valid locations are:
        # player - Spawns the entity on top of the player.
        # cursor - Spawns the entity at the player's cursor.
        Location
: cursor
        # The amount of entities to spawn.
        Amount
: 1
      # Runs the specified commands.
      Command
:
        Enabled
: false
        Commands
:
         - "heal %player%"
settings.yml
Code (YAML):
Settings:
  General
:
    Prefix
: "&eSLB >> &f"
  Database
:
    # Valid modes:
    # MySQL - Requires a connection to a MySQL server.
    # SQLite - Stores all data on the filesystem in ActionPoints.db
    Mode
: "sqlite"
    # The amount of minutes to wait between saving data to the database. You might want to lower this if you want to reduce data loss on a crash.
    SaveRate
: 5
    # Only required for MySQL
    Connection
:
      Host
: "localhost"
      Port
: 3306
      Username
: "root"
      Password
: "admin123"
      Database
: "superluckyblock"
      # The default value is usually fine.
      PoolSize
: 20
  Startup
:
    CheckUpdate
: true
  Shop
:
    # The title of the ShopGUI
    Title
: "&e&lLuckyblock Store: %luckyblock%"
    BuyItem
:
      # The item that will be used for the buy buttons.
      Material
: "EMERALD_BLOCK"
      Name
: "Buy %amount%x  - $%price%"
    SellItem
:
      # The item that will be used for the sell buttons.
      Material
: "REDSTONE_BLOCK"
      Name
: "Buy %amount%x  - $%price%"
  LuckyMining
:
    Protection
:
      # Prevents players from getting luckyblocks from placed blocks.
      # Placed blocks are kept in memory for the specified duration. After that, the player will have a chance to get a reward again.
      # Saved blocks are removed from memory after a server restart!
      BlockPlaceAbuse
:
        Enabled
: True
        # How long placed blocks will be kept in memory in minutes. Set to -1 for indefinite.
        # Longer durations and -1 may cause higher memory usage.
        Duration
: 30
    Timeout
:
      # When enabled, players can only receive one luckyblock every X seconds.
      Enabled
: true
      # The amount of seconds between luckyblock rewards.
      Time
: 30
  Scripting
:
    # Setting this to true allows you to use scripts as a custom surprise. Currently supports the following languages: Lua
    # Scripting is disabled by default because of the potential risks associated with it.
    # Please make sure that you trust the author of the scripts you plan on using, before enabling this feature.
    Enabled
: false
    # Scripts listed here are considered trusted and won't run in the sandbox. Please only do this if you know what the scripts do and you trust the author.
    # Trusted scripts have access to all lua functions and the complete JVM. This means they have the capability to completely destroy your server.
    # Please only add a script to this list if you 100% know what you are doing and fully trust the script/author.
    # NOTE: The filenames are case-sensitive!
    # The sandbox currently prohibits access to the following things:
    # - All Java classes (Luajava library)
    # - Any file reading or writing
    # - The IO library
    # - The OS library
    # - Loading other scripts
    # - Creating coroutines
    TrustedScripts
: [ ]
 
messages.yml
Code (YAML):
Messages:
  Bought
: "You successfully bought %amount% luckyblocks."
  CantAfford
: "You do not have enough money to buy this luckyblock."
  CantSell
: "You don't have enough luckyblocks to sell."
  CommandNotFound
: "Unknown command. Please run /slb help for a list of available commands."
  CreativeNotAllowed
: "You can't open luckyblocks while in creative mode."
  CreativeInteractionNotAllowed
: "You can't interact with luckyblocks in your inventory while in creative."
  EconomyNotEnabled
: "You can't buy or sell this luckyblock."
  IncorrectUsage
: "Invalid usage of this command. Please run /slb help for more info."
  InvalidLuckyblock
: "The luckyblock you specified does not exist. Luckyblock names are case-sensitive!"
  NoPermission
: "You do not have the permission to run this command."
  NotANumber
: "The amount you provided is not a number."
  NotAPlayer
: "You must be a player to run this command."
  PlayerNotOnline
: "The player you specified is not online or does not exist."
  Sold
: "You successfully sold %amount% luckyblocks."
  WandOnCooldown
: "This wand is on cooldown for %time% seconds."
Help
:
  # If set to true, the message below will be used instead of the built-in help message that adapts to the player's permissions.
  UseCustom
: false
  MessageLines
:
   - "&eSuperLuckyBlock Help"
    - "<> = required, [] = optional"
    - "/slb convert - Converts old configurations in the /convert/ and old luckyblock files in the /convert/luckyblocks directory."
    - "/slb debug - Creates a debug report."
    - "/slb give <luckyblock name> <player> [amount] - Gives the specified luckyblock to the specified player."
    - "/slb giveall <luckyblock name> [amount] - Give a luckyblock to all players currently online."
    - "/slb givewand <wand name> - Gives the specified wand to a player."
    - "/slb help - Displays this page."
    - "/slb reload - Reloads the configuration. Might not reload all options, so please restart your server if this happens."
    - "/slb shop <luckyblock> - Open the shop for the specified luckyblock."



[​IMG]
Survival
SuperLuckyBlock makes survival way more fun. Players love testing their luck!
Will they get a lucky sword, or maybe an explosion? It makes their experience more unique and fun.



Lucky Skywars
You can give your skywars minigame a unique twist by adding luckyblocks to it.
I recommend adding some extra custom surprises like buildings, so it's even more fun!
Although SuperLuckyBlock does not directly provide Lucky Skywars or integrate with any Skywars plugins, you can use sponges as a luckyblock, so plugins regenerate them when a game starts!



Prison
With the use of sponge mode, you can use sponges in your prison mines to make mining a lot more interesting, fun, and rewarding for your players!
You can also use LuckyActions to have players randomly find LuckyBlocks while mining.



Other Minigames
You can use SuperLuckyBlock with any minigame that allows you to break blocks as long as it saves your map or rolls it back.


Fun
Of course, you can use luckyblocks just for fun!
You could play with your friends, create maps or staircases with luckyblocks and do a luckyblock race or just see who is the luckiest. Everything is possible!



SLB-Divider-Compat.png
Requirements
Minecraft 1.16 or higher is required.
Java 17 or higher is required.
The other plugins listed below are optional.


PlaceholderAPI
SuperLuckyBlock contains one placeholder at the moment:
%superluckyblock_luckyblocksbroken% - allows you to display the number of blocks broken.


Vault
SuperLuckyBlock supports the buying and selling of luckyblocks via the /slb shop command.
You will need Vault and an economy plugin (you can just use essentials if you don't know one).


WorldEdit
WorldEdit is required to spawn buildings when using custom building surprises.



SLB-Divider-Commands.png
<> = required, [] = optional
/slb give <luckyblock name> <player> [amount] - Gives the specified luckyblock to the specified player.
/slb giveall <luckyblock name> [amount] - Give a luckyblock to all players currently online.
/slb help - Displays this page.
/slb reload - Reloads the configuration. Might not reload all options, so please restart your server if this happens.



SLB-Divider-Perms.png
- superluckyblock.help - gives you permissions to use /slb help
- superluckyblock.give - gives you permission to use /slb give
- superluckyblock.giveall - gives you permission to use /slb giveall
- superluckyblock.reload- gives you permission to use /slb reload
Resource Information
Author:
----------
Total Downloads: 703
First Release: Nov 5, 2017
Last Update: Oct 5, 2024
Category: ---------------
All-Time Rating:
57 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings