Skip to content

aitji/QoF

Repository files navigation

QoF – Quality of Feature

Note

A Minecraft Bedrock addon that adds small vanilla-friendly features. Each module is configurable through the in-game pack settings panel. Requires BetaAPIs enabled under Experiments.

Table of Contents

Overview

  • Dynamic lighting
  • Open adjacent doors automatically with a single interaction
  • Repair damaged anvils
  • Concrete powder hardens when it touches water as an item entity
  • Composter accepts more items
  • Pick up and carry containers while preserving their contents
  • Swap mainhand and offhand with a double sneak, place torches and plant seeds from the offhand
  • Hold harvest crops with automatic seed replanting with Hoe, supports Cocoa Bean and offhand seed priority
  • Extra mob drops
  • Extra crafting and smelting recipes
  • And many more to come later

Changelog

Installation

Download the QoF addon from one of these sources:

  1. Download the latest .mcaddon file from the releases page.
  2. Open the file, Minecraft will automatically import the addon.
  3. Open or create a world.
  4. Go to Behavior Packs and activate QoF.
  5. In Experiments, enable Beta APIs.
  6. Configure settings in the pack settings panel inside the world settings.

Important

Beta APIs must be enabled, otherwise the pack will not function.

Modules

Dynamic Light

Dynamic Light night walk with soul lantern

Held and dropped items emit light based on their type. The light smoothly fades after the source moves away or is removed. burning entities, glowing entities and item frames also emit light based on what they contain. Dynamic lights are processed using a round-robin batch system for better overall performance and exist only in memory no dynamic properties are used.

How It Works:

Player picks up soul lantern in mushroom cave, light fades after drop

alt-message In a mushroom cave, a soul lantern sits on the ground emitting light. The player walks in from the right, picks it up, and the room goes dark. And then drops it back in the same spot and walks away.

  • When a player holds or drops a light-emitting item, a qof:light_block is placed at the relevant position each tick.
  • When the source is gone, the light level decreases linearly each tick until it reaches zero, then the block is restored to air or water.

Player shoots flame arrows into targets, picks up arrow, walks away

alt-message A flaming arrow is fired into a target block. While the arrow is burning, it emits light. The player walks through the lit area, picks the arrow up, and leaves. Light disappears when the source is gone.

  • Nearby glowing or burning entities also emit light passively.

Player holds conduit while swimming in ocean, light visible underwater

alt-message In the open ocean, the player rows a boat while holding a lantern, making the water surface glow below. They stop, jump in, switch to a conduit, and swim deeper. The qof:light_block is placed inside the water itself, illuminating the seafloor and kelp.

  • Some items are prevented from emitting light underwater.
Item Reaction Level
Campfire Won't emit light underwater 15
Lantern Won't emit light underwater 15
Lava Bucket Won't emit light underwater 15
All Copper Lantern Won't emit light underwater 15

Torch Won't emit light underwater 14
Copper Torch Won't emit light underwater 14

Soul Campfire Won't emit light underwater 10
Soul Lantern Won't emit light underwater 10
Soul Torch Won't emit light underwater 10

Redstone Torch Won't emit light underwater 7

Sea Pickle Only emits light underwater 6
Items That Emit Light
Item Light Level
Level 15
Beacon 15
Campfire 15
Conduit 15
Ochre Froglight 15
Pearlescent Froglight 15
Verdant Froglight 15
Glowstone 15
Lit Pumpkin 15
Lantern 15
Lava Bucket 15
Sea Lantern 15
ShroomLight 15
Copper Lantern 15
Waxed Copper Lantern 15
Exposed Copper Lantern 15
Waxed Exposed Copper Lantern 15
Weathered Copper Lantern 15
Waxed Weathered Copper Lantern 15
Oxidized Copper Lantern 15
Waxed Oxidized Copper Lantern 15
Level 14
End Rod 14
Glow Berries 14
Torch 14
Copper Torch 14
Level 10
Crying Obsidian 10
Soul Campfire 10
Soul Lantern 10
Soul Torch 10
Level 7
Enchanting Table 7
Ender Chest 7
Glow Lichen 7
Redstone Torch 7
Level 6
Sculk Catalyst 6
Sea Pickle 6
Vault 6
Level 5
Amethyst Cluster 5
Level 4
Large Amethyst Bud 4
Trial Spawner 4
Level 3
Magma 3
Level 2
Medium Amethyst Bud 2
Firefly Bush 2
Level 1
Brewing Stand 1
Brown Mushroom 1
Calibrated Sculk Sensor 1
Dragon Egg 1
End Portal Frame 1
Sculk Sensor 1
Small Amethyst Bud 1
Entities That Emit The Light
Entity Light Level
Blaze 12
Glow Squid 10
Allay 10
Vex 10
Magma Cubes 9
Warden 6

Anvil Repairing

Anvil Repair repairing at a chipped anvil in a spruce house

Damaged anvils can be repaired by interacting with them while holding an iron ingot. The anvil steps up one stage per ingot consumed.

Repair chain:

Damaged Anvil  ->  Chipped Anvil  ->  Anvil

Full Repairing Loop

Player repairs anvil twice, mines it, places damaged one, and walks out

alt-message The player walks into a cozy spruce house, repairs a damaged anvil twice to bring it back to full, mines it with an iron pickaxe, places a new damaged anvil, and walks out.

Tip

Hold the interact button to repair continuously. A short delay between repairs is applied to prevent accidental over-use.

Repairing Item & Cost
Input Cost Output
Damaged Anvil 1x Iron_ingot chipped_anvil
chipped_anvil 1x iron_ingot anvil
anvil not repairable

Double Door

Double door opening both sides simultaneously

Interacting with one door automatically opens or closes the adjacent door at the same time. Works with all door types, keeping paired doors in sync without any extra input.

Wet Concrete Powder

Concrete powder items automatically convert to concrete when they enter water. The conversion happens after a short delay that scales with the stack size, and the resulting concrete item inherits the original velocity.

How It Works:

  1. When a concrete powder item entity spawns, QoF begins tracking it.
  2. Once the item enters water, a timer starts. Larger stacks wait slightly longer.
  3. After the timer expires, the powder entity is removed and a concrete item entity is spawned in its place.
  4. A particle and sound effect play on conversion.

The delay formula is:

$$ \text{DELAY} = BASE + \lfloor \sqrt{item_amount - 1} \cdot MULTIPLIER \rfloor $$

where BASE and MULTIPLIER are configurable in pack settings.

Conversion In Action

Top-down view: player throws concrete powder into water pool, allay nearby, powder converts to concrete

alt-message Top-down view centered on a water pool with an allay floating nearby emitting soft light. The player walks in from the bottom-center and throws concrete powder into the pool. After a short delay the powder converts, and the player picks up the resulting concrete and walks off.

Cauldron+

Note

Sorry we didn't have a GIFs to show (yet)

Cauldrons in Bedrock Edition now have expanded functionality with QoF (Quality of Feature)

Item Dye Clean
Carpet # Carpet White Carpet
Wool # Wool White Wool
Concrete # Concrete White Concrete
Concrete Powder # Concrete Powder White Concrete Powder
Glass # Stained Glass Glass
Glass Pane # Stained Glass Pane Glass Pane
Hardened Clay # Terracotta Hardened Clay
# Terracotta # Terracotta Hardened Clay
# Glazed Terracotta # Glazed Terracotta White Glazed Terracotta

Note # represents any color
Shulkers, banners, and bundles are not supported due to NBT limitations

Composter+

Expands the composter to accept many more item types not supported in vanilla, including mob drops, food, wool, and various materials.

How It Works:

  1. Player interaction with supported items triggers compost fill with a per-item success chance.
  2. On reaching level 7, a short delay passes before the composter becomes ready (level 8).
  3. Hoppers check for composting items on a configurable interval and process one item per check.

Hopper Integration

Player composts string, places hopper on top, throws rotten flesh in, composter fills automatically

alt-message The player manually composts some string (not in the vanilla list), then places a hopper above the composter and throws in rotten flesh (also not in the vanilla list). The hopper feeds the composter automatically until it fills and becomes ready.

Stew & Soup Bowl Returning

Player composts stew and soup items, receives empty bowls back

alt-message Stew and soup items are composted one by one. After each is consumed, an empty bowl is returned in player hand matching the vanilla eating behavior.

Warning

Enabling hopper integration with many composters and hoppers in a loaded area may affect performance. Tune the hopper interval setting if needed.

Additional Compostable Items (QoF Only)

These are items added by QoF on top of the vanilla compost table. Vanilla items are handled by Minecraft natively and are excluded here to avoid double-processing.

Item Success Chance
30%
podzol 30%
mycelium 30%
rooted_dirt 30%
50%
bamboo 50%
dead_bush 50%
honeycomb 50%
sugar 50%
blaze_powder 50%
ghast_tear 50%
string 50%
chicken 50%
porkchop 50%
beef 50%
mutton 50%
rabbit 50%
feather 50%
ink_sac 50%
glow_ink_sac 50%
rabbit_hide 50%
rabbit_foot 50%
frog_spawn 50%
cod 50%
salmon 50%
tropical_fish 50%
pufferfish 50%
65%
poisonous_potato 65%
chorus_fruit 65%
resin_clump 65%
lit_pumpkin 65%
rotten_flesh 65%
web 65%
gunpowder 65%
magma_cream 65%
slime_ball 65%
leather 65%
phantom_membrane 65%
cooked_chicken 65%
cooked_porkchop 65%
cooked_beef 65%
cooked_mutton 65%
cooked_rabbit 65%
cooked_cod 65%
cooked_salmon 65%
golden_carrot 65%
golden_dandelion 65%
glistering_melon_slice 65%
85%
blaze_rod 85%
fermented_spider_eye 85%
dried_ghast 85%
black_wool 85%
blue_wool 85%
brown_wool 85%
cyan_wool 85%
gray_wool 85%
green_wool 85%
light_blue_wool 85%
light_gray_wool 85%
lime_wool 85%
magenta_wool 85%
orange_wool 85%
pink_wool 85%
red_wool 85%
purple_wool 85%
white_wool 85%
yellow_wool 85%
popped_chorus_fruit 85%
mushroom_stew 85%
suspicious_stew 85%
beetroot_soup 85%
golden_apple 85%
100%
enchanted_golden_apple 100%
rabbit_stew 100%
nether_star 100%

Carrying Container

Allows players to pick up chests and other containers while preserving their contents. Sneaking and interacting with a container picks it up. Placing the carried item puts the container back down with all items restored.

Behavior while Carrying:

  • Slowness is applied continuously.
  • Jumping is disabled by default (configurable).
  • Jumping in water or lava can be allowed independently.
  • Climbing scaffolding and ladders can be allowed independently.
  • Players in Creative mode are exempt from jump restrictions.

Full Carry Example

Player puts cod in barrel, picks it up, walks to composter area, places barrel on hopper

alt-message The player walks in holding a cod, places it inside a barrel, then picks the barrel up. They carry it slowly across the scene, with slowness visible, and place it on top of a hopper. The barrel lands with its contents intact.

Slowness and Double Chest

Player picks up chest near sheep, walks slowly, places it into double chest formation

alt-message The player runs in, picks up a chest next to a black sheep, then visibly slows down while carrying it. They walk to a second chest and place theirs beside it, forming a double chest. Contents from both halves are preserved.

Warning

Double chest support is partially implemented. Picking up one half of a double chest will attempt to preserve both halves, but edge cases may result in item loss. Always back up world before carrying important chests carrying them. 100% working. It has been extensively tested.

Supported Containers

Any block with a minecraft:inventory component can be picked up. Common examples include:

Container Chest support Double Chest
Chest yes yes
Trapped Chest yes yes
Copper Chest yes yes**
Barrel yes no
Hopper yes no
Dispenser yes no
Dropper yes no
Blast Furnace yes* no
Furnace yes* no
Smoker yes* no
Brewing Stand yes no
Crafter no no
Shulker Box yes no

[!NOTE] (Shulker boxes, Crafter & Brewing Stand) are also inventory blocks and should work, but have not been extensively tested.
* For furnace items, the contents remain 100% correct, but the heat state is lost.
** Copper chests currently have a bug in Minecraft vanilla where the oxidized state of copper affects the behavior of double chests

Unwaxed Sign

Note

Sorry we didn't have a GIFs to show (yet)

Signs can now be unwaxed using an axe. Durability is consumed by default, but this can be configured in the in-game settings panel

Offhand

Offhand swap and torch placement banner

Allows players to double-sneak to swap items between their mainhand and offhand. Additionally, torches and other light sources held in the offhand can be placed directly without switching slots. All seed types can now be planted directly from the offhand.

How It Works:

  • Double sneak within a configurable time window to swap mainhand ↔ offhand.
  • The sneak window gap is independently configurable for Mobile, Console, and Windows.
  • Torches placed from the offhand correctly consume the offhand item stack.
  • Seeds held in the offhand can be planted directly this also integrates with the Harvest module for auto-replanting priority.

Note

Enchantments and item color cannot be transferred between hands due to API limitations that do not allow editing the offhand cleanly.

Swap and Torch Placement

Player double sneaks to swap sword and torch, places torch from offhand

alt-message First-person view. The player is holding a Trident in the main hand and a Soul Torch in the offhand. They double-sneak, causing the Trident and Soul Torch to swap places, while another player walks across the screen.

Torch Types Supported for Offhand Placement
Item
Torch
Redstone Torch
Copper Torch
Soul Torch

Harvest

Player harvesting wheat field with hoe

Allows players to harvest fully grown crops while holding any hoe. Seeds are automatically replanted after harvesting, and the hoe loses durability on each harvest to balance the automation. And Cocoa Beans are supported harvest them using an axe. Seeds placed in the offhand are prioritized for replanting over inventory seeds.

How It Works:

  • Hold any hoe and interact with a fully grown crop to harvest it. Use an axe for Cocoa Bean pods.
  • Seeds are automatically replanted in the same location. If seeds are in the offhand, they are used first.
  • If seeds drop on the ground and the player has none in inventory, dropped seeds used for replanting are reduced by 1, with a 40 gametick delay before the player can pick them up.
  • Hoe durability loss follows the vanilla formula:

$$ \mathrm{Loss} = \mathrm{random} < \frac{1}{\mathrm{level} + 1} $$

where level is the hoe's Unbreaking enchantment level.

Tip

Using a hoe with high Unbreaking reduces durability loss significantly on large farms.

Mob Loot+

Mob Loot+ showcase banner

Adds drops to previously mobs without loot, making them more rewarding to farm.

Mob Loot Table

1. Goat drops Raw Mutton

$$ P(\text{drop}) \in \langle 1,\ 2 + L \rangle, \quad L \in \langle 0,\ \text{Looting} \rangle $$

Looting Level Min Drop Max Drop
None 1 2
I 1 3
II 1 4
III 1 5

Goat on Fire will cook Raw Mutton into Cooked Mutton

2. Silverfish drops String

$$ P(\text{drop}) = \frac{1}{5} = 20% $$

Outcome Weight Chance
Nothing 4 80%
String 1 20%

Only drops when killed by a player or pet

3. Sniffer drops Moss Block

$$ P(\text{Drop}) = 1 $$

Looting does not affect the drop quantity

4. Piglin Brute drops Gilded Blackstone

$$ P(\text{Drop}) \in \langle 0,\ 1 \rangle $$

Looting does not affect the drop quantity

Recipe+

Recipe+ banner showing various crafting and smelting screens

Adds new crafting, smelting, and stonecutter recipes for a more accessible way to obtain items.

Recipe Showcase

Player demonstrates several new recipes at furnace, blast furnace and crafting table

Full Recipe List

Smelting (Furnace)

Input Output Station
Bamboo Block Charcoal Furnace
Stripped Bamboo Block Charcoal Furnace

Smelting (Blast Furnace / Furnace)

Input Output Station
Sand Glass Blast Furnace
Gilded Blackstone Gold Ingot Blast Furnace, Furnace
Stone Smooth Stone Blast Furnace
Cobblestone Stone Blast Furnace

Crafting (Crafting Table)

Input Output Notes
9x Charcoal Coal Block Shapeless
Dirt + Hanging Roots Rooted Dirt Shapeless
Any Skull + Paper Banner Pattern Shapeless

[!CAUTION] Removed recipes: (rebalanced)

  • Rotten Flesh -> Rabbit Hide (Furnace / Smoker / Campfire / Soul Campfire)removed in v1.2.2
  • Charcoal -> Coal Block (Crafting Table)removed in v1.2.2

Stonecutter (Wood)

All 11 wood types (Acacia, Birch, Cherry, Crimson, Dark Oak, Jungle, Mangrove, Oak, Pale Oak, Spruce, Warped) can be processed in the Stonecutter.

Wood Material Inputs
  1. Log x4
  2. Stripped Wood x4
  3. Wood x4
  4. Stripped Log x4
  5. Planks x1

Nether wood edge cases (Warped & Crimson):

  1. Stem x4
  2. Hyphae x4
Wood Result Items
  1. Slab x2
  2. Stick x2
  3. Sign x1
  4. Door x1
  5. Pressure Plate x1
  6. Trapdoor x1
  7. Fence Gate x1
  8. Gate x1

Wood transfer back & forth:

  1. Stripped Wood
  2. Stripped Log
  3. Wood
  4. Log

Nether wood edge cases:

  1. Stripped Stem
  2. Stripped Hyphae
  3. Stem
  4. Hyphae

Crafting (Slab to Block (2 Slabs -> 1 Block))

Two of the same slab stacked vertically craft back into their corresponding full block.

Slab Block
Smooth Stone Slab Smooth Stone
Stone Slab Stone
Cobblestone Slab Cobblestone
Mossy Cobblestone Slab Mossy Cobblestone
Mossy Stone Brick Slab Mossy Stone Bricks
Cut Sandstone Slab Cut Sandstone
Smooth Sandstone Slab Smooth Sandstone
Cut Red Sandstone Slab Cut Red Sandstone
Smooth Red Sandstone Slab Smooth Red Sandstone
Granite Slab Granite
Polished Granite Slab Polished Granite
Diorite Slab Diorite
Polished Diorite Slab Polished Diorite
Andesite Slab Andesite
Polished Andesite Slab Polished Andesite
Brick Slab Brick Block
Red Nether Brick Slab Red Nether Bricks
End Stone Brick Slab End Stone Bricks
Smooth Quartz Slab Smooth Quartz
Prismarine Slab Prismarine
Dark Prismarine Slab Dark Prismarine
Prismarine Brick Slab Prismarine Bricks
Blackstone Slab Blackstone
Polished Blackstone Brick Slab Polished Blackstone Bricks
Polished Deepslate Slab Polished Deepslate
Deepslate Tile Slab Deepslate Tiles
Deepslate Brick Slab Deepslate Bricks
Polished Tuff Slab Polished Tuff
Mud Brick Slab Mud Bricks
Bamboo Mosaic Slab Bamboo Mosaic
Oak Slab Oak Planks
Spruce Slab Spruce Planks
Birch Slab Birch Planks
Jungle Slab Jungle Planks
Acacia Slab Acacia Planks
Dark Oak Slab Dark Oak Planks
Mangrove Slab Mangrove Planks
Cherry Slab Cherry Planks
Pale Oak Slab Pale Oak Planks
Crimson Slab Crimson Planks
Warped Slab Warped Planks

Note If a block is not listed here, it may already have a vanilla recipe or may not yet be included in this version (26.10).

Note

This list may be outdated. You can find the most up-to-date information here: https://github.com/aitji/QoF/wiki/Recipes

Configuration References

All settings are accessible through the pack settings panel in-game. No manual file editing is required.

Full Settings Table full settings of manifest.json

Known Limitations & Notes

Note

These are known behavioral constraints, not all of which will be fixed in the short term. Most stem from Bedrock scripting API limitations.

Dynamic Light

  • Limitations Light blocks are placed only in air or liquid. Solid blocks are never replaced, which can cause light gaps in tight or enclosed spaces.
  • Limitations Armor stands do not support the equippable component in the current API. Items held by armor stands do not emit dynamic light. Only item frames are supported for static placed sources.
  • Very high render radius or sources-per-player values will increase tick time noticeably. Keep defaults unless your world has very few active players.

Composter+

  • Hopper feed processes one item per interval tick. High-throughput automatic farms will be rate-limited by the hopper interval setting.
  • Limitations We have a system that prevents custom list items from being processed when vanilla items are already being processed. However, if our custom list items are processed first and vanilla items are in the next slots, the vanilla items will be processed at the same time as ours in the hopper.

Carrying Container

  • Only the player who picked up the container can place it back. Other players cannot interact with the carried item slot.

Offhand

  • Limitations Enchantments and item color cannot be transferred between hands due to API limitations that do not allow editing the offhand cleanly.

License

This project is licensed under the MIT License.

Disclosure

All gameplay footage, images, and GIFs were recorded using Vibrant Visual and Action And Stuff.

LLMs were used to assist with wording and grammar in this documentation.
English is not our native language. Thank you for your understanding!

Credits

  • @aitji scripting & design
  • @pickerth-12 design, json & molang
QoF™
Copyright (c) 2026 aitji & pickerth-12 Licensed under the MIT License
Source: github.com/aitji/QoF

  README INFO
Version: v1.5.0
Last updated: 19 Apr 2026
Has README Update: True

  PACK INFO
Last Release: v1.5.0
Last Pre-Release: v1.4.1
Last Minecraft Version: 26.12
Used Dependencies: ^2.7.0-beta.1.26.14-stable

About

A Minecraft Bedrock addon that adds small vanilla-friendly features. Each module is configurable through the in-game pack settings panel. Requires BetaAPIs enabled under Experiments.

Topics

Resources

License

Stars

Watchers

Forks

Contributors