跳到正文

Sandwich Station

作者:Nikrecs

Turn any food into custom sandwiches with ingredient-based hunger, saturation, and effects.

收藏

截图

介绍

中文介绍正在准备中,下面暂时显示原文。

JOIN_OUR_DISCORD

Adds one block — the Sandwich Station — where any base plus up to nine edible items becomes a sandwich. Hunger, saturation, and status effects come from what you actually put in. Every rule behind that is a datapack tag or a config key, so a modpack can add ingredients, ban an effect, or rebalance the whole thing without rebuilding the jar.

Install on both the client and the server. Works in singleplayer.

Dependencies: Fabric & NeoForge require Architectury API. Forge requires no additional dependencies.

Free to use in any modpack — public or private, no permission needed.

What it does

  • Sandwich Station — open it like a crafting table. It stores nothing: leftover items return when you close the screen, and breaking the block never eats your food.
  • Base + Filling — put a base in the left slot (bread, paper, baked potato, honeycomb, cookie, or another sandwich) and up to nine edible items in the grid.
  • Three Tiers — servings split by hunger: Humble Sandwich (≤3), Sandwich (≤6), Decent Sandwich (>6). A thin filling is one sandwich; a generous one is several.
  • Sandwich Pack — several servings come out as one pack (right-click to open into full stacks). You can also craft a pack at a crafting table from two or more sandwiches of any tier.
  • Stacking — sandwiches from the same filling stack together. Packs never stack — each holds its own list.
  • Ghost Hints — empty slots fade example items from the datapack tags, so they always show what this pack actually accepts. Slots past the configured ingredient limit are greyed out.

Crafting

S K S      S = Smooth Stone Slab
P B P      K = Shears
           P = #minecraft:planks
           B = Barrel

Unlocks in the recipe book when a barrel reaches your inventory.

How numbers work

Hunger and saturation are the sum of the base and every ingredient, scaled by config multipliers and waste. The total is split into servings (never one oversized sandwich). Effects are merged from ingredients, then filtered, scaled, split across servings, and capped — nothing is rolled at random. Diversity scores distinct flavour categories (datapack tags) and can add saturation / longer effects; quality labels: Plain → Mixed → Varied → Gourmet.

Configuration

File: config/sandwichstation.json (created on first launch, with a // comment above every key). Re-read whenever a player opens a station — edit, open the block again, no restart.

Main switches

  • stationEnabled (true) — master switch; false keeps items registered but composes nothing
  • debugLogging (false) — log every composition

Nutrition (nutrition.*)

  • humbleMaxNutrition (3) / regularMaxNutrition (6) — tier thresholds
  • maxServings (16) — max sandwiches from one lot of ingredients
  • maxIngredientSlots (9) — usable grid slots; the rest lock
  • nutritionMultiplier / saturationMultiplier (1.0) — scale totals
  • wasteFactor (0.0) — fraction thrown away
  • maxNutritionPerServing (10) / maxSaturationPerServing (12.0) — per-sandwich caps
  • paperBaseNutrition (0) — food value for a base with none of its own
  • allowSandwichAsBase (true) / allowNonFoodBases (true)

Effects (effects.*)

  • enabled (true) · budgetScale (1.0) · maxEffects (3) · maxAmplifier (1)
  • minDurationTicks (20) · maxDurationTicks (6000)
  • divideDurationAcrossServings (true)
  • conflictPolicy (KEEP_STRONGER | DROP_BOTH | KEEP_BOTH)
  • blockedEffectIds ([]) — effects that never transfer

Diversity (diversity.*)

  • enabled (true) · weightPerCategory (1) · weightPerUniqueIngredient (0)
  • saturationBonusPerPoint (0.25) · effectDurationBonusPercentPerPoint (5)

Content (content.*)

  • requireEdibleIngredients (true)
  • extraBaseIds / blockedBaseIds / extraBaseTags
  • extraIngredientIds / blockedIngredientIds / extraIngredientTags / blockedIngredientTags

Integration (integration.*)

  • tooltip / auto-name / craft-sound toggles (showQualityTooltip, showIngredientTooltip, maxTooltipIngredients, autoNameResults, playCraftSound)

Ids are normalized (Bread, minecraft:bread, minecraft:bread all match; missing namespace → minecraft).

For Modpack Creators

Layer Where Reload Use for
Datapack tags data/sandwichstation/tags/... /reload bases, ingredients, flavour categories
Config config/sandwichstation.json next station open every number, switch, ban list
Java API your mod — food whose value is only known at runtime

Tags: bases, ingredients, blocked_ingredients, and categories/{meat,fish,vegetable,fruit,grain,sweet,fungus,exotic}.

Paths — 1.19.2 / 1.20.1 use plural folders (tags/items, recipes, advancements, loot_tables); 1.21.1+ use singular (tags/item, recipe, advancement, loot_table).

Override the station recipe at the same path / id sandwichstation:sandwich_station. If your recipe no longer uses a barrel, also override the unlock advancement (it watches for a barrel by default).

Cannot change without a jar: fixed item/block ids; composition is a pure function of the sorted ingredient list; the station has no block entity (cannot hold items between sessions).

Details

  • Real block with server-side crafting — not client-only.
  • JEI / REI / EMI show the station recipe as normal shaped crafting. Composition is explained by item tooltips (not a recipe-viewer category in 1.0.0).
  • MIT license.

Feedback

Please report any bugs, errors, or feature suggestions on Discord: https://discord.gg/HTkn94BXmA

More mods by Nikrecs: Fields · CropGrowthHUD

My other mods that I recommend.

常见问题

Sandwich Station 支持哪些 Minecraft 版本?

Sandwich Station 支持 Minecraft Java 版 1.19.2–26.3,共 7 个版本,可用的加载器:Fabric / Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。

Sandwich Station 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

Nikrecs 的其他作品

查看全部 →