javaintellij-ideaminecraftminecraft-forge

Minecraft lamp texture not texturing 1.19-41.1.0


I'm making a backrooms inspired minecraft mod, but i've run into a problem: all my textures load, apart from the textures for my lamp. the lighting works as intended though.

ModBlocks.java

package net.troy.floors.block;

import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.material.Material;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import net.troy.floors.block.custom.ceiling_light_red;
import net.troy.floors.floors;
import net.troy.floors.item.ModItems;

import java.util.function.Supplier;

public class ModBlocks {
    public  static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, floors.MOD_ID);

    public static final  RegistryObject<Block> FLOOR_BLOCK = registerBlock("floor_block", () -> new Block(BlockBehaviour.Properties.of(Material.WOOD).strength(-1f)), CreativeModeTab.TAB_BUILDING_BLOCKS);
    public static final  RegistryObject<Block> WALL_BLOCK = registerBlock("wall_block", () -> new Block(BlockBehaviour.Properties.of(Material.STONE).strength(-1f)), CreativeModeTab.TAB_BUILDING_BLOCKS);
    public static final  RegistryObject<Block> CEILING_BLOCK = registerBlock("ceiling_block", () -> new Block(BlockBehaviour.Properties.of(Material.STONE).strength(-1f)), CreativeModeTab.TAB_BUILDING_BLOCKS);
    public static final  RegistryObject<Block> CEILING_LIGHT_RED_BLOCK = registerBlock("ceiling_light_red", () -> new ceiling_light_red(BlockBehaviour.Properties.of(Material.STONE).strength(-1f).lightLevel(state -> state.getValue(ceiling_light_red.LIT) ? 5 : 0)), CreativeModeTab.TAB_DECORATIONS);

    private static <T extends Block> RegistryObject<T> registerBlock(String name, Supplier<T> block, CreativeModeTab tab) {
        RegistryObject<T> toReturn = BLOCKS.register(name, block);
        registerBlockItem(name, toReturn, tab);
        return  toReturn;
    }

    private static <T extends Block> RegistryObject<Item> registerBlockItem(String name, RegistryObject<T> block, CreativeModeTab tab) {

        return ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties().tab(tab)));
    }

    public static void register(IEventBus eventBus) {
        BLOCKS.register(eventBus);
    }
}


custom/ceiling_light_red.java

package net.troy.floors.block.custom;

import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.level.block.state.properties.BooleanProperty;
import net.minecraft.world.phys.BlockHitResult;

public class ceiling_light_red extends Block {
    public static final BooleanProperty LIT = BooleanProperty.create("lit");
    public ceiling_light_red(Properties properties) {
        super(properties);
    }

    @Override
    public InteractionResult use(BlockState state, Level level, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult result) {
        if(!level.isClientSide() && hand == InteractionHand.MAIN_HAND) {
            level.setBlock(blockPos, state.cycle(LIT),3);
        }

        return super.use(state, level, blockPos, player, hand, result);
    }

    @Override
    protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
        builder.add(LIT);
    }
}

floors.java

package net.troy.floors;

import com.mojang.logging.LogUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.world.level.block.Blocks;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.registries.ForgeRegistries;
import net.troy.floors.block.ModBlocks;
import net.troy.floors.item.ModItems;
import org.slf4j.Logger;

// The value here should match an entry in the META-INF/mods.toml file
@Mod(floors.MOD_ID)
public class floors
{
    public static final String MOD_ID = "floors";
    private static final Logger LOGGER = LogUtils.getLogger();

    public floors()
    {
        IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();

        ModItems.register(modEventBus);
        ModBlocks.register(modEventBus);

        // Register the commonSetup method for modloading
        modEventBus.addListener(this::commonSetup);

        // Register ourselves for server and other game events we are interested in
        MinecraftForge.EVENT_BUS.register(this);
    }

    private void commonSetup(final FMLCommonSetupEvent event)
    {
        // Some common setup code
        LOGGER.info("HELLO FROM COMMON SETUP");
        LOGGER.info("DIRT BLOCK >> {}", ForgeRegistries.BLOCKS.getKey(Blocks.DIRT));
    }

    // You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent
    @Mod.EventBusSubscriber(modid = MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
    public static class ClientModEvents
    {
        @SubscribeEvent
        public static void onClientSetup(FMLClientSetupEvent event)
        {
            // Some client setup code
            LOGGER.info("HELLO FROM CLIENT SETUP");
            LOGGER.info("MINECRAFT NAME >> {}", Minecraft.getInstance().getUser().getName());
        }
    }
}

blockstates/ceiling_light_red.json

{
  "variants": {
    "lit=true": { "model": "floors:block/ceiling_light_red_ON" },
    "lit=false": { "model": "floors:block/ceiling_light_red_OFF" }
  }
}

models/block/ceiling_light_red_ON.json

{
  "parent": "block/cube_all",
  "textures": {
    "all": "floors:block/ceiling_light_red_ON"
  }
}

models/block/ceiling_light_red_OFF.json

{
  "parent": "block/cube_all",
  "textures": {
    "all": "floors:block/ceiling_light_red_OFF"
  }
}

models/item/ceiling_light_red.json

{
  "parent": "floors:block/ceiling_light_red_OFF"
}

In case it's needed, here's latest.log

[06Jul.2025 14:02:23.315] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeclientuserdev, --version, MOD_DEV, --assetIndex, 1.19, --assetsDir, C:\Users\troyg\.gradle\caches\forge_gradle\assets, --gameDir, ., --fml.forgeVersion, 41.1.0, --fml.mcVersion, 1.19, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20220607.102129]
[06Jul.2025 14:02:23.318] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.10 by Amazon.com Inc.; OS Windows 10 arch amd64 version 10.0
[06Jul.2025 14:02:23.489] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/troyg/.gradle/caches/modules-2/files-2.1/org.spongepowered/mixin/0.8.5/9d1c0c3a304ae6697ecd477218fa61b850bf57fc/mixin-0.8.5.jar%23124!/ Service=ModLauncher Env=CLIENT
[06Jul.2025 14:02:23.777] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\troyg\.gradle\caches\modules-2\files-2.1\net.minecraftforge\javafmllanguage\1.19-41.1.0\be32fef2bf3091b53308e5a1b1930169dd34136c\javafmllanguage-1.19-41.1.0.jar is missing mods.toml file
[06Jul.2025 14:02:23.779] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\troyg\.gradle\caches\modules-2\files-2.1\net.minecraftforge\lowcodelanguage\1.19-41.1.0\887bff594c934cc4088c9c867db193b8537ee1f6\lowcodelanguage-1.19-41.1.0.jar is missing mods.toml file
[06Jul.2025 14:02:23.780] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\troyg\.gradle\caches\modules-2\files-2.1\net.minecraftforge\mclanguage\1.19-41.1.0\48ae61dcde926300da0c051d88c072ef1dc71ebb\mclanguage-1.19-41.1.0.jar is missing mods.toml file
[06Jul.2025 14:02:23.782] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\troyg\.gradle\caches\modules-2\files-2.1\net.minecraftforge\fmlcore\1.19-41.1.0\a11d8b3111ba256064745a6a79f7fee189751152\fmlcore-1.19-41.1.0.jar is missing mods.toml file
[06Jul.2025 14:02:23.860] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: No dependencies to load found. Skipping!
[06Jul.2025 14:02:24.851] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'forgeclientuserdev' with arguments [--version, MOD_DEV, --gameDir, ., --assetsDir, C:\Users\troyg\.gradle\caches\forge_gradle\assets, --assetIndex, 1.19]
[06Jul.2025 14:02:27.435] [pool-3-thread-1/INFO] [net.minecraft.util.datafix.DataFixers/]: Building unoptimized datafixer
[06Jul.2025 14:02:28.476] [Render thread/WARN] [net.minecraft.server.packs.VanillaPackResources/]: Assets URL 'union:/C:/Users/troyg/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.19-41.1.0_mapped_official_1.19/forge-1.19-41.1.0_mapped_official_1.19.jar%23186!/assets/.mcassetsroot' uses unexpected schema
[06Jul.2025 14:02:28.476] [Render thread/WARN] [net.minecraft.server.packs.VanillaPackResources/]: Assets URL 'union:/C:/Users/troyg/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.19-41.1.0_mapped_official_1.19/forge-1.19-41.1.0_mapped_official_1.19.jar%23186!/data/.mcassetsroot' uses unexpected schema
[06Jul.2025 14:02:28.533] [Render thread/INFO] [com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService/]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[06Jul.2025 14:02:28.541] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Setting user: Dev
[06Jul.2025 14:02:28.630] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Backend library: LWJGL version 3.3.1 build 7
[06Jul.2025 14:02:28.974] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Forge mod loading, version 41.1.0, for MC 1.19 with MCP 20220607.102129
[06Jul.2025 14:02:28.976] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v41.1.0 Initialized
[06Jul.2025 14:02:29.605] [Render thread/INFO] [net.minecraftforge.gametest.ForgeGameTestHooks/]: Enabled Gametest Namespaces: [floors]
[06Jul.2025 14:02:29.682] [Render thread/INFO] [net.minecraft.server.packs.resources.ReloadableResourceManager/]: Reloading ResourceManager: Default, Mod Resources
[06Jul.2025 14:02:29.695] [Worker-Main-1/INFO] [net.troy.floors.floors/]: HELLO FROM COMMON SETUP
[06Jul.2025 14:02:29.695] [Worker-Main-1/INFO] [net.troy.floors.floors/]: DIRT BLOCK >> minecraft:dirt
[06Jul.2025 14:02:29.776] [Worker-Main-11/INFO] [net.troy.floors.floors/]: HELLO FROM CLIENT SETUP
[06Jul.2025 14:02:29.776] [Worker-Main-11/INFO] [net.troy.floors.floors/]: MINECRAFT NAME >> Dev
[06Jul.2025 14:02:29.985] [Forge Version Check/INFO] [net.minecraftforge.fml.VersionChecker/]: [forge] Starting version check at https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json
[06Jul.2025 14:02:30.407] [Forge Version Check/INFO] [net.minecraftforge.fml.VersionChecker/]: [forge] Found status: UP_TO_DATE Current: 41.1.0 Target: null
[06Jul.2025 14:02:31.636] [Worker-Main-13/WARN] [net.minecraft.client.resources.model.ModelBakery/]: Exception loading blockstate definition: 'floors:blockstates/ceiling_light_red.json' missing model for variant: 'floors:ceiling_light_red#lit=true'
[06Jul.2025 14:02:31.636] [Worker-Main-13/WARN] [net.minecraft.client.resources.model.ModelBakery/]: Exception loading blockstate definition: 'floors:blockstates/ceiling_light_red.json' missing model for variant: 'floors:ceiling_light_red#lit=false'
[06Jul.2025 14:02:31.637] [Worker-Main-13/WARN] [net.minecraft.client.resources.model.ModelBakery/]: Exception loading blockstate definition: 'floors:blockstates/ceiling_light_red.json' in resourcepack: 'Mod Resources': Non [a-z0-9/._-] character in path of location: floors:block/ceiling_light_red_ON
[06Jul.2025 14:02:32.336] [Worker-Main-13/WARN] [net.minecraft.client.resources.model.ModelBakery/]: Unable to load model: 'floors:ceiling_light_red#inventory' referenced from: floors:ceiling_light_red#inventory: net.minecraft.ResourceLocationException: Non [a-z0-9/._-] character in path of location: floors:block/ceiling_light_red_OFF
[06Jul.2025 14:02:33.538] [Render thread/WARN] [net.minecraft.client.sounds.SoundEngine/]: Missing sound for event: minecraft:item.goat_horn.play
[06Jul.2025 14:02:33.539] [Render thread/WARN] [net.minecraft.client.sounds.SoundEngine/]: Missing sound for event: minecraft:entity.goat.screaming.horn_break
[06Jul.2025 14:02:33.570] [Render thread/INFO] [com.mojang.blaze3d.audio.Library/]: OpenAL initialized on device OpenAL Soft on Speakers (Logitech G432 Gaming Headset)
[06Jul.2025 14:02:33.571] [Render thread/INFO] [net.minecraft.client.sounds.SoundEngine/SOUNDS]: Sound engine started
[06Jul.2025 14:02:33.662] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 1024x512x4 minecraft:textures/atlas/blocks.png-atlas
[06Jul.2025 14:02:33.668] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 256x128x4 minecraft:textures/atlas/signs.png-atlas
[06Jul.2025 14:02:33.668] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x512x4 minecraft:textures/atlas/banner_patterns.png-atlas
[06Jul.2025 14:02:33.668] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x512x4 minecraft:textures/atlas/shield_patterns.png-atlas
[06Jul.2025 14:02:33.668] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 256x256x4 minecraft:textures/atlas/chest.png-atlas
[06Jul.2025 14:02:33.669] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x256x4 minecraft:textures/atlas/beds.png-atlas
[06Jul.2025 14:02:33.670] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 512x256x4 minecraft:textures/atlas/shulker_boxes.png-atlas
[06Jul.2025 14:02:34.290] [Render thread/WARN] [net.minecraft.client.renderer.ShaderInstance/]: Shader rendertype_entity_translucent_emissive could not find sampler named Sampler2 in the specified shader program.
[06Jul.2025 14:02:34.392] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 256x256x0 minecraft:textures/atlas/particles.png-atlas
[06Jul.2025 14:02:34.393] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 256x256x0 minecraft:textures/atlas/paintings.png-atlas
[06Jul.2025 14:02:34.393] [Render thread/INFO] [net.minecraft.client.renderer.texture.TextureAtlas/]: Created: 128x128x0 minecraft:textures/atlas/mob_effects.png-atlas
[06Jul.2025 14:02:34.591] [Realms Notification Availability checker #1/INFO] [com.mojang.realmsclient.client.RealmsClient/]: Could not authorize you against Realms server: java.lang.RuntimeException: Failed to parse into SignedJWT: 0
[06Jul.2025 14:02:39.797] [Render thread/INFO] [net.minecraft.world.item.crafting.RecipeManager/]: Loaded 7 recipes
[06Jul.2025 14:02:40.193] [Render thread/INFO] [net.minecraft.advancements.AdvancementList/]: Loaded 1179 advancements
[06Jul.2025 14:02:40.439] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Starting integrated minecraft server version 1.19
[06Jul.2025 14:02:40.439] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Generating keypair
[06Jul.2025 14:02:40.713] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Preparing start region for dimension minecraft:overworld
[06Jul.2025 14:02:42.614] [Render thread/INFO] [net.minecraft.server.level.progress.LoggerChunkProgressListener/]: Preparing spawn area: 0%
[06Jul.2025 14:02:42.614] [Render thread/INFO] [net.minecraft.server.level.progress.LoggerChunkProgressListener/]: Preparing spawn area: 0%
[06Jul.2025 14:02:42.614] [Render thread/INFO] [net.minecraft.server.level.progress.LoggerChunkProgressListener/]: Preparing spawn area: 0%
[06Jul.2025 14:02:42.614] [Render thread/INFO] [net.minecraft.server.level.progress.LoggerChunkProgressListener/]: Preparing spawn area: 0%
[06Jul.2025 14:02:42.738] [Render thread/INFO] [net.minecraft.server.level.progress.LoggerChunkProgressListener/]: Preparing spawn area: 2%
[06Jul.2025 14:02:43.049] [Server thread/INFO] [net.minecraftforge.server.permission.PermissionAPI/]: Successfully initialized permission handler forge:default_handler
[06Jul.2025 14:02:43.057] [Render thread/INFO] [net.minecraft.server.level.progress.LoggerChunkProgressListener/]: Time elapsed: 2322 ms
[06Jul.2025 14:02:43.158] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Changing view distance to 12, from 10
[06Jul.2025 14:02:43.160] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Changing simulation distance to 12, from 0
[06Jul.2025 14:02:43.312] [Render thread/WARN] [io.netty.util.internal.SystemPropertyUtil/]: Unable to parse the boolean system property 'java.net.preferIPv6Addresses':system - using the default value: false
[06Jul.2025 14:02:44.061] [Netty Local Client IO #0/INFO] [net.minecraftforge.network.NetworkHooks/]: Connected to a modded server.
[06Jul.2025 14:02:44.130] [Server thread/INFO] [net.minecraftforge.common.AdvancementLoadFix/]: Using new advancement loading for net.minecraft.server.PlayerAdvancements@3505f0dc
[06Jul.2025 14:02:44.146] [Server thread/INFO] [net.minecraft.server.players.PlayerList/]: Dev[local:E:c3181e19] logged in with entity id 83 at (-4.120875086231727, 96.0, 475.12735992189533)
[06Jul.2025 14:02:44.200] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Dev joined the game
[06Jul.2025 14:02:44.991] [Render thread/INFO] [net.minecraft.advancements.AdvancementList/]: Loaded 64 advancements
[06Jul.2025 14:02:48.901] [Server thread/INFO] [net.minecraft.client.server.IntegratedServer/]: Saving and pausing game...
[06Jul.2025 14:02:48.911] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[mhmmmmmmm.......    aAHA!]'/minecraft:overworld
[06Jul.2025 14:02:48.927] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[mhmmmmmmm.......    aAHA!]'/minecraft:the_end
[06Jul.2025 14:02:48.928] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[mhmmmmmmm.......    aAHA!]'/minecraft:the_nether
[06Jul.2025 14:02:49.865] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Stopping!
[06Jul.2025 14:02:49.908] [Server thread/INFO] [net.minecraft.server.network.ServerGamePacketListenerImpl/]: Dev lost connection: Disconnected
[06Jul.2025 14:02:49.908] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Dev left the game
[06Jul.2025 14:02:49.920] [Server thread/INFO] [net.minecraft.server.network.ServerGamePacketListenerImpl/]: Stopping singleplayer server as player logged out
[06Jul.2025 14:02:49.965] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Stopping server
[06Jul.2025 14:02:49.965] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving players
[06Jul.2025 14:02:49.965] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving worlds
[06Jul.2025 14:02:50.835] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[mhmmmmmmm.......    aAHA!]'/minecraft:overworld
[06Jul.2025 14:02:50.903] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[mhmmmmmmm.......    aAHA!]'/minecraft:the_end
[06Jul.2025 14:02:50.903] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: Saving chunks for level 'ServerLevel[mhmmmmmmm.......    aAHA!]'/minecraft:the_nether
[06Jul.2025 14:02:50.917] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (mhmmmmmmm_______    aAHA!): All chunks are saved
[06Jul.2025 14:02:50.917] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[06Jul.2025 14:02:50.917] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[06Jul.2025 14:02:50.917] [Server thread/INFO] [net.minecraft.server.MinecraftServer/]: ThreadedAnvilChunkStorage: All dimensions are saved

Solution

  • The log contains your answer, specifically this part:

    Non [a-z0-9/._-] character in path of location: floors:block/ceiling_light_red_OFF
    

    Regular expressions are quite literal by default, and the range a-z (ASCII 97-122) does not contain any of the uppercase latin characters A-Z (ASCII 65-90). So the lower-case nature of namespaced keys in MC:JE is not just a convention- it's required. Observance of naming conventions improves code readability and helps prevent certain runtime issues.