RecipeBook zMenu – Addon for zMenu icon

RecipeBook zMenu – Addon for zMenu -----

Find out how items are obtained with menu



RecipeBook Plugin - Complete Wiki

RecipeBook is a powerful and flexible Minecraft plugin for managing custom recipes, crafting menus, and player storage. It supports multiple crafting types, integrates with popular item plugins, and provides advanced menu configuration for an enhanced gameplay experience.

Table of Contents
  1. Features & Overview
  2. Installation & Setup
  3. Recipe Types vs Fake Recipes
  4. Configuration Guide
  5. Recipe Types & Examples
  6. Menu Configuration
  7. Player Storage System
  8. Plugin Integration
  9. Commands & Permissions
  10. Troubleshooting
  11. Support & Contact

Features & Overview

Supported Recipe Types:
  • Shaped Recipes - Traditional crafting table patterns
  • Shapeless Recipes - Any arrangement crafting
  • Furnace Recipes - Smelting with custom experience and time
  • Blast Furnace Recipes - Fast smelting for ores and armor
  • Smoker Recipes - Food cooking with custom parameters
  • Campfire Recipes - Outdoor cooking mechanics
  • Stonecutter Recipes - Stone cutting with custom ratios
  • Smithing Table Recipes - Advanced item upgrading with templates

Advanced Features:
  • Asynchronous Processing - Smooth server performance during crafting
  • RAM Caching - Lightning-fast recipe lookups
  • Batch Processing - Efficient data handling
  • Multi-Platform Logging - Console, file, Discord, and JSON formats
  • Discord Integration - Real-time crafting notifications via webhooks
  • Player Storage System - Secure item management during crafting
  • Queue Management - Organized crafting queues per menu type
  • Permission System - Granular access control

Plugin Integrations:
  • Nexo - Custom items and blocks
  • ItemsAdder - Advanced custom items
  • Oraxen - Resource pack items
  • ZItems - Custom item management
  • ZHead - Player head management
  • PlaceholderAPI - Dynamic placeholder support

⚡ Installation & Setup

Requirements:
  • Minecraft server (Spigot/Paper/Purpur recommended)
  • Java 21 or higher
  • Optional: Database (MySQL) for multi-server setups

Installation Steps:
  1. Download RecipeBook.jar and place it in your server's plugins/ folder
  2. Start your server to generate default configuration files
  3. Stop your server to edit configurations safely
  4. Configure config.yml in plugins/RecipeBook/
  5. Add your recipes in the appropriate recipe files
  6. Customize menus in the menu configuration files
  7. Start your server or use /recipebook_zmenu reload
All crafting types:
  • CRAFTING_TABLE - Crafting Table
  • STONECUTTER - Stonecutter
  • SMOKER - Smoker
  • SMITHING_TABLE - Smithing Table
  • FURNACE - Furnace
  • CAMPFIRE - Campfire
  • BLAST_FURNACE - Blast Furnace


Generated File Structure:
Code (Text):

plugins/
└── RecipeBook/
    ├── config.yml           # Main configuration
    ├── menus/              # Menu configurations
    │   ├── crafting_table.yml
    │   ├── furnace.yml
    │   └── ...
    ├── fake_recipes/
    │   ├── shaped.yml
    │   ├── shapeless.yml
    │   ├── furnace.yml
    │   └── ...
    ├── recipes/            # Recipe definitions
    │   ├── shaped.yml
    │   ├── shapeless.yml
    │   ├── furnace.yml
    │   └── ...
    └── logs/               # Log files (if enabled)
 
Recipe Types vs Fake Recipes

Understanding the difference between the recipes/ and fake_recipes/ folders is crucial for proper plugin functionality.

Recipes Folder (recipes/):
  • Vanilla Integration: These recipes work in both vanilla Minecraft inventories AND RecipeBook menus
  • Crafting Tables: Players can craft these items using regular crafting tables
  • Furnaces/Smokers/etc: Items can be smelted in vanilla furnaces, smokers, blast furnaces, etc.
  • Server Registration: These recipes are registered with the Minecraft server
  • Recipe Discovery: Players will see these recipes in their vanilla recipe book
  • Full Compatibility: Works with other plugins that interact with vanilla recipes

Example - Regular Recipe:
Code (YAML):

# This recipe works in BOTH vanilla crafting tables AND RecipeBook menus
custom_sword
:
  result
