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.
- QoF – Quality of Feature
- 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
- QoF Well Equipped v1.5.0
Pre-ReleasesQof v1.4.1
- QoF Seamless v1.4.0
- QoF In Sync v1.3.0
- QoF Take Control v1.2.0
Pre-ReleasesQoF v1.1.1
- QoF Subtle Shift v1.1.0
Download the QoF addon from one of these sources:
- GitHub: https://github.com/aitji/QoF/releases
- CurseForge: https://www.curseforge.com/minecraft-bedrock/addons/quality-of-feature
- MCPEDL: https://mcpedl.com/quality-of-feature
- Download the latest
.mcaddonfile from the releases page. - Open the file, Minecraft will automatically import the addon.
- Open or create a world.
- Go to Behavior Packs and activate QoF.
- In Experiments, enable Beta APIs.
- Configure settings in the pack settings panel inside the world settings.
Important
Beta APIs must be enabled, otherwise the pack will not function.
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:
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_blockis 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.
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.
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_blockis 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 |
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
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 |
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.
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:
- When a concrete powder item entity spawns, QoF begins tracking it.
- Once the item enters water, a timer starts. Larger stacks wait slightly longer.
- After the timer expires, the powder entity is removed and a concrete item entity is spawned in its place.
- A particle and sound effect play on conversion.
The delay formula is:
where BASE and MULTIPLIER are configurable in pack settings.
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.
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
Expands the composter to accept many more item types not supported in vanilla, including mob drops, food, wool, and various materials.
How It Works:
- Player interaction with supported items triggers compost fill with a per-item success chance.
- On reaching level 7, a short delay passes before the composter becomes ready (level 8).
- Hoppers check for composting items on a configurable interval and process one item per check.
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.
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% |
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
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.
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
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
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.
alt-message First-person view. The player is holding a
Tridentin the main hand and aSoul Torchin the offhand. They double-sneak, causing theTridentandSoul Torchto swap places, while another player walks across the screen.
Torch Types Supported for Offhand Placement
| Item |
|---|
| Torch |
| Redstone Torch |
| Copper Torch |
| Soul Torch |
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 gametickdelay before the player can pick them up. - Hoe durability loss follows the vanilla formula:
where level is the hoe's Unbreaking enchantment level.
Tip
Using a hoe with high Unbreaking reduces durability loss significantly on large farms.
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 MuttonintoCooked 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
Adds new crafting, smelting, and stonecutter recipes for a more accessible way to obtain items.
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)
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
- Log
x4 - Stripped Wood
x4 - Wood
x4 - Stripped Log
x4 - Planks
x1
Nether wood edge cases (Warped & Crimson):
- Stem
x4 - Hyphae
x4
Wood Result Items
- Slab
x2 - Stick
x2 - Sign
x1 - Door
x1 - Pressure Plate
x1 - Trapdoor
x1 - Fence Gate
x1 - Gate
x1
Wood transfer back & forth:
- Stripped Wood
- Stripped Log
- Wood
- Log
Nether wood edge cases:
- Stripped Stem
- Stripped Hyphae
- Stem
- 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
All settings are accessible through the pack settings panel in-game. No manual file editing is required.
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
LimitationsLight blocks are placed only in air or liquid. Solid blocks are never replaced, which can cause light gaps in tight or enclosed spaces.LimitationsArmor 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.
LimitationsWe 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
LimitationsEnchantments and item color cannot be transferred between hands due to API limitations that do not allow editing the offhand cleanly.
This project is licensed under the MIT License.
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!
- @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


















