Use 16×16 for standard full-block geometry
Microsoft’s custom die-block walkthrough uses 16×16 images for blocks built with standard full-block geometry. That is a practical native-texture baseline, not a rule that every block concept must be generated at 16×16 from the first sketch.
Keep a larger concept master when you need a store card, wiki image or promotional render. Create a separate in-game derivative at the grid your geometry and pack actually expect, then inspect it in the running world rather than judging only the large source.
- Start with a square grid and hard edges when the final target is a native block texture.
- Keep each face readable at a glance; remove detail that collapses when reduced.
- Do not assume a 512×512 concept is a drop-in replacement for a 16×16 runtime texture.
Put the PNG and mapping where Bedrock expects them
A resource pack is a file contract, not just an image folder. The custom-block tutorial places block PNGs under textures/blocks and registers friendly names in terrain_texture.json. Keep the identifier, filename and JSON mapping consistent so the block definition resolves the texture you intended.
Test a minimal resource pack first. A typo in a large production pack can look like a rendering problem when the real issue is a path or a missing catalog entry.
- Resource pack: textures/blocks/<your_texture>.png.
- Resource pack: textures/terrain_texture.json with a matching texture_data name.
- Behavior pack and resource pack: matching identifiers, manifest dependencies and version settings.
Match the texture to geometry and material instances
A six-sided cube, a custom mesh and an in-hand icon do not necessarily use the same mapping. Choose the geometry first, then assign the texture names or material instances that geometry expects. If a face is rotated, stretched or missing, fix the mapping before repainting the art.
From Bedrock 1.21.80 onward, Microsoft’s custom-block guidance calls out explicit geometry for custom blocks to avoid conflicts with vanilla block values. Treat geometry and textures as one tested unit rather than independent assets.
Use variations deliberately
Weighted texture variations can make a natural terrain set feel less repetitive, but the feature and its availability can depend on the current Bedrock version or preview settings. Keep the base texture working first, then add variations only when the target environment supports them.
Name variants predictably and keep the palette, lighting direction and edge treatment related. A random pile of near-duplicates increases pack cost without making the terrain feel intentional.
Prompt a block concept you can finish
Name the material, silhouette, camera angle, face pattern, palette size, edge treatment and target grid. Ask for a clean square concept with no baked labels or UI text, then create the exact runtime derivative after you confirm the pack contract.
GUIFoundry’s Minecraft block mode is useful for exploring a coherent family of stone, crystal, wood or machine blocks. Keep the generated master for planning and promotion, and perform the final downscale, naming and in-game validation against the Bedrock resource-pack files.
- Verify the texture path and terrain_texture.json name.
- Load both packs together and test placement, breaking, inventory and hand views.
- Check neighboring faces, transparency, mip behavior and readability on the lowest target device.
- Measure the whole pack’s texture pixels and handles instead of optimizing one file in isolation.