Sandwich Station
Turn any food into custom sandwiches with ingredient-based hunger, saturation, and effects.
截图
介绍
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;falsekeeps items registered but composes nothingdebugLogging(false) — log every composition
Nutrition (nutrition.*)
humbleMaxNutrition(3) /regularMaxNutrition(6) — tier thresholdsmaxServings(16) — max sandwiches from one lot of ingredientsmaxIngredientSlots(9) — usable grid slots; the rest locknutritionMultiplier/saturationMultiplier(1.0) — scale totalswasteFactor(0.0) — fraction thrown awaymaxNutritionPerServing(10) /maxSaturationPerServing(12.0) — per-sandwich capspaperBaseNutrition(0) — food value for a base with none of its ownallowSandwichAsBase(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/extraBaseTagsextraIngredientIds/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 的其他作品
查看全部 →DeathCompass
重生时自动获得一个指南针,精准指向你上次死亡的位置。
Terralith: River In Jungle
Terralith 附属模组,新增宽阔蜿蜒、拥有自然缓坡河岸的丛林河流,告别原版那些细小的溪流。
Swing Through Grass
挥剑扫过草丛也能命中生物:攻击不再被高草、蕨类和植物挡掉,让你的剑能穿过枝叶击中目标。轻量级服务端模组,无需客户端安装。
PerformanceHUD
轻量级客户端 HUD,可在自定义角落叠加显示 FPS、内存、实体数量、区块数量、延迟和 CPU 占用。
评论
登录后评论和评分