Compatibility
Minecraft: Java Edition
1.21–1.21.4
Platforms
75% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Creators
Details
Licensed ARR
Published 2 months ago
Updated 3 weeks ago
LamCrafting: Advanced Custom Crafting System
Key Features Overview
LamCrafting is a feature-rich custom crafting system for Minecraft servers with:
- Multiple crafting stations with customizable GUIs
- Custom recipes with various requirement types
- Economy integration (money, points, XP)
- Permission-based access control
- Full configurability
- Complete Folia support (important for highly optimized servers)
How It Works
The plugin allows server administrators to create customized crafting stations where players can craft unique items by providing specific resources, currency, or experience levels. Each station can have its own set of recipes with unique requirements.
Core Functionality
- Crafting Stations: Create different stations for specialized crafting (e.g., blacksmith, enchanter, alchemist)
- Custom Recipes: Define what players can craft at each station
- Multiple Requirement Types:
- Regular items
- Custom items (via ItemEdit)
- Money (via Vault)
- Points (via PlayerPoints)
- Experience levels
- Permission Control: Restrict access to stations and recipes
- Command Integration: Run commands when items are crafted
Technical Requirements
Dependencies
- Required: YskLib
- Optional:
- ItemEdit (for custom items)
- Vault (for money costs)
- PlayerPoints (for points costs)
Configuration
The plugin is highly configurable with:
- Main Config: Control debug levels, GUI layouts, and messages
Spoiler
# ======================================================
# LAMCRAFTING CONFIGURATION
# ======================================================
# Debug level (0-3)
# 0 = Critical errors only
# 1 = Warnings and errors
# 2 = Info messages
# 3 = Debug messages
debug: 3
# ======================================================
# GUI CONFIGURATION
# ======================================================
gui:
# ----------------------
# CRAFTING GUI SETTINGS
# ----------------------
crafting:
# Whether to show currency requirements in separate slots
# true = currency shown in X slots
# false = currency shown with other requirements
separate_currency_requirements: true
# GUI layout pattern
# Each character represents a slot type:
# # = Border item
# O = Output item (recipe result)
# X = Currency requirements
# R = Item requirements
# C = Craft button
# B = Back button
pattern:
- "########B" # Must be exactly 9 characters per row
- "# O #" # O = Output slot (recipe result)
- "##X#X#X##" # X = Currency requirement slots
- "#RRRRRRR#" # R = Item requirement slots
- "#RRRRRRR#"
- "####C####" # C = Craft button
# Item definitions for each slot type
items:
'#': # Border item
material: GRAY_STAINED_GLASS_PANE
name: " " # Empty name (just a space)
'O': # Output slot
material: AIR # Will be replaced with recipe result
'R': # Requirement slots
material: AIR # Will be replaced with requirements
'X': # Currency slots
material: AIR # Will be replaced with currency
'C': # Craft button
material: ANVIL
name: "&aClick to Craft!"
lore:
- "&7Click to craft if you have"
- "&7the required materials!"
'B': # Back button
material: BARRIER
name: "&cBack to Recipes"
# Suffix added to station title when in crafting GUI
title_suffix: " - Crafting"
# Currency display settings
currency:
# Money currency (requires Vault)
money:
material: GOLD_INGOT # Icon for money requirements
name: "&6Money Requirement"
symbol: "$" # Currency symbol
has_enough: "&a" # Color when player has enough
not_enough: "&c" # Color when player doesn't have enough
lore:
- "&7Required: {has_enough}{symbol}{balance}&7/&e{symbol}{amount}"
# Points currency (requires PlayerPoints)
points:
material: DIAMOND
name: "&aPlayer Points Requirement"
symbol: ""
has_enough: "&a"
not_enough: "&c"
lore:
- "&7Required: {has_enough}{balance}&7/&e{amount} points"
# XP level currency
xp_level:
material: EXPERIENCE_BOTTLE
name: "&eExperience Level Requirement"
symbol: ""
has_enough: "&a"
not_enough: "&c"
lore:
- "&7Required: {has_enough}{balance}&7/&e{amount} levels"
# Item requirement display format
requirement_display:
format: "&7Required: {has_enough}{current} &7/ &f{amount}"
has_enough: "&a" # Color when player has enough
not_enough: "&c" # Color when player doesn't have enough
# ----------------------
# RECIPE BROWSE GUI SETTINGS
# ----------------------
browse:
# GUI layout pattern
# # = Border item
# R = Recipe slots
# P = Previous page button
# N = Next page button
pattern:
- "#########" # Must be exactly 9 characters per row
- "#RRRRRRR#" # R = Recipe slots
- "#RRRRRRR#"
- "#RRRRRRR#"
- "#P#####N#" # P = Previous page, N = Next page
# Item definitions for each slot type
items:
'#': # Border item
material: LIGHT_BLUE_STAINED_GLASS_PANE
name: " "
'R': # Recipe slots
material: AIR # Will be replaced with recipes
'P': # Previous page button
material: ARROW
name: "&ePrevious Page"
'N': # Next page button
material: ARROW
name: "&eNext Page"
# Suffix added to station title when in browse GUI
title_suffix: " - Recipes"
# ----------------------
# LOCKED RECIPE SETTINGS
# ----------------------
# Display for recipes the player doesn't have permission to craft
locked_recipe:
material: RED_STAINED_GLASS_PANE
name: "&c&lLocked Recipe: &7{original_name}"
lore:
- "&7This recipe is locked!"
- "&7You need permission:"
- "&8{permission}"
# ----------------------
# STATION SELECTION GUI SETTINGS
# ----------------------
stations:
# Whether the station selection GUI is enabled
enabled: true
# Title of the station selection GUI
title: "&8Crafting Stations"
# GUI layout pattern
# # = Border item
# S = Station slots
pattern:
- "#########"
- "#SSS SSS#" # S = Station slots
- "#SSS SSS#"
- "#########"
# Item definitions for each slot type
items:
'#': # Border item
material: BLACK_STAINED_GLASS_PANE
name: " "
'S': # Station slots
material: AIR # Will be replaced with station icons
# ======================================================
# MESSAGE CONFIGURATION
# ======================================================
# All plugin messages (supports color codes with &)
messages:
# Prefix for all plugin messages
prefix: "&8[&6LamCrafting&8] "
# General messages
no_recipes: "&cNo recipes available!"
no_permission: "&cYou don't have permission to do that!"
too_many_requirements: "&cError: Recipe has too many requirements ({count}) for available slots ({slots})"
# Crafting messages
missing_items: "&cThis recipe cannot be crafted due to missing items!"
missing_materials: "&cYou don't have the required materials or currency!"
craft_success: "&aSuccessfully crafted the item!"
reload_close: "&cThe crafting menu was closed due to a recipe reload."
# Station messages
no_station_permission: "&cYou don't have permission to use this station!"
station_not_found: "&cStation not found!"
station_disabled: "&cThis station is currently disabled!"
station_gui_disabled: "&cStation GUI is disabled!"
# Admin command messages
player_not_found: "&cPlayer not found!"
no_admin_permission: "&cYou don't have permission to open stations for other players!"
console_specify_player: "&cConsole must specify a player name!"
station_opened: "&aOpened station &e{station} &afor &e{player}{force}"
force_suffix: " &7(Forced)"
- Station Configs: Define each crafting station's appearance, permissions, and recipes
Spoiler
# ======================================================
# BASIC CRAFTING STATION CONFIGURATION
# ======================================================
# Title shown at the top of the station's GUI (supports color codes)
gui_title: "&8Basic Crafting"
# Permission required to access this station
# If not specified, no permission is required.
permission: "lamcrafting.station.basic"
# Whether this station is enabled and accessible
enabled: true
# Sorting weight in the station selection GUI
# Higher numbers appear first in the list
GUI-weight: 10
# Icon shown in the station selection GUI
# Can be a vanilla material or ItemEdit item (itemedit:item_id)
GUI-icon: CRAFTING_TABLE
# Whether to hide this station in the station selection GUI
# Set to true to make it accessible only via direct command
GUI-hidden: false
# ======================================================
# RECIPES
# ======================================================
recipes:
# ----------------------
# BASIC MATERIAL RECIPE
# ----------------------
# Simple recipe with vanilla materials
diamond_block:
material: DIAMOND_BLOCK # Result item material
# Requirements list - what's needed to craft this item
requirements:
- material: DIAMOND
amount: 9
# ----------------------
# CUSTOM NAMED ITEM
# ----------------------
# Recipe with custom name and lore
super_diamond_block:
material: DIAMOND_BLOCK
name: "&b&lSuper Diamond Block" # Custom name with color codes
lore: # Custom lore with color codes
- "&7Triple compressed"
- "&7Worth triple the diamonds"
- "" # Empty line in lore
- "&eRight-click to break into diamonds"
requirements:
- material: DIAMOND
amount: 27
# ----------------------
# CUSTOM ITEM RECIPE
# ----------------------
# Recipe using ItemEdit custom item as result
kings_sword:
custom_item: "itemedit:king_sword" # ItemEdit item ID
# or custom_item: "custom_item_id" # Custom item ID from local items.yml or ysklib/shareditems.yml if using YSKLib shared items.
requirements:
- material: DIAMOND # Vanilla material requirement
amount: 5
- custom_item: "itemedit:king_helmet" # Custom item requirement
amount: 1
# ----------------------
# ECONOMY COST RECIPE
# ----------------------
# Recipe with money cost (requires Vault)
expensive_sword:
material: DIAMOND_SWORD
name: "&6Expensive Sword"
lore:
- "&7Costs: &6$1000"
requirements:
- material: DIAMOND
amount: 2
- money: 1000 # Money cost (requires Vault)
# ----------------------
# POINTS COST RECIPE
# ----------------------
# Recipe with points cost (requires PlayerPoints)
special_sword:
material: GOLDEN_SWORD
name: "&eSpecial Sword"
lore:
- "&7A special sword"
- "&7Costs: &b100 points"
requirements:
- material: GOLD_INGOT
amount: 3
- player_points: 100 # Points cost (requires PlayerPoints)
# ----------------------
# XP LEVEL COST RECIPE
# ----------------------
# Recipe with experience level cost
enchanted_sword:
material: NETHERITE_SWORD
name: "&dEnchanted Sword"
lore:
- "&7Requires 30 levels of experience"
requirements:
- material: NETHERITE_INGOT
amount: 2
- xp_level: 30 # Experience level cost
# ----------------------
# MULTI-CURRENCY RECIPE
# ----------------------
# Recipe with multiple currency costs
legendary_sword:
material: NETHERITE_SWORD
name: "&6Legendary Sword"
lore:
- "&7A legendary weapon"
- "&7forged with ancient magic"
- "&7Costs: &6$1000 &7and &b500 points"
requirements:
- material: NETHERITE_INGOT
amount: 4
- custom_item: "itemedit:magic_crystal"
amount: 2
- money: 1000 # Money cost
- player_points: 500 # Points cost
- xp_level: 30 # XP level cost
# ----------------------
# CUSTOM REQUIREMENT DISPLAY
# ----------------------
# Recipe with custom display name for requirement
custom_display_recipe:
material: DIAMOND_PICKAXE
name: "&bMiner's Pickaxe"
requirements:
- material: DIAMOND
amount: 64
display_name: "&bPure Diamonds" # Custom name for requirement
# ----------------------
# COMMAND-ONLY RECIPE
# ----------------------
# Recipe that only runs commands (no item given)
command_only_reward:
material: NETHER_STAR # Display item in GUI only
name: "&6Special Reward"
give_item: false # Don't give the item, only run commands
commands: # Commands to run when crafted (supports placeholders)
# Commands are Console Commands. Use {player} to refer to the player crafting the item.
- "give {player} diamond 5" # {player} = player's name
- "eco give {player} 1000" # Economy command
- "pp give {player} 100" # PlayerPoints command
requirements:
- material: GOLD_INGOT
amount: 10
# ----------------------
# HYBRID RECIPE
# ----------------------
# Recipe that gives both item and runs commands
hybrid_reward:
material: DIAMOND_SWORD
name: "&cFiery Sword"
give_item: true # Give the item (default is true)
commands: # Commands run in addition to giving the item
- "effect give {player} strength 60 1"
- "broadcast {player} has crafted a Fiery Sword!"
requirements:
- material: DIAMOND
amount: 2
- material: BLAZE_ROD
amount: 4
# ----------------------
# PERMISSION-RESTRICTED RECIPE
# ----------------------
# Recipe that requires a specific permission
admin_item:
material: BEDROCK
name: "&4Admin Block"
lore:
- "&7Only admins can craft this"
permission: "lamcrafting.recipe.basic.admin" # Permission required to craft this recipe. If not specified, no permission is required.
requirements:
- material: OBSIDIAN
amount: 64
Sample Configuration
The configuration allows you to customize:
- GUI appearance and layout
- Requirements display
- Crafting buttons
- Currency display
- Message formatting
- Station access permissions
Recipe Types
You can create various recipe types:
- Basic material recipes
- Custom named items
- Custom item recipes (ItemEdit integration)
- Economy cost recipes
- Points cost recipes
- XP level cost recipes
- Multi-currency recipes
- Command-only rewards
- Permission-restricted recipes
Commands
/lamcraft (aliases: lmc)
├── help - Shows help menu
├── station - Opens station GUI
│ ├── <name> - Opens specific station
│ ├── <name> <player> - Opens for others
│ └── <name> <player> -f - Force opens
├── reload - Reloads config
└── items - Manages custom items
Permissions
lamcrafting.use - Basic usage
lamcrafting.admin - Admin commands
lamcrafting.items - Item management
lamcrafting.station - GUI access
lamcrafting.station.<station_id> - Station access
lamcrafting.recipe.<station>.<recipe> - Recipe access
Support
If you need help with the plugin:
- Join the YusakiDev Discord: https://discord.gg/AjEh3dMPfq
LamCrafting Plugin - © 2025 YusakiDev. All Rights Reserved.
USAGE TERMS:
1. You may download and use this plugin on any Minecraft server.
2. You may NOT decompile, modify, or redistribute this plugin.
3. You may NOT sell or monetize this plugin.
This plugin is provided "as is" without warranty of any kind.