:
    item
: "diamond_sword"
    amount
: 1
  ingredients
:
    D
:
      item
: "diamond"
      amount
: 1
  pattern
:
   - " D "
    - " D "
    - " S "
 
Fake Recipes Folder (fake_recipes/):
  • Menu-Only: These recipes ONLY work within RecipeBook menus
  • No Vanilla Access: Cannot be crafted using vanilla crafting tables or furnaces
  • Custom Control: Perfect for special items that should only be crafted through your custom system
  • Advanced Features: Can use crafting delays, special requirements, and custom animations
  • Hidden Recipes: Won't appear in vanilla recipe books or discovery systems
  • Menu-Specific: Only accessible through the RecipeBook menu interface

Example - Fake Recipe:
Code (YAML):

# This recipe ONLY works in RecipeBook menus, not vanilla crafting
legendary_weapon
:
  result
:
    item
: "itemsadder:legendary_sword"
    amount
: 1
  ingredients
:
    L
:
      item
: "itemsadder:legendary_crystal"
      amount
: 1
    D
:
      item
: "diamond_sword"
      amount
: 1
  pattern
:
   - " L "
    - " D "
    - " L "
 
When to Use Each Type:

Use recipes/ when:
  • You want vanilla compatibility
  • Players should be able to craft anywhere
  • Integration with other recipe plugins is needed
  • You want the recipe to appear in vanilla recipe books

Use fake_recipes/ when:
  • You want exclusive menu-based crafting
  • Creating special/rare items that need controlled access
  • Using custom items that vanilla can't handle properly
  • Implementing crafting delays or special requirements
  • Preventing players from mass-producing items outside your system

Important Notes:
  • Recipe IDs must be unique across BOTH folders
  • Fake recipes offer more control but less convenience
  • Regular recipes provide better player experience for common items
  • Both types use identical YAML syntax and configuration
  • You can mix both types in your server setup

⚙️ Configuration Guide

Each recipe type has its own YAML file in the recipes/ folder. Every recipe must have a unique ID across all recipe types.

Main Configuration (config.yml):

Performance Settings:
Code (YAML):

# Debug and performance options
enable-debug
: false                 # Enable detailed logging
enable-debug-time
: false           # Show execution times
use-ram-to-store-recipes
: true     # Cache recipes in RAM (recommended)
use-async-crafting
: true           # Use async processing (recommended)
batch-task
: 10                     # Batch save interval (seconds)
 
Database Configuration:
Code (YAML):

# Storage configuration
storage-type
: SQLITE               # SQLITE (local) or MYSQL (remote)

database-configuration
:
  table-prefix
: "recipebook_"       # Database table prefix
  host
: 192.168.10.10             # MySQL host (if using MYSQL)
  port
: 3306                       # MySQL port
  user
: homestead                 # MySQL username
  password
: 'secret'               # MySQL password
  database
: recipebook             # MySQL database name
  debug
: false                     # SQL debug mode
 
Logging Configuration:
Code (YAML):

# Available log types: CONSOLE, JSON, DISCORD, LOGFILE
craft-log-types
:
 - CONSOLE     # Server console output
  - LOGFILE     # File-based logging
  - DISCORD     # Discord webhook (optional)
  - JSON       # JSON format logs (optional)
 
Discord Integration:
Code (YAML):

discord-webhook
:
  url
: "https://discord.com/api/webhooks/YOUR_WEBHOOK_URL"
  avatar-url
: ""                   # Optional webhook avatar
  username
: "RecipeBook"           # Optional webhook username
  component
: [ { "type":10, "content": "Player `%player%` crafted %log_items%" } ]
 
Recipe Types & Examples

Each recipe type has its own YAML file in the recipes/ or fake_recipes/ folder. Every recipe must have a unique ID across all recipe types.

1. Shaped Recipes (shaped.yml):
Perfect for traditional crafting table patterns.

Code (YAML):

diamond_sword_recipe
:
  result
:
    item
: "diamond_sword"           # Simplified vanilla item format
    amount
: 1
  ingredients
:
    D
:
      item
: "diamond"               # No "minecraft:" prefix needed
      amount
: 1
    S
:
      item
: "stick"                 # Simplified format
      amount
: 1
  pattern
:
   - " D "
    - " D "
    - " S "

custom_block_recipe
:
  result
:
    item
: "nexo:custom_block"       # Custom items need full format
    amount
: 4
  ingredients
:
    A
:
      item
: "stone"                 # Vanilla items simplified
      amount
: 2
    B
:
      item
: "redstone"             # Simplified format
  pattern
:
   - "ABA"
    - "BAB"
    - "ABA"
 
2. Shapeless Recipes (shapeless.yml):
For recipes where arrangement doesn't matter.

Code (YAML):

magic_dust_recipe
:
  result
:
    item
: "itemsadder:magic_dust"
    amount
: 3
  ingredients
:
    A
:
      item
: "minecraft:glowstone_dust"
      amount
: 2
    B
:
      item
: "minecraft:redstone"
      amount
: 1
    C
:
      item
: "minecraft:gunpowder"
      amount
: 1

simple_conversion
:
  result
:
    item
: "iron_ingot"             # Simplified vanilla format
    amount
: 1
  ingredients
:
    A
:
      item
: "iron_nugget"           # No minecraft: prefix needed
      amount
: 9
 
3. Furnace Recipes (furnace.yml):
Custom smelting with experience and cooking time control.

Code (YAML):

custom_ore_smelting
:
  result
:
    item
: "oraxen:custom_ingot"
  input
:
    item
: "oraxen:custom_ore"
  experience
: 1.5                   # Experience awarded
  cooking_time
: 400                 # Time in ticks (20 ticks = 1 second)

fast_cobblestone
:
  result
:
    item
: "stone"                   # Simplified format
  input
:
    item
: "cobblestone"             # No minecraft: prefix
  experience
: 0.1
  cooking_time
: 100                 # Faster than vanilla
 
4. Blast Furnace Recipes (blasting.yml):
For ores and armor processing.

Code (YAML):

super_fast_iron
:
  result
:
    item
: "iron_ingot"             # Simplified format
  input
:
    item
: "iron_ore"               # No minecraft: prefix
  experience
: 0.7
  cooking_time
: 50                 # Very fast smelting

custom_alloy
:
  result
:
    item
: "zitems:steel_ingot"
  input
:
    item
: "zitems:steel_ore"
  experience
: 2.0
  cooking_time
: 200
 
5. Smoker Recipes (smoking.yml):
Specialized for food items.

Code (YAML):

gourmet_steak
:
  result
:
    item
: "itemsadder:gourmet_steak"
  input
:
    item
: "beef"                   # Simplified vanilla format
  experience
: 1.0
  cooking_time
: 80

exotic_fish
:
  result
:
    item
: "nexo:cooked_exotic_fish"
  input
:
    item
: "nexo:exotic_fish"
  experience
: 0.8
  cooking_time
: 120
 
6. Campfire Recipes (campfire.yml):
Outdoor cooking mechanics.

Code (YAML):

campfire_bread
:
  result
:
    item
: "bread"                   # Simplified format
  input
:
    item
: "wheat"                   # No minecraft: prefix
  experience
: 0.3
  cooking_time
: 600                 # Slower than furnace

survival_meal
:
  result
:
    item
: "itemsadder:survival_ration"
  input
:
    item
: "itemsadder:raw_ingredients"
  experience
: 0.5
  cooking_time
: 800
 
7. Stonecutter Recipes (stonecutting.yml):
Efficient stone processing with custom ratios.

Code (YAML):

efficient_bricks
:
  result
:
    item
: "brick"                   # Simplified format
    amount
: 6                       # Better ratio than vanilla
  input
:
    item
: "clay_ball"               # No minecraft: prefix

custom_stone_cutting
:
  result
:
    item
: "oraxen:polished_custom_stone"
    amount
: 2
  input
:
    item
: "oraxen:rough_custom_stone"
 
8. Smithing Table Recipes (smithing.yml):
Advanced upgrading with templates and special options.

Code (YAML):

netherite_custom_sword
:
  copy_trim
: false                 # Don't copy armor trims
  keep_durability
: true           # Preserve item durability
  copy_pdc
: false                 # Copy PersistentDataContainer
  copy_enchantments
: true         # Transfer enchantments
  result
:
    item
: "itemsadder:netherite_custom_sword"
  template
:
    item
: "netherite_upgrade_smithing_template"   # Simplified format
  base
:
    item
: "itemsadder:diamond_custom_sword"
  addition
:
    item
: "netherite_ingot"         # No minecraft: prefix

armor_upgrade
:
  copy_trim
: true                 # Preserve armor trims
  keep_durability
: true
  copy_pdc
: true
  copy_enchantments
: true
  result
:
    item
: "nexo:legendary_chestplate"
  template
:
    item
: "nexo:legendary_template"
  base
:
    item
: "diamond_chestplate"     # Simplified vanilla format
  addition
:
    item
: "nexo:legendary_crystal"
 
️ Menu Configuration

Menu configurations are stored in the menus/ folder and follow zMenu syntax with RecipeBook-specific components.

Essential Menu Components:

1. Output Slot Configuration:
Shows the result item and handles crafting.

Code (YAML):

output_slot
:
  is-permanent
: true
  item
:
    material
: "base64:%recipebook_outputItem%"
    amount
: "%recipebook_outputItemAmount%"
    lore
:
     - "&7Click to craft!"
      - "&7Craftable
: &e%recipebook_craftableAmount%"
  slot
: 13
  actions
:
    - type
: craft                   # Execute crafting
    - type
: refresh               # Refresh placeholders
 
2. Input Slots Configuration:
Required for displaying recipe ingredients.

Code (YAML):

# For crafting table (3x3 grid)
input_slots
:
  is-permanent
: true
  type
: RECIPEBOOK_INPUT_SLOTS
  slots
: [14, 15, 16, 23, 24, 25, 32, 33, 34 ]

# For furnace-type recipes (single slot)
furnace_input
:
  is-permanent
: true
  type
: RECIPEBOOK_INPUT_SLOTS
  slots
: [14 ]
 
3. Recipe Item Configuration:
Basic recipe display without crafting capability.

Code (YAML):

stone_recipe
:
  type
: RECIPEBOOK_ITEM
  wiki-type
: "CRAFTING_TABLE"       # Recipe type to display
  slot
: 10
  item
:
    material
: "STONE"
    name
: "&fStone Recipe"
    lore
:
     - "&7View the stone crafting recipe"
 
4. Advanced Recipe with Direct Crafting:
Allows crafting directly from the menu item.

Code (YAML):

diamond_sword_craft
:
  type
: RECIPEBOOK_ITEM
  wiki-type
: "CRAFTING_TABLE"
  allow-direct-crafting
: true       # Enable direct crafting
  crafting-time
: 3.0               # Crafting delay (seconds)
  slot
: 12
  item
:
    material
: "DIAMOND_SWORD"
    name
: "&bDiamond Sword"
    lore
:
     - "&7Click to craft instantly!"
      - "&7Time
: &e3.0s"
  # Requirement system
  craft-requirements
:
    - type
: placeholder
      placeholder
: ' %player_level%'
      value
: '10'
      action
: SUPERIOR_OR_EQUALS
      deny
:
        - type
: message
          messages
:
           - "&cYou need level 10 to craft this item!"
    - type
: permission
      permission
: 'recipebook.craft.diamond'
      deny
:
        - type
: message
          messages
:
           - "&cYou don't have permission to craft this!"
  # Action messages
  requirement-fail-actions
:
    - type
: message
      messages
:
       - "&cRequirements not met!"
  allow-craft-actions
:
    - type
: message
      messages
:
       - "&aSuccessfully crafted %item%!"
  deny-craft-actions
:
    - type
: message
      messages
:
       - "&cMissing required materials!"
 
5. Player Storage Configuration:
Manages crafted items and interrupted crafting sessions.

Code (YAML):

player_storage
:
  type
: RECIPEBOOK_ITEMS_STORAGE
  slots
: [10-16, 19-25, 28-34, 37-43 ]   # Multi-row storage
 
6. Recipe Navigation Buttons:
For items with multiple crafting methods.

Code (YAML):

previous_recipe
:
  type
: PREVIOUS
  isPermanent
: true
  slot
: 48
  item
:
    material
: ARROW
    name
: "&f◀ Previous Recipe"
    lore
:
     - "&7View previous crafting method"
  else
:
    item
:
      material
: GRAY_STAINED_GLASS_PANE
      name
: "&7No previous recipe"

next_recipe
:
  type
: NEXT
  isPermanent
: true
  slot
: 50
  item
:
    material
: ARROW
    name
: "&fNext Recipe ▶"
    lore
:
     - "&7View next crafting method"
  else
:
    item
:
      material
: GRAY_STAINED_GLASS_PANE
      name
: "&7No next recipe"
 
7. Smithing Table Special Slots:
Required for smithing table recipes.

Code (YAML):

template_slot
:
  isPermanent
: true
  type
: RECIPEBOOK_TEMPLATE_SLOT_INPUT
  slot
: 12
  item
:
    material
: LIGHT_BLUE_STAINED_GLASS_PANE
    name
: "&bTemplate Slot"

base_slot
:
  isPermanent
: true
  type
: RECIPEBOOK_BASE_SLOT_INPUT
  slot
: 13
  item
:
    material
: GREEN_STAINED_GLASS_PANE
    name
: "&aBase Item Slot"

addition_slot
:
  isPermanent
: true
  type
: RECIPEBOOK_ADDITION_SLOT_INPUT
  slot
: 14
  item
:
    material
: ORANGE_STAINED_GLASS_PANE
    name
: "&6Addition Slot"
 
Complete Menu Example:
Code (YAML):

# Example: crafting_table.yml
name
: "&0Crafting Table"
size
: 54

items
:
  # Background decoration
  background
:
    isPermanent
: true
    slots
: [0-8, 36-44, 45-53 ]
    item
:
      material
: BLACK_STAINED_GLASS_PANE
      name
: " "

  # Recipe output
  result
:
    is-permanent
: true
    item
:
      material
: "base64:%recipebook_outputItem%"
      amount
: "%recipebook_outputItemAmount%"
      lore
:
       - "&7Required materials shown below"
        - "&7Craftable amount
: &e%recipebook_craftableAmount%"
        - ""
        - "&aClick to craft!"
    slot
: 13
    actions
:
      - type
: craft
      - type
: refresh

  # Recipe ingredients display
  ingredients
:
    is-permanent
: true
    type
: RECIPEBOOK_INPUT_SLOTS
    slots
: [19, 20, 21, 28, 29, 30, 37, 38, 39 ]

  # Player storage
  storage
:
    type
: RECIPEBOOK_ITEMS_STORAGE
    slots
: [9-12, 14-17 ]

  # Recipe navigation
  previous
:
    type
: PREVIOUS
    isPermanent
: true
    slot
: 48
    item
:
      material
: ARROW
      name
: "&f◀ Previous"
    else
:
      item
:
        material
: GRAY_STAINED_GLASS_PANE

  next
:
    type
: NEXT
    isPermanent
: true
    slot
: 50
    item
:
      material
: ARROW
      name
: "&fNext ▶"
    else
:
      item
:
        material
: GRAY_STAINED_GLASS_PANE
 
Player Storage System

The player storage system securely manages items during crafting processes and provides recovery mechanisms.

How It Works:
  • When crafting begins, required materials are temporarily locked
  • Finished items are automatically sent to player storage
  • If a player disconnects during crafting, ingredients are returned instead of the final product
  • Multiple withdrawal options provide flexibility

Storage Interactions:
  • Left Click: Withdraw 1 item
  • Right Click: Withdraw 1 stack (up to stack limit)
  • Shift + Left Click: Withdraw all items of that type
  • Shift + Right Click: Clear all items (requires recipebook.zmenu.clear.player.storage permission)

Storage Item Configuration:
Code (YAML):

storage_items_settings
:
  lore_type
: "APPEND"               # APPEND or REPLACE existing lore
  lore
:
    - "<gray> + Quantity
: < #FFA500>%quantity%</#FFA500>"
    - "<gray>[<#FFA500>Left click<gray>] Withdraw one item"
    - "<gray>[<#FFA500>Right click<gray>] Withdraw a stack"
    - "<gray>[<#FFA500>Shift + Left click<gray>] Withdraw all items"
  # Additional lore for players with clear permission
  clear_lore
: "<gray>[<#FFA500>Shift + Right click<gray>] Clear all items"
 
Queue Management:
  • Crafting queues are synchronized within menu types
  • Example: crafting_table and crafting_table_2 share the same queue
  • Items from crafting_table_2 will wait for crafting_table to finish
  • This prevents conflicts and ensures proper order

Plugin Integration

RecipeBook seamlessly integrates with popular custom item plugins using specific item format syntax.

Supported Item Formats:
  • Vanilla Minecraft: item_id or minecraft:item_id (both work)
  • Nexo: nexo:item_id
  • ItemsAdder: itemsadder:item_id
  • Oraxen: oraxen:item_id
  • ZItems: zitems:item_id
  • ZHead: zhead:item_id

Integration Examples:
Code (YAML):

# Mixed plugin recipe example
advanced_gear_recipe
:
  result
:
    item
: "nexo:legendary_sword"     # Nexo result
    amount
: 1
  ingredients
:
    A
:
      item
: "itemsadder:mithril_ingot"   # ItemsAdder ingredient
    B
:
      item
: "oraxen:dragon_scale"       # Oraxen ingredient
    C
:
      item
: "diamond"                   # Vanilla ingredient (simplified)
  pattern
:
   - " A "
    - "CBC"
    - " B "
 
PlaceholderAPI Integration:
RecipeBook provides extensive placeholders for use with other plugins:

  • %recipebook_experience% - Experience from clicked recipe
  • %recipebook_cookingTime% - Cooking time of recipe
  • %recipebook_canCraftDirectly% - Direct crafting availability
  • %recipebook_outputItem% - Base64 encoded result item
  • %recipebook_outputItemAmount% - Result item quantity
  • %recipebook_craftableAmount% - Maximum craftable with current materials
  • %recipebook_pendingItems_<menu_name>% - Items in crafting queue
  • %recipebook_pendingTime_<menu_name>% - Queue completion time
  • %recipebook_currentCraftItem_<menu_name>% - Currently crafting item

⌨️ Commands & Permissions

Main Command:
/recipebook_zmenu - Opens the main RecipeBook menu

Reload Commands:
  • /recipebook_zmenu reload - Reloads everything (config, menus, recipes)
  • /recipebook_zmenu reload config - Reloads only configuration
  • /recipebook_zmenu reload menus - Reloads only menu configurations
  • /recipebook_zmenu reload recipes - Reloads only recipes

Permissions:
  • recipebook.zmenu.reload - Access to reload commands
  • recipebook.zmenu.clear.player.storage - Clear all storage items with Shift+Right Click

Permission Examples:
Code (Text):

# Grant reload permissions to admins
recipebook.zmenu.reload

# Allow clearing storage (potentially destructive)
recipebook.zmenu.clear.player.storage
 
Troubleshooting

Common Issues & Solutions:

1. Recipes Not Loading:
  • Check YAML syntax with an online validator
  • Ensure recipe IDs are unique across all recipe types
  • Verify item names use correct format (minecraft:item_name)
  • Enable debug mode: enable-debug: true

2. Menu Not Displaying Correctly:
  • Verify menu YAML syntax
  • Check that slot numbers are within menu size (0-53 for size 54)
  • Ensure required components are present (output_slot, input_slots)
  • Reload menus: /recipebook_zmenu reload menus

3. Integration Plugin Items Not Working:
  • Confirm the integration plugin is installed and loaded
  • Use correct item format: pluginname:item_id
  • Check integration plugin documentation for correct item IDs
  • Test with vanilla items first to isolate the issue

4. Database Connection Issues:
  • Verify database credentials in config.yml
  • Test database connection manually
  • Check firewall and port accessibility
  • Consider using SQLITE for single-server setups

5. Performance Issues:
  • Enable RAM caching: use-ram-to-store-recipes: true
  • Enable async crafting: use-async-crafting: true
  • Increase batch task interval: batch-task: 15
  • Disable unnecessary logging types

6. Discord Webhook Not Working:
  • Verify webhook URL is correct and active
  • Test webhook manually with curl or online tools
  • Check Discord server permissions
  • Validate JSON component format at discord.builders

Debug Information:
When reporting issues, please include:
  • Server version (Paper/Spigot/etc.)
  • Java version
  • RecipeBook version
  • Integration plugin versions
  • Relevant configuration excerpts
  • Console error messages
  • Steps to reproduce the issue

Log File Locations:
Code (Text):

plugins/RecipeBook/logs/           # RecipeBook logs
logs/latest.log                    # Server console log
 
Support & Contact

Getting Help:
For support, bug reports, and feature requests, contact me:

Discord: kyubi8319
Resource Information
Author:
----------
Total Downloads: 46
First Release: Mar 28, 2025
Last Update: Jul 19, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings