Four things to get right first
Pick the loader before you pick the idea
Fabric and NeoForge are separate worlds. The same mod has to be built twice to run on both, and a player cannot mix loaders in one profile.
Your block still needs a model and a texture
The code registers the block; the resource pack side of the mod gives it a model, a texture and a name. A registered block with no model shows as the purple-and-black missing texture.
Ids are namespaced, and the namespace is yours
yourmod:copper_hammer never clashes with another mod. Using minecraft: for your own content will.
Version jumps break mods, not packs
Mappings and APIs change every release. A mod built for one version almost never runs on the next without a port, which is why every mod page here lists the versions it actually supports.
