Mod
Xiyu's Lucky Block
No reviews yet
A highly customizable lucky block module provides a lucky block API for making attachments and a convenient method for customizing data packages.
Includes quality of life improvements and small tweaks to enhance and customize gameplay.
Forge is a popular mod loader for versions 1.1+ of Minecraft.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
Resources
External Links
About
Description
Lucky Block Mod
Features
Event Handler Module
- Allows users to define various events in
lucky_functions.jsonfile to trigger when lucky blocks are mined
- Allows users to define various events in
Loot Handler Module
- Supports obtaining items from any loot table in any data pack
Structure Module
- Supports loading and generating structures from any data pack
Data Pack Support
- For detailed information, please refer to DATAPACK.md
Example Block
- Provides example lucky blocks
- Lucky value range: 0-200
- Higher numbers are more likely to trigger lucky effects
API Documentation
Creating Custom Lucky Blocks
- Extend Base Lucky Block Class
public class CustomLuckyBlock extends BaseLuckyBlock {
public CustomLuckyBlock() {
super(); // Use default properties
}
}
- Customize Block Properties
public class CustomLuckyBlock extends BaseLuckyBlock {
public CustomLuckyBlock() {
super(Properties.of()
.strength(1.0f)
.sound(SoundType.WOOD)
// Other properties...
);
}
}
- Custom Break Effect
@Override
protected void onLuckyBlockBreak(Level level, BlockPos pos, BlockState state, Player player) {
if (level instanceof ServerLevel serverLevel) {
// Get lucky value
int luckyValue = state.getValue(LUCKY);
// Load and execute effects
List<LuckyFunctionConfig> configs = LuckyConfigLoader.loadLuckyFunctions(serverLevel, luckyValue);
if (!configs.isEmpty()) {
LuckyFunctionConfig config = configs.get(level.random.nextInt(configs.size()));
JsonObject effect = config.getRandomEffect();
if (effect != null) {
executeEffect(new Effect(effect), serverLevel, pos, player, luckyValue);
}
}
}
}
Overridable Methods
onLuckyBlockBreak(Level level, BlockPos pos, BlockState state, Player player): Handle block break eventonRedStoneActivate(ServerLevel level, BlockPos pos, BlockState state): Handle redstone activation eventexecuteEffect(Effect effect, ServerLevel level, BlockPos pos, @Nullable Player player, int luckyValue): Execute effects
Lucky Value Description
- Range: 0-200
- Get method:
state.getValue(LUCKY) - Default generation: Randomly generates value 0-200 when placed
Trigger Methods
Break Trigger
- Triggers effect when player breaks the block
Redstone Trigger
- Triggers effect when receiving redstone signal
Usage Instructions
- Place configuration files in
data/[datapack]/lucky_functions/lucky_functions.json - Forge API: https://github.com/MinecraftForge/MinecraftForge/tree/1.20.1
Configuration File Format
{
"lucky_functions": [
{
"id": "luckyblocks:spawn_items",
"enabled": true,
"items": [
{
"loot_table": "minecraft:chests/simple_dungeon",
"enabled": true,
"count": 1
},
{
"loot_table": "minecraft:chests/desert_pyramid",
"enabled": false
}
]
},
{
"id": "luckyblocks:spawn_structure",
"enabled": true,
"structures": [
{
"structure": "minecraft:village/plains/houses/plains_small_house_1",
"enabled": true,
"rotation": "NONE"
}
]
}
],
"unlucky_functions": [
{
"id": "luckyblocks:explosion",
"enabled": true,
"effects": [
{
"power": 4,
"enabled": true,
"fire": false
},
{
"power": 8,
"fire": true,
"enabled": false
}
]
},
{
"id": "luckyblocks:spawn_mob",
"enabled": true,
"mobs": [
{
"type": "minecraft:creeper",
"enabled": true,
"charged": true,
"count": 1
},
{
"type": "minecraft:zombie",
"enabled": true,
"baby": true,
"equipment": {
"mainhand": "minecraft:diamond_sword"
}
}
]
}
]
}
Configuration Description
Function Structure
- Each function has a unique
idandenabledstatus - Functions can contain multiple sub-functions, each can be enabled/disabled individually
- Each function has a unique
Built-in Functions
spawn_items: Generate items (from loot tables)loot_table: Loot table pathcount: Generation count
spawn_structure: Generate structuresstructure: Structure pathrotation: Rotation direction (NONE, CLOCKWISE_90, CLOCKWISE_180, COUNTERCLOCKWISE_90)
explosion: Create explosionspower: Explosion powerfire: Whether to create fire
spawn_mob: Spawn entitiestype: Entity typecount: Spawn countcharged: Whether charged (Creeper specific)baby: Whether babyequipment: Equipment configuration
Sub-function Configuration
- Each sub-function must have an
enabledproperty - Can include additional properties specific to the function
- Supports condition configuration and random weights (to be implemented)
- Each sub-function must have an
Data Pack Customization
WIKI-DataPack
Screenshots
Gallery
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources