EmakiCooking | Seven World Stations for Immersive Cooking icon

EmakiCooking | Seven World Stations for Immersive Cooking -----

Cutting board, wok, grinder, steamer, oven, juicer, fermenter — each station with unique interaction



EmakiCooking brings immersive cooking gameplay to your server. Seven different world stations each feature unique interaction methods and recipe structures. Players interact directly with blocks in the world to complete cooking processes. Floating display entities visualize the cooking progress, heat source blocks auto-ignite for atmosphere, and station states persist through server restarts.

Core Features

Seven World Stations

Cutting Board (CHOPPING_BOARD)

Used to slice raw materials into intermediates. Default block: Oak Log (customizable).

  • Interaction: Shift+left-click to place ingredient, shift+left-click with knife to cut, right-click to retrieve
  • Cut count: Each recipe defines cuts_required — player must click that many times
  • Tool durability: Each cut consumes tool_damage durability from the held tool
  • Cut injury: Configurable chance to damage the player (default 10% chance, 2 damage)
  • Multiple outputs: result.outputs supports a list for multi-product recipes
  • Interaction cooldown: interaction_delay_ms prevents spam-clicking (default 1000ms)

Wok (WOK)

The most complex interactive station — players must stir-fry ingredients in the correct order. Default block: Iron Block.

  • Heat levels: Determined by the block below the wok (Campfire=1, Magma Block=2, Lava=3, customizable)
  • Ingredient input: Shift+left-click to add ingredients one by one, each with its own stir_rule
  • Stir rules: Hold spatula and shift+left-click to stir; recipe defines stir_total (min-max range) and fault_tolerance
  • Timeout: timeout_ms (default 30s) — exceeding this treats the dish as overcooked
  • Four result branches: success, undercooked, overcooked, invalid
  • Global failure chance: failure.chance (default 5%) produces a failure item regardless of recipe
  • Scald damage: scald_damage can hurt the player during cooking
  • Bowl requirement: need_bowl can require holding a bowl to serve

Grinder (GRINDER)

Automated time-based station that grinds materials. Default block: Grindstone.

  • Interaction: Shift+left-click to insert material and start grinding
  • Grind time: grind_time_seconds per recipe
  • Auto output: Products drop automatically when complete
  • Background polling: Plugin checks progress every check_delay_ticks (default 20 ticks)

Steamer (STEAMER)

Fuel-driven station with GUI, requiring both fuel and moisture management. Default block: Barrel.

  • GUI interface: Shift+right-click to open, place ingredients inside
  • Fuel system: Right-click to add fuel (sticks=5s, coal/charcoal=80s)
  • Moisture system: Right-click to add water (water bucket=+120, potion=+40)
  • Steam efficiency: steam_production_efficiency, steam_conversion_efficiency, and steam_consumption_efficiency control the steam cycle
  • Progress reset: When reset_progress_when_steam_empty is true, running out of steam resets all progress
  • Heat source block below required (furnace, smoker, blast furnace)

Oven (OVEN)

Temperature-sensitive station where players must maintain heat within range. Default block: Smoker.

  • GUI interface: Shift+right-click to open, place ingredients inside
  • Temperature control: Heat must stay between heat.min (20) and heat.max (80) to progress
  • Heat decay: Temperature drops by decay_per_second (default 5) each second
  • Fuel: Shift+left-click to add fuel, increasing both burn time and heat
  • Perfect zone: Recipe defines perfect_heat range; maintaining perfect_required_ratio time in zone yields perfect result
  • Three outcomes: perfect bake, normal bake, burnt (after overbake_seconds)

Juicer (JUICER)

Press-based station with fluid accumulation mode. Default block: Cauldron.

  • GUI interface: Shift+right-click to open, place fruit inside
  • Pressing: Shift+left-click to press; presses_required per recipe
  • Fluid mode: Each press produces fluid.amount_ml of liquid, stored internally (max max_fluid_ml, default 1000ml)
  • Container collection: When require_container is true, hold a container (glass bottle) to collect serving_ml (default 250ml) per use
  • Direct output mode: When require_container is false, product drops directly

Fermentation Barrel (FERMENTATION_BARREL)

Long-duration station with early collection and over-fermentation mechanics. Default block: Barrel.

  • GUI interface: Shift+right-click to open, place ingredients inside
  • Start fermentation: Shift+left-click to seal and begin; require_sealed must be true
  • Fermentation time: fermentation_time_seconds for normal completion
  • Early collection: After reaching early_collect.min_progress_ratio (e.g. 50%), collect a partial product
  • Over-fermentation: After over_time_seconds, product degrades (e.g. wine becomes vinegar)
  • Progress persistence: Fermentation continues through server restarts using real-time calculation
  • Pause on open: pause_when_open pauses progress while GUI is open

Floating Display Entity System

Ingredients display as floating entities above stations, giving players visual feedback.

  • auto (recommended): Uses PacketEvents virtual entities when available, falls back to Bukkit
  • packet_events: Forces PacketEvents mode, falls back to Bukkit on failure
  • bukkit: Always uses real Bukkit ItemDisplay entities
  • View distance: view_distance_blocks (default 48) controls visibility range
  • Refresh interval: refresh_interval_ticks (default 20) controls update frequency
  • PacketEvents advantage: Virtual entities don't count toward server entity limits

Heat Source Block Ignition

Stations requiring heat (wok, steamer) automatically manage heat source block states:

  • Auto-ignites the block below when cooking starts, restores when cooking ends
  • Works with vanilla blocks that have a lit state (campfire, furnace, etc.)
  • Supports custom blocks from CraftEngine, ItemsAdder, and Nexo via lit_item_sources mapping
  • Allows resource pack creators to build custom stoves with fire on/off visuals

Item Display Adjustments

Fine-tune how items appear above stations via display_adjustments:

  • offset: X/Y/Z position offset (Y controls hover height)
  • rotation: X/Y/Z rotation angles; supports range syntax (e.g. "0.0-90.0" for random rotation)
  • scale: X/Y/Z scale factors
  • Configurable per-station via station_defaults

Station State Persistence

Station states fully preserved through server restarts:

  • All in-progress items and cooking states are saved to plugins/EmakiCooking/data/
  • Fermentation progress uses real-time calculation — offline time counts
  • Invalid stations (broken blocks) are automatically cleaned up on load
  • Display entities regenerate when players enter view range

Recipe System

Recipes are YAML files in plugins/EmakiCooking/recipes/<station_type>/:

  • Common fields: id, display_name, permission, result.actions
  • Item source formats: minecraft-item, craftengine-ns:item, itemsadder-ns:item, nexo-item
  • Supports multiple inputs and outputs
  • Hot-reloadable via /ec reload
  • Strict mode: only_recipe_items restricts input to recipe-matching items only

Commands

  • /ec help — Display help information
  • /ec reload — Reload config, language files, and all recipes
  • /ec inspect hand — Inspect the held item's CoreLib source identifier (debug)

Aliases: /ecooking and /ec both work.

Permissions

  • emakicooking.use (all) — Use basic commands
  • emakicooking.reload (op) — Reload configuration
  • emakicooking.inspect (op) — Inspect item sources
  • emakicooking.admin (op) — Full admin access (includes all above)
  • emakicooking.station.<type>.use (all) — Use the specified station
  • emakicooking.station.<type>.<action> (all) — Perform specific actions (cut, stir, serve, fuel, moisture, press, collect, start)

Recipes can also define per-recipe permissions (e.g. emakicooking.recipe.apple_cider).

PAPI Placeholders

Requires PlaceholderAPI as a soft dependency. Prefix: %emakicooking_<placeholder>%.

  • recipe_count — Total recipe count across all stations
  • recipe_count_chopping_board — Cutting board recipe count
  • recipe_count_wok — Wok recipe count
  • recipe_count_grinder — Grinder recipe count
  • recipe_count_steamer — Steamer recipe count
  • recipe_count_oven — Oven recipe count
  • recipe_count_juicer — Juicer recipe count
  • recipe_count_fermentation_barrel — Fermenter recipe count

Ideal For

  • RPG / Survival servers — immersive life-skill gameplay beyond combat
  • Custom item servers — pairs with CraftEngine, ItemsAdder, or Nexo for full food production chains
  • Economy servers — cooking outputs as tradeable goods add economic depth
  • Casual community servers — fun cooking interactions for all player types

Requirements

  • Server: Spigot / Paper 1.21+
  • Java: 21+
  • Hard Dependencies: EmakiCoreLib
  • Soft Dependencies: PacketEvents (virtual display entities), PlaceholderAPI (placeholders), CraftEngine / ItemsAdder / Nexo (custom block & item support)

Resource Information
Author:
----------
Total Downloads: 1,266
First Release: Sep 9, 2025
Last Update: Jun 16, 2026
Category: ---------------
All-Time Rating:
8 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings