Search the docs

Find a guide, global, type or member

Custom content

content.luau declares what your experience adds to Minecraft: blocks, items, mobs, display models, font images, tags and recipes. It runs once when the experience is built, not during a match, and only the content global exists there.

Items

Coin Rush's whole content.luau is one line:

content.item("coin", { base = "minecraft:sunflower", name = "Coin", color = 0xFFD700, stack = 64 })

Scripts then give it by its key: player:give("coin"). A key without a namespace means your own item if you declared one, the vanilla item otherwise. See ItemDef for every field.

Blocks and mobs

content.block and content.mob take a BlockDef and a MobDef. Their models and textures live in assets/:

assets/models/<path>.json
assets/textures/<path>.png

Glowstone Create previews models, item definitions and Blockbench .bbmodel files in 3D beside the editor.

Recipes and tags

content.itemTag("gems", { "ruby", "minecraft:emerald" })

content.shaped("ruby_block", {
	pattern = { "rrr", "rrr", "rrr" },
	key = { r = "ruby" },
	result = "ruby_block",
})

"#gems" names the tag wherever an ingredient is expected.

Mistakes are caught early

A malformed table, unknown field, duplicate key, missing asset or passed quota is refused when content is built, reported as the file:line of the call that caused it. The ContentApi page lists the quotas.