From cc43ed8dc8a556d601017b66c994cc576f2f546b Mon Sep 17 00:00:00 2001 From: Rainer Leit Date: Thu, 17 Sep 2026 17:55:48 +0300 Subject: [PATCH] Added: Initial world generation tool --- .claude/settings.json | 5 + .gitignore | 4 + CLAUDE.md | 34 +- .../Heatmaps/Level_01/Layer_01.uasset | 3 + .../Heatmaps/Level_01/Layer_02.uasset | 3 + .../Heatmaps/Level_01/Layer_03.uasset | 3 + .../Heatmaps/Level_02/Layer_01.uasset | 3 + .../Heatmaps/Level_02/Layer_02.uasset | 3 + .../Heatmaps/Level_02/Layer_03.uasset | 3 + .../Heatmaps/Level_03/Layer_01.uasset | 3 + .../Heatmaps/Level_03/Layer_02.uasset | 3 + .../Heatmaps/Level_03/Layer_03.uasset | 3 + .../Maps/Rocky_Meadows_01.umap | 3 + .../Maps/Rocky_Meadows_02.umap | 3 + .../Maps/Rocky_Meadows_03.umap | 3 + .../Light_Material/M_Cloud_Shadows.uasset | 3 + .../M_Cloud_Shadows_Inst02.uasset | 3 + .../Material_Function/Panner.uasset | 3 + .../Materials/M_Landscape_Main.uasset | 3 + .../M_Landscape_Main_Inst_Rocky.uasset | 3 + ..._Landscape_Main_Inst_RockyMeadows02.uasset | 3 + .../Base_Layer_function.uasset | 3 + .../Layer_02_function.uasset | 3 + .../Layer_03_function.uasset | 3 + .../Base_Layer_LayerInfo.uasset | 3 + .../Material_Layers/Layer_02_LayerInfo.uasset | 3 + .../Material_Layers/Layer_03_LayerInfo.uasset | 3 + .../Skybox/M_Skybox_Inst_RockyMeadows.uasset | 3 + .../M_Skybox_Inst_RockyMeadows_Sunset.uasset | 3 + .../Materials/Skybox/M_Skybox_Main.uasset | 3 + .../Materials/Skybox/Skybox_Mesh.uasset | 3 + .../Textures/Skies/T_Sky_RockyMeadows.uasset | 3 + .../Textures/T_Cloud_Shadows_Tex.uasset | 3 + .../Textures/T_Grass_Color_02.uasset | 3 + .../Textures/T_Grass_normal.uasset | 3 + .../Textures/T_Rock_Base_Color.uasset | 3 + .../Textures/T_Rock_Base_Normal.uasset | 3 + .../Textures/T_Rock_High_Color.uasset | 3 + .../Textures/T_Rock_Shade_Variation.uasset | 3 + Content/HouseForge_01/Levels/Showcase.umap | 3 + .../HouseForge_01/Materials/MI_Forge.uasset | 3 + .../Materials/MM_SolidBase.uasset | 3 + .../Materials/Metal/MI_MetalBase.uasset | 3 + .../Materials/Metal/MI_Metal_Ceiling.uasset | 3 + .../Metal/MI_Metal_DoorNWindows.uasset | 3 + .../Materials/Metal/MI_Metal_Doorway.uasset | 3 + .../Metal/MI_Metal_Foundation.uasset | 3 + .../Materials/Metal/MI_Metal_Pillar.uasset | 3 + .../Materials/Metal/MI_Metal_Railings.uasset | 3 + .../Materials/Metal/MI_Metal_Ramp.uasset | 3 + .../Materials/Metal/MI_Metal_Roof.uasset | 3 + .../Materials/Metal/MI_Metal_RoofEnd.uasset | 3 + .../Materials/Metal/MI_Metal_Stairs.uasset | 3 + .../Metal/MI_Metal_StairsRailings.uasset | 3 + .../Materials/Metal/MI_Metal_Wall.uasset | 3 + .../Materials/Metal/MI_Metal_Wall_Tri.uasset | 3 + .../Materials/Metal/MI_Metal_Window.uasset | 3 + .../Primitive/MI_PrimitiveWood.uasset | 3 + .../Materials/Primitive/MI_Rope.uasset | 3 + .../Materials/Primitive/MI_Thatch.uasset | 3 + .../Materials/Stone/MI_Grout.uasset | 3 + .../Materials/Stone/MI_RockBits.uasset | 3 + .../Materials/Stone/MI_Rocks.uasset | 3 + .../Materials/Stone/MI_Rocks_Doorway.uasset | 3 + .../Materials/Stone/MI_Stone_Stairs.uasset | 3 + .../Materials/Wood/MI_MetalBits.uasset | 3 + .../Materials/Wood/MI_MetalKnob.uasset | 3 + .../Materials/Wood/MI_Wood.uasset | 3 + .../Materials/Wood/MI_Wood_Burnt.uasset | 3 + .../Materials/Wood/MI_Wood_Paint.uasset | 3 + .../Meshes/Metal/SM_Metal_Ceiling.uasset | 3 + .../Meshes/Metal/SM_Metal_Ceiling_Tri.uasset | 3 + .../Meshes/Metal/SM_Metal_Door.uasset | 3 + .../Metal/SM_Metal_Door_Part_Middle1.uasset | 3 + .../Metal/SM_Metal_Door_Part_Middle2.uasset | 3 + .../Metal/SM_Metal_Door_Part_Side.uasset | 3 + .../Meshes/Metal/SM_Metal_Doorway.uasset | 3 + .../Metal/SM_Metal_FenceFoundations.uasset | 3 + .../Meshes/Metal/SM_Metal_Foundation.uasset | 3 + .../Metal/SM_Metal_Foundation_Tri.uasset | 3 + .../Meshes/Metal/SM_Metal_Pillar.uasset | 3 + .../Meshes/Metal/SM_Metal_Railings.uasset | 3 + .../Meshes/Metal/SM_Metal_Ramp.uasset | 3 + .../Meshes/Metal/SM_Metal_Ramp_Double.uasset | 3 + .../Meshes/Metal/SM_Metal_Ramp_Half.uasset | 3 + .../Meshes/Metal/SM_Metal_Roof.uasset | 3 + .../Metal/SM_Metal_RoofCorner_In.uasset | 3 + .../Metal/SM_Metal_RoofCorner_Out.uasset | 3 + .../Meshes/Metal/SM_Metal_RoofOverhang.uasset | 3 + .../Meshes/Metal/SM_Metal_Roof_End_L.uasset | 3 + .../Metal/SM_Metal_Roof_End_L_V2.uasset | 3 + .../Meshes/Metal/SM_Metal_Roof_End_R.uasset | 3 + .../Metal/SM_Metal_Roof_End_R_V2.uasset | 3 + .../Meshes/Metal/SM_Metal_Roof_Tri.uasset | 3 + .../Meshes/Metal/SM_Metal_Roof_Tri_Inv.uasset | 3 + .../Meshes/Metal/SM_Metal_Stairs.uasset | 3 + .../Metal/SM_Metal_StairsRailings.uasset | 3 + .../Metal/SM_Metal_Stairs_Double.uasset | 3 + .../Meshes/Metal/SM_Metal_Stairs_Half.uasset | 3 + .../Metal/SM_Metal_Stairs_Railing_Long.uasset | 3 + .../SM_Metal_Stairs_Railing_Short.uasset | 3 + .../Meshes/Metal/SM_Metal_Wall.uasset | 3 + .../Meshes/Metal/SM_Metal_WallWindow.uasset | 3 + .../Metal/SM_Metal_WallWindow_Large.uasset | 3 + .../Meshes/Metal/SM_Metal_Wall_Tri_L.uasset | 3 + .../Meshes/Metal/SM_Metal_Wall_Tri_R.uasset | 3 + .../Meshes/Metal/SM_Metal_Wall_V2.uasset | 3 + .../Metal/SM_Metal_Wall_V2_Offset.uasset | 3 + .../Meshes/Metal/SM_Metal_WindowWing.uasset | 3 + .../Metal/SM_Metal_Window_Closed.uasset | 3 + .../Meshes/Metal/SM_Metal_Window_Open.uasset | 3 + .../HouseForge_01/Meshes/Misc/SM_Forge.uasset | 3 + .../Meshes/Misc/SM_Rug_01.uasset | 3 + .../Meshes/Misc/SM_Rug_01B.uasset | 3 + .../Meshes/Misc/SM_Rug_02.uasset | 3 + .../Meshes/Misc/SM_Rug_02B.uasset | 3 + .../Primitive/SM_Primitive_Border.uasset | 3 + .../Primitive/SM_Primitive_Ceiling.uasset | 3 + .../Primitive/SM_Primitive_Ceiling_Tri.uasset | 3 + .../Meshes/Primitive/SM_Primitive_Door.uasset | 3 + .../Primitive/SM_Primitive_Doorway.uasset | 3 + .../SM_Primitive_FenceFoundation.uasset | 3 + .../Primitive/SM_Primitive_Foundation.uasset | 3 + .../SM_Primitive_Foundation_Tri.uasset | 3 + .../Primitive/SM_Primitive_Pillar_01.uasset | 3 + .../Primitive/SM_Primitive_Pillar_02.uasset | 3 + .../Primitive/SM_Primitive_Railings.uasset | 3 + .../Primitive/SM_Primitive_Railings_V2.uasset | 3 + .../Meshes/Primitive/SM_Primitive_Ramp.uasset | 3 + .../Primitive/SM_Primitive_Ramp_Double.uasset | 3 + .../Primitive/SM_Primitive_Ramp_Half.uasset | 3 + .../Meshes/Primitive/SM_Primitive_Roof.uasset | 3 + .../SM_Primitive_RoofCorner_In.uasset | 3 + .../SM_Primitive_RoofCorner_In_V2.uasset | 3 + .../SM_Primitive_RoofCorner_Out.uasset | 3 + .../SM_Primitive_RoofCorner_Out_V2.uasset | 3 + .../Primitive/SM_Primitive_RoofEnd_L.uasset | 3 + .../SM_Primitive_RoofEnd_L_V2.uasset | 3 + .../Primitive/SM_Primitive_RoofEnd_R.uasset | 3 + .../SM_Primitive_RoofEnd_R_V2.uasset | 3 + .../SM_Primitive_RoofOverhang.uasset | 3 + .../SM_Primitive_RoofOverhang_V2.uasset | 3 + .../Primitive/SM_Primitive_Roof_Tri.uasset | 3 + .../SM_Primitive_Roof_Tri_Inv.uasset | 3 + .../SM_Primitive_Roof_Tri_Inv_V2.uasset | 3 + .../Primitive/SM_Primitive_Roof_Tri_V2.uasset | 3 + .../Primitive/SM_Primitive_Roof_v2.uasset | 3 + .../Primitive/SM_Primitive_Stairs.uasset | 3 + .../SM_Primitive_StairsRailings.uasset | 3 + .../SM_Primitive_Stairs_Double.uasset | 3 + .../Primitive/SM_Primitive_Stairs_Half.uasset | 3 + ...SM_Primitive_Stairs_Railings_Double.uasset | 3 + ...Primitive_Stairs_Railings_Double_V2.uasset | 3 + .../SM_Primitive_Stairs_Railings_Half.uasset | 3 + ...M_Primitive_Stairs_Railings_Half_V2.uasset | 3 + .../SM_Primitive_ThatchClump_01.uasset | 3 + .../SM_Primitive_ThatchClump_02.uasset | 3 + .../SM_Primitive_ThatchClump_03.uasset | 3 + .../Meshes/Primitive/SM_Primitive_Wall.uasset | 3 + .../Primitive/SM_Primitive_WallWindow.uasset | 3 + .../SM_Primitive_WallWindow_V2.uasset | 3 + .../Primitive/SM_Primitive_Wall_Tri_L.uasset | 3 + .../Primitive/SM_Primitive_Wall_Tri_R.uasset | 3 + .../Primitive/SM_Primitive_Wall_V2.uasset | 3 + .../Primitive/SM_Primitive_Window.uasset | 3 + .../Meshes/Stone/SM_Reinforced_Door.uasset | 3 + .../Stone/SM_Reinforced_Door_Arc.uasset | 3 + .../Meshes/Stone/SM_Reinforced_Window.uasset | 3 + .../Stone/SM_Reinforced_Window_L_Arc.uasset | 3 + .../Stone/SM_Reinforced_Window_R_Arc.uasset | 3 + .../Meshes/Stone/SM_StoneRamp_Double.uasset | 3 + .../Meshes/Stone/SM_StoneRamp_Half.uasset | 3 + .../Meshes/Stone/SM_Stone_Border_01.uasset | 3 + .../Meshes/Stone/SM_Stone_Border_02.uasset | 3 + .../Meshes/Stone/SM_Stone_Ceiling.uasset | 3 + .../Meshes/Stone/SM_Stone_Ceiling_Tri.uasset | 3 + .../Meshes/Stone/SM_Stone_Doorway.uasset | 3 + .../Meshes/Stone/SM_Stone_Doorway_Arc.uasset | 3 + .../Stone/SM_Stone_FenceFoundation.uasset | 3 + .../Meshes/Stone/SM_Stone_Foundation.uasset | 3 + .../Stone/SM_Stone_Foundation_Tri.uasset | 3 + .../Meshes/Stone/SM_Stone_Pillar_01.uasset | 3 + .../Meshes/Stone/SM_Stone_Pillar_02.uasset | 3 + .../Meshes/Stone/SM_Stone_Railings.uasset | 3 + .../Meshes/Stone/SM_Stone_Ramp.uasset | 3 + .../Meshes/Stone/SM_Stone_Roof.uasset | 3 + .../Stone/SM_Stone_RoofCorner_In.uasset | 3 + .../Stone/SM_Stone_RoofCorner_Out.uasset | 3 + .../Meshes/Stone/SM_Stone_RoofOverhang.uasset | 3 + .../Meshes/Stone/SM_Stone_Roof_End_L.uasset | 3 + .../Stone/SM_Stone_Roof_End_L_V2.uasset | 3 + .../Meshes/Stone/SM_Stone_Roof_End_R.uasset | 3 + .../Stone/SM_Stone_Roof_End_R_V2.uasset | 3 + .../Meshes/Stone/SM_Stone_Roof_Tri.uasset | 3 + .../Meshes/Stone/SM_Stone_Roof_Tri_Inv.uasset | 3 + .../Meshes/Stone/SM_Stone_Stairs.uasset | 3 + .../Stone/SM_Stone_StairsRailings.uasset | 3 + .../Stone/SM_Stone_StairsRailings_Half.uasset | 3 + .../Stone/SM_Stone_StairsRailings_Long.uasset | 3 + .../Meshes/Stone/SM_Stone_Stairs_Half.uasset | 3 + .../Meshes/Stone/SM_Stone_Stairs_Long.uasset | 3 + .../Meshes/Stone/SM_Stone_Wall.uasset | 3 + .../Meshes/Stone/SM_Stone_WallWindow.uasset | 3 + .../Stone/SM_Stone_WallWindow_Arc.uasset | 3 + .../Meshes/Stone/SM_Wall_Tri_L.uasset | 3 + .../Meshes/Stone/SM_Wall_Tri_R.uasset | 3 + .../Meshes/Wood/SM_Wood_Ceiling.uasset | 3 + .../Meshes/Wood/SM_Wood_Ceiling_Tri.uasset | 3 + .../Meshes/Wood/SM_Wood_Door.uasset | 3 + .../Meshes/Wood/SM_Wood_Door_Arc.uasset | 3 + .../Meshes/Wood/SM_Wood_Doorway.uasset | 3 + .../Meshes/Wood/SM_Wood_Doorway_Arc.uasset | 3 + .../Wood/SM_Wood_FenceFoundations.uasset | 3 + .../Meshes/Wood/SM_Wood_Foundation.uasset | 3 + .../Meshes/Wood/SM_Wood_Foundation_Tri.uasset | 3 + .../Meshes/Wood/SM_Wood_Pillar_01.uasset | 3 + .../Meshes/Wood/SM_Wood_Pillar_02.uasset | 3 + .../Meshes/Wood/SM_Wood_Pillar_Arc_01.uasset | 3 + .../Meshes/Wood/SM_Wood_Pillar_Arc_02.uasset | 3 + .../Meshes/Wood/SM_Wood_Railings.uasset | 3 + .../Meshes/Wood/SM_Wood_Ramp.uasset | 3 + .../Meshes/Wood/SM_Wood_Ramp_Double.uasset | 3 + .../Meshes/Wood/SM_Wood_Ramp_Half.uasset | 3 + .../Meshes/Wood/SM_Wood_Roof.uasset | 3 + .../Meshes/Wood/SM_Wood_RoofCorner_In.uasset | 3 + .../Meshes/Wood/SM_Wood_RoofCorner_Out.uasset | 3 + .../Meshes/Wood/SM_Wood_RoofEnd_L.uasset | 3 + .../Meshes/Wood/SM_Wood_RoofEnd_L_V2.uasset | 3 + .../Meshes/Wood/SM_Wood_RoofEnd_R.uasset | 3 + .../Meshes/Wood/SM_Wood_RoofEnd_R_V2.uasset | 3 + .../Meshes/Wood/SM_Wood_RoofOverhang.uasset | 3 + .../Meshes/Wood/SM_Wood_Roof_Tri.uasset | 3 + .../Meshes/Wood/SM_Wood_Roof_Tri_Inv.uasset | 3 + .../Meshes/Wood/SM_Wood_Stairs.uasset | 3 + .../Meshes/Wood/SM_Wood_StairsRailings.uasset | 3 + .../Wood/SM_Wood_StairsRailings_Double.uasset | 3 + .../Wood/SM_Wood_StairsRailings_Half.uasset | 3 + .../Meshes/Wood/SM_Wood_Stairs_Double.uasset | 3 + .../Meshes/Wood/SM_Wood_Stairs_Half.uasset | 3 + .../Meshes/Wood/SM_Wood_Wall.uasset | 3 + .../Meshes/Wood/SM_Wood_WallWindow.uasset | 3 + .../Wood/SM_Wood_WallWindowLarge.uasset | 3 + .../Meshes/Wood/SM_Wood_WallWindow_Arc.uasset | 3 + .../Meshes/Wood/SM_Wood_Wall_Tri_L.uasset | 3 + .../Meshes/Wood/SM_Wood_Wall_Tri_R.uasset | 3 + .../Meshes/Wood/SM_Wood_Window_L.uasset | 3 + .../Meshes/Wood/SM_Wood_Window_R.uasset | 3 + .../Prefabs/P_MetalHouse_01.uasset | 3 + .../Prefabs/P_MetalHouse_02.uasset | 3 + .../Prefabs/P_PrimitiveHouse_01.uasset | 3 + .../Prefabs/P_PrimitiveHouse_02.uasset | 3 + .../Prefabs/P_PrimitiveHouse_03.uasset | 3 + .../Prefabs/P_PrimitiveHouse_04.uasset | 3 + .../Prefabs/P_StoneHouse_01.uasset | 3 + .../Prefabs/P_StoneHouse_01_Interior.uasset | 3 + .../Prefabs/P_StoneHouse_02.uasset | 3 + .../Prefabs/P_WoodHouse_01.uasset | 3 + .../Prefabs/P_WoodHouse_01_Interior.uasset | 3 + .../Prefabs/P_WoodHouse_02.uasset | 3 + .../Prefabs/P_WoodHouse_03.uasset | 3 + .../Textures/Metal/T_MetalWall_BC.uasset | 3 + .../Textures/Metal/T_MetalWall_N.uasset | 3 + .../Textures/Metal/T_MetalWall_R.uasset | 3 + .../Textures/Metal/T_Metal_Ceiling_BC.uasset | 3 + .../Textures/Metal/T_Metal_Ceiling_N.uasset | 3 + .../Textures/Metal/T_Metal_Ceiling_R.uasset | 3 + .../Metal/T_Metal_DoorNWindow_BC.uasset | 3 + .../Metal/T_Metal_DoorNWindow_N.uasset | 3 + .../Metal/T_Metal_DoorNWindow_R.uasset | 3 + .../Textures/Metal/T_Metal_Doorway_BC.uasset | 3 + .../Textures/Metal/T_Metal_Doorway_N.uasset | 3 + .../Textures/Metal/T_Metal_Doorway_R.uasset | 3 + .../Metal/T_Metal_Foundation_BC.uasset | 3 + .../Metal/T_Metal_Foundation_N.uasset | 3 + .../Metal/T_Metal_Foundation_R.uasset | 3 + .../Textures/Metal/T_Metal_Pillar_BC.uasset | 3 + .../Textures/Metal/T_Metal_Pillar_N.uasset | 3 + .../Textures/Metal/T_Metal_Pillar_R.uasset | 3 + .../Textures/Metal/T_Metal_Railings_BC.uasset | 3 + .../Textures/Metal/T_Metal_Railings_N.uasset | 3 + .../Textures/Metal/T_Metal_Railings_R.uasset | 3 + .../Textures/Metal/T_Metal_Ramp_BC.uasset | 3 + .../Textures/Metal/T_Metal_Ramp_N.uasset | 3 + .../Textures/Metal/T_Metal_Ramp_R.uasset | 3 + .../Textures/Metal/T_Metal_RoofEnd_BC.uasset} | 4 +- .../Textures/Metal/T_Metal_RoofEnd_N.uasset | 3 + .../Textures/Metal/T_Metal_RoofEnd_R.uasset | 3 + .../Textures/Metal/T_Metal_Roof_BC.uasset | 3 + .../Textures/Metal/T_Metal_Roof_N.uasset | 3 + .../Textures/Metal/T_Metal_Roof_R.uasset | 3 + .../Metal/T_Metal_StairsRailings_BC.uasset | 3 + .../Metal/T_Metal_StairsRailings_N.uasset | 3 + .../Metal/T_Metal_StairsRailings_R.uasset | 3 + .../Textures/Metal/T_Metal_Stairs_BC.uasset | 3 + .../Textures/Metal/T_Metal_Stairs_N.uasset | 3 + .../Textures/Metal/T_Metal_Stairs_R.uasset | 3 + .../Metal/T_Metal_Triangle_L_BC.uasset | 3 + .../Metal/T_Metal_Triangle_L_N.uasset | 3 + .../Metal/T_Metal_Triangle_L_R.uasset | 3 + .../Textures/Metal/T_Metal_Window_BC.uasset | 3 + .../Textures/Metal/T_Metal_Window_N.uasset | 3 + .../Textures/Metal/T_Metal_Window_R.uasset | 3 + .../Textures/Misc/T_DoorKnob_Low_BC.uasset | 3 + .../Textures/Misc/T_DoorKnob_Low_N.uasset | 3 + .../Textures/Misc/T_DoorKnob_Low_R.uasset | 3 + .../Textures/Misc/T_Forge_BC.uasset | 3 + .../Textures/Misc/T_Forge_N.uasset | 3 + .../Textures/Misc/T_Forge_R.uasset | 3 + .../Textures/Misc/T_Gradient_Tile.uasset | 3 + .../Textures/Misc/T_MetalBits_BC.uasset | 3 + .../Textures/Misc/T_MetalBits_N.uasset | 3 + .../Textures/Misc/T_MetalBits_R.uasset | 3 + .../Textures/Misc/T_NoiseVertex.uasset | 3 + .../Textures/Misc/T_Rope_BC.uasset | 3 + .../Textures/Misc/T_Rope_N.uasset | 3 + .../Textures/Misc/T_Rope_R.uasset | 3 + .../Textures/Primitive/T_ThatchWall_BC.uasset | 3 + .../Textures/Primitive/T_ThatchWall_N.uasset | 3 + .../Textures/Primitive/T_ThatchWall_R.uasset | 3 + .../Textures/Stone/T_Grout_BC.uasset | 3 + .../Textures/Stone/T_Grout_R.uasset | 3 + .../Textures/Stone/T_Groutl_N.uasset | 3 + .../Textures/Stone/T_RockBits_BC.uasset | 3 + .../Textures/Stone/T_RockBits_N.uasset | 3 + .../Textures/Stone/T_RockBits_R.uasset | 3 + .../Textures/Stone/T_StoneDoorway_BC.uasset | 3 + .../Textures/Stone/T_StoneDoorway_N.uasset | 3 + .../Textures/Stone/T_StoneDoorway_R.uasset | 3 + .../Textures/Stone/T_StoneStairs_BC.uasset | 3 + .../Textures/Stone/T_StoneStairs_N.uasset | 3 + .../Textures/Stone/T_StoneStairs_R.uasset | 3 + .../Textures/Stone/T_StoneWallRocks_R.uasset | 3 + .../Stone/T_StoneWall_Rocks_BC.uasset | 3 + .../Textures/Stone/T_StoneWall_Rocks_N.uasset | 3 + .../Wood/Burnt/T_Wood_Burnt_BC.uasset | 3 + .../Textures/Wood/Burnt/T_Wood_Burnt_N.uasset | 3 + .../Textures/Wood/Burnt/T_Wood_Burnt_R.uasset | 3 + .../Wood/Paint/T_Wood_Paint_BC.uasset | 3 + .../Wood/Paint/T_Wood_Paint_Mask.uasset | 3 + .../Textures/Wood/Paint/T_Wood_Paint_N.uasset | 3 + .../Textures/Wood/Paint/T_Wood_Paint_R.uasset | 3 + .../Textures/Wood/T_Wood_BC.uasset | 3 + .../Textures/Wood/T_Wood_Low_R.uasset | 3 + .../Textures/Wood/T_Wood_N.uasset | 3 + .../BlackSmith/MI_BlackSmithAnvil_01a.uasset | 3 + .../MI_BlackSmithContainerEmissive.uasset | 3 + .../MI_BlackSmithContainer_01a.uasset | 3 + .../Instances/Brasero/MI_Brasero_01a.uasset | 3 + .../Instances/Candle/MI_Candle_01a.uasset | 3 + .../Instances/Candle/MI_TorchKit_01a.uasset | 3 + .../Foliage/MI_CoverPlant_01a.uasset | 3 + .../Foliage/MI_HayNoNanite_01a.uasset | 3 + .../Instances/Foliage/MI_Hay_01a.uasset | 3 + .../Instances/Foliage/MI_Mushroom_01a.uasset | 3 + .../Foliage/MI_TreeBarkPine_01a.uasset | 3 + .../Instances/Food/MI_BottleKit_01a.uasset | 3 + .../Instances/Food/MI_FishnMeat_01a.uasset | 3 + .../Instances/Food/MI_FoodBag_01a.uasset | 3 + .../Instances/Food/MI_FoodKit_01a.uasset | 3 + .../Instances/Food/MI_FoodSeed_01a.uasset | 3 + .../Instances/Food/MI_MetalKitPots_01a.uasset | 3 + .../Instances/Food/MI_MetalKitPots_01b.uasset | 3 + .../Rocks/MI_MasterBoulder_01a.uasset | 3 + .../Instances/Rocks/MI_RockStone_01a.uasset | 3 + .../Instances/Rocks/MI_RockStone_01c.uasset | 3 + .../Instances/Rocks/MI_StonePatch_01a.uasset | 3 + .../Instances/Rocks/MI_StonePatch_01b.uasset | 3 + .../Instances/Sail/MI_VikingFlag_01a.uasset | 3 + .../Instances/Sail/MI_VikingFlag_01b.uasset | 3 + .../Instances/Sail/MI_VikingSail_01a.uasset | 3 + .../ThorHammer/MI_ThorHammer_01a.uasset | 3 + .../Instances/ToolKit/MI_ToolKit_01a.uasset | 3 + .../Instances/Water/MI_AleDrink_01a.uasset | 3 + .../Weapons/MI_VikingShield_01a.uasset | 3 + .../Instances/Weapons/MI_WeaponBow_01a.uasset | 3 + .../Weapons/MI_WeaponKnife_01a.uasset | 3 + .../Instances/Woods/MI_RopeAged_01a.uasset | 3 + .../Instances/Woods/MI_WoodBarrel_01a.uasset | 3 + .../Instances/Woods/MI_WoodCart_01a.uasset | 3 + .../Woods/MI_WoodCarvingTrim_01a.uasset | 3 + .../Woods/MI_WoodCarvingTrim_01b.uasset | 3 + .../Instances/Woods/MI_WoodChest_01a.uasset | 3 + .../Instances/Woods/MI_WoodLog_01a.uasset | 3 + .../Instances/Woods/MI_WoodLog_01b.uasset | 3 + .../Instances/Woods/MI_WoodPlank_01a.uasset | 3 + .../Instances/Woods/MI_WoodRough_01a.uasset | 3 + .../Instances/Woods/MI_WoodRough_01b.uasset | 3 + .../Materials/Master/M_Flag_01a.uasset | 3 + .../Materials/Master/M_Foliage_Master.uasset | 3 + .../Materials/Master/M_MasterORM.uasset | 3 + .../Materials/Master/M_RGBRock_Master.uasset | 3 + .../BaseLayer/MF_BaseLayerAdjustment.uasset | 3 + .../BaseLayer/MF_BaseLayerTextures.uasset | 3 + .../MaterialFunctions/MF_MacroBreaking.uasset | 3 + .../MaterialFunctions/MF_NormalTweak.uasset | 3 + .../MaterialFunctions/MF_Translucency.uasset | 3 + .../RGB_Mask/MF_BaseColorTweak.uasset | 3 + .../MaterialFunctions/RGB_Mask/MF_ORM.uasset | 3 + .../Meshes/Foliage/SM_Mushroom_01d.uasset | 3 + .../ModularSet/SM_Hay_01a.uasset | 3 + .../ModularSet/SM_Hay_02a.uasset | 3 + .../ModularSet/SM_WoodBeam_01a.uasset | 3 + .../ModularSet/SM_WoodFence_01a.uasset | 3 + .../SM_WoodPlatformBarrier_01a.uasset | 3 + .../SM_WoodPlatformFloor_01b.uasset | 3 + .../SM_WoodPlatformStairStep_01a.uasset | 3 + .../SM_WoodPlatformStair_01a.uasset | 3 + .../ModularSet/SM_WoodPlatform_01b.uasset | 3 + .../SM_WoodSupportCylinder_02a.uasset | 3 + .../Props/BPs/BP_BarrelGroup_01a.uasset | 3 + .../Props/BPs/BP_BarrelGroup_01b.uasset | 3 + .../Props/BPs/BP_BarrelGroup_01c.uasset | 3 + .../Props/BPs/BP_BarrelGroup_01d.uasset | 3 + .../Props/BPs/BP_BarrelGroup_01e.uasset | 3 + .../Props/BPs/BP_BarrelGroup_01f.uasset | 3 + .../Meshes/Props/BPs/BP_BoxBottle_01a.uasset | 3 + .../Meshes/Props/BPs/BP_BoxFood_01a.uasset | 3 + .../Meshes/Props/BPs/BP_BoxFood_01b.uasset | 3 + .../Meshes/Props/BPs/BP_BoxFood_02a.uasset | 3 + .../Meshes/Props/BPs/BP_BoxLog_01a.uasset | 3 + .../Meshes/Props/BPs/BP_BoxTool_01a.uasset | 3 + .../Meshes/Props/BPs/BP_BoxUtencil_01a.uasset | 3 + .../Meshes/Props/BPs/BP_Brasero_01a.uasset | 3 + .../Meshes/Props/BPs/BP_FireCamp_01a.uasset | 3 + .../Meshes/Props/BPs/BP_FireCamp_01b.uasset | 3 + .../Meshes/Props/BPs/BP_LightTorch_01a.uasset | 3 + .../Meshes/Props/BPs/BP_LightTorch_02a.uasset | 3 + .../Meshes/Props/BPs/BP_LightTorch_02b.uasset | 3 + .../Props/BPs/BP_StockageWood_01a.uasset | 3 + .../Props/BPs/BP_StorageMarket_01a.uasset | 3 + .../Props/BPs/BP_StorageMarket_01b.uasset | 3 + .../Props/BPs/BP_StorageMarket_01c.uasset | 3 + .../Props/BPs/BP_StorageMarket_01d.uasset | 3 + .../Props/BPs/BP_StorageMarket_01e.uasset | 3 + .../Props/BPs/BP_StorageMarket_01f.uasset | 3 + .../BPs/BP_StrawArcheryTarget_01a.uasset | 3 + .../BPs/BP_StrawArcheryTarget_01b.uasset | 3 + .../Meshes/Props/BPs/BP_WoodBench_01a.uasset | 3 + .../Meshes/Props/BPs/BP_WoodCart_01a.uasset | 3 + .../Meshes/Props/BPs/BP_WoodCart_02a.uasset | 3 + .../Props/BPs/BP_WoodLightTorch_01a.uasset | 3 + .../Props/BPs/BP_WoodLightTorch_01b.uasset | 3 + .../Props/BPs/BP_WoodStorage_01a.uasset | 3 + .../Props/BPs/BP_WoodStorage_01b.uasset | 3 + .../Props/BPs/BP_WoodStorage_01c.uasset | 3 + .../Meshes/Props/BPs/BP_WoodTable_01a.uasset | 3 + .../Meshes/Props/BPs/BP_WoodTable_01b.uasset | 3 + .../Meshes/Props/BPs/BP_WoodTable_02a.uasset | 3 + .../BlackSmith/Anvil/sm_Anvil_01a.uasset | 3 + .../Props/BottleKit/SM_Bottle_01a.uasset | 3 + .../Props/BottleKit/SM_Bottle_01b.uasset | 3 + .../Props/BottleKit/SM_Bottle_02a.uasset | 3 + .../Props/BottleKit/SM_Bottle_02b.uasset | 3 + .../Props/BottleKit/SM_Bottle_03a.uasset | 3 + .../Props/BottleKit/SM_Bottle_03b.uasset | 3 + .../Props/BottleKit/SM_Bottle_04a.uasset | 3 + .../Props/BottleKit/SM_Bottle_04b.uasset | 3 + .../Props/BoxStorage/SM_BoxStorage_01a.uasset | 3 + .../Props/BoxStorage/SM_BoxStorage_01b.uasset | 3 + .../Props/BoxStorage/SM_BoxStorage_01c.uasset | 3 + .../Props/Brasero/SM_Brasero_01a.uasset | 3 + .../Props/Brasero/SM_Brasero_02a.uasset | 3 + .../Props/Brasero/SM_Brasero_02b.uasset | 3 + .../Props/Brasero/SM_Brasero_02c.uasset | 3 + .../Props/CandleKit/SM_Candle_01a.uasset | 3 + .../Props/CandleKit/SM_Candle_01b.uasset | 3 + .../Props/CandleKit/SM_Candle_01c.uasset | 3 + .../Props/CandleKit/SM_Candle_01d.uasset | 3 + .../Meshes/Props/FishnMeat/SM_Fish_01a.uasset | 3 + .../Meshes/Props/FishnMeat/SM_Fish_01b.uasset | 3 + .../Meshes/Props/FishnMeat/SM_Fish_01c.uasset | 3 + .../Meshes/Props/FishnMeat/SM_Meat_01a.uasset | 3 + .../Meshes/Props/FishnMeat/SM_Meat_01b.uasset | 3 + .../FoodBag_01a/SM_FoodBagPack_01a.uasset | 3 + .../FoodBag_01a/SM_FoodBagPack_01b.uasset | 3 + .../FoodBag_01a/SM_FoodBagPack_01c.uasset | 3 + .../FoodBag_01a/SM_FoodBagPack_01d.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_01a.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_01b.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_01c.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_01d.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_02a.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_02b.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_02c.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_02d.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_03a.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_03b.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_03c.uasset | 3 + .../FoodBag_01a/SM_FoodBagSeed_03d.uasset | 3 + .../Props/FoodBag_01a/SM_FoodBag_01a.uasset | 3 + .../Props/FoodBag_01a/SM_FoodBag_01b.uasset | 3 + .../Props/FoodBag_01a/SM_FoodBag_01c.uasset | 3 + .../Props/FoodBag_01a/SM_FoodBag_01d.uasset | 3 + .../Props/FoodBag_01a/SM_FoodBag_01e.uasset | 3 + .../Props/FoodBag_01a/SM_FoodBag_01f.uasset | 3 + .../Props/FoodBag_01a/SM_FoodBag_01g.uasset | 3 + .../Props/FoodBag_01a/SM_FoodBag_01h.uasset | 3 + .../FoodBag_01a/SM_SeedDebris_01a.uasset | 3 + .../FoodBag_01a/SM_SeedDebris_01b.uasset | 3 + .../FoodBag_01a/SM_SeedDebris_01c.uasset | 3 + .../FoodBag_01a/SM_SeedDebris_01d.uasset | 3 + .../FoodKit_01a/SM_FoodKitApple_01a.uasset | 3 + .../FoodKit_01a/SM_FoodKitBread_01a.uasset | 3 + .../SM_FoodKitContainer_01a.uasset | 3 + .../SM_FoodKitContainer_02a.uasset | 3 + .../SM_FoodKitContainer_02b.uasset | 3 + .../SM_FoodKitContainer_02c.uasset | 3 + .../FoodKit_01a/SM_FoodKitPumpkins_01a.uasset | 3 + .../FoodKit_01a/SM_FoodKitSausage_01a.uasset | 3 + .../FoodKit_01a/SM_FoodStandMeal_01a.uasset | 3 + .../FoodKit_01a/SM_FoodStandMeal_01b.uasset | 3 + .../FoodKit_01a/SM_FoodStandMeal_01c.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_01a.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_01b.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_01c.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_01d.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_02a.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_02b.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_02c.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_02d.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_03a.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_03b.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_03c.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_03d.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_04a.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_04b.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_05a.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_05b.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_05c.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_05d.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_05e.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_06a.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_06b.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_06c.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_06d.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_06e.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_07a.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_07b.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_07c.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_07d.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_08a.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_08b.uasset | 3 + .../Props/FoodKit_01a/SM_FoodStand_08c.uasset | 3 + .../Props/FoodStorage/SM_FireCamp_01a.uasset | 3 + .../Props/FoodStorage/SM_FireCamp_01b.uasset | 3 + .../SM_FishWoodContainer_01a.uasset | 3 + .../FoodStorage/SM_FoodStorage_01a.uasset | 3 + .../FoodStorage/SM_FoodStorage_02a.uasset | 3 + .../Props/HammerThor/SM_ThorHammer_01a.uasset | 3 + .../Props/HayPiles/SM_HayPiles_01a.uasset | 3 + .../Props/HayStorage/SM_HayStorage_01a.uasset | 3 + .../Props/HayStorage/SM_HayStorage_01b.uasset | 3 + .../Props/MetalChain/SM_MetalChain_01a.uasset | 3 + .../Props/MetalChain/SM_MetalChain_01b.uasset | 3 + .../Props/MetalChain/SM_MetalChain_02a.uasset | 3 + .../Props/MetalChain/SM_MetalChain_02b.uasset | 3 + .../Props/MetalChain/SM_MetalChain_03a.uasset | 3 + .../Props/MetalChain/SM_MetalChain_03b.uasset | 3 + .../SM_MetalKitPotFlower_03a.uasset | 3 + .../MetalKitPot/SM_MetalKitPot_01a.uasset | 3 + .../MetalKitPot/SM_MetalKitPot_02a.uasset | 3 + .../MetalKitPot/SM_MetalKitPot_02b.uasset | 3 + .../MetalKitPot/SM_MetalKitPot_02c.uasset | 3 + .../MetalKitPot/SM_MetalKitPot_02d.uasset | 3 + .../MetalKitPot/SM_MetalKitPot_03a.uasset | 3 + .../MetalKitPot/SM_MetalKitPot_03b.uasset | 3 + .../MetalKitPot/SM_MetalKitPot_03c.uasset | 3 + .../MetalKitPot/SM_MetalKitPot_03d.uasset | 3 + .../Props/Rope/SM_RopeDebris_01a.uasset | 3 + .../Props/SignBoard/SM_SignBoard_01a.uasset | 3 + .../Props/SignBoard/SM_SignBoard_02a.uasset | 3 + .../Props/ToolKit/SM_ToolFork_01a.uasset | 3 + .../Props/ToolKit/SM_ToolHammer_01a.uasset | 3 + .../Props/ToolKit/SM_ToolHatchet_01a.uasset | 3 + .../Props/ToolKit/SM_ToolShovel_01a.uasset | 3 + .../Props/ToolKit/SM_ToolTong_01a.uasset | 3 + .../Props/TorchKit/SM_TorchHolded_01a.uasset | 3 + .../Props/TorchKit/SM_TorchHolded_02a.uasset | 3 + .../Props/TorchKit/SM_TorchHolded_02b.uasset | 3 + .../Meshes/Props/TorchKit/SM_Torch_01a.uasset | 3 + .../Meshes/Props/TorchKit/SM_Torch_01b.uasset | 3 + .../Meshes/Props/TorchKit/SM_Torch_02a.uasset | 3 + .../VikingCross/SM_VikingCross_01a.uasset | 3 + .../VikingCross/SM_VikingCross_01b.uasset | 3 + .../VikingCross/SM_VikingCross_02a.uasset | 3 + .../VikingCross/SM_VikingCross_02b.uasset | 3 + .../VikingFlags/SM_VikingFlag_01a.uasset | 3 + .../VikingFlags/SM_VikingFlag_01b.uasset | 3 + .../VikingFlags/SM_VikingFlag_02a.uasset | 3 + .../VikingFlags/SM_VikingFlag_03a.uasset | 3 + .../VikingFlags/SM_VikingFlag_05a.uasset | 3 + .../VikingShield/SM_VikingShield_01a.uasset | 3 + .../VikingShield/SM_VikingShield_01b.uasset | 3 + .../VikingShield/SM_VikingShield_01c.uasset | 3 + .../WeaponBow/SM_ArcheryStorage_01a.uasset | 3 + .../Props/WeaponBow/SM_ArrowSac_01a.uasset | 3 + .../Props/WeaponBow/SM_Arrow_01a.uasset | 3 + .../Props/WeaponBow/SM_Arrow_01b.uasset | 3 + .../Props/WeaponBow/SM_Arrow_01c.uasset | 3 + .../SM_StrawArcheryTarget_01a.uasset | 3 + .../Props/WeaponBow/SM_WeaponBow_01a.uasset | 3 + .../WeaponKnife/SM_WeaponKnife_01a.uasset | 3 + .../WeaponKnife/SM_WeaponKnife_01b.uasset | 3 + .../WeaponKnife/SM_WeaponKnife_01c.uasset | 3 + .../WeaponKnife/SM_WeaponKnife_01d.uasset | 3 + .../WickedBasket/SM_WickedBasket_01a.uasset | 3 + .../WoodBarrel_01a/SM_WoodAleDrink_01a.uasset | 3 + .../WoodBarrel_01a/SM_WoodBarrel_01a.uasset | 3 + .../WoodBarrel_01a/SM_WoodBarrel_01b.uasset | 3 + .../WoodBarrel_01a/SM_WoodBarrel_01c.uasset | 3 + .../WoodBarrel_01a/SM_WoodBarrel_01d.uasset | 3 + .../Props/WoodBed/SM_WoodBed_01a.uasset | 3 + .../Props/WoodCage/SM_WoodCage_01a.uasset | 3 + .../Props/WoodCage/SM_WoodCage_01b.uasset | 3 + .../Props/WoodCart/SM_WoodCart_01a.uasset | 3 + .../Props/WoodCart/SM_WoodCart_01b.uasset | 3 + .../Props/WoodCart/SM_WoodCart_01c.uasset | 3 + .../WoodChairKit/SM_WoodBench_01a.uasset | 3 + .../WoodChairKit/SM_WoodChair_01a.uasset | 3 + .../WoodChairKit/SM_WoodStool_01a.uasset | 3 + .../WoodChairKit/SM_WoodStool_02a.uasset | 3 + .../Props/WoodChest/SM_WoodChest_01a.uasset | 3 + .../Props/WoodChest/SM_WoodChest_01b.uasset | 3 + .../Props/WoodCrate/SM_WoodCrate_01a.uasset | 3 + .../Props/WoodCrate/SM_WoodCrate_01b.uasset | 3 + .../Props/WoodLadder/SM_WoodLadder_01a.uasset | 3 + .../Props/WoodLadder/SM_WoodLadder_01b.uasset | 3 + .../Props/WoodLogs/sm_WoodLog_01a.uasset | 3 + .../Props/WoodLogs/sm_WoodLog_01b.uasset | 3 + .../Props/WoodLogs/sm_WoodLog_01c.uasset | 3 + .../Props/WoodLogs/sm_WoodLog_01d.uasset | 3 + .../Props/WoodTable/SM_WoodTable_01a.uasset | 3 + .../Props/WoodTable/SM_WoodTable_02a.uasset | 3 + .../WoodTrestles/SM_WoodTrestles_01a.uasset | 3 + .../WoodTrestles/SM_WoodTrestles_02a.uasset | 3 + .../Meshes/Rocks/SM_RockStoneWall_01a.uasset | 3 + .../Meshes/Rocks/SM_RockStoneWall_01b.uasset | 3 + .../Meshes/Rocks/SM_RockStone_01a.uasset | 3 + .../Meshes/Rocks/SM_RockStone_01b.uasset | 3 + .../Meshes/Rocks/SM_StonePatch_01a.uasset | 3 + .../TT_CliffRock_01a/T_CliffRock_01a_A.uasset | 3 + .../TT_CliffRock_01a/T_CliffRock_01a_N.uasset | 3 + .../T_CliffRock_01a_ORM.uasset | 3 + .../T_CoverPlant_01a_A.uasset | 3 + .../T_CoverPlant_01a_N.uasset | 3 + .../TT_FoodSeed_01a/T_FoodSeed_01a_A.uasset | 3 + .../TT_FoodSeed_01a/T_FoodSeed_01a_N.uasset | 3 + .../TT_FoodSeed_01a/T_FoodSeed_01a_ORM.uasset | 3 + .../T_GrassForest_01a_A.uasset | 3 + .../T_GrassForest_01a_N.uasset | 3 + .../T_GrungeMacro_01a.uasset | 3 + .../T_GrungeMask_01a_M.uasset | 3 + .../T_GrungeMask_01c_M.uasset | 3 + .../Textures/TT_Hay_01a/T_Hay_01a_A.uasset | 3 + .../Textures/TT_Hay_01a/T_Hay_01a_N.uasset | 3 + .../Textures/TT_Hay_01a/T_Hay_01a_ORM.uasset | 3 + .../Textures/TT_Mud_01a/T_Mud_01a_A.uasset | 3 + .../Textures/TT_Mud_01a/T_Mud_01a_N.uasset | 3 + .../TT_RopeAged_01a/T_RopeAged_01a_A.uasset | 3 + .../TT_RopeAged_01a/T_RopeAged_01a_N.uasset | 3 + .../TT_RopeAged_01a/T_RopeAged_01a_ORM.uasset | 3 + .../T_TreePineBark_01a_A.uasset | 3 + .../T_TreePineBark_01a_N.uasset | 3 + .../T_TreePineBark_01a_ORM.uasset | 3 + .../T_VikingSail_01a_A.uasset | 3 + .../T_VikingSail_01a_N.uasset | 3 + .../T_VikingSail_01a_ORM.uasset | 3 + .../T_WoodCarvingTrim_01a_A.uasset | 3 + .../T_WoodCarvingTrim_01a_N.uasset | 3 + .../T_WoodCarvingTrim_01a_ORM.uasset | 3 + .../TT_WoodPlank_01a/T_WoodPlank_01a_A.uasset | 3 + .../TT_WoodPlank_01a/T_WoodPlank_01a_H.uasset | 3 + .../TT_WoodPlank_01a/T_WoodPlank_01a_N.uasset | 3 + .../T_WoodPlank_01a_ORM.uasset | 3 + .../TT_WoodRough_01a/T_WoodRough_01a_A.uasset | 3 + .../TT_WoodRough_01a/T_WoodRough_01a_N.uasset | 3 + .../T_WoodRough_01a_ORM.uasset | 3 + .../T_BlackSmithWorkAnvil_01a_A.uasset | 3 + .../T_BlackSmithWorkAnvil_01a_N.uasset | 3 + .../T_BlackSmithWorkAnvil_01a_ORM.uasset | 3 + .../T_BlackSmithContainer_01a_A.uasset | 3 + .../T_BlackSmithContainer_01a_N.uasset | 3 + .../T_BlackSmithContainer_01a_ORM.uasset | 3 + .../TX_BottleKit_01a/T_BottleKit_01a_A.uasset | 3 + .../TX_BottleKit_01a/T_BottleKit_01a_N.uasset | 3 + .../T_BottleKit_01a_ORM.uasset | 3 + .../TX_Brasero_01a/T_Brasero_01a_A.uasset | 3 + .../TX_Brasero_01a/T_Brasero_01a_N.uasset | 3 + .../TX_Brasero_01a/T_Brasero_01a_ORM.uasset | 3 + .../TX_Candle_01a/T_Candle_01a_A.uasset | 3 + .../TX_Candle_01a/T_Candle_01a_N.uasset | 3 + .../TX_Candle_01a/T_Candle_01a_ORM.uasset | 3 + .../TX_FernPlant_01a/T_FernPlant_01a_A.uasset | 3 + .../TX_FernPlant_01a/T_FernPlant_01a_N.uasset | 3 + .../TX_FernPlant_01a/T_FernPlant_01a_T.uasset | 3 + .../TX_FishnMeat_01a/T_FishnMeat_01a_A.uasset | 3 + .../TX_FishnMeat_01a/T_FishnMeat_01a_N.uasset | 3 + .../T_FishnMeat_01a_ORM.uasset | 3 + .../TX_FoodBag_01a/T_FoodBag_01a_A.uasset | 3 + .../TX_FoodBag_01a/T_FoodBag_01a_N.uasset | 3 + .../TX_FoodBag_01a/T_FoodBag_01a_ORM.uasset | 3 + .../TX_FoodKit_01a/T_FoodKit_01a_A.uasset | 3 + .../TX_FoodKit_01a/T_FoodKit_01a_N.uasset | 3 + .../TX_FoodKit_01a/T_FoodKit_01a_ORM.uasset | 3 + .../TX_MaskRGB_01a/T_MaskRGB_01a_M.uasset | 3 + .../T_MetalKitPots_01a_A.uasset | 3 + .../T_MetalKitPots_01a_N.uasset | 3 + .../T_MetalKitPots_01a_ORM.uasset | 3 + .../TX_Mushroom_01a/T_Mushroom_01a_B.uasset | 3 + .../TX_Mushroom_01a/T_Mushroom_01a_ORM.uasset | 3 + .../T_RockStone_01a_M.uasset | 3 + .../T_RockStone_01a_N.uasset | 3 + .../T_StonePatch_01a_M.uasset | 3 + .../T_StonePatch_01a_N.uasset | 3 + .../T_ThorHammer_01a_A.uasset | 3 + .../T_ThorHammer_01a_N.uasset | 3 + .../T_ThorHammer_01a_ORM.uasset | 3 + .../TX_ToolKit_01a/T_ToolKit_01a_A.uasset | 3 + .../TX_ToolKit_01a/T_ToolKit_01a_N.uasset | 3 + .../TX_ToolKit_01a/T_ToolKit_01a_ORM.uasset | 3 + .../TX_TorchKit_01a/T_TorchKit_01a_A.uasset | 3 + .../TX_TorchKit_01a/T_TorchKit_01a_N.uasset | 3 + .../TX_TorchKit_01a/T_TorchKit_01a_ORM.uasset | 3 + .../T_VikingFLag_01a_A.uasset} | 4 +- .../T_VikingFLag_01a_N.uasset | 3 + .../T_VikingFLag_01a_ORM.uasset | 3 + .../T_VikingShield_01a_A.uasset | 3 + .../T_VikingShield_01a_N.uasset | 3 + .../T_VikingShield_01a_ORM.uasset | 3 + .../TX_WeaponBow_01a/T_WeaponBow_01a_A.uasset | 3 + .../TX_WeaponBow_01a/T_WeaponBow_01a_N.uasset | 3 + .../T_WeaponBow_01a_ORM.uasset | 3 + .../T_WeaponKnife_01a_A.uasset | 3 + .../T_WeaponKnife_01a_N.uasset | 3 + .../T_WeaponKnife_01a_ORM.uasset | 3 + .../T_WoodBarrel_01a_A.uasset | 3 + .../T_WoodBarrel_01a_N.uasset | 3 + .../T_WoodBarrel_01a_ORM.uasset | 3 + .../TX_WoodCart_01a/T_WoodCart_01a_A.uasset | 3 + .../TX_WoodCart_01a/T_WoodCart_01a_N.uasset | 3 + .../TX_WoodCart_01a/T_WoodCart_01a_ORM.uasset | 3 + .../TX_WoodChest_01a/T_WoodChest_01a_A.uasset | 3 + .../TX_WoodChest_01a/T_WoodChest_01a_N.uasset | 3 + .../T_WoodChest_01a_ORM.uasset | 3 + .../TX_WoodLog_01a/T_WoodLog_01a_A.uasset | 3 + .../TX_WoodLog_01a/T_WoodLog_01a_N.uasset | 3 + .../TX_WoodLog_01a/T_WoodLog_01a_ORM.uasset | 3 + .../Materials/MI_ChimneySmoke_MV_01.uasset | 3 + .../VFXUpdate/Materials/MI_Ember01.uasset | 3 + .../VFXUpdate/Materials/MI_Fire_MV_01.uasset | 3 + .../VFXUpdate/Materials/M_Ember02.uasset | 3 + .../VFXUpdate/Materials/M_SmokeMV_01.uasset | 3 + .../VFXUpdate/Niagara/NE_Ember.uasset | 3 + .../Niagara/NS_ChimneyFlame_01.uasset | 3 + .../VFXUpdate/Niagara/NS_Torch_01.uasset | 3 + .../Textures/Fire/T_Fire_MV_01.uasset | 3 + .../Textures/Fire/T_Fire_RA_01.uasset | 3 + .../_FX/TX/T_Cloud_Tile.uasset | 3 + Content/Maps/L_World.umap | 4 +- .../Animations/A-AIM_MF_Down.uasset | 3 + .../Animations/A-AIM_MF_Down_Neutral.uasset | 3 + .../Animations/ABP_Bow.uasset | 3 + .../Animations/ABP_Crossbow.uasset | 3 + .../Animations/AIM_Offset_Crossbow.uasset | 3 + .../Animations/AIM_offset_CrossbowShot.uasset | 3 + .../Animations/A_AIM_MF_BowShot_Center.uasset | 3 + .../Animations/A_AIM_MF_Crossbow_Shot.uasset | 3 + .../Animations/A_AIM_MF_Crossbow_UP.uasset | 3 + .../Animations/A_AIM_MF_Neutral_UP.uasset | 3 + .../Animations/A_AIM_MF_UP.uasset | 3 + .../Animations/A_Bow_Idle.uasset | 3 + .../Animations/A_Crossbow_Idle.uasset | 3 + .../Animations/A_MF_Idle_BowMode.uasset | 3 + .../Animations/A_MF_Idle_BowModeLeft.uasset | 3 + .../Animations/A_MF_Idle_BowRight.uasset | 3 + .../Animations/A__AIM_MF_Center.uasset | 3 + .../A__AIM_MF_Center_NotPulled.uasset | 3 + .../A__AIM_MF_Crossbow_Center.uasset | 3 + .../Animations/A__AIM_MF_Crossbow_Down.uasset | 3 + .../Animations/A_aim_MF_UP_backup.uasset | 3 + .../Animations/Aim_Offset_NeutralBow.uasset | 3 + .../Animations/Aim_Offset_PullingBow.uasset | 3 + .../Animations/Aim_offset_bow_Shot.uasset | 3 + .../Animations/BS1D_BowAim.uasset | 3 + .../Blueprints/BPI_AnimControl.uasset | 3 + .../Blueprints/BP_LoadedArrow.uasset | 3 + .../Blueprints/BP_Projectile.uasset | 3 + .../Blueprints/Input/IA_CameraControls.uasset | 3 + .../Blueprints/Input/IA_FPSToggle.uasset | 3 + .../Blueprints/Input/IA_GrabLeft.uasset | 3 + .../Blueprints/Input/IA_GrabRight.uasset | 3 + .../Blueprints/Input/IA_Jump.uasset | 3 + .../Blueprints/Input/IA_LeftMouseDown.uasset | 3 + .../Blueprints/Input/IA_Movement.uasset | 3 + .../Blueprints/Input/IA_RightMouseDown.uasset | 3 + .../Blueprints/Input/IA_Thumbstick.uasset | 3 + .../Blueprints/Input/InputMappings.uasset | 3 + .../Blueprints/Input/InputMappingsVR.uasset | 3 + .../ThirdPerson/BP_DemoWeapon.uasset | 3 + .../ThirdPerson/BP_ResetPlatform.uasset | 3 + .../BP_ThirdPersonCharacter.uasset | 3 + .../ThirdPerson/E_WeaponType.uasset | 3 + .../ThirdPerson/WeaponsGameMode.uasset | 3 + .../Blueprints/VR/GrabComponent.uasset | 3 + .../Blueprints/VR/GrabType.uasset | 3 + .../VR/Haptics/GrabHapticEffect.uasset | 3 + .../Blueprints/VR/Menu.uasset | 3 + .../Blueprints/VR/VRGameMode.uasset | 3 + .../Blueprints/VR/VRInteractionBPI.uasset | 3 + .../Blueprints/VR/VRPawn.uasset | 3 + .../Blueprints/VR/VRTeleportVisualizer.uasset | 3 + .../Blueprints/VR/VR_Weapon.uasset | 3 + .../Blueprints/VR/WidgetMenu.uasset | 3 + .../Blueprints/WBP_CrossHair.uasset | 3 + .../Blueprints/WBP_Hud.uasset | 3 + .../Mannequins/Animations/ABP_Manny.uasset | 3 + .../Mannequins/Animations/ABP_Quinn.uasset | 3 + .../Animations/Manny/BS_MM_WalkRun.uasset | 3 + .../Animations/Manny/MM_2handerIdle.uasset | 3 + .../Animations/Manny/MM_ClenchedFists.uasset | 3 + .../Animations/Manny/MM_Fall_Loop.uasset | 3 + .../Animations/Manny/MM_Idle.uasset | 3 + .../Animations/Manny/MM_Jump.uasset | 3 + .../Animations/Manny/MM_Land.uasset | 3 + .../Animations/Manny/MM_Run_Fwd.uasset | 3 + .../Animations/Manny/MM_Walk_Fwd.uasset | 3 + .../Animations/Manny/MM_Walk_InPlace.uasset | 3 + .../Quinn/BS_MF_Unarmed_WalkRun.uasset | 3 + .../Animations/Quinn/MF_Idle.uasset | 3 + .../Animations/Quinn/MF_Run_Fwd.uasset | 3 + .../Animations/Quinn/MF_Walk_Fwd.uasset | 3 + .../Materials/Functions/CA_Mannequin.uasset | 3 + .../Materials/Functions/ChromaticCurve.uasset | 3 + .../Materials/Functions/MF_Diffraction.uasset | 3 + .../Materials/Functions/MF_logo3layers.uasset | 3 + .../Functions/ML_BaseColorFallOff.uasset | 3 + .../Instances/Manny/MI_Manny_01.uasset | 3 + .../Instances/Manny/MI_Manny_02.uasset | 3 + .../Instances/Quinn/MI_Quinn_01.uasset | 3 + .../Instances/Quinn/MI_Quinn_02.uasset | 3 + .../Mannequins/Materials/M_Mannequin.uasset | 3 + .../Mannequins/Meshes/SKM_Manny.uasset | 3 + .../Mannequins/Meshes/SKM_Manny_Simple.uasset | 3 + .../Mannequins/Meshes/SKM_Quinn.uasset | 3 + .../Mannequins/Meshes/SKM_Quinn_Simple.uasset | 3 + .../Mannequins/Meshes/SK_Mannequin.uasset | 3 + .../Rigs/ABP_Manny_PostProcess.uasset | 3 + .../Rigs/ABP_Quinn_PostProcess.uasset | 3 + .../Rigs/CR_Mannequin_BasicFootIK.uasset | 3 + .../Mannequins/Rigs/CR_Mannequin_Body.uasset | 3 + .../Rigs/CR_Mannequin_Procedural.uasset | 3 + .../Mannequins/Rigs/PA_Mannequin.uasset | 3 + .../Rigs/Poses/Manny/Manny_calf_l_anim.uasset | 3 + .../Rigs/Poses/Manny/Manny_calf_l_pose.uasset | 3 + .../Rigs/Poses/Manny/Manny_calf_r_anim.uasset | 3 + .../Rigs/Poses/Manny/Manny_calf_r_pose.uasset | 3 + .../Poses/Manny/Manny_clavicle_l_anim.uasset | 3 + .../Poses/Manny/Manny_clavicle_l_pose.uasset | 3 + .../Poses/Manny/Manny_clavicle_r_anim.uasset | 3 + .../Poses/Manny/Manny_clavicle_r_pose.uasset | 3 + .../Rigs/Poses/Manny/Manny_foot_l_anim.uasset | 3 + .../Rigs/Poses/Manny/Manny_foot_l_pose.uasset | 3 + .../Rigs/Poses/Manny/Manny_foot_r_anim.uasset | 3 + .../Rigs/Poses/Manny/Manny_foot_r_pose.uasset | 3 + .../Rigs/Poses/Manny/Manny_hand_l_anim.uasset | 3 + .../Rigs/Poses/Manny/Manny_hand_l_pose.uasset | 3 + .../Rigs/Poses/Manny/Manny_hand_r_anim.uasset | 3 + .../Rigs/Poses/Manny/Manny_hand_r_pose.uasset | 3 + .../Poses/Manny/Manny_lowerarm_l_anim.uasset | 3 + .../Poses/Manny/Manny_lowerarm_l_pose.uasset | 3 + .../Poses/Manny/Manny_lowerarm_r_anim.uasset | 3 + .../Poses/Manny/Manny_lowerarm_r_pose.uasset | 3 + .../Poses/Manny/Manny_thigh_l_anim.uasset | 3 + .../Poses/Manny/Manny_thigh_l_pose.uasset | 3 + .../Poses/Manny/Manny_thigh_r_anim.uasset | 3 + .../Poses/Manny/Manny_thigh_r_pose.uasset | 3 + .../Poses/Manny/Manny_upperarm_l_anim.uasset | 3 + .../Poses/Manny/Manny_upperarm_l_pose.uasset | 3 + .../Poses/Manny/Manny_upperarm_r_anim.uasset | 3 + .../Poses/Manny/Manny_upperarm_r_pose.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset | 3 + .../Poses/Quinn/Quinn_clavicle_l_anim.uasset | 3 + .../Poses/Quinn/Quinn_clavicle_l_pose.uasset | 3 + .../Poses/Quinn/Quinn_clavicle_r_anim.uasset | 3 + .../Poses/Quinn/Quinn_clavicle_r_pose.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset | 3 + .../Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset | 3 + .../Poses/Quinn/Quinn_lowerarm_l_anim.uasset | 3 + .../Poses/Quinn/Quinn_lowerarm_l_pose.uasset | 3 + .../Poses/Quinn/Quinn_lowerarm_r_anim.uasset | 3 + .../Poses/Quinn/Quinn_lowerarm_r_pose.uasset | 3 + .../Poses/Quinn/Quinn_thigh_l_anim.uasset | 3 + .../Poses/Quinn/Quinn_thigh_l_pose.uasset | 3 + .../Poses/Quinn/Quinn_thigh_r_anim.uasset | 3 + .../Poses/Quinn/Quinn_thigh_r_pose.uasset | 3 + .../Poses/Quinn/Quinn_upperarm_l_anim.uasset | 3 + .../Poses/Quinn/Quinn_upperarm_l_pose.uasset | 3 + .../Poses/Quinn/Quinn_upperarm_r_anim.uasset | 3 + .../Poses/Quinn/Quinn_upperarm_r_pose.uasset | 3 + .../Manny/T_Manny_01_ASAOPMASK_MSK.uasset | 3 + .../Textures/Manny/T_Manny_01_BN.uasset | 3 + .../Manny/T_Manny_01_CCRCCPlastic_MSK.uasset | 3 + .../Textures/Manny/T_Manny_01_D.uasset | 3 + .../Textures/Manny/T_Manny_01_MSR_MSK.uasset | 3 + .../Textures/Manny/T_Manny_01_N.uasset | 3 + .../Textures/Manny/T_Manny_01_Tan.uasset | 3 + .../Manny/T_Manny_02_ASAOPMASK_MSK.uasset | 3 + .../Textures/Manny/T_Manny_02_BN.uasset | 3 + .../Manny/T_Manny_02_CCRCCPlastic_MSK.uasset | 3 + .../Textures/Manny/T_Manny_02_D.uasset | 3 + .../Textures/Manny/T_Manny_02_MSR_MSK.uasset | 3 + .../Textures/Manny/T_Manny_02_N.uasset | 3 + .../Textures/Manny/T_Manny_02_Tan.uasset | 3 + .../Textures/Quinn/T_Quinn_01ID_BN.uasset | 3 + .../Textures/Quinn/T_Quinn_01ID_D.uasset | 3 + .../Quinn/T_Quinn_01ID_MSR_MSK.uasset | 3 + .../Textures/Quinn/T_Quinn_01ID_N.uasset | 3 + .../Textures/Quinn/T_Quinn_01ID_Tan.uasset | 3 + .../Quinn/T_Quinn_01_ASAOMASK_MSK.uasset | 3 + .../Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset | 3 + .../Textures/Quinn/T_Quinn_02ID_BN.uasset | 3 + .../Textures/Quinn/T_Quinn_02ID_D.uasset | 3 + .../Quinn/T_Quinn_02ID_MSR_MSK.uasset | 3 + .../Textures/Quinn/T_Quinn_02ID_N.uasset | 3 + .../Textures/Quinn/T_Quinn_02ID_Tan.uasset | 3 + .../Quinn/T_Quinn_02_ASAOMASK_MSK.uasset | 3 + .../Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset | 3 + .../Textures/Shared/T_UE_Logo_M.uasset | 3 + .../Blueprints/Blueprint_CeilingLight.uasset | 3 + .../Blueprints/Blueprint_WallSconce.uasset | 3 + .../Materials/M_AssetPlatform.uasset | 3 + .../Materials/M_Basic_Wall.uasset | 3 + .../Materials/M_Brick_Clay_Old.uasset | 3 + .../Materials/M_Ceramic_Tile_Checker.uasset | 3 + .../StarterContent/Materials/M_Chair.uasset | 3 + .../StarterContent/Materials/M_Door.uasset | 3 + .../StarterContent/Materials/M_Frame.uasset | 3 + .../StarterContent/Materials/M_Lamp.uasset | 3 + .../StarterContent/Materials/M_Shelf.uasset | 3 + .../Materials/M_TableRound.uasset | 3 + .../Meshes/Floor_400x400.uasset | 3 + .../Meshes/SM_AssetPlatform.uasset | 3 + .../Meshes/SM_CornerFrame.uasset | 3 + .../StarterContent/Meshes/SM_Couch.uasset | 3 + .../StarterContent/Meshes/SM_DoorFrame.uasset | 3 + .../Meshes/SM_Lamp_Ceiling.uasset | 3 + .../StarterContent/Meshes/SM_Lamp_Wall.uasset | 3 + .../Meshes/SM_PillarFrame.uasset | 3 + .../Meshes/SM_PillarFrame300.uasset | 3 + .../Meshes/SM_WindowFrame.uasset | 3 + .../Meshes/Shape_QuadPyramid.uasset | 3 + .../StarterContent/Meshes/Wall_400x200.uasset | 3 + .../StarterContent/Meshes/Wall_400x400.uasset | 3 + .../Meshes/Wall_Door_400x300.uasset | 3 + .../Meshes/Wall_Window_400x300.uasset | 3 + .../Textures/T_Brick_Clay_Old_D.uasset | 3 + .../Textures/T_Brick_Clay_Old_N.uasset | 3 + .../Textures/T_Ceramic_Tile_M.uasset | 3 + .../Textures/T_Ceramic_Tile_N.uasset | 3 + .../StarterContent/Textures/T_Chair_M.uasset | 3 + .../StarterContent/Textures/T_Chair_N.uasset | 3 + .../StarterContent/Textures/T_Door_M.uasset | 3 + .../StarterContent/Textures/T_Door_N.uasset | 3 + .../StarterContent/Textures/T_Frame_M.uasset | 3 + .../StarterContent/Textures/T_Frame_N.uasset | 3 + .../StarterContent/Textures/T_Lamp_M.uasset | 3 + .../StarterContent/Textures/T_Lamp_N.uasset | 3 + .../Textures/T_MacroVariation.uasset | 3 + .../Textures/T_Perlin_Noise_M.uasset | 3 + .../Textures/T_Rock_Marble_Polished_D.uasset | 3 + .../StarterContent/Textures/T_Shelf_M.uasset | 3 + .../StarterContent/Textures/T_Shelf_N.uasset | 3 + .../Textures/T_TableRound_M.uasset | 3 + .../Textures/T_TableRound_N.uasset | 3 + .../Levels/Level_Overview.umap | 3 + .../Levels/Level_WeaponTestVR.umap | 3 + .../Levels/Level_WeaponsTest.umap | 3 + .../Medieval_Weapons_HLOD0_Instancing.uasset | 3 + .../Functions/MF_OccludedPixels.uasset | 3 + .../Materials/VOL2/M_Arrow_01.uasset | 3 + .../Materials/VOL2/M_Arrow_02.uasset | 3 + .../Materials/VOL2/M_Axe_01.uasset | 3 + .../Materials/VOL2/M_Axe_02.uasset | 3 + .../Materials/VOL2/M_Bow_01.uasset | 3 + .../Materials/VOL2/M_Bow_02.uasset | 3 + .../Materials/VOL2/M_Crossbow_01.uasset | 3 + .../Materials/VOL2/M_Crossbow_02.uasset | 3 + .../Materials/VOL2/M_Dagger_01.uasset | 3 + .../Materials/VOL2/M_Dagger_02.uasset | 3 + .../Materials/VOL2/M_Mace_01.uasset | 3 + .../Materials/VOL2/M_Mace_02.uasset | 3 + .../Materials/VOL2/M_RibbonTrail.uasset | 3 + .../Materials/VOL2/M_Scythe_01.uasset | 3 + .../Materials/VOL2/M_Scythe_02.uasset | 3 + .../Materials/VOL2/M_Shield_1_01.uasset | 3 + .../Materials/VOL2/M_Shield_1_02.uasset | 3 + .../Materials/VOL2/M_Shield_2_01.uasset | 3 + .../Materials/VOL2/M_Shield_2_02.uasset | 3 + .../Materials/VOL2/M_Shield_3_01.uasset | 3 + .../Materials/VOL2/M_Shield_3_02.uasset | 3 + .../Materials/VOL2/M_Spear_01.uasset | 3 + .../Materials/VOL2/M_Spear_02.uasset | 3 + .../Materials/VOL2/M_Staff_01.uasset | 3 + .../Materials/VOL2/M_Staff_02.uasset | 3 + .../Materials/VOL2/M_Sword_1_01.uasset | 3 + .../Materials/VOL2/M_Sword_1_02.uasset | 3 + .../Materials/VOL2/M_Sword_2_01.uasset | 3 + .../Materials/VOL2/M_Sword_2_02.uasset | 3 + .../Materials/VOL2/M_Sword_3_01.uasset | 3 + .../Materials/VOL2/M_Sword_3_02.uasset | 3 + .../Materials/VOL2/M_Throwing_Axe_01.uasset | 3 + .../Materials/VOL2/M_Throwing_Axe_02.uasset | 3 + .../VOL2/Weapons_Standard_Material.uasset | 3 + .../M_DefaultRibbonMaterial_NoGradient.uasset | 3 + .../Materials/VR/M_TeleportCylinder.uasset | 3 + .../Materials/VR/M_TeleportNoise.uasset | 3 + .../Materials/VR/M_VRCursor.uasset | 3 + .../Meshes/VOL2/Ranged/PA_Bow.uasset | 3 + .../Meshes/VOL2/Ranged/PA_Crossbow.uasset | 3 + .../Meshes/VOL2/Ranged/SKM_Bow.uasset | 3 + .../Meshes/VOL2/Ranged/SKM_Crossbow.uasset | 3 + .../Meshes/VOL2/Ranged/SK_Bow.uasset | 3 + .../VOL2/Ranged/SM_ProjectileArrowMesh.uasset | 3 + .../Meshes/VOL2/SM_Arrow_Var1.uasset | 3 + .../Meshes/VOL2/SM_Arrow_Var2.uasset | 3 + .../Meshes/VOL2/SM_Axe.uasset | 3 + .../Meshes/VOL2/SM_Bow.uasset | 3 + .../Meshes/VOL2/SM_Crossbow.uasset | 3 + .../Meshes/VOL2/SM_Dagger.uasset | 3 + .../Meshes/VOL2/SM_Mace.uasset | 3 + .../Meshes/VOL2/SM_Scythe.uasset | 3 + .../Meshes/VOL2/SM_Shield_1.uasset | 3 + .../Meshes/VOL2/SM_Shield_2.uasset | 3 + .../Meshes/VOL2/SM_Shield_3.uasset | 3 + .../Meshes/VOL2/SM_Spear.uasset | 3 + .../Meshes/VOL2/SM_Staff.uasset | 3 + .../Meshes/VOL2/SM_Sword_1.uasset | 3 + .../Meshes/VOL2/SM_Sword_2.uasset | 3 + .../Meshes/VOL2/SM_Sword_3.uasset | 3 + .../Meshes/VOL2/SM_ThrowingAxe.uasset | 3 + .../Textures/UI/T_BowCrosshair.uasset | 3 + .../Textures/UI/T_BowCrosshairSmall.uasset | 3 + .../Textures/VOL2/T_Arrow_01_C.uasset | 3 + .../Textures/VOL2/T_Arrow_01_N.uasset | 3 + .../Textures/VOL2/T_Arrow_01_ORM.uasset | 3 + .../Textures/VOL2/T_Arrow_02_C.uasset | 3 + .../Textures/VOL2/T_Arrow_02_N.uasset | 3 + .../Textures/VOL2/T_Arrow_02_ORM.uasset | 3 + .../Textures/VOL2/T_Axe_01_C.uasset | 3 + .../Textures/VOL2/T_Axe_01_N.uasset | 3 + .../Textures/VOL2/T_Axe_01_ORM.uasset | 3 + .../Textures/VOL2/T_Axe_02_C.uasset | 3 + .../Textures/VOL2/T_Axe_02_N.uasset | 3 + .../Textures/VOL2/T_Axe_02_ORM.uasset | 3 + .../Textures/VOL2/T_Blood_C.uasset | 3 + .../Textures/VOL2/T_Blood_N.uasset | 3 + .../Textures/VOL2/T_Blood_ORM.uasset | 3 + .../Textures/VOL2/T_Bow_01_C.uasset | 3 + .../Textures/VOL2/T_Bow_01_N.uasset | 3 + .../Textures/VOL2/T_Bow_01_ORM.uasset | 3 + .../Textures/VOL2/T_Bow_02_C.uasset | 3 + .../Textures/VOL2/T_Bow_02_N.uasset | 3 + .../Textures/VOL2/T_Bow_02_ORM.uasset | 3 + .../Textures/VOL2/T_Crossbow_01_C.uasset | 3 + .../Textures/VOL2/T_Crossbow_01_N.uasset | 3 + .../Textures/VOL2/T_Crossbow_01_ORM.uasset | 3 + .../Textures/VOL2/T_Crossbow_02_C.uasset | 3 + .../Textures/VOL2/T_Crossbow_02_N.uasset | 3 + .../Textures/VOL2/T_Crossbow_02_ORM.uasset | 3 + .../Textures/VOL2/T_Dagger_1_01_C.uasset | 3 + .../Textures/VOL2/T_Dagger_1_01_N.uasset | 3 + .../Textures/VOL2/T_Dagger_1_01_ORM.uasset | 3 + .../Textures/VOL2/T_Dagger_1_02_C.uasset | 3 + .../Textures/VOL2/T_Dagger_1_02_N.uasset | 3 + .../Textures/VOL2/T_Dagger_1_02_ORM.uasset | 3 + .../Textures/VOL2/T_Mace01_C.uasset | 3 + .../Textures/VOL2/T_Mace01_N.uasset | 3 + .../Textures/VOL2/T_Mace01_ORM.uasset | 3 + .../Textures/VOL2/T_Mace02_C.uasset | 3 + .../Textures/VOL2/T_Mace02_N.uasset | 3 + .../Textures/VOL2/T_Mace02_ORM.uasset | 3 + .../Textures/VOL2/T_Scythe01_C.uasset | 3 + .../Textures/VOL2/T_Scythe01_N.uasset | 3 + .../Textures/VOL2/T_Scythe01_ORM.uasset | 3 + .../Textures/VOL2/T_Scythe02_C.uasset | 3 + .../Textures/VOL2/T_Scythe02_N.uasset | 3 + .../Textures/VOL2/T_Scythe02_ORM.uasset | 3 + .../Textures/VOL2/T_Shield_01_C.uasset | 3 + .../Textures/VOL2/T_Shield_01_N.uasset | 3 + .../Textures/VOL2/T_Shield_01_ORM.uasset | 3 + .../Textures/VOL2/T_Shield_02_C.uasset | 3 + .../Textures/VOL2/T_Shield_02_N.uasset | 3 + .../Textures/VOL2/T_Shield_02_ORM.uasset | 3 + .../Textures/VOL2/T_Shield_2_01_C.uasset | 3 + .../Textures/VOL2/T_Shield_2_01_N.uasset | 3 + .../Textures/VOL2/T_Shield_2_01_ORM.uasset | 3 + .../Textures/VOL2/T_Shield_2_02_C.uasset | 3 + .../Textures/VOL2/T_Shield_2_02_N.uasset | 3 + .../Textures/VOL2/T_Shield_2_02_ORM.uasset | 3 + .../Textures/VOL2/T_Shield_3_01_C.uasset | 3 + .../Textures/VOL2/T_Shield_3_01_N.uasset | 3 + .../Textures/VOL2/T_Shield_3_01_ORM.uasset | 3 + .../Textures/VOL2/T_Shield_3_02_C.uasset | 3 + .../Textures/VOL2/T_Shield_3_02_N.uasset | 3 + .../Textures/VOL2/T_Shield_3_02_ORM.uasset | 3 + .../Textures/VOL2/T_Shield_3_C.uasset | 3 + .../Textures/VOL2/T_Shield_3_N.uasset | 3 + .../Textures/VOL2/T_Shield_3_ORM.uasset | 3 + .../Textures/VOL2/T_Spear_01_C.uasset | 3 + .../Textures/VOL2/T_Spear_01_N.uasset | 3 + .../Textures/VOL2/T_Spear_01_ORM.uasset | 3 + .../Textures/VOL2/T_Spear_02_C.uasset | 3 + .../Textures/VOL2/T_Spear_02_N.uasset | 3 + .../Textures/VOL2/T_Spear_02_ORM.uasset | 3 + .../Textures/VOL2/T_Staff_01_C.uasset | 3 + .../Textures/VOL2/T_Staff_01_N.uasset | 3 + .../Textures/VOL2/T_Staff_01_ORM.uasset | 3 + .../Textures/VOL2/T_Staff_02_C.uasset | 3 + .../Textures/VOL2/T_Staff_02_N.uasset | 3 + .../Textures/VOL2/T_Staff_02_ORM.uasset | 3 + .../Textures/VOL2/T_Sword_1_01_C.uasset | 3 + .../Textures/VOL2/T_Sword_1_01_N.uasset | 3 + .../Textures/VOL2/T_Sword_1_01_ORM.uasset | 3 + .../Textures/VOL2/T_Sword_1_02_C.uasset | 3 + .../Textures/VOL2/T_Sword_1_02_N.uasset | 3 + .../Textures/VOL2/T_Sword_1_02_ORM.uasset | 3 + .../Textures/VOL2/T_Sword_2_01_C.uasset | 3 + .../Textures/VOL2/T_Sword_2_01_N.uasset | 3 + .../Textures/VOL2/T_Sword_2_01_ORM.uasset | 3 + .../Textures/VOL2/T_Sword_2_02_C.uasset | 3 + .../Textures/VOL2/T_Sword_2_02_N.uasset | 3 + .../Textures/VOL2/T_Sword_2_02_ORM.uasset | 3 + .../Textures/VOL2/T_Sword_3_01_C.uasset | 3 + .../Textures/VOL2/T_Sword_3_01_N.uasset | 3 + .../Textures/VOL2/T_Sword_3_01_ORM.uasset | 3 + .../Textures/VOL2/T_Sword_3_02_C.uasset | 3 + .../Textures/VOL2/T_Sword_3_02_N.uasset | 3 + .../Textures/VOL2/T_Sword_3_02_ORM.uasset | 3 + .../Textures/VOL2/T_ThrowingAxe_01_C.uasset | 3 + .../Textures/VOL2/T_ThrowingAxe_01_N.uasset | 3 + .../Textures/VOL2/T_ThrowingAxe_01_ORM.uasset | 3 + .../Textures/VOL2/T_ThrowingAxe_02_C.uasset | 3 + .../Textures/VOL2/T_ThrowingAxe_02_N.uasset | 3 + .../Textures/VOL2/T_ThrowingAxe_02_ORM.uasset | 3 + .../Textures/VOL2/T_grad.uasset | 3 + .../VFX/NPC_VRTemplate.uasset | 3 + .../Medieval_Weapons/VFX/NS_MenuLaser.uasset | 3 + .../VFX/NS_PlayAreaBounds.uasset | 3 + .../VFX/NS_TeleportRing.uasset | 3 + .../VFX/NS_TeleportTrace.uasset | 3 + .../Medieval_Weapons/VFX/P_ArrowTrail.uasset | 3 + Content/Medieval_Weapons/VFX/P_Impact.uasset | 3 + .../DemoMap/L_RPGEnvironmentVFX.umap | 3 + .../DemoMap/M_DemoFloor.uasset | 3 + .../DemoMap/RPGEnvironmentVFX.umap | 3 + .../Materials/MI_CobbleStone.uasset | 3 + .../Materials/MI_CobbleStonePillar.uasset | 3 + .../Essentials/Materials/M_Bubbles.uasset | 3 + .../Materials/M_BurnDecalSword.uasset | 3 + .../Materials/M_CausticDecal.uasset | 3 + .../Materials/M_CausticDecalRune.uasset | 3 + .../Materials/M_DemoCobbleStone.uasset | 3 + .../Materials/M_HeatDistortion.uasset | 3 + .../Materials/M_MagicalGlowRays.uasset | 3 + .../Materials/M_MasterSpriteMat.uasset | 3 + .../Essentials/Materials/M_MasterSubUV.uasset | 3 + .../Materials/M_MasterSubUVLit.uasset | 3 + .../Essentials/Materials/M_Sphere.uasset | 3 + .../Essentials/Materials/M_SpriteHue.uasset | 3 + .../Mesh/Materials/M_DemoBottle.uasset | 3 + .../Mesh/Materials/M_DemoCauldron.uasset | 3 + .../Mesh/Materials/M_DemoCauldronFlame.uasset | 3 + .../Materials/M_DemoCauldronLiquid.uasset | 3 + .../Mesh/Materials/M_DemoChest.uasset | 3 + .../Mesh/Materials/M_DemoPotionLiquid.uasset | 3 + .../Mesh/Materials/M_DemoSword_1.uasset | 3 + .../Mesh/Materials/M_DemoSword_2.uasset | 3 + .../Essentials/Mesh/Materials/M_Grass.uasset | 3 + .../Essentials/Mesh/Materials/M_Plant.uasset | 3 + .../Mesh/Mesh/SM_DemoCauldron.uasset | 3 + .../Essentials/Mesh/Mesh/SM_DemoChest.uasset | 3 + .../Mesh/Mesh/SM_DemoPotionBottle.uasset | 3 + .../Essentials/Mesh/Mesh/SM_DemoSword.uasset | 3 + .../Essentials/Mesh/Mesh/SM_Grass.uasset | 3 + .../Essentials/Mesh/Mesh/SM_Plant_1.uasset | 3 + .../Essentials/Mesh/Mesh/SM_Sphere.uasset | 3 + .../Essentials/Textures/T_Caustics.uasset | 3 + .../Essentials/Textures/T_CobbleStone.uasset | 3 + .../Textures/T_CobbleStoneNormal.uasset | 3 + .../Textures/T_MagicSealRune.uasset | 3 + .../Essentials/Textures/T_MistSubUV.uasset | 3 + .../Textures/T_RainbowGradient.uasset | 3 + .../Essentials/Textures/T_TeleportZone.uasset | 3 + .../Essentials/Textures/T_TiledFire.uasset | 3 + .../Textures/T_TiledFireNormal.uasset | 3 + .../VFX/Materials/MI_Bubbles.uasset | 3 + .../VFX/Materials/MI_BurnDecal.uasset | 3 + .../VFX/Materials/MI_CauldronLiquid.uasset | 3 + .../Materials/MI_CauldronLiquidFlame.uasset | 3 + .../VFX/Materials/MI_Glow.uasset | 3 + .../VFX/Materials/MI_HeatDistortion.uasset | 3 + .../VFX/Materials/MI_HueParticles.uasset | 3 + .../VFX/Materials/MI_MagicalGlowRays.uasset | 3 + .../VFX/Materials/MI_MagicalSeal.uasset | 3 + .../Materials/MI_MagicalSealCaustics.uasset | 3 + .../VFX/Materials/MI_Mist.uasset | 3 + .../VFX/Materials/MI_Particles.uasset | 3 + .../VFX/Materials/MI_PotionLiquid.uasset | 3 + .../VFX/Materials/MI_Shield.uasset | 3 + .../VFX/Materials/MI_Smoke.uasset | 3 + .../VFX/Materials/MI_TeleportZone.uasset | 3 + .../VFX/Niagara/NS_CauldronBlacksmith.uasset | 3 + .../VFX/Niagara/NS_CauldronPotion.uasset | 3 + .../VFX/Niagara/NS_ForgeSparks.uasset | 3 + .../VFX/Niagara/NS_LootChestOpen.uasset | 3 + .../VFX/Niagara/NS_MagicalGlowRays.uasset | 3 + .../VFX/Niagara/NS_MagicalSeal.uasset | 3 + .../VFX/Niagara/NS_PixieTrail.uasset | 3 + .../Niagara/NS_PixieTrailRandomColor.uasset | 3 + .../VFX/Niagara/NS_Plant.uasset | 3 + .../VFX/Niagara/NS_PlantRandomHue.uasset | 3 + .../VFX/Niagara/NS_Potion.uasset | 3 + .../VFX/Niagara/NS_Shield.uasset | 3 + .../VFX/Niagara/NS_TeleportZone.uasset | 3 + .../VFX/Niagara/N_CauldronBlacksmith.uasset | 3 + .../VFX/Niagara/N_CauldronPotion.uasset | 3 + .../VFX/Niagara/N_ForgeSparks.uasset | 3 + .../VFX/Niagara/N_LootChestOpen.uasset | 3 + .../VFX/Niagara/N_MagicalGlowRays.uasset | 3 + .../VFX/Niagara/N_MagicalSeal.uasset | 3 + .../VFX/Niagara/N_Plant.uasset | 3 + .../VFX/Niagara/N_Potion.uasset | 3 + .../VFX/Niagara/N_Shield.uasset | 3 + .../Blueprints/BP_ThirdPersonCharacter.uasset | 4 +- .../0/16/ZDGLEKLXWB1YMPHYW310VY.uasset | 3 - .../0/1N/8Z2LR0IGV1Z3V2QVV7KQDR.uasset | 3 + .../0/1V/HCCK0548PNP8DAME66H5BS.uasset | 3 + .../0/1X/BXCSIWS66XQNKMAJBV3S1Q.uasset | 3 - .../0/34/A4BBQ3C266EUWYDGAMLXI9.uasset | 3 + .../0/6I/OEXKS2FM08Z1PLFCUTI95X.uasset | 3 + .../0/8J/RAVIB3K2ORZF8M16AXFTU9.uasset | 3 + .../0/B0/3VFHJ91BLKVKG2ANLPN6N8.uasset | 3 - .../0/D2/XYTZ1GABV2CFMWWQBSL1DP.uasset | 3 - .../0/E5/HL8JB0XIQ8V9V6YYEP5X95.uasset | 3 + .../0/HG/89Q5UB6F9WHHEF6V0R4T2L.uasset | 3 - .../0/HG/KG0KG2B1H1B8R7JXAOF08V.uasset | 3 - .../0/IR/MD3DKV16CVTLLZP3D5ERS6.uasset | 3 - .../0/J9/67YTTQW016TNVXZVE2UA9W.uasset | 3 - .../0/JH/KKGFPPJO1RF3CLF0WCNZF3.uasset | 3 + .../0/KJ/HHTRWYX7ISPHVT1YG1AGJK.uasset | 3 - .../0/LR/SH2LMFJ25QLL6L7Y4SJLVN.uasset | 3 - .../0/NA/F3ANIWSF8B7MMY8ESH7Z4J.uasset | 3 - .../0/NQ/2GY7CSYZAN73W9XTSTEUZL.uasset | 3 - .../0/NU/31HUX5ESOWHP9ITMZSN4NK.uasset | 3 + .../0/OC/L9W7G7TURCTJ3SCS9UWVGX.uasset | 3 + .../0/PK/EUNWD9BZDLXMLF4KTFN58Y.uasset | 3 + .../0/PV/32JMUQ32M7ST1SVTKMA0IX.uasset | 3 - .../0/QQ/KBBB9FRP8VI8X6AFCVR22R.uasset | 3 - .../0/RR/9KH7BNCSG76UG1GQIR5AZP.uasset | 3 - .../0/T5/59P32JJT0EM2FQGJTK9E5U.uasset | 3 + .../0/VI/QGEI048L4R5KE7UTFB45SB.uasset | 3 - .../0/W2/TF3NOY2IL637K2KLNZYE07.uasset | 3 - .../0/WS/T5JPFOXC3WGCT9OJGY98GK.uasset | 3 + .../0/X3/DYCSLID54N77C5318U9CJS.uasset | 3 + .../0/Z2/Y9VG9ZPA22T6F37NR4TKK8.uasset | 3 + .../0/Z3/D5D53GZBVF7COY9HEW3B2N.uasset | 3 - .../0/ZE/FL7599306SSZF7MMSUP88F.uasset | 3 - .../1/00/T1IE8GT94Y7KEJ3HSG41OB.uasset | 3 - .../1/08/ZZEGCKOCHHA3ZN6192ZCQ4.uasset | 3 - .../1/3C/VG3GK2KGHTFAYJOWVI1DL1.uasset | 3 + .../1/4I/KNSOF94H3TPKCVO6KXL19I.uasset | 3 + .../1/51/AIQNXYISC8B7NW5PHF87CC.uasset | 3 - .../1/54/QZSUMV4ERDPV6E95WDEXVY.uasset | 3 - .../1/5V/R277EJ083LW0TUNYURO5LO.uasset | 3 - .../1/7L/H9MNKRUG78L2OG8C5X71MK.uasset | 3 - .../1/9F/J421427ZI0E9NV2Y6AIDJO.uasset | 3 + .../1/AQ/L5L2TZ30AQ63KMU4O4ZTDD.uasset | 3 - .../1/BZ/AJVTBKKMPEF1BQSPD4JG5N.uasset | 3 - .../1/CG/LZWE6J239FDBB9B8FDYEN1.uasset | 3 + .../1/CI/OO1044661EYA8D956LQZ4N.uasset | 3 - .../1/D0/1FGO2ZUYZY26GN1622MGEE.uasset | 3 - .../1/GN/S7LESFG6UEBDFJVHL8W26Z.uasset | 3 - .../1/GS/KG8FONQN16UVOVOT7XMSSH.uasset | 3 + .../1/GS/ZZUCGL2TRPEUEBX3RV6CVU.uasset | 3 - .../1/HR/1NJ85VHE8YP8DK2E7VIORK.uasset | 3 - .../1/HX/8ACQMJRZ9WQIQU8K8I0HN1.uasset | 3 - .../1/I3/M8QKEDMTKXJJZYG4CBSNZM.uasset | 3 + .../1/IB/BGNYURXN47HRRZJZHCNUDE.uasset | 3 + .../1/JC/4WYXV2TEPFRXYA947C5Z0L.uasset | 3 + .../1/JY/Y5WGEMZ55SZ9M9OKM7OSER.uasset | 3 + .../1/KC/LM8BFFB9WMPZORY3P0UA9E.uasset | 3 + .../1/LD/HFOXVKENLXK6WJP1TRS70W.uasset | 3 - .../1/M0/9GCOZJXZHOZLVMT2W74CH9.uasset | 3 - .../1/MI/GLHLY8MW0JSB9820KQ1UGI.uasset | 3 + .../1/N8/UUAKGLFZU90X0DGWV862I2.uasset | 3 - .../1/NY/9PZSHNPL3FPFLY3JWC0WJM.uasset | 3 + .../1/RO/KDPH881R8E85TC9TRV9869.uasset | 3 - .../1/S1/N4SS7Z3B3L791YQV242PRK.uasset | 3 - .../1/S3/NCJTK5A88823E478FSE300.uasset | 3 - .../1/SG/Y1Z0O137QDQNBWRXCJK8KF.uasset | 3 + .../1/SL/P2V16EIZY0OEBA7MBK5X5X.uasset | 3 + .../1/UA/19YIISLX0L6FXK9V3NLTQ1.uasset | 3 - .../1/UV/7S18Z8DQJDD6EQXYLHF0UX.uasset | 3 - .../1/UW/04ZWAJTO4HARCP3BBYE859.uasset | 3 + .../1/V9/VKF1JFF7F0FLLIQ2GMCH72.uasset | 3 + .../1/YM/FAOEZLFGKP1BR2Z3598OT3.uasset | 4 +- .../1/ZD/FYJUVYDJSPJC9PG8ONA3GU.uasset | 3 - .../2/0E/48Z5YP5KF767BKXZZ3AEN2.uasset | 3 + .../2/1J/G6R9KXL2A5EW5YKY63235X.uasset | 3 + .../2/1U/389TX4J83TR5P219YSJCT5.uasset | 3 + .../2/30/E4NGLAMKGOVVSSF0G1EX2C.uasset | 3 - .../2/59/25PS2IBDKTD52UCRIIMNWS.uasset | 3 - .../2/71/69GM63Z46STIVG1813EOFI.uasset | 3 - .../2/76/XKOUV2Y5MY7AGO0PQY17QX.uasset | 3 - .../2/9N/99L7OEGPRB9O6V6DGH4ZTO.uasset | 3 - .../2/CA/D5HC6M3UHXBZ8KBOW4O7D5.uasset | 3 + .../2/CN/W6WR0N139DICC7J23VMUCN.uasset | 3 + .../2/CY/34LJ3PPLCNIAHUG8MG9QJS.uasset | 3 + .../2/D0/546VY73UMJLZP5B73SJJKG.uasset | 3 + .../2/DQ/KXPHAMBS9PM3J1I74JTV3K.uasset | 3 + .../2/EY/B0K8XSY7O9QVWVQR4VJNKT.uasset | 3 - .../2/FW/9S1XDEKUN0YUC64DD5HA82.uasset | 3 + .../2/FX/JPQHKG9C6D8FAYUCV7THNI.uasset | 3 - .../2/HM/V4O14V4NXIE1HUIA29O7M3.uasset | 3 + .../2/JD/MN3QQWBWJFBVRWCZ4O1AJV.uasset | 3 - .../2/JU/F10EHDUUF6BOZOGDTTMGE7.uasset | 3 - .../2/KR/JBUH3P2OEF1ROWYO2SK8KF.uasset | 3 + .../2/M6/P1MLP3CBZLM3J22QOQ8HYD.uasset | 3 - .../2/P9/8FOT4UPMJUIYESEFHOJIXB.uasset | 3 - .../2/RC/GW9VXWRQZE51QSC5BFWKRX.uasset | 3 + .../2/RY/4LZPKRASO1H09H062X1WSF.uasset | 3 - .../2/SY/LHUH4NG4TAJTNWIF4IJOZK.uasset | 3 + .../2/TQ/WIZY02CHMIRZOKE9K9GZGV.uasset | 3 + .../2/UF/U4NYWJZ6KTB9V9HHB12IN1.uasset | 3 - .../2/UP/4V4R2HLI7DLPMUBJ4X7KN4.uasset | 3 + .../2/UP/G9N6016974PDCWP2C2LVAB.uasset | 3 - .../2/V7/4F6WHSF547HZIA38R7NBAJ.uasset | 3 + .../2/V9/QVGO9R2JYAZCK30Z4TBJ4K.uasset | 3 - .../2/VB/LLJK8QW3LGXD9APNV1VTWX.uasset | 3 + .../2/X0/TQINDYWSJB9X2X7DA8CQ8R.uasset | 3 + .../2/YA/G5NOCR0OG35K5L3PVBZTIO.uasset | 3 + .../2/YT/NSZLML3OTCCKSLZMKR2LC5.uasset | 3 + .../2/ZA/RGVD85AC8GM3VA31D54T61.uasset | 3 + .../2/ZV/DW86CVFH8L0HB71ZL5PHUO.uasset | 3 + .../3/0K/BVS6D27SKY85QGYP1IOK9S.uasset | 3 + .../3/38/ADSM5NVOQZOSF5537J0491.uasset | 3 - .../3/7C/BPE8ICZAZCQVUICID4C5DG.uasset | 3 - .../3/7N/UJFXME5HUOJGQ5SHIP3AVF.uasset | 3 - .../3/7W/ZZW2NTM1JYQFZG0KLDKF1R.uasset | 3 + .../3/8F/ZKVF3C8JF1TO0TBL0ICF47.uasset | 3 + .../3/90/OTPI4SD04TVTAITU60SF5T.uasset | 3 - .../3/9P/2D1XN1U8FZX6YMWBEB3UIR.uasset | 3 - .../3/AO/S22G236IOLWICHLOCBI38S.uasset | 3 + .../3/CD/53IH54IJSKYXGY2FB2K4XI.uasset | 3 + .../3/F8/YCVJFM89X50CTHC0YTTYUR.uasset | 3 + .../3/H1/KAR4LH61VYA83TM2WN9D6H.uasset | 3 - .../3/H2/2JV6ZN2U68S8I81GA3VBYX.uasset | 3 + .../3/KE/1BGS0AT5VY8PHPV8SRDX5O.uasset | 3 + .../3/KY/UFKQ214ZNZ5KE6NUICNW8H.uasset | 3 + .../3/N6/TSGFR0KLLXYVK0GBAIVM09.uasset | 3 + .../3/NG/N3L4CQL27ERPS4FHNEOJLI.uasset | 3 - .../3/P7/M9EM4PWZ9XH43G61IW0VPR.uasset | 3 + .../3/PG/22A06SCPP5R6PE1LDG8M77.uasset | 3 + .../3/PO/6YWXXHAA1AL09OWD73XDOU.uasset | 3 - .../3/QO/MVRHTX2PMH3F4J7FR4ZEJQ.uasset | 3 + .../3/UW/Q7UOKMA03GELTE27A2LQ2B.uasset | 3 - .../3/W9/V3C1SK3L07778O680SHE6F.uasset | 3 - .../3/XK/CEJYF62CONN8T0IZ79468S.uasset | 3 + .../3/XV/J13ZK29HF771J6VOJYU9UV.uasset | 3 - .../3/YW/YWRFU2G0OULV6IBC167HZS.uasset | 3 - .../4/2B/0LS25MQCLS7DFLQJ7TXUL5.uasset | 3 + .../4/2C/YMCX66E1RBZX7RQSYG3JI0.uasset | 3 + .../4/2D/NX7BIQXRHJTXOG6W4FJ0TI.uasset | 3 + .../4/35/24UB1KXAT16CE7EEGTJFR9.uasset | 3 + .../4/3M/KAOYQUBV98FIE974TTK5QO.uasset | 3 - .../4/3W/YJOVC3PQP4BE8QA1QO276Y.uasset | 3 - .../4/7A/NQ3AH19SYK0W3W2VRLM2U4.uasset | 3 - .../4/7G/XYO4SVYZDFH66QMDQRT5QI.uasset | 3 - .../4/8F/QXCBAYQJ6CQC3VYBJCTWPG.uasset | 3 - .../4/9B/DZ8FYC6MVOTI18W68H36ID.uasset | 3 + .../4/B2/NKRR5JV6RL7ZWHE1DWT3L8.uasset | 3 + .../4/BE/E73ACGEEHZ1OII6KR3W379.uasset | 3 + .../4/CC/B0D3HD9AIJNFEJHLFWYPWP.uasset | 3 + .../4/EZ/R7KSSM3JKC4MM37FUHDEB2.uasset | 3 + .../4/FA/IRIIGA47XMJDC2DGLC5JWJ.uasset | 3 + .../4/HS/ZT7WNWBUXBPLQTZQR138UL.uasset | 3 - .../4/JJ/GSTQINBFK0SS8LQR31HBSA.uasset | 3 + .../4/MC/FH0J0CZ4T7G7IN7UV4RNRN.uasset | 3 - .../4/ME/AF18NNK6081SA6DNXS6162.uasset | 3 + .../4/NA/XYPZMV1H4BB7LYW0NQZLFC.uasset | 3 + .../4/OG/G1IPHV3722ORFFPCJS4V9Z.uasset | 3 + .../4/QL/I4PTGRZSY3J6IABTUBK9RR.uasset | 3 + .../4/RG/0AH2QUT38HYFI6971Z7C4M.uasset | 3 + .../4/RJ/TPFH066L5TBYRPZ3BIRC4N.uasset | 3 + .../4/T6/PWCA41HUEQR57FGBNBDQ4V.uasset | 3 - .../4/TA/O5T8VEGCEH5XVLX0SRG1IZ.uasset | 3 + .../4/U4/0FZXV800O4YR4ZO4UCDXY2.uasset | 3 - .../4/UA/7HHLYAO5WUWZHDFXVZNWGQ.uasset | 3 - .../4/US/XMX2W6RO18T6U7B344FPL7.uasset | 3 + .../4/V6/B77WNT3F5D9F8ET0F6PQ28.uasset | 3 + .../4/VG/A02D32M6ARAMNJ4W2B4CYX.uasset | 3 + .../4/WS/O1JKP8PECQ83Y3J65G6DNA.uasset | 3 - .../4/XS/5R06JMZW47HMC4E8XMC6UF.uasset | 3 - .../Y4/TBUDPPMXHL12RG46DVY28W.uasset} | 4 +- .../4/Z9/YKTSWJFOPU1JSF6P3DRY0W.uasset | 3 + .../5/0W/UYY00IO7PAM2D706TIE0ND.uasset | 3 + .../5/32/NDWDHUAOA6RKV1X5RSNNBC.uasset | 3 + .../5/37/W7KP0QZ80GRYAE9OO8ONA8.uasset | 3 + .../5/3R/RGW6762XY1EUHHLH442VO9.uasset | 3 + .../5/5I/FZIRL64X1VOM7GMTO906F2.uasset | 3 - .../5/94/B5DVTS35RHDOKIEUPBJVDA.uasset | 3 - .../5/A4/4O4LPW1TDGYEKF0UH1VZS7.uasset | 3 - .../5/BZ/NYWOPXTEGYSBKKLXTML0XJ.uasset | 3 - .../5/CH/V9P7GWRB4DHQNFKKVRMMI3.uasset | 3 + .../5/CN/1BL5RSX82BRV1H0C2M3CSF.uasset | 3 - .../5/CY/WMG942FM3HRBWNRQHJ76XG.uasset | 3 + .../5/CZ/DROAVATVZT3G3YZD26PBWY.uasset | 3 - .../5/FF/PPDN7EM3FZWOTSUZTH95U6.uasset | 3 - .../5/G1/ADI91H75SKHYFMPOSCWE7L.uasset | 3 + .../5/GO/DMG86C0JVUCVA4OWLUVR0E.uasset | 3 + .../5/HF/FBK1XNZWDBKHG3UFBGB2I5.uasset | 3 + .../5/HN/G97Z3C6FB4OMY418RZYFI2.uasset | 3 + .../5/IO/KD84ZZQXDEQTE79VXIAVIW.uasset | 3 + .../5/IS/0QG37R75L5J11NMU8V0PQ1.uasset | 3 - .../5/M0/3WXMT5RUA12AFJYQAU5YVG.uasset | 3 + .../5/M5/J4BR0WTRC2586LBCR66ZT9.uasset | 3 - .../5/MC/J5KAIEC3H0874O2BE6T6J0.uasset | 3 - .../5/MR/SX6NL1BEG9L9AS24M24JWR.uasset | 3 + .../5/NK/DJN1QU28NANFO2Z8GTI6VF.uasset | 3 + .../5/PO/7JK0VFH8PBTMJSAKZSJKCR.uasset | 3 + .../5/QT/1AVG5JFW3YG1VK0HTRGJ3D.uasset | 3 + .../5/RH/UOP743GPZ3VWU1EXL03O12.uasset | 3 + .../5/S8/WDF2PNZBW59S7B0EFG030U.uasset | 3 - .../5/SG/LL4W9P4XC3WLJD9H2BY5Z6.uasset | 3 - .../5/SM/BG88ZSG4A5CH5X5GV58RXI.uasset | 3 - .../5/SU/YZSO39OVAMKBLBP6B9641H.uasset | 3 + .../5/TZ/R8WHVRJGXELXE5NMKMLGA9.uasset | 3 + .../5/V7/ZE8HG5RCWOFK1KKFVZK7UX.uasset | 3 - .../5/VM/H9CMP7CZCX2XL88JNNQUNU.uasset | 3 + .../5/W4/2YUXSP2WVDL8B8O9X4UWZW.uasset | 3 - .../5/WB/89HMKA30WIDNQZGC21T81T.uasset | 3 + .../5/WN/6UI1P16CEVEYQQYPPR11EL.uasset | 3 + .../5/WN/AEGM1GRFJD5MYQ5IHDE4PR.uasset | 3 - .../5/XF/LWJL6YHVQHOU5O3NQM1OMX.uasset | 3 - .../5/XL/FY5E57ZVWVAHXWN6N0KVFS.uasset | 3 - .../5/ZX/3CMHX2AJ3BIPCAC0IN2K1G.uasset | 3 - .../6/26/0VDK8DVVX04UKUNSIWOEGD.uasset | 3 - .../6/30/PIXO28B7DNQOI1MW1G2YZ7.uasset | 3 + .../6/46/LQ5XNQ3BBCOOTR61GCBBET.uasset | 3 + .../6/58/UZ5FKON81QSS961HGM35D1.uasset | 3 - .../6/5A/LUCU1EGBB26RVBL5DSFI10.uasset | 3 + .../6/65/ZS9LD0UUM4SM3JLMXZI4WG.uasset | 3 - .../6/7Q/OQVAK1LH0N7F2CU9JZ0729.uasset | 3 + .../6/84/CF36RYSH670Y8LSFCN18M5.uasset | 3 - .../6/8E/SDXKM99222PQWC2MGNQ0RF.uasset | 3 - .../6/98/IR6J5NVHL3EL00VUEXYUI9.uasset | 3 + .../6/9E/46KPWQE5HZ8PR7NY5RHNUW.uasset | 3 + .../6/9V/0NMPODV2U2J34FXI8NC721.uasset | 3 + .../6/A6/PYHX20YI006U9TMII4BMWP.uasset | 3 + .../6/AA/8IW49FT4UVURBOJN9VR9H8.uasset | 3 + .../6/DQ/4TSL5Z2HGIMLWZ8306D0FR.uasset | 3 + .../6/E6/LYYIJWANK8LGGNNY25FX7N.uasset | 3 + .../6/FH/6TB01KU0YOORGO5G6V73RV.uasset | 3 - .../6/G1/S98V4QLJGQ19GXYRITPRKO.uasset | 3 - .../6/GM/01VH3PHLRZ81HWXDSTMIZM.uasset | 3 - .../6/IJ/7GOXMYOMGPITJ7PFF7I69G.uasset | 3 + .../6/KL/PLTYTH8VZ2YCM0138UBFR5.uasset | 3 + .../6/L6/LYQXQTRYMED3V701K98TG8.uasset | 3 - .../6/LE/827HT1FPK4C93RGF72YA44.uasset | 3 - .../6/LT/066ZCG6IN3FNQGQW5N1PW6.uasset | 3 + .../6/M9/W78I8R6DXCI1BTA9A80PQL.uasset | 3 - .../6/N8/8UXP6SNX06G1CRBPAG2TQC.uasset | 3 + .../6/NC/GS4ZYX4ETGSWXASZM0G68W.uasset | 3 - .../6/O7/C66BOQOFN0J0JAITMLTG8L.uasset | 3 + .../6/OO/1P2V3VQV2GCF9WIINMP5V4.uasset | 3 + .../6/P7/IUOM1H8697CSNFMOAS8WA9.uasset | 3 + .../6/PF/HKGMBQSW861804ZXU37KDZ.uasset | 3 - .../6/SR/64MOCRPC5LRUAT6YUR75ZV.uasset | 3 - .../6/TJ/YYQRVNE1QITUYL9HLJD8ZL.uasset | 3 + .../6/W4/YDVZ4CT672MXJFBO05VZ12.uasset | 3 - .../6/WC/U1XPK3YBBPJYZLSEY7UMDY.uasset | 3 + .../6/WV/HBSETCS62WXFDTP2HDH2H4.uasset | 3 - .../6/XU/MS8ZQ338RDCLV0T4YTGEX4.uasset | 3 - .../6/Y4/21O1IFCNSA6I76X3W8N600.uasset | 3 - .../7/1C/BR5YAYSEIPKV59DAMFH6QZ.uasset | 3 + .../7/21/GBKW6O9GK8RDQLLH15BE33.uasset | 3 - .../7/28/3TE4KBRQC1CSG6UWFWSQA4.uasset | 3 + .../7/2S/B7QXYI8JL00LNH9HR8FD24.uasset | 3 + .../7/36/SNKEE4E0O962ZIAYILUXLJ.uasset | 3 + .../7/4G/RKMC4QVLDM3SVQHR63TZF6.uasset | 3 - .../7/4N/5RDZEJU2IBJ92U0AZKJFLC.uasset | 3 - .../7/5C/A367BBRPBYYS1Y0SLCNL47.uasset | 3 - .../7/6H/0L4WJMYO3ZVG1U0VHSX67A.uasset | 3 + .../7/6L/LTDUSIWB6W2UJ0O5EC3ZMY.uasset | 3 + .../7/95/P4LRWGDVHG0PZMBV1A1KGD.uasset | 3 - .../7/9M/12X9KOTJACGL1TF3XDTIN5.uasset | 3 + .../7/AC/R7DULDX8JBZ40RZWESOO0J.uasset | 3 - .../7/AM/ATPLC71KSVD5QF8P1626H4.uasset | 3 - .../7/AR/H8LN84RC5GIORGMXMRAX5A.uasset | 3 + .../7/C9/9GO46ULSFXYE2E1QCKX3PX.uasset | 3 - .../7/G6/2Q80ND8FUBXK6XKYS22G1O.uasset | 3 + .../7/GO/U7LDUWDBYH3XN4RMF6990N.uasset | 3 - .../7/GR/KI00LQ8F8LA4CW7FL2Y09Q.uasset | 3 - .../7/GR/W3LKIYQ4MV3GXZ93BJEDCN.uasset | 3 - .../7/GW/UL0JBFAL5314SKKY3XGTHW.uasset | 3 + .../7/HS/VAEV98NGVKAA51Z9E02I9F.uasset | 3 - .../7/K5/FW5H8ZPGF8HMYGN2CY5W9R.uasset | 3 + .../7/M3/ZHQU62OKNCT98VDEB300C3.uasset | 3 + .../7/MO/WHJVJZ24Q1YSDDOTH1G9NI.uasset | 3 - .../7/P9/28S1NLKGS27UTB3S5CW6DC.uasset | 3 + .../7/PR/M8F7ML63TW7O6SE30R640R.uasset | 3 - .../7/QD/5RZD3JFLR348JSTCEIYM4E.uasset | 3 - .../7/QP/BKXP98WFZ99CWWP2Y2BOI7.uasset | 3 - .../7/SU/8124BX7OC8U4YYPZND909B.uasset | 3 - .../7/TS/Q5ZQNR7DZDK3OB520Y4ZRC.uasset | 3 + .../7/UL/5F1Y0VWYN2HWEAHWM212OI.uasset | 3 + .../7/W9/4RAVVMGO73OXLDQX7RFABZ.uasset | 3 + .../7/YP/QJMG2IXL5Q4Q67YH4EH4UO.uasset | 3 - .../7/ZB/NN945XBCV1VFYOL6JC04T5.uasset | 3 + .../8/4H/ZTUX6MLSSXY54EUHZDH9VR.uasset | 3 + .../8/78/O2HSR3P3KREPP62OSS69Y7.uasset | 3 - .../8/7B/LAGJ2PBZJM2Q4XBM458FN3.uasset | 3 + .../8/7F/MZ66SAPNUVYD8BCRFXWBRL.uasset | 3 + .../8/9A/S0WO0L0XPT8O2CC602ACHI.uasset | 3 - .../8/A7/SIS6Q9RQ547ULLA719R1OT.uasset | 3 + .../8/BN/2LSIXSQR6BXEX2V88M04XV.uasset | 3 - .../8/BR/1T545UQ9LN1OPEBE6H2T5C.uasset | 3 + .../8/DX/7JM07OS46AGRWU9OUXNEMM.uasset | 3 + .../8/J8/XWQQBFBAOIJY70H4QGGWJ9.uasset | 3 - .../8/JK/8TVHRN7ZA1L5TXAM773MP1.uasset | 3 + .../8/MX/A93NGWWDMMGU4KHP6DBUQ3.uasset | 3 - .../8/NM/N6XSJ1DZ195HK5PSVAAK17.uasset | 3 + .../8/O4/3DSHCLGEVAYYHEA9QBA7RG.uasset | 3 - .../8/OU/47JIC2JKEL6R1CKN1AYP12.uasset | 3 + .../8/PB/M5WOFOWY53BY7BLGOJRRJZ.uasset | 3 - .../8/Q4/UG34QP557S9BEWXDZZQ6YF.uasset | 3 - .../8/RH/A3XWFRRKGQSUSBUX3UNJEB.uasset | 3 - .../8/RO/5DSKIYPDUWYMAZ7B6J8YO6.uasset | 3 - .../8/S0/PMZ0M92IOF28YBRWAEGEA1.uasset | 3 - .../8/TD/SUD3ENPBM4GWV7MBN4L1RO.uasset | 3 - .../8/TM/ERJ7PIWYRFP5SI8XHYPOOM.uasset | 3 + .../8/VK/RFE5V0ZZPD8A7FR1N93D2E.uasset | 3 + .../8/X2/UKT6ZMA40NZV1C6AEBPDWV.uasset | 3 + .../8/XC/E5EO22VWABZKCY7NH9MJYP.uasset | 3 - .../8/YE/FT3JXEGWI3WJXSRZ1C1RZN.uasset | 3 + .../8/YM/JRGE4QNNF53CW0B6CRD5KK.uasset | 3 + .../8/ZH/IOQYPFINAV05JRWAQ2IYPS.uasset | 3 + .../8/ZN/BA3VC3TCNSGVQRSTZY8TMZ.uasset | 3 - .../9/2M/W15M7UAY0DF57MKNUM9M4I.uasset | 3 - .../9/32/GJAYY30UAGBMNZT78KO847.uasset | 3 - .../9/51/N1TS9EB9AYS9FJ1NKYFD4A.uasset | 3 - .../9/8K/SPMSHCZNXR7ZJJNSPF9G8Y.uasset | 3 - .../9/96/V5NCA5V4TFUNSBP76QBNB7.uasset | 3 + .../9/9F/B36X9DDGW43X0JDPK06ZVB.uasset | 3 + .../9F/FG66D5FP9E4YXWESVLTQOF.uasset} | 4 +- .../9/CP/Z3SZBITSVONS0MK8CC0KBP.uasset | 3 - .../9/CX/CCMKKQVZHRK8UFJDWU2GDA.uasset | 3 + .../9/D0/DZGOSVCUEXEMKMI2NAMGLL.uasset | 3 - .../9/EX/707TBR4NV1EBOSZQCPK3SB.uasset | 3 + .../9/G4/Y7S9HPDOSI2NGTYGV2YZ22.uasset | 3 + .../9/G5/3DQHS6L9TS0EKIVHJJGEZ2.uasset | 3 + .../9/HK/KZ1RYWRHQ515KQYTNPKFDH.uasset | 3 - .../9/HU/JHZ04PUFX77H9KYIE1GGA5.uasset | 3 - .../9/I4/5LQOJZK31FTRCIA5LMQFP7.uasset | 3 - .../9/IY/MFSUVMWO7EH0294G3YT1OI.uasset | 3 - .../9/J4/TGRL5W3TDKM8XIFJ5L651O.uasset | 3 - .../9/J9/W3Y8AJNC55BC4KKRL0YMEB.uasset | 3 + .../9/K9/VIUKGUAQKGTX7BCWU3WKNZ.uasset | 3 - .../9/KF/L0LPNW5K0JOZSHSR185D8V.uasset | 3 - .../9/MU/EKTCF0AZ5GZRV49V08TNCT.uasset | 3 + .../9/NN/EC0LMIB73OEOBTHZP5USO0.uasset | 3 + .../9/P0/HQTZIA8DMRYAPJD4H0USTU.uasset | 3 - .../9/P8/69IU1VWPA9JO2RIK96ZA0S.uasset | 3 - .../9/P8/UNZ2OILD1JE0G742POVCU4.uasset | 3 + .../9/PL/98EJD9C5AGI5U97OQJEW8U.uasset | 3 - .../9/PS/J9YXKINK47CTHUFJ9IXH41.uasset | 3 + .../9/PV/R12GELMH91GCJB5MQQX315.uasset | 3 - .../9/R3/6N7Z6S8OPNBD8J08FM1LUE.uasset | 3 + .../9/RW/OI9D6FAEHMFTO6WPB7CMTP.uasset | 3 - .../9/TU/ZQWIKCXGDYHNNGN74T0LUI.uasset | 3 + .../9/U3/TOSALV5OGOPPTMAT40ACT4.uasset | 3 - .../9/U7/L223U228CVF4ZBWP7H9KHF.uasset | 3 - .../9/V5/AZBAQPIG2FWPQW1V9DR5W2.uasset | 3 + .../9/VD/N93BH2CJU9W5K9CCA7XNL6.uasset | 3 - .../9/X3/QEITWRSX856BIQQZO6F92G.uasset | 3 - .../9/YD/4QPCANLEOKLSUNMJW9AJOW.uasset | 3 + .../9/ZE/1L8SNS51GKIZWQAIUM6EW9.uasset | 3 + .../A/09/LR63KOVD9EKPN1FEMDEUPP.uasset | 3 + .../A/1V/E6P0JYKYR433208YQIA2T9.uasset | 3 - .../A/2D/JWQZTGIY05ER0UDTZZS9S4.uasset | 3 + .../A/2G/10PGRF8HA1S7474U4LB9KP.uasset | 3 + .../A/3Q/GZ8OIADOY71IG1XYW1JT05.uasset | 3 - .../A/5N/4VRPEQO8ES9AI06A782H0B.uasset | 3 - .../A/92/LAC7HH7KAK4NKPSMIKT3UP.uasset | 3 - .../A/B4/DDLZ6QSR2Y29DJJR8COATG.uasset | 3 - .../A/BI/516AGSIN9HBOAGFGQI4ORP.uasset | 3 - .../A/C3/M0TKEHWD0GUKZD1BQSA6J7.uasset | 3 - .../A/D8/115HJ145ENUFTMS80FQR8P.uasset | 3 + .../A/FX/IQNKRTYWGZFE2WJV4WQMWH.uasset | 3 + .../A/GM/KMGPR6Z0LY9Q8ZHOJSNZMT.uasset | 3 - .../A/H4/13E9W5MKJJD8V95FVS3GJN.uasset | 3 + .../A/HI/BVZH1NFFAXQRI8OBQOT1AZ.uasset | 3 - .../A/IS/87JIC28G61WQC5AC1FJYK9.uasset | 3 + .../A/J7/LC2UK2NKVW1VS6D8RDL3YY.uasset | 3 - .../A/KB/GMC47FOJGQ1V7NW0OZ229N.uasset | 3 - .../A/KR/DK061LTQI4W4VG0YQFYHND.uasset | 3 + .../A/MO/ZNQN33CZRQDZN02DEHVYLI.uasset | 3 + .../A/MR/UYMV9LTN0E9HMU9V4G3MMQ.uasset | 3 - .../A/O3/LSBUUT9G2U07T2JDCFC5GH.uasset | 3 + .../A/OJ/A4O83FNNW4LQ7SPI5UGMCF.uasset | 3 - .../A/PO/FR28L8XXTOYVLNANW4I5VL.uasset | 3 - .../A/PP/992BSX0PD9X5W9PZFSG6NQ.uasset | 3 - .../A/Q0/ZVZYY6QE49W4WH3TAFAPK9.uasset | 3 - .../A/Q5/TO8WAOO7568B55FRLSOHP0.uasset | 3 - .../A/RG/H761A2I7R0YCTJWFM0ZT2G.uasset | 3 + .../A/RP/SEJTHFPOXH2OBS4YNNO5IH.uasset | 3 + .../A/SH/L8U6JSRYUB6NZR98SDGOLZ.uasset | 3 - .../A/VW/JM3QORRZOK2G6T8FB7LGUE.uasset | 3 - .../A/WU/5TE6O6IMUANQ22D1IY4X9T.uasset | 3 - .../B/2F/OFMC83MJJYP5EW1F34WYL3.uasset | 3 + .../B/3V/1FLY32HF82OQMCLL1EVIHN.uasset | 3 + .../B/59/Y0KRX416QNBGNJVUMX9K3C.uasset | 3 + .../B/5U/SZ72P7IMAAIAATQZZCQ4ZU.uasset | 3 + .../B/5W/8OXKR0B22CE768VIJ906EY.uasset | 3 + .../B/61/RQQPPNI8NQMV7L7BUO5QR9.uasset | 3 - .../B/7O/CE95OD6AWXBBLHDQXXJKR5.uasset | 3 + .../B/8O/LJFVT999CGX7ODV0CVE5WS.uasset | 3 - .../B/8V/CO7E3RAVS7R9NUAKCE3J6Q.uasset | 3 + .../B/AR/GKL2QJ5AM1BQPA7BYSO6IC.uasset | 3 + .../B/B6/N7HV8SLEXSY62ACLQJ4HM3.uasset | 3 + .../B/BB/UWSCS5PILVTXJDLCHYSWVV.uasset | 3 - .../B/BG/PHJ78JPNTS7OCY5XHA06B5.uasset | 3 - .../B/CM/LW2RD04LOTESDZWPWH2X6J.uasset | 3 - .../B/DC/VP0SJLY5SPVOQUG3KI4ZVN.uasset | 3 + .../B/EB/3SU04MJHA10KE7JUFW1GZK.uasset | 3 + .../B/GX/HFU2VWCO470JXW2B42H504.uasset | 3 + .../B/HO/ATR77DWL4UWXQ407X32DLW.uasset | 3 + .../B/IL/GP5H96P9ARARP3MMF3G7EP.uasset | 3 - .../B/L3/ZSPBTLDJO6IMEWZ0NX6WGJ.uasset | 3 - .../B/N6/NASU32K7LSVLG486ETDY6N.uasset | 3 + .../B/QJ/LI2JFETFF774D9376A6IFG.uasset | 3 + .../B/QZ/23XFD6SQEKT8GR4T6EV2AT.uasset | 3 - .../B/RN/XBT09D6MXIPU1DXJLHBOY3.uasset | 3 + .../B/RO/NEVK07VQKA08S4MHHTHFNC.uasset | 3 - .../B/RY/11WN9WD0IYV5SY319LCWRG.uasset | 3 + .../B/TR/N6QK2Z48VWP0YLGOKKO6H9.uasset | 3 - .../B/UF/74L3CKHVP31ZKNNZJDFZXV.uasset | 3 - .../B/VL/68MTBHUAH2COC2LJJSWJFL.uasset | 3 + .../B/VL/BLNRCCZU6AX5M9305E22YR.uasset | 3 + .../B/VV/G3IYVPRMCA1XBUOZOQHOLA.uasset | 3 + .../B/WR/DID3LCLG2S29Z9PMLBZ7NK.uasset | 3 - .../B/X4/YI3462QLDUUSZ0YGZSW1N5.uasset | 3 + .../B/XY/RYIL14VB4ZZNL6V06WDDIC.uasset | 3 + .../B/YE/UZ4RNMA65OA87WJJBB1LBA.uasset | 3 - .../C/21/VOLEHI471XRETUBALM613T.uasset | 3 + .../C/2W/2T3CT6T84WQGSH5T0I4OPW.uasset | 3 + .../C/2X/N1DL137OB94EHP8HFEAMJS.uasset | 3 - .../C/50/0CHG6JLNGWHTEBX4FOIKPI.uasset | 3 + .../C/9L/WFF2OFPAWFMPUSZ20GKHKS.uasset | 3 - .../C/A4/BICW1T61NA2GT7WFA2EAV4.uasset | 3 - .../C/AJ/2D1AJ05ZPW855W38S8GEXP.uasset | 3 - .../C/AN/NOHDNXNZBIQWTJ4GOUBFXM.uasset | 3 + .../C/CW/00PY5VV9W63G8X867BHD0B.uasset | 3 - .../C/D3/2FWWVY7LQ0PZ26IXTN9K7X.uasset | 3 + .../C/FT/3AFSXFW9T1I99053ZI24XC.uasset | 3 + .../C/G8/QECVMFDIBSZG1EVR0JXBZG.uasset | 3 + .../C/I4/TSH8KKCS43TCODM31DOIUW.uasset | 3 + .../C/K7/V3JU3P5ZRXFYENW57IIG1D.uasset | 3 + .../C/L1/ZA2813KC1YP1BIMT1GG1KP.uasset | 3 + .../C/LE/1ZFCHXKMKLRSGYL7KQJRSK.uasset | 3 - .../C/M8/YWCAQ6BYG86LU91BI8I3NE.uasset | 3 - .../C/OO/87SHT15KZKSZH513Y849XG.uasset | 3 - .../C/OZ/MOTLUKCNZWLDTYVK6AC0FX.uasset | 3 - .../C/QJ/4Q7KVJBJOIB5X8941E78YH.uasset | 3 - .../C/R7/3ST21RZMEGF5L4UKDNIR2Q.uasset | 3 + .../C/RL/KYTTMGQDU7CUSE270SPQY3.uasset | 3 + .../C/TI/X0J5SFQ7GOY2PNYP1X5X8I.uasset | 3 - .../C/TS/EVU4QS27PH6VB4RK5IE93U.uasset | 3 - .../C/UH/C9IX3H1G2QUBRR43A5X3FN.uasset | 3 - .../C/UW/LIJF7IJPELB5TFN00YB4TF.uasset | 3 + .../C/UX/CRGMH7SD0RNIMQ1JC1K1AH.uasset | 3 + .../C/WB/DNWCVVCS29HEG13R7TZDYH.uasset | 3 + .../C/WB/M7N4R7EG8UQPXY4DRG7CZ8.uasset | 3 + .../C/YP/5WHMJXQA1FADXMGRXSPKTW.uasset | 3 - .../C/ZT/9VSFSV4JTL32KLD89DRYAT.uasset | 3 + .../D/4R/G547I8ZA9I5MMJN4RBWHBO.uasset | 3 - .../D/65/0BBYSKGOJNIAIMVR5TMW0O.uasset | 3 - .../D/6R/SYP3GG61BVL4548UAPXY3E.uasset | 3 + .../D/71/6V3NSL65O4UB4AEALYXK9U.uasset | 3 + .../D/AO/9VCSTY99K3SAVXV6D0W6O1.uasset | 3 - .../D/BR/LP5054E0FLADXWTXY85BUJ.uasset | 3 + .../D/C2/6PV07IVBY302AX590QNZO2.uasset | 3 - .../D/EN/LSDA0RMWCCD1EAD3V3Q4JC.uasset | 3 + .../D/GN/FA8GIWB4CEFHJKYT5F1LWZ.uasset | 3 - .../D/GY/X2Z3CNM21SLS14CVU2CZGK.uasset | 3 - .../D/H7/09WTJNLIJP0R37AHEWXYZO.uasset | 3 + .../D/JI/2ST4NAF3ZWO12RO6IYU5IV.uasset | 3 - .../D/JX/FYKKXGI5VSYGFIMCB9OE16.uasset | 3 + .../D/KF/3UAFL9UAGLR2X101MSCWLE.uasset | 3 + .../D/KJ/IWYGJ4M7VKN1RD8GV1TE3C.uasset | 3 - .../D/LE/PLH0358QNU0UKC0LT2LEXH.uasset | 3 + .../D/LO/Q0X9M7NSVHGFCKZDLQJ6GI.uasset | 3 + .../D/ON/LOI8T5JKST5K7EBBZSA0NE.uasset | 3 - .../D/OQ/SFTMLIENN15HSGE7PFDJZA.uasset | 3 - .../D/P4/A8NOXWQ9FZPGMBBBE0K5J7.uasset | 3 - .../D/PI/QD4IWMSY3U51Y409ORSVTK.uasset | 3 + .../D/PV/MXCO0Q7W0WKONGVN5Q0AVS.uasset | 3 - .../D/R4/GAYJTFT035I45P13MQR946.uasset | 3 - .../D/RZ/VXWM5D8XJHZ4NODRWXAV54.uasset | 3 - .../D/SD/6NA2Q4KB5B1K0UGWUVYTN3.uasset | 3 - .../D/SF/5NLUHQFOFB3QOK8FMIH0FY.uasset | 3 - .../D/TB/UHKVDUSD3Y7RSC0PZ5N6JK.uasset | 3 + .../D/U2/OLDP43U4LZ5KRJ3YV327ST.uasset | 3 - .../D/UJ/0SQM7AV7SFSACGG12P95S1.uasset | 3 + .../D/UW/N4S9225KOFWGLCH9LIE0KG.uasset | 3 + .../D/VG/RSL2SGSH77ZCCHVA4H7FC8.uasset | 3 - .../D/VR/HAY861L1DOI6Z3SAKICJRH.uasset | 3 + .../D/WQ/P9SSD1OX2PT9D5D65M2B98.uasset | 3 - .../D/XP/RNTPH0S82BDB73JRRVTV42.uasset | 3 + .../D/ZR/HGB4SE6UUB51ECDK7J5SGL.uasset | 3 - .../D/ZZ/UP9IE8DIEBW8TSNIOCP5FP.uasset | 3 - .../E/1D/J00D9ORY19HSGMZVRR7JUX.uasset | 3 + .../E/1J/6YUCPJ5LQJOFH4FH9OGKZX.uasset | 3 - .../E/2I/SXU163XLYKHR0KBXKVVRGH.uasset | 3 + .../E/2Z/K8BXIMLBPAGXF37KY076BT.uasset | 3 + .../E/3X/HC4BFAXBBL7F7YYCPIB44H.uasset | 3 + .../E/4L/8HSJ5OH6C4KXHJAJ41JJP5.uasset | 3 + .../E/5N/118V3AIQVBMSNL2Y1NH534.uasset | 3 - .../E/75/GDDVDPFXOY7WFNZKSFDPQA.uasset | 3 - .../E/8D/WCUB0TN2H9PCHR2U9IMGIM.uasset | 3 - .../E/9E/FPJI70PVMFQZROE6J13ML7.uasset | 3 - .../E/9K/SFO2PWPEK3NO1KO4D2ONM8.uasset | 3 + .../E/AI/TOE74WPWNDAMXLREO52IGQ.uasset | 3 - .../E/E3/3ATZ5XNWBEAJMTXOI1ZFPN.uasset | 3 - .../E/E4/B7DCHXC6R7W31R68PK49E0.uasset | 3 - .../E/EF/L6CA3JY56X88KCUPLAVOXN.uasset | 3 - .../E/FR/FCDZYHS1QL0EXQ6H4SKGYD.uasset | 3 + .../E/GO/VF29J51ZJ7MIKVB5TSU5LC.uasset | 3 + .../E/GW/ZPBUBNNCZF5SW55N0E4UTE.uasset | 3 - .../E/H4/6D8ZQ5MF1Q6VHULCQY3JA9.uasset | 3 + .../E/HK/DW4VB7S95VCKYXZWF5IYH0.uasset | 3 - .../E/IW/3DDF8C30JKHPDBZ327FYBN.uasset | 3 + .../E/J4/Y1OMBLG7OEPJSDVKHPT2AO.uasset | 3 + .../E/JO/X8WI9D3VFQGMT92EPSCZJU.uasset | 3 + .../E/N4/XXMKU4DVHCWV5LJMHEDBY2.uasset | 3 + .../E/N5/UMWR4YMT4VTGL7Q3QGFGRM.uasset | 3 + .../E/P0/2NOC258EKWCUTPG6QP72GR.uasset | 3 - .../E/S2/GFB844AAQOQCS965ABI3I8.uasset | 3 + .../E/SG/9JH6F4EBMYCPQMV0LVCX9U.uasset | 3 - .../E/UF/775YWXL2UHEVD91H1R3RAA.uasset | 3 + .../E/UG/JXH22IS3Z4C4FAA32HSLSF.uasset | 3 - .../E/VT/CK7I7U356L85MV1887BBM3.uasset | 3 + .../E/XL/8JS8O72BPJR0WYUGN62PEV.uasset | 3 - .../E/Z0/F1VET9D1CSBBUJZ3OV1P1Q.uasset | 3 - .../E/ZZ/K0E435DKI3672ACVI5SFZ1.uasset | 3 + .../F/1R/2QY3Q1S3PRTTEE63BKUNOP.uasset | 3 - .../F/22/NQ5Q4MPOJ5ENRNOXOCG1AG.uasset | 3 - .../F/3J/E5U0AZWSBF02APZHG4SV1B.uasset | 3 - .../F/3M/VO4CT3T2U48G60VIN0R0ZI.uasset | 3 - .../F/3X/6EW4K63PEKRO6GIKJX3BL4.uasset | 3 + .../F/54/YBPKQ2B1D4PMBEWV1QHYG9.uasset | 3 + Docs/Decisions.md | 24 + Docs/README.md | 1 + Docs/Terrain-Next.md | 447 ++++++++++ Docs/Terrain.md | 738 ++++++++++++++++ Docs/Worklog.md | 193 ++++- HouseForge_01.png | 3 + RawContent/World/B0_baseline/geology_flow.png | 3 + .../World/B0_baseline/geology_height.png | 3 + RawContent/World/B0_baseline/preview.png | 3 + .../World/B0_baseline/preview_detail.png | 3 + RawContent/World/B0_baseline/thumb.png | 3 + RawContent/World/B1_uplift/geology_flow.png | 3 + RawContent/World/B1_uplift/geology_height.png | 3 + RawContent/World/B1_uplift/meta.json | 306 +++++++ RawContent/World/B1_uplift/preview.png | 3 + RawContent/World/B1_uplift/preview_detail.png | 3 + RawContent/World/B1_uplift/thumb.png | 3 + RawContent/World/B2_jitter/geology_flow.png | 3 + RawContent/World/B2_jitter/geology_height.png | 3 + RawContent/World/B2_jitter/meta.json | 306 +++++++ RawContent/World/B2_jitter/preview.png | 3 + RawContent/World/B2_jitter/preview_detail.png | 3 + RawContent/World/B2_jitter/thumb.png | 3 + RawContent/World/B3_critarea/geology_flow.png | 3 + .../World/B3_critarea/geology_height.png | 3 + RawContent/World/B3_critarea/meta.json | 311 +++++++ RawContent/World/B3_critarea/preview.png | 3 + .../World/B3_critarea/preview_detail.png | 3 + RawContent/World/B3_critarea/thumb.png | 3 + .../World/B4_nonlinear/geology_flow.png | 3 + .../World/B4_nonlinear/geology_height.png | 3 + RawContent/World/B4_nonlinear/meta.json | 304 +++++++ RawContent/World/B4_nonlinear/preview.png | 3 + .../World/B4_nonlinear/preview_detail.png | 3 + RawContent/World/B4_nonlinear/thumb.png | 3 + RawContent/World/B5_fixed/geology_flow.png | 3 + RawContent/World/B5_fixed/geology_height.png | 3 + RawContent/World/B5_fixed/meta.json | 309 +++++++ RawContent/World/B5_fixed/preview.png | 3 + RawContent/World/B5_fixed/preview_detail.png | 3 + RawContent/World/B5_fixed/thumb.png | 3 + RawContent/World/B6_clamped/geology_flow.png | 3 + .../World/B6_clamped/geology_height.png | 3 + RawContent/World/B6_clamped/meta.json | 309 +++++++ RawContent/World/B6_clamped/preview.png | 3 + .../World/B6_clamped/preview_detail.png | 3 + RawContent/World/B6_clamped/thumb.png | 3 + RawContent/World/Cliffs/geology_flow.png | 3 + RawContent/World/Cliffs/geology_height.png | 3 + RawContent/World/Cliffs/map_basins.png | 3 + RawContent/World/Cliffs/map_coast.png | 3 + RawContent/World/Cliffs/map_erodibility.png | 3 + RawContent/World/Cliffs/map_exposure.png | 3 + RawContent/World/Cliffs/map_flow.png | 3 + RawContent/World/Cliffs/map_relief.png | 3 + RawContent/World/Cliffs/map_slope.png | 3 + .../World/Cliffs/map_uplift.png | 4 +- RawContent/World/Cliffs/meta.json | 354 ++++++++ RawContent/World/Cliffs/preview.png | 3 + RawContent/World/Cliffs/preview_detail.png | 3 + RawContent/World/Cliffs/thumb.png | 3 + RawContent/World/Coast1/geology_flow.png | 3 + RawContent/World/Coast1/geology_height.png | 3 + RawContent/World/Coast1/map_basins.png | 3 + RawContent/World/Coast1/map_coast.png | 3 + RawContent/World/Coast1/map_erodibility.png | 3 + RawContent/World/Coast1/map_exposure.png | 3 + RawContent/World/Coast1/map_flow.png | 3 + RawContent/World/Coast1/map_relief.png | 3 + RawContent/World/Coast1/map_slope.png | 3 + RawContent/World/Coast1/map_uplift.png | 3 + RawContent/World/Coast1/meta.json | 348 ++++++++ RawContent/World/Coast1/preview.png | 3 + RawContent/World/Coast1/preview_detail.png | 3 + RawContent/World/Coast1/thumb.png | 3 + RawContent/World/Full/geology_flow.png | 3 + RawContent/World/Full/geology_height.png | 3 + RawContent/World/Full/map_basins.png | 3 + RawContent/World/Full/map_coast.png | 3 + RawContent/World/Full/map_erodibility.png | 3 + RawContent/World/Full/map_exposure.png | 3 + RawContent/World/Full/map_flow.png | 3 + RawContent/World/Full/map_relief.png | 3 + RawContent/World/Full/map_slope.png | 3 + RawContent/World/Full/map_uplift.png | 3 + RawContent/World/Full/meta.json | 348 ++++++++ RawContent/World/Full/preview.png | 3 + RawContent/World/Full/preview_detail.png | 3 + RawContent/World/Full/thumb.png | 3 + .../World/Heightmaps/L_World_Base_Layer.png | 4 +- .../World/Heightmaps/L_World_Curvature.png | 3 + .../World/Heightmaps/L_World_Deposit.png | 3 + RawContent/World/Heightmaps/L_World_Flow.png | 3 + .../World/Heightmaps/L_World_Height.png | 4 +- .../World/Heightmaps/L_World_Layer_02.png | 4 +- .../World/Heightmaps/L_World_Layer_03.png | 4 +- RawContent/World/Heightmaps/L_World_Wear.png | 3 + RawContent/World/P1/geology_flow.png | 3 + RawContent/World/P1/geology_height.png | 3 + RawContent/World/P1/meta.json | 279 ++++++ RawContent/World/P1/preview.png | 3 + RawContent/World/P1/preview_detail.png | 3 + RawContent/World/P1/thumb.png | 3 + RawContent/World/P2/geology_flow.png | 3 + RawContent/World/P2/geology_height.png | 3 + RawContent/World/P2/meta.json | 279 ++++++ RawContent/World/P2/preview.png | 3 + RawContent/World/P2/preview_detail.png | 3 + RawContent/World/P2/thumb.png | 3 + RawContent/World/Preview0/geology_flow.png | 3 + RawContent/World/Preview0/geology_height.png | 3 + RawContent/World/Preview0/meta.json | 264 ++++++ RawContent/World/Preview0/preview.png | 3 + RawContent/World/Preview0/preview_detail.png | 3 + RawContent/World/Preview0/thumb.png | 3 + RawContent/World/PreviewA/geology_flow.png | 3 + RawContent/World/PreviewA/geology_height.png | 3 + RawContent/World/PreviewA/meta.json | 279 ++++++ RawContent/World/PreviewA/preview.png | 3 + RawContent/World/PreviewA/thumb.png | 3 + RawContent/World/PreviewB/geology_flow.png | 3 + RawContent/World/PreviewB/geology_height.png | 3 + RawContent/World/PreviewB/meta.json | 279 ++++++ RawContent/World/PreviewB/preview.png | 3 + RawContent/World/PreviewB/thumb.png | 3 + RawContent/World/PreviewC/geology_flow.png | 3 + RawContent/World/PreviewC/geology_height.png | 3 + RawContent/World/PreviewC/meta.json | 279 ++++++ RawContent/World/PreviewC/preview.png | 3 + RawContent/World/PreviewC/thumb.png | 3 + RawContent/World/PreviewD/geology_flow.png | 3 + RawContent/World/PreviewD/geology_height.png | 3 + RawContent/World/PreviewD/meta.json | 279 ++++++ RawContent/World/PreviewD/preview.png | 3 + RawContent/World/PreviewD/thumb.png | 3 + RawContent/World/R1/geology_flow.png | 3 + RawContent/World/R1/geology_height.png | 3 + RawContent/World/R1/meta.json | 279 ++++++ RawContent/World/R1/preview.png | 3 + RawContent/World/R1/preview_detail.png | 3 + RawContent/World/R1/thumb.png | 3 + RawContent/World/R2/geology_flow.png | 3 + RawContent/World/R2/geology_height.png | 3 + RawContent/World/R2/meta.json | 284 ++++++ RawContent/World/R2/preview.png | 3 + RawContent/World/R2/preview_detail.png | 3 + RawContent/World/R2/thumb.png | 3 + RawContent/World/R3/geology_flow.png | 3 + RawContent/World/R3/geology_height.png | 3 + RawContent/World/R3/meta.json | 284 ++++++ RawContent/World/R3/preview.png | 3 + RawContent/World/R3/preview_detail.png | 3 + RawContent/World/R3/thumb.png | 3 + RawContent/World/README.md | 116 +++ RawContent/World/S1/geology_flow.png | 3 + RawContent/World/S1/geology_height.png | 3 + RawContent/World/S1/meta.json | 280 ++++++ RawContent/World/S1/preview.png | 3 + RawContent/World/S1/preview_detail.png | 3 + RawContent/World/S1/thumb.png | 3 + RawContent/World/S2/geology_flow.png | 3 + RawContent/World/S2/geology_height.png | 3 + RawContent/World/S2/meta.json | 280 ++++++ RawContent/World/S2/preview.png | 3 + RawContent/World/S2/preview_detail.png | 3 + RawContent/World/S2/thumb.png | 3 + RawContent/World/S3/geology_flow.png | 3 + RawContent/World/S3/geology_height.png | 3 + RawContent/World/S3/meta.json | 280 ++++++ RawContent/World/S3/preview.png | 3 + RawContent/World/S3/preview_detail.png | 3 + RawContent/World/S3/thumb.png | 3 + RawContent/World/Seed_24146/geology_flow.png | 3 + .../World/Seed_24146/geology_height.png | 3 + RawContent/World/Seed_24146/map_basins.png | 3 + RawContent/World/Seed_24146/map_coast.png | 3 + .../World/Seed_24146/map_erodibility.png | 3 + RawContent/World/Seed_24146/map_exposure.png | 3 + RawContent/World/Seed_24146/map_flow.png | 3 + RawContent/World/Seed_24146/map_relief.png | 3 + RawContent/World/Seed_24146/map_slope.png | 3 + RawContent/World/Seed_24146/map_uplift.png | 3 + RawContent/World/Seed_24146/meta.json | 354 ++++++++ RawContent/World/Seed_24146/preview.png | 3 + .../World/Seed_24146/preview_detail.png | 3 + RawContent/World/Seed_24146/thumb.png | 3 + RawContent/World/Seed_36529/geology_flow.png | 3 + .../World/Seed_36529/geology_height.png | 3 + RawContent/World/Seed_36529/map_basins.png | 3 + RawContent/World/Seed_36529/map_coast.png | 3 + .../World/Seed_36529/map_erodibility.png | 3 + RawContent/World/Seed_36529/map_exposure.png | 3 + RawContent/World/Seed_36529/map_flow.png | 3 + RawContent/World/Seed_36529/map_relief.png | 3 + RawContent/World/Seed_36529/map_slope.png | 3 + RawContent/World/Seed_36529/map_uplift.png | 3 + RawContent/World/Seed_36529/meta.json | 354 ++++++++ RawContent/World/Seed_36529/preview.png | 3 + .../World/Seed_36529/preview_detail.png | 3 + RawContent/World/Seed_36529/thumb.png | 3 + RawContent/World/Seed_5365/geology_flow.png | 3 + RawContent/World/Seed_5365/geology_height.png | 3 + RawContent/World/Seed_5365/map_basins.png | 3 + RawContent/World/Seed_5365/map_coast.png | 3 + .../World/Seed_5365/map_erodibility.png | 3 + RawContent/World/Seed_5365/map_exposure.png | 3 + RawContent/World/Seed_5365/map_flow.png | 3 + RawContent/World/Seed_5365/map_relief.png | 3 + RawContent/World/Seed_5365/map_slope.png | 3 + RawContent/World/Seed_5365/map_uplift.png | 3 + RawContent/World/Seed_5365/meta.json | 364 ++++++++ RawContent/World/Seed_5365/preview.png | 3 + RawContent/World/Seed_5365/preview_detail.png | 3 + RawContent/World/Seed_5365/thumb.png | 3 + RawContent/World/Seed_67914/geology_flow.png | 3 + .../World/Seed_67914/geology_height.png | 3 + RawContent/World/Seed_67914/map_basins.png | 3 + RawContent/World/Seed_67914/map_coast.png | 3 + .../World/Seed_67914/map_erodibility.png | 3 + RawContent/World/Seed_67914/map_exposure.png | 3 + RawContent/World/Seed_67914/map_flow.png | 3 + RawContent/World/Seed_67914/map_relief.png | 3 + RawContent/World/Seed_67914/map_slope.png | 3 + RawContent/World/Seed_67914/map_uplift.png | 3 + RawContent/World/Seed_67914/meta.json | 349 ++++++++ RawContent/World/Seed_67914/preview.png | 3 + .../World/Seed_67914/preview_detail.png | 3 + RawContent/World/Seed_67914/thumb.png | 3 + RawContent/World/Seed_9342/geology_flow.png | 3 + RawContent/World/Seed_9342/geology_height.png | 3 + RawContent/World/Seed_9342/map_basins.png | 3 + .../World/Seed_9342/map_erodibility.png | 3 + RawContent/World/Seed_9342/map_flow.png | 3 + RawContent/World/Seed_9342/map_relief.png | 3 + RawContent/World/Seed_9342/map_slope.png | 3 + RawContent/World/Seed_9342/map_uplift.png | 3 + RawContent/World/Seed_9342/meta.json | 309 +++++++ RawContent/World/Seed_9342/preview.png | 3 + RawContent/World/Seed_9342/preview_detail.png | 3 + RawContent/World/Seed_9342/thumb.png | 3 + RawContent/World/T1/geology_flow.png | 3 + RawContent/World/T1/geology_height.png | 3 + RawContent/World/T1/meta.json | 284 ++++++ RawContent/World/T1/preview.png | 3 + RawContent/World/T1/preview_detail.png | 3 + RawContent/World/T1/thumb.png | 3 + RawContent/World/T2/geology_flow.png | 3 + RawContent/World/T2/geology_height.png | 3 + RawContent/World/T2/meta.json | 279 ++++++ RawContent/World/T2/preview.png | 3 + RawContent/World/T2/preview_detail.png | 3 + RawContent/World/T2/thumb.png | 3 + RawContent/World/T3/geology_flow.png | 3 + RawContent/World/T3/geology_height.png | 3 + RawContent/World/T3/meta.json | 284 ++++++ RawContent/World/T3/preview.png | 3 + RawContent/World/T3/preview_detail.png | 3 + RawContent/World/T3/thumb.png | 3 + RawContent/World/World.json | 33 + Salty.uproject | 4 + Scripts/Authoring/create_world.py | 280 ++++-- Scripts/Authoring/dump_level.py | 160 ++++ Scripts/Authoring/generate_heightmap.py | 287 ++++--- Scripts/Authoring/heightmap_erosion.py | 251 ++++++ Scripts/Authoring/heightmap_io.py | 184 ++++ Scripts/Authoring/heightmap_noise.py | 167 ++++ Scripts/Authoring/world_manifest.py | 129 +++ Scripts/build-terrain.sh | 29 + .../Authoring/LandscapeAuthoringLibrary.cpp | 16 + Source/SaltyEditor/SaltyEditor.Build.cs | 3 +- Tools/Terrain/cmd/terrain/main.go | 617 +++++++++++++ Tools/Terrain/internal/check/check_test.go | 138 +++ Tools/Terrain/internal/check/margin_test.go | 96 +++ Tools/Terrain/internal/check/talus_test.go | 86 ++ Tools/Terrain/internal/coast/coast.go | 812 ++++++++++++++++++ Tools/Terrain/internal/coast/coast_test.go | 351 ++++++++ Tools/Terrain/internal/coast/distance.go | 200 +++++ Tools/Terrain/internal/field/datamap.go | 236 +++++ Tools/Terrain/internal/field/field.go | 201 +++++ Tools/Terrain/internal/field/png.go | 195 +++++ Tools/Terrain/internal/field/preview.go | 259 ++++++ Tools/Terrain/internal/field/resample.go | 182 ++++ Tools/Terrain/internal/fluvial/bucketpq.go | 79 ++ Tools/Terrain/internal/fluvial/fluvial.go | 512 +++++++++++ Tools/Terrain/internal/fluvial/hillslope.go | 187 ++++ .../internal/fluvial/hillslope_test.go | 239 ++++++ Tools/Terrain/internal/fluvial/jitter.go | 36 + Tools/Terrain/internal/fluvial/repose.go | 74 ++ Tools/Terrain/internal/fluvial/repose_test.go | 50 ++ Tools/Terrain/internal/manifest/manifest.go | 546 ++++++++++++ Tools/Terrain/internal/noise/noise.go | 233 +++++ Tools/Terrain/internal/stats/stats.go | 474 ++++++++++ Tools/Terrain/internal/thermal/thermal.go | 136 +++ .../Terrain/internal/thermal/thermal_test.go | 73 ++ Tools/Terrain/internal/uplift/uplift.go | 482 +++++++++++ 2065 files changed, 23664 insertions(+), 1011 deletions(-) create mode 100644 .claude/settings.json create mode 100644 Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_01.uasset create mode 100644 Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_02.uasset create mode 100644 Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_03.uasset create mode 100644 Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_01.uasset create mode 100644 Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_02.uasset create mode 100644 Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_03.uasset create mode 100644 Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_01.uasset create mode 100644 Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_02.uasset create mode 100644 Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_03.uasset create mode 100644 Content/Elite_RockyMeadows/Maps/Rocky_Meadows_01.umap create mode 100644 Content/Elite_RockyMeadows/Maps/Rocky_Meadows_02.umap create mode 100644 Content/Elite_RockyMeadows/Maps/Rocky_Meadows_03.umap create mode 100644 Content/Elite_RockyMeadows/Materials/Light_Material/M_Cloud_Shadows.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Light_Material/M_Cloud_Shadows_Inst02.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Light_Material/Material_Function/Panner.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/M_Landscape_Main.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/M_Landscape_Main_Inst_Rocky.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/M_Landscape_Main_Inst_RockyMeadows02.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Material_Functions/Base_Layer_function.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Material_Functions/Layer_02_function.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Material_Functions/Layer_03_function.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Material_Layers/Base_Layer_LayerInfo.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Material_Layers/Layer_02_LayerInfo.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Material_Layers/Layer_03_LayerInfo.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Inst_RockyMeadows.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Inst_RockyMeadows_Sunset.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Main.uasset create mode 100644 Content/Elite_RockyMeadows/Materials/Skybox/Skybox_Mesh.uasset create mode 100644 Content/Elite_RockyMeadows/Textures/Skies/T_Sky_RockyMeadows.uasset create mode 100644 Content/Elite_RockyMeadows/Textures/T_Cloud_Shadows_Tex.uasset create mode 100644 Content/Elite_RockyMeadows/Textures/T_Grass_Color_02.uasset create mode 100644 Content/Elite_RockyMeadows/Textures/T_Grass_normal.uasset create mode 100644 Content/Elite_RockyMeadows/Textures/T_Rock_Base_Color.uasset create mode 100644 Content/Elite_RockyMeadows/Textures/T_Rock_Base_Normal.uasset create mode 100644 Content/Elite_RockyMeadows/Textures/T_Rock_High_Color.uasset create mode 100644 Content/Elite_RockyMeadows/Textures/T_Rock_Shade_Variation.uasset create mode 100644 Content/HouseForge_01/Levels/Showcase.umap create mode 100644 Content/HouseForge_01/Materials/MI_Forge.uasset create mode 100644 Content/HouseForge_01/Materials/MM_SolidBase.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_MetalBase.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_Ceiling.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_DoorNWindows.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_Doorway.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_Foundation.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_Pillar.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_Railings.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_Ramp.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_Roof.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_RoofEnd.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_Stairs.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_StairsRailings.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_Wall.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_Wall_Tri.uasset create mode 100644 Content/HouseForge_01/Materials/Metal/MI_Metal_Window.uasset create mode 100644 Content/HouseForge_01/Materials/Primitive/MI_PrimitiveWood.uasset create mode 100644 Content/HouseForge_01/Materials/Primitive/MI_Rope.uasset create mode 100644 Content/HouseForge_01/Materials/Primitive/MI_Thatch.uasset create mode 100644 Content/HouseForge_01/Materials/Stone/MI_Grout.uasset create mode 100644 Content/HouseForge_01/Materials/Stone/MI_RockBits.uasset create mode 100644 Content/HouseForge_01/Materials/Stone/MI_Rocks.uasset create mode 100644 Content/HouseForge_01/Materials/Stone/MI_Rocks_Doorway.uasset create mode 100644 Content/HouseForge_01/Materials/Stone/MI_Stone_Stairs.uasset create mode 100644 Content/HouseForge_01/Materials/Wood/MI_MetalBits.uasset create mode 100644 Content/HouseForge_01/Materials/Wood/MI_MetalKnob.uasset create mode 100644 Content/HouseForge_01/Materials/Wood/MI_Wood.uasset create mode 100644 Content/HouseForge_01/Materials/Wood/MI_Wood_Burnt.uasset create mode 100644 Content/HouseForge_01/Materials/Wood/MI_Wood_Paint.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Ceiling.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Ceiling_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Door.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Middle1.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Middle2.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Side.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Doorway.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_FenceFoundations.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Foundation.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Foundation_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Pillar.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Railings.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp_Double.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp_Half.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofCorner_In.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofCorner_Out.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofOverhang.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_L.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_L_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_R.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_R_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_Tri_Inv.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_StairsRailings.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Double.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Half.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Railing_Long.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Railing_Short.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_WallWindow.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_WallWindow_Large.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_Tri_L.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_Tri_R.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_V2_Offset.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_WindowWing.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Window_Closed.uasset create mode 100644 Content/HouseForge_01/Meshes/Metal/SM_Metal_Window_Open.uasset create mode 100644 Content/HouseForge_01/Meshes/Misc/SM_Forge.uasset create mode 100644 Content/HouseForge_01/Meshes/Misc/SM_Rug_01.uasset create mode 100644 Content/HouseForge_01/Meshes/Misc/SM_Rug_01B.uasset create mode 100644 Content/HouseForge_01/Meshes/Misc/SM_Rug_02.uasset create mode 100644 Content/HouseForge_01/Meshes/Misc/SM_Rug_02B.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Border.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ceiling.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ceiling_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Door.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Doorway.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_FenceFoundation.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Foundation.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Foundation_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Pillar_01.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Pillar_02.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Railings.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Railings_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp_Double.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp_Half.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_In.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_In_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_Out.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_Out_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_L.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_L_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_R.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_R_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofOverhang.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofOverhang_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_Inv.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_Inv_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_v2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_StairsRailings.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Double.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Half.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Double.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Double_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Half.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Half_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_01.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_02.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_03.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_WallWindow.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_WallWindow_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_Tri_L.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_Tri_R.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Window.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Door.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Door_Arc.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window_L_Arc.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window_R_Arc.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_StoneRamp_Double.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_StoneRamp_Half.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Border_01.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Border_02.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Ceiling.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Ceiling_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Doorway.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Doorway_Arc.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_FenceFoundation.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Foundation.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Foundation_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Pillar_01.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Pillar_02.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Railings.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Ramp.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofCorner_In.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofCorner_Out.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofOverhang.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_L.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_L_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_R.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_R_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_Tri_Inv.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings_Half.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings_Long.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs_Half.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs_Long.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_Wall.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_WallWindow.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Stone_WallWindow_Arc.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Wall_Tri_L.uasset create mode 100644 Content/HouseForge_01/Meshes/Stone/SM_Wall_Tri_R.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Ceiling.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Ceiling_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Door.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Door_Arc.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Doorway.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Doorway_Arc.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_FenceFoundations.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Foundation.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Foundation_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_01.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_02.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_Arc_01.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_Arc_02.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Railings.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp_Double.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp_Half.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofCorner_In.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofCorner_Out.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_L.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_L_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_R.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_R_V2.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofOverhang.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof_Tri.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof_Tri_Inv.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings_Double.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings_Half.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs_Double.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs_Half.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindow.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindowLarge.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindow_Arc.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall_Tri_L.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall_Tri_R.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Window_L.uasset create mode 100644 Content/HouseForge_01/Meshes/Wood/SM_Wood_Window_R.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_MetalHouse_01.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_MetalHouse_02.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_PrimitiveHouse_01.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_PrimitiveHouse_02.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_PrimitiveHouse_03.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_PrimitiveHouse_04.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_StoneHouse_01.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_StoneHouse_01_Interior.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_StoneHouse_02.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_WoodHouse_01.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_WoodHouse_01_Interior.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_WoodHouse_02.uasset create mode 100644 Content/HouseForge_01/Prefabs/P_WoodHouse_03.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_MetalWall_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_MetalWall_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_MetalWall_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Railings_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Railings_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Railings_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_R.uasset rename Content/{__ExternalActors__/Maps/L_World/1/DK/X97TEV7L04JUQ8ZHV1HEBB.uasset => HouseForge_01/Textures/Metal/T_Metal_RoofEnd_BC.uasset} (81%) create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_RoofEnd_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_RoofEnd_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Roof_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Roof_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Roof_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_R.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Window_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Window_N.uasset create mode 100644 Content/HouseForge_01/Textures/Metal/T_Metal_Window_R.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_N.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_R.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_Forge_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_Forge_N.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_Forge_R.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_Gradient_Tile.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_MetalBits_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_MetalBits_N.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_MetalBits_R.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_NoiseVertex.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_Rope_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_Rope_N.uasset create mode 100644 Content/HouseForge_01/Textures/Misc/T_Rope_R.uasset create mode 100644 Content/HouseForge_01/Textures/Primitive/T_ThatchWall_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Primitive/T_ThatchWall_N.uasset create mode 100644 Content/HouseForge_01/Textures/Primitive/T_ThatchWall_R.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_Grout_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_Grout_R.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_Groutl_N.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_RockBits_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_RockBits_N.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_RockBits_R.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_StoneDoorway_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_StoneDoorway_N.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_StoneDoorway_R.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_StoneStairs_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_StoneStairs_N.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_StoneStairs_R.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_StoneWallRocks_R.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_StoneWall_Rocks_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Stone/T_StoneWall_Rocks_N.uasset create mode 100644 Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_N.uasset create mode 100644 Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_R.uasset create mode 100644 Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_Mask.uasset create mode 100644 Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_N.uasset create mode 100644 Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_R.uasset create mode 100644 Content/HouseForge_01/Textures/Wood/T_Wood_BC.uasset create mode 100644 Content/HouseForge_01/Textures/Wood/T_Wood_Low_R.uasset create mode 100644 Content/HouseForge_01/Textures/Wood/T_Wood_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithAnvil_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithContainerEmissive.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithContainer_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Brasero/MI_Brasero_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Candle/MI_Candle_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Candle/MI_TorchKit_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_CoverPlant_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_HayNoNanite_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_Hay_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_Mushroom_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_TreeBarkPine_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_BottleKit_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FishnMeat_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodBag_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodKit_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodSeed_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_MetalKitPots_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_MetalKitPots_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_MasterBoulder_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_RockStone_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_RockStone_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_StonePatch_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_StonePatch_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingFlag_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingFlag_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingSail_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/ThorHammer/MI_ThorHammer_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/ToolKit/MI_ToolKit_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Water/MI_AleDrink_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_VikingShield_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_WeaponBow_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_WeaponKnife_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_RopeAged_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodBarrel_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCart_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCarvingTrim_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCarvingTrim_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodChest_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodLog_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodLog_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodPlank_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodRough_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodRough_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_Flag_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_Foliage_Master.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_MasterORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_RGBRock_Master.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/BaseLayer/MF_BaseLayerAdjustment.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/BaseLayer/MF_BaseLayerTextures.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_MacroBreaking.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_NormalTweak.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_Translucency.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/RGB_Mask/MF_BaseColorTweak.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/RGB_Mask/MF_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Foliage/SM_Mushroom_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_Hay_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_Hay_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodBeam_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodFence_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformBarrier_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformFloor_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformStairStep_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformStair_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatform_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodSupportCylinder_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01e.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01f.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxBottle_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxLog_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxTool_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxUtencil_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_Brasero_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_FireCamp_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_FireCamp_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_02b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StockageWood_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01e.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01f.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StrawArcheryTarget_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StrawArcheryTarget_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodBench_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodCart_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodCart_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodLightTorch_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodLightTorch_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BlackSmith/Anvil/sm_Anvil_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_02b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_03a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_03b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_04a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_04b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Meat_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Meat_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01e.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01f.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01g.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01h.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitApple_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitBread_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitPumpkins_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitSausage_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_04a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_04b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05e.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06e.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FireCamp_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FireCamp_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FishWoodContainer_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FoodStorage_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FoodStorage_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HammerThor/SM_ThorHammer_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayPiles/SM_HayPiles_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayStorage/SM_HayStorage_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayStorage/SM_HayStorage_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_02b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_03a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_03b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPotFlower_03a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Rope/SM_RopeDebris_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/SignBoard/SM_SignBoard_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/SignBoard/SM_SignBoard_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolFork_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolHammer_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolHatchet_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolShovel_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolTong_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_02b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_02b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_03a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_05a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_ArcheryStorage_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_ArrowSac_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_StrawArcheryTarget_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_WeaponBow_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WickedBasket/SM_WickedBasket_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodAleDrink_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBed/SM_WoodBed_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCage/SM_WoodCage_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCage/SM_WoodCage_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodBench_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodChair_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodStool_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodStool_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChest/SM_WoodChest_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChest/SM_WoodChest_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCrate/SM_WoodCrate_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCrate/SM_WoodCrate_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLadder/SM_WoodLadder_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLadder/SM_WoodLadder_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01c.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01d.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTable/SM_WoodTable_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTable/SM_WoodTable_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTrestles/SM_WoodTrestles_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTrestles/SM_WoodTrestles_02a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStoneWall_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStoneWall_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStone_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStone_01b.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_StonePatch_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_CoverPlant_01a/T_CoverPlant_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_CoverPlant_01a/T_CoverPlant_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrassForest_01a/T_GrassForest_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrassForest_01a/T_GrassForest_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMacro_01a.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMask_01a_M.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMask_01c_M.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_Mud_01a/T_Mud_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_Mud_01a/T_Mud_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_H.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_T.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_MaskRGB_01a/T_MaskRGB_01a_M.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_Mushroom_01a/T_Mushroom_01a_B.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_Mushroom_01a/T_Mushroom_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_RockStones_01a/T_RockStone_01a_M.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_RockStones_01a/T_RockStone_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_StonePatch_01a/T_StonePatch_01a_M.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_StonePatch_01a/T_StonePatch_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_ORM.uasset rename Content/{__ExternalActors__/Maps/L_World/E/I0/8VGGGV3IG6PYE9XB4AJLTN.uasset => HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_A.uasset} (81%) create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_A.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_N.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_ORM.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_ChimneySmoke_MV_01.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_Ember01.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_Fire_MV_01.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/M_Ember02.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/M_SmokeMV_01.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NE_Ember.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NS_ChimneyFlame_01.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NS_Torch_01.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Textures/Fire/T_Fire_MV_01.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Textures/Fire/T_Fire_RA_01.uasset create mode 100644 Content/HouseForge_01/Viking_Village_Props/_FX/TX/T_Cloud_Tile.uasset create mode 100644 Content/Medieval_Weapons/Animations/A-AIM_MF_Down.uasset create mode 100644 Content/Medieval_Weapons/Animations/A-AIM_MF_Down_Neutral.uasset create mode 100644 Content/Medieval_Weapons/Animations/ABP_Bow.uasset create mode 100644 Content/Medieval_Weapons/Animations/ABP_Crossbow.uasset create mode 100644 Content/Medieval_Weapons/Animations/AIM_Offset_Crossbow.uasset create mode 100644 Content/Medieval_Weapons/Animations/AIM_offset_CrossbowShot.uasset create mode 100644 Content/Medieval_Weapons/Animations/A_AIM_MF_BowShot_Center.uasset create mode 100644 Content/Medieval_Weapons/Animations/A_AIM_MF_Crossbow_Shot.uasset create mode 100644 Content/Medieval_Weapons/Animations/A_AIM_MF_Crossbow_UP.uasset create mode 100644 Content/Medieval_Weapons/Animations/A_AIM_MF_Neutral_UP.uasset create mode 100644 Content/Medieval_Weapons/Animations/A_AIM_MF_UP.uasset create mode 100644 Content/Medieval_Weapons/Animations/A_Bow_Idle.uasset create mode 100644 Content/Medieval_Weapons/Animations/A_Crossbow_Idle.uasset create mode 100644 Content/Medieval_Weapons/Animations/A_MF_Idle_BowMode.uasset create mode 100644 Content/Medieval_Weapons/Animations/A_MF_Idle_BowModeLeft.uasset create mode 100644 Content/Medieval_Weapons/Animations/A_MF_Idle_BowRight.uasset create mode 100644 Content/Medieval_Weapons/Animations/A__AIM_MF_Center.uasset create mode 100644 Content/Medieval_Weapons/Animations/A__AIM_MF_Center_NotPulled.uasset create mode 100644 Content/Medieval_Weapons/Animations/A__AIM_MF_Crossbow_Center.uasset create mode 100644 Content/Medieval_Weapons/Animations/A__AIM_MF_Crossbow_Down.uasset create mode 100644 Content/Medieval_Weapons/Animations/A_aim_MF_UP_backup.uasset create mode 100644 Content/Medieval_Weapons/Animations/Aim_Offset_NeutralBow.uasset create mode 100644 Content/Medieval_Weapons/Animations/Aim_Offset_PullingBow.uasset create mode 100644 Content/Medieval_Weapons/Animations/Aim_offset_bow_Shot.uasset create mode 100644 Content/Medieval_Weapons/Animations/BS1D_BowAim.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/BPI_AnimControl.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/BP_LoadedArrow.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/BP_Projectile.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/Input/IA_CameraControls.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/Input/IA_FPSToggle.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/Input/IA_GrabLeft.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/Input/IA_GrabRight.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/Input/IA_Jump.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/Input/IA_LeftMouseDown.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/Input/IA_Movement.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/Input/IA_RightMouseDown.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/Input/IA_Thumbstick.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/Input/InputMappings.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/Input/InputMappingsVR.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_DemoWeapon.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_ResetPlatform.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_ThirdPersonCharacter.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/ThirdPerson/E_WeaponType.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/ThirdPerson/WeaponsGameMode.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/VR/GrabComponent.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/VR/GrabType.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/VR/Haptics/GrabHapticEffect.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/VR/Menu.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/VR/VRGameMode.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/VR/VRInteractionBPI.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/VR/VRPawn.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/VR/VRTeleportVisualizer.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/VR/VR_Weapon.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/VR/WidgetMenu.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/WBP_CrossHair.uasset create mode 100644 Content/Medieval_Weapons/Blueprints/WBP_Hud.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/ABP_Manny.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/ABP_Quinn.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_2handerIdle.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_ClenchedFists.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Idle.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Jump.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Land.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/M_Mannequin.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Manny.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Quinn.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SK_Mannequin.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/PA_Mannequin.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset create mode 100644 Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Blueprints/Blueprint_CeilingLight.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Blueprints/Blueprint_WallSconce.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Materials/M_AssetPlatform.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Basic_Wall.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Brick_Clay_Old.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Ceramic_Tile_Checker.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Chair.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Door.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Frame.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Lamp.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Shelf.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Materials/M_TableRound.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/Floor_400x400.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_AssetPlatform.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_CornerFrame.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Couch.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_DoorFrame.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Lamp_Ceiling.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Lamp_Wall.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_PillarFrame.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_PillarFrame300.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_WindowFrame.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/Shape_QuadPyramid.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_400x200.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_400x400.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_Door_400x300.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_Window_400x300.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Brick_Clay_Old_D.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Brick_Clay_Old_N.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Ceramic_Tile_M.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Ceramic_Tile_N.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Chair_M.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Chair_N.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Door_M.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Door_N.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Frame_M.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Frame_N.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Lamp_M.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Lamp_N.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_MacroVariation.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Perlin_Noise_M.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Rock_Marble_Polished_D.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Shelf_M.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Shelf_N.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_TableRound_M.uasset create mode 100644 Content/Medieval_Weapons/Demo/StarterContent/Textures/T_TableRound_N.uasset create mode 100644 Content/Medieval_Weapons/Levels/Level_Overview.umap create mode 100644 Content/Medieval_Weapons/Levels/Level_WeaponTestVR.umap create mode 100644 Content/Medieval_Weapons/Levels/Level_WeaponsTest.umap create mode 100644 Content/Medieval_Weapons/Levels/Medieval_Weapons_HLOD0_Instancing.uasset create mode 100644 Content/Medieval_Weapons/Materials/Functions/MF_OccludedPixels.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Arrow_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Arrow_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Axe_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Axe_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Bow_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Bow_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Crossbow_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Crossbow_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Dagger_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Dagger_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Mace_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Mace_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_RibbonTrail.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Scythe_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Scythe_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Shield_1_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Shield_1_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Shield_2_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Shield_2_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Shield_3_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Shield_3_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Spear_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Spear_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Staff_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Staff_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Sword_1_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Sword_1_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Sword_2_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Sword_2_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Sword_3_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Sword_3_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Throwing_Axe_01.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/M_Throwing_Axe_02.uasset create mode 100644 Content/Medieval_Weapons/Materials/VOL2/Weapons_Standard_Material.uasset create mode 100644 Content/Medieval_Weapons/Materials/VR/M_DefaultRibbonMaterial_NoGradient.uasset create mode 100644 Content/Medieval_Weapons/Materials/VR/M_TeleportCylinder.uasset create mode 100644 Content/Medieval_Weapons/Materials/VR/M_TeleportNoise.uasset create mode 100644 Content/Medieval_Weapons/Materials/VR/M_VRCursor.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/Ranged/PA_Bow.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/Ranged/PA_Crossbow.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/Ranged/SKM_Bow.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/Ranged/SKM_Crossbow.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/Ranged/SK_Bow.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/Ranged/SM_ProjectileArrowMesh.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Arrow_Var1.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Arrow_Var2.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Axe.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Bow.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Crossbow.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Dagger.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Mace.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Scythe.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_1.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_2.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_3.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Spear.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Staff.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_1.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_2.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_3.uasset create mode 100644 Content/Medieval_Weapons/Meshes/VOL2/SM_ThrowingAxe.uasset create mode 100644 Content/Medieval_Weapons/Textures/UI/T_BowCrosshair.uasset create mode 100644 Content/Medieval_Weapons/Textures/UI/T_BowCrosshairSmall.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Blood_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Blood_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Blood_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Mace01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Mace01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Mace01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Mace02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Mace02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Mace02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_C.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_N.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_ORM.uasset create mode 100644 Content/Medieval_Weapons/Textures/VOL2/T_grad.uasset create mode 100644 Content/Medieval_Weapons/VFX/NPC_VRTemplate.uasset create mode 100644 Content/Medieval_Weapons/VFX/NS_MenuLaser.uasset create mode 100644 Content/Medieval_Weapons/VFX/NS_PlayAreaBounds.uasset create mode 100644 Content/Medieval_Weapons/VFX/NS_TeleportRing.uasset create mode 100644 Content/Medieval_Weapons/VFX/NS_TeleportTrace.uasset create mode 100644 Content/Medieval_Weapons/VFX/P_ArrowTrail.uasset create mode 100644 Content/Medieval_Weapons/VFX/P_Impact.uasset create mode 100644 Content/RPGEnvironmentVFX/DemoMap/L_RPGEnvironmentVFX.umap create mode 100644 Content/RPGEnvironmentVFX/DemoMap/M_DemoFloor.uasset create mode 100644 Content/RPGEnvironmentVFX/DemoMap/RPGEnvironmentVFX.umap create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/MI_CobbleStone.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/MI_CobbleStonePillar.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_Bubbles.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_BurnDecalSword.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_CausticDecal.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_CausticDecalRune.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_DemoCobbleStone.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_HeatDistortion.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_MagicalGlowRays.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSpriteMat.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSubUV.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSubUVLit.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_Sphere.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Materials/M_SpriteHue.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoBottle.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldron.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldronFlame.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldronLiquid.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoChest.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoPotionLiquid.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoSword_1.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoSword_2.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_Grass.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_Plant.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoCauldron.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoChest.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoPotionBottle.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoSword.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Grass.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Plant_1.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Sphere.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Textures/T_Caustics.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Textures/T_CobbleStone.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Textures/T_CobbleStoneNormal.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Textures/T_MagicSealRune.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Textures/T_MistSubUV.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Textures/T_RainbowGradient.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Textures/T_TeleportZone.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Textures/T_TiledFire.uasset create mode 100644 Content/RPGEnvironmentVFX/Essentials/Textures/T_TiledFireNormal.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_Bubbles.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_BurnDecal.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_CauldronLiquid.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_CauldronLiquidFlame.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_Glow.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_HeatDistortion.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_HueParticles.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalGlowRays.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalSeal.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalSealCaustics.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_Mist.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_Particles.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_PotionLiquid.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_Shield.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_Smoke.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Materials/MI_TeleportZone.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_CauldronBlacksmith.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_CauldronPotion.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_ForgeSparks.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_LootChestOpen.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_MagicalGlowRays.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_MagicalSeal.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_PixieTrail.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_PixieTrailRandomColor.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_Plant.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_PlantRandomHue.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_Potion.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_Shield.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/NS_TeleportZone.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/N_CauldronBlacksmith.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/N_CauldronPotion.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/N_ForgeSparks.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/N_LootChestOpen.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/N_MagicalGlowRays.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/N_MagicalSeal.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/N_Plant.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/N_Potion.uasset create mode 100644 Content/RPGEnvironmentVFX/VFX/Niagara/N_Shield.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/16/ZDGLEKLXWB1YMPHYW310VY.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/1N/8Z2LR0IGV1Z3V2QVV7KQDR.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/1V/HCCK0548PNP8DAME66H5BS.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/1X/BXCSIWS66XQNKMAJBV3S1Q.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/34/A4BBQ3C266EUWYDGAMLXI9.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/6I/OEXKS2FM08Z1PLFCUTI95X.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/8J/RAVIB3K2ORZF8M16AXFTU9.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/B0/3VFHJ91BLKVKG2ANLPN6N8.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/D2/XYTZ1GABV2CFMWWQBSL1DP.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/E5/HL8JB0XIQ8V9V6YYEP5X95.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/HG/89Q5UB6F9WHHEF6V0R4T2L.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/HG/KG0KG2B1H1B8R7JXAOF08V.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/IR/MD3DKV16CVTLLZP3D5ERS6.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/J9/67YTTQW016TNVXZVE2UA9W.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/JH/KKGFPPJO1RF3CLF0WCNZF3.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/KJ/HHTRWYX7ISPHVT1YG1AGJK.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/LR/SH2LMFJ25QLL6L7Y4SJLVN.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/NA/F3ANIWSF8B7MMY8ESH7Z4J.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/NQ/2GY7CSYZAN73W9XTSTEUZL.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/NU/31HUX5ESOWHP9ITMZSN4NK.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/OC/L9W7G7TURCTJ3SCS9UWVGX.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/PK/EUNWD9BZDLXMLF4KTFN58Y.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/PV/32JMUQ32M7ST1SVTKMA0IX.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/QQ/KBBB9FRP8VI8X6AFCVR22R.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/RR/9KH7BNCSG76UG1GQIR5AZP.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/T5/59P32JJT0EM2FQGJTK9E5U.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/VI/QGEI048L4R5KE7UTFB45SB.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/W2/TF3NOY2IL637K2KLNZYE07.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/WS/T5JPFOXC3WGCT9OJGY98GK.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/X3/DYCSLID54N77C5318U9CJS.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/0/Z2/Y9VG9ZPA22T6F37NR4TKK8.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/Z3/D5D53GZBVF7COY9HEW3B2N.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/0/ZE/FL7599306SSZF7MMSUP88F.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/00/T1IE8GT94Y7KEJ3HSG41OB.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/08/ZZEGCKOCHHA3ZN6192ZCQ4.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/3C/VG3GK2KGHTFAYJOWVI1DL1.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/4I/KNSOF94H3TPKCVO6KXL19I.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/51/AIQNXYISC8B7NW5PHF87CC.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/54/QZSUMV4ERDPV6E95WDEXVY.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/5V/R277EJ083LW0TUNYURO5LO.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/7L/H9MNKRUG78L2OG8C5X71MK.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/9F/J421427ZI0E9NV2Y6AIDJO.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/AQ/L5L2TZ30AQ63KMU4O4ZTDD.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/BZ/AJVTBKKMPEF1BQSPD4JG5N.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/CG/LZWE6J239FDBB9B8FDYEN1.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/CI/OO1044661EYA8D956LQZ4N.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/D0/1FGO2ZUYZY26GN1622MGEE.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/GN/S7LESFG6UEBDFJVHL8W26Z.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/GS/KG8FONQN16UVOVOT7XMSSH.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/GS/ZZUCGL2TRPEUEBX3RV6CVU.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/HR/1NJ85VHE8YP8DK2E7VIORK.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/HX/8ACQMJRZ9WQIQU8K8I0HN1.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/I3/M8QKEDMTKXJJZYG4CBSNZM.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/IB/BGNYURXN47HRRZJZHCNUDE.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/JC/4WYXV2TEPFRXYA947C5Z0L.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/JY/Y5WGEMZ55SZ9M9OKM7OSER.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/KC/LM8BFFB9WMPZORY3P0UA9E.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/LD/HFOXVKENLXK6WJP1TRS70W.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/M0/9GCOZJXZHOZLVMT2W74CH9.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/MI/GLHLY8MW0JSB9820KQ1UGI.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/N8/UUAKGLFZU90X0DGWV862I2.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/NY/9PZSHNPL3FPFLY3JWC0WJM.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/RO/KDPH881R8E85TC9TRV9869.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/S1/N4SS7Z3B3L791YQV242PRK.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/S3/NCJTK5A88823E478FSE300.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/SG/Y1Z0O137QDQNBWRXCJK8KF.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/SL/P2V16EIZY0OEBA7MBK5X5X.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/UA/19YIISLX0L6FXK9V3NLTQ1.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/UV/7S18Z8DQJDD6EQXYLHF0UX.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/UW/04ZWAJTO4HARCP3BBYE859.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/1/V9/VKF1JFF7F0FLLIQ2GMCH72.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/1/ZD/FYJUVYDJSPJC9PG8ONA3GU.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/0E/48Z5YP5KF767BKXZZ3AEN2.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/1J/G6R9KXL2A5EW5YKY63235X.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/1U/389TX4J83TR5P219YSJCT5.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/30/E4NGLAMKGOVVSSF0G1EX2C.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/59/25PS2IBDKTD52UCRIIMNWS.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/71/69GM63Z46STIVG1813EOFI.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/76/XKOUV2Y5MY7AGO0PQY17QX.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/9N/99L7OEGPRB9O6V6DGH4ZTO.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/CA/D5HC6M3UHXBZ8KBOW4O7D5.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/CN/W6WR0N139DICC7J23VMUCN.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/CY/34LJ3PPLCNIAHUG8MG9QJS.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/D0/546VY73UMJLZP5B73SJJKG.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/DQ/KXPHAMBS9PM3J1I74JTV3K.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/EY/B0K8XSY7O9QVWVQR4VJNKT.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/FW/9S1XDEKUN0YUC64DD5HA82.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/FX/JPQHKG9C6D8FAYUCV7THNI.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/HM/V4O14V4NXIE1HUIA29O7M3.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/JD/MN3QQWBWJFBVRWCZ4O1AJV.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/JU/F10EHDUUF6BOZOGDTTMGE7.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/KR/JBUH3P2OEF1ROWYO2SK8KF.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/M6/P1MLP3CBZLM3J22QOQ8HYD.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/P9/8FOT4UPMJUIYESEFHOJIXB.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/RC/GW9VXWRQZE51QSC5BFWKRX.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/RY/4LZPKRASO1H09H062X1WSF.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/SY/LHUH4NG4TAJTNWIF4IJOZK.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/TQ/WIZY02CHMIRZOKE9K9GZGV.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/UF/U4NYWJZ6KTB9V9HHB12IN1.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/UP/4V4R2HLI7DLPMUBJ4X7KN4.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/UP/G9N6016974PDCWP2C2LVAB.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/V7/4F6WHSF547HZIA38R7NBAJ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/2/V9/QVGO9R2JYAZCK30Z4TBJ4K.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/VB/LLJK8QW3LGXD9APNV1VTWX.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/X0/TQINDYWSJB9X2X7DA8CQ8R.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/YA/G5NOCR0OG35K5L3PVBZTIO.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/YT/NSZLML3OTCCKSLZMKR2LC5.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/ZA/RGVD85AC8GM3VA31D54T61.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/2/ZV/DW86CVFH8L0HB71ZL5PHUO.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/0K/BVS6D27SKY85QGYP1IOK9S.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/38/ADSM5NVOQZOSF5537J0491.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/7C/BPE8ICZAZCQVUICID4C5DG.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/7N/UJFXME5HUOJGQ5SHIP3AVF.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/7W/ZZW2NTM1JYQFZG0KLDKF1R.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/8F/ZKVF3C8JF1TO0TBL0ICF47.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/90/OTPI4SD04TVTAITU60SF5T.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/9P/2D1XN1U8FZX6YMWBEB3UIR.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/AO/S22G236IOLWICHLOCBI38S.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/CD/53IH54IJSKYXGY2FB2K4XI.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/F8/YCVJFM89X50CTHC0YTTYUR.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/H1/KAR4LH61VYA83TM2WN9D6H.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/H2/2JV6ZN2U68S8I81GA3VBYX.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/KE/1BGS0AT5VY8PHPV8SRDX5O.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/KY/UFKQ214ZNZ5KE6NUICNW8H.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/N6/TSGFR0KLLXYVK0GBAIVM09.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/NG/N3L4CQL27ERPS4FHNEOJLI.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/P7/M9EM4PWZ9XH43G61IW0VPR.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/PG/22A06SCPP5R6PE1LDG8M77.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/PO/6YWXXHAA1AL09OWD73XDOU.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/QO/MVRHTX2PMH3F4J7FR4ZEJQ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/UW/Q7UOKMA03GELTE27A2LQ2B.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/W9/V3C1SK3L07778O680SHE6F.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/3/XK/CEJYF62CONN8T0IZ79468S.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/XV/J13ZK29HF771J6VOJYU9UV.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/3/YW/YWRFU2G0OULV6IBC167HZS.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/2B/0LS25MQCLS7DFLQJ7TXUL5.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/2C/YMCX66E1RBZX7RQSYG3JI0.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/2D/NX7BIQXRHJTXOG6W4FJ0TI.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/35/24UB1KXAT16CE7EEGTJFR9.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/3M/KAOYQUBV98FIE974TTK5QO.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/3W/YJOVC3PQP4BE8QA1QO276Y.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/7A/NQ3AH19SYK0W3W2VRLM2U4.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/7G/XYO4SVYZDFH66QMDQRT5QI.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/8F/QXCBAYQJ6CQC3VYBJCTWPG.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/9B/DZ8FYC6MVOTI18W68H36ID.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/B2/NKRR5JV6RL7ZWHE1DWT3L8.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/BE/E73ACGEEHZ1OII6KR3W379.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/CC/B0D3HD9AIJNFEJHLFWYPWP.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/EZ/R7KSSM3JKC4MM37FUHDEB2.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/FA/IRIIGA47XMJDC2DGLC5JWJ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/HS/ZT7WNWBUXBPLQTZQR138UL.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/JJ/GSTQINBFK0SS8LQR31HBSA.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/MC/FH0J0CZ4T7G7IN7UV4RNRN.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/ME/AF18NNK6081SA6DNXS6162.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/NA/XYPZMV1H4BB7LYW0NQZLFC.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/OG/G1IPHV3722ORFFPCJS4V9Z.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/QL/I4PTGRZSY3J6IABTUBK9RR.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/RG/0AH2QUT38HYFI6971Z7C4M.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/RJ/TPFH066L5TBYRPZ3BIRC4N.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/T6/PWCA41HUEQR57FGBNBDQ4V.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/TA/O5T8VEGCEH5XVLX0SRG1IZ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/U4/0FZXV800O4YR4ZO4UCDXY2.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/UA/7HHLYAO5WUWZHDFXVZNWGQ.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/US/XMX2W6RO18T6U7B344FPL7.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/V6/B77WNT3F5D9F8ET0F6PQ28.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/4/VG/A02D32M6ARAMNJ4W2B4CYX.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/WS/O1JKP8PECQ83Y3J65G6DNA.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/4/XS/5R06JMZW47HMC4E8XMC6UF.uasset rename Content/__ExternalActors__/Maps/L_World/{0/O8/A6HKL409UI0D1GHWKHYZ5R.uasset => 4/Y4/TBUDPPMXHL12RG46DVY28W.uasset} (81%) create mode 100644 Content/__ExternalActors__/Maps/L_World/4/Z9/YKTSWJFOPU1JSF6P3DRY0W.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/0W/UYY00IO7PAM2D706TIE0ND.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/32/NDWDHUAOA6RKV1X5RSNNBC.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/37/W7KP0QZ80GRYAE9OO8ONA8.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/3R/RGW6762XY1EUHHLH442VO9.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/5I/FZIRL64X1VOM7GMTO906F2.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/94/B5DVTS35RHDOKIEUPBJVDA.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/A4/4O4LPW1TDGYEKF0UH1VZS7.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/BZ/NYWOPXTEGYSBKKLXTML0XJ.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/CH/V9P7GWRB4DHQNFKKVRMMI3.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/CN/1BL5RSX82BRV1H0C2M3CSF.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/CY/WMG942FM3HRBWNRQHJ76XG.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/CZ/DROAVATVZT3G3YZD26PBWY.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/FF/PPDN7EM3FZWOTSUZTH95U6.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/G1/ADI91H75SKHYFMPOSCWE7L.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/GO/DMG86C0JVUCVA4OWLUVR0E.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/HF/FBK1XNZWDBKHG3UFBGB2I5.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/HN/G97Z3C6FB4OMY418RZYFI2.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/IO/KD84ZZQXDEQTE79VXIAVIW.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/IS/0QG37R75L5J11NMU8V0PQ1.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/M0/3WXMT5RUA12AFJYQAU5YVG.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/M5/J4BR0WTRC2586LBCR66ZT9.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/MC/J5KAIEC3H0874O2BE6T6J0.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/MR/SX6NL1BEG9L9AS24M24JWR.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/NK/DJN1QU28NANFO2Z8GTI6VF.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/PO/7JK0VFH8PBTMJSAKZSJKCR.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/QT/1AVG5JFW3YG1VK0HTRGJ3D.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/RH/UOP743GPZ3VWU1EXL03O12.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/S8/WDF2PNZBW59S7B0EFG030U.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/SG/LL4W9P4XC3WLJD9H2BY5Z6.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/SM/BG88ZSG4A5CH5X5GV58RXI.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/SU/YZSO39OVAMKBLBP6B9641H.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/TZ/R8WHVRJGXELXE5NMKMLGA9.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/V7/ZE8HG5RCWOFK1KKFVZK7UX.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/VM/H9CMP7CZCX2XL88JNNQUNU.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/W4/2YUXSP2WVDL8B8O9X4UWZW.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/WB/89HMKA30WIDNQZGC21T81T.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/5/WN/6UI1P16CEVEYQQYPPR11EL.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/WN/AEGM1GRFJD5MYQ5IHDE4PR.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/XF/LWJL6YHVQHOU5O3NQM1OMX.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/XL/FY5E57ZVWVAHXWN6N0KVFS.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/5/ZX/3CMHX2AJ3BIPCAC0IN2K1G.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/26/0VDK8DVVX04UKUNSIWOEGD.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/30/PIXO28B7DNQOI1MW1G2YZ7.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/46/LQ5XNQ3BBCOOTR61GCBBET.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/58/UZ5FKON81QSS961HGM35D1.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/5A/LUCU1EGBB26RVBL5DSFI10.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/65/ZS9LD0UUM4SM3JLMXZI4WG.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/7Q/OQVAK1LH0N7F2CU9JZ0729.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/84/CF36RYSH670Y8LSFCN18M5.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/8E/SDXKM99222PQWC2MGNQ0RF.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/98/IR6J5NVHL3EL00VUEXYUI9.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/9E/46KPWQE5HZ8PR7NY5RHNUW.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/9V/0NMPODV2U2J34FXI8NC721.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/A6/PYHX20YI006U9TMII4BMWP.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/AA/8IW49FT4UVURBOJN9VR9H8.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/DQ/4TSL5Z2HGIMLWZ8306D0FR.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/E6/LYYIJWANK8LGGNNY25FX7N.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/FH/6TB01KU0YOORGO5G6V73RV.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/G1/S98V4QLJGQ19GXYRITPRKO.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/GM/01VH3PHLRZ81HWXDSTMIZM.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/IJ/7GOXMYOMGPITJ7PFF7I69G.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/KL/PLTYTH8VZ2YCM0138UBFR5.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/L6/LYQXQTRYMED3V701K98TG8.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/LE/827HT1FPK4C93RGF72YA44.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/LT/066ZCG6IN3FNQGQW5N1PW6.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/M9/W78I8R6DXCI1BTA9A80PQL.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/N8/8UXP6SNX06G1CRBPAG2TQC.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/NC/GS4ZYX4ETGSWXASZM0G68W.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/O7/C66BOQOFN0J0JAITMLTG8L.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/OO/1P2V3VQV2GCF9WIINMP5V4.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/P7/IUOM1H8697CSNFMOAS8WA9.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/PF/HKGMBQSW861804ZXU37KDZ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/SR/64MOCRPC5LRUAT6YUR75ZV.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/TJ/YYQRVNE1QITUYL9HLJD8ZL.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/W4/YDVZ4CT672MXJFBO05VZ12.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/6/WC/U1XPK3YBBPJYZLSEY7UMDY.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/WV/HBSETCS62WXFDTP2HDH2H4.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/XU/MS8ZQ338RDCLV0T4YTGEX4.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/6/Y4/21O1IFCNSA6I76X3W8N600.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/1C/BR5YAYSEIPKV59DAMFH6QZ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/21/GBKW6O9GK8RDQLLH15BE33.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/28/3TE4KBRQC1CSG6UWFWSQA4.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/2S/B7QXYI8JL00LNH9HR8FD24.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/36/SNKEE4E0O962ZIAYILUXLJ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/4G/RKMC4QVLDM3SVQHR63TZF6.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/4N/5RDZEJU2IBJ92U0AZKJFLC.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/5C/A367BBRPBYYS1Y0SLCNL47.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/6H/0L4WJMYO3ZVG1U0VHSX67A.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/6L/LTDUSIWB6W2UJ0O5EC3ZMY.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/95/P4LRWGDVHG0PZMBV1A1KGD.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/9M/12X9KOTJACGL1TF3XDTIN5.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/AC/R7DULDX8JBZ40RZWESOO0J.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/AM/ATPLC71KSVD5QF8P1626H4.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/AR/H8LN84RC5GIORGMXMRAX5A.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/C9/9GO46ULSFXYE2E1QCKX3PX.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/G6/2Q80ND8FUBXK6XKYS22G1O.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/GO/U7LDUWDBYH3XN4RMF6990N.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/GR/KI00LQ8F8LA4CW7FL2Y09Q.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/GR/W3LKIYQ4MV3GXZ93BJEDCN.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/GW/UL0JBFAL5314SKKY3XGTHW.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/HS/VAEV98NGVKAA51Z9E02I9F.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/K5/FW5H8ZPGF8HMYGN2CY5W9R.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/M3/ZHQU62OKNCT98VDEB300C3.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/MO/WHJVJZ24Q1YSDDOTH1G9NI.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/P9/28S1NLKGS27UTB3S5CW6DC.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/PR/M8F7ML63TW7O6SE30R640R.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/QD/5RZD3JFLR348JSTCEIYM4E.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/QP/BKXP98WFZ99CWWP2Y2BOI7.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/SU/8124BX7OC8U4YYPZND909B.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/TS/Q5ZQNR7DZDK3OB520Y4ZRC.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/UL/5F1Y0VWYN2HWEAHWM212OI.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/W9/4RAVVMGO73OXLDQX7RFABZ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/7/YP/QJMG2IXL5Q4Q67YH4EH4UO.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/7/ZB/NN945XBCV1VFYOL6JC04T5.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/4H/ZTUX6MLSSXY54EUHZDH9VR.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/78/O2HSR3P3KREPP62OSS69Y7.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/7B/LAGJ2PBZJM2Q4XBM458FN3.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/7F/MZ66SAPNUVYD8BCRFXWBRL.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/9A/S0WO0L0XPT8O2CC602ACHI.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/A7/SIS6Q9RQ547ULLA719R1OT.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/BN/2LSIXSQR6BXEX2V88M04XV.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/BR/1T545UQ9LN1OPEBE6H2T5C.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/DX/7JM07OS46AGRWU9OUXNEMM.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/J8/XWQQBFBAOIJY70H4QGGWJ9.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/JK/8TVHRN7ZA1L5TXAM773MP1.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/MX/A93NGWWDMMGU4KHP6DBUQ3.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/NM/N6XSJ1DZ195HK5PSVAAK17.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/O4/3DSHCLGEVAYYHEA9QBA7RG.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/OU/47JIC2JKEL6R1CKN1AYP12.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/PB/M5WOFOWY53BY7BLGOJRRJZ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/Q4/UG34QP557S9BEWXDZZQ6YF.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/RH/A3XWFRRKGQSUSBUX3UNJEB.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/RO/5DSKIYPDUWYMAZ7B6J8YO6.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/S0/PMZ0M92IOF28YBRWAEGEA1.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/TD/SUD3ENPBM4GWV7MBN4L1RO.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/TM/ERJ7PIWYRFP5SI8XHYPOOM.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/VK/RFE5V0ZZPD8A7FR1N93D2E.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/X2/UKT6ZMA40NZV1C6AEBPDWV.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/XC/E5EO22VWABZKCY7NH9MJYP.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/YE/FT3JXEGWI3WJXSRZ1C1RZN.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/YM/JRGE4QNNF53CW0B6CRD5KK.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/8/ZH/IOQYPFINAV05JRWAQ2IYPS.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/8/ZN/BA3VC3TCNSGVQRSTZY8TMZ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/2M/W15M7UAY0DF57MKNUM9M4I.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/32/GJAYY30UAGBMNZT78KO847.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/51/N1TS9EB9AYS9FJ1NKYFD4A.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/8K/SPMSHCZNXR7ZJJNSPF9G8Y.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/96/V5NCA5V4TFUNSBP76QBNB7.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/9F/B36X9DDGW43X0JDPK06ZVB.uasset rename Content/__ExternalActors__/Maps/L_World/{3/UB/1Y5XSFYOXPHFG9V6X1EYK0.uasset => 9/9F/FG66D5FP9E4YXWESVLTQOF.uasset} (81%) delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/CP/Z3SZBITSVONS0MK8CC0KBP.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/CX/CCMKKQVZHRK8UFJDWU2GDA.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/D0/DZGOSVCUEXEMKMI2NAMGLL.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/EX/707TBR4NV1EBOSZQCPK3SB.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/G4/Y7S9HPDOSI2NGTYGV2YZ22.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/G5/3DQHS6L9TS0EKIVHJJGEZ2.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/HK/KZ1RYWRHQ515KQYTNPKFDH.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/HU/JHZ04PUFX77H9KYIE1GGA5.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/I4/5LQOJZK31FTRCIA5LMQFP7.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/IY/MFSUVMWO7EH0294G3YT1OI.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/J4/TGRL5W3TDKM8XIFJ5L651O.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/J9/W3Y8AJNC55BC4KKRL0YMEB.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/K9/VIUKGUAQKGTX7BCWU3WKNZ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/KF/L0LPNW5K0JOZSHSR185D8V.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/MU/EKTCF0AZ5GZRV49V08TNCT.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/NN/EC0LMIB73OEOBTHZP5USO0.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/P0/HQTZIA8DMRYAPJD4H0USTU.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/P8/69IU1VWPA9JO2RIK96ZA0S.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/P8/UNZ2OILD1JE0G742POVCU4.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/PL/98EJD9C5AGI5U97OQJEW8U.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/PS/J9YXKINK47CTHUFJ9IXH41.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/PV/R12GELMH91GCJB5MQQX315.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/R3/6N7Z6S8OPNBD8J08FM1LUE.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/RW/OI9D6FAEHMFTO6WPB7CMTP.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/TU/ZQWIKCXGDYHNNGN74T0LUI.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/U3/TOSALV5OGOPPTMAT40ACT4.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/U7/L223U228CVF4ZBWP7H9KHF.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/V5/AZBAQPIG2FWPQW1V9DR5W2.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/VD/N93BH2CJU9W5K9CCA7XNL6.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/9/X3/QEITWRSX856BIQQZO6F92G.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/YD/4QPCANLEOKLSUNMJW9AJOW.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/9/ZE/1L8SNS51GKIZWQAIUM6EW9.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/09/LR63KOVD9EKPN1FEMDEUPP.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/1V/E6P0JYKYR433208YQIA2T9.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/2D/JWQZTGIY05ER0UDTZZS9S4.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/2G/10PGRF8HA1S7474U4LB9KP.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/3Q/GZ8OIADOY71IG1XYW1JT05.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/5N/4VRPEQO8ES9AI06A782H0B.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/92/LAC7HH7KAK4NKPSMIKT3UP.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/B4/DDLZ6QSR2Y29DJJR8COATG.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/BI/516AGSIN9HBOAGFGQI4ORP.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/C3/M0TKEHWD0GUKZD1BQSA6J7.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/D8/115HJ145ENUFTMS80FQR8P.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/FX/IQNKRTYWGZFE2WJV4WQMWH.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/GM/KMGPR6Z0LY9Q8ZHOJSNZMT.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/H4/13E9W5MKJJD8V95FVS3GJN.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/HI/BVZH1NFFAXQRI8OBQOT1AZ.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/IS/87JIC28G61WQC5AC1FJYK9.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/J7/LC2UK2NKVW1VS6D8RDL3YY.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/KB/GMC47FOJGQ1V7NW0OZ229N.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/KR/DK061LTQI4W4VG0YQFYHND.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/MO/ZNQN33CZRQDZN02DEHVYLI.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/MR/UYMV9LTN0E9HMU9V4G3MMQ.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/O3/LSBUUT9G2U07T2JDCFC5GH.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/OJ/A4O83FNNW4LQ7SPI5UGMCF.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/PO/FR28L8XXTOYVLNANW4I5VL.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/PP/992BSX0PD9X5W9PZFSG6NQ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/Q0/ZVZYY6QE49W4WH3TAFAPK9.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/Q5/TO8WAOO7568B55FRLSOHP0.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/RG/H761A2I7R0YCTJWFM0ZT2G.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/A/RP/SEJTHFPOXH2OBS4YNNO5IH.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/SH/L8U6JSRYUB6NZR98SDGOLZ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/VW/JM3QORRZOK2G6T8FB7LGUE.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/A/WU/5TE6O6IMUANQ22D1IY4X9T.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/2F/OFMC83MJJYP5EW1F34WYL3.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/3V/1FLY32HF82OQMCLL1EVIHN.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/59/Y0KRX416QNBGNJVUMX9K3C.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/5U/SZ72P7IMAAIAATQZZCQ4ZU.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/5W/8OXKR0B22CE768VIJ906EY.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/61/RQQPPNI8NQMV7L7BUO5QR9.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/7O/CE95OD6AWXBBLHDQXXJKR5.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/8O/LJFVT999CGX7ODV0CVE5WS.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/8V/CO7E3RAVS7R9NUAKCE3J6Q.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/AR/GKL2QJ5AM1BQPA7BYSO6IC.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/B6/N7HV8SLEXSY62ACLQJ4HM3.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/BB/UWSCS5PILVTXJDLCHYSWVV.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/BG/PHJ78JPNTS7OCY5XHA06B5.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/CM/LW2RD04LOTESDZWPWH2X6J.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/DC/VP0SJLY5SPVOQUG3KI4ZVN.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/EB/3SU04MJHA10KE7JUFW1GZK.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/GX/HFU2VWCO470JXW2B42H504.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/HO/ATR77DWL4UWXQ407X32DLW.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/IL/GP5H96P9ARARP3MMF3G7EP.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/L3/ZSPBTLDJO6IMEWZ0NX6WGJ.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/N6/NASU32K7LSVLG486ETDY6N.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/QJ/LI2JFETFF774D9376A6IFG.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/QZ/23XFD6SQEKT8GR4T6EV2AT.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/RN/XBT09D6MXIPU1DXJLHBOY3.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/RO/NEVK07VQKA08S4MHHTHFNC.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/RY/11WN9WD0IYV5SY319LCWRG.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/TR/N6QK2Z48VWP0YLGOKKO6H9.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/UF/74L3CKHVP31ZKNNZJDFZXV.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/VL/68MTBHUAH2COC2LJJSWJFL.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/VL/BLNRCCZU6AX5M9305E22YR.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/VV/G3IYVPRMCA1XBUOZOQHOLA.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/WR/DID3LCLG2S29Z9PMLBZ7NK.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/X4/YI3462QLDUUSZ0YGZSW1N5.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/B/XY/RYIL14VB4ZZNL6V06WDDIC.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/B/YE/UZ4RNMA65OA87WJJBB1LBA.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/21/VOLEHI471XRETUBALM613T.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/2W/2T3CT6T84WQGSH5T0I4OPW.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/2X/N1DL137OB94EHP8HFEAMJS.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/50/0CHG6JLNGWHTEBX4FOIKPI.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/9L/WFF2OFPAWFMPUSZ20GKHKS.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/A4/BICW1T61NA2GT7WFA2EAV4.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/AJ/2D1AJ05ZPW855W38S8GEXP.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/AN/NOHDNXNZBIQWTJ4GOUBFXM.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/CW/00PY5VV9W63G8X867BHD0B.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/D3/2FWWVY7LQ0PZ26IXTN9K7X.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/FT/3AFSXFW9T1I99053ZI24XC.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/G8/QECVMFDIBSZG1EVR0JXBZG.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/I4/TSH8KKCS43TCODM31DOIUW.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/K7/V3JU3P5ZRXFYENW57IIG1D.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/L1/ZA2813KC1YP1BIMT1GG1KP.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/LE/1ZFCHXKMKLRSGYL7KQJRSK.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/M8/YWCAQ6BYG86LU91BI8I3NE.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/OO/87SHT15KZKSZH513Y849XG.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/OZ/MOTLUKCNZWLDTYVK6AC0FX.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/QJ/4Q7KVJBJOIB5X8941E78YH.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/R7/3ST21RZMEGF5L4UKDNIR2Q.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/RL/KYTTMGQDU7CUSE270SPQY3.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/TI/X0J5SFQ7GOY2PNYP1X5X8I.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/TS/EVU4QS27PH6VB4RK5IE93U.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/UH/C9IX3H1G2QUBRR43A5X3FN.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/UW/LIJF7IJPELB5TFN00YB4TF.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/UX/CRGMH7SD0RNIMQ1JC1K1AH.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/WB/DNWCVVCS29HEG13R7TZDYH.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/WB/M7N4R7EG8UQPXY4DRG7CZ8.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/C/YP/5WHMJXQA1FADXMGRXSPKTW.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/C/ZT/9VSFSV4JTL32KLD89DRYAT.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/4R/G547I8ZA9I5MMJN4RBWHBO.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/65/0BBYSKGOJNIAIMVR5TMW0O.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/6R/SYP3GG61BVL4548UAPXY3E.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/71/6V3NSL65O4UB4AEALYXK9U.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/AO/9VCSTY99K3SAVXV6D0W6O1.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/BR/LP5054E0FLADXWTXY85BUJ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/C2/6PV07IVBY302AX590QNZO2.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/EN/LSDA0RMWCCD1EAD3V3Q4JC.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/GN/FA8GIWB4CEFHJKYT5F1LWZ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/GY/X2Z3CNM21SLS14CVU2CZGK.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/H7/09WTJNLIJP0R37AHEWXYZO.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/JI/2ST4NAF3ZWO12RO6IYU5IV.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/JX/FYKKXGI5VSYGFIMCB9OE16.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/KF/3UAFL9UAGLR2X101MSCWLE.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/KJ/IWYGJ4M7VKN1RD8GV1TE3C.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/LE/PLH0358QNU0UKC0LT2LEXH.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/LO/Q0X9M7NSVHGFCKZDLQJ6GI.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/ON/LOI8T5JKST5K7EBBZSA0NE.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/OQ/SFTMLIENN15HSGE7PFDJZA.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/P4/A8NOXWQ9FZPGMBBBE0K5J7.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/PI/QD4IWMSY3U51Y409ORSVTK.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/PV/MXCO0Q7W0WKONGVN5Q0AVS.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/R4/GAYJTFT035I45P13MQR946.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/RZ/VXWM5D8XJHZ4NODRWXAV54.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/SD/6NA2Q4KB5B1K0UGWUVYTN3.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/SF/5NLUHQFOFB3QOK8FMIH0FY.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/TB/UHKVDUSD3Y7RSC0PZ5N6JK.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/U2/OLDP43U4LZ5KRJ3YV327ST.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/UJ/0SQM7AV7SFSACGG12P95S1.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/UW/N4S9225KOFWGLCH9LIE0KG.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/VG/RSL2SGSH77ZCCHVA4H7FC8.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/VR/HAY861L1DOI6Z3SAKICJRH.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/WQ/P9SSD1OX2PT9D5D65M2B98.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/D/XP/RNTPH0S82BDB73JRRVTV42.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/ZR/HGB4SE6UUB51ECDK7J5SGL.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/D/ZZ/UP9IE8DIEBW8TSNIOCP5FP.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/1D/J00D9ORY19HSGMZVRR7JUX.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/1J/6YUCPJ5LQJOFH4FH9OGKZX.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/2I/SXU163XLYKHR0KBXKVVRGH.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/2Z/K8BXIMLBPAGXF37KY076BT.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/3X/HC4BFAXBBL7F7YYCPIB44H.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/4L/8HSJ5OH6C4KXHJAJ41JJP5.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/5N/118V3AIQVBMSNL2Y1NH534.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/75/GDDVDPFXOY7WFNZKSFDPQA.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/8D/WCUB0TN2H9PCHR2U9IMGIM.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/9E/FPJI70PVMFQZROE6J13ML7.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/9K/SFO2PWPEK3NO1KO4D2ONM8.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/AI/TOE74WPWNDAMXLREO52IGQ.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/E3/3ATZ5XNWBEAJMTXOI1ZFPN.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/E4/B7DCHXC6R7W31R68PK49E0.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/EF/L6CA3JY56X88KCUPLAVOXN.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/FR/FCDZYHS1QL0EXQ6H4SKGYD.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/GO/VF29J51ZJ7MIKVB5TSU5LC.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/GW/ZPBUBNNCZF5SW55N0E4UTE.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/H4/6D8ZQ5MF1Q6VHULCQY3JA9.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/HK/DW4VB7S95VCKYXZWF5IYH0.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/IW/3DDF8C30JKHPDBZ327FYBN.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/J4/Y1OMBLG7OEPJSDVKHPT2AO.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/JO/X8WI9D3VFQGMT92EPSCZJU.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/N4/XXMKU4DVHCWV5LJMHEDBY2.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/N5/UMWR4YMT4VTGL7Q3QGFGRM.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/P0/2NOC258EKWCUTPG6QP72GR.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/S2/GFB844AAQOQCS965ABI3I8.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/SG/9JH6F4EBMYCPQMV0LVCX9U.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/UF/775YWXL2UHEVD91H1R3RAA.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/UG/JXH22IS3Z4C4FAA32HSLSF.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/VT/CK7I7U356L85MV1887BBM3.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/XL/8JS8O72BPJR0WYUGN62PEV.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/E/Z0/F1VET9D1CSBBUJZ3OV1P1Q.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/E/ZZ/K0E435DKI3672ACVI5SFZ1.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/F/1R/2QY3Q1S3PRTTEE63BKUNOP.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/F/22/NQ5Q4MPOJ5ENRNOXOCG1AG.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/F/3J/E5U0AZWSBF02APZHG4SV1B.uasset delete mode 100644 Content/__ExternalActors__/Maps/L_World/F/3M/VO4CT3T2U48G60VIN0R0ZI.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/F/3X/6EW4K63PEKRO6GIKJX3BL4.uasset create mode 100644 Content/__ExternalActors__/Maps/L_World/F/54/YBPKQ2B1D4PMBEWV1QHYG9.uasset create mode 100644 Docs/Terrain-Next.md create mode 100644 Docs/Terrain.md create mode 100644 HouseForge_01.png create mode 100644 RawContent/World/B0_baseline/geology_flow.png create mode 100644 RawContent/World/B0_baseline/geology_height.png create mode 100644 RawContent/World/B0_baseline/preview.png create mode 100644 RawContent/World/B0_baseline/preview_detail.png create mode 100644 RawContent/World/B0_baseline/thumb.png create mode 100644 RawContent/World/B1_uplift/geology_flow.png create mode 100644 RawContent/World/B1_uplift/geology_height.png create mode 100644 RawContent/World/B1_uplift/meta.json create mode 100644 RawContent/World/B1_uplift/preview.png create mode 100644 RawContent/World/B1_uplift/preview_detail.png create mode 100644 RawContent/World/B1_uplift/thumb.png create mode 100644 RawContent/World/B2_jitter/geology_flow.png create mode 100644 RawContent/World/B2_jitter/geology_height.png create mode 100644 RawContent/World/B2_jitter/meta.json create mode 100644 RawContent/World/B2_jitter/preview.png create mode 100644 RawContent/World/B2_jitter/preview_detail.png create mode 100644 RawContent/World/B2_jitter/thumb.png create mode 100644 RawContent/World/B3_critarea/geology_flow.png create mode 100644 RawContent/World/B3_critarea/geology_height.png create mode 100644 RawContent/World/B3_critarea/meta.json create mode 100644 RawContent/World/B3_critarea/preview.png create mode 100644 RawContent/World/B3_critarea/preview_detail.png create mode 100644 RawContent/World/B3_critarea/thumb.png create mode 100644 RawContent/World/B4_nonlinear/geology_flow.png create mode 100644 RawContent/World/B4_nonlinear/geology_height.png create mode 100644 RawContent/World/B4_nonlinear/meta.json create mode 100644 RawContent/World/B4_nonlinear/preview.png create mode 100644 RawContent/World/B4_nonlinear/preview_detail.png create mode 100644 RawContent/World/B4_nonlinear/thumb.png create mode 100644 RawContent/World/B5_fixed/geology_flow.png create mode 100644 RawContent/World/B5_fixed/geology_height.png create mode 100644 RawContent/World/B5_fixed/meta.json create mode 100644 RawContent/World/B5_fixed/preview.png create mode 100644 RawContent/World/B5_fixed/preview_detail.png create mode 100644 RawContent/World/B5_fixed/thumb.png create mode 100644 RawContent/World/B6_clamped/geology_flow.png create mode 100644 RawContent/World/B6_clamped/geology_height.png create mode 100644 RawContent/World/B6_clamped/meta.json create mode 100644 RawContent/World/B6_clamped/preview.png create mode 100644 RawContent/World/B6_clamped/preview_detail.png create mode 100644 RawContent/World/B6_clamped/thumb.png create mode 100644 RawContent/World/Cliffs/geology_flow.png create mode 100644 RawContent/World/Cliffs/geology_height.png create mode 100644 RawContent/World/Cliffs/map_basins.png create mode 100644 RawContent/World/Cliffs/map_coast.png create mode 100644 RawContent/World/Cliffs/map_erodibility.png create mode 100644 RawContent/World/Cliffs/map_exposure.png create mode 100644 RawContent/World/Cliffs/map_flow.png create mode 100644 RawContent/World/Cliffs/map_relief.png create mode 100644 RawContent/World/Cliffs/map_slope.png rename Content/__ExternalActors__/Maps/L_World/4/TM/TQ9PEL16JSZHUPZEEE82VK.uasset => RawContent/World/Cliffs/map_uplift.png (81%) create mode 100644 RawContent/World/Cliffs/meta.json create mode 100644 RawContent/World/Cliffs/preview.png create mode 100644 RawContent/World/Cliffs/preview_detail.png create mode 100644 RawContent/World/Cliffs/thumb.png create mode 100644 RawContent/World/Coast1/geology_flow.png create mode 100644 RawContent/World/Coast1/geology_height.png create mode 100644 RawContent/World/Coast1/map_basins.png create mode 100644 RawContent/World/Coast1/map_coast.png create mode 100644 RawContent/World/Coast1/map_erodibility.png create mode 100644 RawContent/World/Coast1/map_exposure.png create mode 100644 RawContent/World/Coast1/map_flow.png create mode 100644 RawContent/World/Coast1/map_relief.png create mode 100644 RawContent/World/Coast1/map_slope.png create mode 100644 RawContent/World/Coast1/map_uplift.png create mode 100644 RawContent/World/Coast1/meta.json create mode 100644 RawContent/World/Coast1/preview.png create mode 100644 RawContent/World/Coast1/preview_detail.png create mode 100644 RawContent/World/Coast1/thumb.png create mode 100644 RawContent/World/Full/geology_flow.png create mode 100644 RawContent/World/Full/geology_height.png create mode 100644 RawContent/World/Full/map_basins.png create mode 100644 RawContent/World/Full/map_coast.png create mode 100644 RawContent/World/Full/map_erodibility.png create mode 100644 RawContent/World/Full/map_exposure.png create mode 100644 RawContent/World/Full/map_flow.png create mode 100644 RawContent/World/Full/map_relief.png create mode 100644 RawContent/World/Full/map_slope.png create mode 100644 RawContent/World/Full/map_uplift.png create mode 100644 RawContent/World/Full/meta.json create mode 100644 RawContent/World/Full/preview.png create mode 100644 RawContent/World/Full/preview_detail.png create mode 100644 RawContent/World/Full/thumb.png create mode 100644 RawContent/World/Heightmaps/L_World_Curvature.png create mode 100644 RawContent/World/Heightmaps/L_World_Deposit.png create mode 100644 RawContent/World/Heightmaps/L_World_Flow.png create mode 100644 RawContent/World/Heightmaps/L_World_Wear.png create mode 100644 RawContent/World/P1/geology_flow.png create mode 100644 RawContent/World/P1/geology_height.png create mode 100644 RawContent/World/P1/meta.json create mode 100644 RawContent/World/P1/preview.png create mode 100644 RawContent/World/P1/preview_detail.png create mode 100644 RawContent/World/P1/thumb.png create mode 100644 RawContent/World/P2/geology_flow.png create mode 100644 RawContent/World/P2/geology_height.png create mode 100644 RawContent/World/P2/meta.json create mode 100644 RawContent/World/P2/preview.png create mode 100644 RawContent/World/P2/preview_detail.png create mode 100644 RawContent/World/P2/thumb.png create mode 100644 RawContent/World/Preview0/geology_flow.png create mode 100644 RawContent/World/Preview0/geology_height.png create mode 100644 RawContent/World/Preview0/meta.json create mode 100644 RawContent/World/Preview0/preview.png create mode 100644 RawContent/World/Preview0/preview_detail.png create mode 100644 RawContent/World/Preview0/thumb.png create mode 100644 RawContent/World/PreviewA/geology_flow.png create mode 100644 RawContent/World/PreviewA/geology_height.png create mode 100644 RawContent/World/PreviewA/meta.json create mode 100644 RawContent/World/PreviewA/preview.png create mode 100644 RawContent/World/PreviewA/thumb.png create mode 100644 RawContent/World/PreviewB/geology_flow.png create mode 100644 RawContent/World/PreviewB/geology_height.png create mode 100644 RawContent/World/PreviewB/meta.json create mode 100644 RawContent/World/PreviewB/preview.png create mode 100644 RawContent/World/PreviewB/thumb.png create mode 100644 RawContent/World/PreviewC/geology_flow.png create mode 100644 RawContent/World/PreviewC/geology_height.png create mode 100644 RawContent/World/PreviewC/meta.json create mode 100644 RawContent/World/PreviewC/preview.png create mode 100644 RawContent/World/PreviewC/thumb.png create mode 100644 RawContent/World/PreviewD/geology_flow.png create mode 100644 RawContent/World/PreviewD/geology_height.png create mode 100644 RawContent/World/PreviewD/meta.json create mode 100644 RawContent/World/PreviewD/preview.png create mode 100644 RawContent/World/PreviewD/thumb.png create mode 100644 RawContent/World/R1/geology_flow.png create mode 100644 RawContent/World/R1/geology_height.png create mode 100644 RawContent/World/R1/meta.json create mode 100644 RawContent/World/R1/preview.png create mode 100644 RawContent/World/R1/preview_detail.png create mode 100644 RawContent/World/R1/thumb.png create mode 100644 RawContent/World/R2/geology_flow.png create mode 100644 RawContent/World/R2/geology_height.png create mode 100644 RawContent/World/R2/meta.json create mode 100644 RawContent/World/R2/preview.png create mode 100644 RawContent/World/R2/preview_detail.png create mode 100644 RawContent/World/R2/thumb.png create mode 100644 RawContent/World/R3/geology_flow.png create mode 100644 RawContent/World/R3/geology_height.png create mode 100644 RawContent/World/R3/meta.json create mode 100644 RawContent/World/R3/preview.png create mode 100644 RawContent/World/R3/preview_detail.png create mode 100644 RawContent/World/R3/thumb.png create mode 100644 RawContent/World/README.md create mode 100644 RawContent/World/S1/geology_flow.png create mode 100644 RawContent/World/S1/geology_height.png create mode 100644 RawContent/World/S1/meta.json create mode 100644 RawContent/World/S1/preview.png create mode 100644 RawContent/World/S1/preview_detail.png create mode 100644 RawContent/World/S1/thumb.png create mode 100644 RawContent/World/S2/geology_flow.png create mode 100644 RawContent/World/S2/geology_height.png create mode 100644 RawContent/World/S2/meta.json create mode 100644 RawContent/World/S2/preview.png create mode 100644 RawContent/World/S2/preview_detail.png create mode 100644 RawContent/World/S2/thumb.png create mode 100644 RawContent/World/S3/geology_flow.png create mode 100644 RawContent/World/S3/geology_height.png create mode 100644 RawContent/World/S3/meta.json create mode 100644 RawContent/World/S3/preview.png create mode 100644 RawContent/World/S3/preview_detail.png create mode 100644 RawContent/World/S3/thumb.png create mode 100644 RawContent/World/Seed_24146/geology_flow.png create mode 100644 RawContent/World/Seed_24146/geology_height.png create mode 100644 RawContent/World/Seed_24146/map_basins.png create mode 100644 RawContent/World/Seed_24146/map_coast.png create mode 100644 RawContent/World/Seed_24146/map_erodibility.png create mode 100644 RawContent/World/Seed_24146/map_exposure.png create mode 100644 RawContent/World/Seed_24146/map_flow.png create mode 100644 RawContent/World/Seed_24146/map_relief.png create mode 100644 RawContent/World/Seed_24146/map_slope.png create mode 100644 RawContent/World/Seed_24146/map_uplift.png create mode 100644 RawContent/World/Seed_24146/meta.json create mode 100644 RawContent/World/Seed_24146/preview.png create mode 100644 RawContent/World/Seed_24146/preview_detail.png create mode 100644 RawContent/World/Seed_24146/thumb.png create mode 100644 RawContent/World/Seed_36529/geology_flow.png create mode 100644 RawContent/World/Seed_36529/geology_height.png create mode 100644 RawContent/World/Seed_36529/map_basins.png create mode 100644 RawContent/World/Seed_36529/map_coast.png create mode 100644 RawContent/World/Seed_36529/map_erodibility.png create mode 100644 RawContent/World/Seed_36529/map_exposure.png create mode 100644 RawContent/World/Seed_36529/map_flow.png create mode 100644 RawContent/World/Seed_36529/map_relief.png create mode 100644 RawContent/World/Seed_36529/map_slope.png create mode 100644 RawContent/World/Seed_36529/map_uplift.png create mode 100644 RawContent/World/Seed_36529/meta.json create mode 100644 RawContent/World/Seed_36529/preview.png create mode 100644 RawContent/World/Seed_36529/preview_detail.png create mode 100644 RawContent/World/Seed_36529/thumb.png create mode 100644 RawContent/World/Seed_5365/geology_flow.png create mode 100644 RawContent/World/Seed_5365/geology_height.png create mode 100644 RawContent/World/Seed_5365/map_basins.png create mode 100644 RawContent/World/Seed_5365/map_coast.png create mode 100644 RawContent/World/Seed_5365/map_erodibility.png create mode 100644 RawContent/World/Seed_5365/map_exposure.png create mode 100644 RawContent/World/Seed_5365/map_flow.png create mode 100644 RawContent/World/Seed_5365/map_relief.png create mode 100644 RawContent/World/Seed_5365/map_slope.png create mode 100644 RawContent/World/Seed_5365/map_uplift.png create mode 100644 RawContent/World/Seed_5365/meta.json create mode 100644 RawContent/World/Seed_5365/preview.png create mode 100644 RawContent/World/Seed_5365/preview_detail.png create mode 100644 RawContent/World/Seed_5365/thumb.png create mode 100644 RawContent/World/Seed_67914/geology_flow.png create mode 100644 RawContent/World/Seed_67914/geology_height.png create mode 100644 RawContent/World/Seed_67914/map_basins.png create mode 100644 RawContent/World/Seed_67914/map_coast.png create mode 100644 RawContent/World/Seed_67914/map_erodibility.png create mode 100644 RawContent/World/Seed_67914/map_exposure.png create mode 100644 RawContent/World/Seed_67914/map_flow.png create mode 100644 RawContent/World/Seed_67914/map_relief.png create mode 100644 RawContent/World/Seed_67914/map_slope.png create mode 100644 RawContent/World/Seed_67914/map_uplift.png create mode 100644 RawContent/World/Seed_67914/meta.json create mode 100644 RawContent/World/Seed_67914/preview.png create mode 100644 RawContent/World/Seed_67914/preview_detail.png create mode 100644 RawContent/World/Seed_67914/thumb.png create mode 100644 RawContent/World/Seed_9342/geology_flow.png create mode 100644 RawContent/World/Seed_9342/geology_height.png create mode 100644 RawContent/World/Seed_9342/map_basins.png create mode 100644 RawContent/World/Seed_9342/map_erodibility.png create mode 100644 RawContent/World/Seed_9342/map_flow.png create mode 100644 RawContent/World/Seed_9342/map_relief.png create mode 100644 RawContent/World/Seed_9342/map_slope.png create mode 100644 RawContent/World/Seed_9342/map_uplift.png create mode 100644 RawContent/World/Seed_9342/meta.json create mode 100644 RawContent/World/Seed_9342/preview.png create mode 100644 RawContent/World/Seed_9342/preview_detail.png create mode 100644 RawContent/World/Seed_9342/thumb.png create mode 100644 RawContent/World/T1/geology_flow.png create mode 100644 RawContent/World/T1/geology_height.png create mode 100644 RawContent/World/T1/meta.json create mode 100644 RawContent/World/T1/preview.png create mode 100644 RawContent/World/T1/preview_detail.png create mode 100644 RawContent/World/T1/thumb.png create mode 100644 RawContent/World/T2/geology_flow.png create mode 100644 RawContent/World/T2/geology_height.png create mode 100644 RawContent/World/T2/meta.json create mode 100644 RawContent/World/T2/preview.png create mode 100644 RawContent/World/T2/preview_detail.png create mode 100644 RawContent/World/T2/thumb.png create mode 100644 RawContent/World/T3/geology_flow.png create mode 100644 RawContent/World/T3/geology_height.png create mode 100644 RawContent/World/T3/meta.json create mode 100644 RawContent/World/T3/preview.png create mode 100644 RawContent/World/T3/preview_detail.png create mode 100644 RawContent/World/T3/thumb.png create mode 100644 RawContent/World/World.json create mode 100644 Scripts/Authoring/dump_level.py create mode 100644 Scripts/Authoring/heightmap_erosion.py create mode 100644 Scripts/Authoring/heightmap_io.py create mode 100644 Scripts/Authoring/heightmap_noise.py create mode 100644 Scripts/Authoring/world_manifest.py create mode 100644 Scripts/build-terrain.sh create mode 100644 Tools/Terrain/cmd/terrain/main.go create mode 100644 Tools/Terrain/internal/check/check_test.go create mode 100644 Tools/Terrain/internal/check/margin_test.go create mode 100644 Tools/Terrain/internal/check/talus_test.go create mode 100644 Tools/Terrain/internal/coast/coast.go create mode 100644 Tools/Terrain/internal/coast/coast_test.go create mode 100644 Tools/Terrain/internal/coast/distance.go create mode 100644 Tools/Terrain/internal/field/datamap.go create mode 100644 Tools/Terrain/internal/field/field.go create mode 100644 Tools/Terrain/internal/field/png.go create mode 100644 Tools/Terrain/internal/field/preview.go create mode 100644 Tools/Terrain/internal/field/resample.go create mode 100644 Tools/Terrain/internal/fluvial/bucketpq.go create mode 100644 Tools/Terrain/internal/fluvial/fluvial.go create mode 100644 Tools/Terrain/internal/fluvial/hillslope.go create mode 100644 Tools/Terrain/internal/fluvial/hillslope_test.go create mode 100644 Tools/Terrain/internal/fluvial/jitter.go create mode 100644 Tools/Terrain/internal/fluvial/repose.go create mode 100644 Tools/Terrain/internal/fluvial/repose_test.go create mode 100644 Tools/Terrain/internal/manifest/manifest.go create mode 100644 Tools/Terrain/internal/noise/noise.go create mode 100644 Tools/Terrain/internal/stats/stats.go create mode 100644 Tools/Terrain/internal/thermal/thermal.go create mode 100644 Tools/Terrain/internal/thermal/thermal_test.go create mode 100644 Tools/Terrain/internal/uplift/uplift.go diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..b749ee3 --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,5 @@ +{ + "enabledPlugins": { + "unreal-engine-skills-for-claude-code@claude-plugins-official": true + } +} diff --git a/.gitignore b/.gitignore index 551c1ec..14ad458 100644 --- a/.gitignore +++ b/.gitignore @@ -86,3 +86,7 @@ Platforms/*/Binaries/ # Python packages installed for the authoring scripts by Scripts/Authoring/bootstrap-pylib.sh Scripts/Authoring/.pylib/ __pycache__/ + +# The terrain generator is a Go program; its binary and preview output are rebuilt from a seed. +Tools/Terrain/bin/ +RawContent/World/Preview/ diff --git a/CLAUDE.md b/CLAUDE.md index 6052ab5..d6ffabb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -38,10 +38,36 @@ The editor serves the engine's MCP plugin on `127.0.0.1:8000/mcp` while it is op Claude Code at it. Reconnect with `/mcp` once the editor is up. Close the editor and its Live Coding console before a shell build. -Off the ladder: `Content/Maps/L_World`, a ~200 km² world-partitioned landscape built by -`Scripts/Authoring/create_world.py` from PNGs in `RawContent/World/Heightmaps/` (seeded by `generate_heightmap.py`) -through `ULandscapeAuthoringLibrary` in the `SaltyEditor` module. It uses Elite_RockyMeadows' landscape material. -No gameplay code references it; the gym is still the test level. +Off the ladder: `Content/Maps/L_World`, a ~200 km² world-partitioned landscape, is a product of three inputs and +nothing else: the manifest `RawContent/World/World.json` (size, what a heightmap value means in metres, the +height source, the paint-layer rules), the PNGs `Scripts/Authoring/generate_heightmap.py` writes from it into +`RawContent/World/Heightmaps/`, and `Scripts/Authoring/create_world.py`, which imports them through +`ULandscapeAuthoringLibrary` in the `SaltyEditor` module and dresses the level as Elite_RockyMeadows dresses its +demo maps (landscape material and layers, sun with cloud shadows, skybox, fog, grade; numbers read with +`dump_level.py`). The height source is seeded noise today, weathered and carved by `heightmap_erosion.py` +(hydraulic droplets, thermal weathering, strata; D-46); a real heightmap is a manifest edit and a rerun +(`RawContent/World/README.md`). Run `create_world.py` detached, never under a tool timeout, and never while the +editor has `L_World` open. No gameplay code references the world; the gym is still the test level. Where the +generator is going is settled in [`Docs/Terrain.md`](Docs/Terrain.md) (D-47, D-48): a Go core in +`Tools/Terrain/`, stream-power fluvial erosion instead of droplets as the thing that shapes the land, a canvas +of 7141 vertices at 200 cm over −512…1536 m, and a `Generated` edit layer so sculpting survives a rerun. Read +it before touching the generator, and the numpy pipeline is not to be extended. + +The Go core now exists and works: `Tools/Terrain/` builds an uplift *rate* field and lets a Braun-Willett +stream-power solve produce the terrain from it, with a Roering nonlinear hillslope law and per-uplift-class +statistics. The coast is a pass of its own now (D-51, `internal/coast`), running after the solve: a continental +shelf whose width follows the relief behind the shore, a surf that planes a shore platform and leaves a cliff +where its reach ends, and a sediment budget carried along the shore into the bays and out of the river mouths. +It stops at the geology grid, so the detail passes are unbuilt and `L_World` still comes from the numpy +pipeline. **[`Docs/Terrain-Next.md`](Docs/Terrain-Next.md) is the working brief** — how to run it, what +each output map is for, what still looks wrong, and what has already been measured and rejected. Start there. + +Where it is going: finish the detail passes so there is a full-resolution output at all, then make the source +a **painted map** — an author paints the uplift, the mask and the erodibility, never the height, and the solve +turns that intent into terrain with real drainage. Worlds are far larger than today's 14 km canvas, so the +geology solve stays whole (it cannot be tiled: drainage area is global) and only the detail passes tile. That +makes two rules binding on anything written now: index every noise and hash by **absolute world coordinates** +rather than grid index, and give every tiled pass an overlap margin. Composition tuning is parked. Next: step 3, the body, the camera, the input map and the gym. Step 1's PIE proof (two clients, dedicated server, two pawns in the gym) is still a person's to tick. Update this section when a step closes. diff --git a/Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_01.uasset b/Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_01.uasset new file mode 100644 index 0000000..80c37dd --- /dev/null +++ b/Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1bcc28365fdc2c2c427eab1271e4698adefb78d8308800bc2689c6b14469ef4 +size 15790 diff --git a/Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_02.uasset b/Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_02.uasset new file mode 100644 index 0000000..c3375b4 --- /dev/null +++ b/Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea3f4909f2cf984b2105663a895b2055821bd33a323719d53ce3e3993c22dd05 +size 30425830 diff --git a/Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_03.uasset b/Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_03.uasset new file mode 100644 index 0000000..3adf2b4 --- /dev/null +++ b/Content/Elite_RockyMeadows/Heatmaps/Level_01/Layer_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d502a498b22a4cdfefab55ac1cb42da93f057b8f13b17417d30900e2ca0d1362 +size 23141112 diff --git a/Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_01.uasset b/Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_01.uasset new file mode 100644 index 0000000..6d3bc39 --- /dev/null +++ b/Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11a358f2b22ccea7c466b113d4c2390bdf2cc52c94778f30336196229a0ceaf0 +size 15790 diff --git a/Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_02.uasset b/Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_02.uasset new file mode 100644 index 0000000..4a9dea9 --- /dev/null +++ b/Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb01f46fa2639eebabd720a687b3e2817c88fe5d8ab6eb7779814429c8c576a8 +size 33149217 diff --git a/Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_03.uasset b/Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_03.uasset new file mode 100644 index 0000000..6b16836 --- /dev/null +++ b/Content/Elite_RockyMeadows/Heatmaps/Level_02/Layer_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89a4932003c2379e6c027f0aef0fd4706529a73d21b9e2dcf242a27bed29d755 +size 17317947 diff --git a/Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_01.uasset b/Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_01.uasset new file mode 100644 index 0000000..fec48df --- /dev/null +++ b/Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46e6797b8b6ca1d85a9e38e4569e2feecb4103c84dac7c8e7e6f152c350b7a30 +size 15790 diff --git a/Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_02.uasset b/Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_02.uasset new file mode 100644 index 0000000..3bb0bf4 --- /dev/null +++ b/Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99f65f38c46662e9a09fc37a13cf7c22fecdfd90b535bb1e02cdaf00f3bf0958 +size 30472160 diff --git a/Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_03.uasset b/Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_03.uasset new file mode 100644 index 0000000..71d6af8 --- /dev/null +++ b/Content/Elite_RockyMeadows/Heatmaps/Level_03/Layer_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ebe40c9ac7501a0e7c0fdd2b41e41976995c15d08f2e5b160b1246613a48261 +size 30175428 diff --git a/Content/Elite_RockyMeadows/Maps/Rocky_Meadows_01.umap b/Content/Elite_RockyMeadows/Maps/Rocky_Meadows_01.umap new file mode 100644 index 0000000..a9bebb4 --- /dev/null +++ b/Content/Elite_RockyMeadows/Maps/Rocky_Meadows_01.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94354d6f8de1f10516b2c8c0e7a3d2c765bec4efcc37eea906bac7134eaba85a +size 539404738 diff --git a/Content/Elite_RockyMeadows/Maps/Rocky_Meadows_02.umap b/Content/Elite_RockyMeadows/Maps/Rocky_Meadows_02.umap new file mode 100644 index 0000000..bbd1660 --- /dev/null +++ b/Content/Elite_RockyMeadows/Maps/Rocky_Meadows_02.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dbf1a1ed26efde48e5a34e0114f21fa9037349f449182ba291e0b0f2cf9aed9 +size 535009665 diff --git a/Content/Elite_RockyMeadows/Maps/Rocky_Meadows_03.umap b/Content/Elite_RockyMeadows/Maps/Rocky_Meadows_03.umap new file mode 100644 index 0000000..9f335fd --- /dev/null +++ b/Content/Elite_RockyMeadows/Maps/Rocky_Meadows_03.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffcf68d9fc4e3f1f03e082295d42d210a4b80a41392eb30bdd7b2f87cbe40da0 +size 561063425 diff --git a/Content/Elite_RockyMeadows/Materials/Light_Material/M_Cloud_Shadows.uasset b/Content/Elite_RockyMeadows/Materials/Light_Material/M_Cloud_Shadows.uasset new file mode 100644 index 0000000..e9bcdcb --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Light_Material/M_Cloud_Shadows.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8c7ccdb6e0c2ccbc047ca42334e5aea1d52a2214b59da5f6b01a386fda27e55 +size 100279 diff --git a/Content/Elite_RockyMeadows/Materials/Light_Material/M_Cloud_Shadows_Inst02.uasset b/Content/Elite_RockyMeadows/Materials/Light_Material/M_Cloud_Shadows_Inst02.uasset new file mode 100644 index 0000000..e173635 --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Light_Material/M_Cloud_Shadows_Inst02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b0821fed067a3aadb949757a032a8360fce9159558606a3731eca4d010b32c7 +size 55443 diff --git a/Content/Elite_RockyMeadows/Materials/Light_Material/Material_Function/Panner.uasset b/Content/Elite_RockyMeadows/Materials/Light_Material/Material_Function/Panner.uasset new file mode 100644 index 0000000..575f53e --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Light_Material/Material_Function/Panner.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac25cda84d52e4590577a0abbff524d025fa56ecb889f5af5e1baa117bf70c31 +size 79929 diff --git a/Content/Elite_RockyMeadows/Materials/M_Landscape_Main.uasset b/Content/Elite_RockyMeadows/Materials/M_Landscape_Main.uasset new file mode 100644 index 0000000..6a7676c --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/M_Landscape_Main.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec9a0053b38a4e31bbb3cc7a03313ad003fd4125e84847a53d9be4f25d2abd00 +size 198429 diff --git a/Content/Elite_RockyMeadows/Materials/M_Landscape_Main_Inst_Rocky.uasset b/Content/Elite_RockyMeadows/Materials/M_Landscape_Main_Inst_Rocky.uasset new file mode 100644 index 0000000..f0725ba --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/M_Landscape_Main_Inst_Rocky.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ab0af83cb395e8d52a61bdcebb0c6426aed23cf4bdd4fda157650e7d0de8fdb +size 131164 diff --git a/Content/Elite_RockyMeadows/Materials/M_Landscape_Main_Inst_RockyMeadows02.uasset b/Content/Elite_RockyMeadows/Materials/M_Landscape_Main_Inst_RockyMeadows02.uasset new file mode 100644 index 0000000..1d31013 --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/M_Landscape_Main_Inst_RockyMeadows02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bc08661eea8c555639c4bddde0374246496eb56f739d713408b22d5f06bfa5b +size 125714 diff --git a/Content/Elite_RockyMeadows/Materials/Material_Functions/Base_Layer_function.uasset b/Content/Elite_RockyMeadows/Materials/Material_Functions/Base_Layer_function.uasset new file mode 100644 index 0000000..8ecc27d --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Material_Functions/Base_Layer_function.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f76d4225eb3677e8b99baa9eea5f8010716e8e3f75f3222a0d0d208a3f4db12 +size 90937 diff --git a/Content/Elite_RockyMeadows/Materials/Material_Functions/Layer_02_function.uasset b/Content/Elite_RockyMeadows/Materials/Material_Functions/Layer_02_function.uasset new file mode 100644 index 0000000..dc88882 --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Material_Functions/Layer_02_function.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d6cec50ffe2cb3ac6d07f95639bf940cbd99a5851575fdc550249d8ffa7a04d +size 90821 diff --git a/Content/Elite_RockyMeadows/Materials/Material_Functions/Layer_03_function.uasset b/Content/Elite_RockyMeadows/Materials/Material_Functions/Layer_03_function.uasset new file mode 100644 index 0000000..9e327d5 --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Material_Functions/Layer_03_function.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aadc8a36f4847316f2eec163865c75cd77b6d5f0d1900fddedea80d45111ca13 +size 90859 diff --git a/Content/Elite_RockyMeadows/Materials/Material_Layers/Base_Layer_LayerInfo.uasset b/Content/Elite_RockyMeadows/Materials/Material_Layers/Base_Layer_LayerInfo.uasset new file mode 100644 index 0000000..cf6b157 --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Material_Layers/Base_Layer_LayerInfo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ff0e305fdd04d3624dc06ea255fe9c162b599ed1a87b8992c541bccfc98881d +size 1411 diff --git a/Content/Elite_RockyMeadows/Materials/Material_Layers/Layer_02_LayerInfo.uasset b/Content/Elite_RockyMeadows/Materials/Material_Layers/Layer_02_LayerInfo.uasset new file mode 100644 index 0000000..aeb4663 --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Material_Layers/Layer_02_LayerInfo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf915e757c86586b4b0d55c33d6ff5c1040522ffe132f027b4b42030240b0f33 +size 1399 diff --git a/Content/Elite_RockyMeadows/Materials/Material_Layers/Layer_03_LayerInfo.uasset b/Content/Elite_RockyMeadows/Materials/Material_Layers/Layer_03_LayerInfo.uasset new file mode 100644 index 0000000..94e05fe --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Material_Layers/Layer_03_LayerInfo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f79bc34a057dd72432a1aa26a95f0e475e39546f4845ee57b686fe9e31d2612 +size 1399 diff --git a/Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Inst_RockyMeadows.uasset b/Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Inst_RockyMeadows.uasset new file mode 100644 index 0000000..e5d41e8 --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Inst_RockyMeadows.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:199ce3b5fd8e8f9dde7da10443b5a1d82c674a8ec677491b308693d620a25185 +size 89156 diff --git a/Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Inst_RockyMeadows_Sunset.uasset b/Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Inst_RockyMeadows_Sunset.uasset new file mode 100644 index 0000000..c7e9340 --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Inst_RockyMeadows_Sunset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe43ef9da853297b48d82db0e812729fb45d22871c86b2e2f8ef4caeb6af3d6b +size 107270 diff --git a/Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Main.uasset b/Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Main.uasset new file mode 100644 index 0000000..428b46a --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Skybox/M_Skybox_Main.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0ab1056939bf2fc4b0ed6b219d885ae146b704e7c27edb7610d75555f38cd38 +size 95016 diff --git a/Content/Elite_RockyMeadows/Materials/Skybox/Skybox_Mesh.uasset b/Content/Elite_RockyMeadows/Materials/Skybox/Skybox_Mesh.uasset new file mode 100644 index 0000000..9892989 --- /dev/null +++ b/Content/Elite_RockyMeadows/Materials/Skybox/Skybox_Mesh.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:701ec44b9e62efa64f3450c7b4e8e286a74c93ec37dd9f42d0401efd4ebe4189 +size 891208 diff --git a/Content/Elite_RockyMeadows/Textures/Skies/T_Sky_RockyMeadows.uasset b/Content/Elite_RockyMeadows/Textures/Skies/T_Sky_RockyMeadows.uasset new file mode 100644 index 0000000..4f4b632 --- /dev/null +++ b/Content/Elite_RockyMeadows/Textures/Skies/T_Sky_RockyMeadows.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:308ab68c35d2d8494f919f7ce2f9f574fd78c7368d0004f79cf2cfb736139d6b +size 29900387 diff --git a/Content/Elite_RockyMeadows/Textures/T_Cloud_Shadows_Tex.uasset b/Content/Elite_RockyMeadows/Textures/T_Cloud_Shadows_Tex.uasset new file mode 100644 index 0000000..5e1478b --- /dev/null +++ b/Content/Elite_RockyMeadows/Textures/T_Cloud_Shadows_Tex.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32af216a80dac6784915f064057311dacbaad7a32d1c7033a6813ff18f0ce7fd +size 2732213 diff --git a/Content/Elite_RockyMeadows/Textures/T_Grass_Color_02.uasset b/Content/Elite_RockyMeadows/Textures/T_Grass_Color_02.uasset new file mode 100644 index 0000000..d58e7a7 --- /dev/null +++ b/Content/Elite_RockyMeadows/Textures/T_Grass_Color_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7de9cc4c40271f01b551e14fce3dfc5bdcbb24e75ab113df4abc703cbe34ab0 +size 46268475 diff --git a/Content/Elite_RockyMeadows/Textures/T_Grass_normal.uasset b/Content/Elite_RockyMeadows/Textures/T_Grass_normal.uasset new file mode 100644 index 0000000..0f1658b --- /dev/null +++ b/Content/Elite_RockyMeadows/Textures/T_Grass_normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bec78100d53b38ef4571d8dd281a7f0a57b12fc481d546685deabe9fc5312acb +size 44995729 diff --git a/Content/Elite_RockyMeadows/Textures/T_Rock_Base_Color.uasset b/Content/Elite_RockyMeadows/Textures/T_Rock_Base_Color.uasset new file mode 100644 index 0000000..e2d5919 --- /dev/null +++ b/Content/Elite_RockyMeadows/Textures/T_Rock_Base_Color.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed1c7265997cbb0e519c6fab52926d7fda608d424a663b245384ec04607cf77a +size 17947822 diff --git a/Content/Elite_RockyMeadows/Textures/T_Rock_Base_Normal.uasset b/Content/Elite_RockyMeadows/Textures/T_Rock_Base_Normal.uasset new file mode 100644 index 0000000..c0a7e0f --- /dev/null +++ b/Content/Elite_RockyMeadows/Textures/T_Rock_Base_Normal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb1c6777bff854fed9711e95ca4d10e39757a83a1bd51168b1e223c679e75021 +size 35888162 diff --git a/Content/Elite_RockyMeadows/Textures/T_Rock_High_Color.uasset b/Content/Elite_RockyMeadows/Textures/T_Rock_High_Color.uasset new file mode 100644 index 0000000..2299a1d --- /dev/null +++ b/Content/Elite_RockyMeadows/Textures/T_Rock_High_Color.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fd755e17b563cf31c33490efac6d750dde7d2046d5528a0457e5c73151dc81b +size 21269206 diff --git a/Content/Elite_RockyMeadows/Textures/T_Rock_Shade_Variation.uasset b/Content/Elite_RockyMeadows/Textures/T_Rock_Shade_Variation.uasset new file mode 100644 index 0000000..6657e05 --- /dev/null +++ b/Content/Elite_RockyMeadows/Textures/T_Rock_Shade_Variation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:147b13d0217e7a87397cd1fa47409bbaccd2de3c41157e3df7012dc444c62da8 +size 5552181 diff --git a/Content/HouseForge_01/Levels/Showcase.umap b/Content/HouseForge_01/Levels/Showcase.umap new file mode 100644 index 0000000..44e8f2a --- /dev/null +++ b/Content/HouseForge_01/Levels/Showcase.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cb632f60e544a5f3e8b90f54d5aa7e8868bee0211506820087ee2676a6880a8 +size 1254235 diff --git a/Content/HouseForge_01/Materials/MI_Forge.uasset b/Content/HouseForge_01/Materials/MI_Forge.uasset new file mode 100644 index 0000000..cc86fb4 --- /dev/null +++ b/Content/HouseForge_01/Materials/MI_Forge.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdb0e816e43c9d2a3618e7880d75881ab5a39a1ef944da9ac3f991178d991e82 +size 14318 diff --git a/Content/HouseForge_01/Materials/MM_SolidBase.uasset b/Content/HouseForge_01/Materials/MM_SolidBase.uasset new file mode 100644 index 0000000..c4f9505 --- /dev/null +++ b/Content/HouseForge_01/Materials/MM_SolidBase.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9031055a36302e2894b70cd6af9c2108a04608ffba529ef14100e0c618fbb2a +size 117042 diff --git a/Content/HouseForge_01/Materials/Metal/MI_MetalBase.uasset b/Content/HouseForge_01/Materials/Metal/MI_MetalBase.uasset new file mode 100644 index 0000000..6a2d83b --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_MetalBase.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9be8a2e9ea7b21a9049b810c032b30886bae8ff4c2ac29fa58900c2867e05220 +size 16804 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_Ceiling.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_Ceiling.uasset new file mode 100644 index 0000000..51d99ea --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_Ceiling.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0821a2bf31ad7e215179c021a7c98f4a327d5f58a7b35ac72f2800474160757 +size 10780 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_DoorNWindows.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_DoorNWindows.uasset new file mode 100644 index 0000000..757597c --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_DoorNWindows.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b1daf39e8bc3e3401da4c7db4240f1fd1bdf471975fadd60fb0c6bedc12bd6c +size 11709 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_Doorway.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_Doorway.uasset new file mode 100644 index 0000000..aabb4b4 --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_Doorway.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a22b77617c537bdb0dcb80bceaa66d648e624194b216819abb9fbc742214d987 +size 10449 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_Foundation.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_Foundation.uasset new file mode 100644 index 0000000..ad02bd6 --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_Foundation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:825d7ad48e51d9a6a2e4cf81279e67da3e2640601870ae41d844328dfc570271 +size 10928 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_Pillar.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_Pillar.uasset new file mode 100644 index 0000000..db84f25 --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_Pillar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:547bed06550782e474de3f36e4ac916a84a1ef5885720b1a9cd5c0550546a569 +size 11030 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_Railings.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_Railings.uasset new file mode 100644 index 0000000..c2aa031 --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_Railings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:445b56b0f623977c266aa243a7f054d4e780659a9c058b664e11948e75b5f779 +size 11202 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_Ramp.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_Ramp.uasset new file mode 100644 index 0000000..66f6014 --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_Ramp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5f7c6158945b0a306d37bf4586f57fb31e01839139dbdfff8f577a0f36be56a +size 10768 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_Roof.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_Roof.uasset new file mode 100644 index 0000000..85a93e5 --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_Roof.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48adf71770f39abfb1dc48fcbdac13e67c80f02fd6a4c81b1142da390f9fb4cc +size 11176 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_RoofEnd.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_RoofEnd.uasset new file mode 100644 index 0000000..7b243bf --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_RoofEnd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98a2a8f16eecf589bc70f958980a0a001511ac1fa8a3dfda657de05cf6b0866a +size 11765 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_Stairs.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_Stairs.uasset new file mode 100644 index 0000000..b918215 --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_Stairs.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6409fa572b2519b52c37ccd572d19511d43de9afad396f8eff00328e34267d28 +size 10958 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_StairsRailings.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_StairsRailings.uasset new file mode 100644 index 0000000..b6926b8 --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_StairsRailings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0537cc84037dc7854d7ad3627d71755ed3f6bed99aa9ce98e68df2dc8f0462cc +size 11288 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_Wall.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_Wall.uasset new file mode 100644 index 0000000..966e2c2 --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f8e89994615f22ab25244d8f71c2d5e941e97cc81b72c880088713d4d161a78 +size 10398 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_Wall_Tri.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_Wall_Tri.uasset new file mode 100644 index 0000000..453ad3c --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_Wall_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ef48a8bf21e48ae1289c19c1dd864ebb955c1cea36716ccf9a6f25bd02c4b6d +size 11110 diff --git a/Content/HouseForge_01/Materials/Metal/MI_Metal_Window.uasset b/Content/HouseForge_01/Materials/Metal/MI_Metal_Window.uasset new file mode 100644 index 0000000..25c9ebb --- /dev/null +++ b/Content/HouseForge_01/Materials/Metal/MI_Metal_Window.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b5c29109858849e316a85dae79363b755bbcf5c238c9e22cd54fc408a704251 +size 11133 diff --git a/Content/HouseForge_01/Materials/Primitive/MI_PrimitiveWood.uasset b/Content/HouseForge_01/Materials/Primitive/MI_PrimitiveWood.uasset new file mode 100644 index 0000000..0d87cc4 --- /dev/null +++ b/Content/HouseForge_01/Materials/Primitive/MI_PrimitiveWood.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5aba35f60ebafeab43cca68719afc21bb08cf06cba23131f76c09b1bf16e45b +size 17619 diff --git a/Content/HouseForge_01/Materials/Primitive/MI_Rope.uasset b/Content/HouseForge_01/Materials/Primitive/MI_Rope.uasset new file mode 100644 index 0000000..7617eda --- /dev/null +++ b/Content/HouseForge_01/Materials/Primitive/MI_Rope.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0145dcc0757651167c4c7eff31c9b2aed5b18c5d5614d42ffb8a7c10fea42144 +size 20517 diff --git a/Content/HouseForge_01/Materials/Primitive/MI_Thatch.uasset b/Content/HouseForge_01/Materials/Primitive/MI_Thatch.uasset new file mode 100644 index 0000000..f1c083f --- /dev/null +++ b/Content/HouseForge_01/Materials/Primitive/MI_Thatch.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d1076356a2ffe3734ea34f065821178d28d41772074067a3f9e4ac350d5fc51 +size 18517 diff --git a/Content/HouseForge_01/Materials/Stone/MI_Grout.uasset b/Content/HouseForge_01/Materials/Stone/MI_Grout.uasset new file mode 100644 index 0000000..fd0c5bf --- /dev/null +++ b/Content/HouseForge_01/Materials/Stone/MI_Grout.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f414caa5292e10f67b21411a2f77beddf0ab6a15b9108640854776e7ed9189e8 +size 20531 diff --git a/Content/HouseForge_01/Materials/Stone/MI_RockBits.uasset b/Content/HouseForge_01/Materials/Stone/MI_RockBits.uasset new file mode 100644 index 0000000..9e099e2 --- /dev/null +++ b/Content/HouseForge_01/Materials/Stone/MI_RockBits.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15911d7aec3ad84471879b940a88330e2fd469f60a7e73d7a1c3357397d8935b +size 20765 diff --git a/Content/HouseForge_01/Materials/Stone/MI_Rocks.uasset b/Content/HouseForge_01/Materials/Stone/MI_Rocks.uasset new file mode 100644 index 0000000..8796042 --- /dev/null +++ b/Content/HouseForge_01/Materials/Stone/MI_Rocks.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfa64eaedd400b46eed0f69df73ea87c8d3c2fbb4aa73d184ba9671af8481e4c +size 20676 diff --git a/Content/HouseForge_01/Materials/Stone/MI_Rocks_Doorway.uasset b/Content/HouseForge_01/Materials/Stone/MI_Rocks_Doorway.uasset new file mode 100644 index 0000000..7f6d10f --- /dev/null +++ b/Content/HouseForge_01/Materials/Stone/MI_Rocks_Doorway.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cf92b3a180badc1c06dc6ae545207b0877800ba2b33c068e694d4d7523ff330 +size 22942 diff --git a/Content/HouseForge_01/Materials/Stone/MI_Stone_Stairs.uasset b/Content/HouseForge_01/Materials/Stone/MI_Stone_Stairs.uasset new file mode 100644 index 0000000..dc2c252 --- /dev/null +++ b/Content/HouseForge_01/Materials/Stone/MI_Stone_Stairs.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdf3d946c8509dab994ce1d386280003bbb4a1e4b3f484525e06b3fdf2f83e48 +size 23499 diff --git a/Content/HouseForge_01/Materials/Wood/MI_MetalBits.uasset b/Content/HouseForge_01/Materials/Wood/MI_MetalBits.uasset new file mode 100644 index 0000000..a208e5b --- /dev/null +++ b/Content/HouseForge_01/Materials/Wood/MI_MetalBits.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9156ef7b94fe21639edb1263eb44520206ae69c2ec2a2c412b014bcc146486af +size 13680 diff --git a/Content/HouseForge_01/Materials/Wood/MI_MetalKnob.uasset b/Content/HouseForge_01/Materials/Wood/MI_MetalKnob.uasset new file mode 100644 index 0000000..9a58638 --- /dev/null +++ b/Content/HouseForge_01/Materials/Wood/MI_MetalKnob.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cc09301b34ac041c13b10f2f727a54157e9feaeb0fbfabe906c31426dc3da85 +size 12675 diff --git a/Content/HouseForge_01/Materials/Wood/MI_Wood.uasset b/Content/HouseForge_01/Materials/Wood/MI_Wood.uasset new file mode 100644 index 0000000..885fca1 --- /dev/null +++ b/Content/HouseForge_01/Materials/Wood/MI_Wood.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b2714affd94b1bbc2064ab1273e662b00de7ba09002be462bf89f627ecd641f +size 26137 diff --git a/Content/HouseForge_01/Materials/Wood/MI_Wood_Burnt.uasset b/Content/HouseForge_01/Materials/Wood/MI_Wood_Burnt.uasset new file mode 100644 index 0000000..d27c610 --- /dev/null +++ b/Content/HouseForge_01/Materials/Wood/MI_Wood_Burnt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bbe7c9aaf4d541119976d78fa1b5a5da14bfd0860dd4de00e909cc4e9d2937c +size 25806 diff --git a/Content/HouseForge_01/Materials/Wood/MI_Wood_Paint.uasset b/Content/HouseForge_01/Materials/Wood/MI_Wood_Paint.uasset new file mode 100644 index 0000000..5138169 --- /dev/null +++ b/Content/HouseForge_01/Materials/Wood/MI_Wood_Paint.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6af6ad7a0ee3a7235c2613eb37f9f6088210afb86e23051c62eb8e2ebbe66e8b +size 25818 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ceiling.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ceiling.uasset new file mode 100644 index 0000000..95e6caa --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ceiling.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a087b1e6146fbfa4c8406534db46ee4be1299a5151aa3bdc3c83c283acf043f5 +size 1282100 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ceiling_Tri.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ceiling_Tri.uasset new file mode 100644 index 0000000..23ac87b --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ceiling_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4af6bd1f02c65ff84fedcab0256d3d10cfda66eaa512ee4136bba58a5556475b +size 644946 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door.uasset new file mode 100644 index 0000000..35be5ee --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e478acc8839ad6c2e4cca438fe81f662303a3df21fc49edc670d8b5d5b0d050 +size 1446703 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Middle1.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Middle1.uasset new file mode 100644 index 0000000..62c2829 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Middle1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e31e6fdf64b60a7eafd8fb325a7dd9b3f68fd5ba0594d8013916394b037895e5 +size 16856 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Middle2.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Middle2.uasset new file mode 100644 index 0000000..9cd8d48 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Middle2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48e4828f6b73849fe797cab9a278c2c9bcd16d4ed87cad8f8e7cebf1c8300313 +size 31699 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Side.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Side.uasset new file mode 100644 index 0000000..d2a8da5 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Door_Part_Side.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98e427cee77c924a88d41d3d184caed564f4722dbbc17665d13c33015dec57c1 +size 790453 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Doorway.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Doorway.uasset new file mode 100644 index 0000000..5a1fc51 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Doorway.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd3749bf3d598280d0f120d70a11f7b22c9b1c7dc05b65411bfd47f485a8a3c0 +size 1768020 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_FenceFoundations.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_FenceFoundations.uasset new file mode 100644 index 0000000..d32b39f --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_FenceFoundations.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2d0a1ce9a35836e3e2839421fcecc6c9bd86a0813a58cac755e6fd2cb17fdb2 +size 738156 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Foundation.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Foundation.uasset new file mode 100644 index 0000000..12794ea --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Foundation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9300f2e0b446ab7168603a951dab188e356b506dd11413476f5cc3a0deb04b29 +size 2338694 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Foundation_Tri.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Foundation_Tri.uasset new file mode 100644 index 0000000..7dc348b --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Foundation_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bef0eadd23424a9661167769f591f8c2334ff490fa94d8caae6419dea389633d +size 1195330 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Pillar.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Pillar.uasset new file mode 100644 index 0000000..cef4fa7 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Pillar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2382ef69773545197acd10d914f47dab493f2f7c2394530b56becd90ec0271e +size 1727928 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Railings.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Railings.uasset new file mode 100644 index 0000000..9113826 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Railings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb67bc4d520b63952d47259d21f8257ab1045b32fc7b5a7027fed4bf122f03cd +size 1110286 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp.uasset new file mode 100644 index 0000000..a9faca1 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45f3f293c8ff6f6f7e6034bce57dc4bed1f06428acc2bb8247ab1d4d3f04eb9b +size 1328065 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp_Double.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp_Double.uasset new file mode 100644 index 0000000..061df84 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp_Double.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6989dd90306e209e58faefbc2e21cacaf9dc4eea07cf813b2be33e9c2d91de97 +size 2670836 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp_Half.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp_Half.uasset new file mode 100644 index 0000000..954b243 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Ramp_Half.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b6738dac1b17de4cd6aa8a7beee7004425e4f053056b75361e6a6b5e84ec8a5 +size 1417396 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof.uasset new file mode 100644 index 0000000..cadfed0 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36aa2c402d4fe87506f8f289e28d2adf25b0aee8230c48c42036e6fc64ed2a8d +size 1399749 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofCorner_In.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofCorner_In.uasset new file mode 100644 index 0000000..e509dcd --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofCorner_In.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:debb5d18d6a7cb1e09db344a65b4d4bdc7f33850e0bfb551d41ad437ab0ccb09 +size 1728429 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofCorner_Out.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofCorner_Out.uasset new file mode 100644 index 0000000..f176355 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofCorner_Out.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:130558d5d2bedbb2e4a873bf5438d5044b2d2f6fbed478f245e900a2374d5d6c +size 1632954 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofOverhang.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofOverhang.uasset new file mode 100644 index 0000000..17893c4 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_RoofOverhang.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de5ddddeb3072ee7918aac64713bf58d35d38bdb1f10aa80de8217158ff7eaac +size 831968 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_L.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_L.uasset new file mode 100644 index 0000000..09cb08a --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6792a3f7a4fcf120ede54d21a56c53cc6e43765d0c3240d281d2ac9910f6dbb4 +size 280813 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_L_V2.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_L_V2.uasset new file mode 100644 index 0000000..8906be4 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_L_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c26a1d7aaf20351a90bdbc16023cc67b11fdff4e656847edc666a9f6a8dda0c7 +size 276718 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_R.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_R.uasset new file mode 100644 index 0000000..2c1d635 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d4b27abd4007b5fb1308308319e1e3cba8633549d8b0d49abc56f750722995c +size 277185 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_R_V2.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_R_V2.uasset new file mode 100644 index 0000000..28bc94b --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_End_R_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aeecbc0a6c5b7e0d0e061e0e65dcee655e138080f60882062c2ab523a1092e92 +size 285826 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_Tri.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_Tri.uasset new file mode 100644 index 0000000..cf0ea30 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:280dcfa95416087fb48ce7fad9723771a613b54ffe142c05f9681379503f0518 +size 957752 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_Tri_Inv.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_Tri_Inv.uasset new file mode 100644 index 0000000..e2639eb --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Roof_Tri_Inv.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3d2177bc026cc5b2ea3169a47593ad4fa6f90c493f8bd80370840b5bce2b7ff +size 956746 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs.uasset new file mode 100644 index 0000000..97cce21 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07ff368ca4829e45ec957de24eb70f224d11f188322a7d1f1a43c48b242a00f5 +size 1897982 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_StairsRailings.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_StairsRailings.uasset new file mode 100644 index 0000000..a2786ce --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_StairsRailings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a40c8c253bbafe5d351a52890a05b9d0ce8f30620d86cbe74159a8f34e6670d4 +size 1579484 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Double.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Double.uasset new file mode 100644 index 0000000..647f90a --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Double.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12e5ae9a4a629488e82a0cd6e2d0b2d0c8cfe76ee3c377a0c07ec0a71ef28521 +size 3000426 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Half.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Half.uasset new file mode 100644 index 0000000..4a341fe --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Half.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d230ce2b0de99fe3cc4385e679bdd27283b3d45cd84b19ba5b918185b20570a +size 1529641 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Railing_Long.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Railing_Long.uasset new file mode 100644 index 0000000..e30a868 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Railing_Long.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abaedd16e6c928f96c80325be58949e18c9b1204e6709de4afec6b032588ccc5 +size 1291537 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Railing_Short.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Railing_Short.uasset new file mode 100644 index 0000000..65e8d54 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Stairs_Railing_Short.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4ab6950ad4357ae98e2f486bf7b52e13f99dfddaa6c69233db184daddd7d574 +size 738250 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall.uasset new file mode 100644 index 0000000..74c33c5 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ff6d43a62889cecc6aa87e47135eb4cdffbdc908913841483fcfe61aef4e2a3 +size 1856692 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_WallWindow.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_WallWindow.uasset new file mode 100644 index 0000000..8d3947b --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_WallWindow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d5652fa4d3167748e8f9b6603ef3c06ba4c4a3951799e383b942a67e3631bf7 +size 2455879 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_WallWindow_Large.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_WallWindow_Large.uasset new file mode 100644 index 0000000..a4eb5b6 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_WallWindow_Large.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2f81d7c8dfff6859f7ae837abea755fa1f62d21ae773b3d08c7cf03c19d93f7 +size 2063400 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_Tri_L.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_Tri_L.uasset new file mode 100644 index 0000000..97904eb --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_Tri_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cadd1271c1c90f48134c7e520632aade3b093e72bf75f044de9fce91290b2b1 +size 1473711 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_Tri_R.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_Tri_R.uasset new file mode 100644 index 0000000..eaa1c45 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_Tri_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:569c5f749ad3346cf6f03e52be276570fdbee2b7a68b6596b3595951cddc16cb +size 1486982 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_V2.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_V2.uasset new file mode 100644 index 0000000..18fb3fb --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23187c614b328d4c6a58505c8fb704f1725f079fac546a727cea5df6648b94b5 +size 864462 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_V2_Offset.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_V2_Offset.uasset new file mode 100644 index 0000000..c5c9bad --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Wall_V2_Offset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e01212f716cea579f95b70290c0d5ef544c3f63df460c5b4cb6d35351c9bf567 +size 864120 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_WindowWing.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_WindowWing.uasset new file mode 100644 index 0000000..8634dbe --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_WindowWing.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22d0d2f4d0f9a21f0a134bc81c0a920fd2221bf5462560e35a030394ef5c05e3 +size 31060 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Window_Closed.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Window_Closed.uasset new file mode 100644 index 0000000..a231857 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Window_Closed.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d6ec497c65ac19096771a18ce6029eff2b81111504d1cfba25f4d88665e69bd +size 198060 diff --git a/Content/HouseForge_01/Meshes/Metal/SM_Metal_Window_Open.uasset b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Window_Open.uasset new file mode 100644 index 0000000..9a4adee --- /dev/null +++ b/Content/HouseForge_01/Meshes/Metal/SM_Metal_Window_Open.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f15f51e6c9325a10efcff66169d149e131beced75242e1b19e5021b3dab2f2e +size 198345 diff --git a/Content/HouseForge_01/Meshes/Misc/SM_Forge.uasset b/Content/HouseForge_01/Meshes/Misc/SM_Forge.uasset new file mode 100644 index 0000000..5391f67 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Misc/SM_Forge.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16443f5631c5a1b857354efb8a8b35cf6541d4060c1c593027aee8e2126171c8 +size 2835232 diff --git a/Content/HouseForge_01/Meshes/Misc/SM_Rug_01.uasset b/Content/HouseForge_01/Meshes/Misc/SM_Rug_01.uasset new file mode 100644 index 0000000..820ebd2 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Misc/SM_Rug_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ed813be942b69ea92e9995efaf648c5c394938ebcc27858bd980c15805e4eba +size 247594 diff --git a/Content/HouseForge_01/Meshes/Misc/SM_Rug_01B.uasset b/Content/HouseForge_01/Meshes/Misc/SM_Rug_01B.uasset new file mode 100644 index 0000000..8e8752f --- /dev/null +++ b/Content/HouseForge_01/Meshes/Misc/SM_Rug_01B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39b14b0d134c6926d5a0bd4d1655ae7ac956a298ec8b1bc4c8c6c1151de228cc +size 246785 diff --git a/Content/HouseForge_01/Meshes/Misc/SM_Rug_02.uasset b/Content/HouseForge_01/Meshes/Misc/SM_Rug_02.uasset new file mode 100644 index 0000000..3968633 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Misc/SM_Rug_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b66ae4216664e51c011a47e905581001d6ac5c274be9d52a5f5697258686fbe +size 249889 diff --git a/Content/HouseForge_01/Meshes/Misc/SM_Rug_02B.uasset b/Content/HouseForge_01/Meshes/Misc/SM_Rug_02B.uasset new file mode 100644 index 0000000..4b14722 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Misc/SM_Rug_02B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:157f26b866723c5fb8231a57046772887efd09d35fdfb977f22316a8862323a2 +size 249891 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Border.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Border.uasset new file mode 100644 index 0000000..bc56ba3 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Border.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b96ff65d7248801c7b39bda69a53cecd2cea6cefd79a7a7de327a688c76951a1 +size 3017336 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ceiling.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ceiling.uasset new file mode 100644 index 0000000..a54d1ed --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ceiling.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb145f65831515863c5c98aace04706ec508c67279a94e1ac8133f72fa9c48f7 +size 5530581 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ceiling_Tri.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ceiling_Tri.uasset new file mode 100644 index 0000000..e55684d --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ceiling_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49fc4420cebc32cd80d45eeae3fb71ecba23e4f98690835f7077de80168ee894 +size 4505913 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Door.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Door.uasset new file mode 100644 index 0000000..d2f35fb --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Door.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45206a933cafa9d77938902edb941a1bb3c5ece9621f80a4342a78ee3805c9d1 +size 3996014 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Doorway.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Doorway.uasset new file mode 100644 index 0000000..f666bca --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Doorway.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:849c9cb9ee71c8224511ebaed0236cbebe2be1059d831b8acc9c4ca902144a03 +size 8595806 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_FenceFoundation.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_FenceFoundation.uasset new file mode 100644 index 0000000..ce0d6fc --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_FenceFoundation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abe50157e0283888150027c38b519bbc15c6123e764c2d3e01de2e564bf4f1af +size 1320602 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Foundation.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Foundation.uasset new file mode 100644 index 0000000..ed29a38 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Foundation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cb6405c68e7ba20508016c3bd0645f24bb24589b583602f45802994b9d54537 +size 2192233 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Foundation_Tri.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Foundation_Tri.uasset new file mode 100644 index 0000000..1176f11 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Foundation_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:143dba24d1f567baaaa0a970353f21415e80680a173776f909042c12d6770643 +size 1697577 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Pillar_01.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Pillar_01.uasset new file mode 100644 index 0000000..7c224ea --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Pillar_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e296a46d9b26b2f7e6ad99133fdb667e5a5fcd5218d6de4ba889feada2e42228 +size 828267 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Pillar_02.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Pillar_02.uasset new file mode 100644 index 0000000..3f1b8cf --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Pillar_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f680e9e9dcee46334b1ce231005e6e24a93d0bd399bf9b4390d656a4fc3df68 +size 642564 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Railings.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Railings.uasset new file mode 100644 index 0000000..277bbc3 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Railings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b67eef01b518fbff4bfa41fcdb93416f9aaae879e80c4ba4bb33b391e8bf41af +size 6010350 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Railings_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Railings_V2.uasset new file mode 100644 index 0000000..54dea1f --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Railings_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3a4c6d8df962941d1ac9a71ec58f31c6dbc96c69462ab374cf4a17872eefcc8 +size 2992048 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp.uasset new file mode 100644 index 0000000..b9bd2cd --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b67e7ec889ea656d5e403b8ed9dfcce16a12bdb6f1b4e26b315b86bddb4da22a +size 9996261 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp_Double.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp_Double.uasset new file mode 100644 index 0000000..650bf14 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp_Double.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67f3e9de59cb279e49b0ddcd97ca642e50e521faae6e637def50436398a9ac09 +size 22946466 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp_Half.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp_Half.uasset new file mode 100644 index 0000000..95da660 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Ramp_Half.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c54db967efb705ff4f2b10c6fb88ac2d1185bf0c3cd88100c5b9c420c0f9fc6a +size 11597804 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof.uasset new file mode 100644 index 0000000..9b56658 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aaa68440ba032ac320f1e7f5c70661ffb1aa18b135ae9769eddcbbac289d3ccb +size 5903586 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_In.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_In.uasset new file mode 100644 index 0000000..dc67626 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_In.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64025637c78f375e9ae18b0cc9b4bb025d8c5099f1d22f74986c70b3a64ce655 +size 8920626 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_In_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_In_V2.uasset new file mode 100644 index 0000000..6f73c49 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_In_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:997dfe3d732961abf13ebeb97aa2cbd7bf59c2852ad0b7132e4515cf22748ab3 +size 8901104 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_Out.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_Out.uasset new file mode 100644 index 0000000..a81bbfa --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_Out.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db3c1be371a282130089b998e8687d98e8fc3a8ae2cb6a06e566db3b0df91f27 +size 8205428 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_Out_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_Out_V2.uasset new file mode 100644 index 0000000..e411274 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofCorner_Out_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8d36cd261369d2bf88f3def58853779f029a8bd8da22f0ca67368129c845d65 +size 8175894 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_L.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_L.uasset new file mode 100644 index 0000000..6dfedeb --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e49d49e8707cb930394353b1c3c7b1d5184846669f9146044234c5478ce9560d +size 6172615 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_L_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_L_V2.uasset new file mode 100644 index 0000000..0904c7d --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_L_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ace80669530dfd8d0d710d52925f3c59112472b1f8c743a0119f74f3be1eda11 +size 6099338 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_R.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_R.uasset new file mode 100644 index 0000000..54f3304 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0d85f274d87ba079b6d6602b00d92b372f49b3e09aed1140e0d4f7c2dd78762 +size 6128150 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_R_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_R_V2.uasset new file mode 100644 index 0000000..5c7ae45 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofEnd_R_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7acdb00c9f96bf775160f28cdf4aba04c82f4cc00359915047fdc96b8b96bf22 +size 6134177 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofOverhang.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofOverhang.uasset new file mode 100644 index 0000000..dbdaf8b --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofOverhang.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41c6dafdcc3d2e6b4d11dc36226711f2640cd00af0f70d749bbd66e0aa47a7f3 +size 1645000 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofOverhang_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofOverhang_V2.uasset new file mode 100644 index 0000000..ff4a9b7 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_RoofOverhang_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f12b5135296b67816bdb1ac18ad9e08ec58dff72826b496f2fe9ba428b5cef5c +size 1611522 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri.uasset new file mode 100644 index 0000000..92ad5b4 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9d7ae87949c974107e1900b3e5c740154e2c033761e0705df43b9e1a4d3a8a7 +size 4033338 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_Inv.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_Inv.uasset new file mode 100644 index 0000000..7160948 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_Inv.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fab15b8e5a0bbe22e2b6c804efcb820d9bcec3843d9f1fde33a4fc018bb1f00f +size 3890240 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_Inv_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_Inv_V2.uasset new file mode 100644 index 0000000..5405ceb --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_Inv_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3044a840b0d93e6b048f034aec091e11ed1d8c6d652924b60856f730536f976c +size 3878621 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_V2.uasset new file mode 100644 index 0000000..3e57917 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_Tri_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16d7668988e065139fb47bba5f3b297fae28a14a7c8d81e9522050106063e95f +size 4025281 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_v2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_v2.uasset new file mode 100644 index 0000000..f50dca7 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Roof_v2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95890fb10f2381043376002d3b443a59abd888a7afa911f22bdab1635d224616 +size 5859055 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs.uasset new file mode 100644 index 0000000..e3ca042 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c99e7826dcbd9e3346eb2b5d6c87c53dba24869fa7839bc945dbeaca14f7446f +size 13626970 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_StairsRailings.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_StairsRailings.uasset new file mode 100644 index 0000000..ec55f6f --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_StairsRailings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b851b0e87385edbbbdd58c5d01d8269960d85a23f5c4739d64d0071966500b30 +size 3027468 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Double.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Double.uasset new file mode 100644 index 0000000..6ab60c9 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Double.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1343f3249afd04b4d76171c7ad09f24f8327fe9999fea66836d25506338a42e +size 20066180 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Half.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Half.uasset new file mode 100644 index 0000000..5bdc948 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Half.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:260ff410a9007db229d968a95dd30a8cc719a44f24cbe017b9b9612633fdf884 +size 10372644 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Double.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Double.uasset new file mode 100644 index 0000000..9888c11 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Double.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94eb947c506c10f641a25eb17fcd8f95c86e34d6dfaa66f9084d8b423a554e9c +size 4923208 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Double_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Double_V2.uasset new file mode 100644 index 0000000..2c7e1ab --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Double_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8982b28c0cb7843e503ac83326972e5b6a3519f1ba8cf33674c2117c204c2cb8 +size 4777207 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Half.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Half.uasset new file mode 100644 index 0000000..86081ba --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Half.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d5ba94490da8d977e12c1278c39643b461ce867982b06f0832ebaa5848634e1 +size 2553305 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Half_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Half_V2.uasset new file mode 100644 index 0000000..582035b --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Stairs_Railings_Half_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00e4928b764fa8e8a43ddbe3782557c2840f1255509faae19d9707aa70124bcd +size 2502151 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_01.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_01.uasset new file mode 100644 index 0000000..7e352ab --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be68f9af151c78fc1238d0846060e7b03f3d1bfbc9ffb6534f80c346445a5df6 +size 70530 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_02.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_02.uasset new file mode 100644 index 0000000..08d37fb --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c950a0f58ede21deff948698459fb67e11bc4cd151bbb33e6b2794a4d9bae00 +size 45523 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_03.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_03.uasset new file mode 100644 index 0000000..ec91f30 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_ThatchClump_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:776b9647a9ed1ab0a07ce1251a6cc055dd4dd1d2c0fd9e05f20e54fea4beb904 +size 33527 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall.uasset new file mode 100644 index 0000000..f9e999a --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd3ee3b459d95d78c1a3268ffce038adb8eb58bd559988445841edcdc30325f6 +size 3302307 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_WallWindow.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_WallWindow.uasset new file mode 100644 index 0000000..e202968 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_WallWindow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8ad2097fb17d971a33afe3db1e59207d23412a76ca3231ecffdbe7ef073430c +size 8442805 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_WallWindow_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_WallWindow_V2.uasset new file mode 100644 index 0000000..25880f6 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_WallWindow_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:503a472586ce26076e23f8439de9e58ddddf345e30900a85a8fe2e68bd058b39 +size 8663163 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_Tri_L.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_Tri_L.uasset new file mode 100644 index 0000000..d470a6f --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_Tri_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2099da83384bb5cf8df57b11830c8931d3229700323d9802b2633f6082414b8 +size 2947869 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_Tri_R.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_Tri_R.uasset new file mode 100644 index 0000000..4382ad7 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_Tri_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2982e42f3469425003eea539e9a2b6bb8c23bfe836cc2218d8e283c3eb17350e +size 2996488 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_V2.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_V2.uasset new file mode 100644 index 0000000..292d94e --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Wall_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f36bbcdb433baedb8b0c6ecee9d3f14c4dd8bf70d7715224af1eccf710f710b7 +size 3817369 diff --git a/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Window.uasset b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Window.uasset new file mode 100644 index 0000000..c544748 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Primitive/SM_Primitive_Window.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad33a2bf894548fceec72f0badfcf0a3827f420265c647d4e84c12c2cafb01d8 +size 1492901 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Door.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Door.uasset new file mode 100644 index 0000000..3b8f149 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Door.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32478ca7f57c342ddb5d05f414f1c2dabac3b7d178d844444f2e0dca90cf6fd2 +size 38073858 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Door_Arc.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Door_Arc.uasset new file mode 100644 index 0000000..5e8d36f --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Door_Arc.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:163900535a17a88386f27bc4018cefc055879e1f0448819a2c16a1f42f6358e2 +size 47703624 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window.uasset new file mode 100644 index 0000000..fd6413c --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3d743730231edf3357c525a088721453c94b71d15bdb927cf3f0c09112a54b9 +size 25213222 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window_L_Arc.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window_L_Arc.uasset new file mode 100644 index 0000000..080d8f8 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window_L_Arc.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:425df7f61333e2841fe9b1574154302ac2d105d4d072cce37c5be034a5939411 +size 34665562 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window_R_Arc.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window_R_Arc.uasset new file mode 100644 index 0000000..51bfaeb --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Reinforced_Window_R_Arc.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8cd4b5cfb818f5e7afb6e9fa00667edb531398e1f6fba436774a617dc4a9be9 +size 34484479 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_StoneRamp_Double.uasset b/Content/HouseForge_01/Meshes/Stone/SM_StoneRamp_Double.uasset new file mode 100644 index 0000000..f86126e --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_StoneRamp_Double.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bedd656a813f0a53c2ba6fdfea573fdea7895db4dcf5912cd6422b06176c316 +size 74100453 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_StoneRamp_Half.uasset b/Content/HouseForge_01/Meshes/Stone/SM_StoneRamp_Half.uasset new file mode 100644 index 0000000..6017c27 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_StoneRamp_Half.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c37539cf15ca92834528f4c7da40694a5e19e41d200a800e7382ea9f83ca11b +size 40799308 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Border_01.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Border_01.uasset new file mode 100644 index 0000000..30f2b64 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Border_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:456c0cd81cf11efeb800dd52567d32bd2d115abff50072709dd4e01119904c8f +size 3717823 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Border_02.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Border_02.uasset new file mode 100644 index 0000000..cdcc676 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Border_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d475ba69db535363dfe00b6c8d9aeb01b1d29aac6e92cce58c01fadb28607150 +size 4403676 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Ceiling.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Ceiling.uasset new file mode 100644 index 0000000..f503dc8 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Ceiling.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59a93d4fe35c3ce16db7fc388b6e7806b47952c782a452fbb95829de449f52ec +size 44958598 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Ceiling_Tri.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Ceiling_Tri.uasset new file mode 100644 index 0000000..942dbc7 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Ceiling_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6eb9106320962114b8770d2ccd30ad511023e4066b4921787b7d300d7c0e3ff +size 18769607 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Doorway.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Doorway.uasset new file mode 100644 index 0000000..acb823f --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Doorway.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:050deffb58e90b9e257586dd2138fae27df8687b46677452b54e36ac71593497 +size 36208491 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Doorway_Arc.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Doorway_Arc.uasset new file mode 100644 index 0000000..e1d84d9 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Doorway_Arc.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2135890792a5e9859a4c67a33d7ca1e16e1f45695e75063b368eaebd28b4c102 +size 35322154 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_FenceFoundation.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_FenceFoundation.uasset new file mode 100644 index 0000000..991fec6 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_FenceFoundation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8af8b5fbc00ed43a79e7bd31e63eae25feee05a0bb4e2075766cddf24237ade2 +size 2242459 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Foundation.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Foundation.uasset new file mode 100644 index 0000000..c1a547b --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Foundation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c18c7eff9ecb77d9537c190e56dd7425e286dab9e46af44dad513224b0c38ca2 +size 126040185 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Foundation_Tri.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Foundation_Tri.uasset new file mode 100644 index 0000000..679d40a --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Foundation_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42c1490b31b2dbee72af3ac512de0a6cabedc9d9c9ee166822006c1ed05f32b3 +size 88496067 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Pillar_01.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Pillar_01.uasset new file mode 100644 index 0000000..e0c4608 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Pillar_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:295d7b1492e18f3a1f6e76b299b2eb5da5c857bda8ad38e6a00322728066ece7 +size 4929782 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Pillar_02.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Pillar_02.uasset new file mode 100644 index 0000000..d32ee6c --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Pillar_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9840b493eb26025be02507725e6232f5748e17302bc4bb8d9626c2177c49aedc +size 766502 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Railings.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Railings.uasset new file mode 100644 index 0000000..5f97a1e --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Railings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f05c8c54c1fc63739c112c2e6c7aab3cd1c10324b27f17b4f0b6b138e60398b +size 5884085 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Ramp.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Ramp.uasset new file mode 100644 index 0000000..66abb96 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Ramp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:778c65345b0d389fbeb7cdde6ab805463fa0477d746aa0e045505d6ae6978de5 +size 40593701 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof.uasset new file mode 100644 index 0000000..8e1578b --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f25972cad3e34b92b23c356ab3355423b3750b0192a0c341414978007409d35 +size 18926953 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofCorner_In.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofCorner_In.uasset new file mode 100644 index 0000000..b61c2c4 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofCorner_In.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:090e5c64516af04dc038215ab408b9b9949a23a9a5c08da57daaea71b4162e3c +size 18595221 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofCorner_Out.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofCorner_Out.uasset new file mode 100644 index 0000000..ca2f41f --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofCorner_Out.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:519a8bef5932ef5cbab90575b42e47361c0dbc748f40560d64a9551d5cbc3f61 +size 21832145 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofOverhang.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofOverhang.uasset new file mode 100644 index 0000000..819e088 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_RoofOverhang.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aae037635b1c272abe26628418f45a9a3332a06bf050afb51fd7ee4a7c35d22 +size 3016557 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_L.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_L.uasset new file mode 100644 index 0000000..dbb6149 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2799228a8474754d5000630a993f0a342e66848011c433741b1301c26d767d67 +size 6690047 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_L_V2.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_L_V2.uasset new file mode 100644 index 0000000..b6fe59a --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_L_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f67dfc55a28db1b4faf603e18d92d7d05b24da651607e4463f32a2da501b203 +size 6529237 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_R.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_R.uasset new file mode 100644 index 0000000..5e84f33 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd263f1cb9926e95f196508d4c929f111cf177f6df3f549d2acb23d6a05e977f +size 6936915 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_R_V2.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_R_V2.uasset new file mode 100644 index 0000000..7ab0baa --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_End_R_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2e669aa8b0ca31fb3c67f87e8147301b56224899af682f2e203df02781b6270 +size 6707428 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_Tri.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_Tri.uasset new file mode 100644 index 0000000..5eef401 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:137d502525b465d7a26f26d6d1d29ea34358aac4cddd7be9ce5b65888e0d84f3 +size 9337036 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_Tri_Inv.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_Tri_Inv.uasset new file mode 100644 index 0000000..79e2d25 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Roof_Tri_Inv.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db61013cb918dedba1ca76fd0c00426039ddf10f3ba87d1e29ece98db21d4a3a +size 8977627 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs.uasset new file mode 100644 index 0000000..c4d5a20 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94c157df9ea396096d3086c84b4f9be95ba76c20c9f911815ccb735a4910a61e +size 44156587 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings.uasset new file mode 100644 index 0000000..90d8759 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e419c48feaf42989ed1799e4ecf773caf2851c6b6f4ed27506e5f74e997b6baa +size 2893360 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings_Half.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings_Half.uasset new file mode 100644 index 0000000..0cb45b4 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings_Half.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50f7ade4e198b48cc7e12e10ac47356f1a5f11a6cb1cbe27ef3653ebf5fa7a60 +size 2781150 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings_Long.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings_Long.uasset new file mode 100644 index 0000000..4707d32 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_StairsRailings_Long.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1eeaf651399ff4779f38573dd5bc6ea9668e4cb1aaf262818af9b5815907e518 +size 5396582 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs_Half.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs_Half.uasset new file mode 100644 index 0000000..b3272e7 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs_Half.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e0085860d326c9c236d4d8071788a691371e46b385de7ec5b51139c717dd44a +size 34977082 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs_Long.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs_Long.uasset new file mode 100644 index 0000000..91b525e --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Stairs_Long.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7301916ffb929a0bbee434599784c9a108e31ff5004f867989646a1776879654 +size 69393951 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_Wall.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Wall.uasset new file mode 100644 index 0000000..87c86dc --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaee20842d6f71177e3b1a3d6d9fa3c0b03b0d5ee96ef8e0f61dac1b4f08375b +size 40196957 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_WallWindow.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_WallWindow.uasset new file mode 100644 index 0000000..abd88d6 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_WallWindow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9aa9cd25d24dd3086a74f3ccb9fd6e4b47f9e4039776f194bd7ec01843100e23 +size 51457293 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Stone_WallWindow_Arc.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Stone_WallWindow_Arc.uasset new file mode 100644 index 0000000..b0635bf --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Stone_WallWindow_Arc.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7f127f70971604e0e2225fee39b8d42e174263d942bd1a939d14356917ee3c2 +size 52475867 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Wall_Tri_L.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Wall_Tri_L.uasset new file mode 100644 index 0000000..e6de952 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Wall_Tri_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09e1646cc8b899fcdb109a46c94371deefe50043b2f52158de9b30f04c517ce3 +size 27201753 diff --git a/Content/HouseForge_01/Meshes/Stone/SM_Wall_Tri_R.uasset b/Content/HouseForge_01/Meshes/Stone/SM_Wall_Tri_R.uasset new file mode 100644 index 0000000..cf48eaa --- /dev/null +++ b/Content/HouseForge_01/Meshes/Stone/SM_Wall_Tri_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:071bf58c18d27e86d6e8fc52424aee915a90695a44f964727b9febc73cfaf0b4 +size 25535691 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ceiling.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ceiling.uasset new file mode 100644 index 0000000..7de490f --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ceiling.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:599d8e7d15cc1c2889bd24768d9cd025fa456e7be77777f3e590336f8e9bac53 +size 44893053 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ceiling_Tri.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ceiling_Tri.uasset new file mode 100644 index 0000000..afc251a --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ceiling_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dd8fdda55018a813b327f60352803aab0039402f7c743494c4a983fedb31f29 +size 13880377 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Door.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Door.uasset new file mode 100644 index 0000000..b20d189 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Door.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a31cda390f6012bd3cd0743a829986c4b23be9d056a7f93633814d1a43907935 +size 39023546 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Door_Arc.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Door_Arc.uasset new file mode 100644 index 0000000..bbd9f47 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Door_Arc.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31075cb7d4792d3f0559edf389cc66a9c37ce51fb01847795b58201f2f761930 +size 39668604 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Doorway.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Doorway.uasset new file mode 100644 index 0000000..678a13b --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Doorway.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f75bbb126a70b75cac810789e8dc4303fa1a7e43d431290c429cbec0d6bd8fb1 +size 46648330 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Doorway_Arc.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Doorway_Arc.uasset new file mode 100644 index 0000000..7497452 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Doorway_Arc.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b017346759a57e9c3410a2cf1d9fbdbf3fd54fbb02e573f14d540441ba16e696 +size 26091116 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_FenceFoundations.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_FenceFoundations.uasset new file mode 100644 index 0000000..cf3c506 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_FenceFoundations.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7111222639879208f949c23942b67d7fcfccd510f11c77677d6641324a8b1b3b +size 10455343 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Foundation.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Foundation.uasset new file mode 100644 index 0000000..304354a --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Foundation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b07fa6e364a71e3558dfe66dfcaf3c2b25d7f269420ed5d5aa0f05e064d56048 +size 71861992 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Foundation_Tri.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Foundation_Tri.uasset new file mode 100644 index 0000000..81c5be3 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Foundation_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78091706ac58fc74c2d15067a7ffa81c91a1a364790fe8f37bf32a87fb027edb +size 54603672 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_01.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_01.uasset new file mode 100644 index 0000000..2bf1f58 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c16b97fbeb41e616d8000d06adbe32ff1a4c1130f89a2040031a37553ff4f0e +size 7453569 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_02.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_02.uasset new file mode 100644 index 0000000..a1eecd4 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f93b327ead5ba1dd2448bffc7d5b6e8c3609a556eb6e0800572a86d0476b811 +size 9973805 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_Arc_01.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_Arc_01.uasset new file mode 100644 index 0000000..0d80422 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_Arc_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:497f2edce3bec949c008b3045a5c912e84a1ddc62c3cd7b10dd3e0ba1797e167 +size 7443531 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_Arc_02.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_Arc_02.uasset new file mode 100644 index 0000000..d53dbd8 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Pillar_Arc_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d25c129ecdb7c500b85a7642c6afd14ebf9e7130883387f1fd24583e3e98379c +size 7449537 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Railings.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Railings.uasset new file mode 100644 index 0000000..61db091 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Railings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21c6b58824457e738717150a64454829455640b71dc5b6bce52b5ca972f91fd3 +size 56179814 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp.uasset new file mode 100644 index 0000000..8095463 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c2b4134512b51c727a211adc794a4f16f054a5f99b7fab14f8e8af8aaa0c007 +size 29326687 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp_Double.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp_Double.uasset new file mode 100644 index 0000000..15a1305 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp_Double.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:536a79d83200e426bc686a76a8ff7e25d702763ea3bff95def0be072d45cfa85 +size 51410828 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp_Half.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp_Half.uasset new file mode 100644 index 0000000..1637e81 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Ramp_Half.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:511525e5838df645c1f6f8a35289d0a3a4b90dec349d048e3e329b6e7e203f55 +size 29331883 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof.uasset new file mode 100644 index 0000000..41d1954 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc61a28d3c67eb6d7423c8b57ba101a8b43673309e5a04323ed55d2b9a0a9268 +size 134171275 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofCorner_In.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofCorner_In.uasset new file mode 100644 index 0000000..88e0a09 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofCorner_In.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:610fef352b7d5fe932acf9d3e10dad55ecb1658826a41cd655726a1dbc2b4ae1 +size 128043656 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofCorner_Out.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofCorner_Out.uasset new file mode 100644 index 0000000..1d94933 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofCorner_Out.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b407231fb094a5acdfa4dffd399a11536a23a3d28cc2bb0587d48c67e8673c06 +size 145351564 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_L.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_L.uasset new file mode 100644 index 0000000..f1832ed --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d95552feb5dfa6bc8feba9bec42683153c5e099a31516e5cf45804fddce33f6b +size 54231915 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_L_V2.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_L_V2.uasset new file mode 100644 index 0000000..9b97598 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_L_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8199d116bd30b1048aa35e57d16c9f7ff4596eabc7588c815bcea28cb6340c7 +size 46893082 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_R.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_R.uasset new file mode 100644 index 0000000..27cc1e4 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e9c2c253a17759dd97edeb32f654b673997238b24db6361fb1c4a5c4893bc14 +size 46587892 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_R_V2.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_R_V2.uasset new file mode 100644 index 0000000..852c8e6 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofEnd_R_V2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a2a14d2f8159c4b19872e5745f1fbbe504477e27a5bba2bdf07a00dceefdbff +size 40323334 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofOverhang.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofOverhang.uasset new file mode 100644 index 0000000..98b0270 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_RoofOverhang.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e276199f0c798c06bdb9752f644a87da548cd6375b7642e692a95fa6b76562dd +size 16805956 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof_Tri.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof_Tri.uasset new file mode 100644 index 0000000..504db4b --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof_Tri.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:667b8dc89a4d473ded4544055423fea5b395519a78970ae0b6aef388485671f8 +size 62768148 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof_Tri_Inv.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof_Tri_Inv.uasset new file mode 100644 index 0000000..3b676c8 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Roof_Tri_Inv.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46ab8baae13aec82a36c3df721761e214e13aefa76bb47cfa350d2c12d1d7bc2 +size 62086019 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs.uasset new file mode 100644 index 0000000..05cd664 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa9a11cc29b064fcea75efc1db09486bc8757620d1ae75035fcfe292eb45b40c +size 85978690 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings.uasset new file mode 100644 index 0000000..0bfff94 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffefa9d3f30229098a247090836e82172e667c93243b0f98cdf51f7d0c82e5ee +size 64721305 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings_Double.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings_Double.uasset new file mode 100644 index 0000000..17d5e8d --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings_Double.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b46102736f70b122f81ec2dd661a40e5b64402b014e5597a442cb62a9d13549d +size 146686111 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings_Half.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings_Half.uasset new file mode 100644 index 0000000..cef4d7c --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_StairsRailings_Half.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c542de2ee65ef6df12a6edc906f030560415808106ff1e1ac32630731e7f1985 +size 73354095 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs_Double.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs_Double.uasset new file mode 100644 index 0000000..4558958 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs_Double.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dc9497d52550881b60c7708a7ababee59b7d63504f766c0dc8ce6ae214eeb08 +size 136188393 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs_Half.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs_Half.uasset new file mode 100644 index 0000000..c11f980 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Stairs_Half.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a8b5278a86e9d2496e629366c54232a8e0b6a3ef2cd800577153df223a359f3 +size 68254029 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall.uasset new file mode 100644 index 0000000..1b93e3d --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b699e3795f4d6a2ee3d9741514f4f536f5d46359618a75647a586d865684ddab +size 55619129 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindow.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindow.uasset new file mode 100644 index 0000000..2c7535c --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b499bab2e6e7bb9974b40292a0840e7a31880e64e5aaffe19c338f8cf50a888 +size 71587467 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindowLarge.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindowLarge.uasset new file mode 100644 index 0000000..f89f4a7 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindowLarge.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b12b67aecfe6906733cd99a88ad226d6ddb6529e1ef8c8649169f30f70f9ed7d +size 68208412 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindow_Arc.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindow_Arc.uasset new file mode 100644 index 0000000..acf829e --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_WallWindow_Arc.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06b84fe5a41cd44762ee425c3608d2ff9e7d4a22ee4a4abddd27613e6762d021 +size 70142644 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall_Tri_L.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall_Tri_L.uasset new file mode 100644 index 0000000..0949c39 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall_Tri_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0255088380d2ea29cd29873a22fc4367c6eac4bba2642ab2bbed2ea441fafca0 +size 21028020 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall_Tri_R.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall_Tri_R.uasset new file mode 100644 index 0000000..c695160 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Wall_Tri_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:835e3e7a9e6981938d36d492b7924fdea8adc1f73da7a3db2f3f19891b26fe55 +size 19069555 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Window_L.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Window_L.uasset new file mode 100644 index 0000000..ebf74ac --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Window_L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ce5c7e05c3a6f051a6d86031a5b8b8e181b5a65d11acb05441c40152ae3fad7 +size 32737454 diff --git a/Content/HouseForge_01/Meshes/Wood/SM_Wood_Window_R.uasset b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Window_R.uasset new file mode 100644 index 0000000..56c2e05 --- /dev/null +++ b/Content/HouseForge_01/Meshes/Wood/SM_Wood_Window_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4da0718d075f2a6c4afa6b58044b5361a94d65f39d8f3845197677251762356b +size 31768421 diff --git a/Content/HouseForge_01/Prefabs/P_MetalHouse_01.uasset b/Content/HouseForge_01/Prefabs/P_MetalHouse_01.uasset new file mode 100644 index 0000000..5fa0671 --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_MetalHouse_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0b07399a034edb1c6cad54e7ebd123860f7413f70cec634eb48d32cf0bc84f3 +size 314691 diff --git a/Content/HouseForge_01/Prefabs/P_MetalHouse_02.uasset b/Content/HouseForge_01/Prefabs/P_MetalHouse_02.uasset new file mode 100644 index 0000000..261f667 --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_MetalHouse_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cae19388073345bab6b2c3ce36bc5a7defca527eb90945013cc9dec6ed050b2 +size 384999 diff --git a/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_01.uasset b/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_01.uasset new file mode 100644 index 0000000..29a6375 --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:251754f8ed14a4ca0dde619288292fb2c1845c0bc7a5379f932878033699d5ad +size 104126 diff --git a/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_02.uasset b/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_02.uasset new file mode 100644 index 0000000..e438e8b --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a8f980e63674c86312b086f5c339329270639f95c1a4b3b5d3520eb292fb5ec +size 83826 diff --git a/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_03.uasset b/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_03.uasset new file mode 100644 index 0000000..aced97c --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8308f4cc9120ece87344cd3680bfb2f9d811d53de62f0525e7fdca70b6f39cdc +size 175944 diff --git a/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_04.uasset b/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_04.uasset new file mode 100644 index 0000000..d6164b8 --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_PrimitiveHouse_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b456973b330a74a619c002bfb1b7dfb3951fb579c94210a2a52f005a6f9bbc7 +size 185067 diff --git a/Content/HouseForge_01/Prefabs/P_StoneHouse_01.uasset b/Content/HouseForge_01/Prefabs/P_StoneHouse_01.uasset new file mode 100644 index 0000000..db3e9c5 --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_StoneHouse_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:896d7dba5662878d78b3acd73bc56ebcac7228b5159db74eb1c48a3380777b39 +size 405497 diff --git a/Content/HouseForge_01/Prefabs/P_StoneHouse_01_Interior.uasset b/Content/HouseForge_01/Prefabs/P_StoneHouse_01_Interior.uasset new file mode 100644 index 0000000..495910c --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_StoneHouse_01_Interior.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adee420502f1455ba650d2f3eb26329fdfe8e23cd2d234626d1a4704396111a6 +size 1092901 diff --git a/Content/HouseForge_01/Prefabs/P_StoneHouse_02.uasset b/Content/HouseForge_01/Prefabs/P_StoneHouse_02.uasset new file mode 100644 index 0000000..56db708 --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_StoneHouse_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:721b513ecff99936dc53b7b9cf77f9be1587ca91bba9ffe571796b999cf803d8 +size 287254 diff --git a/Content/HouseForge_01/Prefabs/P_WoodHouse_01.uasset b/Content/HouseForge_01/Prefabs/P_WoodHouse_01.uasset new file mode 100644 index 0000000..bfac485 --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_WoodHouse_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c59b9acbbf74189ae05d8adc7029c66e8a2e57abc54d24432214543bcf7421f7 +size 208639 diff --git a/Content/HouseForge_01/Prefabs/P_WoodHouse_01_Interior.uasset b/Content/HouseForge_01/Prefabs/P_WoodHouse_01_Interior.uasset new file mode 100644 index 0000000..921ad92 --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_WoodHouse_01_Interior.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8dee1b945edffdbdaca935524934a7cfc8330da61199dae2e4acecad7dfa772 +size 641649 diff --git a/Content/HouseForge_01/Prefabs/P_WoodHouse_02.uasset b/Content/HouseForge_01/Prefabs/P_WoodHouse_02.uasset new file mode 100644 index 0000000..5926910 --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_WoodHouse_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06f79f4738eac4dbdab398d6ad780f32d849708d6d637d03263139df17622f41 +size 103437 diff --git a/Content/HouseForge_01/Prefabs/P_WoodHouse_03.uasset b/Content/HouseForge_01/Prefabs/P_WoodHouse_03.uasset new file mode 100644 index 0000000..1ee5401 --- /dev/null +++ b/Content/HouseForge_01/Prefabs/P_WoodHouse_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0ad8ca10ff260dfd9685d6c2f576d7c771e5b0a2462dda0368059cb7e9e27e8 +size 225871 diff --git a/Content/HouseForge_01/Textures/Metal/T_MetalWall_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_MetalWall_BC.uasset new file mode 100644 index 0000000..63fc968 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_MetalWall_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b8c4897beac72546c570e9f2aae2d3a37fa251070d3fc7277000f83d33c9650 +size 1664279 diff --git a/Content/HouseForge_01/Textures/Metal/T_MetalWall_N.uasset b/Content/HouseForge_01/Textures/Metal/T_MetalWall_N.uasset new file mode 100644 index 0000000..b1972e5 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_MetalWall_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2830c20f101498fe4d383e9664f0f13bc14f1c3ff4d98dc17574db8dfae42412 +size 1889985 diff --git a/Content/HouseForge_01/Textures/Metal/T_MetalWall_R.uasset b/Content/HouseForge_01/Textures/Metal/T_MetalWall_R.uasset new file mode 100644 index 0000000..9531b62 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_MetalWall_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:332b39da7935c2ff9eb723427a81353df1b2889254c87e85a0015ca7395735bc +size 1480663 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_BC.uasset new file mode 100644 index 0000000..9b9588d --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b16e11df4cfc6feac4611ad966f249e8d024f980f4e6d21b45dd1984e72caf93 +size 1144729 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_N.uasset new file mode 100644 index 0000000..cfddad7 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c97451492646176171cf7a899240eb0bae69fd5c48d9379c736146acf2abc7d +size 2362336 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_R.uasset new file mode 100644 index 0000000..b64436d --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Ceiling_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28169ee8554dd16f9f190f60b20b1dcc9f4623af656b69fb1d876a6b01d937c6 +size 1641818 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_BC.uasset new file mode 100644 index 0000000..0afdb15 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:824d5c92db20f504944da32e932e3b1cd23e81ec87447e7a9cf83feed2a10e9e +size 1456717 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_N.uasset new file mode 100644 index 0000000..b6a0c8a --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06bd5b8ce9783f5140d83d6e83d1766ce826b89e47a544bad782500c67ad30e6 +size 2555035 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_R.uasset new file mode 100644 index 0000000..2710495 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_DoorNWindow_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6776c3434653115713745583103a985c3696296689d5c630b7207e7dc1e4bd8 +size 1831052 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_BC.uasset new file mode 100644 index 0000000..2a5a008 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe9e3cd71296ef85bffa2c927c6c916947bf2962a9277115f709a2275d9bc64f +size 1824528 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_N.uasset new file mode 100644 index 0000000..d83ddea --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a695c5dd44e48c6d5bc5cb20a81b14efc3c4a12ca7b035401f0dd99ae6797c1 +size 2381829 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_R.uasset new file mode 100644 index 0000000..e517b71 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Doorway_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9a7cbd73af2eee4c77330b1e2bad96b78b4023cb686ea72f77c761bfc685af7 +size 1678427 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_BC.uasset new file mode 100644 index 0000000..ab84e8c --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7867e9bf8138611168c8cfd5ae6b760cf28d15c22ad6ba0852b3e3d33f778d22 +size 1397296 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_N.uasset new file mode 100644 index 0000000..204029e --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f669c539c8ddbb9d809e1c10a9724bedf2a5a6fbc09dfdb61b9453338a7db5dd +size 2656575 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_R.uasset new file mode 100644 index 0000000..428992e --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Foundation_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d8425dbe16701591d3e7febbd880212a083e8deeaa5fca4b424da8833717619 +size 1971467 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_BC.uasset new file mode 100644 index 0000000..c3043a0 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c796415224b761f6e550312c61290a73ff7f936fe7ddf1cadc5c8ea46c487d7f +size 1020887 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_N.uasset new file mode 100644 index 0000000..05a8fea --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8bd7fbc01651e2970642c7b9c8be9331a79b99fec206974f002cef56afbdee2 +size 1783094 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_R.uasset new file mode 100644 index 0000000..1cb95a1 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Pillar_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95b40411de41deedb6d29e44aadaf22cbe7fea15a4cf88090fe88649bee0fa45 +size 1231336 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Railings_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Railings_BC.uasset new file mode 100644 index 0000000..342dd40 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Railings_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f42bf1a8d0b31fb45fbbee4c79acb57229c1c2302813d48cec4f24210ec4c3b6 +size 1087527 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Railings_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Railings_N.uasset new file mode 100644 index 0000000..b366f2c --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Railings_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60574f1848ec11997d56598146e4de2dd931c992f95494af2f3bc609100ac40b +size 1817582 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Railings_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Railings_R.uasset new file mode 100644 index 0000000..458179f --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Railings_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6515088a66c1c5545a80cef7d31a25a9ff66436ecb27f8389c0a4829e33bbae4 +size 1329413 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_BC.uasset new file mode 100644 index 0000000..c4c383c --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0305addcad8f5dd8553e7dff0b62d037a1b95b6388a316899cf0cab7f737056 +size 1807415 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_N.uasset new file mode 100644 index 0000000..f3ffbf9 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9f9b7248023fdb8d638482a975be365656660513505e1766d6c8ce6a6ea26bb +size 2040286 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_R.uasset new file mode 100644 index 0000000..a587591 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Ramp_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68ce6232ec7122b74d73c3a835fd3e3cb898645fca08be392b9a548b2bd1a13d +size 1503767 diff --git a/Content/__ExternalActors__/Maps/L_World/1/DK/X97TEV7L04JUQ8ZHV1HEBB.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_RoofEnd_BC.uasset similarity index 81% rename from Content/__ExternalActors__/Maps/L_World/1/DK/X97TEV7L04JUQ8ZHV1HEBB.uasset rename to Content/HouseForge_01/Textures/Metal/T_Metal_RoofEnd_BC.uasset index be69ed0..b2906cd 100644 --- a/Content/__ExternalActors__/Maps/L_World/1/DK/X97TEV7L04JUQ8ZHV1HEBB.uasset +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_RoofEnd_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:906981c5b0ed55cc750f4a91567f2e63e4007b03ba4a8488581ffb0b622397fe -size 501034 +oid sha256:23a54be636a14370e1590f8c6141da2841a571e90c19236acfe78b20f31015b2 +size 1628917 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_RoofEnd_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_RoofEnd_N.uasset new file mode 100644 index 0000000..3adbc27 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_RoofEnd_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5df9fbd3bf3c5100adcc0ed440c202c396d55f7e168711957aa8e93c4d259f0d +size 2093837 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_RoofEnd_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_RoofEnd_R.uasset new file mode 100644 index 0000000..c3b2d74 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_RoofEnd_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b371c7f036fdeafb44dd494a98c96a6366598efeaf65d86b2d9665ee11531f36 +size 1433656 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Roof_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Roof_BC.uasset new file mode 100644 index 0000000..345e6aa --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Roof_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aca7350fbc99342673409d246562398a548f65a3c50a609758d84d1785375f94 +size 1813644 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Roof_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Roof_N.uasset new file mode 100644 index 0000000..7e6e5cb --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Roof_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c9a0a84760281b897cc6a7d7af7f3a17b118af7945edc5c5ce26d6561484537 +size 2112000 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Roof_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Roof_R.uasset new file mode 100644 index 0000000..09e5def --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Roof_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1162a15f46d27f5b1a75fb67937f50f3ab3bcbd434d147e28d8d833a15fbca4b +size 1559637 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_BC.uasset new file mode 100644 index 0000000..a19a52d --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc3245345cc6677e506ebaadb4f19fbd1c31e06cb1be228af05cb084b38533b3 +size 1048935 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_N.uasset new file mode 100644 index 0000000..193915a --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac83c767662f152117056a63bcd3dfadb64703e7eadf10e4a3ee9388ae8f70c4 +size 2274689 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_R.uasset new file mode 100644 index 0000000..644f3a3 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_StairsRailings_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e57e8607c26fb6553a3e2c930f454d8f9b36bb7c5a299a1612e07a754b819c98 +size 1279717 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_BC.uasset new file mode 100644 index 0000000..705b7ff --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8e9108cc2ce8012baee92b6640782d2f4a483ff6c81568f57d0403427576ce3 +size 1321439 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_N.uasset new file mode 100644 index 0000000..9672ada --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:716b001e87eb9bd0f781ee54b64f3923a4a89f0ac57eb5fc7d4f7c7749707780 +size 2308553 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_R.uasset new file mode 100644 index 0000000..8ba1320 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Stairs_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86db1dcdb75d26e6f23d865179226630abfd921a554107b01e6924bb3a31ffd5 +size 1545198 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_BC.uasset new file mode 100644 index 0000000..9a139d6 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10cb5a38f1d49cda7fbd4b17cccd310058ebc4bd7890ba1953de38654c01d8f8 +size 1888326 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_N.uasset new file mode 100644 index 0000000..726dc4f --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:688dc6be1f2dc4dd95625b3d698c2717f93b89abb77be613428edb13996a1be2 +size 2167187 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_R.uasset new file mode 100644 index 0000000..58c43f1 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Triangle_L_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d3d534ad947b7a0b61838557012342e0c80d367f07fa31efa7716f0607708a9 +size 1670575 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Window_BC.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Window_BC.uasset new file mode 100644 index 0000000..6e9d810 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Window_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:523b282c0a52f67b15fd17ee17e6d494e6d7ec3c0eab8322e84ebed808051841 +size 1708525 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Window_N.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Window_N.uasset new file mode 100644 index 0000000..e72bb5f --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Window_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2d0a093bdf6071cc546357c9fcf49fe0f7e49746f1955f48e00230ade0bf176 +size 1952049 diff --git a/Content/HouseForge_01/Textures/Metal/T_Metal_Window_R.uasset b/Content/HouseForge_01/Textures/Metal/T_Metal_Window_R.uasset new file mode 100644 index 0000000..28eb170 --- /dev/null +++ b/Content/HouseForge_01/Textures/Metal/T_Metal_Window_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26517ea0c88b8a74c71cac35f2cb93ecc3c02dd733606896a23869884c17e73e +size 1544868 diff --git a/Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_BC.uasset b/Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_BC.uasset new file mode 100644 index 0000000..e008d11 --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2749b57842f64bbe17d935c9e2bbcce048afd584ef3926f36666d7976947ee89 +size 1624181 diff --git a/Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_N.uasset b/Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_N.uasset new file mode 100644 index 0000000..1ea1718 --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c20895b5d780d6b7ebfcbb68b9e64735b77faa7a0c66a11825a278c7dc4aacb +size 1380162 diff --git a/Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_R.uasset b/Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_R.uasset new file mode 100644 index 0000000..af3d989 --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_DoorKnob_Low_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9baa786e15f933d55e45b71ca48381285a1429c36eb082d8023c11411cf3eca9 +size 627097 diff --git a/Content/HouseForge_01/Textures/Misc/T_Forge_BC.uasset b/Content/HouseForge_01/Textures/Misc/T_Forge_BC.uasset new file mode 100644 index 0000000..ac75cb0 --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_Forge_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34f5a8f2245be6caf45485917d8109927b0066d7b2b4b9e27c348d1684737199 +size 9055454 diff --git a/Content/HouseForge_01/Textures/Misc/T_Forge_N.uasset b/Content/HouseForge_01/Textures/Misc/T_Forge_N.uasset new file mode 100644 index 0000000..230918b --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_Forge_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a2bed31e9be92362305c247a6400fd9680882b46399d99555b7503a167c825f +size 8028826 diff --git a/Content/HouseForge_01/Textures/Misc/T_Forge_R.uasset b/Content/HouseForge_01/Textures/Misc/T_Forge_R.uasset new file mode 100644 index 0000000..fb5f101 --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_Forge_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08dc233505e9b4a52dbcecc66249f1f7fbe5a5216f7a8d10f0b3783626db30d8 +size 2286299 diff --git a/Content/HouseForge_01/Textures/Misc/T_Gradient_Tile.uasset b/Content/HouseForge_01/Textures/Misc/T_Gradient_Tile.uasset new file mode 100644 index 0000000..9ffc5c2 --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_Gradient_Tile.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2da91be9e48d55b1cb7188443a00a8382308d18453c44208316268144fb32a6 +size 22921 diff --git a/Content/HouseForge_01/Textures/Misc/T_MetalBits_BC.uasset b/Content/HouseForge_01/Textures/Misc/T_MetalBits_BC.uasset new file mode 100644 index 0000000..9debf6e --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_MetalBits_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc8ee971b2a809e65a1b0a1303542922ac6599fa5243f56143853ea386c390ea +size 6363984 diff --git a/Content/HouseForge_01/Textures/Misc/T_MetalBits_N.uasset b/Content/HouseForge_01/Textures/Misc/T_MetalBits_N.uasset new file mode 100644 index 0000000..5658e43 --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_MetalBits_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d13ede85112266d876dfbbc20a6af513125f86f3389e8ad0da90849f1d83658b +size 9357427 diff --git a/Content/HouseForge_01/Textures/Misc/T_MetalBits_R.uasset b/Content/HouseForge_01/Textures/Misc/T_MetalBits_R.uasset new file mode 100644 index 0000000..f90cc36 --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_MetalBits_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbe8bb59cce64ce932ee6fb60fa37494ad762df8ccdadd2712f6680f7ca5d411 +size 2619712 diff --git a/Content/HouseForge_01/Textures/Misc/T_NoiseVertex.uasset b/Content/HouseForge_01/Textures/Misc/T_NoiseVertex.uasset new file mode 100644 index 0000000..1c4d76e --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_NoiseVertex.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48481e3dab962230b107539f7ea5387da4c4e66e4772ecc674fcd346c151f00a +size 31793523 diff --git a/Content/HouseForge_01/Textures/Misc/T_Rope_BC.uasset b/Content/HouseForge_01/Textures/Misc/T_Rope_BC.uasset new file mode 100644 index 0000000..4822a15 --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_Rope_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ca0d068ca1c536a4873120b44b1d7baae036fe81f94c699ab2a222883d06612 +size 8413204 diff --git a/Content/HouseForge_01/Textures/Misc/T_Rope_N.uasset b/Content/HouseForge_01/Textures/Misc/T_Rope_N.uasset new file mode 100644 index 0000000..5dd1b30 --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_Rope_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ec102bf232f2b490c17dd5ec402763d41bf4551df507a1482952dd1fe03194f +size 11916677 diff --git a/Content/HouseForge_01/Textures/Misc/T_Rope_R.uasset b/Content/HouseForge_01/Textures/Misc/T_Rope_R.uasset new file mode 100644 index 0000000..f5edbc0 --- /dev/null +++ b/Content/HouseForge_01/Textures/Misc/T_Rope_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aabef8a134497937d2d75a67de4489ce8531f3fa9e6691dc7a271a38933902cd +size 2395115 diff --git a/Content/HouseForge_01/Textures/Primitive/T_ThatchWall_BC.uasset b/Content/HouseForge_01/Textures/Primitive/T_ThatchWall_BC.uasset new file mode 100644 index 0000000..cb2954b --- /dev/null +++ b/Content/HouseForge_01/Textures/Primitive/T_ThatchWall_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20af34af4eeba4887aad31e7529b015f7de04a81eb614afc5f7e631eba7ae924 +size 6746765 diff --git a/Content/HouseForge_01/Textures/Primitive/T_ThatchWall_N.uasset b/Content/HouseForge_01/Textures/Primitive/T_ThatchWall_N.uasset new file mode 100644 index 0000000..550749d --- /dev/null +++ b/Content/HouseForge_01/Textures/Primitive/T_ThatchWall_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:372490b114c02df4f038ef1bcc52c5e21d1aa8781842f80fab59333b38fd3e6b +size 3627547 diff --git a/Content/HouseForge_01/Textures/Primitive/T_ThatchWall_R.uasset b/Content/HouseForge_01/Textures/Primitive/T_ThatchWall_R.uasset new file mode 100644 index 0000000..3941355 --- /dev/null +++ b/Content/HouseForge_01/Textures/Primitive/T_ThatchWall_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f837a7b1b21b8d7630239435e7bca88456553ae629384db4f3cc6e28e89ebcd4 +size 1389455 diff --git a/Content/HouseForge_01/Textures/Stone/T_Grout_BC.uasset b/Content/HouseForge_01/Textures/Stone/T_Grout_BC.uasset new file mode 100644 index 0000000..4daa765 --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_Grout_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c95f3e7eef188129e287df5158c624335bc739d8367f86cd0eccd3384ad00cbe +size 29570563 diff --git a/Content/HouseForge_01/Textures/Stone/T_Grout_R.uasset b/Content/HouseForge_01/Textures/Stone/T_Grout_R.uasset new file mode 100644 index 0000000..5feefcc --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_Grout_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1bbbd63c36f2f1d25c2bf4be568f81432ff0158c65c58cd9aae4c92d01e6d87 +size 10379141 diff --git a/Content/HouseForge_01/Textures/Stone/T_Groutl_N.uasset b/Content/HouseForge_01/Textures/Stone/T_Groutl_N.uasset new file mode 100644 index 0000000..6a9a007 --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_Groutl_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bbe230d0ca33e01f52f1f2863125f29d5364c5f6f3ba363fe65ce96a3450e9b +size 40356682 diff --git a/Content/HouseForge_01/Textures/Stone/T_RockBits_BC.uasset b/Content/HouseForge_01/Textures/Stone/T_RockBits_BC.uasset new file mode 100644 index 0000000..7d3a775 --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_RockBits_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afbe57e5267c9a0cd9c07241197158182d47df2f1c7d08a7048c50717b8a002a +size 5450056 diff --git a/Content/HouseForge_01/Textures/Stone/T_RockBits_N.uasset b/Content/HouseForge_01/Textures/Stone/T_RockBits_N.uasset new file mode 100644 index 0000000..3595833 --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_RockBits_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1713c36cf98cb9b8abc8e8979cafa779ec413f5991c4da92ba3b3c7172b59bd0 +size 6898120 diff --git a/Content/HouseForge_01/Textures/Stone/T_RockBits_R.uasset b/Content/HouseForge_01/Textures/Stone/T_RockBits_R.uasset new file mode 100644 index 0000000..9a8e9e1 --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_RockBits_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d2639ff5dd99166ff8acaf40f4a07f0c4f6213736b138300b66aa5460770ef7 +size 2058991 diff --git a/Content/HouseForge_01/Textures/Stone/T_StoneDoorway_BC.uasset b/Content/HouseForge_01/Textures/Stone/T_StoneDoorway_BC.uasset new file mode 100644 index 0000000..f347c47 --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_StoneDoorway_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ffab6cc7f55ac34e767e5f9125c03914ef936cd7399eb5ca793cf4aa2b02a7e +size 24568480 diff --git a/Content/HouseForge_01/Textures/Stone/T_StoneDoorway_N.uasset b/Content/HouseForge_01/Textures/Stone/T_StoneDoorway_N.uasset new file mode 100644 index 0000000..f57d105 --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_StoneDoorway_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a737863a392ad2fafc31412379ec291a3aea2f2630652d52ae27e6a3390dbaf +size 31549177 diff --git a/Content/HouseForge_01/Textures/Stone/T_StoneDoorway_R.uasset b/Content/HouseForge_01/Textures/Stone/T_StoneDoorway_R.uasset new file mode 100644 index 0000000..7bec10f --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_StoneDoorway_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f224e6a432c74ba2263f35b8ca734814d96bf5ee4a3b95c7473771b05d3e4fa +size 9144207 diff --git a/Content/HouseForge_01/Textures/Stone/T_StoneStairs_BC.uasset b/Content/HouseForge_01/Textures/Stone/T_StoneStairs_BC.uasset new file mode 100644 index 0000000..a4829f4 --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_StoneStairs_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2173411e0203411381a43bdde31c91bdc7596862f5aa087408a8c827b9dc8a8 +size 5452295 diff --git a/Content/HouseForge_01/Textures/Stone/T_StoneStairs_N.uasset b/Content/HouseForge_01/Textures/Stone/T_StoneStairs_N.uasset new file mode 100644 index 0000000..b1c46be --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_StoneStairs_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83867c87ac2f85e5e773e9d71ea371687ba27a9cbcc4c96929a44a8c9e67a71a +size 7673373 diff --git a/Content/HouseForge_01/Textures/Stone/T_StoneStairs_R.uasset b/Content/HouseForge_01/Textures/Stone/T_StoneStairs_R.uasset new file mode 100644 index 0000000..401da66 --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_StoneStairs_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3a0da60997cf08612e62163ddf8dbeedab07628c58008c4ee5a7d4e1f76458c +size 2072122 diff --git a/Content/HouseForge_01/Textures/Stone/T_StoneWallRocks_R.uasset b/Content/HouseForge_01/Textures/Stone/T_StoneWallRocks_R.uasset new file mode 100644 index 0000000..9530089 --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_StoneWallRocks_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:493b37c409884f2a5d9180339d576d55689dc5a728a97433941f933f192a67dd +size 9229661 diff --git a/Content/HouseForge_01/Textures/Stone/T_StoneWall_Rocks_BC.uasset b/Content/HouseForge_01/Textures/Stone/T_StoneWall_Rocks_BC.uasset new file mode 100644 index 0000000..169688f --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_StoneWall_Rocks_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61df00fd8927cc6bdd1d02213751c7d1af3f5930e39d3f946c2c518dd49d93fc +size 21449739 diff --git a/Content/HouseForge_01/Textures/Stone/T_StoneWall_Rocks_N.uasset b/Content/HouseForge_01/Textures/Stone/T_StoneWall_Rocks_N.uasset new file mode 100644 index 0000000..4e05892 --- /dev/null +++ b/Content/HouseForge_01/Textures/Stone/T_StoneWall_Rocks_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d6b747029f64ad483aee6b3d5105cc4503443a483cfe213b369fb851a05a177 +size 30117206 diff --git a/Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_BC.uasset b/Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_BC.uasset new file mode 100644 index 0000000..353ae64 --- /dev/null +++ b/Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1870f724e257afe1f59c3aa6c6e5241c80f8b4a5d4a03bc98a3baf837e68400d +size 8098236 diff --git a/Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_N.uasset b/Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_N.uasset new file mode 100644 index 0000000..223c149 --- /dev/null +++ b/Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91ac8c82bab419e3e9f0e8f68045bd813a003c7791f078ffdd28797ef477256a +size 11315900 diff --git a/Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_R.uasset b/Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_R.uasset new file mode 100644 index 0000000..73a8fc9 --- /dev/null +++ b/Content/HouseForge_01/Textures/Wood/Burnt/T_Wood_Burnt_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9394cb6a0faf3068fc11e5621f81aac142d7d7c7992be2346918908815027b21 +size 2554051 diff --git a/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_BC.uasset b/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_BC.uasset new file mode 100644 index 0000000..ff4e540 --- /dev/null +++ b/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e7eea1cb0f5befc75d2e9195ed8ffebfcfc68dd0b778bd4718caef3adcad2e3 +size 31523344 diff --git a/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_Mask.uasset b/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_Mask.uasset new file mode 100644 index 0000000..94d8db5 --- /dev/null +++ b/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_Mask.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9324d0fdd2c674d3ad35b679e3ff7ccb828d672845597367505216ac452e417f +size 5961381 diff --git a/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_N.uasset b/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_N.uasset new file mode 100644 index 0000000..75726ab --- /dev/null +++ b/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d24a99403002ca31c18b9f1b0da5854b5ffa67d5d22ecb87f97b483948708b0 +size 43551231 diff --git a/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_R.uasset b/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_R.uasset new file mode 100644 index 0000000..80fab1c --- /dev/null +++ b/Content/HouseForge_01/Textures/Wood/Paint/T_Wood_Paint_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c91309dbf37b6ae69fda485f4aa18d93cf315ebf42489eedf3c890a49dcbbc9 +size 8648052 diff --git a/Content/HouseForge_01/Textures/Wood/T_Wood_BC.uasset b/Content/HouseForge_01/Textures/Wood/T_Wood_BC.uasset new file mode 100644 index 0000000..d034a25 --- /dev/null +++ b/Content/HouseForge_01/Textures/Wood/T_Wood_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4144c5d530a51cf77d7e6940b37895ac869f61b44c6d70ef320c623820ac57b9 +size 32737049 diff --git a/Content/HouseForge_01/Textures/Wood/T_Wood_Low_R.uasset b/Content/HouseForge_01/Textures/Wood/T_Wood_Low_R.uasset new file mode 100644 index 0000000..332313f --- /dev/null +++ b/Content/HouseForge_01/Textures/Wood/T_Wood_Low_R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d018781053e860dde4b8a6096bb4bc9aeb89b5eff96b06e241c087c233f77444 +size 9435407 diff --git a/Content/HouseForge_01/Textures/Wood/T_Wood_N.uasset b/Content/HouseForge_01/Textures/Wood/T_Wood_N.uasset new file mode 100644 index 0000000..3d0a8de --- /dev/null +++ b/Content/HouseForge_01/Textures/Wood/T_Wood_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f26177ad916d888886a6983d61867354530f876ec79cd8bb5daf6b05bb94b1aa +size 38333156 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithAnvil_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithAnvil_01a.uasset new file mode 100644 index 0000000..decf2f2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithAnvil_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b112fdd29cd92f9f92918e7752af8d1b6de781b25869fe0aa7bdce0feafb9d09 +size 18588 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithContainerEmissive.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithContainerEmissive.uasset new file mode 100644 index 0000000..47f7a83 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithContainerEmissive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05d97d229c982468a90c36ddc6cc917b44a194e9fc7cced8c2a60a4a6ee933b4 +size 16001 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithContainer_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithContainer_01a.uasset new file mode 100644 index 0000000..665f313 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/BlackSmith/MI_BlackSmithContainer_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ff8eb2188d28d91d9853b0d8386082ec88fa047653c3e36c0d246b9fe2013df +size 15200 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Brasero/MI_Brasero_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Brasero/MI_Brasero_01a.uasset new file mode 100644 index 0000000..51a478a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Brasero/MI_Brasero_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f1d46c6bafd75c60ad38aef33ad716cad754cf93305f84bc7f9dbad1519d129 +size 14758 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Candle/MI_Candle_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Candle/MI_Candle_01a.uasset new file mode 100644 index 0000000..c289e1c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Candle/MI_Candle_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d822c8b0f898c736676e488ea0c4b5204eff9440def00ab3c41db84736b93e64 +size 16185 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Candle/MI_TorchKit_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Candle/MI_TorchKit_01a.uasset new file mode 100644 index 0000000..f68ed4d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Candle/MI_TorchKit_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49fb2863da0ba4822af2a4070f12c730e6b1f3b4801d8841e465bd963a937a45 +size 17361 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_CoverPlant_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_CoverPlant_01a.uasset new file mode 100644 index 0000000..5bef2ae --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_CoverPlant_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27944a86e625024a1e956c8b71ec10dc6021c95b2337d7c8536bba4bf5dbebec +size 20638 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_HayNoNanite_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_HayNoNanite_01a.uasset new file mode 100644 index 0000000..5e22cb6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_HayNoNanite_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd0b90f59cb70c89ce9ac9005225cc7dc9515f8c5e9b358882bbf01e3d5fc477 +size 16226 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_Hay_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_Hay_01a.uasset new file mode 100644 index 0000000..d14531b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_Hay_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f81af669e5d64d24931fbf9e292a497e03d287c0371239e7de3c9f55d1d5ba10 +size 26421 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_Mushroom_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_Mushroom_01a.uasset new file mode 100644 index 0000000..57cc0fa --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_Mushroom_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8c14a97aa22a2549f575cfca3dd46854f8d6ebfa4509df2dc602d4aad330bda +size 14240 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_TreeBarkPine_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_TreeBarkPine_01a.uasset new file mode 100644 index 0000000..619fca9 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Foliage/MI_TreeBarkPine_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a27bf1507e134da52d178f8778f21b1d09a270ccd916d247da684d8edc130f83 +size 19541 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_BottleKit_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_BottleKit_01a.uasset new file mode 100644 index 0000000..aab39e3 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_BottleKit_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5280b76a1631654654e356698c87af60eee540719b682294d083c30cde1cb57 +size 14683 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FishnMeat_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FishnMeat_01a.uasset new file mode 100644 index 0000000..823385d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FishnMeat_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26129800dd882885b7d995e0e8bdaf20abc0526095f0856aad82f577a343b5b4 +size 18575 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodBag_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodBag_01a.uasset new file mode 100644 index 0000000..8310708 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodBag_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e242c35fce1b772192bd236e174e44410ab42038bc2001dfb772a596b7777aa +size 20443 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodKit_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodKit_01a.uasset new file mode 100644 index 0000000..7a6aa9d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodKit_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37b32ccda1b016d60f9f09c59f2e0dddba1c8d1d42acd527a4956944bef76d59 +size 13578 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodSeed_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodSeed_01a.uasset new file mode 100644 index 0000000..8de4463 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_FoodSeed_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c25ca798a8a4b05583eaf65c313c6232e6db9909f437c566ff1316b514c51cd +size 20622 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_MetalKitPots_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_MetalKitPots_01a.uasset new file mode 100644 index 0000000..49beeb5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_MetalKitPots_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30610b1212e6425e458c151cf2687d3c97e69335bf2b83983486ee6f0e8b48ba +size 15352 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_MetalKitPots_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_MetalKitPots_01b.uasset new file mode 100644 index 0000000..8299833 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Food/MI_MetalKitPots_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d1885da04f48890447f03128f880eb51fcd68cb306d148456c9e03de3adc4c2 +size 17155 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_MasterBoulder_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_MasterBoulder_01a.uasset new file mode 100644 index 0000000..f18438a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_MasterBoulder_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17626eddcef6b486a97445cd602c8498de06ff4b4b5662308b2933b5f461dcfa +size 33967 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_RockStone_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_RockStone_01a.uasset new file mode 100644 index 0000000..99d2687 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_RockStone_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dccb6820e18ac2dd91c910202d22b7ee2c0b8b016d52ffa8d929e81046833d89 +size 18666 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_RockStone_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_RockStone_01c.uasset new file mode 100644 index 0000000..c9172f8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_RockStone_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02dccd04176364cbfbeedcdedd72bd380073b19840daec931a6b02ecf9f02a70 +size 21827 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_StonePatch_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_StonePatch_01a.uasset new file mode 100644 index 0000000..c845262 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_StonePatch_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0c1c6024d150b2c8c2eead0874773c1fd2c31489baedbff2f95cbc1c9f65577 +size 26157 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_StonePatch_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_StonePatch_01b.uasset new file mode 100644 index 0000000..58fe105 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Rocks/MI_StonePatch_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43d55b95ac900e3e71104c730fe5debade1e06797a342eb39b8da6231581b7da +size 26061 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingFlag_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingFlag_01a.uasset new file mode 100644 index 0000000..9ba6396 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingFlag_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b3777ee63b8675ac1135362dd80c3623633f0f98c361e3198cc988ad5dd80ff +size 14696 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingFlag_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingFlag_01b.uasset new file mode 100644 index 0000000..ddee4fb --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingFlag_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77307971cf202f499ee3d731b8847ae69fdcb6ee486064c475b159b428d1dd13 +size 11781 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingSail_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingSail_01a.uasset new file mode 100644 index 0000000..28176a7 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Sail/MI_VikingSail_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a83926f7687d44620c2ab3446fe388a08bc2d01937fd81b039ba7c808a34934 +size 13540 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/ThorHammer/MI_ThorHammer_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/ThorHammer/MI_ThorHammer_01a.uasset new file mode 100644 index 0000000..c40d259 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/ThorHammer/MI_ThorHammer_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b21a2738942faad9bef28d054e32c72922852407d9b0e1eff3042494cc41593a +size 17998 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/ToolKit/MI_ToolKit_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/ToolKit/MI_ToolKit_01a.uasset new file mode 100644 index 0000000..1b535e9 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/ToolKit/MI_ToolKit_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be6206c26719e54fb9ea1061192148552d9f8e0a513a268b6b0b9ccc2694aa2e +size 16862 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Water/MI_AleDrink_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Water/MI_AleDrink_01a.uasset new file mode 100644 index 0000000..78d6cbc --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Water/MI_AleDrink_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ce3c6eb8ea9606dc137732e6aa179396389f569f7fb174f35a42f8dc1fa4da5 +size 13191 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_VikingShield_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_VikingShield_01a.uasset new file mode 100644 index 0000000..385d07d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_VikingShield_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e044fbf09222486f0a950f6fdefcf532c8b269fa46126631301ea6ee3e91139a +size 17564 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_WeaponBow_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_WeaponBow_01a.uasset new file mode 100644 index 0000000..18722f0 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_WeaponBow_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42f51d7f4d084c47814cb1d848d54f6412c2c28dff7f41e31e3d9e3eca6dfb18 +size 16754 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_WeaponKnife_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_WeaponKnife_01a.uasset new file mode 100644 index 0000000..ccfce33 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Weapons/MI_WeaponKnife_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e5f54ff252f5e4e5404318b053ec1a62a11906d9ba54e7f06fbc0d4599d6453 +size 16409 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_RopeAged_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_RopeAged_01a.uasset new file mode 100644 index 0000000..31020d4 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_RopeAged_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdece4e462c129d1e02570d7c8f27bda9fb9307ba222e2630bd2442d02c3f64c +size 17877 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodBarrel_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodBarrel_01a.uasset new file mode 100644 index 0000000..89207d6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodBarrel_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4136d8137f9b004ec991aac9c5ff7447070008a933bcea052b005de6d62ba59 +size 15993 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCart_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCart_01a.uasset new file mode 100644 index 0000000..18da4a5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCart_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d4b1673c46ecd3f7eac6d0d64654acb70ec580e720f692f1abdb1f06be3ac52 +size 20157 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCarvingTrim_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCarvingTrim_01a.uasset new file mode 100644 index 0000000..ad29978 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCarvingTrim_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80b6d99fec5135d9abf221189609160d292001a6f3f5f14072fd61e2dcbac2d5 +size 22540 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCarvingTrim_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCarvingTrim_01b.uasset new file mode 100644 index 0000000..dbb6435 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodCarvingTrim_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d91b9ac27a8293e3b6770f63564e22fac231f422fae1054961c4297cf71a0d25 +size 23516 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodChest_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodChest_01a.uasset new file mode 100644 index 0000000..f181f53 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodChest_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f32217e5a00a639312a46468b4df8f46b369a9d2405871cb420381a734d4ef5f +size 18783 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodLog_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodLog_01a.uasset new file mode 100644 index 0000000..b2c53a4 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodLog_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:019458939bb93b9c40b0c40781b94fa28ad054680a4fc47f4ac38ccbae020aa8 +size 20420 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodLog_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodLog_01b.uasset new file mode 100644 index 0000000..12be96b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodLog_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:627f654b3b17c19c9b0806ee4b00168e744a97c7709597ce6c974294317b4ee5 +size 19082 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodPlank_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodPlank_01a.uasset new file mode 100644 index 0000000..694d532 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodPlank_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3fa8a9b961e5c8a21cbe92cd734034c051225f17d5e71026effe5ca4f97bdec +size 23773 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodRough_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodRough_01a.uasset new file mode 100644 index 0000000..2b385f2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodRough_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b202f674787a0466853c8723253f502e5750886c3e16dd79ee2b1307d10be0d1 +size 21511 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodRough_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodRough_01b.uasset new file mode 100644 index 0000000..3391234 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Instances/Woods/MI_WoodRough_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7cd279df0f1813fb42bafc32773ee3d245126b7ba900fcba8ad8866565dcdec +size 22695 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_Flag_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_Flag_01a.uasset new file mode 100644 index 0000000..036747a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_Flag_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd6e55f0db2162f57ee37dd5366c5bcddb96d5f5f1a682fd0a3bce8fa84efd85 +size 53027 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_Foliage_Master.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_Foliage_Master.uasset new file mode 100644 index 0000000..b21e1bb --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_Foliage_Master.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:263632252c9edba29bebcf8369558c9cb5178c9521519220a0e5e2bb3d9d316b +size 60217 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_MasterORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_MasterORM.uasset new file mode 100644 index 0000000..b536c63 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_MasterORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:121261e33ab96ab1e00807f1cfa8223f625acb704670d0e2c189d1e444a34e5c +size 31071 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_RGBRock_Master.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_RGBRock_Master.uasset new file mode 100644 index 0000000..d2990c5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/Master/M_RGBRock_Master.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee0c920d7fa9c8940c4db76f5e330315f8795d81893316470eaacd867900d580 +size 216713 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/BaseLayer/MF_BaseLayerAdjustment.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/BaseLayer/MF_BaseLayerAdjustment.uasset new file mode 100644 index 0000000..963a58b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/BaseLayer/MF_BaseLayerAdjustment.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cd6427fa7e6bafc05ada2b9b10561eca55eeea08bcd2ad0610746f2c8aaed3b +size 28612 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/BaseLayer/MF_BaseLayerTextures.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/BaseLayer/MF_BaseLayerTextures.uasset new file mode 100644 index 0000000..dfcf75a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/BaseLayer/MF_BaseLayerTextures.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef7c46b81b7a6348d7bb44f6749e9292bea36c8cf0fc008719df1aa02bb6a9b2 +size 46445 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_MacroBreaking.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_MacroBreaking.uasset new file mode 100644 index 0000000..fbffb4d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_MacroBreaking.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92dffae70cfcbe73d9a10a2d8cc2462df5f0ea4ac02fc8d29333e05cb982bb93 +size 14559 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_NormalTweak.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_NormalTweak.uasset new file mode 100644 index 0000000..49cee09 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_NormalTweak.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bd9d6207cd23b98f9799d9167954a15d8f2418ad961aceb36255f0d6ede8992 +size 16683 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_Translucency.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_Translucency.uasset new file mode 100644 index 0000000..762b632 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/MF_Translucency.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54f9e104e8496f306e86d4ea5be24d495a6b985cb4fc7df48e102aef415c19d2 +size 12720 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/RGB_Mask/MF_BaseColorTweak.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/RGB_Mask/MF_BaseColorTweak.uasset new file mode 100644 index 0000000..43da62b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/RGB_Mask/MF_BaseColorTweak.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aaabd9b71e61689e3067ffe3e5741d618ed58f5d8ef4f81bf806340a14130b7e +size 20675 diff --git a/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/RGB_Mask/MF_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/RGB_Mask/MF_ORM.uasset new file mode 100644 index 0000000..7c11cac --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Materials/MaterialFunctions/RGB_Mask/MF_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:612f01651df3ca00a9f78e5bda08b61030ae48b51c12d4f3ab2c13108df9a6a6 +size 20940 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Foliage/SM_Mushroom_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Foliage/SM_Mushroom_01d.uasset new file mode 100644 index 0000000..b47cea7 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Foliage/SM_Mushroom_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b82bea977e93f924257def4e37702d7e3005379223b6545b20bf0f5e456a5ef +size 53983 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_Hay_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_Hay_01a.uasset new file mode 100644 index 0000000..35380f8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_Hay_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89b2a4944cbed474d56b361df8df369b79da43d82a154ef80bb84b5561f4b291 +size 26490 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_Hay_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_Hay_02a.uasset new file mode 100644 index 0000000..27358b7 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_Hay_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5057c3a550ea0721c9085b519005d64d67882048d6020474c64c2e56a229b06d +size 74476 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodBeam_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodBeam_01a.uasset new file mode 100644 index 0000000..34e59f3 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodBeam_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64acc270f0afee0e260ad8b1518cf5aca861a8a84602e259008764ea257d1602 +size 22965 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodFence_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodFence_01a.uasset new file mode 100644 index 0000000..9492e1d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodFence_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69cf47d5db3a0bc1b531e848bde1edb2e8ccf1d2aa087a5e56dc13416168c615 +size 178584 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformBarrier_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformBarrier_01a.uasset new file mode 100644 index 0000000..cacc64c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformBarrier_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd241538ca6ca8cad5e9d2457df4ccfbcbafb6df7cdda6ef1c4f09176e96f5fe +size 479854 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformFloor_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformFloor_01b.uasset new file mode 100644 index 0000000..86bdb03 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformFloor_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a50aefef2d5c04e7dc76c57d66172fbf007fc1e7574cd994c86384d374847b4 +size 372332 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformStairStep_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformStairStep_01a.uasset new file mode 100644 index 0000000..caaeddb --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformStairStep_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b947aaa9ef5b9a024d06db0dabe9d46d99aab549476333d39a85c6fa0182f0f +size 55558 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformStair_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformStair_01a.uasset new file mode 100644 index 0000000..be00b76 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatformStair_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2254a2ed48843a5136b897c6eb9abe42632a66e5ec00246fc0b17389a89fa199 +size 165474 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatform_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatform_01b.uasset new file mode 100644 index 0000000..f9a111a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodPlatform_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c33f92b0667ca70b5ae5e8694417d2eec8a0245c61313db87ac0ec4be8af898c +size 299186 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodSupportCylinder_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodSupportCylinder_02a.uasset new file mode 100644 index 0000000..a676451 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/ModularBuildings/ModularSet/SM_WoodSupportCylinder_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48d7c58f3e9b90857519086b53e6c25ba60fe90fc9583b1ef0088f47614b7169 +size 377999 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01a.uasset new file mode 100644 index 0000000..c2e0224 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6316fdb1d060a29af8fc0c0e5fe0b85b7a3fc910832bc69fd3fc90d166d4d124 +size 33800 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01b.uasset new file mode 100644 index 0000000..9679512 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4be71fd32bab4a8dedc85634673a0f1884d7d2217df93a38341b7a5452570942 +size 47637 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01c.uasset new file mode 100644 index 0000000..6bd13a4 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:104ab711ff96abc52ba43548301062037b2405fa10744f92f2d3713c8d3ab395 +size 54716 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01d.uasset new file mode 100644 index 0000000..617a251 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f61ebe5f4ec65585c938c12639ecc6a9e4b7cb01a52b143e26cff399bd03e92 +size 33483 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01e.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01e.uasset new file mode 100644 index 0000000..5307293 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01e.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bb6c1317d2d202a83e8c006235f1e59b27cfaa96e72e7663af30f2ae6483086 +size 49009 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01f.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01f.uasset new file mode 100644 index 0000000..f97d339 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BarrelGroup_01f.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6d02fd570f36688cee718f90f4d7a496685af16f08734ac4f883c29db9c44a6 +size 64970 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxBottle_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxBottle_01a.uasset new file mode 100644 index 0000000..481370e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxBottle_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac847a56553861420d33682d01af5f82baec29de52f40391d7ae641d574c6303 +size 51505 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_01a.uasset new file mode 100644 index 0000000..247ad3c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b3706f068e138340422c90d89fd12f333f7b6253e29358bbe36a9aac13f1f65 +size 36806 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_01b.uasset new file mode 100644 index 0000000..20c852a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d2c86b84e021a5f2f4e11d9357841beab279504f097794a485f097543605165 +size 31734 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_02a.uasset new file mode 100644 index 0000000..54c7553 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxFood_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc7082c85ade3d814d7776aea2df9a56c0a5da4e20dfe99c0265b5a537a4ab93 +size 43223 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxLog_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxLog_01a.uasset new file mode 100644 index 0000000..3daeb7a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxLog_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a36c250f36ff479150790e1a4134e4644e90f091962e3d5be624b55d5440b920 +size 39318 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxTool_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxTool_01a.uasset new file mode 100644 index 0000000..3f0f306 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxTool_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11da5dadd7b9e7ea198ecb6c19d311360130267f73cf12fa0eab87e67d288097 +size 40442 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxUtencil_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxUtencil_01a.uasset new file mode 100644 index 0000000..ba2a03c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_BoxUtencil_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72fc705f27141cf09e6e9b3c88804874ef21df8c63ee130cd1e8c97b29cd0c37 +size 39311 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_Brasero_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_Brasero_01a.uasset new file mode 100644 index 0000000..e957cf3 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_Brasero_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b9df60fff8ebd5954c6916fb79a7f47bb3a76fffc2d4537959eca165aec3540 +size 31119 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_FireCamp_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_FireCamp_01a.uasset new file mode 100644 index 0000000..646b953 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_FireCamp_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:777a2716c75e50e99531e12ea37ff97940ab0acf2ba9566cae3ac4f46515d9f2 +size 37954 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_FireCamp_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_FireCamp_01b.uasset new file mode 100644 index 0000000..8aabac2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_FireCamp_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b073bb0a7b225204b8646cf9f16bc84fef27815b8d28cb4bd38e79aa9e35e69 +size 34699 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_01a.uasset new file mode 100644 index 0000000..38e52ef --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5baba1d73d053744fc91b18340081a048d6c46736ba5951d300d458bc720cf00 +size 30244 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_02a.uasset new file mode 100644 index 0000000..d540da3 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e3b2462f7b348603dc713bb6cdc0a2dba3c98deb78a2ac7c6b7b0017d63aea8 +size 30143 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_02b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_02b.uasset new file mode 100644 index 0000000..2e14ce0 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_LightTorch_02b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:443d7420302d2d5098efc8d47dff7bc4af31ba9d5eb8e1caaf40b0fb18a8b275 +size 29651 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StockageWood_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StockageWood_01a.uasset new file mode 100644 index 0000000..33f3aa4 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StockageWood_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90ea52cda05d1536374d064b66e7466fb6b9300e5d41f22906351b102ab6a381 +size 39960 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01a.uasset new file mode 100644 index 0000000..c8a7aa7 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0b5d5818dab47ddca89193c8d1d9a9885bdff4ea2064ff2aa2e896da6e7e3d4 +size 83629 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01b.uasset new file mode 100644 index 0000000..2f1b4f2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8627848755e99a5e7a77cf0843c4ac26f8fecdbb92932e6e3f495b398e6866cc +size 72624 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01c.uasset new file mode 100644 index 0000000..643ac13 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9868feaffc3abd19701a7bf8781fa65277e8e215635aaa9eb106f9d8689d2f4f +size 104634 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01d.uasset new file mode 100644 index 0000000..fa5831b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:246a35087cd5a03848faf7bf5bd6ea76cd2a652729bafae162ccda435aa43b7f +size 93107 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01e.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01e.uasset new file mode 100644 index 0000000..d0e1c49 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01e.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82e4e1bfc4d365884ef1986a588899b68c6c04d171e5c3a1603ad8eff7107637 +size 120043 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01f.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01f.uasset new file mode 100644 index 0000000..d6e0062 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StorageMarket_01f.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9c331c686b56d95a5afa34532071448078e281b132ee1de72757f942e66886f +size 90733 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StrawArcheryTarget_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StrawArcheryTarget_01a.uasset new file mode 100644 index 0000000..1b0aab2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StrawArcheryTarget_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f399b57bd17c71a4eacfd0735042065549e57a0c0225ca70f841dcce96a6caec +size 35845 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StrawArcheryTarget_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StrawArcheryTarget_01b.uasset new file mode 100644 index 0000000..a5d0103 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_StrawArcheryTarget_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4009cc12e6726021e10422b3637c9024c2021468b835a8c88ad4d27ffcfe4747 +size 30092 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodBench_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodBench_01a.uasset new file mode 100644 index 0000000..33ff2fa --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodBench_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6982548caece56cd48526383a46ff2675ea0a6c71d7dfdd46cb80ba512f51a70 +size 65470 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodCart_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodCart_01a.uasset new file mode 100644 index 0000000..3b21517 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodCart_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bcaaa491ceb137d0ef3dd9be0694529f648089a38d0fceb4eabf5c29b0cd57e +size 60981 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodCart_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodCart_02a.uasset new file mode 100644 index 0000000..2c9a62c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodCart_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4209937b2d624ce429e1e9cb9af05f00a70d171df076d118433b27bd0d86d9e +size 45743 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodLightTorch_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodLightTorch_01a.uasset new file mode 100644 index 0000000..0478762 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodLightTorch_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7579c3a4ac1103888a79aca990c61e77c8df97d0da87c4ebfc5d2e7d70b5741 +size 41091 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodLightTorch_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodLightTorch_01b.uasset new file mode 100644 index 0000000..9fbed5c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodLightTorch_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9653a5562bd41c4b44908a8f3c98691984138e441bf779cd769d55e61e2a1340 +size 36290 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01a.uasset new file mode 100644 index 0000000..b9a593f --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02cce4ee67c18f15e54348efc425564ba98c2a8b761044661905f363c8e5b3f1 +size 74720 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01b.uasset new file mode 100644 index 0000000..aabefcd --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca6fe3aeaaee4d618772e4e607c491fea8894095fd330c152a7f0fd0416daf66 +size 112016 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01c.uasset new file mode 100644 index 0000000..59ba87e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodStorage_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5cec8da4aefa994469e3dedc8fe10da8aca3fabd2c51ab840dcaebb16abf4149 +size 136812 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_01a.uasset new file mode 100644 index 0000000..7d1126c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31dc9045de6a17d6cb11384e4005ba68a380af9067564f7cd3105b5fe91697aa +size 97523 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_01b.uasset new file mode 100644 index 0000000..5ccce6b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79e491945b50959c6595613da5261c55bbd8c311b18cf72bebcd47dfe31548d3 +size 90905 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_02a.uasset new file mode 100644 index 0000000..ce62322 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BPs/BP_WoodTable_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dc318e70aa88739734b626115cdc9830c83b4373e28d25438e71e47035c18bd +size 87728 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BlackSmith/Anvil/sm_Anvil_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BlackSmith/Anvil/sm_Anvil_01a.uasset new file mode 100644 index 0000000..4d8b214 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BlackSmith/Anvil/sm_Anvil_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57fc5d0be8a6195a8f294ccc7d37598b58dd7925891bffcdf58426deefca0547 +size 343621 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_01a.uasset new file mode 100644 index 0000000..1b09786 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94349417135fbd605f1878443398bba74d96232975541a83428bd0a2ec82351a +size 40658 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_01b.uasset new file mode 100644 index 0000000..a51148b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96d7940ca7dfdf69817303bfc11af337c672ee9f3e9b9f7a0a827ee06d037484 +size 37600 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_02a.uasset new file mode 100644 index 0000000..25bce05 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9500fdc80a26608faf4ea27abfaba202345f317c100230040d31e0e0064804a9 +size 42082 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_02b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_02b.uasset new file mode 100644 index 0000000..776ba93 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_02b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4c210932936b631a995b883d21683be93fcda37a4bf0e3de96750374d0cd357 +size 39683 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_03a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_03a.uasset new file mode 100644 index 0000000..33bd7ad --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_03a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eeb6c1e3207f262a0863a50fe9eeb437a9292d2a8a3862954db9565a520032f +size 46008 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_03b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_03b.uasset new file mode 100644 index 0000000..1b8db9d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_03b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b270021d523df36c8af52b1eb6f589e561302479cead1ddf9a45b5cfe1d4668 +size 44052 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_04a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_04a.uasset new file mode 100644 index 0000000..52a7276 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_04a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9307f6367135fc2a86ac6b0968b23633e5c96237bc6f97d17c6ebff3f2743784 +size 45462 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_04b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_04b.uasset new file mode 100644 index 0000000..a999731 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BottleKit/SM_Bottle_04b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13c295d4427b696d47b8bd0c8671cfc853c57cc1f1c11a52f6ac7a8e472e5674 +size 41170 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01a.uasset new file mode 100644 index 0000000..8fc2a3a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:790f0e674db8ef59b01d5559937b6c24b4340099af13c5b1ec8bac244806f5d3 +size 220197 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01b.uasset new file mode 100644 index 0000000..0378dcb --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a976f5f98a15d3b84b2fcde38a4f1051b15beb5b0b85ca01a3a83c159e46f04 +size 181034 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01c.uasset new file mode 100644 index 0000000..3e7cb3e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/BoxStorage/SM_BoxStorage_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edcb5cd395bd18d20cf0b18e5613172bebbef837dfcd740a975bcb5addd01a24 +size 225583 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_01a.uasset new file mode 100644 index 0000000..6a344fa --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3da82211af89dc2cbecc2d7527a1e6200e3291ebc876a08e1962bcecee2179a +size 287637 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02a.uasset new file mode 100644 index 0000000..0724231 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc594f91b2b3b397349a7c9503888b2ad82b6689110253f6c7908f02b30c23e4 +size 262244 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02b.uasset new file mode 100644 index 0000000..a1cccba --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8181d869bbfc2993bd534ade022d0b2fbfb6b799265c7d05b15157ac85608fd +size 74092 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02c.uasset new file mode 100644 index 0000000..ab5145c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Brasero/SM_Brasero_02c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4dcabe4b102008bec6ab9e9808ca66a307a53ee371668ddc71ad7d6d3ca2761 +size 218598 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01a.uasset new file mode 100644 index 0000000..9db19a1 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69ac1cbff7c7b099d441c71121c21a918fea4cc139a0db8c8237b9fb22103edf +size 34510 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01b.uasset new file mode 100644 index 0000000..11a40a5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a30679a38762686681a3084eda6518ee55e32bc7e0a3841ccee039bd5177263 +size 22128 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01c.uasset new file mode 100644 index 0000000..2539b58 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f797c045930e459c4c891f7930615b63de113f2ad95ba53ac8f466df8082ec6 +size 30794 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01d.uasset new file mode 100644 index 0000000..318c3c8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/CandleKit/SM_Candle_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de65c6aafcc4ee0c063e381317894c0b7ee9000bb2f0526a01a682ea6674353f +size 29154 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01a.uasset new file mode 100644 index 0000000..3ae81c8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:863fda555f49d30426f0517b78e9dc1826be1069221d5f090980ec6585806822 +size 75054 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01b.uasset new file mode 100644 index 0000000..3673c7a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dda5e8c0359ce69a6e4a4a1e8875a6e5c895b2e0568c0b458fa6c0f6f85bbe03 +size 27463 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01c.uasset new file mode 100644 index 0000000..10aaad2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Fish_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56b60e40193e16481866c5ff90d21b5df461438a82859d2694b2be526369c9ef +size 59948 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Meat_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Meat_01a.uasset new file mode 100644 index 0000000..4d5d3ba --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Meat_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff7c9151580b7c1ad06668e82a039c7c72d8ac7b2b93d4dda1991d699cd0c303 +size 52598 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Meat_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Meat_01b.uasset new file mode 100644 index 0000000..8323426 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FishnMeat/SM_Meat_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9decb81ff0339c7b5248c6e7cf96ab94b94a989f8b7a13168434408feb8c215f +size 82044 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01a.uasset new file mode 100644 index 0000000..75443b5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddae6d2c4e0295424ba3ddaf52b46b73cfd1a65baee57b719689359a7f6e332c +size 285254 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01b.uasset new file mode 100644 index 0000000..8b5e060 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72cfafbedf4c740ef46317dfed832675a18f091459503b1027bf4c7a972c6650 +size 166723 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01c.uasset new file mode 100644 index 0000000..edaba72 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dbd31c6118b0004db220687d2b1be1d38f00e8e987f260df9270796be54b944 +size 227766 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01d.uasset new file mode 100644 index 0000000..2cc20b4 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagPack_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c0bba5b621a6261a2faa214fa9d135f80b34073bbe3533f47e131ea970d77f6 +size 523240 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01a.uasset new file mode 100644 index 0000000..5767652 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:051ad2a07f7700fb4642ff157c54aa95eebe1c3286ea973e1dbd949e423b214a +size 68898 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01b.uasset new file mode 100644 index 0000000..c28c9b6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:003a8fd1adc5441720fc14836b0a6e218962c5b9db3fefd432c6c372193dea68 +size 66880 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01c.uasset new file mode 100644 index 0000000..57824b2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e6fcaf5fce816bb37377ba4d689b37e5c759066355de6efbae191e82a4839fd +size 66390 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01d.uasset new file mode 100644 index 0000000..f0be981 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5783c2108ff8fd67d38ffd58c612561a5da51b81c4f95114ad2a31698f50b585 +size 66480 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02a.uasset new file mode 100644 index 0000000..515bdee --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fddd1fb38c3fca41d3c6aee9030958b055cf466fddd89ee13ee8bd5b0ca7c49 +size 68291 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02b.uasset new file mode 100644 index 0000000..468618e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e211f69082b3408472caa45598723f03278e65699848d750687bff4fd81dbb1 +size 68208 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02c.uasset new file mode 100644 index 0000000..17bea57 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93289512e333194ee646595abd8862c2ec13f2611b6242e4cc788731ee106584 +size 68254 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02d.uasset new file mode 100644 index 0000000..0b5890f --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_02d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7233d2c2638a7103e5b8749e95a5e7c2124ccbc9e154a100fe2bf61f4a8ee91 +size 68249 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03a.uasset new file mode 100644 index 0000000..cd12ce6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af3f1b0ba8a314a546db24b1991ed4940c997ba45db8a865419089cd68d510a2 +size 72644 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03b.uasset new file mode 100644 index 0000000..15cdb89 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:078972c7a530fed237af99947cff176630deb63b6630ffded188f736072752f6 +size 72455 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03c.uasset new file mode 100644 index 0000000..1a4421c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f07c23f327d3ed048683d22423d16d462365c9c0e602f0760376f67d9d530d7 +size 72486 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03d.uasset new file mode 100644 index 0000000..744c8ec --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBagSeed_03d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5699bd52fdcc49e25fe6fc7b4121805fd759950a93f60b675ec463118cc39f8 +size 72454 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01a.uasset new file mode 100644 index 0000000..2d9ec12 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1eb1ad60230f1b6a135ffe4f7865fe5d12a26f362dd5bc7ae60212e54f4df64 +size 52282 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01b.uasset new file mode 100644 index 0000000..3c7c5c5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99966e1eea27e04e0be725e4d67d32c3a4d233f02af7ce7046ddb926c41e7c9f +size 60794 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01c.uasset new file mode 100644 index 0000000..873b73d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61e37532cbd8d2aaf5bf365c92b402df16817c360318bdc7c4adcb2bb219ac77 +size 55656 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01d.uasset new file mode 100644 index 0000000..3a5c598 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af96cf51315d05d6ab48238d511e1381bc987e4b73807f11df83358ab57c015a +size 55156 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01e.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01e.uasset new file mode 100644 index 0000000..eff056b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01e.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8d39008b59edff30f39d2e41dd1e06cf9011e3d40311d37a94f9cd700a45343 +size 52910 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01f.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01f.uasset new file mode 100644 index 0000000..6103101 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01f.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0f88b1bd8940d6c77585c8712f3e9d3986edd0e02b3fa88ba20546f9278ed76 +size 52418 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01g.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01g.uasset new file mode 100644 index 0000000..44021e5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01g.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0cfc14c70d05db03a04161f04c439931d7c7aaef536103027f2fcde0a4b55b5 +size 59066 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01h.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01h.uasset new file mode 100644 index 0000000..5537515 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_FoodBag_01h.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:539dcf43acd96cc13f2e7992c15036a1183b2808d2e57273dc10f6f9be5f59c6 +size 59176 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01a.uasset new file mode 100644 index 0000000..0fa7483 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fe9bfb219e81f05d24b28bd292f74a405307819267eda8dd8f47a16fe7526f0 +size 67011 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01b.uasset new file mode 100644 index 0000000..a0a269e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:474c89dccb13047c90770ebc659bc0af61a91074bead32a08d5669f7271db4ff +size 66607 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01c.uasset new file mode 100644 index 0000000..7827f81 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a82b88b4e761b2302a2c17d1066f42b3a82358f47e84932524bc5ac95c43bd7 +size 66579 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01d.uasset new file mode 100644 index 0000000..00cc7ee --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodBag_01a/SM_SeedDebris_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b23b1685c0294cbdf24742678a60225d56b9ff89c5229c53e625ec12d1cdc10 +size 66576 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitApple_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitApple_01a.uasset new file mode 100644 index 0000000..232bc76 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitApple_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b7f2b14f2c40696c99c37b49123c3a570c18c26b647a7bfc6f9befd94241c36 +size 36850 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitBread_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitBread_01a.uasset new file mode 100644 index 0000000..08f88b3 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitBread_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0d53a06af9d33b64fc60d3c7f96c6263eb72d0cbbab5c30fc235c007fde7183 +size 49008 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_01a.uasset new file mode 100644 index 0000000..fab2b8c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fa5054b7c575fa2edb161b081639b04befe4936c5b778168d7e01b951fd472b +size 52002 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02a.uasset new file mode 100644 index 0000000..8a6ce37 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f765234d42ab1abf89a40f507af2f049e120b485de351e9ce70d552612c6aac6 +size 45267 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02b.uasset new file mode 100644 index 0000000..edcf621 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fc778fbcd4aff0d06fb17492d432d531d361d6a83d809629f66930a1e37f6b5 +size 91260 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02c.uasset new file mode 100644 index 0000000..97c09bc --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitContainer_02c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07f1dcfbbfd04dc8cbe4658471a1808423fb9c6aba1096754d9fcbdc5100cd8e +size 69019 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitPumpkins_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitPumpkins_01a.uasset new file mode 100644 index 0000000..f0d9919 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitPumpkins_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be41faff3b9e75ac9c13293ef10422239f0c0ffd9152d2b2eb5ec1be58c8ce5f +size 96309 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitSausage_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitSausage_01a.uasset new file mode 100644 index 0000000..3d948a6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodKitSausage_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67d161185fd8dc4261a1b141cb397d48f1cad7333793240acde5be02bed89dac +size 33023 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01a.uasset new file mode 100644 index 0000000..257a6f8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3c77028329aab8593edd5143e9198fde00915ba6f912df30cee3aea6a802cde +size 120722 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01b.uasset new file mode 100644 index 0000000..c29a014 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69eba34d5757760b9b3c5bb0d2d5f006ef388477ddf8825177593089da8d7c0c +size 131938 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01c.uasset new file mode 100644 index 0000000..0ef2d27 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStandMeal_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab7213c1abb6b9d061bf32d6d8adeb2d0785a057ae11eaaa33ee75b650db9efc +size 111576 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01a.uasset new file mode 100644 index 0000000..4fc47a4 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2eef7daf01f0e45ad0a34ed6fd3921d500bea94a89751cc87d710fcfffc694d5 +size 48608 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01b.uasset new file mode 100644 index 0000000..3f72754 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:817d54023d45d9d09edc335df0931bd47f469627820abffc6ab9848e2dd78da4 +size 48436 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01c.uasset new file mode 100644 index 0000000..c718728 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80e6f19bc47707c27f24a17129d255da3000c4a39bdf20b3c12d9359412a3f21 +size 48623 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01d.uasset new file mode 100644 index 0000000..ba29ec7 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2724bf20326ea5fc6eea529df871d7f281072680675987a43e741d92ab17dcd +size 48393 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02a.uasset new file mode 100644 index 0000000..e36bb57 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea5e64902ebd174c513c8de74790ba0dd8f60758a4cd1abb44b4c395194b0fd8 +size 48895 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02b.uasset new file mode 100644 index 0000000..cbfe2a9 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca6abb85aacaba2c34c9a5f1100f239a412f9b21991475b208fb741fca2e1fce +size 49433 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02c.uasset new file mode 100644 index 0000000..1a72dc7 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:195eb23c5fd028aca060e0de6ae24530fa7f90fb3464c07eb1d8f5e01fbf084d +size 49458 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02d.uasset new file mode 100644 index 0000000..79f5868 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_02d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ca8f2019c68cd1850395cf5fa65a1ef479045695d2d0c4563a3c0e529028de4 +size 49442 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03a.uasset new file mode 100644 index 0000000..d9c7f81 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85b00692f7b3be544abedc5b5bc0315cf69e55881c4b44fd289c859a43606a3b +size 39673 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03b.uasset new file mode 100644 index 0000000..2efa215 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66ba619990aa6e5390905c408824746eae57db3fe4e2f406b0f7351d26e5df3d +size 39515 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03c.uasset new file mode 100644 index 0000000..bec5f35 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cb4f7619d5be92d25f1486b3bd6f30d112e2095bbd85146f76cb577e46f3636 +size 39438 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03d.uasset new file mode 100644 index 0000000..c04868c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_03d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a83dc5d28b438d03c6977a1f45de0253fd1c31932b5dc2ef5da975efd8c47af5 +size 39454 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_04a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_04a.uasset new file mode 100644 index 0000000..7cb7940 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_04a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8314c401578ec1bec819ed100c0e6dad6615992af1b3ef20d204d328c2ba038 +size 500429 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_04b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_04b.uasset new file mode 100644 index 0000000..546b11a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_04b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:289ceef1be9d138295444f4871cbd241676fba9fd907244009d5a186728e5ea4 +size 217739 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05a.uasset new file mode 100644 index 0000000..6f49aaa --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c436cf62eb1761c108867cf0b1d4bd6f05c8a7d1354cfe4bdf8fc901561af73 +size 161396 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05b.uasset new file mode 100644 index 0000000..758ed95 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e6de43f91ea55ded2f384d84f703806c10e82f21f05fd7d6462f3f17cc4d629 +size 260431 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05c.uasset new file mode 100644 index 0000000..0efb522 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3988fd738f3f707f49a61ae702ee409548fdbd1f44bc2008fcaabf4c56f8b544 +size 364170 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05d.uasset new file mode 100644 index 0000000..0bfbcfe --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8a64c77aef3a00a68fce9b32abd7725422ca055eb90b2754dfa805e91b9f928 +size 266798 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05e.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05e.uasset new file mode 100644 index 0000000..bd9c687 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_05e.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4eaf4890e9116dd23469486264ac9cf9f4ab073158c4868448d67abf4ef2e7be +size 405332 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06a.uasset new file mode 100644 index 0000000..a19c458 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:034f4e4e6aa0b1feb754fa7eca655c19b1bc416d267ba24015546d52aacf0d00 +size 341391 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06b.uasset new file mode 100644 index 0000000..114d097 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5ddb66408d6b99df14fca54a308afb101f032de46bea16a08d7c3c15f6a6ec6 +size 335379 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06c.uasset new file mode 100644 index 0000000..e44cb8d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7b94e060e6d2308176c5983b941ab912eefc8a1b478e4a088322e2fd93eaa86 +size 280612 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06d.uasset new file mode 100644 index 0000000..2ffcca4 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cba73784f0856d8ea08deb2553d2baa88c914e9ad017f0546fba1df83d22cf3b +size 303991 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06e.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06e.uasset new file mode 100644 index 0000000..9a234df --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_06e.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ff8a221b41195709ead747845330912159a832e8fb78579ede1f25d4fdab0fb +size 504606 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07a.uasset new file mode 100644 index 0000000..71db0eb --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b559b65f0c021e0c42e3819698651df9cb1111713378d31c97772c636ce8b50f +size 79374 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07b.uasset new file mode 100644 index 0000000..2df413c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:610830d2f5bd13f9eebc7c48621aa85cce1f4255eabb746f839acdee422c06c8 +size 162518 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07c.uasset new file mode 100644 index 0000000..a756d01 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34e34772f7dcb3de42444d6158bb0c3cf550faed981c179b60541c17d14896c7 +size 84372 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07d.uasset new file mode 100644 index 0000000..15152e0 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_07d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a5c3ea4c9a761229161fb995581ffc1a5cc145e23eb44c3afec883d567673a6 +size 156639 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08a.uasset new file mode 100644 index 0000000..d27c6e1 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7472ae1062c5a32a27b2dfc3fac1295342f71050acd103571af4780f8fab2840 +size 314396 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08b.uasset new file mode 100644 index 0000000..5108979 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1099f062562255a9819ff25bf0b681948cd096be8dbe06618bfca5326c7123da +size 190417 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08c.uasset new file mode 100644 index 0000000..90c1f19 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodKit_01a/SM_FoodStand_08c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c71474ec9794dac699ceb08fd96fa2c790e489843a4836a4b561bca31068b095 +size 314926 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FireCamp_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FireCamp_01a.uasset new file mode 100644 index 0000000..724b09c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FireCamp_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8fd32e7ca651b2002b9ff9a063acf67cd08d25a32a0cdd50266d5e6958b3ca0 +size 67632 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FireCamp_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FireCamp_01b.uasset new file mode 100644 index 0000000..e4e5399 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FireCamp_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e4d8eb168f35d8da650464c8cf9f408774863a85b856ab33cbd99e7c9c786c9 +size 947459 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FishWoodContainer_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FishWoodContainer_01a.uasset new file mode 100644 index 0000000..1df0336 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FishWoodContainer_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ddcb4f62e7d4bc521f8fdf447f5b451112ad553a9fea39b5b4b60f84a031c0c +size 872107 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FoodStorage_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FoodStorage_01a.uasset new file mode 100644 index 0000000..e8e7c59 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FoodStorage_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65b02a46f806ded65d53756ba0e28eb1baec511a76173c4cc43e1b3b7099dcf6 +size 94824 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FoodStorage_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FoodStorage_02a.uasset new file mode 100644 index 0000000..d8479d6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/FoodStorage/SM_FoodStorage_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c83f5dd8d1e89d6c38727cfe61b5492dc99577afd2462db85c0c22832d58255 +size 101456 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HammerThor/SM_ThorHammer_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HammerThor/SM_ThorHammer_01a.uasset new file mode 100644 index 0000000..3da6028 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HammerThor/SM_ThorHammer_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cf5308485e25eca511651f1b94e225a327b9d03a881cca3f9c9ad59e55a84d7 +size 598025 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayPiles/SM_HayPiles_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayPiles/SM_HayPiles_01a.uasset new file mode 100644 index 0000000..671831b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayPiles/SM_HayPiles_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90cbd88380e03078a7944335df5b101ac48035da1a892350e4227263cdb183ed +size 231862 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayStorage/SM_HayStorage_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayStorage/SM_HayStorage_01a.uasset new file mode 100644 index 0000000..166634b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayStorage/SM_HayStorage_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71c87aa26b9dce55bef2a034cfd400c8a86a557188cdbced61b5d66c7ec5c6ad +size 56406 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayStorage/SM_HayStorage_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayStorage/SM_HayStorage_01b.uasset new file mode 100644 index 0000000..5068b70 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/HayStorage/SM_HayStorage_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:175bff8175e890fb4b375fca2411f24ee08f1c2db5d7b7b9ae94103dcb07b4f3 +size 28346 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_01a.uasset new file mode 100644 index 0000000..37c39b9 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ba43d2bbcd9d7806fa94c1ae198947ce8ef8bd42cb74c0db914e19803e072da +size 338174 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_01b.uasset new file mode 100644 index 0000000..cff5114 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b614a155322e0e2b6cca673bda30096e5070c087aae154d9852c2ae3294c32d +size 534004 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_02a.uasset new file mode 100644 index 0000000..b010db7 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:198e10b215f1e655233b9d89387018b45b89a0de2dd3d3776ed79120b3ea84c2 +size 230163 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_02b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_02b.uasset new file mode 100644 index 0000000..f4d83a4 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_02b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b116ea182b16de9f9f7fa43ee6a8386f1c6a059d699e3b11540eebef50928acc +size 142952 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_03a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_03a.uasset new file mode 100644 index 0000000..0661731 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_03a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e72713eea29cfded4536209e0d71c80eaafa16f297e71fd255ef01d039533583 +size 34467 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_03b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_03b.uasset new file mode 100644 index 0000000..9a397a8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalChain/SM_MetalChain_03b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d95726d4978ac5df41f724630c3ccc2565e03f2375b3e517ae632c58ce4545d +size 45628 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPotFlower_03a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPotFlower_03a.uasset new file mode 100644 index 0000000..093c477 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPotFlower_03a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5538154691058c2faf5cafe2895ec10ca6345f10b3158726628711fda0ad1ae +size 112109 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_01a.uasset new file mode 100644 index 0000000..67471fe --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:339c70f9ae0c4f389e8ea3caf9d4d8a64c89832e86942692187777928c6976a7 +size 28858 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02a.uasset new file mode 100644 index 0000000..1251393 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:848252acb1e8780c00f68274500b6d31c5fd698670f78cefd8860bc7c8175371 +size 69506 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02b.uasset new file mode 100644 index 0000000..a44d673 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2a102eca28a21c7893d1a69bb54308c3c01d06142f48e7e90b68701d2d5f94b +size 41489 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02c.uasset new file mode 100644 index 0000000..dc39b2e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbeb6cf3564fa1446b8c612c1946fcb34a6e2ef585df0160c2dafd382e223cc1 +size 72672 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02d.uasset new file mode 100644 index 0000000..dcfd49e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_02d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3f593573ad9c478c8f6fa858c3155d028ab7eab11e643e08fceda4216065ce0 +size 114476 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03a.uasset new file mode 100644 index 0000000..f92742f --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd1cb4c1ddc37f656fcc743d8824b76e5184e2414ec58b8309111c9107112d7a +size 78110 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03b.uasset new file mode 100644 index 0000000..96a079e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af4ff92a3306a8fb25e569eec779e8dbfbf209993d92254aebe5d8021ad1ed87 +size 47938 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03c.uasset new file mode 100644 index 0000000..0ffea7b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9165ac516536ae53d2f901852f9183bec8f0f3016845fd87d6571affe4fa355d +size 77765 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03d.uasset new file mode 100644 index 0000000..e66bb83 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/MetalKitPot/SM_MetalKitPot_03d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc6315c37ffb6ff9a917194d1ffccc60962493ae03bc8c563591603f67cd3288 +size 124651 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Rope/SM_RopeDebris_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Rope/SM_RopeDebris_01a.uasset new file mode 100644 index 0000000..a51f1d2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/Rope/SM_RopeDebris_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7edde4377028e831b8ddd67817ad77e3a0a036e5d599b92f5bf927a7a719a5be +size 108886 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/SignBoard/SM_SignBoard_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/SignBoard/SM_SignBoard_01a.uasset new file mode 100644 index 0000000..858b04d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/SignBoard/SM_SignBoard_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7030fcea0cf06789f57db6230a92a1440de5493640cdb268d537887113e1044 +size 220058 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/SignBoard/SM_SignBoard_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/SignBoard/SM_SignBoard_02a.uasset new file mode 100644 index 0000000..3c6ca83 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/SignBoard/SM_SignBoard_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73b567394161f80c222eb90c7dcc58581f8e318c2f41bc69d20ca75e1743445c +size 279491 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolFork_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolFork_01a.uasset new file mode 100644 index 0000000..86d1aae --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolFork_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e02e01f941c6eab3a15c2e770e75fc27561d33d1683606c67d30e566450b5ebc +size 565628 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolHammer_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolHammer_01a.uasset new file mode 100644 index 0000000..4b3f867 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolHammer_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbf6dcb60290949308572952cd4dbfcdf2d91d7b47603861f4f8b1102cbedfb9 +size 365743 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolHatchet_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolHatchet_01a.uasset new file mode 100644 index 0000000..f38a86e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolHatchet_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a2effbb6f6a0f318de8f3c7fb400e8b525afbec66c98a08073f24416791ffbc +size 413741 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolShovel_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolShovel_01a.uasset new file mode 100644 index 0000000..2b436ae --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolShovel_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c204da37096511bcd896779f98a4cbf4295fe059a7dbb6f39ac8b30b509de460 +size 735821 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolTong_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolTong_01a.uasset new file mode 100644 index 0000000..89b6efd --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/ToolKit/SM_ToolTong_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:405f1749111d6e5ee13e13cf6ea7f2e48f15155ca16718ebb97989948ca32cab +size 312958 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_01a.uasset new file mode 100644 index 0000000..99dc5bb --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:073febdb72926c7b59b5cfa5bd3b7f697f301e631accfb9bfb3cd58fb29c19b2 +size 251972 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_02a.uasset new file mode 100644 index 0000000..98fac96 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f6880c73fd9a7bd7cda6644a2ec0029fb110881bbb06387e51a2aad5d6776ac +size 306944 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_02b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_02b.uasset new file mode 100644 index 0000000..8f2bf48 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_TorchHolded_02b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5a39ea7eb3b88306114cc283ba4542ec703d5d6fb432f7f1db2f34065eeb873 +size 372761 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_01a.uasset new file mode 100644 index 0000000..d8b33ea --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99cb91c4d201522ccf9d5e4fa531634ab2e8177b74d71cb45078e6d996ab0d4f +size 238698 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_01b.uasset new file mode 100644 index 0000000..d023a46 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13d467e4509d49144f0fddc16574bd698bfbdf9ad4fc43acb0e6e0b8b808fb30 +size 172417 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_02a.uasset new file mode 100644 index 0000000..5a3b3f6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/TorchKit/SM_Torch_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28956a75fa986a379e6498b08e81c37b76cef8c88700c9487e87fb4c394e8beb +size 124963 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_01a.uasset new file mode 100644 index 0000000..0dc6741 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30f311e61a4faa2367cc3c03f918425894426d88b76afa41e827c5f36fa21f15 +size 48368 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_01b.uasset new file mode 100644 index 0000000..5c5727d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e75f51503301d465407500a5b3306f0f4da3002835435579f74a65a40e919dd5 +size 36195 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_02a.uasset new file mode 100644 index 0000000..07a4583 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d0f23be89757cc5aed4c3ce8d5ccb79181196a49860d6c779c1bac95ad08a3e +size 49096 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_02b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_02b.uasset new file mode 100644 index 0000000..078ecef --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingCross/SM_VikingCross_02b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e0628d4137f821724f07149535a5e4b5bc2d6aeb6efd3357dd78285efd97e45 +size 52948 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_01a.uasset new file mode 100644 index 0000000..5bab0ef --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e380875a4000b7f2bfb520f38c661025452ae38ba120125740057dfd5ba5cee +size 375916 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_01b.uasset new file mode 100644 index 0000000..9294d7f --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86d78eb636521fbc90b539f3a0a187b51b58c6e644baf57d1e1bbea65f13beff +size 400146 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_02a.uasset new file mode 100644 index 0000000..edf564c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84a78e3ff80f222b3f2cc8587943bb00bfad17a880d693a9e5d6c2383ccb1101 +size 144394 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_03a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_03a.uasset new file mode 100644 index 0000000..9b64f41 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_03a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69d045b93996a12432d5910acb001e29f55d0d40cf759902a7b9695baf3549de +size 25054 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_05a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_05a.uasset new file mode 100644 index 0000000..8124987 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingFlags/SM_VikingFlag_05a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99fba63335ffe5d68812834679bf58549f1d29cfa2a3c62bd8690198dc3a6fb2 +size 1304145 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01a.uasset new file mode 100644 index 0000000..e9c69d5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:707e6404f55e1c5d455b31214b2a8e2c58b8eb99431a165d5f6a8bc0d0997d65 +size 754230 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01b.uasset new file mode 100644 index 0000000..751e687 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:822102d34acbd9dcd2a9178eaa77ed08d11ce869368415ef9aa6cd8745d7c026 +size 573605 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01c.uasset new file mode 100644 index 0000000..08ee77e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/VikingShield/SM_VikingShield_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2df0c115722c95182be1733021d11da935f1a28060c2bb06bd24de0bb2af5970 +size 659200 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_ArcheryStorage_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_ArcheryStorage_01a.uasset new file mode 100644 index 0000000..8fe69a3 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_ArcheryStorage_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74432ab5433ff4deec447379c0a8b6370ea3ae6054e98bbb54c2235f00ab85a5 +size 591202 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_ArrowSac_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_ArrowSac_01a.uasset new file mode 100644 index 0000000..f8ea174 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_ArrowSac_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e93bf04573585dfb5afa568b8d269081f74ce86843a506f620f8ec6de2fe17d9 +size 173911 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01a.uasset new file mode 100644 index 0000000..92f9e5e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df5719bff688fe3609a8aa52a7f364350dc731359bc6b186c3860b3af819afe8 +size 33452 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01b.uasset new file mode 100644 index 0000000..7e360e9 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c4966cfaf3b43deb831def7b78887b3461e89ac33ae3c0c4fed6f4485a3c87d +size 32968 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01c.uasset new file mode 100644 index 0000000..9653235 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_Arrow_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57b552fe45a971f646f215c0fab27e2ba822567c92e877eb3d78fee703bd0476 +size 33230 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_StrawArcheryTarget_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_StrawArcheryTarget_01a.uasset new file mode 100644 index 0000000..cae45d0 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_StrawArcheryTarget_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:177cdff213ab01ac1466910241a34297b25a442411ed4be09d10b90270e8022c +size 461424 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_WeaponBow_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_WeaponBow_01a.uasset new file mode 100644 index 0000000..d6d7b48 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponBow/SM_WeaponBow_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b410be3f5f219fb98a111323253bc8cfc9e8e97094a6e11b8b36a46ada681637 +size 239896 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01a.uasset new file mode 100644 index 0000000..aaec9c5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60314261ffb58266e2c5d03d1b90e029636dd7fe324194022dc565790a4187b0 +size 151708 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01b.uasset new file mode 100644 index 0000000..30a20b5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbac9fc48fd3105caab96994cb3c91babd226fef4db594e9e0ef2a3b017dbd8c +size 207530 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01c.uasset new file mode 100644 index 0000000..b84578b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6005d67912850031d65253f83a7b99b49b0df14aa96012ec712fb3adf081aef0 +size 161238 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01d.uasset new file mode 100644 index 0000000..e7851cd --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WeaponKnife/SM_WeaponKnife_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:408f1008d2f2579c2420f7eb24ca0409ca3dbc75d411ecd6aa152e3f494e455a +size 117995 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WickedBasket/SM_WickedBasket_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WickedBasket/SM_WickedBasket_01a.uasset new file mode 100644 index 0000000..af6965f --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WickedBasket/SM_WickedBasket_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc6229f6c579c7e481c72a92eb19b5ba16103498a76e906a98a79d42204fa415 +size 197929 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodAleDrink_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodAleDrink_01a.uasset new file mode 100644 index 0000000..a25b827 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodAleDrink_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37ce4b4c86669092544f85cf92efb7647f402039b07121dbd397dc46092e565d +size 165454 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01a.uasset new file mode 100644 index 0000000..9ac0c50 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60d17a6229b8cf88204abae66c07eff9329eb5cb48469e65a5cdc26df8b86d78 +size 173554 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01b.uasset new file mode 100644 index 0000000..93365d7 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22323634b2a7290fd5d994dc615daa24aeecfc846f82eae0bb7bc446c2e6c7ca +size 173106 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01c.uasset new file mode 100644 index 0000000..95d0be4 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54a5397e3a0285b39642325e201d9af47eb8e451c59a42c4466de4d0aac3460c +size 138083 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01d.uasset new file mode 100644 index 0000000..d346998 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBarrel_01a/SM_WoodBarrel_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5540a6b78579383ec91cf227670c4b73e2fe8f154d859ebd481119f0359abd5 +size 55767 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBed/SM_WoodBed_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBed/SM_WoodBed_01a.uasset new file mode 100644 index 0000000..fec4349 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodBed/SM_WoodBed_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e236a4ab9abf2b926147d638b24ffa10298911273b579c03a9b778967926d27 +size 392106 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCage/SM_WoodCage_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCage/SM_WoodCage_01a.uasset new file mode 100644 index 0000000..3d017c8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCage/SM_WoodCage_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23f4c110c06933da09439a24b0216bfa9bf000fe72b627435c24cb8c0f817a29 +size 33043 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCage/SM_WoodCage_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCage/SM_WoodCage_01b.uasset new file mode 100644 index 0000000..dd372dc --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCage/SM_WoodCage_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ec83d457a14c8b67471540f6672cc44c5ab2f89f4b07819c4082bc79e38af8f +size 38385 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01a.uasset new file mode 100644 index 0000000..fff2bf1 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60c7842c571c492efb552068d5bc5cb436fd4d3fc994a524d5d689331718ae5a +size 90269 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01b.uasset new file mode 100644 index 0000000..c6c65a6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5759ee9ee5b105a818ce6a5243a2c2c6a8bbdc3aab8a5268ca74e3578e8060bd +size 611106 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01c.uasset new file mode 100644 index 0000000..aac6fba --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCart/SM_WoodCart_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29a1150dd5f061f884dcaddf0e5d175d4f87a2cb58c76fe8a2c5371711a2efce +size 433869 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodBench_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodBench_01a.uasset new file mode 100644 index 0000000..93ce4ec --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodBench_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bd71cd0bebd7fa1c62e1a674b139687d571cdd73e6ef5694b5c31b319930836 +size 58569 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodChair_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodChair_01a.uasset new file mode 100644 index 0000000..49a9b28 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodChair_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eff8f3e4bf17a131d5a41f82950180c27004dae4b7bc2a577a657723eca07ba9 +size 64984 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodStool_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodStool_01a.uasset new file mode 100644 index 0000000..b05a9e2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodStool_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:954c736b4c1175d9d8f50ad52466355f2e9fbeebcbe87ce026fd62e6dbec00ed +size 36235 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodStool_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodStool_02a.uasset new file mode 100644 index 0000000..db2cc65 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChairKit/SM_WoodStool_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1f19a9200b1bd6f677115a848b0ced42238e103d341a2efd3199fc53db7238d +size 37980 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChest/SM_WoodChest_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChest/SM_WoodChest_01a.uasset new file mode 100644 index 0000000..fba6e9f --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChest/SM_WoodChest_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d3cd011f29cd8a0452eeaee0c7b9d70f0d9699f32bd64b79bcca394b0f8dad4 +size 232549 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChest/SM_WoodChest_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChest/SM_WoodChest_01b.uasset new file mode 100644 index 0000000..1373f27 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodChest/SM_WoodChest_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:346f9373c4f9e1bbb1a1d0bfe8d40125b24cc0498c785f37e4a4842d1e3dbad5 +size 232931 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCrate/SM_WoodCrate_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCrate/SM_WoodCrate_01a.uasset new file mode 100644 index 0000000..81b2f23 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCrate/SM_WoodCrate_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77e19e6ac1f1f31185cbe37b45f52545458922a39dceb2a28980a9f08025f12d +size 245726 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCrate/SM_WoodCrate_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCrate/SM_WoodCrate_01b.uasset new file mode 100644 index 0000000..a57a21b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodCrate/SM_WoodCrate_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3809a6ab8ac05c29eeef9517689360e706cad306eac7fda74eab996f3d890e3 +size 370116 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLadder/SM_WoodLadder_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLadder/SM_WoodLadder_01a.uasset new file mode 100644 index 0000000..58625af --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLadder/SM_WoodLadder_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efd76d6f9130fd425bab53a13e89af3bf112c3a6e620356e97a30c744d5fd36c +size 217368 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLadder/SM_WoodLadder_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLadder/SM_WoodLadder_01b.uasset new file mode 100644 index 0000000..159460f --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLadder/SM_WoodLadder_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7d31847542ddd059159725d50d8d8785b9b0ab1227c17a3dbe977a4e180530a +size 295772 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01a.uasset new file mode 100644 index 0000000..09f97d2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bad75b952647829223bb0ad62b9785c1e7518fbe059667e90d8c82228d8f41fa +size 27248 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01b.uasset new file mode 100644 index 0000000..cd9e303 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1968ec0862cae57a6022d8f63a0aac09530f1f29a3ee9a3702f2bdf5dba74e1a +size 28512 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01c.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01c.uasset new file mode 100644 index 0000000..578d7d0 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01c.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af5e912d2f5d6a29f4b0b3b7202eab12e7e4b4dc8591e125fe320b997703c483 +size 28106 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01d.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01d.uasset new file mode 100644 index 0000000..03c8eeb --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodLogs/sm_WoodLog_01d.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06de7dd8929aa69a622b565bdfd9c89797db9459e191cc65096b5f7d0f04eacc +size 115419 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTable/SM_WoodTable_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTable/SM_WoodTable_01a.uasset new file mode 100644 index 0000000..a180d63 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTable/SM_WoodTable_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a51276c643ff664cc2a2348983a655cbc034dbb7c5ae250d19c21bcb0727e411 +size 71473 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTable/SM_WoodTable_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTable/SM_WoodTable_02a.uasset new file mode 100644 index 0000000..7fe0b53 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTable/SM_WoodTable_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db9239566de98cb1465b3ee10bcae45e6b6e2513ac90fc103b888450a345c1f5 +size 60384 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTrestles/SM_WoodTrestles_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTrestles/SM_WoodTrestles_01a.uasset new file mode 100644 index 0000000..7716179 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTrestles/SM_WoodTrestles_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4842e488ceaa8be31a6c68f0f19812d1f9f6a78ee9a98acea53c6199c50459d7 +size 87138 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTrestles/SM_WoodTrestles_02a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTrestles/SM_WoodTrestles_02a.uasset new file mode 100644 index 0000000..39bb6ee --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Props/WoodTrestles/SM_WoodTrestles_02a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85857ace4f005b7df67edd7213caf97d8be9b3371718e8a464d60eb2c5b3010b +size 186435 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStoneWall_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStoneWall_01a.uasset new file mode 100644 index 0000000..104416e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStoneWall_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be7a6e9c7c71ebae2e7f17bd9fbb30a4de771b8dcf1416723bc53298a588c794 +size 633812 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStoneWall_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStoneWall_01b.uasset new file mode 100644 index 0000000..e0cf17a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStoneWall_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d0d6a3d3d4f1d6481ce6bdba1e12960da78f650f03925741f50013ef305eb05 +size 1225601 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStone_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStone_01a.uasset new file mode 100644 index 0000000..6f65345 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStone_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3be5caf6c80c67d52e2614a38e719a96932e59f5112e33558982ceedd7453416 +size 744285 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStone_01b.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStone_01b.uasset new file mode 100644 index 0000000..10062a2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_RockStone_01b.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36f106a187787de6516a7df70d672dabc1f9ffd664c767eeb3635b2f726cb679 +size 934948 diff --git a/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_StonePatch_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_StonePatch_01a.uasset new file mode 100644 index 0000000..59eb007 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Meshes/Rocks/SM_StonePatch_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9535c42645a8ed6de95a34a775b057bd0ff0e3e423ca40e54059842f601051f3 +size 1834018 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_A.uasset new file mode 100644 index 0000000..65983de --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99ef03ad3b6997cde6b8f18d0091b7bd6af4f9736d9ebabde8de1863a343f5a6 +size 9320804 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_N.uasset new file mode 100644 index 0000000..9bea699 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac2ccaffeb125802009ab25541e642cb77f91c2a8ceff01acd056c0485121cb9 +size 8292729 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_ORM.uasset new file mode 100644 index 0000000..e0f7093 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CliffRock_01a/T_CliffRock_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9302a8a0b0c4df26cb485e1f0deab87c8a49e16cd471ab540f560fffb81216e1 +size 7582711 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CoverPlant_01a/T_CoverPlant_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CoverPlant_01a/T_CoverPlant_01a_A.uasset new file mode 100644 index 0000000..1098d47 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CoverPlant_01a/T_CoverPlant_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf56d98d69dddc4520722f7b2507438b3cf606a4d287f1d4bb04f2b64d4540c4 +size 3063022 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CoverPlant_01a/T_CoverPlant_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CoverPlant_01a/T_CoverPlant_01a_N.uasset new file mode 100644 index 0000000..3ed6f88 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_CoverPlant_01a/T_CoverPlant_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8b668ff69a1aa3384f4eda59699c8c12ce7238f5e1052608140427c86944d33 +size 1186981 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_A.uasset new file mode 100644 index 0000000..d33a847 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbf0f8ad303601dcab3482074cfa80fdee458cec4e7d91953f825f4bfa7cc357 +size 8740273 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_N.uasset new file mode 100644 index 0000000..30d7952 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c9dc6b2addae44206d6c82d2edc1c02493b0f3bd37f1d071fd1cc09979f809c +size 13966631 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_ORM.uasset new file mode 100644 index 0000000..c24d4d3 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_FoodSeed_01a/T_FoodSeed_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3f906b3ab72149a433135a3c3a9853eb4fa6f5285dab463e8fe89c841f07572 +size 4440714 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrassForest_01a/T_GrassForest_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrassForest_01a/T_GrassForest_01a_A.uasset new file mode 100644 index 0000000..ec95496 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrassForest_01a/T_GrassForest_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb9400782d450b0fac71236d7a4eee31bff5a34bbc9ecfaa379e39bdc177470c +size 25568426 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrassForest_01a/T_GrassForest_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrassForest_01a/T_GrassForest_01a_N.uasset new file mode 100644 index 0000000..444257e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrassForest_01a/T_GrassForest_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7ddbd2346062d8b70fcd1185dbd5d0a65f554e48dfa5cd804600ca3d148f932 +size 12776483 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMacro_01a.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMacro_01a.uasset new file mode 100644 index 0000000..19460c2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMacro_01a.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d57410a17d9716f9563462339d8465b0c5aa902c486e1d605458ca2f42a22327 +size 10745116 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMask_01a_M.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMask_01a_M.uasset new file mode 100644 index 0000000..4133d24 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMask_01a_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e381db0b5d3cdbce719908f02599c0638121361a6140a9a988d69d28b1467662 +size 968355 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMask_01c_M.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMask_01c_M.uasset new file mode 100644 index 0000000..e4315da --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_GrungeMask_01a/T_GrungeMask_01c_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23c0d6c4cfcace6cf2e5c4828564b8262cc4798d5858ed9e159ac558903a6fc0 +size 1617834 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_A.uasset new file mode 100644 index 0000000..08bed85 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6315ed8998a3883d233b319448d18b24453b080560c84eb9bae4074be199a564 +size 12753015 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_N.uasset new file mode 100644 index 0000000..4f7e8f2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2760699d981b7b7e3b0405c9c65f4bd2003c689ad1ea0576e2ea1c904d878e8 +size 13259350 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_ORM.uasset new file mode 100644 index 0000000..a8e6b6f --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Hay_01a/T_Hay_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b229f00a16a8b1185a07a9f1979fb391e38c4752c58e769b9f50f110e5d3755 +size 6817227 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Mud_01a/T_Mud_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Mud_01a/T_Mud_01a_A.uasset new file mode 100644 index 0000000..f55b290 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Mud_01a/T_Mud_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51160fd1a3bdd919d0ff7db6f8fcfb4c1e1602e2d7ea5523bcb2766c66e89095 +size 9381384 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Mud_01a/T_Mud_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Mud_01a/T_Mud_01a_N.uasset new file mode 100644 index 0000000..243688f --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_Mud_01a/T_Mud_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebea249b4cce6d2cd2459a6e339632e952d90fa7065e32874000696aa1742751 +size 9230014 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_A.uasset new file mode 100644 index 0000000..173e391 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d94bbb05f8d7f76b871a9b9579cf22a4fe96a0fd55ec80fda5ebbdd56c326016 +size 1698376 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_N.uasset new file mode 100644 index 0000000..4bffb1a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a1f8de119853f621565947531c8bd01f257fe42f52dbca0054480f0ba4746ba +size 1846220 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_ORM.uasset new file mode 100644 index 0000000..f87447e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_RopeAged_01a/T_RopeAged_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7582bda24d73ae8d7fbe1b76487d33f4cbd159f0b159dd1557415c3cd2a418e2 +size 1568343 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_A.uasset new file mode 100644 index 0000000..c2dd319 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e984684164ecb56ac13db6021ebc0a7defd63f05d0b58fb1557b9cb60637d5f7 +size 32183898 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_N.uasset new file mode 100644 index 0000000..44b3c0b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cce7034a4f036d740a8610ad7c90a421f137e94ed6af15e465e864ef0271dbe9 +size 47366660 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_ORM.uasset new file mode 100644 index 0000000..168922a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_TreePineBark_01a/T_TreePineBark_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e385f1360b8fbc92cc003a3f999c586fec07b003d806db5bf6620d17f56eedca +size 4471081 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_A.uasset new file mode 100644 index 0000000..850dc33 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73aa164498c015607f313264e231f346aefae5fa0bf584d650b1498773a0bfae +size 5379455 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_N.uasset new file mode 100644 index 0000000..15b3eea --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46f92f389e8122c0506ece13fbdd0e4dc9620056e9ebada5efa60055124591bf +size 7695065 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_ORM.uasset new file mode 100644 index 0000000..ed978b1 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_VikingSail_01a/T_VikingSail_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb8642a1deec606893dc4a7c435cb0c9ec9dea3d95a08f2d7f7269a7493bdfb0 +size 2425798 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_A.uasset new file mode 100644 index 0000000..5387534 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74b9d6adb44b17cd783172575ea44c5fa100adf94d4246a8c6e54e4eb18ca1c5 +size 10689682 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_N.uasset new file mode 100644 index 0000000..e9ade41 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:774c9f5d5774b04e46dddd0c5bfb84e35dacac95993aae18dd87bfe9a3b50cb8 +size 4725439 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_ORM.uasset new file mode 100644 index 0000000..47d676a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodCarvingTrim_01a/T_WoodCarvingTrim_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eac34e7e3fafa60cbac1533233347b47e9b1f2c1d94bb023ede9f6dcfebd0de6 +size 2776971 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_A.uasset new file mode 100644 index 0000000..3824105 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab4b430375b972c663ae668f8f763dead180cd9ed918f2c8ac4bbb762bba7c85 +size 10302140 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_H.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_H.uasset new file mode 100644 index 0000000..d39f02b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_H.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d4f17ea5a0a0140288d61eccfddb27690f1a8052ba2c8b64cd6be12083926ac +size 913950 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_N.uasset new file mode 100644 index 0000000..80e5d3d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2a30aba97ec5234686075ace4e32d25c76c96305d551e3b8cd64906ce80cd65 +size 7585224 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_ORM.uasset new file mode 100644 index 0000000..44783d5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodPlank_01a/T_WoodPlank_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:633c936102ff3f42d6e6bbba234c0eb8d869f4327ecb651b9a3026a7c3ade587 +size 6813882 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_A.uasset new file mode 100644 index 0000000..5ae56b5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5143213787889c94d4ea4c0261d97b3953d2b073d0376b1fa4cbd5d3ce847e9b +size 11333670 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_N.uasset new file mode 100644 index 0000000..2463640 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccdc5864ea966e82ed66509d5264059090eb008400a6324c9bb0bd2e5bf3a374 +size 5620850 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_ORM.uasset new file mode 100644 index 0000000..2552f19 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TT_WoodRough_01a/T_WoodRough_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6620bc10d413dcb3fc64c46036567f56caf093b73af03cdd969d5d5b938c4673 +size 5313197 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_A.uasset new file mode 100644 index 0000000..48fab11 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:375d6f8a66f2393992de2451f5f3378b97259bf863edf544d15f186e6822a44a +size 3610627 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_N.uasset new file mode 100644 index 0000000..013cf37 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57aca2be255b5ba88d5ded3f8f8f6d0919ba3526dcc3e547bd2b5b22d57841b4 +size 10188442 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_ORM.uasset new file mode 100644 index 0000000..7df1639 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithAnvil_01a/T_BlackSmithWorkAnvil_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cb1f36f9165dda7f0359dd241c36cce60907bde240dce6cdb892fc939c2cceb +size 3077146 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_A.uasset new file mode 100644 index 0000000..9aa2619 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a82ce50d8aabebe47692be37e599a1f3dd39001480caf8ac753e1282637ca86e +size 6988097 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_N.uasset new file mode 100644 index 0000000..c050357 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd692ffd1695e49fea869c0536769f743d4808cababf73c3b547aba245fd5f5d +size 8840623 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_ORM.uasset new file mode 100644 index 0000000..bb7d59a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BlackSmithContainer_01a/T_BlackSmithContainer_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c69acfb326fc9c89bf84d069a7877b87856d04864fafc9980bd422e5502fceb1 +size 4874141 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_A.uasset new file mode 100644 index 0000000..d02a67b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4675a08b8afb1967eb21ab295850c42a8f1355c73d768630cab0c6e15b752c74 +size 6466318 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_N.uasset new file mode 100644 index 0000000..44d6843 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e44cb2230ebab86f6d4e1511fc4aa1c9594fc8ee7bb4dfe86453eca35c0d4b1e +size 18504999 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_ORM.uasset new file mode 100644 index 0000000..dedb515 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_BottleKit_01a/T_BottleKit_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40621b4ee14619a6c1bae42202b0856a4ad375e01734b2173f85fbaa666d0e4e +size 5633841 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_A.uasset new file mode 100644 index 0000000..421dad8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba31a73f372019a6361c66ffde04ef15e2f8fe9ab40ce7b6241286c43d400f8e +size 4432586 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_N.uasset new file mode 100644 index 0000000..d0824da --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21cdb810e82b25e6344a4083e6feaad3360b3cf39cafc60e95ce2b88722153ba +size 13845556 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_ORM.uasset new file mode 100644 index 0000000..db41a24 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Brasero_01a/T_Brasero_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4bc674ede6076324f035f9fa2f2781e4246fcc2c94180cf8411e0947a4cb50c +size 5798200 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_A.uasset new file mode 100644 index 0000000..5c0dc8d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:276a54e64cb289e58460761f7f3cc12f9fc10bc74227ec7480df81c03c7b7b7c +size 1184709 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_N.uasset new file mode 100644 index 0000000..160d407 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d664c2c577c375905ad93325e92134ab2586d45c34d3eb5238855a3391b0c2e +size 1199543 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_ORM.uasset new file mode 100644 index 0000000..1ccbaba --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Candle_01a/T_Candle_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f42c85b054145eb92339dfb2cf48e121a0e335cc9147d0dd759061972e92668 +size 1219686 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_A.uasset new file mode 100644 index 0000000..1332254 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdff3555991c812024a5b9969112710dc139ed8ee2a72470986d70cae5cebdb2 +size 4737060 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_N.uasset new file mode 100644 index 0000000..8f28222 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ba352acb52a49d9b5340d0dc0c7087d1ec7958cccb0d2203af4ba653af9b1e7 +size 4454643 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_T.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_T.uasset new file mode 100644 index 0000000..5c96808 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FernPlant_01a/T_FernPlant_01a_T.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2912ce3b019b81f4ef3d8332dc7e3b0e69790b133b937015abafaf77168a35e +size 6145279 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_A.uasset new file mode 100644 index 0000000..cbeca63 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5365fbc0f67a4a04a4bb4ecf50795a7a9e14e6ce991ed3d6513306062cad0ebf +size 4316625 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_N.uasset new file mode 100644 index 0000000..0f66ed5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f389d32d444ade102c3fbe01ce24b0c6a416f85e8f1c6d299f61505c95da68c7 +size 16521837 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_ORM.uasset new file mode 100644 index 0000000..2cf49dc --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FishnMeat_01a/T_FishnMeat_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3777ef3dcdf30ec93b8aca4d76ac6ace08757fd4655e06788ffa0eb5760c9746 +size 2230203 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_A.uasset new file mode 100644 index 0000000..bf59b39 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8098e79d44ae25cd36ad8ffe64532af64946df8d90bfabbe9001b66b887982d +size 5689740 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_N.uasset new file mode 100644 index 0000000..0a15d82 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9543324fae506142d37ab91380492aa1e6b35a3df025454281e5af23f0c123b +size 18165214 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_ORM.uasset new file mode 100644 index 0000000..828407c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodBag_01a/T_FoodBag_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ee9871ffc690e9665adedac46bddddcb1a36c70875668600f07d26a94ca205b +size 4081121 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_A.uasset new file mode 100644 index 0000000..3235327 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6304ae55e01ef2ab52564bf4a20ea16e7adfee40570bea285a84c82f2a296388 +size 7088033 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_N.uasset new file mode 100644 index 0000000..067ebeb --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9fa3ca6ec2edc83d4af17474748c2e56e95c4422b3fa87ff617564a26ed6be2 +size 7087304 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_ORM.uasset new file mode 100644 index 0000000..a4aecb2 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_FoodKit_01a/T_FoodKit_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6727eac03a4c3d1bd18b3bc37c0a9b66f8b9c1c86c0605a268c20d4f705afd7 +size 4010236 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MaskRGB_01a/T_MaskRGB_01a_M.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MaskRGB_01a/T_MaskRGB_01a_M.uasset new file mode 100644 index 0000000..6398c01 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MaskRGB_01a/T_MaskRGB_01a_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0da7de75ea2a74a78032634d93e9143dafcef7bca9b05276678dbcac23d06b26 +size 63961 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_A.uasset new file mode 100644 index 0000000..ecf6b52 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afe255f6ede684d24c81dfd50806e521bd9c45991354c67cd72088b03222b171 +size 6866900 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_N.uasset new file mode 100644 index 0000000..c696a52 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eae2d756f3253831596389d94f52da5c35e40bf74dea44b4f5412f73992a76f2 +size 22086918 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_ORM.uasset new file mode 100644 index 0000000..11d0ab8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_MetalKitPot_01a/T_MetalKitPots_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6654f56de031d73cf23eb7622b8857045d5e11b77a69c37a58501f52d2d483d2 +size 6029252 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Mushroom_01a/T_Mushroom_01a_B.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Mushroom_01a/T_Mushroom_01a_B.uasset new file mode 100644 index 0000000..6cb7d2e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Mushroom_01a/T_Mushroom_01a_B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0857659ab32eb289b0a24f6d9a244c04722b2d655a7d7aba61c1ce4ba4d976cf +size 6134199 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Mushroom_01a/T_Mushroom_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Mushroom_01a/T_Mushroom_01a_ORM.uasset new file mode 100644 index 0000000..432504e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_Mushroom_01a/T_Mushroom_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c150e75e0b701c7850df4ca67a20518421c3f2b338b9faa1dd746ebd0d2f857 +size 4463174 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_RockStones_01a/T_RockStone_01a_M.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_RockStones_01a/T_RockStone_01a_M.uasset new file mode 100644 index 0000000..2552207 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_RockStones_01a/T_RockStone_01a_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63abe68bd9339d37f7ba34374b0d23b836adeb509e60f733093eab5979c64601 +size 3399782 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_RockStones_01a/T_RockStone_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_RockStones_01a/T_RockStone_01a_N.uasset new file mode 100644 index 0000000..d47a694 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_RockStones_01a/T_RockStone_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a1142cb90a7cef2f2810c74217bb9067bcf8eee6febec6c2ee144770de00b20 +size 17130144 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_StonePatch_01a/T_StonePatch_01a_M.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_StonePatch_01a/T_StonePatch_01a_M.uasset new file mode 100644 index 0000000..c0eeea6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_StonePatch_01a/T_StonePatch_01a_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe12c8cc3c51eaa80d7331cf68a1d1bc897419d4e4112d0f892d6113be5540b4 +size 1531195 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_StonePatch_01a/T_StonePatch_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_StonePatch_01a/T_StonePatch_01a_N.uasset new file mode 100644 index 0000000..75d0596 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_StonePatch_01a/T_StonePatch_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e674973874cf7fba81c1980a911185dcb1af52688a30f8a88a1017219a15d27e +size 6469218 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_A.uasset new file mode 100644 index 0000000..fea2c7c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43334f47cfbe6421dfc44bc14638307eacf8c5cdaeeebf725381cce8cc6a011d +size 5950647 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_N.uasset new file mode 100644 index 0000000..33f6596 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd469923fbf859a36452add24e918f5b250cf94eba2dc689a5b09d7a0e6b04d0 +size 19213289 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_ORM.uasset new file mode 100644 index 0000000..435bd29 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ThorHammer_01a/T_ThorHammer_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08f20c3434a9b1fddfa3840618c915ec1131e53739af78f87c9b0eed7327cbbf +size 5698285 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_A.uasset new file mode 100644 index 0000000..8adb44c --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6719312593463218e6abc9921c7e8d090be999b267a7e19d758bba79c5a82385 +size 7085165 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_N.uasset new file mode 100644 index 0000000..a56fa76 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6ff5c41408725e9526da3dcba6a6f4c4da480090963b4c6fc581f45a8435b37 +size 22908871 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_ORM.uasset new file mode 100644 index 0000000..8268d65 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_ToolKit_01a/T_ToolKit_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cb4817624fe6292189028071449bcc4e825c83b580da069c47b93a147280846 +size 6403982 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_A.uasset new file mode 100644 index 0000000..fca1da5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e79cade84302fdb816f2fe884248c26b851845682cdbde5bc82abe0f4ef1f155 +size 4860707 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_N.uasset new file mode 100644 index 0000000..3f64ae1 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5e9d301e140d09390258f2549b9b3af0d0770b4df3eb473aac05d75a069a4b9 +size 21763667 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_ORM.uasset new file mode 100644 index 0000000..c7747c6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_TorchKit_01a/T_TorchKit_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51bde236c860f06813fb1547e71fd64ab22a670154d860f093a8bb0d628133fb +size 6384804 diff --git a/Content/__ExternalActors__/Maps/L_World/E/I0/8VGGGV3IG6PYE9XB4AJLTN.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_A.uasset similarity index 81% rename from Content/__ExternalActors__/Maps/L_World/E/I0/8VGGGV3IG6PYE9XB4AJLTN.uasset rename to Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_A.uasset index a80cf34..d53a01a 100644 --- a/Content/__ExternalActors__/Maps/L_World/E/I0/8VGGGV3IG6PYE9XB4AJLTN.uasset +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_A.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b91fd737f9a191e625e7d61832fa066e1d52aa9e8226b9990b5e1ced4e516eee -size 622919 +oid sha256:32702a1d93c15f4f720c75aa53980f72ee15512c6c83b01b972a9ead3f8a3c9d +size 7186186 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_N.uasset new file mode 100644 index 0000000..58aed44 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a318d12f3706cecdb67cc697028125ba70191706d2182f568dcdefe0d3bb038f +size 4435680 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_ORM.uasset new file mode 100644 index 0000000..4066876 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingFlag_01a/T_VikingFLag_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de615f84894141ad6311b00ed070d465e0ec4c2a0bb416b2fe8cb57d6985056f +size 2757318 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_A.uasset new file mode 100644 index 0000000..89412b8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:930a70ee9d3982bfbcb0456e64d5c9031ccf6e0663c984f739d9e0403d7696c7 +size 3838734 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_N.uasset new file mode 100644 index 0000000..9c52f78 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccc9ccf310607f975a27e00aa8bfcb845f423130b0fb98e0d572b431afe1a3c6 +size 16814295 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_ORM.uasset new file mode 100644 index 0000000..3ac2c92 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_VikingShield_01a/T_VikingShield_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2c3592d54ad0ada45ca86c8e01597c7aa4c1fc2328defe7a95bcc5ec89fbe43 +size 2647318 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_A.uasset new file mode 100644 index 0000000..f6680b6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c80515d64f9f0072d5fed0d9af4f73f06d91b470eeeefd4e158b8a5fde18ed2e +size 5663106 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_N.uasset new file mode 100644 index 0000000..d17214b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56d76386afd995f6c266e1f413e216746482dc6822d19e14b40e85213989112b +size 17075907 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_ORM.uasset new file mode 100644 index 0000000..cc278c9 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponBow_01a/T_WeaponBow_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1f0272d7ea7d053c1ca045785764385b32fa1bfa335626058ea469db9246785 +size 4202166 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_A.uasset new file mode 100644 index 0000000..f7ee08d --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40d43c30061b68f47c92ed982833cce9a404aacabaf6bcfaf0102395613c5e13 +size 4374873 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_N.uasset new file mode 100644 index 0000000..52acd53 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4f5d3a6c6475a70b267ea3ff48e28b11cd7bf08ca1588dfcc8c52c265b45e04 +size 17517420 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_ORM.uasset new file mode 100644 index 0000000..39618b8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WeaponKnife_01a/T_WeaponKnife_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b34b43121284a0962f14c002f1d17810a0f5a7a47fcfeede138f378078b8269e +size 4661170 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_A.uasset new file mode 100644 index 0000000..eca1310 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81adba1ac46c630e37e6ef61b313fdbcdac119f2701d1d268d7ffe93a8146175 +size 6708827 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_N.uasset new file mode 100644 index 0000000..3eb834e --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:539cbb50cc52478e8e7d2c7ed5ca78e472c11aaf5a272e46a034208fb1dc9393 +size 20174651 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_ORM.uasset new file mode 100644 index 0000000..e40cb92 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodBarrel_01a/T_WoodBarrel_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9e85c2e542c84b1e74a7623953269809ac4cc1f7e3f819387f10b9e78c2ba1f +size 5672567 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_A.uasset new file mode 100644 index 0000000..8871364 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d240b0ddbcaf65c5e8b873e494a13490681d31ba21c98ee7280ecdda228cba3f +size 7905306 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_N.uasset new file mode 100644 index 0000000..68a807a --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0709d702c6fd3845ecdedc0e752ca60092a3d71df12970a34e40db001e5eb5a3 +size 8919864 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_ORM.uasset new file mode 100644 index 0000000..eaa430b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodCart_01a/T_WoodCart_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6196910a757fac9ab9fbd1e9318853a11da89b25dc61c8b2c7d96ceca42e97ee +size 6787403 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_A.uasset new file mode 100644 index 0000000..a5643fb --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7074eda5a649d72c375ff1091adace6679b1e528be30beb1897c2de5eb319030 +size 7500799 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_N.uasset new file mode 100644 index 0000000..8a5c9a5 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df75532885d62c5b81f88c8bd66d7ac179737338cc1b331bfaa73484b215f351 +size 23883379 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_ORM.uasset new file mode 100644 index 0000000..cfc0144 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodChest_01a/T_WoodChest_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72af0d173c971bb34335a99639d3293b39b175420a691804f6d4aa85f8a2e8f9 +size 6818643 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_A.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_A.uasset new file mode 100644 index 0000000..4d846a4 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:290f9954b28ee43f1592185dadb7ae659356a80fa8948901fa6ce24a92c8bc4a +size 5989695 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_N.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_N.uasset new file mode 100644 index 0000000..3816355 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1f4a0be228374e8524bfd1c4fdbbb5697a32b18627e8496f8cf6228470927e6 +size 6688406 diff --git a/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_ORM.uasset b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_ORM.uasset new file mode 100644 index 0000000..2f375d6 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/Textures/TX_WoodLog_01a/T_WoodLog_01a_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb22a7674d531274be48af488d6bb225d82ce26e3255c11df2ff1c8246c9530c +size 4562503 diff --git a/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_ChimneySmoke_MV_01.uasset b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_ChimneySmoke_MV_01.uasset new file mode 100644 index 0000000..ec7a909 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_ChimneySmoke_MV_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:671d52f3d2294c11ee23245b7c89b0e615debc63c94d48de783023347290e227 +size 12261 diff --git a/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_Ember01.uasset b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_Ember01.uasset new file mode 100644 index 0000000..12c1574 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_Ember01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47700dfacc7f8677a89159d7b9e3fdc2a9a1c4105df338dbc9f208cdb0067151 +size 7791 diff --git a/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_Fire_MV_01.uasset b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_Fire_MV_01.uasset new file mode 100644 index 0000000..7c7fe36 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/MI_Fire_MV_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2029b354aa3db7e84165436da34e12ff642aafabb84bafa2ad671fbe2056c36 +size 13394 diff --git a/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/M_Ember02.uasset b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/M_Ember02.uasset new file mode 100644 index 0000000..140068b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/M_Ember02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08b7baa1e8b35fe1356b50641c7c7b1bca94add19edbd0b1697f313b08f44024 +size 14047 diff --git a/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/M_SmokeMV_01.uasset b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/M_SmokeMV_01.uasset new file mode 100644 index 0000000..4055ea3 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Materials/M_SmokeMV_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f59332e918acbdbf40e3933aa61889d4c42f26be8fb633457125679b7e010386 +size 29591 diff --git a/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NE_Ember.uasset b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NE_Ember.uasset new file mode 100644 index 0000000..654b0c1 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NE_Ember.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1524db2c66c438142bb73c46d6b21caba6b9fc56f53f2cb3b29436f4428f816 +size 96360 diff --git a/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NS_ChimneyFlame_01.uasset b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NS_ChimneyFlame_01.uasset new file mode 100644 index 0000000..89693b8 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NS_ChimneyFlame_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:075ec99a6e803b603f652b1fb2071dc4798574a27c1523ac7fa483652946c9f8 +size 1976436 diff --git a/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NS_Torch_01.uasset b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NS_Torch_01.uasset new file mode 100644 index 0000000..70b14ef --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Niagara/NS_Torch_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61f6fc494da5fa4506222e46ab6f80a9a05145a422d52f88518c2d8c61025865 +size 2294566 diff --git a/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Textures/Fire/T_Fire_MV_01.uasset b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Textures/Fire/T_Fire_MV_01.uasset new file mode 100644 index 0000000..79a376b --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Textures/Fire/T_Fire_MV_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8d5056c7f313382e340cf158213b50048c5c8a9810c58bae0c54ad1b486225a +size 1222056 diff --git a/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Textures/Fire/T_Fire_RA_01.uasset b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Textures/Fire/T_Fire_RA_01.uasset new file mode 100644 index 0000000..7a1fbf9 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/VFXUpdate/Textures/Fire/T_Fire_RA_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a74ed27a02902a241073705ae4e2105c228c4b1a7ea9da3e806e7b2e6003db4 +size 2773553 diff --git a/Content/HouseForge_01/Viking_Village_Props/_FX/TX/T_Cloud_Tile.uasset b/Content/HouseForge_01/Viking_Village_Props/_FX/TX/T_Cloud_Tile.uasset new file mode 100644 index 0000000..e3f1009 --- /dev/null +++ b/Content/HouseForge_01/Viking_Village_Props/_FX/TX/T_Cloud_Tile.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82d476f8fcc75bf4c0dfde562b1189e3e5a6c616e851183d7f8d95c6704e967b +size 1303689 diff --git a/Content/Maps/L_World.umap b/Content/Maps/L_World.umap index 1c913cb..969e8f2 100644 --- a/Content/Maps/L_World.umap +++ b/Content/Maps/L_World.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b82ce62f158fff3b9b33739da0a2fbbc62f258563194f300a11ebc912524a2c3 -size 11048 +oid sha256:3727f0a1a2026a9079672e697074883485e776b0a3b91d4ee5d884bccc455f8c +size 13642 diff --git a/Content/Medieval_Weapons/Animations/A-AIM_MF_Down.uasset b/Content/Medieval_Weapons/Animations/A-AIM_MF_Down.uasset new file mode 100644 index 0000000..3f61396 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A-AIM_MF_Down.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d014b8ff49ef9a05783f13ac116de1923de50ba8161ef9d9290655110f8be6d +size 1101029 diff --git a/Content/Medieval_Weapons/Animations/A-AIM_MF_Down_Neutral.uasset b/Content/Medieval_Weapons/Animations/A-AIM_MF_Down_Neutral.uasset new file mode 100644 index 0000000..d2dd3fa --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A-AIM_MF_Down_Neutral.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7efdaf589ea613e5f7452a26ca40618028b0afda8e7e105469daa244f949868e +size 1101273 diff --git a/Content/Medieval_Weapons/Animations/ABP_Bow.uasset b/Content/Medieval_Weapons/Animations/ABP_Bow.uasset new file mode 100644 index 0000000..4e9d923 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/ABP_Bow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c72b15dabfaf082b15c103f57b3f7e115a1b5244dd00ff06df6817db777327f +size 92321 diff --git a/Content/Medieval_Weapons/Animations/ABP_Crossbow.uasset b/Content/Medieval_Weapons/Animations/ABP_Crossbow.uasset new file mode 100644 index 0000000..c951030 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/ABP_Crossbow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81f8436ac6f0ee7c63edc5240a9dd55aa5fe5474bc9b09778dfaeff253fcc111 +size 83970 diff --git a/Content/Medieval_Weapons/Animations/AIM_Offset_Crossbow.uasset b/Content/Medieval_Weapons/Animations/AIM_Offset_Crossbow.uasset new file mode 100644 index 0000000..bf736d7 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/AIM_Offset_Crossbow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86f927be47a5db40f0eb2b69413ffc689303189d2c44028aa5ee728605356fce +size 8169 diff --git a/Content/Medieval_Weapons/Animations/AIM_offset_CrossbowShot.uasset b/Content/Medieval_Weapons/Animations/AIM_offset_CrossbowShot.uasset new file mode 100644 index 0000000..4fece46 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/AIM_offset_CrossbowShot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76b2bb044857f33a672b49963c9f184a5f2cc2909b9b4958e5f4e805021b956a +size 8110 diff --git a/Content/Medieval_Weapons/Animations/A_AIM_MF_BowShot_Center.uasset b/Content/Medieval_Weapons/Animations/A_AIM_MF_BowShot_Center.uasset new file mode 100644 index 0000000..dca9899 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A_AIM_MF_BowShot_Center.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0226fc7b8d38f7cfd7b36e03a6abdf3cc7062fdc7275e248d3c79932c00625f9 +size 1114192 diff --git a/Content/Medieval_Weapons/Animations/A_AIM_MF_Crossbow_Shot.uasset b/Content/Medieval_Weapons/Animations/A_AIM_MF_Crossbow_Shot.uasset new file mode 100644 index 0000000..890f59a --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A_AIM_MF_Crossbow_Shot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc4b58fa33df4f7e231f7bb69f57adcd8553bac5a6060b4d9c832f06dfc9e1a8 +size 1154125 diff --git a/Content/Medieval_Weapons/Animations/A_AIM_MF_Crossbow_UP.uasset b/Content/Medieval_Weapons/Animations/A_AIM_MF_Crossbow_UP.uasset new file mode 100644 index 0000000..d8fe37a --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A_AIM_MF_Crossbow_UP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5e6f6aaf4c7800cb9b5ebb8fee2e0d78d7791f272c0a8018309dfc9e9af8de9 +size 1100825 diff --git a/Content/Medieval_Weapons/Animations/A_AIM_MF_Neutral_UP.uasset b/Content/Medieval_Weapons/Animations/A_AIM_MF_Neutral_UP.uasset new file mode 100644 index 0000000..5b1c5f0 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A_AIM_MF_Neutral_UP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11822a45551adcea5ee6af68202a0d32c6f6ccd638149e9d680e2fad1d43731c +size 1100977 diff --git a/Content/Medieval_Weapons/Animations/A_AIM_MF_UP.uasset b/Content/Medieval_Weapons/Animations/A_AIM_MF_UP.uasset new file mode 100644 index 0000000..1df11a1 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A_AIM_MF_UP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:015dc1944bc7fb99bdd543fa39c80ae86159f9bc72b36f8c87b283e9f5d6e3fa +size 1100840 diff --git a/Content/Medieval_Weapons/Animations/A_Bow_Idle.uasset b/Content/Medieval_Weapons/Animations/A_Bow_Idle.uasset new file mode 100644 index 0000000..de65356 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A_Bow_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2516f8df8749d6318577996d710665893910fe12dc2b6f221b54fe5428a44a33 +size 9509 diff --git a/Content/Medieval_Weapons/Animations/A_Crossbow_Idle.uasset b/Content/Medieval_Weapons/Animations/A_Crossbow_Idle.uasset new file mode 100644 index 0000000..4bc1849 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A_Crossbow_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2c806512a9e8dcf7fd8696b1d6ed2c36f0f0947070da8ee67b7ae4ac47a428c +size 9491 diff --git a/Content/Medieval_Weapons/Animations/A_MF_Idle_BowMode.uasset b/Content/Medieval_Weapons/Animations/A_MF_Idle_BowMode.uasset new file mode 100644 index 0000000..df2c371 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A_MF_Idle_BowMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d0c093db6fd4cfc92412c554d16ae6dd38726bc91a9a0ed6339840935e8c5b1 +size 1153739 diff --git a/Content/Medieval_Weapons/Animations/A_MF_Idle_BowModeLeft.uasset b/Content/Medieval_Weapons/Animations/A_MF_Idle_BowModeLeft.uasset new file mode 100644 index 0000000..1e68376 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A_MF_Idle_BowModeLeft.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b76c7c2f24e41b8c6988eca907ece90b69c1e1a781d6dd29617edbb19e14751d +size 1153676 diff --git a/Content/Medieval_Weapons/Animations/A_MF_Idle_BowRight.uasset b/Content/Medieval_Weapons/Animations/A_MF_Idle_BowRight.uasset new file mode 100644 index 0000000..b17265e --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A_MF_Idle_BowRight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5969359e4e1f7fe2716d3b3fb69795aedc26a973b01fedc084db40ee4cdbb57 +size 1153864 diff --git a/Content/Medieval_Weapons/Animations/A__AIM_MF_Center.uasset b/Content/Medieval_Weapons/Animations/A__AIM_MF_Center.uasset new file mode 100644 index 0000000..3e1db06 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A__AIM_MF_Center.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4bf22fb164ed7203cae0e779711ccfd1a8189ba77c550410c1b47fe971462a6 +size 1114200 diff --git a/Content/Medieval_Weapons/Animations/A__AIM_MF_Center_NotPulled.uasset b/Content/Medieval_Weapons/Animations/A__AIM_MF_Center_NotPulled.uasset new file mode 100644 index 0000000..10a5c91 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A__AIM_MF_Center_NotPulled.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:827e68409ddb7ebec9383ece05bbf5894c64e3bf6f447304b13519c2deff2c1f +size 1120938 diff --git a/Content/Medieval_Weapons/Animations/A__AIM_MF_Crossbow_Center.uasset b/Content/Medieval_Weapons/Animations/A__AIM_MF_Crossbow_Center.uasset new file mode 100644 index 0000000..0f9f354 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A__AIM_MF_Crossbow_Center.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94e2217a8ce16fb99cd1c8660ce0c68958f3b314d1097e774ac270ddb980ad5c +size 1153970 diff --git a/Content/Medieval_Weapons/Animations/A__AIM_MF_Crossbow_Down.uasset b/Content/Medieval_Weapons/Animations/A__AIM_MF_Crossbow_Down.uasset new file mode 100644 index 0000000..4b09ca3 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A__AIM_MF_Crossbow_Down.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04266627a0b98914c6481ad20a0748ba5e4d2024386e26e9aa79ba784617fb7a +size 1101185 diff --git a/Content/Medieval_Weapons/Animations/A_aim_MF_UP_backup.uasset b/Content/Medieval_Weapons/Animations/A_aim_MF_UP_backup.uasset new file mode 100644 index 0000000..5112568 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/A_aim_MF_UP_backup.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d234e86dc867d24053e31eef303a6e364da1260ae6481ef43f09aa13e67f4e14 +size 1100860 diff --git a/Content/Medieval_Weapons/Animations/Aim_Offset_NeutralBow.uasset b/Content/Medieval_Weapons/Animations/Aim_Offset_NeutralBow.uasset new file mode 100644 index 0000000..479402a --- /dev/null +++ b/Content/Medieval_Weapons/Animations/Aim_Offset_NeutralBow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47262d714d82f4710a29632285923baef448cbe99d3d91fd7c6dad172d97856a +size 8134 diff --git a/Content/Medieval_Weapons/Animations/Aim_Offset_PullingBow.uasset b/Content/Medieval_Weapons/Animations/Aim_Offset_PullingBow.uasset new file mode 100644 index 0000000..b1210e2 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/Aim_Offset_PullingBow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da04229b80119b6621ec17ad6ebc84b28198fb205f0a673c2ef73e94604162bd +size 8082 diff --git a/Content/Medieval_Weapons/Animations/Aim_offset_bow_Shot.uasset b/Content/Medieval_Weapons/Animations/Aim_offset_bow_Shot.uasset new file mode 100644 index 0000000..7743f9e --- /dev/null +++ b/Content/Medieval_Weapons/Animations/Aim_offset_bow_Shot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39f38109f8e3685c94ed3df72524efec64a08de6c3deb7b5741dc3ef2869b999 +size 8122 diff --git a/Content/Medieval_Weapons/Animations/BS1D_BowAim.uasset b/Content/Medieval_Weapons/Animations/BS1D_BowAim.uasset new file mode 100644 index 0000000..a12fff3 --- /dev/null +++ b/Content/Medieval_Weapons/Animations/BS1D_BowAim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b98e64512e95eaf9e44e8c11adc71becbae285b2fb72d396c1b4272ecf2e4b2 +size 8685 diff --git a/Content/Medieval_Weapons/Blueprints/BPI_AnimControl.uasset b/Content/Medieval_Weapons/Blueprints/BPI_AnimControl.uasset new file mode 100644 index 0000000..57050e2 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/BPI_AnimControl.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba4b7042cd63eb2f9b8bf4892ba97230904b89fbdded6ca3783dab7630e6d0b4 +size 10318 diff --git a/Content/Medieval_Weapons/Blueprints/BP_LoadedArrow.uasset b/Content/Medieval_Weapons/Blueprints/BP_LoadedArrow.uasset new file mode 100644 index 0000000..13bb467 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/BP_LoadedArrow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47e9994482e41044806d06312e783aac5c96beb16bd97d03ff5b262a04403051 +size 49042 diff --git a/Content/Medieval_Weapons/Blueprints/BP_Projectile.uasset b/Content/Medieval_Weapons/Blueprints/BP_Projectile.uasset new file mode 100644 index 0000000..0d65905 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/BP_Projectile.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1883dcad9b9f228832ef7c9be2655dffd2ad4c1f12d163f2be77aee5e65cdf77 +size 85765 diff --git a/Content/Medieval_Weapons/Blueprints/Input/IA_CameraControls.uasset b/Content/Medieval_Weapons/Blueprints/Input/IA_CameraControls.uasset new file mode 100644 index 0000000..e70ba9a --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/Input/IA_CameraControls.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:116e2ee4261501ceb9b4f929dc10572fd93a64c3a6a35290fe416237f7104e95 +size 1411 diff --git a/Content/Medieval_Weapons/Blueprints/Input/IA_FPSToggle.uasset b/Content/Medieval_Weapons/Blueprints/Input/IA_FPSToggle.uasset new file mode 100644 index 0000000..5924d0a --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/Input/IA_FPSToggle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e1198c26b6c2de4077ace8359d0ac1d08bcc9e256837315e78bc67f4ffe04f5 +size 1243 diff --git a/Content/Medieval_Weapons/Blueprints/Input/IA_GrabLeft.uasset b/Content/Medieval_Weapons/Blueprints/Input/IA_GrabLeft.uasset new file mode 100644 index 0000000..4b1d3a1 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/Input/IA_GrabLeft.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a730d74b49ad21936f5f04ab8b50a3289b359a3abfc163dba628db0b9b16fdf3 +size 1239 diff --git a/Content/Medieval_Weapons/Blueprints/Input/IA_GrabRight.uasset b/Content/Medieval_Weapons/Blueprints/Input/IA_GrabRight.uasset new file mode 100644 index 0000000..692a4d8 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/Input/IA_GrabRight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51df64f7800c7e9348b4b2de76f80029f5f55227429fe6c0ec1107f50ea5ecd9 +size 1243 diff --git a/Content/Medieval_Weapons/Blueprints/Input/IA_Jump.uasset b/Content/Medieval_Weapons/Blueprints/Input/IA_Jump.uasset new file mode 100644 index 0000000..3183a34 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/Input/IA_Jump.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d85f2ef5ef6808295f2fb79bc67c5e05084541c250460217085bda13a6151648 +size 1223 diff --git a/Content/Medieval_Weapons/Blueprints/Input/IA_LeftMouseDown.uasset b/Content/Medieval_Weapons/Blueprints/Input/IA_LeftMouseDown.uasset new file mode 100644 index 0000000..bddbf75 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/Input/IA_LeftMouseDown.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1356d08a96a0d6c6d345e01d9408c9f8a2f116532c6dc65932312448f385c9f3 +size 1259 diff --git a/Content/Medieval_Weapons/Blueprints/Input/IA_Movement.uasset b/Content/Medieval_Weapons/Blueprints/Input/IA_Movement.uasset new file mode 100644 index 0000000..508a752 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/Input/IA_Movement.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75dc3e0f57e6f2beaebeb484273d5a153bc2d18b289d421c46dc9661fb641f84 +size 1387 diff --git a/Content/Medieval_Weapons/Blueprints/Input/IA_RightMouseDown.uasset b/Content/Medieval_Weapons/Blueprints/Input/IA_RightMouseDown.uasset new file mode 100644 index 0000000..fcbeea7 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/Input/IA_RightMouseDown.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8867ae7919e732bb26516a785688c92b92cbd2dd898d21c8dec38528ca7ca0dc +size 1263 diff --git a/Content/Medieval_Weapons/Blueprints/Input/IA_Thumbstick.uasset b/Content/Medieval_Weapons/Blueprints/Input/IA_Thumbstick.uasset new file mode 100644 index 0000000..1bf0537 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/Input/IA_Thumbstick.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ea9123f29e08cb879b1d13da2c91924135907968896408df8e81a23ee1ed5ee +size 1395 diff --git a/Content/Medieval_Weapons/Blueprints/Input/InputMappings.uasset b/Content/Medieval_Weapons/Blueprints/Input/InputMappings.uasset new file mode 100644 index 0000000..cd16d8b --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/Input/InputMappings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79369bf51261de4e5e5d267c4ee482e28fcf3c50f1d2db6b55ab5299b08df390 +size 9348 diff --git a/Content/Medieval_Weapons/Blueprints/Input/InputMappingsVR.uasset b/Content/Medieval_Weapons/Blueprints/Input/InputMappingsVR.uasset new file mode 100644 index 0000000..4cde505 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/Input/InputMappingsVR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:387441b78afe7da4a7dadf5ae05e3f121da088a7506bf62e4f90b157dda69e24 +size 14165 diff --git a/Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_DemoWeapon.uasset b/Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_DemoWeapon.uasset new file mode 100644 index 0000000..07af0b8 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_DemoWeapon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0453c58375ead07f99ead6d24e9112e0ba453e605de79dbfdb31edaf0d9bd1b6 +size 189638 diff --git a/Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_ResetPlatform.uasset b/Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_ResetPlatform.uasset new file mode 100644 index 0000000..21c926d --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_ResetPlatform.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d8215eebe8f2156f414b7dfdb86b89e9af8531a684bc4454f07d72dfc51d06d +size 65551 diff --git a/Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_ThirdPersonCharacter.uasset b/Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_ThirdPersonCharacter.uasset new file mode 100644 index 0000000..aaa8c49 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/ThirdPerson/BP_ThirdPersonCharacter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e80b5867a1123c7bee9a82c8a5f06e71ee56b0f66921631fff6c2ce3fd4888a4 +size 2074702 diff --git a/Content/Medieval_Weapons/Blueprints/ThirdPerson/E_WeaponType.uasset b/Content/Medieval_Weapons/Blueprints/ThirdPerson/E_WeaponType.uasset new file mode 100644 index 0000000..a3758e9 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/ThirdPerson/E_WeaponType.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96ec91b73522116a3b5cbe2a485c0b3d71833a1673e5e7e0591f6050fa6ca3fc +size 3443 diff --git a/Content/Medieval_Weapons/Blueprints/ThirdPerson/WeaponsGameMode.uasset b/Content/Medieval_Weapons/Blueprints/ThirdPerson/WeaponsGameMode.uasset new file mode 100644 index 0000000..e0c9fcb --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/ThirdPerson/WeaponsGameMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0e714acdd007d6d7c83d7b0953f54a4e2ed7ea0c209452d92db1766ea96160f +size 19721 diff --git a/Content/Medieval_Weapons/Blueprints/VR/GrabComponent.uasset b/Content/Medieval_Weapons/Blueprints/VR/GrabComponent.uasset new file mode 100644 index 0000000..7148605 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/VR/GrabComponent.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14a05caf4529c00726237af39a72ff9d18cf5c94ea1f1fa8393b8457a4b5e83f +size 269990 diff --git a/Content/Medieval_Weapons/Blueprints/VR/GrabType.uasset b/Content/Medieval_Weapons/Blueprints/VR/GrabType.uasset new file mode 100644 index 0000000..d23d568 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/VR/GrabType.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3eeccfce96adcd4035f9baad8fd4b4c10563f2b46688d9737bf64b37fc489f94 +size 2925 diff --git a/Content/Medieval_Weapons/Blueprints/VR/Haptics/GrabHapticEffect.uasset b/Content/Medieval_Weapons/Blueprints/VR/Haptics/GrabHapticEffect.uasset new file mode 100644 index 0000000..0e025bf --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/VR/Haptics/GrabHapticEffect.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e83c44d4187a554d6397e9f6d46aaaa01b624e034f09791e125c6d77b7e2150b +size 2047 diff --git a/Content/Medieval_Weapons/Blueprints/VR/Menu.uasset b/Content/Medieval_Weapons/Blueprints/VR/Menu.uasset new file mode 100644 index 0000000..99f9020 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/VR/Menu.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7914fd629dae76fd77c8d465e178e5ec526eb286592dfdef12c744977a97e6e5 +size 493940 diff --git a/Content/Medieval_Weapons/Blueprints/VR/VRGameMode.uasset b/Content/Medieval_Weapons/Blueprints/VR/VRGameMode.uasset new file mode 100644 index 0000000..ce7623d --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/VR/VRGameMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4999ce0fe77a22153dfd957a6087302b4c135f3f565095a5fceeacd132729df6 +size 19636 diff --git a/Content/Medieval_Weapons/Blueprints/VR/VRInteractionBPI.uasset b/Content/Medieval_Weapons/Blueprints/VR/VRInteractionBPI.uasset new file mode 100644 index 0000000..c26e393 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/VR/VRInteractionBPI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca0806b9080626bba979a94391876a312da301ae42b989a5962338cb383fa03d +size 20134 diff --git a/Content/Medieval_Weapons/Blueprints/VR/VRPawn.uasset b/Content/Medieval_Weapons/Blueprints/VR/VRPawn.uasset new file mode 100644 index 0000000..f72270a --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/VR/VRPawn.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62bd605163af044c6d7311e8f93ece6e0178030c7e57545357df78786431f6d4 +size 865454 diff --git a/Content/Medieval_Weapons/Blueprints/VR/VRTeleportVisualizer.uasset b/Content/Medieval_Weapons/Blueprints/VR/VRTeleportVisualizer.uasset new file mode 100644 index 0000000..419d3d0 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/VR/VRTeleportVisualizer.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5367aa28eaefefcd440224db8339319da1b3caecc0678a848d09ca40f285dd8f +size 76263 diff --git a/Content/Medieval_Weapons/Blueprints/VR/VR_Weapon.uasset b/Content/Medieval_Weapons/Blueprints/VR/VR_Weapon.uasset new file mode 100644 index 0000000..1e6f993 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/VR/VR_Weapon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccd277d62355d5c633d07114cd15a566ee090cc5618c0a56d62bd6a4d3cb1a0e +size 39624 diff --git a/Content/Medieval_Weapons/Blueprints/VR/WidgetMenu.uasset b/Content/Medieval_Weapons/Blueprints/VR/WidgetMenu.uasset new file mode 100644 index 0000000..c5d5151 --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/VR/WidgetMenu.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22ad97082599e33db75c5b10c0243efd9ec697f742b321269083dee8b64888be +size 55193 diff --git a/Content/Medieval_Weapons/Blueprints/WBP_CrossHair.uasset b/Content/Medieval_Weapons/Blueprints/WBP_CrossHair.uasset new file mode 100644 index 0000000..fbbe34d --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/WBP_CrossHair.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13c128055472c87455b5170383dc80ad84fab24ff3e240af7a080bba2db7f2b4 +size 49020 diff --git a/Content/Medieval_Weapons/Blueprints/WBP_Hud.uasset b/Content/Medieval_Weapons/Blueprints/WBP_Hud.uasset new file mode 100644 index 0000000..ae5548a --- /dev/null +++ b/Content/Medieval_Weapons/Blueprints/WBP_Hud.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1111888e3b1f0322de0c2e88e00d03deecf77364497ce919b6b0bd482e415ce4 +size 24501 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/ABP_Manny.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/ABP_Manny.uasset new file mode 100644 index 0000000..9705fa7 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/ABP_Manny.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45a4c423bf4a1526c600c8ddb7e1be36caffefc6914f5236dd110132bd722578 +size 1251316 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/ABP_Quinn.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/ABP_Quinn.uasset new file mode 100644 index 0000000..69fc78a --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/ABP_Quinn.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95268b1a54af3b3f9383de21944ab7f2e9e549ed2dd1e06ea302d6a67991f411 +size 57369 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset new file mode 100644 index 0000000..5d8aa5c --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a333ddbfab4a67d96a1c3777ce4dcf097d24fc2743ebf7194d54e5df325a55b +size 9125 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_2handerIdle.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_2handerIdle.uasset new file mode 100644 index 0000000..8209774 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_2handerIdle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b82df6f0515a9036106a4c1da2c692a7930dfbf1546218e46c4727ef10e62d19 +size 972421 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_ClenchedFists.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_ClenchedFists.uasset new file mode 100644 index 0000000..026838c --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_ClenchedFists.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d8034ee686ed4ba5d5bc11bf6e07244f991d0f9575bb3423d72d9e6cd4fab14 +size 1039706 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset new file mode 100644 index 0000000..bf27dcc --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa1388cb902bf575743a463d507ebf325e0d3f0db232e7fee44ca580b16cc5a2 +size 698275 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Idle.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Idle.uasset new file mode 100644 index 0000000..10fcc5e --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da303e5248a3ff04fc3693f492948ffd426292717f61d65e339e66c6d6aee808 +size 897707 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Jump.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Jump.uasset new file mode 100644 index 0000000..318a590 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Jump.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b3b1b1556a1b37b6a00d9377dbdedf642f47127e40482c7bf1422d67e9edefd +size 291028 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Land.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Land.uasset new file mode 100644 index 0000000..8c77b0b --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Land.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b7e41bf08692a30839bd9f946d385fb541bd49ad961b9e5f026020efa829c8c +size 300401 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset new file mode 100644 index 0000000..4ea6085 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85d4fbc89315128ac5d3560329e10a5ba70849ebf491927103c676aed8a950e1 +size 293303 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset new file mode 100644 index 0000000..2a988cd --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0e4a7ff298f13310f53c22981427d89068d4212d6d55b0f474023e1cb4c638b +size 382849 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset new file mode 100644 index 0000000..ed9fe81 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52b4931b005ae205c363b8a405b3509a029b570983cb13652574885eb4f8765d +size 609304 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset new file mode 100644 index 0000000..0c5dd3d --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb098bdce20afefada08385a9d95739ef5fae32ae8a64f97e1ea3ae64bdc6a0b +size 9157 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset new file mode 100644 index 0000000..3bbefaa --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e600d036674412dedec1d75da0ba9284dd74164b40e4d13afeb3ea14abdaf83 +size 919410 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset new file mode 100644 index 0000000..6906f8e --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3a35c91bfd447f245e444d0ad1be08e324227cd35a5fffd355360748f8de9ee +size 431172 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset new file mode 100644 index 0000000..c724b38 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf7353db406335c2e2fa76144be95bdbaf321b27e108db4c82d692b58d106bc7 +size 450038 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset new file mode 100644 index 0000000..814e139 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9313a351ad4ff12130a19220ef0069cb4a90258a6ccccbc6ba06606ed53b07e7 +size 4856 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset new file mode 100644 index 0000000..890f004 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05ee0cb5d4c509a230975f8c38fe5e13bd1241808d9400852e630084cc68ec80 +size 6328 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset new file mode 100644 index 0000000..b25b0dd --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d220c892247cccbde7ba37b3fcc3edabaadcf9a53ed60c80546f1319f9f8eb7 +size 32249 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset new file mode 100644 index 0000000..687d111 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e34b1965e03d4fae4995e9cddb051c017eb9c30554231af2dde14409b9caee8b +size 56647 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset new file mode 100644 index 0000000..f513e04 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bf1205f0c4f94356eb211f226722247edbbc629ef35726b039d4e445a28ad61 +size 13459 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset new file mode 100644 index 0000000..fa0ab1e --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f596a09b91b1fbbdc3d39b2e66fe254f1a87d568a226011106e4be0312dbb6a2 +size 21964 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset new file mode 100644 index 0000000..39e052d --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7a0720306be701ebce81c433ef5a55ea1d87c32ae263ec9a0433523ed8dea21 +size 25271 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset new file mode 100644 index 0000000..3853d35 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77bf336be8d6d7ede13dfcebd9458d7b5b18278c5f9a074e93681a85e6fce54e +size 20041 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset new file mode 100644 index 0000000..14460cd --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f256c5f311dfeed286fc02859fb186978a6cd178aec3c1221daf7fcb56a7c0a7 +size 25648 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/M_Mannequin.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/M_Mannequin.uasset new file mode 100644 index 0000000..0b028bc --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Materials/M_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:25bd887e2e5e9e642bd731e77a1dce32c6ec28d0c16512adb84cd511850d4e13 +size 83673 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Manny.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Manny.uasset new file mode 100644 index 0000000..6a6c382 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Manny.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff498c354a4bab08602bf03fcfe5a3e50820f1d2b4beca78c46f47ae6edb82e2 +size 34534899 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset new file mode 100644 index 0000000..479c37f --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab4abacd4c984e91c4ce2e158d0bea0066cec896059b63219ab83a92a1939926 +size 18527356 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Quinn.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Quinn.uasset new file mode 100644 index 0000000..6f25ee9 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Quinn.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:410f67f60028bc1d804a1c96bda4cd09b0354e0c17d8dae6ae31adffb1ea6b71 +size 36495828 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset new file mode 100644 index 0000000..46b128a --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44a7c04add7f2f537b11cfb006241b10d2a3ce72d02c20dbe51da4bce9e2caaf +size 19371776 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SK_Mannequin.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SK_Mannequin.uasset new file mode 100644 index 0000000..97c1ae8 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Meshes/SK_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ddf00942161716764bd02068f018e747e0c11863befa79752f1b2c7e1cc7fcc +size 163875 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset new file mode 100644 index 0000000..d821cc9 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c054bf69a2fcb1da6a2ed2a5b11187e183037e5c11bf196ebb38981a4f5ca3a +size 464233 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset new file mode 100644 index 0000000..0e93f20 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9343b58739a1614dd05d9a37a6e91566305a5f72a8be76fdc8143e4849474b63 +size 464031 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset new file mode 100644 index 0000000..26c5871 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d2e6c61dccd885c55e9352e5dc8354cc3a2f45332f0893767c8fd878a00f5e5 +size 583793 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset new file mode 100644 index 0000000..3e60ef6 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1896dfb6f57f4979f6f620bac73b2e9771e625fba07a19c17795af85c5990a7c +size 12667805 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset new file mode 100644 index 0000000..0c16b8b --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b52f5ee7c8fd5a10543b0e58979f8bb5f135e6554a093b71ebf3f2ef2983a82 +size 2425022 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/PA_Mannequin.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/PA_Mannequin.uasset new file mode 100644 index 0000000..21cbe54 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/PA_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bec13f55c96a95e0e02341833cc434ce24369390796d71e39d977fb4ff1aa078 +size 64285 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset new file mode 100644 index 0000000..df095db --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab2d6693268b62c41f9d2039b3810e62727d6d93fcbb0b8a5fe7f07692fb2ed6 +size 141518 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset new file mode 100644 index 0000000..40468a8 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e4884b37bde0440f9f0eacc57bbbbba2d55eee613cdd3eb7338ceedf931bd9d +size 207518 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset new file mode 100644 index 0000000..d41ad86 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4d4b83b184aa07dfa3b9da32fe3be710eea194d577119948f1704c4370635ab +size 141528 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset new file mode 100644 index 0000000..b2a1ba5 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14bf69e60b8972cc64d87b0c8e51fdd2f35b0d7154f3bb72e4935c7fdb97c7dd +size 207518 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset new file mode 100644 index 0000000..65df913 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:516f44fb83bf3b55c0a519fe74dfaccb0453add5a02f65a817cad1047ef1c379 +size 141550 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset new file mode 100644 index 0000000..e4bf22d --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd3939d667597e62a7d89b46bf5a62494bf437a60bd91b0886032c164d80bb43 +size 205820 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset new file mode 100644 index 0000000..3838844 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb65d6d64908fb8dc12d7484d922e246f7b7fdfa0d6da0a89df570e0329c5f39 +size 141552 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset new file mode 100644 index 0000000..0c67032 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96102ce4eb0037e685f2d54d7f6b5122a2d3c6fa59ba4b9759021e6aa9d7853d +size 206422 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset new file mode 100644 index 0000000..976ea83 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:624c20022161e7b0ecddae3c6d96dbc416c6096088470d81d72b71ad0ab42d95 +size 129526 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset new file mode 100644 index 0000000..a1566b9 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a9d2e10f263f99e36b6e753a16392f4665c7b05cf356ad0bde9827e1063b8a2 +size 132264 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset new file mode 100644 index 0000000..b05e1d8 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ffa50e20abb9829b703c2a50a6a54fb541b396ad7c654ade213987234c9df46 +size 129528 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset new file mode 100644 index 0000000..41f1598 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5aae3f9f27a67c3d356f7b392cf13403ea45b6e15f2d739d74061705b055006 +size 132264 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset new file mode 100644 index 0000000..784f2f4 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2846d5408af13ea73abf33a679f9940d57816df04c3f9051d46778574a252bef +size 135526 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset new file mode 100644 index 0000000..72f85d5 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:247bad42093e7051debb59e80d653603360d847d9749a178873210b28604a03f +size 169294 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset new file mode 100644 index 0000000..272ad0e --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b3c3d308319b9f2c2dab85a4909aeb527e5abff1e8516a8a7457ca011d635a1 +size 135528 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset new file mode 100644 index 0000000..592ff64 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1946da0c1ddd803a6f98313a42f7077e3c7a95cb599f5cd5e003e0440c22e37d +size 169294 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset new file mode 100644 index 0000000..e3fc53d --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f6ab8798a4710520fc7f6f682e016ed526de3da9895f6ef755f099b056fcee1 +size 204070 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset new file mode 100644 index 0000000..ebaf984 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8903de61dfe7670612d13dfce7a92f173f63766b1611e38de6f6a6d3ea826ac +size 361732 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset new file mode 100644 index 0000000..2e3d554 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:629402eb29ed8a8a2e8ebc5a6fd32cc1797c81133895e7311197d86fdac3e94a +size 165552 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset new file mode 100644 index 0000000..fcdd129 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:583ffaa01ff1cf81903d4a6b6d1751e4edd8a41a05d8b60078dec7ea7f471a2e +size 361732 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset new file mode 100644 index 0000000..b640abf --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bfdd4812ecb4c56a374cf4acff05f117b7ca06aecbb57fcbb4066fdd68f0943 +size 195534 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset new file mode 100644 index 0000000..17543d2 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:622cef8957be379a7c858da5076fa8b008456d0b5afe16c91b27b653befc5e1e +size 558060 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset new file mode 100644 index 0000000..9befecd --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c12290edf9ffa07808d008fd1d0a7c86fbd5f93c156a56516af2e3f9cf97ad9 +size 195536 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset new file mode 100644 index 0000000..aac16a1 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4239cc7b31af0c7e3ef992fec7e32d293f0685df3ba7c5aec6a447d19a0c239d +size 558060 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset new file mode 100644 index 0000000..2ae44f1 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9418d6337b40acfa96486cb56cd6598e38bd0d04cd2e07dcb63080431a73d9f9 +size 207552 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset new file mode 100644 index 0000000..c6fa1b4 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24e7cb7ae9c250a99def30e272d6ebb76249186183fca0d62b807cfdeda16156 +size 641721 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset new file mode 100644 index 0000000..0f308ed --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea4221aed5d43fcf640c0a8af1f247170cd1fd7d13b7942494220969eecdf44a +size 207554 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset new file mode 100644 index 0000000..81db2e2 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d43d23248aa682657ff67034ce9822d658e4f2493ef9207808fdd541f8135c77 +size 630283 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset new file mode 100644 index 0000000..608b46b --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:495c1e0d9e696444983ea4cea7d374b3d355a6fbba0caefc175d96d7d1af0f58 +size 190096 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset new file mode 100644 index 0000000..ca3d44d --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e43649f651ddd39bbbf53b4cb6f9c84bdc22ee0b6c7827254c58dcc6cbc002a9 +size 245342 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset new file mode 100644 index 0000000..800aa24 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb1ec4fcee9cabb94b5312c67f4b718867f74b637da79a0a9cafab3a8cb01ae7 +size 228231 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset new file mode 100644 index 0000000..e382428 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61be6cc1589a2d8058e314d194fd5702349dee7077745147d46a8becd85c1e0b +size 245423 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset new file mode 100644 index 0000000..012b875 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a096f7ee59f8d76f3c08579f80ee6d371c67e7301ba878341a13ef7c50a4a61 +size 222195 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset new file mode 100644 index 0000000..99fdbc4 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16da6be9eb05da83baeb6e44eec58415aaf63f4a5d69e3a68b66b7812cacc1d0 +size 206090 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset new file mode 100644 index 0000000..c1d86c1 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7985591ceadbc0d335d6c41c98d69d46b64f01634158faf678d7e505d0286fbb +size 183800 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset new file mode 100644 index 0000000..6133235 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44712e3be8261599c63423f72474056abe71770ac2b388af0d1600e0a8f6f0d4 +size 206134 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset new file mode 100644 index 0000000..463687b --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32b97843ad0fe899df21f27ffaf7ac4163622e81b700fe74c2bb8cb7365a588d +size 171774 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset new file mode 100644 index 0000000..63eead2 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:033658e5fdd38f00e7a3ed41d4f7bb880db3aae88c9da882bd87f91fa15dbc23 +size 132277 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset new file mode 100644 index 0000000..41cdf12 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34ef51fb7d5ffcf9a54680e79df3f391a9fe21f140f00a3dc67b638fe116bd21 +size 171776 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset new file mode 100644 index 0000000..6a752c8 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68a8c25a243d3fc60fad109b6633b0c21634d21f0cb477d1aa715de2af09e4ce +size 132277 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset new file mode 100644 index 0000000..d0e025e --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:643145f830104951064376de6296d88b7a8f5bd68d5f83b55df963d906b7f946 +size 177774 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset new file mode 100644 index 0000000..c888dfe --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81068004eeba01f8c36a5559218e8458626af6fb47467aba100a8154f0000ecb +size 169307 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset new file mode 100644 index 0000000..b3761b2 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:198c5bd26e55404e58519378c2ea1cbced91ef242f3528a81baf027b9477f38e +size 158674 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset new file mode 100644 index 0000000..e9b4d23 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d6b50be0952c548ba9549d27ad78bc391fc291012a516d243d2a2adaae35562 +size 169307 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset new file mode 100644 index 0000000..bb0d526 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd1406cb0b430392b584f863c777a9f89c679395dce66c80332475185b99ae0c +size 194697 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset new file mode 100644 index 0000000..3eea7be --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8f749ce469551859f705eec253893c522df1295ac8e56e1eea2c43f164ff12e +size 399683 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset new file mode 100644 index 0000000..d4492a1 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97064bf1f907a1481f0056d781bf18a0cee585dfc0f9f0b552a496acf7e20f9f +size 194699 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset new file mode 100644 index 0000000..3fa4d71 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be35c56acbb3f11fe47221a4d84bec28ca5c2732060c9b09b5e8c8d092ab0fe8 +size 399683 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset new file mode 100644 index 0000000..77b9758 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57e948c3bf82e9d08135266df35d7b5ab828797dd46d0289a971a7c07c6d1d13 +size 218680 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset new file mode 100644 index 0000000..c98829c --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3406951822499545d91b2db56c3e53f0708811b3bb155e31d8168830730db99d +size 557772 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset new file mode 100644 index 0000000..d310c80 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a54dea8a9371ca73a864b3295efd9eb94a85704a26190f242ba9495be16ba372 +size 218682 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset new file mode 100644 index 0000000..31402b6 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62ad6765679f874c5058f7f039ddb44764a6b91386bcb2644b6c6932852b77c0 +size 557772 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset new file mode 100644 index 0000000..592df0c --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02c6478072d5abbfd94377061efbdeb6f133a6645bedd9a992380d93cd1d0ddd +size 206698 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset new file mode 100644 index 0000000..41f0981 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47ab411d4740fac5191e3965ff562803bd505bda157ccc2d10f4feb8ee77ffde +size 485594 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset new file mode 100644 index 0000000..b3bc34c --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d4dada9a13f529abb69405418f6c80778e0bd3dc5ab38b647645e8cabffc1e6 +size 206700 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset new file mode 100644 index 0000000..db1ef51 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95dea40ae67a1cb5e6c343031782322aa0eba70298f39042fb6d45f5471361d1 +size 488604 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset new file mode 100644 index 0000000..2219025 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:801f1c03a48ad267b0fe0f3ad4fcaf8bd10d723280da617285170ad63cd145fb +size 3612627 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset new file mode 100644 index 0000000..352982f --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:368058f6751f079a629355a9d30071cbb5c597a881fb75893033d73d3d7abf51 +size 18514190 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..608f31f --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcce52bad0c0dfba9d18795887b1b4d4f909804e84089fc611536fce20bd0765 +size 10271994 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset new file mode 100644 index 0000000..bfacf9f --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9c77aafe381ccf2810fcbbd54c9c0ade8521af6110f59db93b11b0b9d65b36a +size 5740398 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset new file mode 100644 index 0000000..1649fa8 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73f4a465a1d540563c54668fa74c1cef32db3117455f6ce118425ae5e3bf4c82 +size 11038206 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset new file mode 100644 index 0000000..ec8df2b --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2071aab01db2e9f04ac84a6b00ad1a36b8b9a17d904af1bf9c487ea6803880f9 +size 7198273 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset new file mode 100644 index 0000000..5b0691a --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0343679e7e1618f89d5cab54489d3058bf6023376a85e96eab3bc92e34e32692 +size 1357792 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset new file mode 100644 index 0000000..cb8f1ca --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c7dc7ad956b2dc64fbb2180e0593bdb193cf8d8400733c8526c7f61fb94ebed +size 8336155 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset new file mode 100644 index 0000000..970ac00 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fef1bf947360bddaa2c2b401f181c2cfaf17c4b1fa6153ce7c27f4b7f36fae68 +size 21135760 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..94a79c8 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c258653b7c16ed78ad0eee57546c12cee43bce5f26f7d8cd05d9b24ac42abcd2 +size 13137449 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset new file mode 100644 index 0000000..02564d7 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d26f03fca120935006474cae7f3609a2b37695ad4d5a821d2c3104acaed972e0 +size 9028730 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset new file mode 100644 index 0000000..1711e59 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3f2362fe979212aaabce090ee1e8194667fddfbab7c446933de3c2ff50cdaee +size 13673323 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset new file mode 100644 index 0000000..58f7925 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29ccc2f49685ac394f499db2e4b765b60804741d8419d64cbdfc0175b50c7909 +size 7269359 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset new file mode 100644 index 0000000..4954837 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7604a52b3695a76333cf4db5b470206bec1699dfeefadf103f4a3238bcde15a5 +size 2151499 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset new file mode 100644 index 0000000..3c4954c --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b42f6a25d42ba07edcc69dccd6f05a3d961a2e9e9a9022477eac582ee83f798b +size 16106209 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset new file mode 100644 index 0000000..4eac418 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:181b5072b2f3b4bf5fde1ec2124e803e727772b20e31002f0b87ff50fbe9a999 +size 4708618 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset new file mode 100644 index 0000000..a539b0c --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15be8cf37c073bbfb0eb712ec9fcfcf3df39afcfd74ebe776c161c303843c581 +size 11653773 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset new file mode 100644 index 0000000..5048057 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b5acf8ff8c9979de9540fdd842a4e09c56448173c8ded444b2306c1ecc69def +size 5217769 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset new file mode 100644 index 0000000..43b8266 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:116d18c793658ab53cbc095133a95951ee6ae2bf5b152d4446a162b7376b3f0b +size 1103616 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset new file mode 100644 index 0000000..d961b43 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40b2e53ddc0bec43b4cedd75ef95ac43bc3485494ff6960c3076335695ad4bcd +size 5831724 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..ebef7b6 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bb616e13f88406884fcd12502b42c9fb690b95b370ab7967552526ae8880f71 +size 12396404 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset new file mode 100644 index 0000000..a188b96 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5f673afdd4c5f8f258be1e5fa88844d5c65c3eacb256c286a7d0b6f67e20010 +size 19703202 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset new file mode 100644 index 0000000..f4175f4 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76baf139c48230d74e951015284f2ad403adc0bbcf099de223b4d2bb1a71253b +size 6727874 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset new file mode 100644 index 0000000..792767b --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc8d1b1b6bd03744105e398d1edb77d41bd131da3485e4ede87e3044e6d44a92 +size 13165468 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset new file mode 100644 index 0000000..5b6c42d --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b9170f116d6f375c61ae39a1fbc60e8671c9b71ed8b465ed5bff138871f50e5 +size 5217769 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset new file mode 100644 index 0000000..c6a6c2c --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:856c7e1daab21b6074a9b1ecd54adb8135746c2a50bd2a6890e6c96d2695e4ae +size 1757042 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset new file mode 100644 index 0000000..a9ced7e --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dacfc52db834814e6aabffe23f2470d093513a8944c4552d4f1de65e59dabba +size 6896659 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..8af4d6f --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48a4169ac24f7bdd463d61b49399284f2c309aff8b68d069547b90f7525d28cf +size 13421958 diff --git a/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset new file mode 100644 index 0000000..c25d30b --- /dev/null +++ b/Content/Medieval_Weapons/Demo/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1556597d5374c5b981224bc1614823dae945f45500136a9ad1d0efc9741d3b8 +size 69982 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Blueprints/Blueprint_CeilingLight.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Blueprints/Blueprint_CeilingLight.uasset new file mode 100644 index 0000000..5f5f4d6 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Blueprints/Blueprint_CeilingLight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0122cd92cb43611637d164dc0e13008ea0c4e0483f0aef3817a059b892ff7abf +size 44543 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Blueprints/Blueprint_WallSconce.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Blueprints/Blueprint_WallSconce.uasset new file mode 100644 index 0000000..1fe9e49 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Blueprints/Blueprint_WallSconce.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b13afef389529362c24a533931860c39c072c28b68d60bc5b269db1f2e24dc2 +size 50367 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_AssetPlatform.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_AssetPlatform.uasset new file mode 100644 index 0000000..ae9979e --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_AssetPlatform.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdf2743cdfcae28ec2a52246d1013208ec15b51e5866fe7b61e4ba01bd016ff4 +size 9179 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Basic_Wall.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Basic_Wall.uasset new file mode 100644 index 0000000..4fba89c --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Basic_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:187e58bc03569c3e3de437e7a0d3c40f6c0d3c7e2959370e587770e4ff8f5ba5 +size 83917 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Brick_Clay_Old.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Brick_Clay_Old.uasset new file mode 100644 index 0000000..1b8629f --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Brick_Clay_Old.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c457059c15b0fe18bf221001c6d61ea54439f9d32bb8f0cf213b0887b55e545a +size 176899 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Ceramic_Tile_Checker.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Ceramic_Tile_Checker.uasset new file mode 100644 index 0000000..123d1d8 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Ceramic_Tile_Checker.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9703948334c56db7780d025d55dbe1288d643e9c53acaf415d6fd110743eb155 +size 139286 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Chair.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Chair.uasset new file mode 100644 index 0000000..f3955c7 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Chair.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56870ac913f5c634ad943dba5d7db74086e395ec656cad8b839fb5361771411c +size 91330 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Door.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Door.uasset new file mode 100644 index 0000000..53fe99e --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Door.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ea5432cb954714785376844724e22912a53f99ec7eb8a658ca4681cdd2a00aa +size 88703 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Frame.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Frame.uasset new file mode 100644 index 0000000..63529e1 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Frame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0c83070b7a8c1b236395259020724515a8db970f8ebbe470f96f5f1224fd7de +size 114210 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Lamp.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Lamp.uasset new file mode 100644 index 0000000..63bb574 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Lamp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8488760e117f21a046d79e6fdd41a9970cc899dc4e04d165292a056a8be77a5b +size 125568 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Shelf.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Shelf.uasset new file mode 100644 index 0000000..dc881cd --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_Shelf.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:162ac81bad457e5aa2a4aed3a28ab199e958e9a3aa7addbcb1344cee9582df74 +size 79388 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_TableRound.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_TableRound.uasset new file mode 100644 index 0000000..3989bc7 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Materials/M_TableRound.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ef6427224ad306b1c77c48cc876c5722d65b362ed32f11c08ce8a7b8137978a +size 124659 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Floor_400x400.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Floor_400x400.uasset new file mode 100644 index 0000000..2bcd953 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Floor_400x400.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f483a05c5f435f413533b6f8fad6ce1d027c7aad0b7cbaefc574bb39c68e4d4e +size 14739 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_AssetPlatform.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_AssetPlatform.uasset new file mode 100644 index 0000000..47b1231 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_AssetPlatform.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d24a92df7b5b111c8aeffd2ba9476e92208d0778b71d62bff7e66aaf277ef16e +size 160330 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_CornerFrame.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_CornerFrame.uasset new file mode 100644 index 0000000..8bcf01b --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_CornerFrame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6a92ebac1033f19479101fbdd9df6ecec7cc184b7c744b92c2d9acc7c703638 +size 38172 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Couch.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Couch.uasset new file mode 100644 index 0000000..070b138 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Couch.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a837de0055b0b6c0a9ce02ba8aa07f915035ab06ef50a6ca3ccb62e46ed75c9 +size 108366 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_DoorFrame.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_DoorFrame.uasset new file mode 100644 index 0000000..17ec831 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_DoorFrame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aebdd003e175669e3394f2e2ad794dd1e59a275a90ed82e19298d831e8003201 +size 22912 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Lamp_Ceiling.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Lamp_Ceiling.uasset new file mode 100644 index 0000000..8b48fea --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Lamp_Ceiling.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e38dd047f30b9ad4004abc0bf2666ab4742faf5a2b65556cdad2be927dc515a +size 112727 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Lamp_Wall.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Lamp_Wall.uasset new file mode 100644 index 0000000..7d6162f --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_Lamp_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9eb84c2ee62cfeb64df4e4c91217843e4f98fb221775cacc3a48ddd8da7e41a4 +size 60071 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_PillarFrame.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_PillarFrame.uasset new file mode 100644 index 0000000..eed0cfc --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_PillarFrame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f4b2c4d7035230316cd69b50d03485635d2519c849a86dabac31e3920397ea1 +size 43437 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_PillarFrame300.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_PillarFrame300.uasset new file mode 100644 index 0000000..2added3 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_PillarFrame300.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4cd919e2a81a4a81ab10eb8240d16b9b7a8485bf44c30339f2fa224e2d095423 +size 44265 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_WindowFrame.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_WindowFrame.uasset new file mode 100644 index 0000000..6044718 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/SM_WindowFrame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75db67de09b1e231521617b92d45a5ed7bf41576c4a4c2d8a63a66f9dd5f996c +size 25184 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Shape_QuadPyramid.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Shape_QuadPyramid.uasset new file mode 100644 index 0000000..37c32c8 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Shape_QuadPyramid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e4eee5987b7551a1fb12d19af6121ab59d7006c258064431fc41c1fbd231d1e +size 16349 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_400x200.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_400x200.uasset new file mode 100644 index 0000000..ea9f3c7 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_400x200.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bd5bb08bf5d575805d9b073db25a3f9a3cd13596e0e02b2afbbec9e8a2a856b +size 14929 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_400x400.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_400x400.uasset new file mode 100644 index 0000000..6f3eed6 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_400x400.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ec5070d92696d19acf2cd11b29630d5f274932ccb62188769c451d9d3e3eb2f +size 14684 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_Door_400x300.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_Door_400x300.uasset new file mode 100644 index 0000000..96d194e --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_Door_400x300.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f54d9465db69a59c00e9050973fa3ec481fc129967284e7972b57e37a81bcc5a +size 16594 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_Window_400x300.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_Window_400x300.uasset new file mode 100644 index 0000000..0817eb9 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Meshes/Wall_Window_400x300.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af2dd9f5a2197436d529a2f7b36b0404aa1d8a5734cc19f60a428142f29b6460 +size 17457 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Brick_Clay_Old_D.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Brick_Clay_Old_D.uasset new file mode 100644 index 0000000..d7cd4d9 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Brick_Clay_Old_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eea0c20e3683682d453b2b998a4a044394550aa48d0f3269f9987441bd3ce784 +size 11372813 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Brick_Clay_Old_N.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Brick_Clay_Old_N.uasset new file mode 100644 index 0000000..54f4392 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Brick_Clay_Old_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a01f6e59a4dd3af7319ba61ea151fd255395dc98a8ca12c3b0e7006f08bac6a2 +size 7761851 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Ceramic_Tile_M.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Ceramic_Tile_M.uasset new file mode 100644 index 0000000..2cff0a0 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Ceramic_Tile_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2095edbba0c03c7a12e5cf22f715612bab63acd4a1eab7b57108a3235f6ba73 +size 275493 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Ceramic_Tile_N.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Ceramic_Tile_N.uasset new file mode 100644 index 0000000..b723913 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Ceramic_Tile_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1d90f631a85fbada82582622bf0baab1f7f99b3b1ddb51145c6e096abdc75c5 +size 233799 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Chair_M.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Chair_M.uasset new file mode 100644 index 0000000..bea85d3 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Chair_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d661a0ad8fff208d92f836a0d7b2e47bb1976e5f90bb4740dd7a7f95cdbb10ec +size 539605 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Chair_N.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Chair_N.uasset new file mode 100644 index 0000000..ac02dd3 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Chair_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79181f02cc0946e3ac7ce2a9f6ae24b6de1309a62528a6c0ab6a3537825a3275 +size 1922512 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Door_M.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Door_M.uasset new file mode 100644 index 0000000..7b9cb10 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Door_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc1f7ddcca56880372d19f16f56bb7b380fb6277e0a5832515593948c3e4a5fa +size 555630 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Door_N.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Door_N.uasset new file mode 100644 index 0000000..3cb10ec --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Door_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f535d3c53f5cd36b926b86c8fcd5c322ccf5c43a34827e25d8a100a7e7df5c51 +size 1074452 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Frame_M.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Frame_M.uasset new file mode 100644 index 0000000..bf2a1b6 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Frame_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72c18cb246a4ae68e3648716356d561013d529c6e600997c36bd358416c6993a +size 534422 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Frame_N.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Frame_N.uasset new file mode 100644 index 0000000..6963cfe --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Frame_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0eae15c1b9220adc3f306bb1d3a86e89bec8d287dfcd4893879eb0b6c2e93f62 +size 1246218 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Lamp_M.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Lamp_M.uasset new file mode 100644 index 0000000..abe7173 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Lamp_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bff7a428f85dc094ccc39bba1d9e97a65dece9b4c08e25160c70b3b9610f350d +size 753146 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Lamp_N.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Lamp_N.uasset new file mode 100644 index 0000000..958d559 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Lamp_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f16af8313b0ef78fa049917bb3e76772c9d82f29a233d901db878146adaf425c +size 2059586 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_MacroVariation.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_MacroVariation.uasset new file mode 100644 index 0000000..594427a --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_MacroVariation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee95c9da97d25ecc44ad01c5b9bd206fcbcf4d261adedf618ae3eb6f75311a64 +size 10881026 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Perlin_Noise_M.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Perlin_Noise_M.uasset new file mode 100644 index 0000000..45c59c3 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Perlin_Noise_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b8bafdcff0e3f8c9de7606fc5540ab990cc0a445c40efc0c4b04cd7ca096320 +size 7834341 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Rock_Marble_Polished_D.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Rock_Marble_Polished_D.uasset new file mode 100644 index 0000000..c10705f --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Rock_Marble_Polished_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4240e84ab51527717af0f6a8f60c94d5b9c3472af305998a52dacfa12ba035a +size 5288095 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Shelf_M.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Shelf_M.uasset new file mode 100644 index 0000000..c3860f4 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Shelf_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9faa7ddf6be733ce3d3f92c45866412fa419d31b7d2108f1b9fdbb592efef419 +size 645549 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Shelf_N.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Shelf_N.uasset new file mode 100644 index 0000000..2e81016 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_Shelf_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:180cae1fcc87bfe8a019f6358a1a3aa588a50efe02035c44b2c62765c214270b +size 1634753 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_TableRound_M.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_TableRound_M.uasset new file mode 100644 index 0000000..3e2ac00 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_TableRound_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31cc50638791ed400c12eef0471d6aaebbe69ccd1ae1e8b9795ebd4b76242dda +size 853641 diff --git a/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_TableRound_N.uasset b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_TableRound_N.uasset new file mode 100644 index 0000000..e620421 --- /dev/null +++ b/Content/Medieval_Weapons/Demo/StarterContent/Textures/T_TableRound_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98c3240f520cc5847a1913f77ea242121702d6d166d9f034b32de297224c7dbf +size 1539645 diff --git a/Content/Medieval_Weapons/Levels/Level_Overview.umap b/Content/Medieval_Weapons/Levels/Level_Overview.umap new file mode 100644 index 0000000..d968430 --- /dev/null +++ b/Content/Medieval_Weapons/Levels/Level_Overview.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2703ac6070ceab41d5c84aa85a80d8fe4c06bdc0e2c923a4eda91d09b5e3e1b +size 27401 diff --git a/Content/Medieval_Weapons/Levels/Level_WeaponTestVR.umap b/Content/Medieval_Weapons/Levels/Level_WeaponTestVR.umap new file mode 100644 index 0000000..c3e026e --- /dev/null +++ b/Content/Medieval_Weapons/Levels/Level_WeaponTestVR.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f170c587081e6ac8065e967d52e606236695ffe6e50bda351572ba69d4fa9e72 +size 341089 diff --git a/Content/Medieval_Weapons/Levels/Level_WeaponsTest.umap b/Content/Medieval_Weapons/Levels/Level_WeaponsTest.umap new file mode 100644 index 0000000..3b913d0 --- /dev/null +++ b/Content/Medieval_Weapons/Levels/Level_WeaponsTest.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:094233f7d490970a39602e1a4549c66825fff4d1b436baf905601fe974c3f1cc +size 27328 diff --git a/Content/Medieval_Weapons/Levels/Medieval_Weapons_HLOD0_Instancing.uasset b/Content/Medieval_Weapons/Levels/Medieval_Weapons_HLOD0_Instancing.uasset new file mode 100644 index 0000000..f5badd5 --- /dev/null +++ b/Content/Medieval_Weapons/Levels/Medieval_Weapons_HLOD0_Instancing.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:596e767a9b3bede6e4d04d4731f4b08f10cd71f1da6d068dc6430451c3793df2 +size 1565 diff --git a/Content/Medieval_Weapons/Materials/Functions/MF_OccludedPixels.uasset b/Content/Medieval_Weapons/Materials/Functions/MF_OccludedPixels.uasset new file mode 100644 index 0000000..175ea7e --- /dev/null +++ b/Content/Medieval_Weapons/Materials/Functions/MF_OccludedPixels.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1de29689cda2d65af4cbe5b84542ac65ca21fc20d27b97638a6c9840814b37b6 +size 115732 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Arrow_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Arrow_01.uasset new file mode 100644 index 0000000..d050064 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Arrow_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4da331b70177db782c97bd8f2f777eb8cdf7f402a8d9654845140ee2ecd981af +size 11051 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Arrow_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Arrow_02.uasset new file mode 100644 index 0000000..f5ac38b --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Arrow_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1671575bc9fdfce5fb7ba8cbe331c70e12a6a6f79def6c36152f354bd954b033 +size 11320 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Axe_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Axe_01.uasset new file mode 100644 index 0000000..0c7d1d2 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Axe_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:582532f41cbd639ce67f8dd857cbaf0b49c95ec34def6d6b5edcb4a5bcea3f9d +size 12911 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Axe_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Axe_02.uasset new file mode 100644 index 0000000..0c34810 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Axe_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:705f72a4c05e5d573f2eb7ce348c126bd14822ee8afc39d1aaa4ba268fe01100 +size 12668 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Bow_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Bow_01.uasset new file mode 100644 index 0000000..3505390 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Bow_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dac535134f3fa00c9f21060a25a7f77692827289b47d030e9abc9e19d1be429 +size 16745 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Bow_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Bow_02.uasset new file mode 100644 index 0000000..347532b --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Bow_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dafd3ebf2acdd822e6200d5e5744e8a962b492ce8177d98ec5bfeb95a76d1653 +size 13036 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Crossbow_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Crossbow_01.uasset new file mode 100644 index 0000000..575842f --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Crossbow_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:746b1720c820107f4bbfb638e294fe48787f5e8cd3e3229c3f3a19032648aee1 +size 12912 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Crossbow_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Crossbow_02.uasset new file mode 100644 index 0000000..9698bdf --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Crossbow_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84d15d5ffe432ba6fe07e5a606264694b4e659716ff2f3adc01de08bff7c377f +size 12830 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Dagger_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Dagger_01.uasset new file mode 100644 index 0000000..93cd4cd --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Dagger_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05cd0373b98116699790923cf00af71936c917200dcbe869c006ac7c3c3781bd +size 12241 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Dagger_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Dagger_02.uasset new file mode 100644 index 0000000..07e8303 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Dagger_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af1c44c9c4e4f95e5867731b2e8f22ef7b110b14c46d0a0659c1552251fb996f +size 13105 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Mace_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Mace_01.uasset new file mode 100644 index 0000000..53de268 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Mace_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40cdb9e1962b3878af9bb9aca56146516335dfeee5192a40e51457844f97c425 +size 13623 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Mace_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Mace_02.uasset new file mode 100644 index 0000000..ffaeb1b --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Mace_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72843d6b2eee64cb1e24e19f6104791486181d3df433688b957d47ba5e2f9595 +size 13725 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_RibbonTrail.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_RibbonTrail.uasset new file mode 100644 index 0000000..dd7e3ae --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_RibbonTrail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bac2e6d62e0946a146476e3ebf867830e2865971d49f589fd2488f6bf214c0c5 +size 90316 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Scythe_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Scythe_01.uasset new file mode 100644 index 0000000..efee3f1 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Scythe_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:099331e2b02c52de9aae06d3418f67bda67433a3f10d8d3202f58703e3fcd24e +size 14172 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Scythe_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Scythe_02.uasset new file mode 100644 index 0000000..4caf24e --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Scythe_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01f13beb156c38d7c10c3d6c3b5a29342465b64d0b757b55bdc57022855de979 +size 14141 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Shield_1_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_1_01.uasset new file mode 100644 index 0000000..9de1d08 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_1_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1496a08a5267ca5132752b642166a6a5f5fdd69d53a954afd8affdea25b467d +size 12169 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Shield_1_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_1_02.uasset new file mode 100644 index 0000000..a289a08 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_1_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d22eb7c9abab2c0e49bae33059cc0f5c955ea1782fa6c68a0fe1d5e5e6c8722 +size 11930 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Shield_2_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_2_01.uasset new file mode 100644 index 0000000..aa03728 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_2_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:223992600e41fbea2b279b07bfa0d21768f7b5ca77d33fb07195734505bfa1f1 +size 12443 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Shield_2_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_2_02.uasset new file mode 100644 index 0000000..a48eb24 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_2_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1dd8f9e58871bb79a25754e7589d9e5ecb76b8cf0661984f653d4b74085962a7 +size 12698 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Shield_3_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_3_01.uasset new file mode 100644 index 0000000..0a9f531 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_3_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfaf5c3465d084c614de8a143942889112e3a5f44770c1db74039570f4a63bf3 +size 15791 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Shield_3_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_3_02.uasset new file mode 100644 index 0000000..4fe9fdf --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Shield_3_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0748ee8a2ef05461686626c5c7ba4b89b4abd4f8910ad08ba1804341ddd8e239 +size 16408 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Spear_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Spear_01.uasset new file mode 100644 index 0000000..4adad95 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Spear_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4154d0b499459d2f44f0ec3a7a722efeda93dac5eb878f2c23367c9c13735360 +size 13729 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Spear_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Spear_02.uasset new file mode 100644 index 0000000..0fc5a80 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Spear_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b517d4d612d015b079d66c3396daad3b4977d7abb1d5e8557ecffb245fd4b61e +size 13159 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Staff_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Staff_01.uasset new file mode 100644 index 0000000..e95b550 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Staff_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f332c328df9d98fad26ac0b053d068f043e50ec42fd6566d6e099ee12bab287 +size 15223 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Staff_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Staff_02.uasset new file mode 100644 index 0000000..5e0143a --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Staff_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55f2f4470a49b2281dfd92695563e577a4baa4d65ffdc89aca0ecb219f842779 +size 13217 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Sword_1_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_1_01.uasset new file mode 100644 index 0000000..6989325 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_1_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e3c54f47f1214893f593e7be8dbed42b351d9761e85958f7f23de995dfe8d07 +size 12152 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Sword_1_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_1_02.uasset new file mode 100644 index 0000000..2ea7c19 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_1_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc968aeecae17714a8acb786af42b4d22b16ef8d1799321665fb8fe779cbfc84 +size 12116 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Sword_2_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_2_01.uasset new file mode 100644 index 0000000..d266ba3 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_2_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b15ef9e301e783da5ab281db64be6917e358c9748e8fbb6a2e2cebe1308cf1c +size 12824 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Sword_2_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_2_02.uasset new file mode 100644 index 0000000..9f7fddc --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_2_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8965ca9374419d17b33e4c52349744c684d71b9f0758a1cdb9fe9ae9b9e32c76 +size 12834 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Sword_3_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_3_01.uasset new file mode 100644 index 0000000..0382b97 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_3_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73691082d7c47981829509e4fb4a915a89685e8a1192d34c1e3e599fa486df34 +size 17586 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Sword_3_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_3_02.uasset new file mode 100644 index 0000000..4070031 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Sword_3_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5865f1f16ffa52a010697386df68836440d29f8f55c2c99b1a2d8da669f8d49d +size 12263 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Throwing_Axe_01.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Throwing_Axe_01.uasset new file mode 100644 index 0000000..e23d659 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Throwing_Axe_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da6b1806c7238398408d1bae49e8488020e0d4acda7cf85a690614b8d07542eb +size 12869 diff --git a/Content/Medieval_Weapons/Materials/VOL2/M_Throwing_Axe_02.uasset b/Content/Medieval_Weapons/Materials/VOL2/M_Throwing_Axe_02.uasset new file mode 100644 index 0000000..4717698 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/M_Throwing_Axe_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83011025fdb24c0da2c718b32784ba679221282092e6db05dcc853750c1e7816 +size 10817 diff --git a/Content/Medieval_Weapons/Materials/VOL2/Weapons_Standard_Material.uasset b/Content/Medieval_Weapons/Materials/VOL2/Weapons_Standard_Material.uasset new file mode 100644 index 0000000..378773b --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VOL2/Weapons_Standard_Material.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2baa3da852a1c6de0b98bd946d0ffc9dc0753559701f338056bb36a1097f0d6 +size 27812 diff --git a/Content/Medieval_Weapons/Materials/VR/M_DefaultRibbonMaterial_NoGradient.uasset b/Content/Medieval_Weapons/Materials/VR/M_DefaultRibbonMaterial_NoGradient.uasset new file mode 100644 index 0000000..b4af7cb --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VR/M_DefaultRibbonMaterial_NoGradient.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64fb1b9db6e36f647a107f053bd7cfa169e14f6edd72807908b1d4620827b518 +size 65298 diff --git a/Content/Medieval_Weapons/Materials/VR/M_TeleportCylinder.uasset b/Content/Medieval_Weapons/Materials/VR/M_TeleportCylinder.uasset new file mode 100644 index 0000000..b277db8 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VR/M_TeleportCylinder.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aee54aae569ee7815a716965c0159d6c52527f997057445dd2626134c8844fed +size 23110 diff --git a/Content/Medieval_Weapons/Materials/VR/M_TeleportNoise.uasset b/Content/Medieval_Weapons/Materials/VR/M_TeleportNoise.uasset new file mode 100644 index 0000000..1df887d --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VR/M_TeleportNoise.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93d692ebe1c64e6b0101442748c689c98a6ebed76f10860b2fa42e10f2773239 +size 13336 diff --git a/Content/Medieval_Weapons/Materials/VR/M_VRCursor.uasset b/Content/Medieval_Weapons/Materials/VR/M_VRCursor.uasset new file mode 100644 index 0000000..6ea4197 --- /dev/null +++ b/Content/Medieval_Weapons/Materials/VR/M_VRCursor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f2131c6863a92d4621bc7727624f7619854217a477d69d515583a88af34c8b3 +size 54113 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/Ranged/PA_Bow.uasset b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/PA_Bow.uasset new file mode 100644 index 0000000..b53254d --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/PA_Bow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18740a81ea55a6973a1f4a8f10b5d5b033c29c87fa0b25d270daaf193ee8b357 +size 10679 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/Ranged/PA_Crossbow.uasset b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/PA_Crossbow.uasset new file mode 100644 index 0000000..cc5982f --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/PA_Crossbow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e3e6c87d8757e06eb735afd35a92127a4807414bf6f4bfbd15d67746e2bb273 +size 7936 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SKM_Bow.uasset b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SKM_Bow.uasset new file mode 100644 index 0000000..d3d3928 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SKM_Bow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6352fed6fe6bb8a538f27c57020e78361950ff87d3f529aed071ee4ff3514779 +size 1670057 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SKM_Crossbow.uasset b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SKM_Crossbow.uasset new file mode 100644 index 0000000..48cf182 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SKM_Crossbow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d7dfa57dbf92491422a460aef0dd4c0a52493e3ae0d97badb728136c7a64228 +size 2236846 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SK_Bow.uasset b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SK_Bow.uasset new file mode 100644 index 0000000..aedf44d --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SK_Bow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28a7a1818d77025da9dcd1dcf0954eb649b3ff0eef1a35071c53847538220b31 +size 9867 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SM_ProjectileArrowMesh.uasset b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SM_ProjectileArrowMesh.uasset new file mode 100644 index 0000000..11402f9 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/Ranged/SM_ProjectileArrowMesh.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aeec01d70764b66305f49f038b956c8ffb51ac6fb7ec1ceb0655de2be3f93251 +size 117461 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Arrow_Var1.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Arrow_Var1.uasset new file mode 100644 index 0000000..4b834cc --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Arrow_Var1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:faa31284fbe656d3f0625d5c081228853b9deb8cf6693bddc7a926a61fb1cbe5 +size 95160 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Arrow_Var2.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Arrow_Var2.uasset new file mode 100644 index 0000000..b27f704 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Arrow_Var2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc4d44bc964550cb3e6be97ab34b87b92097f1d3debe584964f156cdafab2de9 +size 98535 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Axe.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Axe.uasset new file mode 100644 index 0000000..ddbddfb --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Axe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c562865442da1d11d5abff01b8551feb4d3fc028d17a04e4684fa7598bd844b +size 809279 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Bow.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Bow.uasset new file mode 100644 index 0000000..39ed5c4 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Bow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a3b8769485401149c8ec652da4104763391569c6cc67d18b19f8e7a9d1b59ae +size 344547 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Crossbow.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Crossbow.uasset new file mode 100644 index 0000000..2c72310 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Crossbow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:629b0e3761bc847f0566a2d21d4fbc402f91a5ec2676df22f6b84a84a7368235 +size 491112 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Dagger.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Dagger.uasset new file mode 100644 index 0000000..af8a30f --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Dagger.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ada8e7c4e90c28fd3f31cb67d43ef48187d479d4de0b1d6ebacb0d4dba4659b +size 178896 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Mace.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Mace.uasset new file mode 100644 index 0000000..1d4177f --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Mace.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e16e4f899dc7c65ae44ae8771b0c5b3d159a7eece1d34be9a6915ca624754b18 +size 452309 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Scythe.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Scythe.uasset new file mode 100644 index 0000000..9a18dbe --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Scythe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd6640227b291d356bffa4b286b85c3eb2c1ae637d1652f1d9d239f4e19851be +size 461060 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_1.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_1.uasset new file mode 100644 index 0000000..00fff26 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05fbf2863add58f9f1df2c2aa764619d40c054dbc6143c684814cfcdda4c4965 +size 357809 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_2.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_2.uasset new file mode 100644 index 0000000..3cd3cae --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cab897b2f4391557b8632bf660d8732a0c4482ca4afeab216298c6daf065ef81 +size 260605 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_3.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_3.uasset new file mode 100644 index 0000000..e6d7924 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Shield_3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fb43e41b1d396a1f5a50e15b1f7e98277a2da4a1bf6e2cbaa2feeb6406c6c1b +size 279376 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Spear.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Spear.uasset new file mode 100644 index 0000000..3b5dc67 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Spear.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cc86faab48c0a90ceaa8055c5fad83d0f2f02f48fd22665c73aec4835a9f25f +size 263320 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Staff.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Staff.uasset new file mode 100644 index 0000000..641bde5 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Staff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:296f37aea573901a9dcfd07b0221db64f82199a085781a7dd359c79085d604e8 +size 377468 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_1.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_1.uasset new file mode 100644 index 0000000..095894c --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48ca69c9ad4a4e3b48156c0ecfdbfbec2d795bbea3855d4f5dad848cc2d3182e +size 725756 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_2.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_2.uasset new file mode 100644 index 0000000..606edf8 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae89b0dd3b47df150e059851d540dc27623690dbf672f253b80c0f3b8282ed8a +size 249984 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_3.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_3.uasset new file mode 100644 index 0000000..822c252 --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_Sword_3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:069b2e0a6e26ae4dc19eaeb2fd39837353f3e6a14fd75fed05457cb682d6ec1a +size 255638 diff --git a/Content/Medieval_Weapons/Meshes/VOL2/SM_ThrowingAxe.uasset b/Content/Medieval_Weapons/Meshes/VOL2/SM_ThrowingAxe.uasset new file mode 100644 index 0000000..993faed --- /dev/null +++ b/Content/Medieval_Weapons/Meshes/VOL2/SM_ThrowingAxe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f62866575d29367ec2ae7346d1033637f9e25805a56de60c490afe272c66470 +size 113558 diff --git a/Content/Medieval_Weapons/Textures/UI/T_BowCrosshair.uasset b/Content/Medieval_Weapons/Textures/UI/T_BowCrosshair.uasset new file mode 100644 index 0000000..df9006a --- /dev/null +++ b/Content/Medieval_Weapons/Textures/UI/T_BowCrosshair.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:648cf9babef8d326ea1568c0263d26b714283584b3565f072806fed4c65c4980 +size 19040 diff --git a/Content/Medieval_Weapons/Textures/UI/T_BowCrosshairSmall.uasset b/Content/Medieval_Weapons/Textures/UI/T_BowCrosshairSmall.uasset new file mode 100644 index 0000000..b5c10fb --- /dev/null +++ b/Content/Medieval_Weapons/Textures/UI/T_BowCrosshairSmall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a43236c5d4f78062f78021f6aafbf1c351803af13527df097467055b0583c40f +size 8577 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_C.uasset new file mode 100644 index 0000000..172c032 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca4d2acf5d12dedbbcb1dc3f1f847201eaf81284ce0842b84bd0e210d802408c +size 18029158 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_N.uasset new file mode 100644 index 0000000..4e43d27 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f28b9fb5136533660ab9bd800068968526a4fbac501bbb3aa6fc462592d6b56 +size 16331426 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_ORM.uasset new file mode 100644 index 0000000..6d2db86 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:905facaa80ea10b1510cbe8852767bf4d1b417379ba744ae0021ae54c6f854af +size 18736648 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_C.uasset new file mode 100644 index 0000000..3f4707d --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2b369255e23cb358d01b84691e217d48ff682953d5deb93eedc64b1f4ee381e +size 11220937 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_N.uasset new file mode 100644 index 0000000..a87660c --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29dd97abd7358912f9c6869d00aea65f7812be57cdbc53edac3ad09c36097e7e +size 25385713 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_ORM.uasset new file mode 100644 index 0000000..3254fcc --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Arrow_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bcbd67f88de2d2ad44da8ce8124c4180afdc88b0ff7fff5d359f71be6c9a217 +size 9576747 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_C.uasset new file mode 100644 index 0000000..18ea2fd --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd2dfd7402b191dec18346e568346cdeba4613ac760bac66c8c0f01d2202c038 +size 31384413 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_N.uasset new file mode 100644 index 0000000..c9e0a56 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b5b1f0843fa1331c5a17fdf6a67e46e734b35cb252902ad7cddd0c2e8884dce +size 45893944 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_ORM.uasset new file mode 100644 index 0000000..2ec1796 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:013ded731ceb5dceedb4bdbc4b27d97d4c9d444be83ff5ffb71cbf48ecfbd93b +size 14353252 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_C.uasset new file mode 100644 index 0000000..ce611fb --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecd2ecf7ece399795fd5a482b9e6b56591a2c5be3968aa880afcf9848b273ae5 +size 23250083 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_N.uasset new file mode 100644 index 0000000..fb0dde3 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e897af1c246e9855025f86ce91097b1a4ce6b37251fc359ea862d0222ad8f59 +size 33028101 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_ORM.uasset new file mode 100644 index 0000000..f5188d6 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Axe_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a71a8d42cfd978c69329ab198f64217650932fc5dedea0ab5cb640638912261 +size 21981803 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Blood_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Blood_C.uasset new file mode 100644 index 0000000..e559db8 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Blood_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:533df475d7bfd698fffd64a976be9c9309351a71c0ea6e54b659423497db59ed +size 4981123 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Blood_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Blood_N.uasset new file mode 100644 index 0000000..74d67bf --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Blood_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c67c309ad6fa401ed47d2a5a7d7d2f856b11c680c26f4355a4d53bd6d41ccbb0 +size 14514265 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Blood_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Blood_ORM.uasset new file mode 100644 index 0000000..d2d3d68 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Blood_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb24cfaf3bafb009797643c5b7e1c57126988e188c9da74460a043009991cf80 +size 3445872 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_C.uasset new file mode 100644 index 0000000..83fd7f0 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a356c8693ac14b31160537c9b211262dc327254b078c0a66668e2d41536d3c8 +size 16550523 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_N.uasset new file mode 100644 index 0000000..abb1941 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9d34d180c47087723d6c7add88a81124380448bb79f28b81ed987f92f296183 +size 28470935 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_ORM.uasset new file mode 100644 index 0000000..647f8dd --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12fca155266845a8557078fc039dc68cd05824d5122c4ca42c542bc0b9d999d9 +size 18268837 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_C.uasset new file mode 100644 index 0000000..0435ff7 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed771e4b26a0f29d507b3fb2d2f9c97d0d687d1d4ebb93283ecf32abd0ce5ad2 +size 16204782 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_N.uasset new file mode 100644 index 0000000..8bd9a9c --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cee54f3d04a93276c720a7f9018c6c34104c832eca27ceed227700a69f7f8bab +size 24854054 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_ORM.uasset new file mode 100644 index 0000000..4a12c78 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Bow_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5502b2ca01d6836dcd325040fef4ca8c2d39d2660265072f4bedde3189fafeec +size 17787552 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_C.uasset new file mode 100644 index 0000000..9876b5d --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:379e7714beaade369b5e161c23513d2f66f924c988e1079ad9ac2cd3dbc21718 +size 20245459 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_N.uasset new file mode 100644 index 0000000..966ccde --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bf5eb4a66c0195e6892b766302e3e1fd0112165abb3c2b8a5e7d6f9bbe397a2 +size 26755998 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_ORM.uasset new file mode 100644 index 0000000..b1a35f8 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e567f281ec9a7559290d318a806bcbaee2445706ff09e0ce2cc7ee1227de691 +size 19568462 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_C.uasset new file mode 100644 index 0000000..e740f4c --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a79897d9e31f5badac0f890074962e14270392f606711aa079d4b06d2ef7db5 +size 13885732 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_N.uasset new file mode 100644 index 0000000..1232c6c --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b2d08188f18728edaa230836f00ff298c62253cad7f10158c8887ac60fb576b +size 19972778 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_ORM.uasset new file mode 100644 index 0000000..0da360a --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Crossbow_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb2540982668513bacc07c1e7d02970928ae6064c5545e1931c886cdffc15443 +size 16086783 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_C.uasset new file mode 100644 index 0000000..befb6d3 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8230317da58be0deda923fe5a4c3672675048ecd7e980d3ae8ddce6d47d50fc +size 32493861 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_N.uasset new file mode 100644 index 0000000..2c3520c --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ab7b0e432dc3c9e463c0db62113b3a5723e2fbe63772c2fb845e06a702aa2e1 +size 32674825 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_ORM.uasset new file mode 100644 index 0000000..1e332e9 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b907b12dc6aebe6b4837e4164445bf2e92a36ea00032de5c08011b7d98b10da3 +size 23777425 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_C.uasset new file mode 100644 index 0000000..c6a41c8 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf9255e49be55fb69582e2625f7e0d7cdfa51154ae00069f310588e1f5182fa9 +size 24684180 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_N.uasset new file mode 100644 index 0000000..d70477a --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe524b0f274bc3a352f63221356e1bd9ecd2681c4049b8b84a46d0d31a5d5198 +size 25788845 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_ORM.uasset new file mode 100644 index 0000000..97cb3a1 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Dagger_1_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61db505987f0813ed7bfb1c48381b4a66d8bb209e8ad6f1179a9daf02ac46cd6 +size 14269352 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Mace01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Mace01_C.uasset new file mode 100644 index 0000000..d421a3a --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Mace01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7dae733050e1ce60906396a3406d27c95085a8e48ae01b1872d748f84aaf7d6a +size 22486911 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Mace01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Mace01_N.uasset new file mode 100644 index 0000000..0b0a2fb --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Mace01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68a9bfedaa4b9619d4b96921c0f7a8f5290539cee66b3a668a444a6b05e665ed +size 34243180 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Mace01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Mace01_ORM.uasset new file mode 100644 index 0000000..2f78dcd --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Mace01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7512612b3275d62cda6b313373f372c8d7ce9bc8244ddcd59e38b94a69a8ec5 +size 23146375 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Mace02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Mace02_C.uasset new file mode 100644 index 0000000..97b7569 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Mace02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2d8f81e62e53584d731aa802713e6d6daf3e5fbe8280d5efe6993a185ee0556 +size 21585754 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Mace02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Mace02_N.uasset new file mode 100644 index 0000000..a6f8c6b --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Mace02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3eb704c8145fee5e007863216336565f7f71d2469f7d23390504812d8fcc5b8f +size 31249601 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Mace02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Mace02_ORM.uasset new file mode 100644 index 0000000..ad2b2d4 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Mace02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f394b219cd79868ff41779f672c3387e0832a3eb1a7e067547773db840bacf4 +size 21799778 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_C.uasset new file mode 100644 index 0000000..c669f40 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35a5309d6f87b2eb7df18bad8915330885e910ade2373380257f346d65ae715c +size 16599972 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_N.uasset new file mode 100644 index 0000000..74d21bd --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e47a9a619158199434be27e4d4ccf8ff18e853bb9a633be5ca81a9040581375b +size 23727067 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_ORM.uasset new file mode 100644 index 0000000..7b708ad --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af7d74282440af29c73703483f6dc6ffa59c7589d4007b2bda56c1c22ffcc04b +size 15042555 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_C.uasset new file mode 100644 index 0000000..ee61577 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ebf9f22ca47b35780c639ea6a7d2151c8718a604f8ed32ce0df3e75896ae3bc +size 23531009 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_N.uasset new file mode 100644 index 0000000..4a48a42 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1a232d9ddcc02a3583bab1dc6b32dd7af2bc06afae2151715df2ecc8cbe32ac +size 32435152 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_ORM.uasset new file mode 100644 index 0000000..2f0b79f --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Scythe02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5c188413fd789cc55dbff1a97e01aa4dd6f30dc72812ffe845ec6e3c4752521 +size 24301788 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_C.uasset new file mode 100644 index 0000000..9fe3837 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d51e2988aad88dead0c095c86bc1008e270a0e39c683b168c5cb5f54dc9916f7 +size 21439222 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_N.uasset new file mode 100644 index 0000000..7ce5f51 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:563a9af64d0a467100dfec5941b23a0af91ee66e8729cb3c90e178353b75253c +size 28698310 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_ORM.uasset new file mode 100644 index 0000000..93877ec --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11b534a3df868f90233912f415ecdf862c9ae3d118ebb66c7a28cb2b3d9396f4 +size 16551270 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_C.uasset new file mode 100644 index 0000000..d471434 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcfff051e34c9c0183efd0bb62ae5e4488346111203f8f85349eb3f827257859 +size 16276151 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_N.uasset new file mode 100644 index 0000000..1874834 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6a0ef897c84e8f4959afef90fddd2269f0da76610dce01b4c5c41fe676d5c40 +size 35310126 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_ORM.uasset new file mode 100644 index 0000000..1752444 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d12274cfe70a37dc4f6615c57728af9d3c1b63baf918867c669087526e7a75a1 +size 16720111 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_C.uasset new file mode 100644 index 0000000..76488fb --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:554e9d6af177aed98a86f1bdd0ff05f162401c48d99b77cf67171056f7014269 +size 19087482 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_N.uasset new file mode 100644 index 0000000..70910e4 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd3ac18562ac72719d7e4c3fa34fa314bf3c757b40eec1b6f7947d09b6a9d99c +size 27516923 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_ORM.uasset new file mode 100644 index 0000000..337d518 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6970d9192ee0be98d09ccd86e5e7c2c075ed2921a5fbdaca9c7152bc467e9035 +size 16082668 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_C.uasset new file mode 100644 index 0000000..517dcb3 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a8f5e08c5a62fe407bd021320e3d924165d42f5d8e8dca755fa81ab6a93d254 +size 13581575 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_N.uasset new file mode 100644 index 0000000..3fa42b2 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc04863bd5fc1411aa1a14085b846c00f1cbb441390c9a028c15d3653d85f637 +size 28659395 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_ORM.uasset new file mode 100644 index 0000000..4581029 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_2_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48c3fcf33c3c5995234a1ae6d17c0749989efb8f3fee15efeaa398fd9df444ea +size 14968198 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_C.uasset new file mode 100644 index 0000000..fcedca6 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56fb3b0c43f38958ef0a24ac624a95393962c7bb4447384b5c452bffb3a59add +size 34076067 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_N.uasset new file mode 100644 index 0000000..2698c22 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c49426770e26738d5539d529e12ae23a152014eaa352f7d2d379adbafb1ab91 +size 33735631 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_ORM.uasset new file mode 100644 index 0000000..3f831e7 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eadfe6fc9049ca30e43c4f4dc693613042a04e7ad485c57ae94f23a680a31ef +size 26656683 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_C.uasset new file mode 100644 index 0000000..59d8436 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb1cd9b74517900328b943f8447cbfdb7de2d3236d52e1a091ee8cd0f648e1e7 +size 18933911 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_N.uasset new file mode 100644 index 0000000..8130ba0 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:367f2f8bc3531d540c3ab9840e79be0ea2d19df79fdfa27ffd8585e4202a81f7 +size 27549893 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_ORM.uasset new file mode 100644 index 0000000..c811687 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:462c7e60b2e400c06f37fd2204b1ddd6c6f78e0ba442b41ed757d2a96d260518 +size 11432556 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_C.uasset new file mode 100644 index 0000000..11848da --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7be3fae3161babad5e4d297b5ac1ec633899420ed51dea25f11058c2edd151e7 +size 27008290 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_N.uasset new file mode 100644 index 0000000..eda7dd5 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f918b8e790bbd506080386b4fa2bf96ba5621cbcb2b86b53124304abb0ae829e +size 28416910 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_ORM.uasset new file mode 100644 index 0000000..f96aa2b --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Shield_3_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a07e456e7c7e3d6ff3dd9b98df5560fdb96f90f1fdfff936de590c057f49b27 +size 21962169 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_C.uasset new file mode 100644 index 0000000..79f0923 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72b68c395ec5b2d3101b4f450c4e8cf992284f0a2f6d4c624c0627dc70b6094d +size 17084132 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_N.uasset new file mode 100644 index 0000000..34921cf --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3c55069beb4ad0715e78a91e45ba3ede11a2c6957b714b5a890511e44aa34d9 +size 24439965 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_ORM.uasset new file mode 100644 index 0000000..0728064 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9eed9a4e630f35e549945174f76f1ff4d09edd7c6213d77475551ef9d6294111 +size 17432090 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_C.uasset new file mode 100644 index 0000000..cb9675c --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:511503ba1edd309b046600d5dcb2c6e1b73deafd0c6e89f47c79109f5cde3466 +size 22834054 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_N.uasset new file mode 100644 index 0000000..1e307b6 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56717c0396acebb3ef6068538f61c59ebc9cee0ab1e98e53986c8e29426fcc61 +size 30547506 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_ORM.uasset new file mode 100644 index 0000000..ef83923 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Spear_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e782e90ef60d472ebf984a01e401b79bb3968e2637fd5cd8129ec2b0bfa7a602 +size 19237320 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_C.uasset new file mode 100644 index 0000000..a22db6f --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:578f45ddd37848de20c403ce8bfc30fca5063d80f079514b466c2aaab1ce29df +size 21309371 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_N.uasset new file mode 100644 index 0000000..0da3a55 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5549ba7c790e7de8e9d9fbce3c0b20cb4fc03f57ad8c9243b833b4ca84e39822 +size 24818854 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_ORM.uasset new file mode 100644 index 0000000..6eb22cb --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0534fa3c201d84eb91ec5d86dbb40e3d9e4239479326f19802c3eca5654c7b6b +size 20022702 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_C.uasset new file mode 100644 index 0000000..8f8c82f --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70d0bd906615bf87cd777de32b569d9c7733254409f9530570ad32cc60d744f6 +size 22632967 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_N.uasset new file mode 100644 index 0000000..5c02c0e --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b74b7d7fee121fa4a0793b2ba3f77b17206ecc6d907775a10d5a90e79a6f99fe +size 30796160 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_ORM.uasset new file mode 100644 index 0000000..aef364d --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Staff_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3daeb3627cad0f57e50638c7f087adab14080e0a396681f5c3e29f94c2e7575 +size 21451988 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_C.uasset new file mode 100644 index 0000000..6dbbe17 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91550793ab4cb20aa299405b81974b0dc3aa9fb15d79d329402f39197a24b405 +size 29579895 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_N.uasset new file mode 100644 index 0000000..b7c5de2 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93d03110bb5feef194b2feee308610dd4a5a3a3d945c407b70bd8c435cd5dfea +size 34216292 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_ORM.uasset new file mode 100644 index 0000000..3220afd --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:799dc810c1206a91cea6cda8ac874d49f0a815937d5b3fb9709210356194b765 +size 29872047 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_C.uasset new file mode 100644 index 0000000..f0330ec --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:235a2789ea56cead2f3e009b4b2e15571a28eb21a2ab51e8fb84b9bb3160e419 +size 29395349 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_N.uasset new file mode 100644 index 0000000..7a8823a --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fe6231a93e7aea3ce575c5cd2eba90024078e39b5bf8bda4bf4dbbdb89490d8 +size 21951515 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_ORM.uasset new file mode 100644 index 0000000..d5708be --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_1_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d74cee610bb1d8d21e1f19aeede61b4eec527b284eaa9689e29ba21f4931f2a +size 25346023 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_C.uasset new file mode 100644 index 0000000..6fa8054 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abfade8bd76c53d577689b6fd80faa53de6454dd5d60081be8ec7279bc7eab33 +size 17299938 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_N.uasset new file mode 100644 index 0000000..ba5d389 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a665904d5d211b61747e9b206b86d1fe88b6d7ebc37723fd60814de0a6fa152f +size 17964496 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_ORM.uasset new file mode 100644 index 0000000..173bd81 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8a23133229ee567787b3016214c8190654d8a2d72399d9af6eb672d9c0dc250 +size 13863002 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_C.uasset new file mode 100644 index 0000000..81650cd --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:578b2503cc426b74b3cff4d355f8dc242f2d8ecb3f6cad893b19cb7e5a8e98e5 +size 17297739 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_N.uasset new file mode 100644 index 0000000..f9d1e8c --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b4d4cfd9e83621713543591e9639fe8ffe59423c9854d65f892eb29a0ae8bf3 +size 17941810 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_ORM.uasset new file mode 100644 index 0000000..a0374f7 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_2_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:689787bd30b742aa421f1d8e8a62b269b7a53725682c9923499b8b3517f67c61 +size 13767900 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_C.uasset new file mode 100644 index 0000000..d67c311 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f686fa46621cff749ff630ed32fc0de03ae4aa3077113948d8fdcc414e97934 +size 29668342 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_N.uasset new file mode 100644 index 0000000..98753aa --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45c12f682d66fee67f87634c3ce9982045c498d032ffa60160571bb770f6edb8 +size 37031063 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_ORM.uasset new file mode 100644 index 0000000..5682652 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c67c0fd19f92b8cf14776f72e7bf6281dae1ed887d63f7121530d59c3499f2d8 +size 21214902 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_C.uasset new file mode 100644 index 0000000..01900d2 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95692ab8aaab22a61bb2bb770c24185b143af094e0877a2f020e3486dbf426c8 +size 27445293 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_N.uasset new file mode 100644 index 0000000..510113f --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:001ec1727e4de6dfd9ea0bfb915ef2c486bfbf60ae2259a77c871ca137e51266 +size 32099864 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_ORM.uasset new file mode 100644 index 0000000..7629d0c --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_Sword_3_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fa23812e8a3a9734241e83c70f9108af257c835042f4b92a61496dcbe6f65d8 +size 20583150 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_C.uasset new file mode 100644 index 0000000..56d0867 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b9d0251183862eafb3675511ac35db968e1873a9645b091ec3a8c72051e6be2 +size 25826839 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_N.uasset new file mode 100644 index 0000000..b688694 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa314d8232e5fe12f9e9db01d2d4acffd11b433d2e507ffe1e3fabae0de595c5 +size 35327720 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_ORM.uasset new file mode 100644 index 0000000..e080a77 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_01_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a07b3787eee9b17d4d5a377cebc64c9b4c1b46d0e8c2caf2dd701c18f8ba99b8 +size 23506873 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_C.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_C.uasset new file mode 100644 index 0000000..a242165 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88ef19d5b09f5aacb8f7c7685d6d8236d155421393dc04c8d27ea8f7c93510e2 +size 21964784 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_N.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_N.uasset new file mode 100644 index 0000000..48fa80b --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f2ced1885100bc62a21985cb9c740c50c20529099a69a96cc16334892943ab3 +size 27333926 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_ORM.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_ORM.uasset new file mode 100644 index 0000000..1cda8cd --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_ThrowingAxe_02_ORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e86bbfd16abc33116189dca9d771e06dff7740b4ca91f4bb7cf16bff48ff22d4 +size 20146343 diff --git a/Content/Medieval_Weapons/Textures/VOL2/T_grad.uasset b/Content/Medieval_Weapons/Textures/VOL2/T_grad.uasset new file mode 100644 index 0000000..1ca8f75 --- /dev/null +++ b/Content/Medieval_Weapons/Textures/VOL2/T_grad.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86191e523c5c2afe506047884cec85facf8b60d1a7db9cc7273db544db2ca773 +size 14020 diff --git a/Content/Medieval_Weapons/VFX/NPC_VRTemplate.uasset b/Content/Medieval_Weapons/VFX/NPC_VRTemplate.uasset new file mode 100644 index 0000000..27f6caa --- /dev/null +++ b/Content/Medieval_Weapons/VFX/NPC_VRTemplate.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1cd8bc89d47f8912a1b766be81d92c011bf77ff7271cb66003457ed81489478 +size 3064 diff --git a/Content/Medieval_Weapons/VFX/NS_MenuLaser.uasset b/Content/Medieval_Weapons/VFX/NS_MenuLaser.uasset new file mode 100644 index 0000000..9d44099 --- /dev/null +++ b/Content/Medieval_Weapons/VFX/NS_MenuLaser.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8dd5ae3f3b314898ef25bc23d80817db1d0f86fe0acb621dc4ee11586d7034e +size 575718 diff --git a/Content/Medieval_Weapons/VFX/NS_PlayAreaBounds.uasset b/Content/Medieval_Weapons/VFX/NS_PlayAreaBounds.uasset new file mode 100644 index 0000000..84c798d --- /dev/null +++ b/Content/Medieval_Weapons/VFX/NS_PlayAreaBounds.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97f8b13b73aee3caf71502c57a6769db92006758534d68ce3db76dfb326206b5 +size 567254 diff --git a/Content/Medieval_Weapons/VFX/NS_TeleportRing.uasset b/Content/Medieval_Weapons/VFX/NS_TeleportRing.uasset new file mode 100644 index 0000000..b491974 --- /dev/null +++ b/Content/Medieval_Weapons/VFX/NS_TeleportRing.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac2ffc2f9bac9e884f2506236b5f464cc41dcf2c060b417fc441fe1ef5b4abd3 +size 801454 diff --git a/Content/Medieval_Weapons/VFX/NS_TeleportTrace.uasset b/Content/Medieval_Weapons/VFX/NS_TeleportTrace.uasset new file mode 100644 index 0000000..a0c28c7 --- /dev/null +++ b/Content/Medieval_Weapons/VFX/NS_TeleportTrace.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d82f8976ed98d3d81ea8efcd512945978d2802464c905611be14bcb8d39a6b5 +size 733576 diff --git a/Content/Medieval_Weapons/VFX/P_ArrowTrail.uasset b/Content/Medieval_Weapons/VFX/P_ArrowTrail.uasset new file mode 100644 index 0000000..e872229 --- /dev/null +++ b/Content/Medieval_Weapons/VFX/P_ArrowTrail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:946da8b92e66543efc22db73fc88a504d2f50e0bc365cb61e38bf9fe35f48c87 +size 17565 diff --git a/Content/Medieval_Weapons/VFX/P_Impact.uasset b/Content/Medieval_Weapons/VFX/P_Impact.uasset new file mode 100644 index 0000000..e298179 --- /dev/null +++ b/Content/Medieval_Weapons/VFX/P_Impact.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2357cff60f29053476bea7e08f2b494af393e905adf97313f2b6d9547cab04c +size 19559 diff --git a/Content/RPGEnvironmentVFX/DemoMap/L_RPGEnvironmentVFX.umap b/Content/RPGEnvironmentVFX/DemoMap/L_RPGEnvironmentVFX.umap new file mode 100644 index 0000000..fecf37f --- /dev/null +++ b/Content/RPGEnvironmentVFX/DemoMap/L_RPGEnvironmentVFX.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1cc75eb6f4effc930780c02309683ec25a5eb0dd0f659c53bb156c3f9bce70a7 +size 99654 diff --git a/Content/RPGEnvironmentVFX/DemoMap/M_DemoFloor.uasset b/Content/RPGEnvironmentVFX/DemoMap/M_DemoFloor.uasset new file mode 100644 index 0000000..43d4103 --- /dev/null +++ b/Content/RPGEnvironmentVFX/DemoMap/M_DemoFloor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3f5e130d69ae6bfcb65762a9a32bc8822a536456c86d3e9420dcfad67b95952 +size 96929 diff --git a/Content/RPGEnvironmentVFX/DemoMap/RPGEnvironmentVFX.umap b/Content/RPGEnvironmentVFX/DemoMap/RPGEnvironmentVFX.umap new file mode 100644 index 0000000..3a7ea63 --- /dev/null +++ b/Content/RPGEnvironmentVFX/DemoMap/RPGEnvironmentVFX.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0268ed84cf8e7f0863210bf2879bce6811225f15c2a44f50539fca6f35fd7d8a +size 59240 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/MI_CobbleStone.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/MI_CobbleStone.uasset new file mode 100644 index 0000000..cac128c --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/MI_CobbleStone.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d64a4ac4aa31e781a390894cd9b03cf6f6625c445c1e10fda28d5599a5e5ef1e +size 168504 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/MI_CobbleStonePillar.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/MI_CobbleStonePillar.uasset new file mode 100644 index 0000000..48db7c6 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/MI_CobbleStonePillar.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6935afe4f211a9de65f534778b50675e04d09c401799f8dbe0fc512152217008 +size 157727 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_Bubbles.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_Bubbles.uasset new file mode 100644 index 0000000..ff94489 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_Bubbles.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:155478bac187e93ed7c0b4c0232a74ef36e65f693e156a758a5788c168162cfe +size 79637 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_BurnDecalSword.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_BurnDecalSword.uasset new file mode 100644 index 0000000..3a85fa5 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_BurnDecalSword.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b567ef7a453061024bae827dc1e37d5197bb5d667c6de5424d5f5b3bda82c290 +size 85673 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_CausticDecal.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_CausticDecal.uasset new file mode 100644 index 0000000..bf3b8c6 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_CausticDecal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ac4e560b4aa18b5948b0db6ba60f4e28c140be9ff30fac18bd832cf406d6c32 +size 111291 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_CausticDecalRune.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_CausticDecalRune.uasset new file mode 100644 index 0000000..14b866e --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_CausticDecalRune.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb0830ed30297df94cc31b15508447830976de2965f377f0da28a548150617ac +size 114122 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_DemoCobbleStone.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_DemoCobbleStone.uasset new file mode 100644 index 0000000..d4c95f8 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_DemoCobbleStone.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1cb1fd8a082b4b84ec5fb2c2e923c2160ddeef44c5d5532f600acc44029a51f +size 174980 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_HeatDistortion.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_HeatDistortion.uasset new file mode 100644 index 0000000..d2e3241 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_HeatDistortion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e89add806b30c3e55fc9d2db17b3400c818c42960939e6ae876c10fa86354fe +size 81643 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_MagicalGlowRays.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_MagicalGlowRays.uasset new file mode 100644 index 0000000..4cdbd0f --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_MagicalGlowRays.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb6ca2a320f85102ba0f1fc344d4cd0347715f7f5a843d3ddf8f7986952529d4 +size 91722 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSpriteMat.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSpriteMat.uasset new file mode 100644 index 0000000..52c4529 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSpriteMat.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a6cad800b0c5e8680eef8505e94ba415b908f8515cfd1bd6cf729ea43938449 +size 77225 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSubUV.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSubUV.uasset new file mode 100644 index 0000000..7600451 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSubUV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58b29e3854ca598b6ec5ee2a2b4e5c36fe982ac0f0ed8d27fee78fd8a977c8d9 +size 83207 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSubUVLit.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSubUVLit.uasset new file mode 100644 index 0000000..98099ca --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_MasterSubUVLit.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aab96201bb5a4a73cca922ff900d3697e15147bac0e3c1f6114110f6c3a80c2f +size 82863 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_Sphere.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_Sphere.uasset new file mode 100644 index 0000000..98fec78 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_Sphere.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a58baf34fb1aa873f35bb57bca801e930c9e1c03f7653289099a78fec67f746 +size 92872 diff --git a/Content/RPGEnvironmentVFX/Essentials/Materials/M_SpriteHue.uasset b/Content/RPGEnvironmentVFX/Essentials/Materials/M_SpriteHue.uasset new file mode 100644 index 0000000..34cdd31 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Materials/M_SpriteHue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a0d3e723c448896efe877de6e6b98a9c9ca8ee6297cac646ad2e464e76c32b7 +size 96733 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoBottle.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoBottle.uasset new file mode 100644 index 0000000..462fab5 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoBottle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bea037769efa6d905916c449134c068cebf9f2469e15d3ddd1bc821d9778d73 +size 76760 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldron.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldron.uasset new file mode 100644 index 0000000..c8d1517 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldron.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b66001023691e1fce1ae684f057b0f1b1a92be73d525297bd7ba7542eb2a0bc1 +size 92066 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldronFlame.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldronFlame.uasset new file mode 100644 index 0000000..1c3c627 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldronFlame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e982709d279dd43cc95f57a8859f7841a0356c6f170facfe637bdf17dfb6adf +size 146248 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldronLiquid.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldronLiquid.uasset new file mode 100644 index 0000000..70a2904 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoCauldronLiquid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a100510214a260356d49d89c61eb68d705d4d9560c50f1bd59b2fee63099dc1 +size 95163 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoChest.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoChest.uasset new file mode 100644 index 0000000..0eba212 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoChest.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:626e43a53136a3bbc3e359852d2a9ce9ab881b95cf98f7c06cffc01f89412939 +size 87811 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoPotionLiquid.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoPotionLiquid.uasset new file mode 100644 index 0000000..caa1570 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoPotionLiquid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b656bc0e82b1ca961e36639aa484b89a7db34654c1f9dd5340570fa494028b09 +size 105234 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoSword_1.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoSword_1.uasset new file mode 100644 index 0000000..95e4730 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoSword_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd232d850e7345d12a6e48e7bf8d995e530cd39aea9a935f09499c9d58073a42 +size 96361 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoSword_2.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoSword_2.uasset new file mode 100644 index 0000000..3689fdd --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_DemoSword_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15875e8d430613c05c26d791136fa9055f85bc142c9408dfcb4798d32963d9a4 +size 92267 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_Grass.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_Grass.uasset new file mode 100644 index 0000000..a715039 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_Grass.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:437420dd7505ba995bce87e67061a488e386937059ace214a46708942099bf35 +size 106861 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_Plant.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_Plant.uasset new file mode 100644 index 0000000..512a808 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Materials/M_Plant.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcd12c34a97d626e42861691c1b28451eb4685e08880569576ac320ffb4f24c4 +size 106962 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoCauldron.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoCauldron.uasset new file mode 100644 index 0000000..be6fc0b --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoCauldron.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0100a3d20cb704fc46e7749bd8e8dc5b9e459dc7e23b1af8845158cc443aa99 +size 416019 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoChest.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoChest.uasset new file mode 100644 index 0000000..47c42ee --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoChest.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74127caf06731ca18fe458b231fcc8cc804ba056a22e493c19be9c3b32b07330 +size 85997 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoPotionBottle.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoPotionBottle.uasset new file mode 100644 index 0000000..e9c504c --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoPotionBottle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66828635253d11d6fe27635cb9a8d4f9877b70691001e7d51ec5705052e101f2 +size 172689 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoSword.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoSword.uasset new file mode 100644 index 0000000..4ba87d7 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_DemoSword.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc817ec574fe615543bf0a1080bb7d97de6e5ffe5b9e1cb1ef060f1d1e3297a6 +size 87571 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Grass.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Grass.uasset new file mode 100644 index 0000000..c236104 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Grass.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b2022ccfb933b93a94b043c115945727fbbb68faa5442f82d1301d236f6e1ef +size 1158084 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Plant_1.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Plant_1.uasset new file mode 100644 index 0000000..7e70d5e --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Plant_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8693243ea2b7e353b3637cb1604b1fde9ebc3ffa8a3b5361ad7229c2802d5964 +size 945631 diff --git a/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Sphere.uasset b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Sphere.uasset new file mode 100644 index 0000000..3c2d05a --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Mesh/Mesh/SM_Sphere.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35e1359d67bc263b422d12dd99505bf1a7bd0becce75516f947517a06c09d0cb +size 137650 diff --git a/Content/RPGEnvironmentVFX/Essentials/Textures/T_Caustics.uasset b/Content/RPGEnvironmentVFX/Essentials/Textures/T_Caustics.uasset new file mode 100644 index 0000000..d6bce8a --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Textures/T_Caustics.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72524310afbd02004fa6bf45ffc0ad0859b859e41050791fe4613ef0ba21bd92 +size 239329 diff --git a/Content/RPGEnvironmentVFX/Essentials/Textures/T_CobbleStone.uasset b/Content/RPGEnvironmentVFX/Essentials/Textures/T_CobbleStone.uasset new file mode 100644 index 0000000..eed63ab --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Textures/T_CobbleStone.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:894568d3454db1af69fb900ec3c74f33820f5012e1d3a6adea788ace82333218 +size 2707100 diff --git a/Content/RPGEnvironmentVFX/Essentials/Textures/T_CobbleStoneNormal.uasset b/Content/RPGEnvironmentVFX/Essentials/Textures/T_CobbleStoneNormal.uasset new file mode 100644 index 0000000..47c42c9 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Textures/T_CobbleStoneNormal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35ea6d87443e1aeec49a2339a03024a2a1610a2285e9dc7b5dbbf639135bc632 +size 5342694 diff --git a/Content/RPGEnvironmentVFX/Essentials/Textures/T_MagicSealRune.uasset b/Content/RPGEnvironmentVFX/Essentials/Textures/T_MagicSealRune.uasset new file mode 100644 index 0000000..5891b0e --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Textures/T_MagicSealRune.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28379bd5abbd96d9cdf25f8b4434cb89d0f2c6599c1f996dd2b8ac94ec4a211d +size 4810753 diff --git a/Content/RPGEnvironmentVFX/Essentials/Textures/T_MistSubUV.uasset b/Content/RPGEnvironmentVFX/Essentials/Textures/T_MistSubUV.uasset new file mode 100644 index 0000000..448a5ea --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Textures/T_MistSubUV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d18590cedff8c3a335a76b5512a2c1452748e80b4a14c9a8b3ce64253450cd4 +size 2499842 diff --git a/Content/RPGEnvironmentVFX/Essentials/Textures/T_RainbowGradient.uasset b/Content/RPGEnvironmentVFX/Essentials/Textures/T_RainbowGradient.uasset new file mode 100644 index 0000000..77e0fd1 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Textures/T_RainbowGradient.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:696c1f5d789839727cca7a5c78262ed17aa0b3a7757daac3fb3a1d40204d4905 +size 7205660 diff --git a/Content/RPGEnvironmentVFX/Essentials/Textures/T_TeleportZone.uasset b/Content/RPGEnvironmentVFX/Essentials/Textures/T_TeleportZone.uasset new file mode 100644 index 0000000..1bc961b --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Textures/T_TeleportZone.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:174802f2d96aafec0db0f89e5d708c67c69739915a9a786cc554dcfb3a84f3e5 +size 2023630 diff --git a/Content/RPGEnvironmentVFX/Essentials/Textures/T_TiledFire.uasset b/Content/RPGEnvironmentVFX/Essentials/Textures/T_TiledFire.uasset new file mode 100644 index 0000000..111ede6 --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Textures/T_TiledFire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9227ceebb7f141a367d0d69be532f381ca9ab5890434c05aea75beef7c5cc36d +size 2276787 diff --git a/Content/RPGEnvironmentVFX/Essentials/Textures/T_TiledFireNormal.uasset b/Content/RPGEnvironmentVFX/Essentials/Textures/T_TiledFireNormal.uasset new file mode 100644 index 0000000..ce37d5b --- /dev/null +++ b/Content/RPGEnvironmentVFX/Essentials/Textures/T_TiledFireNormal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eecdbae6ca3fea10129d1170c436405214bf91c7829ca2a3495445f06c97340b +size 2789848 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_Bubbles.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Bubbles.uasset new file mode 100644 index 0000000..dce8a14 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Bubbles.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95d8e31f36fb27f76aed68fb082c76fa58baaff355841b9a48396f49be6b1156 +size 74175 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_BurnDecal.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_BurnDecal.uasset new file mode 100644 index 0000000..8ed82c3 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_BurnDecal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c0e55c299447731b3703a61b45af1d1c343c94dc3290130864b500e4f7b2d51 +size 80176 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_CauldronLiquid.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_CauldronLiquid.uasset new file mode 100644 index 0000000..3768708 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_CauldronLiquid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5acc682d157aad684efa0a6a21103375022bd4db5264d8631c8152655af1a7b6 +size 120874 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_CauldronLiquidFlame.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_CauldronLiquidFlame.uasset new file mode 100644 index 0000000..7358aa7 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_CauldronLiquidFlame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52cde1302b04fb82b21b419f6da8c9cf12b33c555dec7c869cc7e3225ec000f3 +size 145181 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_Glow.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Glow.uasset new file mode 100644 index 0000000..4f36886 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Glow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13670d7dcccfb6b63be947738008e340309cc2dde0719c0f4ac5bd3bebace740 +size 72857 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_HeatDistortion.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_HeatDistortion.uasset new file mode 100644 index 0000000..7e584f0 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_HeatDistortion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3381441e95a8351e036f510284b17521689791eabb181edd603989d34dc62f2 +size 71267 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_HueParticles.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_HueParticles.uasset new file mode 100644 index 0000000..6357b47 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_HueParticles.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1fb52ad7c6cfc6c7513f85857541194b0312efac5e50f22197a6fa38eb45a7e +size 71730 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalGlowRays.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalGlowRays.uasset new file mode 100644 index 0000000..e519a15 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalGlowRays.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c62b212d165d5a6e5388736ef2061d4ff07ba46109abe42a9919676a94ae8dc +size 77150 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalSeal.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalSeal.uasset new file mode 100644 index 0000000..77a4596 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalSeal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cfd4583fc7abd5c6d689076e4cb142eda16f29ddb8f52eb145360b2dd15dbdd +size 109970 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalSealCaustics.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalSealCaustics.uasset new file mode 100644 index 0000000..87a670a --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_MagicalSealCaustics.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b83387465e7a14d3d06200817907509e04b8d7492a6cd74615f146c170a0ff7a +size 107017 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_Mist.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Mist.uasset new file mode 100644 index 0000000..5b2cd67 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Mist.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03493e6cdfb82a2e0679fcfbc305322da0f815c29c2f00a33c3d0d0630d52c01 +size 76959 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_Particles.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Particles.uasset new file mode 100644 index 0000000..67c9b33 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Particles.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc3127732a0e71da459505b906ad043b45165ef3e5a2fe7b268ce6c7308011fa +size 71742 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_PotionLiquid.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_PotionLiquid.uasset new file mode 100644 index 0000000..01d7e47 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_PotionLiquid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3a5d8e0465f9895e98c79be33814bf03231b75ed2becb267e4f582a5d2cc3a2 +size 100903 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_Shield.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Shield.uasset new file mode 100644 index 0000000..fab0c29 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Shield.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3c86cf25dded250aba0c4f518a7808fd82e28d60f1066ab00770d2e3f0f906c +size 77320 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_Smoke.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Smoke.uasset new file mode 100644 index 0000000..d7444de --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_Smoke.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecb0f52a05f10841d22703e6e9e484b9ace4c1041b8737301927dcd5de65025c +size 76376 diff --git a/Content/RPGEnvironmentVFX/VFX/Materials/MI_TeleportZone.uasset b/Content/RPGEnvironmentVFX/VFX/Materials/MI_TeleportZone.uasset new file mode 100644 index 0000000..38a2200 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Materials/MI_TeleportZone.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61f6cfce06fdf6a3ff7a9a15ed7b70d3b8407054cfd663bb1c1c765056d237dc +size 108627 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_CauldronBlacksmith.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_CauldronBlacksmith.uasset new file mode 100644 index 0000000..1bbecec --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_CauldronBlacksmith.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:494d9f646c3ee1cb0d3a1d6765f10d212e070f6bf08febf0fde19d8ff113ea14 +size 2477527 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_CauldronPotion.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_CauldronPotion.uasset new file mode 100644 index 0000000..d8d8c74 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_CauldronPotion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b4458fcc166ad0e46a1941486a481759ea39c5400e76397ea38889372db1dc1 +size 2904988 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_ForgeSparks.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_ForgeSparks.uasset new file mode 100644 index 0000000..300f692 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_ForgeSparks.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fcdb0dbf3ce5c524f6a12da1196753312d313f5617a143770fb2f00b42f9527 +size 1551044 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_LootChestOpen.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_LootChestOpen.uasset new file mode 100644 index 0000000..0f193a7 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_LootChestOpen.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12c9c864990d266d7744fe5de9bef36a82402e06dd7c90984d5f99ad3d3a61df +size 2178200 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_MagicalGlowRays.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_MagicalGlowRays.uasset new file mode 100644 index 0000000..1019e5f --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_MagicalGlowRays.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91a1a547ee749dfe4e7b0153ec6c3184b8b15f592f0767d94c5ce213f3475327 +size 509104 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_MagicalSeal.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_MagicalSeal.uasset new file mode 100644 index 0000000..f58d659 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_MagicalSeal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39eaed34f69462cf2aded92f35b19d8b802981a7cfa0cf155f5181ee717f6250 +size 814554 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_PixieTrail.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_PixieTrail.uasset new file mode 100644 index 0000000..131dbcd --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_PixieTrail.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1445d216cb7ba88753c432f4e16eeea1274c9bfa3cd1ad74fa7478f763477c27 +size 1305321 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_PixieTrailRandomColor.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_PixieTrailRandomColor.uasset new file mode 100644 index 0000000..c689400 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_PixieTrailRandomColor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14df6d0a1efbcb3d123fa4323da7d85d1bc8689e6375475066dc9e0ac331d6e7 +size 1347563 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_Plant.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_Plant.uasset new file mode 100644 index 0000000..48261ba --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_Plant.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f0e667ea66fd0ec5b458e7773266cc560060f49b91e20c31d69258c71c1ad7d +size 1974597 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_PlantRandomHue.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_PlantRandomHue.uasset new file mode 100644 index 0000000..0cf0633 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_PlantRandomHue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d77e1f7d72b3cbed38c7ff7573278a07d53b262003e9c3362986d297b920707 +size 2073529 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_Potion.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_Potion.uasset new file mode 100644 index 0000000..4ab9148 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_Potion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0c395c84abb288af88adcbf5f5a41dee0bca67d3cd6f801cbf6062e3d877489 +size 1198451 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_Shield.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_Shield.uasset new file mode 100644 index 0000000..4fefe53 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_Shield.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d607ebcff92bad720a91a424a087eef664aeaa5f061d7346cbd3c7b4d36e9ccb +size 560596 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/NS_TeleportZone.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_TeleportZone.uasset new file mode 100644 index 0000000..4d5ff3e --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/NS_TeleportZone.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e40d18f94398a5d4ef4f3b0f4ac1f9f303a756cb0ef98b48d2f2e830f21ff16 +size 2052978 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/N_CauldronBlacksmith.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/N_CauldronBlacksmith.uasset new file mode 100644 index 0000000..c47609a --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/N_CauldronBlacksmith.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b541139a35f06f08d5ef2a2d6361110b6ee6bbf54ee8f7353245094f6d318bb0 +size 2481350 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/N_CauldronPotion.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/N_CauldronPotion.uasset new file mode 100644 index 0000000..027b253 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/N_CauldronPotion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7f9bfcf7289e96c1a246ef4e81e028760edf7430eca12ce64e426091ed113a0 +size 2907576 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/N_ForgeSparks.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/N_ForgeSparks.uasset new file mode 100644 index 0000000..763deaa --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/N_ForgeSparks.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c74b6d3f7ba8f555dcbc1a62f0d20ecd4703f7244365ba1a148780944adfb17c +size 1552601 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/N_LootChestOpen.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/N_LootChestOpen.uasset new file mode 100644 index 0000000..0b1d60b --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/N_LootChestOpen.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:720d7503ecfd5a24a582fed117850b828540911813744ea45121fd3d9214dcef +size 2180385 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/N_MagicalGlowRays.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/N_MagicalGlowRays.uasset new file mode 100644 index 0000000..9b06cd1 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/N_MagicalGlowRays.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f9fbba8c98c1d072760adb736607b045b1327fb1c3c8a9d7ae007fd61c2ff41 +size 576070 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/N_MagicalSeal.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/N_MagicalSeal.uasset new file mode 100644 index 0000000..7e5cbce --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/N_MagicalSeal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6ef22e92b6045a3caced0aa8473c71b347dde5f0d7cbcef06cafa360fac14e8 +size 816733 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/N_Plant.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/N_Plant.uasset new file mode 100644 index 0000000..8e4efb3 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/N_Plant.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b62bfcd18f96037560d871af9d4faeda5f053f735e74966193184914081bb94a +size 2045007 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/N_Potion.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/N_Potion.uasset new file mode 100644 index 0000000..d8f6dbf --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/N_Potion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1183361bb0d8ae6ea5cfaab039af17fee504aeebde5a21b357645f8be2228b88 +size 1200631 diff --git a/Content/RPGEnvironmentVFX/VFX/Niagara/N_Shield.uasset b/Content/RPGEnvironmentVFX/VFX/Niagara/N_Shield.uasset new file mode 100644 index 0000000..241b9e5 --- /dev/null +++ b/Content/RPGEnvironmentVFX/VFX/Niagara/N_Shield.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7c6cb4d6d6b070d62e7628f5d85c710016bd1fc343d4245d5d17d21e3aefdef +size 612297 diff --git a/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset b/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset index c299638..aab06eb 100644 --- a/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset +++ b/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:45e6eca3e0e2af0b2fdb9780db8ebfc24f63eac6c5d8721e82814722c81e63ed -size 54802 +oid sha256:cf40b80dddf703f87312b5abe659ca5ca7f2b676a599b80c93271f4e1d136e6a +size 55533 diff --git a/Content/__ExternalActors__/Maps/L_World/0/16/ZDGLEKLXWB1YMPHYW310VY.uasset b/Content/__ExternalActors__/Maps/L_World/0/16/ZDGLEKLXWB1YMPHYW310VY.uasset deleted file mode 100644 index b3e0909..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/16/ZDGLEKLXWB1YMPHYW310VY.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:95f96b728293159dc08c429ae7aa7da9fa83398489572b2f7b0db505044cf03f -size 616330 diff --git a/Content/__ExternalActors__/Maps/L_World/0/1N/8Z2LR0IGV1Z3V2QVV7KQDR.uasset b/Content/__ExternalActors__/Maps/L_World/0/1N/8Z2LR0IGV1Z3V2QVV7KQDR.uasset new file mode 100644 index 0000000..e92888d --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/1N/8Z2LR0IGV1Z3V2QVV7KQDR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:caf284c0ffd3184c2e6583235b55d14212538910e6c1421ac76361b745212f0d +size 376929 diff --git a/Content/__ExternalActors__/Maps/L_World/0/1V/HCCK0548PNP8DAME66H5BS.uasset b/Content/__ExternalActors__/Maps/L_World/0/1V/HCCK0548PNP8DAME66H5BS.uasset new file mode 100644 index 0000000..4bc9b6e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/1V/HCCK0548PNP8DAME66H5BS.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81e5a110cdf8aa9e1e6a4c4c598cceee6db0860a481cc8436f9d9e43a6f8f8f3 +size 283713 diff --git a/Content/__ExternalActors__/Maps/L_World/0/1X/BXCSIWS66XQNKMAJBV3S1Q.uasset b/Content/__ExternalActors__/Maps/L_World/0/1X/BXCSIWS66XQNKMAJBV3S1Q.uasset deleted file mode 100644 index fc6a9a9..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/1X/BXCSIWS66XQNKMAJBV3S1Q.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:52ba2109cdb6ac95260642e040a95d2a6423a12b559bbe9cc6afce8bb3c5543c -size 393212 diff --git a/Content/__ExternalActors__/Maps/L_World/0/34/A4BBQ3C266EUWYDGAMLXI9.uasset b/Content/__ExternalActors__/Maps/L_World/0/34/A4BBQ3C266EUWYDGAMLXI9.uasset new file mode 100644 index 0000000..2ad0aa2 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/34/A4BBQ3C266EUWYDGAMLXI9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7e56ee44963e29b972c646b18b5b1fa961903eb6a3497e42470d88d632ee8a7 +size 502633 diff --git a/Content/__ExternalActors__/Maps/L_World/0/6I/OEXKS2FM08Z1PLFCUTI95X.uasset b/Content/__ExternalActors__/Maps/L_World/0/6I/OEXKS2FM08Z1PLFCUTI95X.uasset new file mode 100644 index 0000000..37103bc --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/6I/OEXKS2FM08Z1PLFCUTI95X.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0299e50b7126f678a2ee5f1386cda5736dcc5b9436becebc2628f9933c76b6aa +size 570501 diff --git a/Content/__ExternalActors__/Maps/L_World/0/8J/RAVIB3K2ORZF8M16AXFTU9.uasset b/Content/__ExternalActors__/Maps/L_World/0/8J/RAVIB3K2ORZF8M16AXFTU9.uasset new file mode 100644 index 0000000..abb5ce7 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/8J/RAVIB3K2ORZF8M16AXFTU9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9d293e2bad2f88566d8ef4adcda79c9f21c9a652c59af9dd86be1262aea6a66 +size 596319 diff --git a/Content/__ExternalActors__/Maps/L_World/0/B0/3VFHJ91BLKVKG2ANLPN6N8.uasset b/Content/__ExternalActors__/Maps/L_World/0/B0/3VFHJ91BLKVKG2ANLPN6N8.uasset deleted file mode 100644 index 1aa2df8..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/B0/3VFHJ91BLKVKG2ANLPN6N8.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f929b2d71d61adf6fab914a807e3705f691a0d217f3bfc45691fb98ed7a4a497 -size 3386 diff --git a/Content/__ExternalActors__/Maps/L_World/0/D2/XYTZ1GABV2CFMWWQBSL1DP.uasset b/Content/__ExternalActors__/Maps/L_World/0/D2/XYTZ1GABV2CFMWWQBSL1DP.uasset deleted file mode 100644 index 52f73e0..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/D2/XYTZ1GABV2CFMWWQBSL1DP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e973c67244251192609a033977eefe9053a0ac69a9f45430c7e037cfe30ffbae -size 620513 diff --git a/Content/__ExternalActors__/Maps/L_World/0/E5/HL8JB0XIQ8V9V6YYEP5X95.uasset b/Content/__ExternalActors__/Maps/L_World/0/E5/HL8JB0XIQ8V9V6YYEP5X95.uasset new file mode 100644 index 0000000..74562b3 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/E5/HL8JB0XIQ8V9V6YYEP5X95.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:401fa96953d92887bfc3ed0172131c1f4ef9fb2c08a35230e4f17d39bc1c1e6f +size 432242 diff --git a/Content/__ExternalActors__/Maps/L_World/0/HG/89Q5UB6F9WHHEF6V0R4T2L.uasset b/Content/__ExternalActors__/Maps/L_World/0/HG/89Q5UB6F9WHHEF6V0R4T2L.uasset deleted file mode 100644 index a6fa6cf..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/HG/89Q5UB6F9WHHEF6V0R4T2L.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f145dbb3798edb07a82797521b72da47404ac25cc7fe3d9808f76a8a36f846c2 -size 386842 diff --git a/Content/__ExternalActors__/Maps/L_World/0/HG/KG0KG2B1H1B8R7JXAOF08V.uasset b/Content/__ExternalActors__/Maps/L_World/0/HG/KG0KG2B1H1B8R7JXAOF08V.uasset deleted file mode 100644 index d0f56ea..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/HG/KG0KG2B1H1B8R7JXAOF08V.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:901685bab387caa22be27a468f2c21f151062b686fac2304b46655ce1a7b0c57 -size 624652 diff --git a/Content/__ExternalActors__/Maps/L_World/0/IR/MD3DKV16CVTLLZP3D5ERS6.uasset b/Content/__ExternalActors__/Maps/L_World/0/IR/MD3DKV16CVTLLZP3D5ERS6.uasset deleted file mode 100644 index 47ba7d0..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/IR/MD3DKV16CVTLLZP3D5ERS6.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4f4cefbcf98efdc0b745a35c2c1d7b3bf91a0c2b285a3d6352d1610876805fda -size 383213 diff --git a/Content/__ExternalActors__/Maps/L_World/0/J9/67YTTQW016TNVXZVE2UA9W.uasset b/Content/__ExternalActors__/Maps/L_World/0/J9/67YTTQW016TNVXZVE2UA9W.uasset deleted file mode 100644 index 7ac1805..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/J9/67YTTQW016TNVXZVE2UA9W.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b1a7e50a2eca62cbb4a5da8a9a9813519c98a3168dd4016cb0b8e819ccc4d915 -size 391310 diff --git a/Content/__ExternalActors__/Maps/L_World/0/JH/KKGFPPJO1RF3CLF0WCNZF3.uasset b/Content/__ExternalActors__/Maps/L_World/0/JH/KKGFPPJO1RF3CLF0WCNZF3.uasset new file mode 100644 index 0000000..a9d376f --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/JH/KKGFPPJO1RF3CLF0WCNZF3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24d3980c5202b093a16e8b2fd1cb41bbd0f56f222447f7b65a566b31b39ac848 +size 677932 diff --git a/Content/__ExternalActors__/Maps/L_World/0/KJ/HHTRWYX7ISPHVT1YG1AGJK.uasset b/Content/__ExternalActors__/Maps/L_World/0/KJ/HHTRWYX7ISPHVT1YG1AGJK.uasset deleted file mode 100644 index e0aa0a5..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/KJ/HHTRWYX7ISPHVT1YG1AGJK.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:acf791f5122d8269bc484ef4f879580463874f2adad3e8729e9b806664a529bf -size 626365 diff --git a/Content/__ExternalActors__/Maps/L_World/0/LR/SH2LMFJ25QLL6L7Y4SJLVN.uasset b/Content/__ExternalActors__/Maps/L_World/0/LR/SH2LMFJ25QLL6L7Y4SJLVN.uasset deleted file mode 100644 index 79848eb..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/LR/SH2LMFJ25QLL6L7Y4SJLVN.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:12c02492103670e39f0afb7c8def9c73ff058c60e7e57822c182e21b2a9cb3ee -size 605915 diff --git a/Content/__ExternalActors__/Maps/L_World/0/NA/F3ANIWSF8B7MMY8ESH7Z4J.uasset b/Content/__ExternalActors__/Maps/L_World/0/NA/F3ANIWSF8B7MMY8ESH7Z4J.uasset deleted file mode 100644 index 9230049..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/NA/F3ANIWSF8B7MMY8ESH7Z4J.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9f40660ee78d807ca29f7f58a2b41bebaa64c19f43dd3d00e2bdb2d29e03d78d -size 507771 diff --git a/Content/__ExternalActors__/Maps/L_World/0/NQ/2GY7CSYZAN73W9XTSTEUZL.uasset b/Content/__ExternalActors__/Maps/L_World/0/NQ/2GY7CSYZAN73W9XTSTEUZL.uasset deleted file mode 100644 index 323fa30..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/NQ/2GY7CSYZAN73W9XTSTEUZL.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aecda7c1873fc520ba19f90b35cf42444a9713dfa71b99873d801128d1746717 -size 593610 diff --git a/Content/__ExternalActors__/Maps/L_World/0/NU/31HUX5ESOWHP9ITMZSN4NK.uasset b/Content/__ExternalActors__/Maps/L_World/0/NU/31HUX5ESOWHP9ITMZSN4NK.uasset new file mode 100644 index 0000000..6cbcd79 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/NU/31HUX5ESOWHP9ITMZSN4NK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:650640385e112941701d58a62620288d7820bcdbef5dc8b3d3b1703b5f10b5e3 +size 376113 diff --git a/Content/__ExternalActors__/Maps/L_World/0/OC/L9W7G7TURCTJ3SCS9UWVGX.uasset b/Content/__ExternalActors__/Maps/L_World/0/OC/L9W7G7TURCTJ3SCS9UWVGX.uasset new file mode 100644 index 0000000..e048deb --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/OC/L9W7G7TURCTJ3SCS9UWVGX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf9f28de8c7a990a28ea948bbbf9dc97eaf54b179545f54a7a5661ac9471bcae +size 582529 diff --git a/Content/__ExternalActors__/Maps/L_World/0/PK/EUNWD9BZDLXMLF4KTFN58Y.uasset b/Content/__ExternalActors__/Maps/L_World/0/PK/EUNWD9BZDLXMLF4KTFN58Y.uasset new file mode 100644 index 0000000..165cec9 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/PK/EUNWD9BZDLXMLF4KTFN58Y.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:798e46ef25ce18cecbb5525dfed4fbb68a947b2b14016adf073e8523f9bf642f +size 575147 diff --git a/Content/__ExternalActors__/Maps/L_World/0/PV/32JMUQ32M7ST1SVTKMA0IX.uasset b/Content/__ExternalActors__/Maps/L_World/0/PV/32JMUQ32M7ST1SVTKMA0IX.uasset deleted file mode 100644 index ac70535..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/PV/32JMUQ32M7ST1SVTKMA0IX.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ad7b0ca37b39053a32f458f8ad955229f72a3f16655dbd80883eb21a32c5d961 -size 570545 diff --git a/Content/__ExternalActors__/Maps/L_World/0/QQ/KBBB9FRP8VI8X6AFCVR22R.uasset b/Content/__ExternalActors__/Maps/L_World/0/QQ/KBBB9FRP8VI8X6AFCVR22R.uasset deleted file mode 100644 index 75148e4..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/QQ/KBBB9FRP8VI8X6AFCVR22R.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5b1cdbb6a2eba2e5af72606552f19e4116e4e03ccd91e548022b1654e99d5f7d -size 607902 diff --git a/Content/__ExternalActors__/Maps/L_World/0/RR/9KH7BNCSG76UG1GQIR5AZP.uasset b/Content/__ExternalActors__/Maps/L_World/0/RR/9KH7BNCSG76UG1GQIR5AZP.uasset deleted file mode 100644 index e73340f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/RR/9KH7BNCSG76UG1GQIR5AZP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f15e9bdb0770e93f2c69ec7c3c1ed3e5157d9224aa11ee48c6eddfce279c7389 -size 606434 diff --git a/Content/__ExternalActors__/Maps/L_World/0/T5/59P32JJT0EM2FQGJTK9E5U.uasset b/Content/__ExternalActors__/Maps/L_World/0/T5/59P32JJT0EM2FQGJTK9E5U.uasset new file mode 100644 index 0000000..c889fcf --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/T5/59P32JJT0EM2FQGJTK9E5U.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac5ee092d1003747ab335716833fdaf8a182e00a9dd9f27018317a25c84407eb +size 708039 diff --git a/Content/__ExternalActors__/Maps/L_World/0/VI/QGEI048L4R5KE7UTFB45SB.uasset b/Content/__ExternalActors__/Maps/L_World/0/VI/QGEI048L4R5KE7UTFB45SB.uasset deleted file mode 100644 index 41e4dde..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/VI/QGEI048L4R5KE7UTFB45SB.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5e05669c9b1337051016504f79f76661cc5f323e23d52320c4ae858f48f1b2f2 -size 450913 diff --git a/Content/__ExternalActors__/Maps/L_World/0/W2/TF3NOY2IL637K2KLNZYE07.uasset b/Content/__ExternalActors__/Maps/L_World/0/W2/TF3NOY2IL637K2KLNZYE07.uasset deleted file mode 100644 index a0fcfd5..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/W2/TF3NOY2IL637K2KLNZYE07.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:81e2370c2512a2be74570169c68b8ce81423cc54df861a751917edbaa136fdc0 -size 591844 diff --git a/Content/__ExternalActors__/Maps/L_World/0/WS/T5JPFOXC3WGCT9OJGY98GK.uasset b/Content/__ExternalActors__/Maps/L_World/0/WS/T5JPFOXC3WGCT9OJGY98GK.uasset new file mode 100644 index 0000000..25c7c60 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/WS/T5JPFOXC3WGCT9OJGY98GK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c9e2caa8b51146f1745f1e2dca8d5a73ead6b5110a94122aae099e8737c3ed5 +size 518143 diff --git a/Content/__ExternalActors__/Maps/L_World/0/X3/DYCSLID54N77C5318U9CJS.uasset b/Content/__ExternalActors__/Maps/L_World/0/X3/DYCSLID54N77C5318U9CJS.uasset new file mode 100644 index 0000000..81562d2 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/X3/DYCSLID54N77C5318U9CJS.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e47b6972cd4c86518cdb78e1c41fe0e3a13e1dea150531e1045e393e16abb34 +size 702486 diff --git a/Content/__ExternalActors__/Maps/L_World/0/Z2/Y9VG9ZPA22T6F37NR4TKK8.uasset b/Content/__ExternalActors__/Maps/L_World/0/Z2/Y9VG9ZPA22T6F37NR4TKK8.uasset new file mode 100644 index 0000000..e604068 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/0/Z2/Y9VG9ZPA22T6F37NR4TKK8.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71afee28b677088539305e89706891e21c4fc84e0178424b3c8e88665101a3e4 +size 393820 diff --git a/Content/__ExternalActors__/Maps/L_World/0/Z3/D5D53GZBVF7COY9HEW3B2N.uasset b/Content/__ExternalActors__/Maps/L_World/0/Z3/D5D53GZBVF7COY9HEW3B2N.uasset deleted file mode 100644 index c39707b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/Z3/D5D53GZBVF7COY9HEW3B2N.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ed866fdde6bfc3685c40b5da7d08e03f1718db4918eaaba2cbc7da67ffa62e48 -size 364553 diff --git a/Content/__ExternalActors__/Maps/L_World/0/ZE/FL7599306SSZF7MMSUP88F.uasset b/Content/__ExternalActors__/Maps/L_World/0/ZE/FL7599306SSZF7MMSUP88F.uasset deleted file mode 100644 index 39acd85..0000000 --- a/Content/__ExternalActors__/Maps/L_World/0/ZE/FL7599306SSZF7MMSUP88F.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:49279dfe516a1ea1d0b5ef0f49f2b56a43802f3a2e31bfab244b114ebaf9457b -size 366167 diff --git a/Content/__ExternalActors__/Maps/L_World/1/00/T1IE8GT94Y7KEJ3HSG41OB.uasset b/Content/__ExternalActors__/Maps/L_World/1/00/T1IE8GT94Y7KEJ3HSG41OB.uasset deleted file mode 100644 index cf7b6be..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/00/T1IE8GT94Y7KEJ3HSG41OB.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6783d18f910a6a9f87aecd24595fb16519bfceb01ce32a30ab0dcd9aebef6f4d -size 611922 diff --git a/Content/__ExternalActors__/Maps/L_World/1/08/ZZEGCKOCHHA3ZN6192ZCQ4.uasset b/Content/__ExternalActors__/Maps/L_World/1/08/ZZEGCKOCHHA3ZN6192ZCQ4.uasset deleted file mode 100644 index 857d8da..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/08/ZZEGCKOCHHA3ZN6192ZCQ4.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:baff1357c87fa5e0e6dabb85cf539b5cdbced13a94b7ff69a8eb12d233e2aa69 -size 367593 diff --git a/Content/__ExternalActors__/Maps/L_World/1/3C/VG3GK2KGHTFAYJOWVI1DL1.uasset b/Content/__ExternalActors__/Maps/L_World/1/3C/VG3GK2KGHTFAYJOWVI1DL1.uasset new file mode 100644 index 0000000..9d77e6f --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/3C/VG3GK2KGHTFAYJOWVI1DL1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2532ed7bedb21df7a08dc4d7215fd457c49141c914fa1659198a347708784442 +size 4603 diff --git a/Content/__ExternalActors__/Maps/L_World/1/4I/KNSOF94H3TPKCVO6KXL19I.uasset b/Content/__ExternalActors__/Maps/L_World/1/4I/KNSOF94H3TPKCVO6KXL19I.uasset new file mode 100644 index 0000000..09081dd --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/4I/KNSOF94H3TPKCVO6KXL19I.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a492f43a0af092866c0fd2f87730eb9f5bdb397e1a15253fd089b430ff4b2d55 +size 739962 diff --git a/Content/__ExternalActors__/Maps/L_World/1/51/AIQNXYISC8B7NW5PHF87CC.uasset b/Content/__ExternalActors__/Maps/L_World/1/51/AIQNXYISC8B7NW5PHF87CC.uasset deleted file mode 100644 index d8d71aa..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/51/AIQNXYISC8B7NW5PHF87CC.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:91e7c044d6d79d2e7c1771df77ca01f1193bf239f719286ac82be9b4883e450f -size 366703 diff --git a/Content/__ExternalActors__/Maps/L_World/1/54/QZSUMV4ERDPV6E95WDEXVY.uasset b/Content/__ExternalActors__/Maps/L_World/1/54/QZSUMV4ERDPV6E95WDEXVY.uasset deleted file mode 100644 index ee9ee2b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/54/QZSUMV4ERDPV6E95WDEXVY.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c1e5bc0236fc86862ec89f84260119bbcfcac8f1d6362329451ce8d7a6db0675 -size 447546 diff --git a/Content/__ExternalActors__/Maps/L_World/1/5V/R277EJ083LW0TUNYURO5LO.uasset b/Content/__ExternalActors__/Maps/L_World/1/5V/R277EJ083LW0TUNYURO5LO.uasset deleted file mode 100644 index 3df95e1..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/5V/R277EJ083LW0TUNYURO5LO.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:299f17fe45aa58e7a8aac2d69463561805a9c69a9f76e81a2d9605f86997282f -size 393791 diff --git a/Content/__ExternalActors__/Maps/L_World/1/7L/H9MNKRUG78L2OG8C5X71MK.uasset b/Content/__ExternalActors__/Maps/L_World/1/7L/H9MNKRUG78L2OG8C5X71MK.uasset deleted file mode 100644 index ce6ce84..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/7L/H9MNKRUG78L2OG8C5X71MK.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d40d27a188826aad605a314a2487b81b411fb683fed39b2022ba737ba95bbb12 -size 366125 diff --git a/Content/__ExternalActors__/Maps/L_World/1/9F/J421427ZI0E9NV2Y6AIDJO.uasset b/Content/__ExternalActors__/Maps/L_World/1/9F/J421427ZI0E9NV2Y6AIDJO.uasset new file mode 100644 index 0000000..0726bd6 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/9F/J421427ZI0E9NV2Y6AIDJO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34b9e9e05f6a1fa4cf94e78af56f6cccc138d853f0ab727d41f8312384a0b0ae +size 521144 diff --git a/Content/__ExternalActors__/Maps/L_World/1/AQ/L5L2TZ30AQ63KMU4O4ZTDD.uasset b/Content/__ExternalActors__/Maps/L_World/1/AQ/L5L2TZ30AQ63KMU4O4ZTDD.uasset deleted file mode 100644 index 1f3f4e6..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/AQ/L5L2TZ30AQ63KMU4O4ZTDD.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:10f45d3200c5c2260be27717b82606e495de499f3819f2336981fa1bc87c1491 -size 597099 diff --git a/Content/__ExternalActors__/Maps/L_World/1/BZ/AJVTBKKMPEF1BQSPD4JG5N.uasset b/Content/__ExternalActors__/Maps/L_World/1/BZ/AJVTBKKMPEF1BQSPD4JG5N.uasset deleted file mode 100644 index 424ffed..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/BZ/AJVTBKKMPEF1BQSPD4JG5N.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a10628fd93eb42e93bc4c60517880f802b8f0cc971a89f9d49679cdcffeb225 -size 564078 diff --git a/Content/__ExternalActors__/Maps/L_World/1/CG/LZWE6J239FDBB9B8FDYEN1.uasset b/Content/__ExternalActors__/Maps/L_World/1/CG/LZWE6J239FDBB9B8FDYEN1.uasset new file mode 100644 index 0000000..b209fa6 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/CG/LZWE6J239FDBB9B8FDYEN1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2b5ee21dc0edf06ae7adc33ebb028af51a7411cd1ffff2c071f921c68175e12 +size 625372 diff --git a/Content/__ExternalActors__/Maps/L_World/1/CI/OO1044661EYA8D956LQZ4N.uasset b/Content/__ExternalActors__/Maps/L_World/1/CI/OO1044661EYA8D956LQZ4N.uasset deleted file mode 100644 index b3e103b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/CI/OO1044661EYA8D956LQZ4N.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:96719f8da03f4906b94dada5c9adaaae043e450b6753e28597793809d7b09656 -size 595571 diff --git a/Content/__ExternalActors__/Maps/L_World/1/D0/1FGO2ZUYZY26GN1622MGEE.uasset b/Content/__ExternalActors__/Maps/L_World/1/D0/1FGO2ZUYZY26GN1622MGEE.uasset deleted file mode 100644 index 3af65e9..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/D0/1FGO2ZUYZY26GN1622MGEE.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cf94d08d867da6a493183671723140cf47102987ae9fc9cabddbf8cf502609f5 -size 418782 diff --git a/Content/__ExternalActors__/Maps/L_World/1/GN/S7LESFG6UEBDFJVHL8W26Z.uasset b/Content/__ExternalActors__/Maps/L_World/1/GN/S7LESFG6UEBDFJVHL8W26Z.uasset deleted file mode 100644 index fb17d25..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/GN/S7LESFG6UEBDFJVHL8W26Z.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:942458faebc208ef80dfcfd348ec07a077ba34273de7f70a9c7c3594da75462a -size 484960 diff --git a/Content/__ExternalActors__/Maps/L_World/1/GS/KG8FONQN16UVOVOT7XMSSH.uasset b/Content/__ExternalActors__/Maps/L_World/1/GS/KG8FONQN16UVOVOT7XMSSH.uasset new file mode 100644 index 0000000..dd99a65 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/GS/KG8FONQN16UVOVOT7XMSSH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05de8fc534b03e0208a49c91eb6db30131186a1dfe43f0a528a40320cd722b5b +size 738507 diff --git a/Content/__ExternalActors__/Maps/L_World/1/GS/ZZUCGL2TRPEUEBX3RV6CVU.uasset b/Content/__ExternalActors__/Maps/L_World/1/GS/ZZUCGL2TRPEUEBX3RV6CVU.uasset deleted file mode 100644 index 613ed6d..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/GS/ZZUCGL2TRPEUEBX3RV6CVU.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:00b53ed00e36568b01fe802c91190dd8f252c50c59b2b00f75ea2440aa231617 -size 625766 diff --git a/Content/__ExternalActors__/Maps/L_World/1/HR/1NJ85VHE8YP8DK2E7VIORK.uasset b/Content/__ExternalActors__/Maps/L_World/1/HR/1NJ85VHE8YP8DK2E7VIORK.uasset deleted file mode 100644 index bd54483..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/HR/1NJ85VHE8YP8DK2E7VIORK.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:647fe942504e213c7e98d4d43fdbae66b3570621d8bc004cc652527f49de5886 -size 589856 diff --git a/Content/__ExternalActors__/Maps/L_World/1/HX/8ACQMJRZ9WQIQU8K8I0HN1.uasset b/Content/__ExternalActors__/Maps/L_World/1/HX/8ACQMJRZ9WQIQU8K8I0HN1.uasset deleted file mode 100644 index 80391b2..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/HX/8ACQMJRZ9WQIQU8K8I0HN1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5ff1bd3b785a4c237dbb308dfa064bf80edd1617d02a523ee74ca1fa8763c75c -size 615436 diff --git a/Content/__ExternalActors__/Maps/L_World/1/I3/M8QKEDMTKXJJZYG4CBSNZM.uasset b/Content/__ExternalActors__/Maps/L_World/1/I3/M8QKEDMTKXJJZYG4CBSNZM.uasset new file mode 100644 index 0000000..89c8aa6 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/I3/M8QKEDMTKXJJZYG4CBSNZM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f969b0910fc9565977a70b2827c105f098ee66f985ce96987de2130e3135f43 +size 601552 diff --git a/Content/__ExternalActors__/Maps/L_World/1/IB/BGNYURXN47HRRZJZHCNUDE.uasset b/Content/__ExternalActors__/Maps/L_World/1/IB/BGNYURXN47HRRZJZHCNUDE.uasset new file mode 100644 index 0000000..b0ff815 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/IB/BGNYURXN47HRRZJZHCNUDE.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e306909eecf8a7cee0d5db0e49bc817f56a4e55339c3fa9418aee615a059274 +size 515080 diff --git a/Content/__ExternalActors__/Maps/L_World/1/JC/4WYXV2TEPFRXYA947C5Z0L.uasset b/Content/__ExternalActors__/Maps/L_World/1/JC/4WYXV2TEPFRXYA947C5Z0L.uasset new file mode 100644 index 0000000..004975d --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/JC/4WYXV2TEPFRXYA947C5Z0L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8207320e3d82390a98d13a70b0e342a75e03cb28c920a84abd1be23a1b5b90c +size 541836 diff --git a/Content/__ExternalActors__/Maps/L_World/1/JY/Y5WGEMZ55SZ9M9OKM7OSER.uasset b/Content/__ExternalActors__/Maps/L_World/1/JY/Y5WGEMZ55SZ9M9OKM7OSER.uasset new file mode 100644 index 0000000..ffbd44b --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/JY/Y5WGEMZ55SZ9M9OKM7OSER.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68a7dcafd052171c98eb90d6a01cfa10e46f0880a8c1d8281365199969696232 +size 691895 diff --git a/Content/__ExternalActors__/Maps/L_World/1/KC/LM8BFFB9WMPZORY3P0UA9E.uasset b/Content/__ExternalActors__/Maps/L_World/1/KC/LM8BFFB9WMPZORY3P0UA9E.uasset new file mode 100644 index 0000000..8045ecc --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/KC/LM8BFFB9WMPZORY3P0UA9E.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:387e32675f1a34f813d97675a412f7435ab91b5dd085178dd3819ba976b75c1e +size 276309 diff --git a/Content/__ExternalActors__/Maps/L_World/1/LD/HFOXVKENLXK6WJP1TRS70W.uasset b/Content/__ExternalActors__/Maps/L_World/1/LD/HFOXVKENLXK6WJP1TRS70W.uasset deleted file mode 100644 index cd8bb21..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/LD/HFOXVKENLXK6WJP1TRS70W.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9701f342d735a858d3566380ef454f2459eca50aff3447aa4d13fea5c4126ef5 -size 454336 diff --git a/Content/__ExternalActors__/Maps/L_World/1/M0/9GCOZJXZHOZLVMT2W74CH9.uasset b/Content/__ExternalActors__/Maps/L_World/1/M0/9GCOZJXZHOZLVMT2W74CH9.uasset deleted file mode 100644 index 295def1..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/M0/9GCOZJXZHOZLVMT2W74CH9.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c81a559a2b8612828fbdacc45e34d00a572a4f7157eeb6b09fe06143151197f4 -size 372754 diff --git a/Content/__ExternalActors__/Maps/L_World/1/MI/GLHLY8MW0JSB9820KQ1UGI.uasset b/Content/__ExternalActors__/Maps/L_World/1/MI/GLHLY8MW0JSB9820KQ1UGI.uasset new file mode 100644 index 0000000..a3f5ed6 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/MI/GLHLY8MW0JSB9820KQ1UGI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6964567526f6376a2d0b0da3728c75408072d954092999f991c975676f05c5b0 +size 497386 diff --git a/Content/__ExternalActors__/Maps/L_World/1/N8/UUAKGLFZU90X0DGWV862I2.uasset b/Content/__ExternalActors__/Maps/L_World/1/N8/UUAKGLFZU90X0DGWV862I2.uasset deleted file mode 100644 index 09323a2..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/N8/UUAKGLFZU90X0DGWV862I2.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:63c437a8edd442eb17d186814392086787d8f180244542100f04ecfc1a060daa -size 442982 diff --git a/Content/__ExternalActors__/Maps/L_World/1/NY/9PZSHNPL3FPFLY3JWC0WJM.uasset b/Content/__ExternalActors__/Maps/L_World/1/NY/9PZSHNPL3FPFLY3JWC0WJM.uasset new file mode 100644 index 0000000..6b60f8f --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/NY/9PZSHNPL3FPFLY3JWC0WJM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32cedf938e3cf5a24bcf5a9219156bb9537d3d1388abab9ec5bb9c21cf3fbdf3 +size 515492 diff --git a/Content/__ExternalActors__/Maps/L_World/1/RO/KDPH881R8E85TC9TRV9869.uasset b/Content/__ExternalActors__/Maps/L_World/1/RO/KDPH881R8E85TC9TRV9869.uasset deleted file mode 100644 index 6f6269f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/RO/KDPH881R8E85TC9TRV9869.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a5854f59ca6c82cadcc39f8870ccbf9ee1b28374012c299533ed1ed24626dbb9 -size 565441 diff --git a/Content/__ExternalActors__/Maps/L_World/1/S1/N4SS7Z3B3L791YQV242PRK.uasset b/Content/__ExternalActors__/Maps/L_World/1/S1/N4SS7Z3B3L791YQV242PRK.uasset deleted file mode 100644 index 2412a74..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/S1/N4SS7Z3B3L791YQV242PRK.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fdb9da7713e7eefccecef17603b72316c50e245329876bdc6fa7569e24acc153 -size 424511 diff --git a/Content/__ExternalActors__/Maps/L_World/1/S3/NCJTK5A88823E478FSE300.uasset b/Content/__ExternalActors__/Maps/L_World/1/S3/NCJTK5A88823E478FSE300.uasset deleted file mode 100644 index 6925997..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/S3/NCJTK5A88823E478FSE300.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:152d1af98e70d67ee8e016dba87ec7ac93b6412d957d2e8d49772ee46ebe695d -size 585624 diff --git a/Content/__ExternalActors__/Maps/L_World/1/SG/Y1Z0O137QDQNBWRXCJK8KF.uasset b/Content/__ExternalActors__/Maps/L_World/1/SG/Y1Z0O137QDQNBWRXCJK8KF.uasset new file mode 100644 index 0000000..01ec673 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/SG/Y1Z0O137QDQNBWRXCJK8KF.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f15f2809007b3948b99d67795bd6baf10702c9e84db90989dbac8cacc66a49e +size 283373 diff --git a/Content/__ExternalActors__/Maps/L_World/1/SL/P2V16EIZY0OEBA7MBK5X5X.uasset b/Content/__ExternalActors__/Maps/L_World/1/SL/P2V16EIZY0OEBA7MBK5X5X.uasset new file mode 100644 index 0000000..13b1c63 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/SL/P2V16EIZY0OEBA7MBK5X5X.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:891851d8b39a04ff2d3fb526a7f6aa155345311e45b925b5650a112d9c045fd5 +size 519458 diff --git a/Content/__ExternalActors__/Maps/L_World/1/UA/19YIISLX0L6FXK9V3NLTQ1.uasset b/Content/__ExternalActors__/Maps/L_World/1/UA/19YIISLX0L6FXK9V3NLTQ1.uasset deleted file mode 100644 index 6ec415f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/UA/19YIISLX0L6FXK9V3NLTQ1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9facb4369b83366772330e3b84c12b390d8fdc2e84955aa0cb7410b916842037 -size 586666 diff --git a/Content/__ExternalActors__/Maps/L_World/1/UV/7S18Z8DQJDD6EQXYLHF0UX.uasset b/Content/__ExternalActors__/Maps/L_World/1/UV/7S18Z8DQJDD6EQXYLHF0UX.uasset deleted file mode 100644 index 4c8720e..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/UV/7S18Z8DQJDD6EQXYLHF0UX.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:98be90ee56a4f915737aa2141555a7955b4202ea7f2886ce4206df2545238308 -size 492733 diff --git a/Content/__ExternalActors__/Maps/L_World/1/UW/04ZWAJTO4HARCP3BBYE859.uasset b/Content/__ExternalActors__/Maps/L_World/1/UW/04ZWAJTO4HARCP3BBYE859.uasset new file mode 100644 index 0000000..db4f437 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/UW/04ZWAJTO4HARCP3BBYE859.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acd5d0747eb774ac5a776a38e4c9de03aa21ef6078d6e9bb2a5986373107f7bd +size 658353 diff --git a/Content/__ExternalActors__/Maps/L_World/1/V9/VKF1JFF7F0FLLIQ2GMCH72.uasset b/Content/__ExternalActors__/Maps/L_World/1/V9/VKF1JFF7F0FLLIQ2GMCH72.uasset new file mode 100644 index 0000000..23884be --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/1/V9/VKF1JFF7F0FLLIQ2GMCH72.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54a702f2ae126a9045212c98e68e10785cd063dac14a32017a63d0ebfc9154f6 +size 284460 diff --git a/Content/__ExternalActors__/Maps/L_World/1/YM/FAOEZLFGKP1BR2Z3598OT3.uasset b/Content/__ExternalActors__/Maps/L_World/1/YM/FAOEZLFGKP1BR2Z3598OT3.uasset index 57c50d7..ce55f16 100644 --- a/Content/__ExternalActors__/Maps/L_World/1/YM/FAOEZLFGKP1BR2Z3598OT3.uasset +++ b/Content/__ExternalActors__/Maps/L_World/1/YM/FAOEZLFGKP1BR2Z3598OT3.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de80baa430ec0f20e8bbf7a17ab22acdd565ab76b4d3a829a0ea85e2bf62cdd9 -size 2332 +oid sha256:dd2e01232efe35ee4a2758cf871e0f082a8a6e85969593ed3c9e4a41f0dca160 +size 2185 diff --git a/Content/__ExternalActors__/Maps/L_World/1/ZD/FYJUVYDJSPJC9PG8ONA3GU.uasset b/Content/__ExternalActors__/Maps/L_World/1/ZD/FYJUVYDJSPJC9PG8ONA3GU.uasset deleted file mode 100644 index c8c1503..0000000 --- a/Content/__ExternalActors__/Maps/L_World/1/ZD/FYJUVYDJSPJC9PG8ONA3GU.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ffa3a2a6d9efa5edd440b70e919f566808d9878c842762873d5cd80cd0af29f7 -size 617717 diff --git a/Content/__ExternalActors__/Maps/L_World/2/0E/48Z5YP5KF767BKXZZ3AEN2.uasset b/Content/__ExternalActors__/Maps/L_World/2/0E/48Z5YP5KF767BKXZZ3AEN2.uasset new file mode 100644 index 0000000..22ddc40 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/0E/48Z5YP5KF767BKXZZ3AEN2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bb0f76820a8ee144f7f977342c9bf3806086a550edb9ac05954936cae12e6a6 +size 730248 diff --git a/Content/__ExternalActors__/Maps/L_World/2/1J/G6R9KXL2A5EW5YKY63235X.uasset b/Content/__ExternalActors__/Maps/L_World/2/1J/G6R9KXL2A5EW5YKY63235X.uasset new file mode 100644 index 0000000..68107ed --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/1J/G6R9KXL2A5EW5YKY63235X.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42e0113ed6840ffaf04fd313de7bcb9ad99d3ddb819a2dd8220120fe318b0d24 +size 753266 diff --git a/Content/__ExternalActors__/Maps/L_World/2/1U/389TX4J83TR5P219YSJCT5.uasset b/Content/__ExternalActors__/Maps/L_World/2/1U/389TX4J83TR5P219YSJCT5.uasset new file mode 100644 index 0000000..eb7ca28 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/1U/389TX4J83TR5P219YSJCT5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c3e9917b60e71a0071a4d6713f896096096666a3eb9f948119115adc42ae32e +size 704448 diff --git a/Content/__ExternalActors__/Maps/L_World/2/30/E4NGLAMKGOVVSSF0G1EX2C.uasset b/Content/__ExternalActors__/Maps/L_World/2/30/E4NGLAMKGOVVSSF0G1EX2C.uasset deleted file mode 100644 index 1fdafcc..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/30/E4NGLAMKGOVVSSF0G1EX2C.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:11ed1fab7f07e4949b5e55fbf3732b5ced87f2dca7c42a778cfa6adb6c25761a -size 368423 diff --git a/Content/__ExternalActors__/Maps/L_World/2/59/25PS2IBDKTD52UCRIIMNWS.uasset b/Content/__ExternalActors__/Maps/L_World/2/59/25PS2IBDKTD52UCRIIMNWS.uasset deleted file mode 100644 index 6fc33fa..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/59/25PS2IBDKTD52UCRIIMNWS.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e9072e88530f4461b31f2b866ff8dbc9ae82fa4eb2ab26ae4a0746408127b9d5 -size 390659 diff --git a/Content/__ExternalActors__/Maps/L_World/2/71/69GM63Z46STIVG1813EOFI.uasset b/Content/__ExternalActors__/Maps/L_World/2/71/69GM63Z46STIVG1813EOFI.uasset deleted file mode 100644 index c3bee58..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/71/69GM63Z46STIVG1813EOFI.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a33ccb28b60efd5e5b7b431a013a9aea6e96f3f3ec0e816fd21795f530c92b9e -size 2461 diff --git a/Content/__ExternalActors__/Maps/L_World/2/76/XKOUV2Y5MY7AGO0PQY17QX.uasset b/Content/__ExternalActors__/Maps/L_World/2/76/XKOUV2Y5MY7AGO0PQY17QX.uasset deleted file mode 100644 index 3e6d880..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/76/XKOUV2Y5MY7AGO0PQY17QX.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e843ab5a540ee3864739a9c38897b197e7c185487b71d32b694fc8611f833cb6 -size 641559 diff --git a/Content/__ExternalActors__/Maps/L_World/2/9N/99L7OEGPRB9O6V6DGH4ZTO.uasset b/Content/__ExternalActors__/Maps/L_World/2/9N/99L7OEGPRB9O6V6DGH4ZTO.uasset deleted file mode 100644 index 478247f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/9N/99L7OEGPRB9O6V6DGH4ZTO.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6a4c0ef4ce80bd08f151198038f3ab59e75a4d31e92f390ff164c8649324898f -size 366268 diff --git a/Content/__ExternalActors__/Maps/L_World/2/CA/D5HC6M3UHXBZ8KBOW4O7D5.uasset b/Content/__ExternalActors__/Maps/L_World/2/CA/D5HC6M3UHXBZ8KBOW4O7D5.uasset new file mode 100644 index 0000000..bfe7bff --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/CA/D5HC6M3UHXBZ8KBOW4O7D5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:541cde8359430417abd74dfceeddf94e0cfd931bdf345cd3af60fa7e291f2495 +size 678323 diff --git a/Content/__ExternalActors__/Maps/L_World/2/CN/W6WR0N139DICC7J23VMUCN.uasset b/Content/__ExternalActors__/Maps/L_World/2/CN/W6WR0N139DICC7J23VMUCN.uasset new file mode 100644 index 0000000..0edcc4c --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/CN/W6WR0N139DICC7J23VMUCN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2cc76d964ace434c419d8d0f9eff21f9eb199fd3e3b0c487c33f18bb9bade7c +size 286432 diff --git a/Content/__ExternalActors__/Maps/L_World/2/CY/34LJ3PPLCNIAHUG8MG9QJS.uasset b/Content/__ExternalActors__/Maps/L_World/2/CY/34LJ3PPLCNIAHUG8MG9QJS.uasset new file mode 100644 index 0000000..09072b1 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/CY/34LJ3PPLCNIAHUG8MG9QJS.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3e2cb2a3fe4955088b94651732b6ab05528f3243eeed4f7e70d95822c4b2702 +size 640305 diff --git a/Content/__ExternalActors__/Maps/L_World/2/D0/546VY73UMJLZP5B73SJJKG.uasset b/Content/__ExternalActors__/Maps/L_World/2/D0/546VY73UMJLZP5B73SJJKG.uasset new file mode 100644 index 0000000..3537524 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/D0/546VY73UMJLZP5B73SJJKG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2bec365803a5018094763e8cc53f06264927d094738b9436ca8056c5acac599 +size 511030 diff --git a/Content/__ExternalActors__/Maps/L_World/2/DQ/KXPHAMBS9PM3J1I74JTV3K.uasset b/Content/__ExternalActors__/Maps/L_World/2/DQ/KXPHAMBS9PM3J1I74JTV3K.uasset new file mode 100644 index 0000000..57e646e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/DQ/KXPHAMBS9PM3J1I74JTV3K.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5093e6437de6b842f3a25037fe23b99eb14c3855984b28dfe723134cdde0008a +size 787067 diff --git a/Content/__ExternalActors__/Maps/L_World/2/EY/B0K8XSY7O9QVWVQR4VJNKT.uasset b/Content/__ExternalActors__/Maps/L_World/2/EY/B0K8XSY7O9QVWVQR4VJNKT.uasset deleted file mode 100644 index b990637..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/EY/B0K8XSY7O9QVWVQR4VJNKT.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0555dec37a17967a1c2e6b4aa7b30384c648d5fd35ce9dd5d4b4ea5282d8e2ee -size 614911 diff --git a/Content/__ExternalActors__/Maps/L_World/2/FW/9S1XDEKUN0YUC64DD5HA82.uasset b/Content/__ExternalActors__/Maps/L_World/2/FW/9S1XDEKUN0YUC64DD5HA82.uasset new file mode 100644 index 0000000..16c3dab --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/FW/9S1XDEKUN0YUC64DD5HA82.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a065ba1f2ff8eb554acfba9129733f5872a33d66a41c369bc00ee9723dda37f +size 737848 diff --git a/Content/__ExternalActors__/Maps/L_World/2/FX/JPQHKG9C6D8FAYUCV7THNI.uasset b/Content/__ExternalActors__/Maps/L_World/2/FX/JPQHKG9C6D8FAYUCV7THNI.uasset deleted file mode 100644 index 39dca87..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/FX/JPQHKG9C6D8FAYUCV7THNI.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:865291593f2a4d072f90eaa91a990e6faf9380b0f844f0f261e15b701845cf44 -size 423981 diff --git a/Content/__ExternalActors__/Maps/L_World/2/HM/V4O14V4NXIE1HUIA29O7M3.uasset b/Content/__ExternalActors__/Maps/L_World/2/HM/V4O14V4NXIE1HUIA29O7M3.uasset new file mode 100644 index 0000000..983d6cf --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/HM/V4O14V4NXIE1HUIA29O7M3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aca62a61ff9a6366bcb09ce55fe9b31d974c5e45fb3113bb781baf6fb2bddf76 +size 287635 diff --git a/Content/__ExternalActors__/Maps/L_World/2/JD/MN3QQWBWJFBVRWCZ4O1AJV.uasset b/Content/__ExternalActors__/Maps/L_World/2/JD/MN3QQWBWJFBVRWCZ4O1AJV.uasset deleted file mode 100644 index b23a0b6..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/JD/MN3QQWBWJFBVRWCZ4O1AJV.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d200143ccbe132f6c8bd2981bbe5d080a6ea2d2551ba95f42a8ef7aee59461af -size 596077 diff --git a/Content/__ExternalActors__/Maps/L_World/2/JU/F10EHDUUF6BOZOGDTTMGE7.uasset b/Content/__ExternalActors__/Maps/L_World/2/JU/F10EHDUUF6BOZOGDTTMGE7.uasset deleted file mode 100644 index f1fa89f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/JU/F10EHDUUF6BOZOGDTTMGE7.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:238b6b1c82c670a4d29b0a513fe45c1cd6f254a1f21d68041d6b2f7a83670c4c -size 581981 diff --git a/Content/__ExternalActors__/Maps/L_World/2/KR/JBUH3P2OEF1ROWYO2SK8KF.uasset b/Content/__ExternalActors__/Maps/L_World/2/KR/JBUH3P2OEF1ROWYO2SK8KF.uasset new file mode 100644 index 0000000..97307a7 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/KR/JBUH3P2OEF1ROWYO2SK8KF.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12615593dd765f96aec88b159ca5bd5407dfcdaee669e2c77a298e21f3ddd2a0 +size 279488 diff --git a/Content/__ExternalActors__/Maps/L_World/2/M6/P1MLP3CBZLM3J22QOQ8HYD.uasset b/Content/__ExternalActors__/Maps/L_World/2/M6/P1MLP3CBZLM3J22QOQ8HYD.uasset deleted file mode 100644 index b31f68e..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/M6/P1MLP3CBZLM3J22QOQ8HYD.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4e133281a873b6c727acfa440ae1958c060269b76c80f69c50333d7a446d197e -size 375086 diff --git a/Content/__ExternalActors__/Maps/L_World/2/P9/8FOT4UPMJUIYESEFHOJIXB.uasset b/Content/__ExternalActors__/Maps/L_World/2/P9/8FOT4UPMJUIYESEFHOJIXB.uasset deleted file mode 100644 index 4c640f7..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/P9/8FOT4UPMJUIYESEFHOJIXB.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9ae7f71c4d517423e78b70186c63aa3e7f93a3c7b6cfc76ca9bebd7987fd2720 -size 562327 diff --git a/Content/__ExternalActors__/Maps/L_World/2/RC/GW9VXWRQZE51QSC5BFWKRX.uasset b/Content/__ExternalActors__/Maps/L_World/2/RC/GW9VXWRQZE51QSC5BFWKRX.uasset new file mode 100644 index 0000000..b784ddd --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/RC/GW9VXWRQZE51QSC5BFWKRX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf3cadb0efb841164e60af2ca22661e9fe82e25eba2e67de9088e6a8b4fcd326 +size 675383 diff --git a/Content/__ExternalActors__/Maps/L_World/2/RY/4LZPKRASO1H09H062X1WSF.uasset b/Content/__ExternalActors__/Maps/L_World/2/RY/4LZPKRASO1H09H062X1WSF.uasset deleted file mode 100644 index fa0b9a2..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/RY/4LZPKRASO1H09H062X1WSF.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:54492a3bd67b1b46003482d0420637ccefc574a57c10dd4d6ad96292bfffc834 -size 568786 diff --git a/Content/__ExternalActors__/Maps/L_World/2/SY/LHUH4NG4TAJTNWIF4IJOZK.uasset b/Content/__ExternalActors__/Maps/L_World/2/SY/LHUH4NG4TAJTNWIF4IJOZK.uasset new file mode 100644 index 0000000..cf264d6 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/SY/LHUH4NG4TAJTNWIF4IJOZK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eee4b1071421b20ac9a71e56b8b495d27121e5cd6b49542a5f67f303820d90cb +size 303565 diff --git a/Content/__ExternalActors__/Maps/L_World/2/TQ/WIZY02CHMIRZOKE9K9GZGV.uasset b/Content/__ExternalActors__/Maps/L_World/2/TQ/WIZY02CHMIRZOKE9K9GZGV.uasset new file mode 100644 index 0000000..b16615b --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/TQ/WIZY02CHMIRZOKE9K9GZGV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4754280acccb69286e9bb4591779109a1bc05f3e15882f287b0b2276bd27df65 +size 532902 diff --git a/Content/__ExternalActors__/Maps/L_World/2/UF/U4NYWJZ6KTB9V9HHB12IN1.uasset b/Content/__ExternalActors__/Maps/L_World/2/UF/U4NYWJZ6KTB9V9HHB12IN1.uasset deleted file mode 100644 index 2beb8a2..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/UF/U4NYWJZ6KTB9V9HHB12IN1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d7af5fe7154ccf80b5ecc07579fe1b59bc17d0f5aba5d3f8e950b55fa5956a0c -size 566114 diff --git a/Content/__ExternalActors__/Maps/L_World/2/UP/4V4R2HLI7DLPMUBJ4X7KN4.uasset b/Content/__ExternalActors__/Maps/L_World/2/UP/4V4R2HLI7DLPMUBJ4X7KN4.uasset new file mode 100644 index 0000000..ff49996 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/UP/4V4R2HLI7DLPMUBJ4X7KN4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c2cd3d464fee3d840b0d44be52bb9f27840b72f0b5449771128a6c16dfdba3c +size 708987 diff --git a/Content/__ExternalActors__/Maps/L_World/2/UP/G9N6016974PDCWP2C2LVAB.uasset b/Content/__ExternalActors__/Maps/L_World/2/UP/G9N6016974PDCWP2C2LVAB.uasset deleted file mode 100644 index 1774146..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/UP/G9N6016974PDCWP2C2LVAB.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:28b154674eb0f14c5db1ba2e29b3631b8e9f471c82cc1134a87d301201efc56d -size 390001 diff --git a/Content/__ExternalActors__/Maps/L_World/2/V7/4F6WHSF547HZIA38R7NBAJ.uasset b/Content/__ExternalActors__/Maps/L_World/2/V7/4F6WHSF547HZIA38R7NBAJ.uasset new file mode 100644 index 0000000..306e4d4 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/V7/4F6WHSF547HZIA38R7NBAJ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:725efecd7699a8a714d0ef885c46c6b334b074b062f694fe166e5ee8f35fd18e +size 677770 diff --git a/Content/__ExternalActors__/Maps/L_World/2/V9/QVGO9R2JYAZCK30Z4TBJ4K.uasset b/Content/__ExternalActors__/Maps/L_World/2/V9/QVGO9R2JYAZCK30Z4TBJ4K.uasset deleted file mode 100644 index f4cd809..0000000 --- a/Content/__ExternalActors__/Maps/L_World/2/V9/QVGO9R2JYAZCK30Z4TBJ4K.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:76db29aaa386515bdf0149ba5980220de79d784c4d8e9538aef70c5c6045083b -size 385205 diff --git a/Content/__ExternalActors__/Maps/L_World/2/VB/LLJK8QW3LGXD9APNV1VTWX.uasset b/Content/__ExternalActors__/Maps/L_World/2/VB/LLJK8QW3LGXD9APNV1VTWX.uasset new file mode 100644 index 0000000..01ddaa4 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/VB/LLJK8QW3LGXD9APNV1VTWX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a65b175a0b431ac45d83d5c86744f5ab14816a9f4a07415c45f694ecba475bdd +size 535779 diff --git a/Content/__ExternalActors__/Maps/L_World/2/X0/TQINDYWSJB9X2X7DA8CQ8R.uasset b/Content/__ExternalActors__/Maps/L_World/2/X0/TQINDYWSJB9X2X7DA8CQ8R.uasset new file mode 100644 index 0000000..5a83528 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/X0/TQINDYWSJB9X2X7DA8CQ8R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:656a7d50c985ad5de6a4810cd3a66157760a641e5c1f97178ccadd07bfa65d7e +size 498462 diff --git a/Content/__ExternalActors__/Maps/L_World/2/YA/G5NOCR0OG35K5L3PVBZTIO.uasset b/Content/__ExternalActors__/Maps/L_World/2/YA/G5NOCR0OG35K5L3PVBZTIO.uasset new file mode 100644 index 0000000..c8e1755 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/YA/G5NOCR0OG35K5L3PVBZTIO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eae1eaa33ee007ee55e0bef8a102c2f8cd3d9eb68deff8d183b74ff12fede07e +size 616152 diff --git a/Content/__ExternalActors__/Maps/L_World/2/YT/NSZLML3OTCCKSLZMKR2LC5.uasset b/Content/__ExternalActors__/Maps/L_World/2/YT/NSZLML3OTCCKSLZMKR2LC5.uasset new file mode 100644 index 0000000..df4b79e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/YT/NSZLML3OTCCKSLZMKR2LC5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:653327f0f195e2033bb49d0c52a82b4091db8b1de3c1bac9539a7cdfa2a777f8 +size 614190 diff --git a/Content/__ExternalActors__/Maps/L_World/2/ZA/RGVD85AC8GM3VA31D54T61.uasset b/Content/__ExternalActors__/Maps/L_World/2/ZA/RGVD85AC8GM3VA31D54T61.uasset new file mode 100644 index 0000000..b168e71 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/ZA/RGVD85AC8GM3VA31D54T61.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e4d2ed7172e0fea5bdb61a12114d2b2d9586e43e93debf5b70ec8d8a1ecb7cc +size 676305 diff --git a/Content/__ExternalActors__/Maps/L_World/2/ZV/DW86CVFH8L0HB71ZL5PHUO.uasset b/Content/__ExternalActors__/Maps/L_World/2/ZV/DW86CVFH8L0HB71ZL5PHUO.uasset new file mode 100644 index 0000000..14697b3 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/2/ZV/DW86CVFH8L0HB71ZL5PHUO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d13a96fd7baffd477e5a253bd8fc99891c9715dc30dc049f6da59c1520aaa09 +size 590862 diff --git a/Content/__ExternalActors__/Maps/L_World/3/0K/BVS6D27SKY85QGYP1IOK9S.uasset b/Content/__ExternalActors__/Maps/L_World/3/0K/BVS6D27SKY85QGYP1IOK9S.uasset new file mode 100644 index 0000000..e5d7c3a --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/0K/BVS6D27SKY85QGYP1IOK9S.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51848d577f276492c9df223c4f88e1bc20531a42ac1d456862b0b652c60e2ba9 +size 381620 diff --git a/Content/__ExternalActors__/Maps/L_World/3/38/ADSM5NVOQZOSF5537J0491.uasset b/Content/__ExternalActors__/Maps/L_World/3/38/ADSM5NVOQZOSF5537J0491.uasset deleted file mode 100644 index 32cbfdf..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/38/ADSM5NVOQZOSF5537J0491.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:814309be4517992229592f5804850520b8f6c944b1d1d37378154de9cbe76e9c -size 365749 diff --git a/Content/__ExternalActors__/Maps/L_World/3/7C/BPE8ICZAZCQVUICID4C5DG.uasset b/Content/__ExternalActors__/Maps/L_World/3/7C/BPE8ICZAZCQVUICID4C5DG.uasset deleted file mode 100644 index 49cd262..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/7C/BPE8ICZAZCQVUICID4C5DG.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:06188597f9ae75cbd195675befb865b13169ea1be7faf6d3264b3c8595bef5ca -size 367094 diff --git a/Content/__ExternalActors__/Maps/L_World/3/7N/UJFXME5HUOJGQ5SHIP3AVF.uasset b/Content/__ExternalActors__/Maps/L_World/3/7N/UJFXME5HUOJGQ5SHIP3AVF.uasset deleted file mode 100644 index 996ec47..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/7N/UJFXME5HUOJGQ5SHIP3AVF.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0b8b5d4c0fd02d0845b68ea0b43c305ff36b79cd464810434bd16c72a9073bce -size 546689 diff --git a/Content/__ExternalActors__/Maps/L_World/3/7W/ZZW2NTM1JYQFZG0KLDKF1R.uasset b/Content/__ExternalActors__/Maps/L_World/3/7W/ZZW2NTM1JYQFZG0KLDKF1R.uasset new file mode 100644 index 0000000..afe7733 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/7W/ZZW2NTM1JYQFZG0KLDKF1R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0992e3891def063d75809d6040ebbfba4a5a8b5a4064adb292fe1a0b1503379e +size 464844 diff --git a/Content/__ExternalActors__/Maps/L_World/3/8F/ZKVF3C8JF1TO0TBL0ICF47.uasset b/Content/__ExternalActors__/Maps/L_World/3/8F/ZKVF3C8JF1TO0TBL0ICF47.uasset new file mode 100644 index 0000000..4ac4e0d --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/8F/ZKVF3C8JF1TO0TBL0ICF47.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31cb5208a19b0f117c25c2a255d1e34f96d4296c7b99c2121dbd6e9526034e7b +size 554162 diff --git a/Content/__ExternalActors__/Maps/L_World/3/90/OTPI4SD04TVTAITU60SF5T.uasset b/Content/__ExternalActors__/Maps/L_World/3/90/OTPI4SD04TVTAITU60SF5T.uasset deleted file mode 100644 index 2d80788..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/90/OTPI4SD04TVTAITU60SF5T.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ba292881a82c2717c52dccd20eb5d4c60d6180fb9bbb7d69b60dd26ae011832 -size 629169 diff --git a/Content/__ExternalActors__/Maps/L_World/3/9P/2D1XN1U8FZX6YMWBEB3UIR.uasset b/Content/__ExternalActors__/Maps/L_World/3/9P/2D1XN1U8FZX6YMWBEB3UIR.uasset deleted file mode 100644 index 32508b2..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/9P/2D1XN1U8FZX6YMWBEB3UIR.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d546132131633a7fbad2239c483dddee383f99ece135e4549c4c5516d421529 -size 383939 diff --git a/Content/__ExternalActors__/Maps/L_World/3/AO/S22G236IOLWICHLOCBI38S.uasset b/Content/__ExternalActors__/Maps/L_World/3/AO/S22G236IOLWICHLOCBI38S.uasset new file mode 100644 index 0000000..ca7d73e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/AO/S22G236IOLWICHLOCBI38S.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa4e5e0f93f221fc5a744e40ef145101bbd673a5fcd4cae2cb698dc07ded4c8c +size 735375 diff --git a/Content/__ExternalActors__/Maps/L_World/3/CD/53IH54IJSKYXGY2FB2K4XI.uasset b/Content/__ExternalActors__/Maps/L_World/3/CD/53IH54IJSKYXGY2FB2K4XI.uasset new file mode 100644 index 0000000..b389031 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/CD/53IH54IJSKYXGY2FB2K4XI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a6d3003c8c06d1ea655e35442aa1e2dbf7ff8209c04f6985d4f9c6d6586ccc5 +size 3610 diff --git a/Content/__ExternalActors__/Maps/L_World/3/F8/YCVJFM89X50CTHC0YTTYUR.uasset b/Content/__ExternalActors__/Maps/L_World/3/F8/YCVJFM89X50CTHC0YTTYUR.uasset new file mode 100644 index 0000000..203d0e0 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/F8/YCVJFM89X50CTHC0YTTYUR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e0396a264685be4b278ab01c1f322bef387e244835194f9d49010deb1b98552 +size 391915 diff --git a/Content/__ExternalActors__/Maps/L_World/3/H1/KAR4LH61VYA83TM2WN9D6H.uasset b/Content/__ExternalActors__/Maps/L_World/3/H1/KAR4LH61VYA83TM2WN9D6H.uasset deleted file mode 100644 index 1d7d419..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/H1/KAR4LH61VYA83TM2WN9D6H.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1ba2bb884ffc210726dca2bcf5680c9bfc5e79128d9d80b680163d7e223e5951 -size 506824 diff --git a/Content/__ExternalActors__/Maps/L_World/3/H2/2JV6ZN2U68S8I81GA3VBYX.uasset b/Content/__ExternalActors__/Maps/L_World/3/H2/2JV6ZN2U68S8I81GA3VBYX.uasset new file mode 100644 index 0000000..9f83b68 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/H2/2JV6ZN2U68S8I81GA3VBYX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd11965dd93f4995b0df23911964f565243e0e83c2d4ccb01136b83fef90bdd5 +size 714906 diff --git a/Content/__ExternalActors__/Maps/L_World/3/KE/1BGS0AT5VY8PHPV8SRDX5O.uasset b/Content/__ExternalActors__/Maps/L_World/3/KE/1BGS0AT5VY8PHPV8SRDX5O.uasset new file mode 100644 index 0000000..a829748 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/KE/1BGS0AT5VY8PHPV8SRDX5O.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b3966f36e1692303c1f2412ae99d67870adb8cfc0ce70aa43755914c227b337 +size 282701 diff --git a/Content/__ExternalActors__/Maps/L_World/3/KY/UFKQ214ZNZ5KE6NUICNW8H.uasset b/Content/__ExternalActors__/Maps/L_World/3/KY/UFKQ214ZNZ5KE6NUICNW8H.uasset new file mode 100644 index 0000000..211e268 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/KY/UFKQ214ZNZ5KE6NUICNW8H.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d9c3a34ba5759fdd76f8bf94d9fcaeab44799450cec229a360fa6cfbcf587cc +size 320068 diff --git a/Content/__ExternalActors__/Maps/L_World/3/N6/TSGFR0KLLXYVK0GBAIVM09.uasset b/Content/__ExternalActors__/Maps/L_World/3/N6/TSGFR0KLLXYVK0GBAIVM09.uasset new file mode 100644 index 0000000..346c978 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/N6/TSGFR0KLLXYVK0GBAIVM09.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f60480cc4db3575165310376e8dee2ab7431df7516cc22d3d9904d900aa2515d +size 299569 diff --git a/Content/__ExternalActors__/Maps/L_World/3/NG/N3L4CQL27ERPS4FHNEOJLI.uasset b/Content/__ExternalActors__/Maps/L_World/3/NG/N3L4CQL27ERPS4FHNEOJLI.uasset deleted file mode 100644 index 621eac4..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/NG/N3L4CQL27ERPS4FHNEOJLI.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b7fd7c0a46e051baf8829bd7b94f1cf0e4ccf8d332632f0fa5892383a0f9cb5a -size 573546 diff --git a/Content/__ExternalActors__/Maps/L_World/3/P7/M9EM4PWZ9XH43G61IW0VPR.uasset b/Content/__ExternalActors__/Maps/L_World/3/P7/M9EM4PWZ9XH43G61IW0VPR.uasset new file mode 100644 index 0000000..5f29f78 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/P7/M9EM4PWZ9XH43G61IW0VPR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8787d8635cd0e13f4c49fa941900154dfa52ffc2d513fda74f9122757b16d063 +size 388263 diff --git a/Content/__ExternalActors__/Maps/L_World/3/PG/22A06SCPP5R6PE1LDG8M77.uasset b/Content/__ExternalActors__/Maps/L_World/3/PG/22A06SCPP5R6PE1LDG8M77.uasset new file mode 100644 index 0000000..e1743c9 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/PG/22A06SCPP5R6PE1LDG8M77.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dc4deff73178dd373b7d83a90de5236709041c3925ab4141eb2dd5c15b3cc6a +size 668833 diff --git a/Content/__ExternalActors__/Maps/L_World/3/PO/6YWXXHAA1AL09OWD73XDOU.uasset b/Content/__ExternalActors__/Maps/L_World/3/PO/6YWXXHAA1AL09OWD73XDOU.uasset deleted file mode 100644 index f828757..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/PO/6YWXXHAA1AL09OWD73XDOU.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b4bb52fa435c7504f2b3d19663f8ea7067a0b4c821d3f3a292ebc99b8590652e -size 536391 diff --git a/Content/__ExternalActors__/Maps/L_World/3/QO/MVRHTX2PMH3F4J7FR4ZEJQ.uasset b/Content/__ExternalActors__/Maps/L_World/3/QO/MVRHTX2PMH3F4J7FR4ZEJQ.uasset new file mode 100644 index 0000000..159eb7d --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/QO/MVRHTX2PMH3F4J7FR4ZEJQ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be3bee579754268906baf2f8d5e8fc7fb2efc15091a7113f324772b7dc2aa1bb +size 688698 diff --git a/Content/__ExternalActors__/Maps/L_World/3/UW/Q7UOKMA03GELTE27A2LQ2B.uasset b/Content/__ExternalActors__/Maps/L_World/3/UW/Q7UOKMA03GELTE27A2LQ2B.uasset deleted file mode 100644 index 2ce9a5d..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/UW/Q7UOKMA03GELTE27A2LQ2B.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1907b766919480a3db4bf1f5119c13995e66a7ab0f22b32aacf3a464c6c49c5c -size 631732 diff --git a/Content/__ExternalActors__/Maps/L_World/3/W9/V3C1SK3L07778O680SHE6F.uasset b/Content/__ExternalActors__/Maps/L_World/3/W9/V3C1SK3L07778O680SHE6F.uasset deleted file mode 100644 index 03a682d..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/W9/V3C1SK3L07778O680SHE6F.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0ddedd25cc58b3683edac3d97a64bab2c1c22dfbccf05db60fc653659b73cb6 -size 515446 diff --git a/Content/__ExternalActors__/Maps/L_World/3/XK/CEJYF62CONN8T0IZ79468S.uasset b/Content/__ExternalActors__/Maps/L_World/3/XK/CEJYF62CONN8T0IZ79468S.uasset new file mode 100644 index 0000000..25a3af7 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/3/XK/CEJYF62CONN8T0IZ79468S.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:943d3f0780430adee01ae5a9c1f2036d2a786933c3dcfd126f865f5846ac4191 +size 485343 diff --git a/Content/__ExternalActors__/Maps/L_World/3/XV/J13ZK29HF771J6VOJYU9UV.uasset b/Content/__ExternalActors__/Maps/L_World/3/XV/J13ZK29HF771J6VOJYU9UV.uasset deleted file mode 100644 index a9101e6..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/XV/J13ZK29HF771J6VOJYU9UV.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c7ca84db2d2f4ccc7d86bd451fc6a9225be21a5a1024963dec6c47a9d2852653 -size 364699 diff --git a/Content/__ExternalActors__/Maps/L_World/3/YW/YWRFU2G0OULV6IBC167HZS.uasset b/Content/__ExternalActors__/Maps/L_World/3/YW/YWRFU2G0OULV6IBC167HZS.uasset deleted file mode 100644 index a12337b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/3/YW/YWRFU2G0OULV6IBC167HZS.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:10965cb20848af611484f5852ac20ea86b34863b62bbe5e33ebd89d31b654040 -size 375807 diff --git a/Content/__ExternalActors__/Maps/L_World/4/2B/0LS25MQCLS7DFLQJ7TXUL5.uasset b/Content/__ExternalActors__/Maps/L_World/4/2B/0LS25MQCLS7DFLQJ7TXUL5.uasset new file mode 100644 index 0000000..d8e55fa --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/2B/0LS25MQCLS7DFLQJ7TXUL5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:72026a50b20b8ef2f3280059fa290792f03d9b4be52438f67e7941c4f1ed247e +size 542849 diff --git a/Content/__ExternalActors__/Maps/L_World/4/2C/YMCX66E1RBZX7RQSYG3JI0.uasset b/Content/__ExternalActors__/Maps/L_World/4/2C/YMCX66E1RBZX7RQSYG3JI0.uasset new file mode 100644 index 0000000..46166f2 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/2C/YMCX66E1RBZX7RQSYG3JI0.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc53eba5cfb1a6811d74154475b1af318eb18be9e2315086e7a2cc6b14bc7301 +size 465836 diff --git a/Content/__ExternalActors__/Maps/L_World/4/2D/NX7BIQXRHJTXOG6W4FJ0TI.uasset b/Content/__ExternalActors__/Maps/L_World/4/2D/NX7BIQXRHJTXOG6W4FJ0TI.uasset new file mode 100644 index 0000000..c910bf9 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/2D/NX7BIQXRHJTXOG6W4FJ0TI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80199b88a837dd84d798d2ce6a834b9699a5d145427ed1bccb87d787fa6ccfeb +size 279152 diff --git a/Content/__ExternalActors__/Maps/L_World/4/35/24UB1KXAT16CE7EEGTJFR9.uasset b/Content/__ExternalActors__/Maps/L_World/4/35/24UB1KXAT16CE7EEGTJFR9.uasset new file mode 100644 index 0000000..1ad6ef9 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/35/24UB1KXAT16CE7EEGTJFR9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57ae2cf467d616e7910c0c2eb158699e57b98fcbfff29f1ea21f00de15e2f77e +size 560454 diff --git a/Content/__ExternalActors__/Maps/L_World/4/3M/KAOYQUBV98FIE974TTK5QO.uasset b/Content/__ExternalActors__/Maps/L_World/4/3M/KAOYQUBV98FIE974TTK5QO.uasset deleted file mode 100644 index 97d86a0..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/3M/KAOYQUBV98FIE974TTK5QO.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4f7acf3e9d74e825248991fe21c64820cf2cc67f4b2719430405a786076f29b4 -size 592377 diff --git a/Content/__ExternalActors__/Maps/L_World/4/3W/YJOVC3PQP4BE8QA1QO276Y.uasset b/Content/__ExternalActors__/Maps/L_World/4/3W/YJOVC3PQP4BE8QA1QO276Y.uasset deleted file mode 100644 index efe3788..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/3W/YJOVC3PQP4BE8QA1QO276Y.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c0e72b31df7c38d00f5833ee7a4580567f35e58be6d851b56daac2bb93309374 -size 587098 diff --git a/Content/__ExternalActors__/Maps/L_World/4/7A/NQ3AH19SYK0W3W2VRLM2U4.uasset b/Content/__ExternalActors__/Maps/L_World/4/7A/NQ3AH19SYK0W3W2VRLM2U4.uasset deleted file mode 100644 index b4e8f0c..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/7A/NQ3AH19SYK0W3W2VRLM2U4.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:071906a4b11be1c90c8cec9e84e730c73b61cd62b2172995b99c7c9ec4a86d56 -size 577948 diff --git a/Content/__ExternalActors__/Maps/L_World/4/7G/XYO4SVYZDFH66QMDQRT5QI.uasset b/Content/__ExternalActors__/Maps/L_World/4/7G/XYO4SVYZDFH66QMDQRT5QI.uasset deleted file mode 100644 index e8d9d77..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/7G/XYO4SVYZDFH66QMDQRT5QI.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9f44bb6f5100b5e67c624af8491b51f13676b1e8e3082ef3a03465e151caa2a6 -size 3462 diff --git a/Content/__ExternalActors__/Maps/L_World/4/8F/QXCBAYQJ6CQC3VYBJCTWPG.uasset b/Content/__ExternalActors__/Maps/L_World/4/8F/QXCBAYQJ6CQC3VYBJCTWPG.uasset deleted file mode 100644 index 0b2940f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/8F/QXCBAYQJ6CQC3VYBJCTWPG.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:60ed9ae7c75c2b9c76807851535f31d9ba89a45a5bd5d65aacd7f10f7b1a8ed4 -size 526991 diff --git a/Content/__ExternalActors__/Maps/L_World/4/9B/DZ8FYC6MVOTI18W68H36ID.uasset b/Content/__ExternalActors__/Maps/L_World/4/9B/DZ8FYC6MVOTI18W68H36ID.uasset new file mode 100644 index 0000000..7967217 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/9B/DZ8FYC6MVOTI18W68H36ID.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d2850be8887a9b2c58a854858c6336d4f40c852a2f0ac4fb0e163cdf3628a0c +size 285788 diff --git a/Content/__ExternalActors__/Maps/L_World/4/B2/NKRR5JV6RL7ZWHE1DWT3L8.uasset b/Content/__ExternalActors__/Maps/L_World/4/B2/NKRR5JV6RL7ZWHE1DWT3L8.uasset new file mode 100644 index 0000000..8ab95cb --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/B2/NKRR5JV6RL7ZWHE1DWT3L8.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:533905e519d21a366d5089a05963d8e38a285067c9ba2fa76d81024f64b393cb +size 562998 diff --git a/Content/__ExternalActors__/Maps/L_World/4/BE/E73ACGEEHZ1OII6KR3W379.uasset b/Content/__ExternalActors__/Maps/L_World/4/BE/E73ACGEEHZ1OII6KR3W379.uasset new file mode 100644 index 0000000..fa42c19 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/BE/E73ACGEEHZ1OII6KR3W379.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a622591c355cd83bb8bb236074434223c34ad1498c76e14657412bf80d25ff9 +size 390183 diff --git a/Content/__ExternalActors__/Maps/L_World/4/CC/B0D3HD9AIJNFEJHLFWYPWP.uasset b/Content/__ExternalActors__/Maps/L_World/4/CC/B0D3HD9AIJNFEJHLFWYPWP.uasset new file mode 100644 index 0000000..d9abca8 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/CC/B0D3HD9AIJNFEJHLFWYPWP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b65e535e8c5289bc2fe9226f76636a4c733b770a565697e5ef495a22c7aeee04 +size 745785 diff --git a/Content/__ExternalActors__/Maps/L_World/4/EZ/R7KSSM3JKC4MM37FUHDEB2.uasset b/Content/__ExternalActors__/Maps/L_World/4/EZ/R7KSSM3JKC4MM37FUHDEB2.uasset new file mode 100644 index 0000000..858d11b --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/EZ/R7KSSM3JKC4MM37FUHDEB2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f25e9b21833e783584f491d5ba211914eea3728a9a0b274b3c1af3822346c6b +size 506806 diff --git a/Content/__ExternalActors__/Maps/L_World/4/FA/IRIIGA47XMJDC2DGLC5JWJ.uasset b/Content/__ExternalActors__/Maps/L_World/4/FA/IRIIGA47XMJDC2DGLC5JWJ.uasset new file mode 100644 index 0000000..7355f5c --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/FA/IRIIGA47XMJDC2DGLC5JWJ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:190fa585bbfdfd9e7c8d626e851c1c4ee1a01634006181589b5a5e8abba7e11d +size 284096 diff --git a/Content/__ExternalActors__/Maps/L_World/4/HS/ZT7WNWBUXBPLQTZQR138UL.uasset b/Content/__ExternalActors__/Maps/L_World/4/HS/ZT7WNWBUXBPLQTZQR138UL.uasset deleted file mode 100644 index 2c42137..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/HS/ZT7WNWBUXBPLQTZQR138UL.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13256452459fcd63faf2e3fa188c8b098a604ffee10746baa895e56a28bb47d5 -size 616829 diff --git a/Content/__ExternalActors__/Maps/L_World/4/JJ/GSTQINBFK0SS8LQR31HBSA.uasset b/Content/__ExternalActors__/Maps/L_World/4/JJ/GSTQINBFK0SS8LQR31HBSA.uasset new file mode 100644 index 0000000..e915dbb --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/JJ/GSTQINBFK0SS8LQR31HBSA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:230fb680de3c1679d58dae8201f7d0938946a8ebaf1ade9a536365fb17f90ce6 +size 655338 diff --git a/Content/__ExternalActors__/Maps/L_World/4/MC/FH0J0CZ4T7G7IN7UV4RNRN.uasset b/Content/__ExternalActors__/Maps/L_World/4/MC/FH0J0CZ4T7G7IN7UV4RNRN.uasset deleted file mode 100644 index a4bf60b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/MC/FH0J0CZ4T7G7IN7UV4RNRN.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:edd51fa85ab5742987f3a5c2da07c8bfecc13feb51d43bdc886b706f3f002611 -size 373091 diff --git a/Content/__ExternalActors__/Maps/L_World/4/ME/AF18NNK6081SA6DNXS6162.uasset b/Content/__ExternalActors__/Maps/L_World/4/ME/AF18NNK6081SA6DNXS6162.uasset new file mode 100644 index 0000000..2a0ce03 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/ME/AF18NNK6081SA6DNXS6162.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e131874d25343369b5bc12f1d29b57cb072e754b76e290ef0cf7e6bc3f5e0222 +size 537517 diff --git a/Content/__ExternalActors__/Maps/L_World/4/NA/XYPZMV1H4BB7LYW0NQZLFC.uasset b/Content/__ExternalActors__/Maps/L_World/4/NA/XYPZMV1H4BB7LYW0NQZLFC.uasset new file mode 100644 index 0000000..7e15fac --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/NA/XYPZMV1H4BB7LYW0NQZLFC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bf4652ebe5daf8d9b58e471301a7dea3587169ed4fc850b162883bd167fc58d +size 286721 diff --git a/Content/__ExternalActors__/Maps/L_World/4/OG/G1IPHV3722ORFFPCJS4V9Z.uasset b/Content/__ExternalActors__/Maps/L_World/4/OG/G1IPHV3722ORFFPCJS4V9Z.uasset new file mode 100644 index 0000000..f569ba2 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/OG/G1IPHV3722ORFFPCJS4V9Z.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fcd9f551da8b929b0cfa375ac6ff3eeb46869e247f3409e2837485bb8ef41ae6 +size 740602 diff --git a/Content/__ExternalActors__/Maps/L_World/4/QL/I4PTGRZSY3J6IABTUBK9RR.uasset b/Content/__ExternalActors__/Maps/L_World/4/QL/I4PTGRZSY3J6IABTUBK9RR.uasset new file mode 100644 index 0000000..6ef65a2 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/QL/I4PTGRZSY3J6IABTUBK9RR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8846318ec97c3ca275edb6fa26e9df2f09baf697c50f024275ff07d12ac7f44 +size 282582 diff --git a/Content/__ExternalActors__/Maps/L_World/4/RG/0AH2QUT38HYFI6971Z7C4M.uasset b/Content/__ExternalActors__/Maps/L_World/4/RG/0AH2QUT38HYFI6971Z7C4M.uasset new file mode 100644 index 0000000..2ba7bc5 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/RG/0AH2QUT38HYFI6971Z7C4M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:164ebbb68d15be74ccbf4fc849436a83b3402668e54e5f83b6b99ab0abe26a68 +size 701776 diff --git a/Content/__ExternalActors__/Maps/L_World/4/RJ/TPFH066L5TBYRPZ3BIRC4N.uasset b/Content/__ExternalActors__/Maps/L_World/4/RJ/TPFH066L5TBYRPZ3BIRC4N.uasset new file mode 100644 index 0000000..e4f47c8 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/RJ/TPFH066L5TBYRPZ3BIRC4N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77e83a9d0145836ec7a9bc1743eb6d31fd819461506e2b16c812a8db962641f3 +size 621299 diff --git a/Content/__ExternalActors__/Maps/L_World/4/T6/PWCA41HUEQR57FGBNBDQ4V.uasset b/Content/__ExternalActors__/Maps/L_World/4/T6/PWCA41HUEQR57FGBNBDQ4V.uasset deleted file mode 100644 index 5d77c80..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/T6/PWCA41HUEQR57FGBNBDQ4V.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ebfa5c963a50054e697f6043dafb5097ef3853a18cb09d3bdd675eaeffe0fd37 -size 572592 diff --git a/Content/__ExternalActors__/Maps/L_World/4/TA/O5T8VEGCEH5XVLX0SRG1IZ.uasset b/Content/__ExternalActors__/Maps/L_World/4/TA/O5T8VEGCEH5XVLX0SRG1IZ.uasset new file mode 100644 index 0000000..e381bba --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/TA/O5T8VEGCEH5XVLX0SRG1IZ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2535fa2913626ae8433d513c0ff33925304e15fd92a232962450721c1cab195e +size 715908 diff --git a/Content/__ExternalActors__/Maps/L_World/4/U4/0FZXV800O4YR4ZO4UCDXY2.uasset b/Content/__ExternalActors__/Maps/L_World/4/U4/0FZXV800O4YR4ZO4UCDXY2.uasset deleted file mode 100644 index 625d6c4..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/U4/0FZXV800O4YR4ZO4UCDXY2.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6ce9fe63bb27e282b87ac9a60ddd8af794aac89550c3456c432b7cddf8a18696 -size 541382 diff --git a/Content/__ExternalActors__/Maps/L_World/4/UA/7HHLYAO5WUWZHDFXVZNWGQ.uasset b/Content/__ExternalActors__/Maps/L_World/4/UA/7HHLYAO5WUWZHDFXVZNWGQ.uasset deleted file mode 100644 index 682d30c..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/UA/7HHLYAO5WUWZHDFXVZNWGQ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d77c27133398ddd71c08391f91e197587af1b793142ad115ce9ac41cc2f2f8da -size 369802 diff --git a/Content/__ExternalActors__/Maps/L_World/4/US/XMX2W6RO18T6U7B344FPL7.uasset b/Content/__ExternalActors__/Maps/L_World/4/US/XMX2W6RO18T6U7B344FPL7.uasset new file mode 100644 index 0000000..ffcbf79 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/US/XMX2W6RO18T6U7B344FPL7.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c6863eb1617d09b3c45c224fb1d7cce30504e0723fdf1994c8474583b6ca203 +size 699027 diff --git a/Content/__ExternalActors__/Maps/L_World/4/V6/B77WNT3F5D9F8ET0F6PQ28.uasset b/Content/__ExternalActors__/Maps/L_World/4/V6/B77WNT3F5D9F8ET0F6PQ28.uasset new file mode 100644 index 0000000..d5a6253 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/V6/B77WNT3F5D9F8ET0F6PQ28.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b41abd55d7b4147785d8e502d5acef935e018cb9c17a54f7b55376e63fe0c45a +size 724429 diff --git a/Content/__ExternalActors__/Maps/L_World/4/VG/A02D32M6ARAMNJ4W2B4CYX.uasset b/Content/__ExternalActors__/Maps/L_World/4/VG/A02D32M6ARAMNJ4W2B4CYX.uasset new file mode 100644 index 0000000..cdb1203 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/VG/A02D32M6ARAMNJ4W2B4CYX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f167ad245508fccb1d514d72d17458a12648226e7f279ef714a5564cc61b5b4b +size 660815 diff --git a/Content/__ExternalActors__/Maps/L_World/4/WS/O1JKP8PECQ83Y3J65G6DNA.uasset b/Content/__ExternalActors__/Maps/L_World/4/WS/O1JKP8PECQ83Y3J65G6DNA.uasset deleted file mode 100644 index 23fb50a..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/WS/O1JKP8PECQ83Y3J65G6DNA.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c81248299ed472a1ba1cfb86789676528b4ccf5561172dc167e1850339a50bd9 -size 602097 diff --git a/Content/__ExternalActors__/Maps/L_World/4/XS/5R06JMZW47HMC4E8XMC6UF.uasset b/Content/__ExternalActors__/Maps/L_World/4/XS/5R06JMZW47HMC4E8XMC6UF.uasset deleted file mode 100644 index 6e5981d..0000000 --- a/Content/__ExternalActors__/Maps/L_World/4/XS/5R06JMZW47HMC4E8XMC6UF.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a29986e3f73301a39c5d14daea9ed14f1ef8ab516c8800bade25b17f6b408ef3 -size 476306 diff --git a/Content/__ExternalActors__/Maps/L_World/0/O8/A6HKL409UI0D1GHWKHYZ5R.uasset b/Content/__ExternalActors__/Maps/L_World/4/Y4/TBUDPPMXHL12RG46DVY28W.uasset similarity index 81% rename from Content/__ExternalActors__/Maps/L_World/0/O8/A6HKL409UI0D1GHWKHYZ5R.uasset rename to Content/__ExternalActors__/Maps/L_World/4/Y4/TBUDPPMXHL12RG46DVY28W.uasset index 020ab96..adea68a 100644 --- a/Content/__ExternalActors__/Maps/L_World/0/O8/A6HKL409UI0D1GHWKHYZ5R.uasset +++ b/Content/__ExternalActors__/Maps/L_World/4/Y4/TBUDPPMXHL12RG46DVY28W.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f9889cff3008706d8373d3ecedc0fbc6c1269978ce1332b623490f97497e5116 -size 367919 +oid sha256:bd52fa9108bf83c0ff3a4c48633e0fd3aa3c60bf2c40b4a07bcd647e3d3168b2 +size 362934 diff --git a/Content/__ExternalActors__/Maps/L_World/4/Z9/YKTSWJFOPU1JSF6P3DRY0W.uasset b/Content/__ExternalActors__/Maps/L_World/4/Z9/YKTSWJFOPU1JSF6P3DRY0W.uasset new file mode 100644 index 0000000..d00fa4e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/4/Z9/YKTSWJFOPU1JSF6P3DRY0W.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:928c87a2a9c82e47ae88720186ad4fc077cfe74cbfd17a1b84dcd9c21aaa2f35 +size 586315 diff --git a/Content/__ExternalActors__/Maps/L_World/5/0W/UYY00IO7PAM2D706TIE0ND.uasset b/Content/__ExternalActors__/Maps/L_World/5/0W/UYY00IO7PAM2D706TIE0ND.uasset new file mode 100644 index 0000000..10ad71a --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/0W/UYY00IO7PAM2D706TIE0ND.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e24c647fb54186fb91f3b9bab1d854664916f6414e0d458890191ed3fe5d975 +size 588986 diff --git a/Content/__ExternalActors__/Maps/L_World/5/32/NDWDHUAOA6RKV1X5RSNNBC.uasset b/Content/__ExternalActors__/Maps/L_World/5/32/NDWDHUAOA6RKV1X5RSNNBC.uasset new file mode 100644 index 0000000..42d30c9 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/32/NDWDHUAOA6RKV1X5RSNNBC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3f60465e20ced330bcff205d36afeebfbb89d801eb57692b3befa4a32c49fde +size 550116 diff --git a/Content/__ExternalActors__/Maps/L_World/5/37/W7KP0QZ80GRYAE9OO8ONA8.uasset b/Content/__ExternalActors__/Maps/L_World/5/37/W7KP0QZ80GRYAE9OO8ONA8.uasset new file mode 100644 index 0000000..5cda758 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/37/W7KP0QZ80GRYAE9OO8ONA8.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1402797f2911dcbaec22309e7b21bc66929729423721703b5ecb170e2e8a8b55 +size 743838 diff --git a/Content/__ExternalActors__/Maps/L_World/5/3R/RGW6762XY1EUHHLH442VO9.uasset b/Content/__ExternalActors__/Maps/L_World/5/3R/RGW6762XY1EUHHLH442VO9.uasset new file mode 100644 index 0000000..9ef7840 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/3R/RGW6762XY1EUHHLH442VO9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c8c82818cce1259534d01bfd7d46b4cead9ba8d749ded1bdadd4afb712f2438 +size 687270 diff --git a/Content/__ExternalActors__/Maps/L_World/5/5I/FZIRL64X1VOM7GMTO906F2.uasset b/Content/__ExternalActors__/Maps/L_World/5/5I/FZIRL64X1VOM7GMTO906F2.uasset deleted file mode 100644 index f8d5ec3..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/5I/FZIRL64X1VOM7GMTO906F2.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b8b6f5036df24e3ca4ec735ac194c3178f15d83e0490ad4e9e47e2f96b1b01c5 -size 411902 diff --git a/Content/__ExternalActors__/Maps/L_World/5/94/B5DVTS35RHDOKIEUPBJVDA.uasset b/Content/__ExternalActors__/Maps/L_World/5/94/B5DVTS35RHDOKIEUPBJVDA.uasset deleted file mode 100644 index e03bb91..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/94/B5DVTS35RHDOKIEUPBJVDA.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:427748a00c181950ad7aaf06cfee81223bf25433b3717218a92caec19ef1da2a -size 625267 diff --git a/Content/__ExternalActors__/Maps/L_World/5/A4/4O4LPW1TDGYEKF0UH1VZS7.uasset b/Content/__ExternalActors__/Maps/L_World/5/A4/4O4LPW1TDGYEKF0UH1VZS7.uasset deleted file mode 100644 index a49682b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/A4/4O4LPW1TDGYEKF0UH1VZS7.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4cf0ee55647f3786e618975b3ebd784a0862376292436bbc33ed7ce7e31aa3eb -size 586420 diff --git a/Content/__ExternalActors__/Maps/L_World/5/BZ/NYWOPXTEGYSBKKLXTML0XJ.uasset b/Content/__ExternalActors__/Maps/L_World/5/BZ/NYWOPXTEGYSBKKLXTML0XJ.uasset deleted file mode 100644 index dfbe7b6..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/BZ/NYWOPXTEGYSBKKLXTML0XJ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b2974569b3f2dfc1f82d4532ea12117d7c80567448dc9e107933a0c25bc6937c -size 436000 diff --git a/Content/__ExternalActors__/Maps/L_World/5/CH/V9P7GWRB4DHQNFKKVRMMI3.uasset b/Content/__ExternalActors__/Maps/L_World/5/CH/V9P7GWRB4DHQNFKKVRMMI3.uasset new file mode 100644 index 0000000..1f771e5 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/CH/V9P7GWRB4DHQNFKKVRMMI3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7426b2dcaf9eeeb7a09ccafb07c6628abdbe38de78f42103b783c94e75c764e6 +size 698367 diff --git a/Content/__ExternalActors__/Maps/L_World/5/CN/1BL5RSX82BRV1H0C2M3CSF.uasset b/Content/__ExternalActors__/Maps/L_World/5/CN/1BL5RSX82BRV1H0C2M3CSF.uasset deleted file mode 100644 index 8ede099..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/CN/1BL5RSX82BRV1H0C2M3CSF.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d04e0430118cf4fdc44c815206a8e76aa914259dbb1f741a299b733545645de -size 381173 diff --git a/Content/__ExternalActors__/Maps/L_World/5/CY/WMG942FM3HRBWNRQHJ76XG.uasset b/Content/__ExternalActors__/Maps/L_World/5/CY/WMG942FM3HRBWNRQHJ76XG.uasset new file mode 100644 index 0000000..2dd7267 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/CY/WMG942FM3HRBWNRQHJ76XG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c021b5bc4720f6690b0e446079ceef6fb9658a781791b31b68470a663ac6eac +size 376599 diff --git a/Content/__ExternalActors__/Maps/L_World/5/CZ/DROAVATVZT3G3YZD26PBWY.uasset b/Content/__ExternalActors__/Maps/L_World/5/CZ/DROAVATVZT3G3YZD26PBWY.uasset deleted file mode 100644 index beb16cc..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/CZ/DROAVATVZT3G3YZD26PBWY.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:899dfb1f230a9e91c71ce1383b3b963243ec3b8d98cc86473846167c07e7e8ba -size 600940 diff --git a/Content/__ExternalActors__/Maps/L_World/5/FF/PPDN7EM3FZWOTSUZTH95U6.uasset b/Content/__ExternalActors__/Maps/L_World/5/FF/PPDN7EM3FZWOTSUZTH95U6.uasset deleted file mode 100644 index 229be3f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/FF/PPDN7EM3FZWOTSUZTH95U6.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1dd971925cce8c9768e8159c7dd9ecab8501d82cc36cd78384c70daafb694975 -size 606126 diff --git a/Content/__ExternalActors__/Maps/L_World/5/G1/ADI91H75SKHYFMPOSCWE7L.uasset b/Content/__ExternalActors__/Maps/L_World/5/G1/ADI91H75SKHYFMPOSCWE7L.uasset new file mode 100644 index 0000000..a08492a --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/G1/ADI91H75SKHYFMPOSCWE7L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8ef1ed65fcdec983a50f10416536ed1a7a5874130ce49d302718bb9bef4f1ba +size 675582 diff --git a/Content/__ExternalActors__/Maps/L_World/5/GO/DMG86C0JVUCVA4OWLUVR0E.uasset b/Content/__ExternalActors__/Maps/L_World/5/GO/DMG86C0JVUCVA4OWLUVR0E.uasset new file mode 100644 index 0000000..6492411 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/GO/DMG86C0JVUCVA4OWLUVR0E.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e18fad1a24bc143c95ae3beec290f0f558fc1f1a800abb2cdd35dff1d4bf5bdc +size 434016 diff --git a/Content/__ExternalActors__/Maps/L_World/5/HF/FBK1XNZWDBKHG3UFBGB2I5.uasset b/Content/__ExternalActors__/Maps/L_World/5/HF/FBK1XNZWDBKHG3UFBGB2I5.uasset new file mode 100644 index 0000000..1419d43 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/HF/FBK1XNZWDBKHG3UFBGB2I5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8996f5fb127322b2225756b1b141eaa7eb3efea773cccfc5b19b59909e5d519c +size 502733 diff --git a/Content/__ExternalActors__/Maps/L_World/5/HN/G97Z3C6FB4OMY418RZYFI2.uasset b/Content/__ExternalActors__/Maps/L_World/5/HN/G97Z3C6FB4OMY418RZYFI2.uasset new file mode 100644 index 0000000..8670700 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/HN/G97Z3C6FB4OMY418RZYFI2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c71d61eb63f9b621fc271785f25776d35c56403ece81f87da98ece141f99d5b +size 613013 diff --git a/Content/__ExternalActors__/Maps/L_World/5/IO/KD84ZZQXDEQTE79VXIAVIW.uasset b/Content/__ExternalActors__/Maps/L_World/5/IO/KD84ZZQXDEQTE79VXIAVIW.uasset new file mode 100644 index 0000000..2370a14 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/IO/KD84ZZQXDEQTE79VXIAVIW.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58002d837a7798b8c44fb7c392a2c4481d3d4b6d10554cf3f0bb8e14cf61d4d9 +size 594341 diff --git a/Content/__ExternalActors__/Maps/L_World/5/IS/0QG37R75L5J11NMU8V0PQ1.uasset b/Content/__ExternalActors__/Maps/L_World/5/IS/0QG37R75L5J11NMU8V0PQ1.uasset deleted file mode 100644 index 6ff6d2d..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/IS/0QG37R75L5J11NMU8V0PQ1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a6a66fc9e4fcf46e48bb679fc3e97b57348dbced92e483e5aee847b78784205a -size 376693 diff --git a/Content/__ExternalActors__/Maps/L_World/5/M0/3WXMT5RUA12AFJYQAU5YVG.uasset b/Content/__ExternalActors__/Maps/L_World/5/M0/3WXMT5RUA12AFJYQAU5YVG.uasset new file mode 100644 index 0000000..2fe7c83 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/M0/3WXMT5RUA12AFJYQAU5YVG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c09a1edc95d61f2e9a1e86176c37b495cafd1d0204ceaccd8e240565514810a +size 473936 diff --git a/Content/__ExternalActors__/Maps/L_World/5/M5/J4BR0WTRC2586LBCR66ZT9.uasset b/Content/__ExternalActors__/Maps/L_World/5/M5/J4BR0WTRC2586LBCR66ZT9.uasset deleted file mode 100644 index 609badb..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/M5/J4BR0WTRC2586LBCR66ZT9.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dde44783918f5c73543cb28227d101901b39a5bd430f3f08e02f7d9ca977cb78 -size 617306 diff --git a/Content/__ExternalActors__/Maps/L_World/5/MC/J5KAIEC3H0874O2BE6T6J0.uasset b/Content/__ExternalActors__/Maps/L_World/5/MC/J5KAIEC3H0874O2BE6T6J0.uasset deleted file mode 100644 index 80f5620..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/MC/J5KAIEC3H0874O2BE6T6J0.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dfd173a4c5d22f9447004fb60469046b01fe70f41f57411254e60fe147e1d824 -size 508599 diff --git a/Content/__ExternalActors__/Maps/L_World/5/MR/SX6NL1BEG9L9AS24M24JWR.uasset b/Content/__ExternalActors__/Maps/L_World/5/MR/SX6NL1BEG9L9AS24M24JWR.uasset new file mode 100644 index 0000000..afdd706 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/MR/SX6NL1BEG9L9AS24M24JWR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a957dd832a4822a0636ab75588e07421b25346f784848159297ef94c406f8737 +size 518587 diff --git a/Content/__ExternalActors__/Maps/L_World/5/NK/DJN1QU28NANFO2Z8GTI6VF.uasset b/Content/__ExternalActors__/Maps/L_World/5/NK/DJN1QU28NANFO2Z8GTI6VF.uasset new file mode 100644 index 0000000..ed7dc49 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/NK/DJN1QU28NANFO2Z8GTI6VF.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81c39cc7b531433568a4466eb36fc6597aae6e4100133c05ec42486d927a35fb +size 580166 diff --git a/Content/__ExternalActors__/Maps/L_World/5/PO/7JK0VFH8PBTMJSAKZSJKCR.uasset b/Content/__ExternalActors__/Maps/L_World/5/PO/7JK0VFH8PBTMJSAKZSJKCR.uasset new file mode 100644 index 0000000..fefa877 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/PO/7JK0VFH8PBTMJSAKZSJKCR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81972cdd53dcee2b3a03b7586ba3f94efecebe5938a594aa86804148d2b96dab +size 503271 diff --git a/Content/__ExternalActors__/Maps/L_World/5/QT/1AVG5JFW3YG1VK0HTRGJ3D.uasset b/Content/__ExternalActors__/Maps/L_World/5/QT/1AVG5JFW3YG1VK0HTRGJ3D.uasset new file mode 100644 index 0000000..b321be9 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/QT/1AVG5JFW3YG1VK0HTRGJ3D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15407772857b235a24a71d38c31037a8daacc17a6c9596b879762ae8ab604a2a +size 283079 diff --git a/Content/__ExternalActors__/Maps/L_World/5/RH/UOP743GPZ3VWU1EXL03O12.uasset b/Content/__ExternalActors__/Maps/L_World/5/RH/UOP743GPZ3VWU1EXL03O12.uasset new file mode 100644 index 0000000..1ed2f66 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/RH/UOP743GPZ3VWU1EXL03O12.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4294c68bc748d205cbefc394acd46ec6627c79bb9662ce8c2f3d558b554317f +size 541164 diff --git a/Content/__ExternalActors__/Maps/L_World/5/S8/WDF2PNZBW59S7B0EFG030U.uasset b/Content/__ExternalActors__/Maps/L_World/5/S8/WDF2PNZBW59S7B0EFG030U.uasset deleted file mode 100644 index d00a72f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/S8/WDF2PNZBW59S7B0EFG030U.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:928ec1b51f66b12c3dbf2da9a4656197095f59977e169115280375d6415cb463 -size 581082 diff --git a/Content/__ExternalActors__/Maps/L_World/5/SG/LL4W9P4XC3WLJD9H2BY5Z6.uasset b/Content/__ExternalActors__/Maps/L_World/5/SG/LL4W9P4XC3WLJD9H2BY5Z6.uasset deleted file mode 100644 index e105e9e..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/SG/LL4W9P4XC3WLJD9H2BY5Z6.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b4c511374b60d9da0e4c73f6cac9c823a264f3fb7f86f2dcbeab4056ab1ecac2 -size 587302 diff --git a/Content/__ExternalActors__/Maps/L_World/5/SM/BG88ZSG4A5CH5X5GV58RXI.uasset b/Content/__ExternalActors__/Maps/L_World/5/SM/BG88ZSG4A5CH5X5GV58RXI.uasset deleted file mode 100644 index 94a1a1b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/SM/BG88ZSG4A5CH5X5GV58RXI.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bf71911ec6f63efdcbd5bac1504bdb8895a1e77b3602ac5d291e0d8906cb238e -size 629217 diff --git a/Content/__ExternalActors__/Maps/L_World/5/SU/YZSO39OVAMKBLBP6B9641H.uasset b/Content/__ExternalActors__/Maps/L_World/5/SU/YZSO39OVAMKBLBP6B9641H.uasset new file mode 100644 index 0000000..0eb27bf --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/SU/YZSO39OVAMKBLBP6B9641H.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ae04ccbf9c419a84404e5e0f870c15c23aeac3d5e98d12e0d6bb37702adbe7f +size 650376 diff --git a/Content/__ExternalActors__/Maps/L_World/5/TZ/R8WHVRJGXELXE5NMKMLGA9.uasset b/Content/__ExternalActors__/Maps/L_World/5/TZ/R8WHVRJGXELXE5NMKMLGA9.uasset new file mode 100644 index 0000000..b8ae142 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/TZ/R8WHVRJGXELXE5NMKMLGA9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08fab6249f5415b4a8c8933411f3d4438cf13543e3870626ea8085d409edcac0 +size 289761 diff --git a/Content/__ExternalActors__/Maps/L_World/5/V7/ZE8HG5RCWOFK1KKFVZK7UX.uasset b/Content/__ExternalActors__/Maps/L_World/5/V7/ZE8HG5RCWOFK1KKFVZK7UX.uasset deleted file mode 100644 index 1e4302d..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/V7/ZE8HG5RCWOFK1KKFVZK7UX.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b33e178e568e3916a9915162c7bc3fe4f1fcab41488c1a5dd26d567253416b26 -size 417705 diff --git a/Content/__ExternalActors__/Maps/L_World/5/VM/H9CMP7CZCX2XL88JNNQUNU.uasset b/Content/__ExternalActors__/Maps/L_World/5/VM/H9CMP7CZCX2XL88JNNQUNU.uasset new file mode 100644 index 0000000..63f1b73 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/VM/H9CMP7CZCX2XL88JNNQUNU.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f74742e745d0954eeb4e5832a77f7fe60760f4daadf9e1726d65bcb603906230 +size 6263 diff --git a/Content/__ExternalActors__/Maps/L_World/5/W4/2YUXSP2WVDL8B8O9X4UWZW.uasset b/Content/__ExternalActors__/Maps/L_World/5/W4/2YUXSP2WVDL8B8O9X4UWZW.uasset deleted file mode 100644 index 1c716bb..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/W4/2YUXSP2WVDL8B8O9X4UWZW.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:226a14c90620582be1dca012f97aded1ecd06bea8830458398b1064427f8e5c2 -size 423195 diff --git a/Content/__ExternalActors__/Maps/L_World/5/WB/89HMKA30WIDNQZGC21T81T.uasset b/Content/__ExternalActors__/Maps/L_World/5/WB/89HMKA30WIDNQZGC21T81T.uasset new file mode 100644 index 0000000..17a0fe5 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/WB/89HMKA30WIDNQZGC21T81T.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5d1e47dd3fb00b9155b48f20b02aeeef1a73e6e171318253335156590c1d71d +size 710923 diff --git a/Content/__ExternalActors__/Maps/L_World/5/WN/6UI1P16CEVEYQQYPPR11EL.uasset b/Content/__ExternalActors__/Maps/L_World/5/WN/6UI1P16CEVEYQQYPPR11EL.uasset new file mode 100644 index 0000000..efc648c --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/5/WN/6UI1P16CEVEYQQYPPR11EL.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7d389e0cfbc310e0b12a4aff5b70819feaa6ce77c17e5bc8f2444c55f2bea38 +size 636824 diff --git a/Content/__ExternalActors__/Maps/L_World/5/WN/AEGM1GRFJD5MYQ5IHDE4PR.uasset b/Content/__ExternalActors__/Maps/L_World/5/WN/AEGM1GRFJD5MYQ5IHDE4PR.uasset deleted file mode 100644 index 3e42d4a..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/WN/AEGM1GRFJD5MYQ5IHDE4PR.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3c05349b4977be59d7f9195ac503cf9e51c369510759899245fb2f3f5e213932 -size 381203 diff --git a/Content/__ExternalActors__/Maps/L_World/5/XF/LWJL6YHVQHOU5O3NQM1OMX.uasset b/Content/__ExternalActors__/Maps/L_World/5/XF/LWJL6YHVQHOU5O3NQM1OMX.uasset deleted file mode 100644 index f1ebd36..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/XF/LWJL6YHVQHOU5O3NQM1OMX.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:29c2bb4b49f04ef150965884dd0752d34fafe369bab631ce77d438e3961b4331 -size 616596 diff --git a/Content/__ExternalActors__/Maps/L_World/5/XL/FY5E57ZVWVAHXWN6N0KVFS.uasset b/Content/__ExternalActors__/Maps/L_World/5/XL/FY5E57ZVWVAHXWN6N0KVFS.uasset deleted file mode 100644 index 1ae35e9..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/XL/FY5E57ZVWVAHXWN6N0KVFS.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab3e8a797e76543bb01ef656b5dc5e18f60f48cedf6577bc51325fc0a9ba0ed9 -size 608334 diff --git a/Content/__ExternalActors__/Maps/L_World/5/ZX/3CMHX2AJ3BIPCAC0IN2K1G.uasset b/Content/__ExternalActors__/Maps/L_World/5/ZX/3CMHX2AJ3BIPCAC0IN2K1G.uasset deleted file mode 100644 index 9585136..0000000 --- a/Content/__ExternalActors__/Maps/L_World/5/ZX/3CMHX2AJ3BIPCAC0IN2K1G.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c307c61b1b035e986a72d7f3a1689431be756f922d6af10540990d6a7e54694c -size 481862 diff --git a/Content/__ExternalActors__/Maps/L_World/6/26/0VDK8DVVX04UKUNSIWOEGD.uasset b/Content/__ExternalActors__/Maps/L_World/6/26/0VDK8DVVX04UKUNSIWOEGD.uasset deleted file mode 100644 index 9542c59..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/26/0VDK8DVVX04UKUNSIWOEGD.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c286bfc5e0abc759f6c3e0c3935b983e48dc443006f0724cf5ddb1c4ed55c321 -size 591307 diff --git a/Content/__ExternalActors__/Maps/L_World/6/30/PIXO28B7DNQOI1MW1G2YZ7.uasset b/Content/__ExternalActors__/Maps/L_World/6/30/PIXO28B7DNQOI1MW1G2YZ7.uasset new file mode 100644 index 0000000..4adb407 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/30/PIXO28B7DNQOI1MW1G2YZ7.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:979d9ad509ea03774b386cff63826ae3f764b601d81b41e2112de1ae2641194c +size 276699 diff --git a/Content/__ExternalActors__/Maps/L_World/6/46/LQ5XNQ3BBCOOTR61GCBBET.uasset b/Content/__ExternalActors__/Maps/L_World/6/46/LQ5XNQ3BBCOOTR61GCBBET.uasset new file mode 100644 index 0000000..ec03ec5 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/46/LQ5XNQ3BBCOOTR61GCBBET.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f862ab3959e7e683604716b3d045caae2b616f3f02ffbebf2ad3a06fe2d67059 +size 283858 diff --git a/Content/__ExternalActors__/Maps/L_World/6/58/UZ5FKON81QSS961HGM35D1.uasset b/Content/__ExternalActors__/Maps/L_World/6/58/UZ5FKON81QSS961HGM35D1.uasset deleted file mode 100644 index ea11ec4..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/58/UZ5FKON81QSS961HGM35D1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:54cebfa5fca9e26d4401ade691c145a26789518ad137257546f526883b6f752b -size 3667 diff --git a/Content/__ExternalActors__/Maps/L_World/6/5A/LUCU1EGBB26RVBL5DSFI10.uasset b/Content/__ExternalActors__/Maps/L_World/6/5A/LUCU1EGBB26RVBL5DSFI10.uasset new file mode 100644 index 0000000..1c4aac4 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/5A/LUCU1EGBB26RVBL5DSFI10.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8460856e2e535bf5f3b674a66a7bb7302f9ab014f3ba8928fb83c19c9f61ab64 +size 462776 diff --git a/Content/__ExternalActors__/Maps/L_World/6/65/ZS9LD0UUM4SM3JLMXZI4WG.uasset b/Content/__ExternalActors__/Maps/L_World/6/65/ZS9LD0UUM4SM3JLMXZI4WG.uasset deleted file mode 100644 index e023e52..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/65/ZS9LD0UUM4SM3JLMXZI4WG.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8d7abfbca7413ec77eca33f74d0138893739f481b94cf3933ef566ae19cc1091 -size 544220 diff --git a/Content/__ExternalActors__/Maps/L_World/6/7Q/OQVAK1LH0N7F2CU9JZ0729.uasset b/Content/__ExternalActors__/Maps/L_World/6/7Q/OQVAK1LH0N7F2CU9JZ0729.uasset new file mode 100644 index 0000000..0fee33c --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/7Q/OQVAK1LH0N7F2CU9JZ0729.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf2707e4840445963a64ab61963751b61a64bb753e7b3a30735193ecdb18d738 +size 368596 diff --git a/Content/__ExternalActors__/Maps/L_World/6/84/CF36RYSH670Y8LSFCN18M5.uasset b/Content/__ExternalActors__/Maps/L_World/6/84/CF36RYSH670Y8LSFCN18M5.uasset deleted file mode 100644 index 33d09d2..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/84/CF36RYSH670Y8LSFCN18M5.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d9d5348c56c7eb2eb3a5b514ecfd2683e1a15f45edf85d56937c0bb4521619e -size 579996 diff --git a/Content/__ExternalActors__/Maps/L_World/6/8E/SDXKM99222PQWC2MGNQ0RF.uasset b/Content/__ExternalActors__/Maps/L_World/6/8E/SDXKM99222PQWC2MGNQ0RF.uasset deleted file mode 100644 index c35f7c4..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/8E/SDXKM99222PQWC2MGNQ0RF.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5842b6d1173b1c13c0a29d347aab9e485b8c2083042b32d7f94ea20a6ee1b500 -size 578576 diff --git a/Content/__ExternalActors__/Maps/L_World/6/98/IR6J5NVHL3EL00VUEXYUI9.uasset b/Content/__ExternalActors__/Maps/L_World/6/98/IR6J5NVHL3EL00VUEXYUI9.uasset new file mode 100644 index 0000000..f0a7666 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/98/IR6J5NVHL3EL00VUEXYUI9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba4f6438840da2af5858185559125ea2f59f9e3d953af110ba7095b34e75e4d0 +size 659139 diff --git a/Content/__ExternalActors__/Maps/L_World/6/9E/46KPWQE5HZ8PR7NY5RHNUW.uasset b/Content/__ExternalActors__/Maps/L_World/6/9E/46KPWQE5HZ8PR7NY5RHNUW.uasset new file mode 100644 index 0000000..4d746b6 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/9E/46KPWQE5HZ8PR7NY5RHNUW.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2df0e2128e225c8e804183dde7b9a6746b99a96bb59550731cfb2342620139cd +size 2294 diff --git a/Content/__ExternalActors__/Maps/L_World/6/9V/0NMPODV2U2J34FXI8NC721.uasset b/Content/__ExternalActors__/Maps/L_World/6/9V/0NMPODV2U2J34FXI8NC721.uasset new file mode 100644 index 0000000..cef8374 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/9V/0NMPODV2U2J34FXI8NC721.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:380b09ea95dac76d8ffcb058f1ad7a6277577c6cba5f04cb2647d36eb050f312 +size 4093 diff --git a/Content/__ExternalActors__/Maps/L_World/6/A6/PYHX20YI006U9TMII4BMWP.uasset b/Content/__ExternalActors__/Maps/L_World/6/A6/PYHX20YI006U9TMII4BMWP.uasset new file mode 100644 index 0000000..1328728 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/A6/PYHX20YI006U9TMII4BMWP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbdac3460349fe7ffa6cc429d36d929b643782350f714a2df1802d18cb072b70 +size 583517 diff --git a/Content/__ExternalActors__/Maps/L_World/6/AA/8IW49FT4UVURBOJN9VR9H8.uasset b/Content/__ExternalActors__/Maps/L_World/6/AA/8IW49FT4UVURBOJN9VR9H8.uasset new file mode 100644 index 0000000..6976e78 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/AA/8IW49FT4UVURBOJN9VR9H8.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76b589ded1c3d37f4f0fe0b0a772add34925219b101666618bd01b311841e9a3 +size 356591 diff --git a/Content/__ExternalActors__/Maps/L_World/6/DQ/4TSL5Z2HGIMLWZ8306D0FR.uasset b/Content/__ExternalActors__/Maps/L_World/6/DQ/4TSL5Z2HGIMLWZ8306D0FR.uasset new file mode 100644 index 0000000..a3f326e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/DQ/4TSL5Z2HGIMLWZ8306D0FR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99c44d2fcb92946f1a57338d3bcaaa2d082049e46d8ebb9f25f2e9866c94678a +size 497051 diff --git a/Content/__ExternalActors__/Maps/L_World/6/E6/LYYIJWANK8LGGNNY25FX7N.uasset b/Content/__ExternalActors__/Maps/L_World/6/E6/LYYIJWANK8LGGNNY25FX7N.uasset new file mode 100644 index 0000000..0c21c53 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/E6/LYYIJWANK8LGGNNY25FX7N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b80275018085ee53be0181daa0bb6b402a220dfd5488e30df1de620df0d9de0 +size 593494 diff --git a/Content/__ExternalActors__/Maps/L_World/6/FH/6TB01KU0YOORGO5G6V73RV.uasset b/Content/__ExternalActors__/Maps/L_World/6/FH/6TB01KU0YOORGO5G6V73RV.uasset deleted file mode 100644 index 4962ccf..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/FH/6TB01KU0YOORGO5G6V73RV.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f115f255958672d1ee415e0b1d3baa6ac7c030511c2d7186931902257c1d3a4f -size 499759 diff --git a/Content/__ExternalActors__/Maps/L_World/6/G1/S98V4QLJGQ19GXYRITPRKO.uasset b/Content/__ExternalActors__/Maps/L_World/6/G1/S98V4QLJGQ19GXYRITPRKO.uasset deleted file mode 100644 index 1329022..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/G1/S98V4QLJGQ19GXYRITPRKO.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c46de8ccd4a3a7b49689c02f41fb769e092428683b9500d08b70f695ebb6806f -size 634470 diff --git a/Content/__ExternalActors__/Maps/L_World/6/GM/01VH3PHLRZ81HWXDSTMIZM.uasset b/Content/__ExternalActors__/Maps/L_World/6/GM/01VH3PHLRZ81HWXDSTMIZM.uasset deleted file mode 100644 index e5ded04..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/GM/01VH3PHLRZ81HWXDSTMIZM.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e7c482bf43e3c5d3046d7724ecf431b7a47e1444c2894c4ec2319e4efc4fc414 -size 616636 diff --git a/Content/__ExternalActors__/Maps/L_World/6/IJ/7GOXMYOMGPITJ7PFF7I69G.uasset b/Content/__ExternalActors__/Maps/L_World/6/IJ/7GOXMYOMGPITJ7PFF7I69G.uasset new file mode 100644 index 0000000..e87f48d --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/IJ/7GOXMYOMGPITJ7PFF7I69G.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c18d06f8c36bd33f8e79d2bb5f4efc3dbaf66fe7ca0ef405243b592dc6c78713 +size 321243 diff --git a/Content/__ExternalActors__/Maps/L_World/6/KL/PLTYTH8VZ2YCM0138UBFR5.uasset b/Content/__ExternalActors__/Maps/L_World/6/KL/PLTYTH8VZ2YCM0138UBFR5.uasset new file mode 100644 index 0000000..d1c39fa --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/KL/PLTYTH8VZ2YCM0138UBFR5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9d84fdc1a31fe021a50c02c67dec98bf40ea776fd890264ac631510dde1e232 +size 287343 diff --git a/Content/__ExternalActors__/Maps/L_World/6/L6/LYQXQTRYMED3V701K98TG8.uasset b/Content/__ExternalActors__/Maps/L_World/6/L6/LYQXQTRYMED3V701K98TG8.uasset deleted file mode 100644 index 27381f9..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/L6/LYQXQTRYMED3V701K98TG8.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b01de8a80d8e5a808afc3722ee158953d9b4ac7ba9a09260812be89d530d0e7e -size 599396 diff --git a/Content/__ExternalActors__/Maps/L_World/6/LE/827HT1FPK4C93RGF72YA44.uasset b/Content/__ExternalActors__/Maps/L_World/6/LE/827HT1FPK4C93RGF72YA44.uasset deleted file mode 100644 index 20e3b52..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/LE/827HT1FPK4C93RGF72YA44.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4de931b2892aafabb65ec3280443e77826227a213f40d3ddaf44780f33160cc1 -size 618677 diff --git a/Content/__ExternalActors__/Maps/L_World/6/LT/066ZCG6IN3FNQGQW5N1PW6.uasset b/Content/__ExternalActors__/Maps/L_World/6/LT/066ZCG6IN3FNQGQW5N1PW6.uasset new file mode 100644 index 0000000..1db102d --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/LT/066ZCG6IN3FNQGQW5N1PW6.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:429044e1b731e677abc3dab57eec2d30ce59ad03065856e915de1a48b3bb20a1 +size 658659 diff --git a/Content/__ExternalActors__/Maps/L_World/6/M9/W78I8R6DXCI1BTA9A80PQL.uasset b/Content/__ExternalActors__/Maps/L_World/6/M9/W78I8R6DXCI1BTA9A80PQL.uasset deleted file mode 100644 index 3e4674e..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/M9/W78I8R6DXCI1BTA9A80PQL.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1f9644968ef80b0347bd0e038881c520640b4d8b1fb3a152d3ae07ee3f4f8636 -size 577942 diff --git a/Content/__ExternalActors__/Maps/L_World/6/N8/8UXP6SNX06G1CRBPAG2TQC.uasset b/Content/__ExternalActors__/Maps/L_World/6/N8/8UXP6SNX06G1CRBPAG2TQC.uasset new file mode 100644 index 0000000..16c7f40 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/N8/8UXP6SNX06G1CRBPAG2TQC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cd0ddab129e3ce7d4b466dc67ed99adb9e872656d8d412fef76c5a59ed6ad65 +size 4519 diff --git a/Content/__ExternalActors__/Maps/L_World/6/NC/GS4ZYX4ETGSWXASZM0G68W.uasset b/Content/__ExternalActors__/Maps/L_World/6/NC/GS4ZYX4ETGSWXASZM0G68W.uasset deleted file mode 100644 index 411ebf5..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/NC/GS4ZYX4ETGSWXASZM0G68W.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5fe092560b4f7e8e863cd976710dcbfad30db947a8a6d04276e74c21456c4b97 -size 363932 diff --git a/Content/__ExternalActors__/Maps/L_World/6/O7/C66BOQOFN0J0JAITMLTG8L.uasset b/Content/__ExternalActors__/Maps/L_World/6/O7/C66BOQOFN0J0JAITMLTG8L.uasset new file mode 100644 index 0000000..80b39ae --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/O7/C66BOQOFN0J0JAITMLTG8L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76f9173bd1cda7a8f0f9cca27a74fd6a856e51322a024a0829cb3fc11e1e2f0e +size 636882 diff --git a/Content/__ExternalActors__/Maps/L_World/6/OO/1P2V3VQV2GCF9WIINMP5V4.uasset b/Content/__ExternalActors__/Maps/L_World/6/OO/1P2V3VQV2GCF9WIINMP5V4.uasset new file mode 100644 index 0000000..a9b7dda --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/OO/1P2V3VQV2GCF9WIINMP5V4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96e740743c6a740cc86f64fd0e7a4dd346e1b72dbc33ba88aa6031903a492b98 +size 701272 diff --git a/Content/__ExternalActors__/Maps/L_World/6/P7/IUOM1H8697CSNFMOAS8WA9.uasset b/Content/__ExternalActors__/Maps/L_World/6/P7/IUOM1H8697CSNFMOAS8WA9.uasset new file mode 100644 index 0000000..e2487eb --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/P7/IUOM1H8697CSNFMOAS8WA9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cace656067ad6a3620434b3ee0650c8e013eecdec0c88241c49a1be013cc6f66 +size 522292 diff --git a/Content/__ExternalActors__/Maps/L_World/6/PF/HKGMBQSW861804ZXU37KDZ.uasset b/Content/__ExternalActors__/Maps/L_World/6/PF/HKGMBQSW861804ZXU37KDZ.uasset deleted file mode 100644 index b5d2e09..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/PF/HKGMBQSW861804ZXU37KDZ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c1c4c6755a7e8f1dccdb4bda9ab0192ced2eda849199778be29e21538fb09a84 -size 600626 diff --git a/Content/__ExternalActors__/Maps/L_World/6/SR/64MOCRPC5LRUAT6YUR75ZV.uasset b/Content/__ExternalActors__/Maps/L_World/6/SR/64MOCRPC5LRUAT6YUR75ZV.uasset deleted file mode 100644 index 0564a07..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/SR/64MOCRPC5LRUAT6YUR75ZV.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fb58737ea05d71a8bd715980568dd2875318d852854742afb413a6360b43a0f9 -size 587072 diff --git a/Content/__ExternalActors__/Maps/L_World/6/TJ/YYQRVNE1QITUYL9HLJD8ZL.uasset b/Content/__ExternalActors__/Maps/L_World/6/TJ/YYQRVNE1QITUYL9HLJD8ZL.uasset new file mode 100644 index 0000000..7899a2a --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/TJ/YYQRVNE1QITUYL9HLJD8ZL.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a046191b580d2d245a4a14f2cb866d0fa1efb301b76d9fed16f2ec33e1df00fc +size 590353 diff --git a/Content/__ExternalActors__/Maps/L_World/6/W4/YDVZ4CT672MXJFBO05VZ12.uasset b/Content/__ExternalActors__/Maps/L_World/6/W4/YDVZ4CT672MXJFBO05VZ12.uasset deleted file mode 100644 index cd0b2e9..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/W4/YDVZ4CT672MXJFBO05VZ12.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bf7c0a173cb3c9f3c11438ba4607ee692c90d06a3af6bd45a7c4120e692b6916 -size 598529 diff --git a/Content/__ExternalActors__/Maps/L_World/6/WC/U1XPK3YBBPJYZLSEY7UMDY.uasset b/Content/__ExternalActors__/Maps/L_World/6/WC/U1XPK3YBBPJYZLSEY7UMDY.uasset new file mode 100644 index 0000000..b52d744 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/6/WC/U1XPK3YBBPJYZLSEY7UMDY.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f0727b690354171d8999786cd8e9368562adccb0ce2a8ea37896113bc1e03b1 +size 681835 diff --git a/Content/__ExternalActors__/Maps/L_World/6/WV/HBSETCS62WXFDTP2HDH2H4.uasset b/Content/__ExternalActors__/Maps/L_World/6/WV/HBSETCS62WXFDTP2HDH2H4.uasset deleted file mode 100644 index 8d2eb2a..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/WV/HBSETCS62WXFDTP2HDH2H4.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ef4afae1320100610933df25277cceb5a417353c0353604f2d791c5e47a04818 -size 423615 diff --git a/Content/__ExternalActors__/Maps/L_World/6/XU/MS8ZQ338RDCLV0T4YTGEX4.uasset b/Content/__ExternalActors__/Maps/L_World/6/XU/MS8ZQ338RDCLV0T4YTGEX4.uasset deleted file mode 100644 index 44f3904..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/XU/MS8ZQ338RDCLV0T4YTGEX4.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5c0370510d2620aadd39a1c5134ffb56895f4f8ddf416d435c29445efb115835 -size 392456 diff --git a/Content/__ExternalActors__/Maps/L_World/6/Y4/21O1IFCNSA6I76X3W8N600.uasset b/Content/__ExternalActors__/Maps/L_World/6/Y4/21O1IFCNSA6I76X3W8N600.uasset deleted file mode 100644 index 1ed43d8..0000000 --- a/Content/__ExternalActors__/Maps/L_World/6/Y4/21O1IFCNSA6I76X3W8N600.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2470590521688e6effab31a15843303d097f3f1480b08340da52b30659538bf6 -size 368198 diff --git a/Content/__ExternalActors__/Maps/L_World/7/1C/BR5YAYSEIPKV59DAMFH6QZ.uasset b/Content/__ExternalActors__/Maps/L_World/7/1C/BR5YAYSEIPKV59DAMFH6QZ.uasset new file mode 100644 index 0000000..ca5e35b --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/1C/BR5YAYSEIPKV59DAMFH6QZ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ac02aa48385752acd42d9977761ddc0c5342305f29f0f0a708cd74149beda08 +size 535911 diff --git a/Content/__ExternalActors__/Maps/L_World/7/21/GBKW6O9GK8RDQLLH15BE33.uasset b/Content/__ExternalActors__/Maps/L_World/7/21/GBKW6O9GK8RDQLLH15BE33.uasset deleted file mode 100644 index 3719c94..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/21/GBKW6O9GK8RDQLLH15BE33.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:af2b4b45feb918b9d55954c64c041db53dc8827197b6a14a7303b1e08aa42bf9 -size 592755 diff --git a/Content/__ExternalActors__/Maps/L_World/7/28/3TE4KBRQC1CSG6UWFWSQA4.uasset b/Content/__ExternalActors__/Maps/L_World/7/28/3TE4KBRQC1CSG6UWFWSQA4.uasset new file mode 100644 index 0000000..96ec08e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/28/3TE4KBRQC1CSG6UWFWSQA4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0eb9c60e346704c2470f599402828474944a7513234e43b6c61312f2ba17752 +size 607889 diff --git a/Content/__ExternalActors__/Maps/L_World/7/2S/B7QXYI8JL00LNH9HR8FD24.uasset b/Content/__ExternalActors__/Maps/L_World/7/2S/B7QXYI8JL00LNH9HR8FD24.uasset new file mode 100644 index 0000000..2816ee9 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/2S/B7QXYI8JL00LNH9HR8FD24.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a8b110361b521058193620a6e4a68dc7fc0837dce765fbd4ae5a9fa8cb6b7de +size 288354 diff --git a/Content/__ExternalActors__/Maps/L_World/7/36/SNKEE4E0O962ZIAYILUXLJ.uasset b/Content/__ExternalActors__/Maps/L_World/7/36/SNKEE4E0O962ZIAYILUXLJ.uasset new file mode 100644 index 0000000..e1bea81 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/36/SNKEE4E0O962ZIAYILUXLJ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7adf78454d7bbf47d625eb5f3014ab99ae9090d2bde0b7c839c8b1add36834bb +size 437969 diff --git a/Content/__ExternalActors__/Maps/L_World/7/4G/RKMC4QVLDM3SVQHR63TZF6.uasset b/Content/__ExternalActors__/Maps/L_World/7/4G/RKMC4QVLDM3SVQHR63TZF6.uasset deleted file mode 100644 index 1447e87..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/4G/RKMC4QVLDM3SVQHR63TZF6.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:70c6aaa71b3ccdb6c315f2d7fdae62b492950b80ef082ad225dbca66bc4f1980 -size 365510 diff --git a/Content/__ExternalActors__/Maps/L_World/7/4N/5RDZEJU2IBJ92U0AZKJFLC.uasset b/Content/__ExternalActors__/Maps/L_World/7/4N/5RDZEJU2IBJ92U0AZKJFLC.uasset deleted file mode 100644 index 21a6aef..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/4N/5RDZEJU2IBJ92U0AZKJFLC.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:49a3c2a0900334bafe58c579ac08ebcd89e1b289b1101508961ce8ac0443cf55 -size 461343 diff --git a/Content/__ExternalActors__/Maps/L_World/7/5C/A367BBRPBYYS1Y0SLCNL47.uasset b/Content/__ExternalActors__/Maps/L_World/7/5C/A367BBRPBYYS1Y0SLCNL47.uasset deleted file mode 100644 index 81d8cc9..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/5C/A367BBRPBYYS1Y0SLCNL47.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8b59886cbe993da43fbfe283c1099ccac6fe53cd54ae762704cbfa206890b10b -size 600066 diff --git a/Content/__ExternalActors__/Maps/L_World/7/6H/0L4WJMYO3ZVG1U0VHSX67A.uasset b/Content/__ExternalActors__/Maps/L_World/7/6H/0L4WJMYO3ZVG1U0VHSX67A.uasset new file mode 100644 index 0000000..da9ef10 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/6H/0L4WJMYO3ZVG1U0VHSX67A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd49fac67e621d611b50bf55d06936fc93c02bacb3e2a5deefcc97a351a63485 +size 605712 diff --git a/Content/__ExternalActors__/Maps/L_World/7/6L/LTDUSIWB6W2UJ0O5EC3ZMY.uasset b/Content/__ExternalActors__/Maps/L_World/7/6L/LTDUSIWB6W2UJ0O5EC3ZMY.uasset new file mode 100644 index 0000000..3745759 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/6L/LTDUSIWB6W2UJ0O5EC3ZMY.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08cf6c8cd8771be34b00bc8a16ccdbc99cc41e9c17afd970139de24fb2e801c5 +size 652891 diff --git a/Content/__ExternalActors__/Maps/L_World/7/95/P4LRWGDVHG0PZMBV1A1KGD.uasset b/Content/__ExternalActors__/Maps/L_World/7/95/P4LRWGDVHG0PZMBV1A1KGD.uasset deleted file mode 100644 index e7d65a9..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/95/P4LRWGDVHG0PZMBV1A1KGD.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2995f4cf63646759490635bee4d7bd510071d7646edca1b4ad6e9b2bad37b78c -size 548721 diff --git a/Content/__ExternalActors__/Maps/L_World/7/9M/12X9KOTJACGL1TF3XDTIN5.uasset b/Content/__ExternalActors__/Maps/L_World/7/9M/12X9KOTJACGL1TF3XDTIN5.uasset new file mode 100644 index 0000000..c0cca30 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/9M/12X9KOTJACGL1TF3XDTIN5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f85932d3d5fb635753303df1c3cf3ee4741883caf853420e0c144c1282178c8 +size 282684 diff --git a/Content/__ExternalActors__/Maps/L_World/7/AC/R7DULDX8JBZ40RZWESOO0J.uasset b/Content/__ExternalActors__/Maps/L_World/7/AC/R7DULDX8JBZ40RZWESOO0J.uasset deleted file mode 100644 index 6b8f659..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/AC/R7DULDX8JBZ40RZWESOO0J.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:73d87cf4bd5b8abe5b5beffa05ca850e0e25e244f06d601a305dd1fc6d7678cc -size 513331 diff --git a/Content/__ExternalActors__/Maps/L_World/7/AM/ATPLC71KSVD5QF8P1626H4.uasset b/Content/__ExternalActors__/Maps/L_World/7/AM/ATPLC71KSVD5QF8P1626H4.uasset deleted file mode 100644 index 85711f1..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/AM/ATPLC71KSVD5QF8P1626H4.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cfc117b14ce0d45db7c4c98e83a4c51b2b730d1e6bcaa854dc20ff413b957453 -size 408183 diff --git a/Content/__ExternalActors__/Maps/L_World/7/AR/H8LN84RC5GIORGMXMRAX5A.uasset b/Content/__ExternalActors__/Maps/L_World/7/AR/H8LN84RC5GIORGMXMRAX5A.uasset new file mode 100644 index 0000000..40057cc --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/AR/H8LN84RC5GIORGMXMRAX5A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a1a9b7c2aefb3c2284cf260ea5ee3ce44baef093a0c9780f8dd2b506954c216 +size 278785 diff --git a/Content/__ExternalActors__/Maps/L_World/7/C9/9GO46ULSFXYE2E1QCKX3PX.uasset b/Content/__ExternalActors__/Maps/L_World/7/C9/9GO46ULSFXYE2E1QCKX3PX.uasset deleted file mode 100644 index 06eba90..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/C9/9GO46ULSFXYE2E1QCKX3PX.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:09fa80475cdaa602aca844502541c0fb185b07cc43618776d89839485dabf2c0 -size 492560 diff --git a/Content/__ExternalActors__/Maps/L_World/7/G6/2Q80ND8FUBXK6XKYS22G1O.uasset b/Content/__ExternalActors__/Maps/L_World/7/G6/2Q80ND8FUBXK6XKYS22G1O.uasset new file mode 100644 index 0000000..ad4a89b --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/G6/2Q80ND8FUBXK6XKYS22G1O.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee577da033dddaccd8c2ae1caf26c1faa4d3d8988bce1894309adcdb6ff8f6c9 +size 709905 diff --git a/Content/__ExternalActors__/Maps/L_World/7/GO/U7LDUWDBYH3XN4RMF6990N.uasset b/Content/__ExternalActors__/Maps/L_World/7/GO/U7LDUWDBYH3XN4RMF6990N.uasset deleted file mode 100644 index 79c5d01..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/GO/U7LDUWDBYH3XN4RMF6990N.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:84abd2a806b61d46ce2230010dc0bd8d14e93bdf6f877c2c20a2c346e39947f0 -size 364338 diff --git a/Content/__ExternalActors__/Maps/L_World/7/GR/KI00LQ8F8LA4CW7FL2Y09Q.uasset b/Content/__ExternalActors__/Maps/L_World/7/GR/KI00LQ8F8LA4CW7FL2Y09Q.uasset deleted file mode 100644 index f9bc1d5..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/GR/KI00LQ8F8LA4CW7FL2Y09Q.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:615e007160c1c01625fec91afe948c801651a463f3e3dff12297f746b93214cc -size 367514 diff --git a/Content/__ExternalActors__/Maps/L_World/7/GR/W3LKIYQ4MV3GXZ93BJEDCN.uasset b/Content/__ExternalActors__/Maps/L_World/7/GR/W3LKIYQ4MV3GXZ93BJEDCN.uasset deleted file mode 100644 index f04c53a..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/GR/W3LKIYQ4MV3GXZ93BJEDCN.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:23b1f2339fba42ee52d9b11d45b91b6916f06cef35357f821d8505139dd74f4e -size 363390 diff --git a/Content/__ExternalActors__/Maps/L_World/7/GW/UL0JBFAL5314SKKY3XGTHW.uasset b/Content/__ExternalActors__/Maps/L_World/7/GW/UL0JBFAL5314SKKY3XGTHW.uasset new file mode 100644 index 0000000..04180fa --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/GW/UL0JBFAL5314SKKY3XGTHW.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc806af67397bc4362d7dc9b74ba641013d1ffb52840e1cc5d62f490f10f1f84 +size 291218 diff --git a/Content/__ExternalActors__/Maps/L_World/7/HS/VAEV98NGVKAA51Z9E02I9F.uasset b/Content/__ExternalActors__/Maps/L_World/7/HS/VAEV98NGVKAA51Z9E02I9F.uasset deleted file mode 100644 index e984cde..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/HS/VAEV98NGVKAA51Z9E02I9F.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:79f6a7bd8d916801ce0944640bf97b7cef9b3cc8530e331978bdb13092bb471a -size 624991 diff --git a/Content/__ExternalActors__/Maps/L_World/7/K5/FW5H8ZPGF8HMYGN2CY5W9R.uasset b/Content/__ExternalActors__/Maps/L_World/7/K5/FW5H8ZPGF8HMYGN2CY5W9R.uasset new file mode 100644 index 0000000..f8dc1b0 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/K5/FW5H8ZPGF8HMYGN2CY5W9R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1314dc521adeb031daebb0256fbbae9b12efcd35e64cd9fd19efcdccbdfe085e +size 578199 diff --git a/Content/__ExternalActors__/Maps/L_World/7/M3/ZHQU62OKNCT98VDEB300C3.uasset b/Content/__ExternalActors__/Maps/L_World/7/M3/ZHQU62OKNCT98VDEB300C3.uasset new file mode 100644 index 0000000..e660a61 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/M3/ZHQU62OKNCT98VDEB300C3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7c374016d42932466cd16e50aec02df7d4352cfbe45b141cc78b71f4782746b +size 607571 diff --git a/Content/__ExternalActors__/Maps/L_World/7/MO/WHJVJZ24Q1YSDDOTH1G9NI.uasset b/Content/__ExternalActors__/Maps/L_World/7/MO/WHJVJZ24Q1YSDDOTH1G9NI.uasset deleted file mode 100644 index e7aeec4..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/MO/WHJVJZ24Q1YSDDOTH1G9NI.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:19efacdcaf032546fc6bc10149277194fa888eaf8f87e8425c42d72fa7e364de -size 636559 diff --git a/Content/__ExternalActors__/Maps/L_World/7/P9/28S1NLKGS27UTB3S5CW6DC.uasset b/Content/__ExternalActors__/Maps/L_World/7/P9/28S1NLKGS27UTB3S5CW6DC.uasset new file mode 100644 index 0000000..8adf4ee --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/P9/28S1NLKGS27UTB3S5CW6DC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64a66414a3a91493d09812f8f7048eae180bacba12a1e9832cefa4fe8fdbca4e +size 509891 diff --git a/Content/__ExternalActors__/Maps/L_World/7/PR/M8F7ML63TW7O6SE30R640R.uasset b/Content/__ExternalActors__/Maps/L_World/7/PR/M8F7ML63TW7O6SE30R640R.uasset deleted file mode 100644 index 881a8db..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/PR/M8F7ML63TW7O6SE30R640R.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6a6a9973c18151e0654d799f65de12be58576f31fa00cf89d3c75a82c42a3968 -size 365851 diff --git a/Content/__ExternalActors__/Maps/L_World/7/QD/5RZD3JFLR348JSTCEIYM4E.uasset b/Content/__ExternalActors__/Maps/L_World/7/QD/5RZD3JFLR348JSTCEIYM4E.uasset deleted file mode 100644 index c6736a5..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/QD/5RZD3JFLR348JSTCEIYM4E.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c7418890ede0e349a2f6be62fb14c84464b725a3491b677d00684f3996b43b77 -size 365605 diff --git a/Content/__ExternalActors__/Maps/L_World/7/QP/BKXP98WFZ99CWWP2Y2BOI7.uasset b/Content/__ExternalActors__/Maps/L_World/7/QP/BKXP98WFZ99CWWP2Y2BOI7.uasset deleted file mode 100644 index a784539..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/QP/BKXP98WFZ99CWWP2Y2BOI7.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2cd9a64ce29664f58547f3bf06a98326e063d786c8b8c8d60f7ab982a477324f -size 570226 diff --git a/Content/__ExternalActors__/Maps/L_World/7/SU/8124BX7OC8U4YYPZND909B.uasset b/Content/__ExternalActors__/Maps/L_World/7/SU/8124BX7OC8U4YYPZND909B.uasset deleted file mode 100644 index f35ab86..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/SU/8124BX7OC8U4YYPZND909B.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:89049c2d43663d8f67b11ac486c084428afc7af348277a8c024cd8798b51f16d -size 372711 diff --git a/Content/__ExternalActors__/Maps/L_World/7/TS/Q5ZQNR7DZDK3OB520Y4ZRC.uasset b/Content/__ExternalActors__/Maps/L_World/7/TS/Q5ZQNR7DZDK3OB520Y4ZRC.uasset new file mode 100644 index 0000000..5b180a8 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/TS/Q5ZQNR7DZDK3OB520Y4ZRC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20cdf45c55aab4b63344c274a3a1bac38b81c039e8ff64371750c78074ecb0e7 +size 570059 diff --git a/Content/__ExternalActors__/Maps/L_World/7/UL/5F1Y0VWYN2HWEAHWM212OI.uasset b/Content/__ExternalActors__/Maps/L_World/7/UL/5F1Y0VWYN2HWEAHWM212OI.uasset new file mode 100644 index 0000000..5633540 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/UL/5F1Y0VWYN2HWEAHWM212OI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:475b80f8df629006f4019b1255b7b2bf2b19cab64f1e608cdd6f51c22cd66677 +size 623388 diff --git a/Content/__ExternalActors__/Maps/L_World/7/W9/4RAVVMGO73OXLDQX7RFABZ.uasset b/Content/__ExternalActors__/Maps/L_World/7/W9/4RAVVMGO73OXLDQX7RFABZ.uasset new file mode 100644 index 0000000..bebf39e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/W9/4RAVVMGO73OXLDQX7RFABZ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:629435798f81ed80ea4954a673b4316d389650a9a7ccd3f0098c9c09b86b1905 +size 673199 diff --git a/Content/__ExternalActors__/Maps/L_World/7/YP/QJMG2IXL5Q4Q67YH4EH4UO.uasset b/Content/__ExternalActors__/Maps/L_World/7/YP/QJMG2IXL5Q4Q67YH4EH4UO.uasset deleted file mode 100644 index 0533fd8..0000000 --- a/Content/__ExternalActors__/Maps/L_World/7/YP/QJMG2IXL5Q4Q67YH4EH4UO.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9f109b44b1438b7a5a4a53110dd779391373676058678c2a6213fbf672634ea7 -size 599526 diff --git a/Content/__ExternalActors__/Maps/L_World/7/ZB/NN945XBCV1VFYOL6JC04T5.uasset b/Content/__ExternalActors__/Maps/L_World/7/ZB/NN945XBCV1VFYOL6JC04T5.uasset new file mode 100644 index 0000000..9830924 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/7/ZB/NN945XBCV1VFYOL6JC04T5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ccd0baa3824a777c8d045e84660984dc6b01c2185504a9113784de24c8fde38 +size 452533 diff --git a/Content/__ExternalActors__/Maps/L_World/8/4H/ZTUX6MLSSXY54EUHZDH9VR.uasset b/Content/__ExternalActors__/Maps/L_World/8/4H/ZTUX6MLSSXY54EUHZDH9VR.uasset new file mode 100644 index 0000000..f2163a1 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/4H/ZTUX6MLSSXY54EUHZDH9VR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2511cee95869bfd91546025bca2e88cf091ae5bc227134978488f252494ef89d +size 525369 diff --git a/Content/__ExternalActors__/Maps/L_World/8/78/O2HSR3P3KREPP62OSS69Y7.uasset b/Content/__ExternalActors__/Maps/L_World/8/78/O2HSR3P3KREPP62OSS69Y7.uasset deleted file mode 100644 index 2c8ba19..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/78/O2HSR3P3KREPP62OSS69Y7.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a3bb1eb55bd9c09dd5cfdfe783a07fe41a7e85f0e7a1d770da86795bf8e4318b -size 412908 diff --git a/Content/__ExternalActors__/Maps/L_World/8/7B/LAGJ2PBZJM2Q4XBM458FN3.uasset b/Content/__ExternalActors__/Maps/L_World/8/7B/LAGJ2PBZJM2Q4XBM458FN3.uasset new file mode 100644 index 0000000..735174b --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/7B/LAGJ2PBZJM2Q4XBM458FN3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4adf469c5a9e5744be3721113fc99cce8d70899c06f152454b975976e18ef49 +size 683350 diff --git a/Content/__ExternalActors__/Maps/L_World/8/7F/MZ66SAPNUVYD8BCRFXWBRL.uasset b/Content/__ExternalActors__/Maps/L_World/8/7F/MZ66SAPNUVYD8BCRFXWBRL.uasset new file mode 100644 index 0000000..98ddef0 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/7F/MZ66SAPNUVYD8BCRFXWBRL.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:595e735f7810f7352b0f735ce37f78b5083985d096329c16781afc4a54304446 +size 477970 diff --git a/Content/__ExternalActors__/Maps/L_World/8/9A/S0WO0L0XPT8O2CC602ACHI.uasset b/Content/__ExternalActors__/Maps/L_World/8/9A/S0WO0L0XPT8O2CC602ACHI.uasset deleted file mode 100644 index ad7363f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/9A/S0WO0L0XPT8O2CC602ACHI.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f0b450d772d7476a29412e87c1b9964ee8a55fefe1c400a3c93b1c76c626d703 -size 579572 diff --git a/Content/__ExternalActors__/Maps/L_World/8/A7/SIS6Q9RQ547ULLA719R1OT.uasset b/Content/__ExternalActors__/Maps/L_World/8/A7/SIS6Q9RQ547ULLA719R1OT.uasset new file mode 100644 index 0000000..779802f --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/A7/SIS6Q9RQ547ULLA719R1OT.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3582c329435db9a007462ced2a176be489fe1405634d15f4959e1ca05c1f0044 +size 644228 diff --git a/Content/__ExternalActors__/Maps/L_World/8/BN/2LSIXSQR6BXEX2V88M04XV.uasset b/Content/__ExternalActors__/Maps/L_World/8/BN/2LSIXSQR6BXEX2V88M04XV.uasset deleted file mode 100644 index 0d4c6df..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/BN/2LSIXSQR6BXEX2V88M04XV.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3d67b00e6242abd26feecd740ffe4b9df0e4c2398155e7084b36f585477d5809 -size 609453 diff --git a/Content/__ExternalActors__/Maps/L_World/8/BR/1T545UQ9LN1OPEBE6H2T5C.uasset b/Content/__ExternalActors__/Maps/L_World/8/BR/1T545UQ9LN1OPEBE6H2T5C.uasset new file mode 100644 index 0000000..0ebeabc --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/BR/1T545UQ9LN1OPEBE6H2T5C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18095537cb18d2de5933bb15c13aa65bb7dee76f8b9aac460edbd15ef8e72f72 +size 668858 diff --git a/Content/__ExternalActors__/Maps/L_World/8/DX/7JM07OS46AGRWU9OUXNEMM.uasset b/Content/__ExternalActors__/Maps/L_World/8/DX/7JM07OS46AGRWU9OUXNEMM.uasset new file mode 100644 index 0000000..e8a93f0 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/DX/7JM07OS46AGRWU9OUXNEMM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62ea6fa0b0f520a09050402ab8256784228e0820ad219aba878ced279131f8cf +size 740628 diff --git a/Content/__ExternalActors__/Maps/L_World/8/J8/XWQQBFBAOIJY70H4QGGWJ9.uasset b/Content/__ExternalActors__/Maps/L_World/8/J8/XWQQBFBAOIJY70H4QGGWJ9.uasset deleted file mode 100644 index 493f2ef..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/J8/XWQQBFBAOIJY70H4QGGWJ9.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f963fb61b8157243207272d204cc43cccd8eecd923042d6a1a7d24ba09733a6 -size 636796 diff --git a/Content/__ExternalActors__/Maps/L_World/8/JK/8TVHRN7ZA1L5TXAM773MP1.uasset b/Content/__ExternalActors__/Maps/L_World/8/JK/8TVHRN7ZA1L5TXAM773MP1.uasset new file mode 100644 index 0000000..d2e91d6 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/JK/8TVHRN7ZA1L5TXAM773MP1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b06bea71411c00ac8743f7f8512f763290cd007429348170cba82d008fd491f3 +size 465751 diff --git a/Content/__ExternalActors__/Maps/L_World/8/MX/A93NGWWDMMGU4KHP6DBUQ3.uasset b/Content/__ExternalActors__/Maps/L_World/8/MX/A93NGWWDMMGU4KHP6DBUQ3.uasset deleted file mode 100644 index 864f8bd..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/MX/A93NGWWDMMGU4KHP6DBUQ3.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:617f1a4b0225fc134636aafe3dd6d3176fe28fb755f2763c880e54054c911d4e -size 581011 diff --git a/Content/__ExternalActors__/Maps/L_World/8/NM/N6XSJ1DZ195HK5PSVAAK17.uasset b/Content/__ExternalActors__/Maps/L_World/8/NM/N6XSJ1DZ195HK5PSVAAK17.uasset new file mode 100644 index 0000000..2e679a8 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/NM/N6XSJ1DZ195HK5PSVAAK17.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3012771d0c761a7166b58c6e8df0496b350ec5c46ecf33b0c2cca437e7c6746e +size 282475 diff --git a/Content/__ExternalActors__/Maps/L_World/8/O4/3DSHCLGEVAYYHEA9QBA7RG.uasset b/Content/__ExternalActors__/Maps/L_World/8/O4/3DSHCLGEVAYYHEA9QBA7RG.uasset deleted file mode 100644 index 660bf77..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/O4/3DSHCLGEVAYYHEA9QBA7RG.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:593d2117cc7d6fecc7477a8f41f371750b96e60fdab5f7e43b9c50a094ac906b -size 529930 diff --git a/Content/__ExternalActors__/Maps/L_World/8/OU/47JIC2JKEL6R1CKN1AYP12.uasset b/Content/__ExternalActors__/Maps/L_World/8/OU/47JIC2JKEL6R1CKN1AYP12.uasset new file mode 100644 index 0000000..033fa30 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/OU/47JIC2JKEL6R1CKN1AYP12.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f83a66bdc2d3e7ec2c45c51a6ce07ff28757dff4dff15eda7f16fb6694a98683 +size 516342 diff --git a/Content/__ExternalActors__/Maps/L_World/8/PB/M5WOFOWY53BY7BLGOJRRJZ.uasset b/Content/__ExternalActors__/Maps/L_World/8/PB/M5WOFOWY53BY7BLGOJRRJZ.uasset deleted file mode 100644 index ae8d39b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/PB/M5WOFOWY53BY7BLGOJRRJZ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2fcef4d042c31d18e3fcccd1a619b0a3af1821ea6984d903ddcd89fc878a1bde -size 638048 diff --git a/Content/__ExternalActors__/Maps/L_World/8/Q4/UG34QP557S9BEWXDZZQ6YF.uasset b/Content/__ExternalActors__/Maps/L_World/8/Q4/UG34QP557S9BEWXDZZQ6YF.uasset deleted file mode 100644 index d6825ae..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/Q4/UG34QP557S9BEWXDZZQ6YF.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ccd31e71684980356008a296103531075be23aea195511f686abca8e269c0143 -size 610259 diff --git a/Content/__ExternalActors__/Maps/L_World/8/RH/A3XWFRRKGQSUSBUX3UNJEB.uasset b/Content/__ExternalActors__/Maps/L_World/8/RH/A3XWFRRKGQSUSBUX3UNJEB.uasset deleted file mode 100644 index 4852770..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/RH/A3XWFRRKGQSUSBUX3UNJEB.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bc22e2b6cdfb6484f6aa8a602c05aacdea71bf5e6f3c1fe3735718e6c870c53e -size 607219 diff --git a/Content/__ExternalActors__/Maps/L_World/8/RO/5DSKIYPDUWYMAZ7B6J8YO6.uasset b/Content/__ExternalActors__/Maps/L_World/8/RO/5DSKIYPDUWYMAZ7B6J8YO6.uasset deleted file mode 100644 index 3486873..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/RO/5DSKIYPDUWYMAZ7B6J8YO6.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:554179d9c04bdde7c11bc277064fd779659933019ee5c568203053f28b26bd33 -size 612417 diff --git a/Content/__ExternalActors__/Maps/L_World/8/S0/PMZ0M92IOF28YBRWAEGEA1.uasset b/Content/__ExternalActors__/Maps/L_World/8/S0/PMZ0M92IOF28YBRWAEGEA1.uasset deleted file mode 100644 index 657cb01..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/S0/PMZ0M92IOF28YBRWAEGEA1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6a2a3b0bd344466d9dcf21f9afea38c72b2ad90a82fe70b410bba248907a3d86 -size 384618 diff --git a/Content/__ExternalActors__/Maps/L_World/8/TD/SUD3ENPBM4GWV7MBN4L1RO.uasset b/Content/__ExternalActors__/Maps/L_World/8/TD/SUD3ENPBM4GWV7MBN4L1RO.uasset deleted file mode 100644 index e8ceee1..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/TD/SUD3ENPBM4GWV7MBN4L1RO.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f55b639e20a759b999b508e9a345c33c6db56b863f581ddd1fd646ad447186d3 -size 434942 diff --git a/Content/__ExternalActors__/Maps/L_World/8/TM/ERJ7PIWYRFP5SI8XHYPOOM.uasset b/Content/__ExternalActors__/Maps/L_World/8/TM/ERJ7PIWYRFP5SI8XHYPOOM.uasset new file mode 100644 index 0000000..80850c2 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/TM/ERJ7PIWYRFP5SI8XHYPOOM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75d1e580236cbd54c0df6c46ec747ecf738c28b796429a3f5f936e4bc3ab954e +size 582309 diff --git a/Content/__ExternalActors__/Maps/L_World/8/VK/RFE5V0ZZPD8A7FR1N93D2E.uasset b/Content/__ExternalActors__/Maps/L_World/8/VK/RFE5V0ZZPD8A7FR1N93D2E.uasset new file mode 100644 index 0000000..7ee78bb --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/VK/RFE5V0ZZPD8A7FR1N93D2E.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a3757b15e064881c3a7e6705376fe6c0ce83cd0ecc1a3d2e334aff73c6fc05e +size 425040 diff --git a/Content/__ExternalActors__/Maps/L_World/8/X2/UKT6ZMA40NZV1C6AEBPDWV.uasset b/Content/__ExternalActors__/Maps/L_World/8/X2/UKT6ZMA40NZV1C6AEBPDWV.uasset new file mode 100644 index 0000000..aa5d150 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/X2/UKT6ZMA40NZV1C6AEBPDWV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:503e33f1b7a40fc7b396a937b386237ce6d42d72f64c99e096aa50580d1b8b6d +size 685549 diff --git a/Content/__ExternalActors__/Maps/L_World/8/XC/E5EO22VWABZKCY7NH9MJYP.uasset b/Content/__ExternalActors__/Maps/L_World/8/XC/E5EO22VWABZKCY7NH9MJYP.uasset deleted file mode 100644 index 67f4c72..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/XC/E5EO22VWABZKCY7NH9MJYP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2eafeb91c862184e2a6bfdb804bd86fb95325aa20a2ea05c185c07e7c9b1e7ca -size 379681 diff --git a/Content/__ExternalActors__/Maps/L_World/8/YE/FT3JXEGWI3WJXSRZ1C1RZN.uasset b/Content/__ExternalActors__/Maps/L_World/8/YE/FT3JXEGWI3WJXSRZ1C1RZN.uasset new file mode 100644 index 0000000..8ce293f --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/YE/FT3JXEGWI3WJXSRZ1C1RZN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ded0d665cffa65c01ebd8a2f1c6f18ec6291f608d4c6e1d9075af17a463b0677 +size 531979 diff --git a/Content/__ExternalActors__/Maps/L_World/8/YM/JRGE4QNNF53CW0B6CRD5KK.uasset b/Content/__ExternalActors__/Maps/L_World/8/YM/JRGE4QNNF53CW0B6CRD5KK.uasset new file mode 100644 index 0000000..e999106 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/YM/JRGE4QNNF53CW0B6CRD5KK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de5d842a3d66188e5f233dae2dae0606aad58ee354179061cd56e8499633990d +size 284756 diff --git a/Content/__ExternalActors__/Maps/L_World/8/ZH/IOQYPFINAV05JRWAQ2IYPS.uasset b/Content/__ExternalActors__/Maps/L_World/8/ZH/IOQYPFINAV05JRWAQ2IYPS.uasset new file mode 100644 index 0000000..72f7bfb --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/8/ZH/IOQYPFINAV05JRWAQ2IYPS.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b653af9603dddb988206868e2d0a23ccd2f8a86e4c7f12bc02dd74c2cd923255 +size 611129 diff --git a/Content/__ExternalActors__/Maps/L_World/8/ZN/BA3VC3TCNSGVQRSTZY8TMZ.uasset b/Content/__ExternalActors__/Maps/L_World/8/ZN/BA3VC3TCNSGVQRSTZY8TMZ.uasset deleted file mode 100644 index 7388719..0000000 --- a/Content/__ExternalActors__/Maps/L_World/8/ZN/BA3VC3TCNSGVQRSTZY8TMZ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3239b72977ff50a5c9e360280c17067aa64d1bb1e0b321d691b208ee94a5079b -size 395601 diff --git a/Content/__ExternalActors__/Maps/L_World/9/2M/W15M7UAY0DF57MKNUM9M4I.uasset b/Content/__ExternalActors__/Maps/L_World/9/2M/W15M7UAY0DF57MKNUM9M4I.uasset deleted file mode 100644 index acd2944..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/2M/W15M7UAY0DF57MKNUM9M4I.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c6c65925fb68d9c31bb554cb1b10f74940f4a38e13dae0ee3a0e34d1c83eeff6 -size 3538 diff --git a/Content/__ExternalActors__/Maps/L_World/9/32/GJAYY30UAGBMNZT78KO847.uasset b/Content/__ExternalActors__/Maps/L_World/9/32/GJAYY30UAGBMNZT78KO847.uasset deleted file mode 100644 index cf06977..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/32/GJAYY30UAGBMNZT78KO847.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0fd5e9822051286f20bc21744fbed7c609bab76086d88c46f0d0d16bb5dccfb6 -size 586713 diff --git a/Content/__ExternalActors__/Maps/L_World/9/51/N1TS9EB9AYS9FJ1NKYFD4A.uasset b/Content/__ExternalActors__/Maps/L_World/9/51/N1TS9EB9AYS9FJ1NKYFD4A.uasset deleted file mode 100644 index 853a88e..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/51/N1TS9EB9AYS9FJ1NKYFD4A.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:da9691163e372d2086ccc143371240d4f2a5bcfa1b38ba3e6addbed66057994b -size 421748 diff --git a/Content/__ExternalActors__/Maps/L_World/9/8K/SPMSHCZNXR7ZJJNSPF9G8Y.uasset b/Content/__ExternalActors__/Maps/L_World/9/8K/SPMSHCZNXR7ZJJNSPF9G8Y.uasset deleted file mode 100644 index 1d4a10a..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/8K/SPMSHCZNXR7ZJJNSPF9G8Y.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:99b8b3f96f2e5e73af86493437708da38a356cf31a27b5456b955789e0bb31dd -size 364370 diff --git a/Content/__ExternalActors__/Maps/L_World/9/96/V5NCA5V4TFUNSBP76QBNB7.uasset b/Content/__ExternalActors__/Maps/L_World/9/96/V5NCA5V4TFUNSBP76QBNB7.uasset new file mode 100644 index 0000000..53ffa71 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/96/V5NCA5V4TFUNSBP76QBNB7.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7c6e93a51a0a88bbab16c323b6ebaf244bb6e316c8c66c38ec68f052ece0c35 +size 276199 diff --git a/Content/__ExternalActors__/Maps/L_World/9/9F/B36X9DDGW43X0JDPK06ZVB.uasset b/Content/__ExternalActors__/Maps/L_World/9/9F/B36X9DDGW43X0JDPK06ZVB.uasset new file mode 100644 index 0000000..b90670b --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/9F/B36X9DDGW43X0JDPK06ZVB.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5471e1ba1e62a67086f3a59a10f64cf8e365c2f7cf6a60a8f1e736c9415a1d56 +size 651399 diff --git a/Content/__ExternalActors__/Maps/L_World/3/UB/1Y5XSFYOXPHFG9V6X1EYK0.uasset b/Content/__ExternalActors__/Maps/L_World/9/9F/FG66D5FP9E4YXWESVLTQOF.uasset similarity index 81% rename from Content/__ExternalActors__/Maps/L_World/3/UB/1Y5XSFYOXPHFG9V6X1EYK0.uasset rename to Content/__ExternalActors__/Maps/L_World/9/9F/FG66D5FP9E4YXWESVLTQOF.uasset index 78e1db1..37a606c 100644 --- a/Content/__ExternalActors__/Maps/L_World/3/UB/1Y5XSFYOXPHFG9V6X1EYK0.uasset +++ b/Content/__ExternalActors__/Maps/L_World/9/9F/FG66D5FP9E4YXWESVLTQOF.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1932ebace1262c6e712adbd7f121cb4d63b7a0e6e5c5cfdd52dc45777c8b3a5e -size 393187 +oid sha256:f1302be8b6d0f1957c926040c33f8cafc28651c5b1862f3390ac88f50478ce1b +size 645579 diff --git a/Content/__ExternalActors__/Maps/L_World/9/CP/Z3SZBITSVONS0MK8CC0KBP.uasset b/Content/__ExternalActors__/Maps/L_World/9/CP/Z3SZBITSVONS0MK8CC0KBP.uasset deleted file mode 100644 index 4b534e6..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/CP/Z3SZBITSVONS0MK8CC0KBP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:be65b390a0018a5b4dcdb23f4b7892a0a7dee6b61d29531a62dc82d6f6211b1f -size 6263 diff --git a/Content/__ExternalActors__/Maps/L_World/9/CX/CCMKKQVZHRK8UFJDWU2GDA.uasset b/Content/__ExternalActors__/Maps/L_World/9/CX/CCMKKQVZHRK8UFJDWU2GDA.uasset new file mode 100644 index 0000000..d7e128f --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/CX/CCMKKQVZHRK8UFJDWU2GDA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:624f410d13b57e7e518486ef8f3d47187d4fc47a9574b7906c7fe7b8366c3ff1 +size 580552 diff --git a/Content/__ExternalActors__/Maps/L_World/9/D0/DZGOSVCUEXEMKMI2NAMGLL.uasset b/Content/__ExternalActors__/Maps/L_World/9/D0/DZGOSVCUEXEMKMI2NAMGLL.uasset deleted file mode 100644 index 44f116e..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/D0/DZGOSVCUEXEMKMI2NAMGLL.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3ca61b4201cbe06c56bf582a2c85f452e8da255ca452dd6d46d0af40c8e64123 -size 567947 diff --git a/Content/__ExternalActors__/Maps/L_World/9/EX/707TBR4NV1EBOSZQCPK3SB.uasset b/Content/__ExternalActors__/Maps/L_World/9/EX/707TBR4NV1EBOSZQCPK3SB.uasset new file mode 100644 index 0000000..35666fc --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/EX/707TBR4NV1EBOSZQCPK3SB.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b52f1cd1964ca311e2aaaa473f1c5f8518a18963c101773c5e82565a4fd7dd5d +size 666012 diff --git a/Content/__ExternalActors__/Maps/L_World/9/G4/Y7S9HPDOSI2NGTYGV2YZ22.uasset b/Content/__ExternalActors__/Maps/L_World/9/G4/Y7S9HPDOSI2NGTYGV2YZ22.uasset new file mode 100644 index 0000000..94eaacd --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/G4/Y7S9HPDOSI2NGTYGV2YZ22.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:899ad4c028e406195f06279c797ae994af565e5c87efb4f348660b5ded0003e7 +size 542774 diff --git a/Content/__ExternalActors__/Maps/L_World/9/G5/3DQHS6L9TS0EKIVHJJGEZ2.uasset b/Content/__ExternalActors__/Maps/L_World/9/G5/3DQHS6L9TS0EKIVHJJGEZ2.uasset new file mode 100644 index 0000000..27f30ef --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/G5/3DQHS6L9TS0EKIVHJJGEZ2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0a9d5ef1506c1647b2474b4f2145514bacc9dd58987e3ded04a467e8b774f1c +size 671227 diff --git a/Content/__ExternalActors__/Maps/L_World/9/HK/KZ1RYWRHQ515KQYTNPKFDH.uasset b/Content/__ExternalActors__/Maps/L_World/9/HK/KZ1RYWRHQ515KQYTNPKFDH.uasset deleted file mode 100644 index 6d929d3..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/HK/KZ1RYWRHQ515KQYTNPKFDH.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e7148e782b857b193bbd94fff1a37a2af995ede2314a4079002f08edc40f5be3 -size 464592 diff --git a/Content/__ExternalActors__/Maps/L_World/9/HU/JHZ04PUFX77H9KYIE1GGA5.uasset b/Content/__ExternalActors__/Maps/L_World/9/HU/JHZ04PUFX77H9KYIE1GGA5.uasset deleted file mode 100644 index 116217f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/HU/JHZ04PUFX77H9KYIE1GGA5.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:03abd8998fc8245dae07c535174e0bcf4afb3c82a6a2a150e77edbe3eb599968 -size 626923 diff --git a/Content/__ExternalActors__/Maps/L_World/9/I4/5LQOJZK31FTRCIA5LMQFP7.uasset b/Content/__ExternalActors__/Maps/L_World/9/I4/5LQOJZK31FTRCIA5LMQFP7.uasset deleted file mode 100644 index e9daa85..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/I4/5LQOJZK31FTRCIA5LMQFP7.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0b4b747e19bbf0d617cbe0a524e509d689bfdd98a46715fa1c3e61bddcb9c3e6 -size 612215 diff --git a/Content/__ExternalActors__/Maps/L_World/9/IY/MFSUVMWO7EH0294G3YT1OI.uasset b/Content/__ExternalActors__/Maps/L_World/9/IY/MFSUVMWO7EH0294G3YT1OI.uasset deleted file mode 100644 index 6914e29..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/IY/MFSUVMWO7EH0294G3YT1OI.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a7bc2345edfeff84440b0ac0ac470507d0fc4221a510b0e162854f2e27d2b026 -size 501998 diff --git a/Content/__ExternalActors__/Maps/L_World/9/J4/TGRL5W3TDKM8XIFJ5L651O.uasset b/Content/__ExternalActors__/Maps/L_World/9/J4/TGRL5W3TDKM8XIFJ5L651O.uasset deleted file mode 100644 index 825086b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/J4/TGRL5W3TDKM8XIFJ5L651O.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a81b24bdec2eb18285b979dfad195532f4be75ea7872ce700fc51653cd913749 -size 405500 diff --git a/Content/__ExternalActors__/Maps/L_World/9/J9/W3Y8AJNC55BC4KKRL0YMEB.uasset b/Content/__ExternalActors__/Maps/L_World/9/J9/W3Y8AJNC55BC4KKRL0YMEB.uasset new file mode 100644 index 0000000..ad8e4e3 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/J9/W3Y8AJNC55BC4KKRL0YMEB.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e9025fe7e805021087d5dca7da8ec9441a3321862fea491d5618f4f57935ed4 +size 570511 diff --git a/Content/__ExternalActors__/Maps/L_World/9/K9/VIUKGUAQKGTX7BCWU3WKNZ.uasset b/Content/__ExternalActors__/Maps/L_World/9/K9/VIUKGUAQKGTX7BCWU3WKNZ.uasset deleted file mode 100644 index 4afe893..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/K9/VIUKGUAQKGTX7BCWU3WKNZ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bd7e69265d8a1933e66ce41b1652353afe270f68c48e0e5d339314a3d2aba1e0 -size 623675 diff --git a/Content/__ExternalActors__/Maps/L_World/9/KF/L0LPNW5K0JOZSHSR185D8V.uasset b/Content/__ExternalActors__/Maps/L_World/9/KF/L0LPNW5K0JOZSHSR185D8V.uasset deleted file mode 100644 index f22d16f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/KF/L0LPNW5K0JOZSHSR185D8V.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:143812fcf6078501a0a1b594d96507ced4467a6196fe531570a701ff29400aa3 -size 367898 diff --git a/Content/__ExternalActors__/Maps/L_World/9/MU/EKTCF0AZ5GZRV49V08TNCT.uasset b/Content/__ExternalActors__/Maps/L_World/9/MU/EKTCF0AZ5GZRV49V08TNCT.uasset new file mode 100644 index 0000000..b81e01f --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/MU/EKTCF0AZ5GZRV49V08TNCT.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a69c9825f915710ec147775c1fdcae56fccfdb74afccd54119563b9f06612f7b +size 687521 diff --git a/Content/__ExternalActors__/Maps/L_World/9/NN/EC0LMIB73OEOBTHZP5USO0.uasset b/Content/__ExternalActors__/Maps/L_World/9/NN/EC0LMIB73OEOBTHZP5USO0.uasset new file mode 100644 index 0000000..0fa0186 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/NN/EC0LMIB73OEOBTHZP5USO0.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:276aaca28e8ba5e19d20f18076b66f02ac02d2640b92c3d11c5193d1e411545d +size 331731 diff --git a/Content/__ExternalActors__/Maps/L_World/9/P0/HQTZIA8DMRYAPJD4H0USTU.uasset b/Content/__ExternalActors__/Maps/L_World/9/P0/HQTZIA8DMRYAPJD4H0USTU.uasset deleted file mode 100644 index b42ec9b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/P0/HQTZIA8DMRYAPJD4H0USTU.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b1e3f968bf2c066e7ac6558b363f30ae310f8907934d82aa390ce02ad5566ba7 -size 472004 diff --git a/Content/__ExternalActors__/Maps/L_World/9/P8/69IU1VWPA9JO2RIK96ZA0S.uasset b/Content/__ExternalActors__/Maps/L_World/9/P8/69IU1VWPA9JO2RIK96ZA0S.uasset deleted file mode 100644 index 5bacc15..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/P8/69IU1VWPA9JO2RIK96ZA0S.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:770bd56cc5fa77beecc86ef3cd0384b4d4640149f96809b4bccc990faababee1 -size 615946 diff --git a/Content/__ExternalActors__/Maps/L_World/9/P8/UNZ2OILD1JE0G742POVCU4.uasset b/Content/__ExternalActors__/Maps/L_World/9/P8/UNZ2OILD1JE0G742POVCU4.uasset new file mode 100644 index 0000000..61a6cfb --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/P8/UNZ2OILD1JE0G742POVCU4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05eea0946ab2efcb7269e5019c76357dae26485be387c78c380eacc082298290 +size 441491 diff --git a/Content/__ExternalActors__/Maps/L_World/9/PL/98EJD9C5AGI5U97OQJEW8U.uasset b/Content/__ExternalActors__/Maps/L_World/9/PL/98EJD9C5AGI5U97OQJEW8U.uasset deleted file mode 100644 index 3f78d07..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/PL/98EJD9C5AGI5U97OQJEW8U.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0ea2cea7c61291b4a27d467e74e9ac54e868950fdb956b9e855eb5bb0c960fe -size 636080 diff --git a/Content/__ExternalActors__/Maps/L_World/9/PS/J9YXKINK47CTHUFJ9IXH41.uasset b/Content/__ExternalActors__/Maps/L_World/9/PS/J9YXKINK47CTHUFJ9IXH41.uasset new file mode 100644 index 0000000..a01457f --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/PS/J9YXKINK47CTHUFJ9IXH41.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:450d7323fe68cc67946608a3c896126e4adaf5b896e2315006189732cdff63b3 +size 656253 diff --git a/Content/__ExternalActors__/Maps/L_World/9/PV/R12GELMH91GCJB5MQQX315.uasset b/Content/__ExternalActors__/Maps/L_World/9/PV/R12GELMH91GCJB5MQQX315.uasset deleted file mode 100644 index b6ef92b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/PV/R12GELMH91GCJB5MQQX315.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b073b9bfd810553ee01249550918781550cbcedf9cdf2d9330807f3e1f2e7d2d -size 480917 diff --git a/Content/__ExternalActors__/Maps/L_World/9/R3/6N7Z6S8OPNBD8J08FM1LUE.uasset b/Content/__ExternalActors__/Maps/L_World/9/R3/6N7Z6S8OPNBD8J08FM1LUE.uasset new file mode 100644 index 0000000..15bcf3e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/R3/6N7Z6S8OPNBD8J08FM1LUE.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f4bed97c56306d4d50f0ce446c7ae9f0c6dc422472936dd548057f0bdb7bae2 +size 728014 diff --git a/Content/__ExternalActors__/Maps/L_World/9/RW/OI9D6FAEHMFTO6WPB7CMTP.uasset b/Content/__ExternalActors__/Maps/L_World/9/RW/OI9D6FAEHMFTO6WPB7CMTP.uasset deleted file mode 100644 index 4f97c52..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/RW/OI9D6FAEHMFTO6WPB7CMTP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d2b20d5826c95d0ac7d23b162df234c5bdd3e3064725679cea13d792b930607c -size 584939 diff --git a/Content/__ExternalActors__/Maps/L_World/9/TU/ZQWIKCXGDYHNNGN74T0LUI.uasset b/Content/__ExternalActors__/Maps/L_World/9/TU/ZQWIKCXGDYHNNGN74T0LUI.uasset new file mode 100644 index 0000000..4f42b63 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/TU/ZQWIKCXGDYHNNGN74T0LUI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ece67f0fb941a3036e28bc5cba9d39a8af4e90c54d0c3c61b9134cd55ffeea5 +size 366770 diff --git a/Content/__ExternalActors__/Maps/L_World/9/U3/TOSALV5OGOPPTMAT40ACT4.uasset b/Content/__ExternalActors__/Maps/L_World/9/U3/TOSALV5OGOPPTMAT40ACT4.uasset deleted file mode 100644 index c65d715..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/U3/TOSALV5OGOPPTMAT40ACT4.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1faf9b1b36b60188695054db38509a6ab23e602c1da3b3f6ac6a631e24d1e358 -size 4093 diff --git a/Content/__ExternalActors__/Maps/L_World/9/U7/L223U228CVF4ZBWP7H9KHF.uasset b/Content/__ExternalActors__/Maps/L_World/9/U7/L223U228CVF4ZBWP7H9KHF.uasset deleted file mode 100644 index 5560a25..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/U7/L223U228CVF4ZBWP7H9KHF.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1d064a0d9392a062452d3364e20a63e2c99f62eb418aa9f342a45eff425c0b99 -size 4065 diff --git a/Content/__ExternalActors__/Maps/L_World/9/V5/AZBAQPIG2FWPQW1V9DR5W2.uasset b/Content/__ExternalActors__/Maps/L_World/9/V5/AZBAQPIG2FWPQW1V9DR5W2.uasset new file mode 100644 index 0000000..c445a14 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/V5/AZBAQPIG2FWPQW1V9DR5W2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee3086d23ffd8459ea101377b5a2b4181eea1329f2fb5f47cb8cf52f16b6ca05 +size 458896 diff --git a/Content/__ExternalActors__/Maps/L_World/9/VD/N93BH2CJU9W5K9CCA7XNL6.uasset b/Content/__ExternalActors__/Maps/L_World/9/VD/N93BH2CJU9W5K9CCA7XNL6.uasset deleted file mode 100644 index 512bba4..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/VD/N93BH2CJU9W5K9CCA7XNL6.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1553ad5e881e52ff23886086f52cdd19d880053ba8b4e157ecd2525e6e4ae24d -size 369692 diff --git a/Content/__ExternalActors__/Maps/L_World/9/X3/QEITWRSX856BIQQZO6F92G.uasset b/Content/__ExternalActors__/Maps/L_World/9/X3/QEITWRSX856BIQQZO6F92G.uasset deleted file mode 100644 index 49ec6aa..0000000 --- a/Content/__ExternalActors__/Maps/L_World/9/X3/QEITWRSX856BIQQZO6F92G.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:908a2861006d41720a77d35d98ca7121ed953b2819fca4e33e3fe13ee5e5e878 -size 502096 diff --git a/Content/__ExternalActors__/Maps/L_World/9/YD/4QPCANLEOKLSUNMJW9AJOW.uasset b/Content/__ExternalActors__/Maps/L_World/9/YD/4QPCANLEOKLSUNMJW9AJOW.uasset new file mode 100644 index 0000000..4c61acf --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/YD/4QPCANLEOKLSUNMJW9AJOW.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6cf484baf8994bc44fc3099f7b2c11341f894146cf6b16a8bf0f67501eabf6a +size 337884 diff --git a/Content/__ExternalActors__/Maps/L_World/9/ZE/1L8SNS51GKIZWQAIUM6EW9.uasset b/Content/__ExternalActors__/Maps/L_World/9/ZE/1L8SNS51GKIZWQAIUM6EW9.uasset new file mode 100644 index 0000000..86c7253 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/9/ZE/1L8SNS51GKIZWQAIUM6EW9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64095b1f23a552a8870de6e2be089b67bacd12c33c0b0cc40dd82895637d6eea +size 9752 diff --git a/Content/__ExternalActors__/Maps/L_World/A/09/LR63KOVD9EKPN1FEMDEUPP.uasset b/Content/__ExternalActors__/Maps/L_World/A/09/LR63KOVD9EKPN1FEMDEUPP.uasset new file mode 100644 index 0000000..8835ae0 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/09/LR63KOVD9EKPN1FEMDEUPP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5d8d022ada6e58239de2725ff67b411624204ddd934f5f141be720adc32ed75 +size 531710 diff --git a/Content/__ExternalActors__/Maps/L_World/A/1V/E6P0JYKYR433208YQIA2T9.uasset b/Content/__ExternalActors__/Maps/L_World/A/1V/E6P0JYKYR433208YQIA2T9.uasset deleted file mode 100644 index 3af29fd..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/1V/E6P0JYKYR433208YQIA2T9.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b612208c1e46ab31f2e4a91c1f1cf126645085686ccf054d196689ff2d3d2044 -size 607778 diff --git a/Content/__ExternalActors__/Maps/L_World/A/2D/JWQZTGIY05ER0UDTZZS9S4.uasset b/Content/__ExternalActors__/Maps/L_World/A/2D/JWQZTGIY05ER0UDTZZS9S4.uasset new file mode 100644 index 0000000..0cfda32 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/2D/JWQZTGIY05ER0UDTZZS9S4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b49fa8d627a91b01e8f2c0eac97af230927791414302d6691c9bd3cb0e9af555 +size 625627 diff --git a/Content/__ExternalActors__/Maps/L_World/A/2G/10PGRF8HA1S7474U4LB9KP.uasset b/Content/__ExternalActors__/Maps/L_World/A/2G/10PGRF8HA1S7474U4LB9KP.uasset new file mode 100644 index 0000000..be1b8aa --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/2G/10PGRF8HA1S7474U4LB9KP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d9c1851934e0cf3f09b5992573f01c9b51d7af2ab87b4e7f2617011e0a2099a +size 487313 diff --git a/Content/__ExternalActors__/Maps/L_World/A/3Q/GZ8OIADOY71IG1XYW1JT05.uasset b/Content/__ExternalActors__/Maps/L_World/A/3Q/GZ8OIADOY71IG1XYW1JT05.uasset deleted file mode 100644 index 9e421c3..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/3Q/GZ8OIADOY71IG1XYW1JT05.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:55362d52390044b71deda678a29977b3c4fdb8680f5ea167ef43d2724b574ae5 -size 4093 diff --git a/Content/__ExternalActors__/Maps/L_World/A/5N/4VRPEQO8ES9AI06A782H0B.uasset b/Content/__ExternalActors__/Maps/L_World/A/5N/4VRPEQO8ES9AI06A782H0B.uasset deleted file mode 100644 index b583ce2..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/5N/4VRPEQO8ES9AI06A782H0B.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:233e2489cf948759f077cc5898615d5a94c670eabfb9e425f3fa7a8b561672bc -size 425224 diff --git a/Content/__ExternalActors__/Maps/L_World/A/92/LAC7HH7KAK4NKPSMIKT3UP.uasset b/Content/__ExternalActors__/Maps/L_World/A/92/LAC7HH7KAK4NKPSMIKT3UP.uasset deleted file mode 100644 index 40052fd..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/92/LAC7HH7KAK4NKPSMIKT3UP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:882dda048a0213e5c84abd8f8029a3458de7b8ed77fe744397153a22ec7d2d88 -size 368616 diff --git a/Content/__ExternalActors__/Maps/L_World/A/B4/DDLZ6QSR2Y29DJJR8COATG.uasset b/Content/__ExternalActors__/Maps/L_World/A/B4/DDLZ6QSR2Y29DJJR8COATG.uasset deleted file mode 100644 index 3f3187c..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/B4/DDLZ6QSR2Y29DJJR8COATG.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7409290687baa947d90f7119628f3cec2665bf8851da98b6bad73e9d1b2d3d4b -size 556174 diff --git a/Content/__ExternalActors__/Maps/L_World/A/BI/516AGSIN9HBOAGFGQI4ORP.uasset b/Content/__ExternalActors__/Maps/L_World/A/BI/516AGSIN9HBOAGFGQI4ORP.uasset deleted file mode 100644 index abb10c3..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/BI/516AGSIN9HBOAGFGQI4ORP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0b47fa62cf99b1874d8027f74af677d17a101b29d4ac1dc5ed62a53bcf6aa29 -size 629644 diff --git a/Content/__ExternalActors__/Maps/L_World/A/C3/M0TKEHWD0GUKZD1BQSA6J7.uasset b/Content/__ExternalActors__/Maps/L_World/A/C3/M0TKEHWD0GUKZD1BQSA6J7.uasset deleted file mode 100644 index dcb2f91..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/C3/M0TKEHWD0GUKZD1BQSA6J7.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8c87cf1adc154a30fb3eae0c0db76dfb1a385a6db0d9fe8ea4af039f1783f854 -size 366398 diff --git a/Content/__ExternalActors__/Maps/L_World/A/D8/115HJ145ENUFTMS80FQR8P.uasset b/Content/__ExternalActors__/Maps/L_World/A/D8/115HJ145ENUFTMS80FQR8P.uasset new file mode 100644 index 0000000..15a6af9 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/D8/115HJ145ENUFTMS80FQR8P.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33ff616c0ff59ac2318e3c146cff1eb016eb619cebd68921ba38841454c14a1d +size 553380 diff --git a/Content/__ExternalActors__/Maps/L_World/A/FX/IQNKRTYWGZFE2WJV4WQMWH.uasset b/Content/__ExternalActors__/Maps/L_World/A/FX/IQNKRTYWGZFE2WJV4WQMWH.uasset new file mode 100644 index 0000000..fd3c774 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/FX/IQNKRTYWGZFE2WJV4WQMWH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f78d7885418d68987c4b05ddcced8b1d4b96474575b0e846bf54abc0dca3e2da +size 588935 diff --git a/Content/__ExternalActors__/Maps/L_World/A/GM/KMGPR6Z0LY9Q8ZHOJSNZMT.uasset b/Content/__ExternalActors__/Maps/L_World/A/GM/KMGPR6Z0LY9Q8ZHOJSNZMT.uasset deleted file mode 100644 index 6be3fcd..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/GM/KMGPR6Z0LY9Q8ZHOJSNZMT.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:07a9009185b19314bfa93be11ba6319f969892b4d762cb8391c068b3c6ce64c4 -size 570134 diff --git a/Content/__ExternalActors__/Maps/L_World/A/H4/13E9W5MKJJD8V95FVS3GJN.uasset b/Content/__ExternalActors__/Maps/L_World/A/H4/13E9W5MKJJD8V95FVS3GJN.uasset new file mode 100644 index 0000000..4e0f4f2 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/H4/13E9W5MKJJD8V95FVS3GJN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d88d1b1935100511be4cfd6efb327bf24cdc778c16d1869fd45eaa3ecf34b6ab +size 683726 diff --git a/Content/__ExternalActors__/Maps/L_World/A/HI/BVZH1NFFAXQRI8OBQOT1AZ.uasset b/Content/__ExternalActors__/Maps/L_World/A/HI/BVZH1NFFAXQRI8OBQOT1AZ.uasset deleted file mode 100644 index 88a0922..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/HI/BVZH1NFFAXQRI8OBQOT1AZ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:70f9a3e0e63c05cd0e369b6e3b20dfa622997c4d319d0a0ee6988cdaf8fd718c -size 607559 diff --git a/Content/__ExternalActors__/Maps/L_World/A/IS/87JIC28G61WQC5AC1FJYK9.uasset b/Content/__ExternalActors__/Maps/L_World/A/IS/87JIC28G61WQC5AC1FJYK9.uasset new file mode 100644 index 0000000..ea45d1f --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/IS/87JIC28G61WQC5AC1FJYK9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6558ed368197f402b6a6d169c8c1f5b13a7ef206de42058c87ccd2df4998cec5 +size 503294 diff --git a/Content/__ExternalActors__/Maps/L_World/A/J7/LC2UK2NKVW1VS6D8RDL3YY.uasset b/Content/__ExternalActors__/Maps/L_World/A/J7/LC2UK2NKVW1VS6D8RDL3YY.uasset deleted file mode 100644 index 0e4dc16..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/J7/LC2UK2NKVW1VS6D8RDL3YY.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d2b35d2462ee8d309ee06dfffcf898b47c0d3d01bd13888c97703a29a233369d -size 623994 diff --git a/Content/__ExternalActors__/Maps/L_World/A/KB/GMC47FOJGQ1V7NW0OZ229N.uasset b/Content/__ExternalActors__/Maps/L_World/A/KB/GMC47FOJGQ1V7NW0OZ229N.uasset deleted file mode 100644 index fe9d6c0..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/KB/GMC47FOJGQ1V7NW0OZ229N.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f2026265e12b7ba1cda569dfeb6c4a8e5d7440ed7cae23b7a2477a1117d95a85 -size 584200 diff --git a/Content/__ExternalActors__/Maps/L_World/A/KR/DK061LTQI4W4VG0YQFYHND.uasset b/Content/__ExternalActors__/Maps/L_World/A/KR/DK061LTQI4W4VG0YQFYHND.uasset new file mode 100644 index 0000000..278a217 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/KR/DK061LTQI4W4VG0YQFYHND.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22aca8c5740ba4b41a5cf8769fa33fdf3cec9b2336a348f14162676be0118edd +size 742815 diff --git a/Content/__ExternalActors__/Maps/L_World/A/MO/ZNQN33CZRQDZN02DEHVYLI.uasset b/Content/__ExternalActors__/Maps/L_World/A/MO/ZNQN33CZRQDZN02DEHVYLI.uasset new file mode 100644 index 0000000..f61b6be --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/MO/ZNQN33CZRQDZN02DEHVYLI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc050c95438736a879149f46f67bc0745d7cb7655bbfc5dc7964ca332d69ec46 +size 4093 diff --git a/Content/__ExternalActors__/Maps/L_World/A/MR/UYMV9LTN0E9HMU9V4G3MMQ.uasset b/Content/__ExternalActors__/Maps/L_World/A/MR/UYMV9LTN0E9HMU9V4G3MMQ.uasset deleted file mode 100644 index e71426c..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/MR/UYMV9LTN0E9HMU9V4G3MMQ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b22be734fb7243ecaff6e227f456b3594bb9bb160f1ae877bb543e12819deea6 -size 493358 diff --git a/Content/__ExternalActors__/Maps/L_World/A/O3/LSBUUT9G2U07T2JDCFC5GH.uasset b/Content/__ExternalActors__/Maps/L_World/A/O3/LSBUUT9G2U07T2JDCFC5GH.uasset new file mode 100644 index 0000000..008d8a0 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/O3/LSBUUT9G2U07T2JDCFC5GH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7aa636c92a8e688d590bd91ca826e6d6118b77cdf8e53a34330ce19451be5fe +size 708598 diff --git a/Content/__ExternalActors__/Maps/L_World/A/OJ/A4O83FNNW4LQ7SPI5UGMCF.uasset b/Content/__ExternalActors__/Maps/L_World/A/OJ/A4O83FNNW4LQ7SPI5UGMCF.uasset deleted file mode 100644 index 00cc084..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/OJ/A4O83FNNW4LQ7SPI5UGMCF.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2ee34d5b58ee8a15e006ba56cd2e5b2c9a57810d56b60408d41510670f68879d -size 501074 diff --git a/Content/__ExternalActors__/Maps/L_World/A/PO/FR28L8XXTOYVLNANW4I5VL.uasset b/Content/__ExternalActors__/Maps/L_World/A/PO/FR28L8XXTOYVLNANW4I5VL.uasset deleted file mode 100644 index 9d5cf5a..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/PO/FR28L8XXTOYVLNANW4I5VL.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5bde62fab75af0d2171d28dfa1217d006dfeca9bdfa6c58877556e62f1850750 -size 366275 diff --git a/Content/__ExternalActors__/Maps/L_World/A/PP/992BSX0PD9X5W9PZFSG6NQ.uasset b/Content/__ExternalActors__/Maps/L_World/A/PP/992BSX0PD9X5W9PZFSG6NQ.uasset deleted file mode 100644 index 33f8471..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/PP/992BSX0PD9X5W9PZFSG6NQ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b8c51f93b6cf04276aa77c04946d7a05ba6b4bebfeefc7486108f7f2354305b8 -size 585914 diff --git a/Content/__ExternalActors__/Maps/L_World/A/Q0/ZVZYY6QE49W4WH3TAFAPK9.uasset b/Content/__ExternalActors__/Maps/L_World/A/Q0/ZVZYY6QE49W4WH3TAFAPK9.uasset deleted file mode 100644 index 35dd13c..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/Q0/ZVZYY6QE49W4WH3TAFAPK9.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:06314498be15dbdc1235345e935b4d2115ed26e6203c01e5bb8daf95b552fef8 -size 492215 diff --git a/Content/__ExternalActors__/Maps/L_World/A/Q5/TO8WAOO7568B55FRLSOHP0.uasset b/Content/__ExternalActors__/Maps/L_World/A/Q5/TO8WAOO7568B55FRLSOHP0.uasset deleted file mode 100644 index da13579..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/Q5/TO8WAOO7568B55FRLSOHP0.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dc84a3a9704a64082a08a0fdee039d97d035d2ead92735e62b36ec7d145506a7 -size 461235 diff --git a/Content/__ExternalActors__/Maps/L_World/A/RG/H761A2I7R0YCTJWFM0ZT2G.uasset b/Content/__ExternalActors__/Maps/L_World/A/RG/H761A2I7R0YCTJWFM0ZT2G.uasset new file mode 100644 index 0000000..c24e969 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/RG/H761A2I7R0YCTJWFM0ZT2G.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9fb3f179404edc2571ea2fa5a128977b8e7e4fd0ed26a6242fab63b5989c364 +size 623119 diff --git a/Content/__ExternalActors__/Maps/L_World/A/RP/SEJTHFPOXH2OBS4YNNO5IH.uasset b/Content/__ExternalActors__/Maps/L_World/A/RP/SEJTHFPOXH2OBS4YNNO5IH.uasset new file mode 100644 index 0000000..ddc4a36 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/A/RP/SEJTHFPOXH2OBS4YNNO5IH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7458f753ea61b0cf18fde31257209aab4df08dc565948670e70220f070555bd1 +size 437169 diff --git a/Content/__ExternalActors__/Maps/L_World/A/SH/L8U6JSRYUB6NZR98SDGOLZ.uasset b/Content/__ExternalActors__/Maps/L_World/A/SH/L8U6JSRYUB6NZR98SDGOLZ.uasset deleted file mode 100644 index a945fed..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/SH/L8U6JSRYUB6NZR98SDGOLZ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:54b5dd89d26c7381e11787ab87672bf4b3fc5585c159b242a83ebd52f0f7f21a -size 596355 diff --git a/Content/__ExternalActors__/Maps/L_World/A/VW/JM3QORRZOK2G6T8FB7LGUE.uasset b/Content/__ExternalActors__/Maps/L_World/A/VW/JM3QORRZOK2G6T8FB7LGUE.uasset deleted file mode 100644 index 18cb231..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/VW/JM3QORRZOK2G6T8FB7LGUE.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2794a96db8eb3f5ae4c591df6e00768bca0fd4e68a231a151a23fd489d945e5f -size 641160 diff --git a/Content/__ExternalActors__/Maps/L_World/A/WU/5TE6O6IMUANQ22D1IY4X9T.uasset b/Content/__ExternalActors__/Maps/L_World/A/WU/5TE6O6IMUANQ22D1IY4X9T.uasset deleted file mode 100644 index b4013c4..0000000 --- a/Content/__ExternalActors__/Maps/L_World/A/WU/5TE6O6IMUANQ22D1IY4X9T.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:414bafd113db9a6b00411276f15dcb8d00f67ca633ff39c5109e5bc6fab572d2 -size 622046 diff --git a/Content/__ExternalActors__/Maps/L_World/B/2F/OFMC83MJJYP5EW1F34WYL3.uasset b/Content/__ExternalActors__/Maps/L_World/B/2F/OFMC83MJJYP5EW1F34WYL3.uasset new file mode 100644 index 0000000..ab64fb0 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/2F/OFMC83MJJYP5EW1F34WYL3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:539126dd22a32c46008cf0e97a53c2ff07c4e7eb6aa3a0fc26a2f9066ad13c2b +size 417998 diff --git a/Content/__ExternalActors__/Maps/L_World/B/3V/1FLY32HF82OQMCLL1EVIHN.uasset b/Content/__ExternalActors__/Maps/L_World/B/3V/1FLY32HF82OQMCLL1EVIHN.uasset new file mode 100644 index 0000000..e5e4867 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/3V/1FLY32HF82OQMCLL1EVIHN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cabc9c90913b54264873b5ca68e3556967c70a7e7cf70a539c7859d53fd78e4d +size 564332 diff --git a/Content/__ExternalActors__/Maps/L_World/B/59/Y0KRX416QNBGNJVUMX9K3C.uasset b/Content/__ExternalActors__/Maps/L_World/B/59/Y0KRX416QNBGNJVUMX9K3C.uasset new file mode 100644 index 0000000..f2a54e9 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/59/Y0KRX416QNBGNJVUMX9K3C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1de0342d9a6dadd141b60458e10f037cfc6b1721d285bf1ad6cb8d2a5386cb45 +size 278314 diff --git a/Content/__ExternalActors__/Maps/L_World/B/5U/SZ72P7IMAAIAATQZZCQ4ZU.uasset b/Content/__ExternalActors__/Maps/L_World/B/5U/SZ72P7IMAAIAATQZZCQ4ZU.uasset new file mode 100644 index 0000000..1d1226c --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/5U/SZ72P7IMAAIAATQZZCQ4ZU.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6480d961ee612f4581971cfd33a3c3b9393cef353e01ff9bb7631c6ae25dee9 +size 666709 diff --git a/Content/__ExternalActors__/Maps/L_World/B/5W/8OXKR0B22CE768VIJ906EY.uasset b/Content/__ExternalActors__/Maps/L_World/B/5W/8OXKR0B22CE768VIJ906EY.uasset new file mode 100644 index 0000000..2dc7daa --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/5W/8OXKR0B22CE768VIJ906EY.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9d1ecd4abf2dc83433184b8b48c2a4dc3d8ab39536e64851c1ffd231adada2a +size 445169 diff --git a/Content/__ExternalActors__/Maps/L_World/B/61/RQQPPNI8NQMV7L7BUO5QR9.uasset b/Content/__ExternalActors__/Maps/L_World/B/61/RQQPPNI8NQMV7L7BUO5QR9.uasset deleted file mode 100644 index 52005f0..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/61/RQQPPNI8NQMV7L7BUO5QR9.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ca4b5c0a35c89e74d02054c03df686d6e8a71f3d23d8578b0d902a897e0194b0 -size 457634 diff --git a/Content/__ExternalActors__/Maps/L_World/B/7O/CE95OD6AWXBBLHDQXXJKR5.uasset b/Content/__ExternalActors__/Maps/L_World/B/7O/CE95OD6AWXBBLHDQXXJKR5.uasset new file mode 100644 index 0000000..008ab3b --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/7O/CE95OD6AWXBBLHDQXXJKR5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81a0f620e62850978a1c590fbdd6b8690ba95194a4444d1812430ae3cb3c2442 +size 531498 diff --git a/Content/__ExternalActors__/Maps/L_World/B/8O/LJFVT999CGX7ODV0CVE5WS.uasset b/Content/__ExternalActors__/Maps/L_World/B/8O/LJFVT999CGX7ODV0CVE5WS.uasset deleted file mode 100644 index 45b2682..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/8O/LJFVT999CGX7ODV0CVE5WS.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:097b9a89d421e4b108575f49de9cc0156867619cfb88055571850ec683836261 -size 596657 diff --git a/Content/__ExternalActors__/Maps/L_World/B/8V/CO7E3RAVS7R9NUAKCE3J6Q.uasset b/Content/__ExternalActors__/Maps/L_World/B/8V/CO7E3RAVS7R9NUAKCE3J6Q.uasset new file mode 100644 index 0000000..5086a91 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/8V/CO7E3RAVS7R9NUAKCE3J6Q.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4efb7f0e273c199d1f09f1dab08fbb8c3b4f3713e6c3759da20ecd7742ac933 +size 598861 diff --git a/Content/__ExternalActors__/Maps/L_World/B/AR/GKL2QJ5AM1BQPA7BYSO6IC.uasset b/Content/__ExternalActors__/Maps/L_World/B/AR/GKL2QJ5AM1BQPA7BYSO6IC.uasset new file mode 100644 index 0000000..1673af3 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/AR/GKL2QJ5AM1BQPA7BYSO6IC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f39d65d1f7a85a4d16a57b4198a92e44ccad61b1c5d74167bccf9e5dd8af29fb +size 695558 diff --git a/Content/__ExternalActors__/Maps/L_World/B/B6/N7HV8SLEXSY62ACLQJ4HM3.uasset b/Content/__ExternalActors__/Maps/L_World/B/B6/N7HV8SLEXSY62ACLQJ4HM3.uasset new file mode 100644 index 0000000..636ea02 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/B6/N7HV8SLEXSY62ACLQJ4HM3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:953914fe2e6155a174498fa52777efcb4fd0eb1bd13a92a6dd0ca8eb93aadd3f +size 440574 diff --git a/Content/__ExternalActors__/Maps/L_World/B/BB/UWSCS5PILVTXJDLCHYSWVV.uasset b/Content/__ExternalActors__/Maps/L_World/B/BB/UWSCS5PILVTXJDLCHYSWVV.uasset deleted file mode 100644 index 5e877b3..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/BB/UWSCS5PILVTXJDLCHYSWVV.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dc3a4f64d4a7d64f3769f0fdf98bbb4b6186ff65cc80b769f01f4ba1b52c954f -size 626185 diff --git a/Content/__ExternalActors__/Maps/L_World/B/BG/PHJ78JPNTS7OCY5XHA06B5.uasset b/Content/__ExternalActors__/Maps/L_World/B/BG/PHJ78JPNTS7OCY5XHA06B5.uasset deleted file mode 100644 index e58daf5..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/BG/PHJ78JPNTS7OCY5XHA06B5.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b2fc0b8ed8af40e1a37fad794805ea2b24bbdee5098fc2295e8ea8300a30cd79 -size 618127 diff --git a/Content/__ExternalActors__/Maps/L_World/B/CM/LW2RD04LOTESDZWPWH2X6J.uasset b/Content/__ExternalActors__/Maps/L_World/B/CM/LW2RD04LOTESDZWPWH2X6J.uasset deleted file mode 100644 index f5779b4..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/CM/LW2RD04LOTESDZWPWH2X6J.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9d53e699609a2058ac6dfe0582bcba2c2834bb3fe836608d238a4073b2121d94 -size 582642 diff --git a/Content/__ExternalActors__/Maps/L_World/B/DC/VP0SJLY5SPVOQUG3KI4ZVN.uasset b/Content/__ExternalActors__/Maps/L_World/B/DC/VP0SJLY5SPVOQUG3KI4ZVN.uasset new file mode 100644 index 0000000..9d57126 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/DC/VP0SJLY5SPVOQUG3KI4ZVN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91f74931bf81999d26bc16da934594091f7a11d2eea39b034f3e2be7750a2122 +size 696606 diff --git a/Content/__ExternalActors__/Maps/L_World/B/EB/3SU04MJHA10KE7JUFW1GZK.uasset b/Content/__ExternalActors__/Maps/L_World/B/EB/3SU04MJHA10KE7JUFW1GZK.uasset new file mode 100644 index 0000000..e11133c --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/EB/3SU04MJHA10KE7JUFW1GZK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:356eda4328cb69c79f5df4bd0a73367c25d69e9710fd39ed47ef61447c868377 +size 339871 diff --git a/Content/__ExternalActors__/Maps/L_World/B/GX/HFU2VWCO470JXW2B42H504.uasset b/Content/__ExternalActors__/Maps/L_World/B/GX/HFU2VWCO470JXW2B42H504.uasset new file mode 100644 index 0000000..1489b90 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/GX/HFU2VWCO470JXW2B42H504.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db2240d71a049d4af422c6b80ab99d766d0a45f98de316932f2319957cd1f2b7 +size 617467 diff --git a/Content/__ExternalActors__/Maps/L_World/B/HO/ATR77DWL4UWXQ407X32DLW.uasset b/Content/__ExternalActors__/Maps/L_World/B/HO/ATR77DWL4UWXQ407X32DLW.uasset new file mode 100644 index 0000000..34fe91c --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/HO/ATR77DWL4UWXQ407X32DLW.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e82189bce328e961cd06fbb5ee82b49860debac444f1a2ff9a732dd9ada8ce1 +size 512022 diff --git a/Content/__ExternalActors__/Maps/L_World/B/IL/GP5H96P9ARARP3MMF3G7EP.uasset b/Content/__ExternalActors__/Maps/L_World/B/IL/GP5H96P9ARARP3MMF3G7EP.uasset deleted file mode 100644 index 85e201c..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/IL/GP5H96P9ARARP3MMF3G7EP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e731bf93bd90e0b3d5cd11580555f7e45f728391e59ef4cc623cee76da00575c -size 606394 diff --git a/Content/__ExternalActors__/Maps/L_World/B/L3/ZSPBTLDJO6IMEWZ0NX6WGJ.uasset b/Content/__ExternalActors__/Maps/L_World/B/L3/ZSPBTLDJO6IMEWZ0NX6WGJ.uasset deleted file mode 100644 index 12cef2e..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/L3/ZSPBTLDJO6IMEWZ0NX6WGJ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:738b0bbeddae5e360dbe2963f25337c8a77bef1cfe03fc4e42df1a9f4b9539c5 -size 564984 diff --git a/Content/__ExternalActors__/Maps/L_World/B/N6/NASU32K7LSVLG486ETDY6N.uasset b/Content/__ExternalActors__/Maps/L_World/B/N6/NASU32K7LSVLG486ETDY6N.uasset new file mode 100644 index 0000000..647653c --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/N6/NASU32K7LSVLG486ETDY6N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c897dc7729bfe6f60eb371e042c08d2f46d3f1ebd4c22f01ab1929d9842b8fe +size 636687 diff --git a/Content/__ExternalActors__/Maps/L_World/B/QJ/LI2JFETFF774D9376A6IFG.uasset b/Content/__ExternalActors__/Maps/L_World/B/QJ/LI2JFETFF774D9376A6IFG.uasset new file mode 100644 index 0000000..8b1182d --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/QJ/LI2JFETFF774D9376A6IFG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6f71c5a62ada48b9a8c8d1f5c63def02c00f4eb7ec2c77212d6bd67cca4007b +size 608910 diff --git a/Content/__ExternalActors__/Maps/L_World/B/QZ/23XFD6SQEKT8GR4T6EV2AT.uasset b/Content/__ExternalActors__/Maps/L_World/B/QZ/23XFD6SQEKT8GR4T6EV2AT.uasset deleted file mode 100644 index 0617da8..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/QZ/23XFD6SQEKT8GR4T6EV2AT.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:720773e420cb93a203524c35a2a0b57a4098fb6042b187c96561b4b47dada10f -size 613172 diff --git a/Content/__ExternalActors__/Maps/L_World/B/RN/XBT09D6MXIPU1DXJLHBOY3.uasset b/Content/__ExternalActors__/Maps/L_World/B/RN/XBT09D6MXIPU1DXJLHBOY3.uasset new file mode 100644 index 0000000..d026905 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/RN/XBT09D6MXIPU1DXJLHBOY3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c7046a128a7e1b9dc5583feb32bbc08feeb77d8377b84831a135fc3d08498a7 +size 662017 diff --git a/Content/__ExternalActors__/Maps/L_World/B/RO/NEVK07VQKA08S4MHHTHFNC.uasset b/Content/__ExternalActors__/Maps/L_World/B/RO/NEVK07VQKA08S4MHHTHFNC.uasset deleted file mode 100644 index db09aa9..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/RO/NEVK07VQKA08S4MHHTHFNC.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c981ac9283ee9b48bfa118c27bce0641fdebf5d55e21979873907ba03e45d051 -size 550897 diff --git a/Content/__ExternalActors__/Maps/L_World/B/RY/11WN9WD0IYV5SY319LCWRG.uasset b/Content/__ExternalActors__/Maps/L_World/B/RY/11WN9WD0IYV5SY319LCWRG.uasset new file mode 100644 index 0000000..3e08dd7 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/RY/11WN9WD0IYV5SY319LCWRG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:666b25a27da26879cb155218906f7a38be1e865d6d14cd8249b702bae3321c9a +size 3687 diff --git a/Content/__ExternalActors__/Maps/L_World/B/TR/N6QK2Z48VWP0YLGOKKO6H9.uasset b/Content/__ExternalActors__/Maps/L_World/B/TR/N6QK2Z48VWP0YLGOKKO6H9.uasset deleted file mode 100644 index 7857f2e..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/TR/N6QK2Z48VWP0YLGOKKO6H9.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a9b88b6ac363ba9f09b91fed743d85cc48d07680a44a6c464a8791697395885b -size 590166 diff --git a/Content/__ExternalActors__/Maps/L_World/B/UF/74L3CKHVP31ZKNNZJDFZXV.uasset b/Content/__ExternalActors__/Maps/L_World/B/UF/74L3CKHVP31ZKNNZJDFZXV.uasset deleted file mode 100644 index 608a49a..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/UF/74L3CKHVP31ZKNNZJDFZXV.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7d4ec0ee08f4370111c46bcb763d6197e37d6572db1b05e7f70dfe3cf7b8a1fd -size 365156 diff --git a/Content/__ExternalActors__/Maps/L_World/B/VL/68MTBHUAH2COC2LJJSWJFL.uasset b/Content/__ExternalActors__/Maps/L_World/B/VL/68MTBHUAH2COC2LJJSWJFL.uasset new file mode 100644 index 0000000..a0f1b4a --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/VL/68MTBHUAH2COC2LJJSWJFL.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:835abb3d7db119d1dc10c41dc50584b1c9ea0850eb0518e3dd545be9496aebc9 +size 725440 diff --git a/Content/__ExternalActors__/Maps/L_World/B/VL/BLNRCCZU6AX5M9305E22YR.uasset b/Content/__ExternalActors__/Maps/L_World/B/VL/BLNRCCZU6AX5M9305E22YR.uasset new file mode 100644 index 0000000..0f90559 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/VL/BLNRCCZU6AX5M9305E22YR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11e08bbc28907a588c4202f422163e8e00ef93717967d43ae50ff7c11699949e +size 412391 diff --git a/Content/__ExternalActors__/Maps/L_World/B/VV/G3IYVPRMCA1XBUOZOQHOLA.uasset b/Content/__ExternalActors__/Maps/L_World/B/VV/G3IYVPRMCA1XBUOZOQHOLA.uasset new file mode 100644 index 0000000..ac69204 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/VV/G3IYVPRMCA1XBUOZOQHOLA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a43df5567aba9d0ce172d60a2fc43c28f5ca590db0e429478574a64f7404291 +size 561925 diff --git a/Content/__ExternalActors__/Maps/L_World/B/WR/DID3LCLG2S29Z9PMLBZ7NK.uasset b/Content/__ExternalActors__/Maps/L_World/B/WR/DID3LCLG2S29Z9PMLBZ7NK.uasset deleted file mode 100644 index 330ad4b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/WR/DID3LCLG2S29Z9PMLBZ7NK.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f780a57448bba09916e44aaeff12fb1ae2f4287c7533288b4b9a89e71174e499 -size 595599 diff --git a/Content/__ExternalActors__/Maps/L_World/B/X4/YI3462QLDUUSZ0YGZSW1N5.uasset b/Content/__ExternalActors__/Maps/L_World/B/X4/YI3462QLDUUSZ0YGZSW1N5.uasset new file mode 100644 index 0000000..a6960e6 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/X4/YI3462QLDUUSZ0YGZSW1N5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0d864d22f307db4664d1562dbfe8796782b87ffa2d34e9a49d131e0c9040c29 +size 579428 diff --git a/Content/__ExternalActors__/Maps/L_World/B/XY/RYIL14VB4ZZNL6V06WDDIC.uasset b/Content/__ExternalActors__/Maps/L_World/B/XY/RYIL14VB4ZZNL6V06WDDIC.uasset new file mode 100644 index 0000000..3525155 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/B/XY/RYIL14VB4ZZNL6V06WDDIC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31ac0bd552a9efe4b98da6f09011ef78e1d37f2321f3474dc7689bb4adbf6c08 +size 477055 diff --git a/Content/__ExternalActors__/Maps/L_World/B/YE/UZ4RNMA65OA87WJJBB1LBA.uasset b/Content/__ExternalActors__/Maps/L_World/B/YE/UZ4RNMA65OA87WJJBB1LBA.uasset deleted file mode 100644 index 5d36ed9..0000000 --- a/Content/__ExternalActors__/Maps/L_World/B/YE/UZ4RNMA65OA87WJJBB1LBA.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b5b4e6717f4f37498c488f4223c0412378efa447e976ed56f584afeb0452b14a -size 597946 diff --git a/Content/__ExternalActors__/Maps/L_World/C/21/VOLEHI471XRETUBALM613T.uasset b/Content/__ExternalActors__/Maps/L_World/C/21/VOLEHI471XRETUBALM613T.uasset new file mode 100644 index 0000000..9008053 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/21/VOLEHI471XRETUBALM613T.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6f230ed5c0bb42ad534f95e5264f064c6b5c379cc8f323cdc6811dcbe15a622 +size 683253 diff --git a/Content/__ExternalActors__/Maps/L_World/C/2W/2T3CT6T84WQGSH5T0I4OPW.uasset b/Content/__ExternalActors__/Maps/L_World/C/2W/2T3CT6T84WQGSH5T0I4OPW.uasset new file mode 100644 index 0000000..8a42b84 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/2W/2T3CT6T84WQGSH5T0I4OPW.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c236764b1f71522b2eb1d0edcc8ddf42464ca02c2c01fa551ff07fead409b3a +size 550006 diff --git a/Content/__ExternalActors__/Maps/L_World/C/2X/N1DL137OB94EHP8HFEAMJS.uasset b/Content/__ExternalActors__/Maps/L_World/C/2X/N1DL137OB94EHP8HFEAMJS.uasset deleted file mode 100644 index d1ff7a2..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/2X/N1DL137OB94EHP8HFEAMJS.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3ee171646ac1431f977c0951601eebb1fd5175f10f7a95d7c35526f58596eb23 -size 365647 diff --git a/Content/__ExternalActors__/Maps/L_World/C/50/0CHG6JLNGWHTEBX4FOIKPI.uasset b/Content/__ExternalActors__/Maps/L_World/C/50/0CHG6JLNGWHTEBX4FOIKPI.uasset new file mode 100644 index 0000000..de78321 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/50/0CHG6JLNGWHTEBX4FOIKPI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8f047ce3ca7770fe18ef083b7a6366f4be21caba0c9770d79f0ce49a84f5c50 +size 490770 diff --git a/Content/__ExternalActors__/Maps/L_World/C/9L/WFF2OFPAWFMPUSZ20GKHKS.uasset b/Content/__ExternalActors__/Maps/L_World/C/9L/WFF2OFPAWFMPUSZ20GKHKS.uasset deleted file mode 100644 index 1a040e5..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/9L/WFF2OFPAWFMPUSZ20GKHKS.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2270b24b235f292eb3f083859cd6e509e7574c91ad2223c14fb6c7af177f33f7 -size 616034 diff --git a/Content/__ExternalActors__/Maps/L_World/C/A4/BICW1T61NA2GT7WFA2EAV4.uasset b/Content/__ExternalActors__/Maps/L_World/C/A4/BICW1T61NA2GT7WFA2EAV4.uasset deleted file mode 100644 index 2d0b68c..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/A4/BICW1T61NA2GT7WFA2EAV4.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:76997285b16e7c9ad86e1a51f8d914913add88f2bd4537bb19e8b87b65d97794 -size 502069 diff --git a/Content/__ExternalActors__/Maps/L_World/C/AJ/2D1AJ05ZPW855W38S8GEXP.uasset b/Content/__ExternalActors__/Maps/L_World/C/AJ/2D1AJ05ZPW855W38S8GEXP.uasset deleted file mode 100644 index 1aa8c1d..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/AJ/2D1AJ05ZPW855W38S8GEXP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7a79b1557c7377b4539fec646d592fd59e133c2d4e4eae8c210a68d1c5012892 -size 503403 diff --git a/Content/__ExternalActors__/Maps/L_World/C/AN/NOHDNXNZBIQWTJ4GOUBFXM.uasset b/Content/__ExternalActors__/Maps/L_World/C/AN/NOHDNXNZBIQWTJ4GOUBFXM.uasset new file mode 100644 index 0000000..6fa4daa --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/AN/NOHDNXNZBIQWTJ4GOUBFXM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2da0fd6b533f49501b8ea28748adf4bdb56543ed6c3534507221c32401eb888 +size 642427 diff --git a/Content/__ExternalActors__/Maps/L_World/C/CW/00PY5VV9W63G8X867BHD0B.uasset b/Content/__ExternalActors__/Maps/L_World/C/CW/00PY5VV9W63G8X867BHD0B.uasset deleted file mode 100644 index 9055ec6..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/CW/00PY5VV9W63G8X867BHD0B.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0ad03718fa7c8017e9ccd06d8794514c294c173f3fef2e874461457d36e9b7cd -size 371257 diff --git a/Content/__ExternalActors__/Maps/L_World/C/D3/2FWWVY7LQ0PZ26IXTN9K7X.uasset b/Content/__ExternalActors__/Maps/L_World/C/D3/2FWWVY7LQ0PZ26IXTN9K7X.uasset new file mode 100644 index 0000000..82069f0 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/D3/2FWWVY7LQ0PZ26IXTN9K7X.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81f30ecb1b9342555e9f0cfc462685e87a05ed71d42ef14ace04359aba3d25f7 +size 510710 diff --git a/Content/__ExternalActors__/Maps/L_World/C/FT/3AFSXFW9T1I99053ZI24XC.uasset b/Content/__ExternalActors__/Maps/L_World/C/FT/3AFSXFW9T1I99053ZI24XC.uasset new file mode 100644 index 0000000..8f92845 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/FT/3AFSXFW9T1I99053ZI24XC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fcfa460aacb92abe272856e5c34f0a719d8959cd4710636b982250168511c76 +size 716051 diff --git a/Content/__ExternalActors__/Maps/L_World/C/G8/QECVMFDIBSZG1EVR0JXBZG.uasset b/Content/__ExternalActors__/Maps/L_World/C/G8/QECVMFDIBSZG1EVR0JXBZG.uasset new file mode 100644 index 0000000..d434c44 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/G8/QECVMFDIBSZG1EVR0JXBZG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:838e9736a86a002c1b43c2bca15b5dd6ab0bea048b61c85f7b7d7148f52f4265 +size 613456 diff --git a/Content/__ExternalActors__/Maps/L_World/C/I4/TSH8KKCS43TCODM31DOIUW.uasset b/Content/__ExternalActors__/Maps/L_World/C/I4/TSH8KKCS43TCODM31DOIUW.uasset new file mode 100644 index 0000000..bd1f029 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/I4/TSH8KKCS43TCODM31DOIUW.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51ac92ffd1eff7ffe703f2d1a3fca498295051e97f3af3846150c388a55cf464 +size 460353 diff --git a/Content/__ExternalActors__/Maps/L_World/C/K7/V3JU3P5ZRXFYENW57IIG1D.uasset b/Content/__ExternalActors__/Maps/L_World/C/K7/V3JU3P5ZRXFYENW57IIG1D.uasset new file mode 100644 index 0000000..703f3ae --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/K7/V3JU3P5ZRXFYENW57IIG1D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5127170dacefb6f287e4fdf740e80f9fe1aaee868ff0383ab67b30bc550355d6 +size 568973 diff --git a/Content/__ExternalActors__/Maps/L_World/C/L1/ZA2813KC1YP1BIMT1GG1KP.uasset b/Content/__ExternalActors__/Maps/L_World/C/L1/ZA2813KC1YP1BIMT1GG1KP.uasset new file mode 100644 index 0000000..e0f262e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/L1/ZA2813KC1YP1BIMT1GG1KP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c24e19a4e6544dda583222ce2593e3af3dbe1ca026efee313d02211dcbbb6231 +size 636424 diff --git a/Content/__ExternalActors__/Maps/L_World/C/LE/1ZFCHXKMKLRSGYL7KQJRSK.uasset b/Content/__ExternalActors__/Maps/L_World/C/LE/1ZFCHXKMKLRSGYL7KQJRSK.uasset deleted file mode 100644 index f66a62e..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/LE/1ZFCHXKMKLRSGYL7KQJRSK.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f444c7a463ebb8b5220ddf099e35b2018017cfe4a41bd597c3177b83f7d4bcb8 -size 366803 diff --git a/Content/__ExternalActors__/Maps/L_World/C/M8/YWCAQ6BYG86LU91BI8I3NE.uasset b/Content/__ExternalActors__/Maps/L_World/C/M8/YWCAQ6BYG86LU91BI8I3NE.uasset deleted file mode 100644 index ba1ee91..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/M8/YWCAQ6BYG86LU91BI8I3NE.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:156e41a4db8919826e441449603bfcf7d8b9e6ce85be16957f351891594fb985 -size 619052 diff --git a/Content/__ExternalActors__/Maps/L_World/C/OO/87SHT15KZKSZH513Y849XG.uasset b/Content/__ExternalActors__/Maps/L_World/C/OO/87SHT15KZKSZH513Y849XG.uasset deleted file mode 100644 index dac09ee..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/OO/87SHT15KZKSZH513Y849XG.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:36a8eaffa5c9c0a8ab5753d2410c0be0a5b83a1d84b105867b7202dad99b7fd0 -size 585448 diff --git a/Content/__ExternalActors__/Maps/L_World/C/OZ/MOTLUKCNZWLDTYVK6AC0FX.uasset b/Content/__ExternalActors__/Maps/L_World/C/OZ/MOTLUKCNZWLDTYVK6AC0FX.uasset deleted file mode 100644 index 23de827..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/OZ/MOTLUKCNZWLDTYVK6AC0FX.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fbc935a864a7f7227adadb8f1a8ca322c7b9508e855113f9de76c238f11c3a49 -size 389372 diff --git a/Content/__ExternalActors__/Maps/L_World/C/QJ/4Q7KVJBJOIB5X8941E78YH.uasset b/Content/__ExternalActors__/Maps/L_World/C/QJ/4Q7KVJBJOIB5X8941E78YH.uasset deleted file mode 100644 index 9ee4787..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/QJ/4Q7KVJBJOIB5X8941E78YH.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:405ffe03b3a459f0147d30a5418d3c34ca4649c778b6b1d212076bf075c8264f -size 515768 diff --git a/Content/__ExternalActors__/Maps/L_World/C/R7/3ST21RZMEGF5L4UKDNIR2Q.uasset b/Content/__ExternalActors__/Maps/L_World/C/R7/3ST21RZMEGF5L4UKDNIR2Q.uasset new file mode 100644 index 0000000..dbcfe4a --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/R7/3ST21RZMEGF5L4UKDNIR2Q.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbabba8b95f3aeaecd9d0ad451ee3aadcae5551885dd214fdc7e787a214717e7 +size 649797 diff --git a/Content/__ExternalActors__/Maps/L_World/C/RL/KYTTMGQDU7CUSE270SPQY3.uasset b/Content/__ExternalActors__/Maps/L_World/C/RL/KYTTMGQDU7CUSE270SPQY3.uasset new file mode 100644 index 0000000..29d5c30 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/RL/KYTTMGQDU7CUSE270SPQY3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d915e761ba0cc7c707a90d50684425d56c2de06ce227844a6d4bcb4c44042e53 +size 492621 diff --git a/Content/__ExternalActors__/Maps/L_World/C/TI/X0J5SFQ7GOY2PNYP1X5X8I.uasset b/Content/__ExternalActors__/Maps/L_World/C/TI/X0J5SFQ7GOY2PNYP1X5X8I.uasset deleted file mode 100644 index 06b4c30..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/TI/X0J5SFQ7GOY2PNYP1X5X8I.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e62cc996b2a1b96926ad7f1bb17a2a1c2fe4f28e881480513cc194eb47f850a0 -size 623809 diff --git a/Content/__ExternalActors__/Maps/L_World/C/TS/EVU4QS27PH6VB4RK5IE93U.uasset b/Content/__ExternalActors__/Maps/L_World/C/TS/EVU4QS27PH6VB4RK5IE93U.uasset deleted file mode 100644 index e7e0930..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/TS/EVU4QS27PH6VB4RK5IE93U.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c7d0c945f8032ef2350f116379483c1eed20b1c333bb6aeff0c9813679785aea -size 376312 diff --git a/Content/__ExternalActors__/Maps/L_World/C/UH/C9IX3H1G2QUBRR43A5X3FN.uasset b/Content/__ExternalActors__/Maps/L_World/C/UH/C9IX3H1G2QUBRR43A5X3FN.uasset deleted file mode 100644 index 1f983d2..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/UH/C9IX3H1G2QUBRR43A5X3FN.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:58a6ba0d150de3bfdc4bb7c60d13aa86c882bfa9fe16ee6c73d9bd29c72971a7 -size 511079 diff --git a/Content/__ExternalActors__/Maps/L_World/C/UW/LIJF7IJPELB5TFN00YB4TF.uasset b/Content/__ExternalActors__/Maps/L_World/C/UW/LIJF7IJPELB5TFN00YB4TF.uasset new file mode 100644 index 0000000..2166109 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/UW/LIJF7IJPELB5TFN00YB4TF.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f447088c574b381d86834e7bebd269f114e828326b0816b5c0f77f862233d577 +size 356829 diff --git a/Content/__ExternalActors__/Maps/L_World/C/UX/CRGMH7SD0RNIMQ1JC1K1AH.uasset b/Content/__ExternalActors__/Maps/L_World/C/UX/CRGMH7SD0RNIMQ1JC1K1AH.uasset new file mode 100644 index 0000000..38cd479 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/UX/CRGMH7SD0RNIMQ1JC1K1AH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb76dbec7cd92f857e641bbf2e352a2d0d89ad7a671d95460fcf8eead820296a +size 746617 diff --git a/Content/__ExternalActors__/Maps/L_World/C/WB/DNWCVVCS29HEG13R7TZDYH.uasset b/Content/__ExternalActors__/Maps/L_World/C/WB/DNWCVVCS29HEG13R7TZDYH.uasset new file mode 100644 index 0000000..8b12f56 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/WB/DNWCVVCS29HEG13R7TZDYH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebac836e259d767d51721788751624d15c0fea2c986ef357dc7956381100d983 +size 283155 diff --git a/Content/__ExternalActors__/Maps/L_World/C/WB/M7N4R7EG8UQPXY4DRG7CZ8.uasset b/Content/__ExternalActors__/Maps/L_World/C/WB/M7N4R7EG8UQPXY4DRG7CZ8.uasset new file mode 100644 index 0000000..f4c5166 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/WB/M7N4R7EG8UQPXY4DRG7CZ8.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea9e7ebafc934c6941f0be63808c15818a421fb2c820c24b25fa11c31ca107f2 +size 567864 diff --git a/Content/__ExternalActors__/Maps/L_World/C/YP/5WHMJXQA1FADXMGRXSPKTW.uasset b/Content/__ExternalActors__/Maps/L_World/C/YP/5WHMJXQA1FADXMGRXSPKTW.uasset deleted file mode 100644 index 9696a77..0000000 --- a/Content/__ExternalActors__/Maps/L_World/C/YP/5WHMJXQA1FADXMGRXSPKTW.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7226805e4aae1b6ade73ef402c36ab2dd1931ae0efbfcb0bb3316c7305b78693 -size 521380 diff --git a/Content/__ExternalActors__/Maps/L_World/C/ZT/9VSFSV4JTL32KLD89DRYAT.uasset b/Content/__ExternalActors__/Maps/L_World/C/ZT/9VSFSV4JTL32KLD89DRYAT.uasset new file mode 100644 index 0000000..3daba41 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/C/ZT/9VSFSV4JTL32KLD89DRYAT.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e70da78a446e8dfbac0931e4c5945ab2c23bfec8154d8d68064f5a75d45cfb1 +size 633904 diff --git a/Content/__ExternalActors__/Maps/L_World/D/4R/G547I8ZA9I5MMJN4RBWHBO.uasset b/Content/__ExternalActors__/Maps/L_World/D/4R/G547I8ZA9I5MMJN4RBWHBO.uasset deleted file mode 100644 index 2e111c6..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/4R/G547I8ZA9I5MMJN4RBWHBO.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9b999c78d280a7144b6a0c1a40ec7bfc39b70c19645cea4059bdbf8548df0e3b -size 437427 diff --git a/Content/__ExternalActors__/Maps/L_World/D/65/0BBYSKGOJNIAIMVR5TMW0O.uasset b/Content/__ExternalActors__/Maps/L_World/D/65/0BBYSKGOJNIAIMVR5TMW0O.uasset deleted file mode 100644 index 9c305a3..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/65/0BBYSKGOJNIAIMVR5TMW0O.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d7b1bfd4693059779488e5d52bc045e7baf7c9e81189dc8416bdec6cfb0afeb0 -size 430334 diff --git a/Content/__ExternalActors__/Maps/L_World/D/6R/SYP3GG61BVL4548UAPXY3E.uasset b/Content/__ExternalActors__/Maps/L_World/D/6R/SYP3GG61BVL4548UAPXY3E.uasset new file mode 100644 index 0000000..e9f3134 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/6R/SYP3GG61BVL4548UAPXY3E.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c44b9001a87036de89a013248d117a10160d36f00e5275d222d88f7100f928c +size 569540 diff --git a/Content/__ExternalActors__/Maps/L_World/D/71/6V3NSL65O4UB4AEALYXK9U.uasset b/Content/__ExternalActors__/Maps/L_World/D/71/6V3NSL65O4UB4AEALYXK9U.uasset new file mode 100644 index 0000000..7120279 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/71/6V3NSL65O4UB4AEALYXK9U.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:908f3cf3dd8e2dc958ccfee882c01183bf782fa4a53eef10afd64804a54ab04b +size 698219 diff --git a/Content/__ExternalActors__/Maps/L_World/D/AO/9VCSTY99K3SAVXV6D0W6O1.uasset b/Content/__ExternalActors__/Maps/L_World/D/AO/9VCSTY99K3SAVXV6D0W6O1.uasset deleted file mode 100644 index f4277cf..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/AO/9VCSTY99K3SAVXV6D0W6O1.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ca803fa410aeca35b863935e4ba926953382037532133724fef151d104248c54 -size 364780 diff --git a/Content/__ExternalActors__/Maps/L_World/D/BR/LP5054E0FLADXWTXY85BUJ.uasset b/Content/__ExternalActors__/Maps/L_World/D/BR/LP5054E0FLADXWTXY85BUJ.uasset new file mode 100644 index 0000000..ca452ec --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/BR/LP5054E0FLADXWTXY85BUJ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d58ea944c48a5c47e458e1001851dd015933525e016767d9d93eec42d24e9d60 +size 276114 diff --git a/Content/__ExternalActors__/Maps/L_World/D/C2/6PV07IVBY302AX590QNZO2.uasset b/Content/__ExternalActors__/Maps/L_World/D/C2/6PV07IVBY302AX590QNZO2.uasset deleted file mode 100644 index 074770a..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/C2/6PV07IVBY302AX590QNZO2.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1a8835a92464e89f412d6adacccf17c04c6973ac1ed493eafde9cc68e79cac7c -size 395315 diff --git a/Content/__ExternalActors__/Maps/L_World/D/EN/LSDA0RMWCCD1EAD3V3Q4JC.uasset b/Content/__ExternalActors__/Maps/L_World/D/EN/LSDA0RMWCCD1EAD3V3Q4JC.uasset new file mode 100644 index 0000000..e0505f0 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/EN/LSDA0RMWCCD1EAD3V3Q4JC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d920c12e36c152eb9dc9de2f488aef9103525b00b94ebc21deb902e6ab0c58aa +size 283912 diff --git a/Content/__ExternalActors__/Maps/L_World/D/GN/FA8GIWB4CEFHJKYT5F1LWZ.uasset b/Content/__ExternalActors__/Maps/L_World/D/GN/FA8GIWB4CEFHJKYT5F1LWZ.uasset deleted file mode 100644 index 09a1c44..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/GN/FA8GIWB4CEFHJKYT5F1LWZ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c70d18d02f7723a9413e8aa4f5beead0cb222ec901f34c92d826ac98af9680cf -size 404358 diff --git a/Content/__ExternalActors__/Maps/L_World/D/GY/X2Z3CNM21SLS14CVU2CZGK.uasset b/Content/__ExternalActors__/Maps/L_World/D/GY/X2Z3CNM21SLS14CVU2CZGK.uasset deleted file mode 100644 index f8f9e62..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/GY/X2Z3CNM21SLS14CVU2CZGK.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ad827bea3736c7c23557d3b546548807d437655fb78d399ef1041d438e2dbae6 -size 391559 diff --git a/Content/__ExternalActors__/Maps/L_World/D/H7/09WTJNLIJP0R37AHEWXYZO.uasset b/Content/__ExternalActors__/Maps/L_World/D/H7/09WTJNLIJP0R37AHEWXYZO.uasset new file mode 100644 index 0000000..b067778 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/H7/09WTJNLIJP0R37AHEWXYZO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed4cb8bf6a402930e17d229544a32bf5d7a0cec9415fc7fa57df893d7a835040 +size 314359 diff --git a/Content/__ExternalActors__/Maps/L_World/D/JI/2ST4NAF3ZWO12RO6IYU5IV.uasset b/Content/__ExternalActors__/Maps/L_World/D/JI/2ST4NAF3ZWO12RO6IYU5IV.uasset deleted file mode 100644 index 2847479..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/JI/2ST4NAF3ZWO12RO6IYU5IV.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d50887e80cd1bda685cc775902c36ce8ca0606907a8134930eccfbe37dff5df -size 592082 diff --git a/Content/__ExternalActors__/Maps/L_World/D/JX/FYKKXGI5VSYGFIMCB9OE16.uasset b/Content/__ExternalActors__/Maps/L_World/D/JX/FYKKXGI5VSYGFIMCB9OE16.uasset new file mode 100644 index 0000000..3db69c6 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/JX/FYKKXGI5VSYGFIMCB9OE16.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20a67bde277cc22d7d3b86cf31d93409738c6a6095acf1a97094879e5b4fed38 +size 279557 diff --git a/Content/__ExternalActors__/Maps/L_World/D/KF/3UAFL9UAGLR2X101MSCWLE.uasset b/Content/__ExternalActors__/Maps/L_World/D/KF/3UAFL9UAGLR2X101MSCWLE.uasset new file mode 100644 index 0000000..dcac639 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/KF/3UAFL9UAGLR2X101MSCWLE.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02551e65e95cd70c9e9284157cf0e3ef6631ff0ee7ea24913d71c26235b2ffab +size 707361 diff --git a/Content/__ExternalActors__/Maps/L_World/D/KJ/IWYGJ4M7VKN1RD8GV1TE3C.uasset b/Content/__ExternalActors__/Maps/L_World/D/KJ/IWYGJ4M7VKN1RD8GV1TE3C.uasset deleted file mode 100644 index 964b130..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/KJ/IWYGJ4M7VKN1RD8GV1TE3C.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1455f29189aebe9f1fd40a1e2eb65b77fe4c90bf0b9eca6bf4e0c361f46b556e -size 594591 diff --git a/Content/__ExternalActors__/Maps/L_World/D/LE/PLH0358QNU0UKC0LT2LEXH.uasset b/Content/__ExternalActors__/Maps/L_World/D/LE/PLH0358QNU0UKC0LT2LEXH.uasset new file mode 100644 index 0000000..34c9d6a --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/LE/PLH0358QNU0UKC0LT2LEXH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b38e79bd21c37bd75d0778d14dffc84e0c372bab1332e3a6978974f0a08421fb +size 313944 diff --git a/Content/__ExternalActors__/Maps/L_World/D/LO/Q0X9M7NSVHGFCKZDLQJ6GI.uasset b/Content/__ExternalActors__/Maps/L_World/D/LO/Q0X9M7NSVHGFCKZDLQJ6GI.uasset new file mode 100644 index 0000000..1aa4e7e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/LO/Q0X9M7NSVHGFCKZDLQJ6GI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2dab545264dfe455ac2208ba0eff9963e131e4752c1548e5e0d823ae8aa89eb +size 630771 diff --git a/Content/__ExternalActors__/Maps/L_World/D/ON/LOI8T5JKST5K7EBBZSA0NE.uasset b/Content/__ExternalActors__/Maps/L_World/D/ON/LOI8T5JKST5K7EBBZSA0NE.uasset deleted file mode 100644 index 0974cf9..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/ON/LOI8T5JKST5K7EBBZSA0NE.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e35737348eb2be89dd8dd117f91806b2953564d6938b3c22594aff015aaa0451 -size 507669 diff --git a/Content/__ExternalActors__/Maps/L_World/D/OQ/SFTMLIENN15HSGE7PFDJZA.uasset b/Content/__ExternalActors__/Maps/L_World/D/OQ/SFTMLIENN15HSGE7PFDJZA.uasset deleted file mode 100644 index c3f647e..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/OQ/SFTMLIENN15HSGE7PFDJZA.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:990972f44d76dbe09035e479b4bf940c78d71adcbf876eaacd4f0a4a41a39cb1 -size 362784 diff --git a/Content/__ExternalActors__/Maps/L_World/D/P4/A8NOXWQ9FZPGMBBBE0K5J7.uasset b/Content/__ExternalActors__/Maps/L_World/D/P4/A8NOXWQ9FZPGMBBBE0K5J7.uasset deleted file mode 100644 index b3e5063..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/P4/A8NOXWQ9FZPGMBBBE0K5J7.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1b959024bc36012749506311d755104a638a80f7751bf4d737d20da46c5e8280 -size 417396 diff --git a/Content/__ExternalActors__/Maps/L_World/D/PI/QD4IWMSY3U51Y409ORSVTK.uasset b/Content/__ExternalActors__/Maps/L_World/D/PI/QD4IWMSY3U51Y409ORSVTK.uasset new file mode 100644 index 0000000..8af090f --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/PI/QD4IWMSY3U51Y409ORSVTK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:319c4d74cbf23274a6d157b270bca2237dfc13e99cb8529bd4797d9940cf79d2 +size 448899 diff --git a/Content/__ExternalActors__/Maps/L_World/D/PV/MXCO0Q7W0WKONGVN5Q0AVS.uasset b/Content/__ExternalActors__/Maps/L_World/D/PV/MXCO0Q7W0WKONGVN5Q0AVS.uasset deleted file mode 100644 index 71e3fa9..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/PV/MXCO0Q7W0WKONGVN5Q0AVS.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aff4b9800fecc3b7e50a04f47dd3afe98506a737558063d22d29aece58308be1 -size 601772 diff --git a/Content/__ExternalActors__/Maps/L_World/D/R4/GAYJTFT035I45P13MQR946.uasset b/Content/__ExternalActors__/Maps/L_World/D/R4/GAYJTFT035I45P13MQR946.uasset deleted file mode 100644 index c2101a4..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/R4/GAYJTFT035I45P13MQR946.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c84950d92646c5e761a09c2838e623548eb06c9d4b1c197bd311101c2dc8afd -size 394982 diff --git a/Content/__ExternalActors__/Maps/L_World/D/RZ/VXWM5D8XJHZ4NODRWXAV54.uasset b/Content/__ExternalActors__/Maps/L_World/D/RZ/VXWM5D8XJHZ4NODRWXAV54.uasset deleted file mode 100644 index be66ce6..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/RZ/VXWM5D8XJHZ4NODRWXAV54.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ad162628fb490192f871bc521997adbbb367daf3ca47c9bffdd6943377884014 -size 588432 diff --git a/Content/__ExternalActors__/Maps/L_World/D/SD/6NA2Q4KB5B1K0UGWUVYTN3.uasset b/Content/__ExternalActors__/Maps/L_World/D/SD/6NA2Q4KB5B1K0UGWUVYTN3.uasset deleted file mode 100644 index 35f490f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/SD/6NA2Q4KB5B1K0UGWUVYTN3.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:becebbe5dbe255aa15e3236c648532125926773389c2a7baccceaa18ddbad0a2 -size 586997 diff --git a/Content/__ExternalActors__/Maps/L_World/D/SF/5NLUHQFOFB3QOK8FMIH0FY.uasset b/Content/__ExternalActors__/Maps/L_World/D/SF/5NLUHQFOFB3QOK8FMIH0FY.uasset deleted file mode 100644 index 22d5289..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/SF/5NLUHQFOFB3QOK8FMIH0FY.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f7a86e3abdd7db4ffb98ee91eb65803779e83743ba3b6aacd63ec6ed58c229d5 -size 496645 diff --git a/Content/__ExternalActors__/Maps/L_World/D/TB/UHKVDUSD3Y7RSC0PZ5N6JK.uasset b/Content/__ExternalActors__/Maps/L_World/D/TB/UHKVDUSD3Y7RSC0PZ5N6JK.uasset new file mode 100644 index 0000000..7e075f2 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/TB/UHKVDUSD3Y7RSC0PZ5N6JK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb33c6f6d97f07102945c1f0d5ed260848abbfb6984b54aaed1592c0f11e54bf +size 286831 diff --git a/Content/__ExternalActors__/Maps/L_World/D/U2/OLDP43U4LZ5KRJ3YV327ST.uasset b/Content/__ExternalActors__/Maps/L_World/D/U2/OLDP43U4LZ5KRJ3YV327ST.uasset deleted file mode 100644 index 417a03f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/U2/OLDP43U4LZ5KRJ3YV327ST.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3731498187d1a14f50991dcea99415b77621dd17d56124828ae23d5c62d3b019 -size 415917 diff --git a/Content/__ExternalActors__/Maps/L_World/D/UJ/0SQM7AV7SFSACGG12P95S1.uasset b/Content/__ExternalActors__/Maps/L_World/D/UJ/0SQM7AV7SFSACGG12P95S1.uasset new file mode 100644 index 0000000..863e809 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/UJ/0SQM7AV7SFSACGG12P95S1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35d896f18db409b062d88d4744fccdea39293c80d647bbb3e239692b854f0f8c +size 347438 diff --git a/Content/__ExternalActors__/Maps/L_World/D/UW/N4S9225KOFWGLCH9LIE0KG.uasset b/Content/__ExternalActors__/Maps/L_World/D/UW/N4S9225KOFWGLCH9LIE0KG.uasset new file mode 100644 index 0000000..72e47d9 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/UW/N4S9225KOFWGLCH9LIE0KG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f86ab0d509839391e98c6c5636f699c8b531c18ec5aa457eb77c90d658f67e69 +size 524794 diff --git a/Content/__ExternalActors__/Maps/L_World/D/VG/RSL2SGSH77ZCCHVA4H7FC8.uasset b/Content/__ExternalActors__/Maps/L_World/D/VG/RSL2SGSH77ZCCHVA4H7FC8.uasset deleted file mode 100644 index 97de6b7..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/VG/RSL2SGSH77ZCCHVA4H7FC8.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c0686e581f1336f24bf7c29b9b44b24423a33888fd3ceda4352a33b4cff27093 -size 368109 diff --git a/Content/__ExternalActors__/Maps/L_World/D/VR/HAY861L1DOI6Z3SAKICJRH.uasset b/Content/__ExternalActors__/Maps/L_World/D/VR/HAY861L1DOI6Z3SAKICJRH.uasset new file mode 100644 index 0000000..9c1f080 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/VR/HAY861L1DOI6Z3SAKICJRH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9b29a9f519f1603398e824ae0184c2ba986d7465e5ba09c6d5ff58b508e4108 +size 389428 diff --git a/Content/__ExternalActors__/Maps/L_World/D/WQ/P9SSD1OX2PT9D5D65M2B98.uasset b/Content/__ExternalActors__/Maps/L_World/D/WQ/P9SSD1OX2PT9D5D65M2B98.uasset deleted file mode 100644 index 5614077..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/WQ/P9SSD1OX2PT9D5D65M2B98.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:75e3f54e05da45912b2597242df5231bd71a679f0836d7a9f13b974c2be3b9ba -size 609747 diff --git a/Content/__ExternalActors__/Maps/L_World/D/XP/RNTPH0S82BDB73JRRVTV42.uasset b/Content/__ExternalActors__/Maps/L_World/D/XP/RNTPH0S82BDB73JRRVTV42.uasset new file mode 100644 index 0000000..31843ef --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/D/XP/RNTPH0S82BDB73JRRVTV42.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a772a497fecc7e745992a1d1b84db9a23fae6a17a0307afda69ce7e667645f29 +size 725120 diff --git a/Content/__ExternalActors__/Maps/L_World/D/ZR/HGB4SE6UUB51ECDK7J5SGL.uasset b/Content/__ExternalActors__/Maps/L_World/D/ZR/HGB4SE6UUB51ECDK7J5SGL.uasset deleted file mode 100644 index b4543bc..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/ZR/HGB4SE6UUB51ECDK7J5SGL.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fc370d0a6907ae38a04af331087427c159e6289ab2713907fe3b3221704bfa3e -size 396616 diff --git a/Content/__ExternalActors__/Maps/L_World/D/ZZ/UP9IE8DIEBW8TSNIOCP5FP.uasset b/Content/__ExternalActors__/Maps/L_World/D/ZZ/UP9IE8DIEBW8TSNIOCP5FP.uasset deleted file mode 100644 index 4f4eb0f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/D/ZZ/UP9IE8DIEBW8TSNIOCP5FP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b45f1e8e05285a4394327d45de2241f1da1504f83dd59e0212d5a870bb5a5d31 -size 451831 diff --git a/Content/__ExternalActors__/Maps/L_World/E/1D/J00D9ORY19HSGMZVRR7JUX.uasset b/Content/__ExternalActors__/Maps/L_World/E/1D/J00D9ORY19HSGMZVRR7JUX.uasset new file mode 100644 index 0000000..97ecfb4 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/1D/J00D9ORY19HSGMZVRR7JUX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e3e6fcc06c9f0f43415708e47034ca42721e82fd6bf30956886dacd2834e81a +size 699507 diff --git a/Content/__ExternalActors__/Maps/L_World/E/1J/6YUCPJ5LQJOFH4FH9OGKZX.uasset b/Content/__ExternalActors__/Maps/L_World/E/1J/6YUCPJ5LQJOFH4FH9OGKZX.uasset deleted file mode 100644 index 5406241..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/1J/6YUCPJ5LQJOFH4FH9OGKZX.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:60c15987dea102b22651eeb319b67a4d5456fc18b29553a079b7e5391c7aaf91 -size 482919 diff --git a/Content/__ExternalActors__/Maps/L_World/E/2I/SXU163XLYKHR0KBXKVVRGH.uasset b/Content/__ExternalActors__/Maps/L_World/E/2I/SXU163XLYKHR0KBXKVVRGH.uasset new file mode 100644 index 0000000..d1ada4f --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/2I/SXU163XLYKHR0KBXKVVRGH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:299d07b76028f7052f7501d341c42ac65e89980c73d8c493a3cec7bfd0bf0e24 +size 531026 diff --git a/Content/__ExternalActors__/Maps/L_World/E/2Z/K8BXIMLBPAGXF37KY076BT.uasset b/Content/__ExternalActors__/Maps/L_World/E/2Z/K8BXIMLBPAGXF37KY076BT.uasset new file mode 100644 index 0000000..805ce65 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/2Z/K8BXIMLBPAGXF37KY076BT.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb9f0133020002a4885914e096f051035dcb049d12390d4d314716e9f7560093 +size 719761 diff --git a/Content/__ExternalActors__/Maps/L_World/E/3X/HC4BFAXBBL7F7YYCPIB44H.uasset b/Content/__ExternalActors__/Maps/L_World/E/3X/HC4BFAXBBL7F7YYCPIB44H.uasset new file mode 100644 index 0000000..5c24793 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/3X/HC4BFAXBBL7F7YYCPIB44H.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7424879cb4524736d01a85e7b797eaa890e13848af952547c9a7e704b4d370f +size 720268 diff --git a/Content/__ExternalActors__/Maps/L_World/E/4L/8HSJ5OH6C4KXHJAJ41JJP5.uasset b/Content/__ExternalActors__/Maps/L_World/E/4L/8HSJ5OH6C4KXHJAJ41JJP5.uasset new file mode 100644 index 0000000..db5f6a6 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/4L/8HSJ5OH6C4KXHJAJ41JJP5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35305d3e9e97324da8644fbe92e225e0f536bc198d4ca6d0076a097deb4e8a7e +size 483260 diff --git a/Content/__ExternalActors__/Maps/L_World/E/5N/118V3AIQVBMSNL2Y1NH534.uasset b/Content/__ExternalActors__/Maps/L_World/E/5N/118V3AIQVBMSNL2Y1NH534.uasset deleted file mode 100644 index e04c209..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/5N/118V3AIQVBMSNL2Y1NH534.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:26e078e6b014cae2d1e01bfd5fc9d58b19bdfb57cf70a3f0fa40a953a0222f67 -size 366531 diff --git a/Content/__ExternalActors__/Maps/L_World/E/75/GDDVDPFXOY7WFNZKSFDPQA.uasset b/Content/__ExternalActors__/Maps/L_World/E/75/GDDVDPFXOY7WFNZKSFDPQA.uasset deleted file mode 100644 index 4b18c88..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/75/GDDVDPFXOY7WFNZKSFDPQA.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8f78e5750293fc4c5ef34e9df2dca844680ae839cfd73fc3cc52363b00c46d43 -size 469826 diff --git a/Content/__ExternalActors__/Maps/L_World/E/8D/WCUB0TN2H9PCHR2U9IMGIM.uasset b/Content/__ExternalActors__/Maps/L_World/E/8D/WCUB0TN2H9PCHR2U9IMGIM.uasset deleted file mode 100644 index 1ed373f..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/8D/WCUB0TN2H9PCHR2U9IMGIM.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0a5e755318101883aa80163025f85fc8c054950f5813373e3637eec072696fae -size 602520 diff --git a/Content/__ExternalActors__/Maps/L_World/E/9E/FPJI70PVMFQZROE6J13ML7.uasset b/Content/__ExternalActors__/Maps/L_World/E/9E/FPJI70PVMFQZROE6J13ML7.uasset deleted file mode 100644 index 93de035..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/9E/FPJI70PVMFQZROE6J13ML7.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:796fe70a6c28947c4a700aae5307a08b53aa4c8a41aa153d62b5a4dd3f78c0fb -size 513950 diff --git a/Content/__ExternalActors__/Maps/L_World/E/9K/SFO2PWPEK3NO1KO4D2ONM8.uasset b/Content/__ExternalActors__/Maps/L_World/E/9K/SFO2PWPEK3NO1KO4D2ONM8.uasset new file mode 100644 index 0000000..0fab434 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/9K/SFO2PWPEK3NO1KO4D2ONM8.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa43807c6edbace994104b9177b6ca8bcc871aff63161505a022a988435574bc +size 712725 diff --git a/Content/__ExternalActors__/Maps/L_World/E/AI/TOE74WPWNDAMXLREO52IGQ.uasset b/Content/__ExternalActors__/Maps/L_World/E/AI/TOE74WPWNDAMXLREO52IGQ.uasset deleted file mode 100644 index c95c068..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/AI/TOE74WPWNDAMXLREO52IGQ.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6d70876e2642d9eb257ba95b15fc22006f1b8a825c61ff722d0707a3549e59b2 -size 619658 diff --git a/Content/__ExternalActors__/Maps/L_World/E/E3/3ATZ5XNWBEAJMTXOI1ZFPN.uasset b/Content/__ExternalActors__/Maps/L_World/E/E3/3ATZ5XNWBEAJMTXOI1ZFPN.uasset deleted file mode 100644 index 1eee163..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/E3/3ATZ5XNWBEAJMTXOI1ZFPN.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9fe4fdbe1ec46a9acbf150d94c47fae34af6858e6ec6864d41d4585f4dc3b1b5 -size 494232 diff --git a/Content/__ExternalActors__/Maps/L_World/E/E4/B7DCHXC6R7W31R68PK49E0.uasset b/Content/__ExternalActors__/Maps/L_World/E/E4/B7DCHXC6R7W31R68PK49E0.uasset deleted file mode 100644 index 70c6224..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/E4/B7DCHXC6R7W31R68PK49E0.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:289f08e4c0e05e5515dc8dd0d7bb50859565d0d52371e728ea100161f4ad21c9 -size 363751 diff --git a/Content/__ExternalActors__/Maps/L_World/E/EF/L6CA3JY56X88KCUPLAVOXN.uasset b/Content/__ExternalActors__/Maps/L_World/E/EF/L6CA3JY56X88KCUPLAVOXN.uasset deleted file mode 100644 index ba67bc2..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/EF/L6CA3JY56X88KCUPLAVOXN.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:933cb6022b78e1e06a688fe36cf45b087d48c18d5d201cc9a736acf7ea6ba37b -size 439773 diff --git a/Content/__ExternalActors__/Maps/L_World/E/FR/FCDZYHS1QL0EXQ6H4SKGYD.uasset b/Content/__ExternalActors__/Maps/L_World/E/FR/FCDZYHS1QL0EXQ6H4SKGYD.uasset new file mode 100644 index 0000000..8e1004a --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/FR/FCDZYHS1QL0EXQ6H4SKGYD.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a8512c81e4d82d8d09b34fd7f7e3a26daa3980ef43d3173d1119cabcfa092d8 +size 727617 diff --git a/Content/__ExternalActors__/Maps/L_World/E/GO/VF29J51ZJ7MIKVB5TSU5LC.uasset b/Content/__ExternalActors__/Maps/L_World/E/GO/VF29J51ZJ7MIKVB5TSU5LC.uasset new file mode 100644 index 0000000..8b56344 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/GO/VF29J51ZJ7MIKVB5TSU5LC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3bd59f90ae75bd3728f45285426a95eb02610d7373039ca16950f5da78b4677 +size 281395 diff --git a/Content/__ExternalActors__/Maps/L_World/E/GW/ZPBUBNNCZF5SW55N0E4UTE.uasset b/Content/__ExternalActors__/Maps/L_World/E/GW/ZPBUBNNCZF5SW55N0E4UTE.uasset deleted file mode 100644 index d4509ea..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/GW/ZPBUBNNCZF5SW55N0E4UTE.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9242c3a51770762069b43090be16cdee56700f3039157d627b05bff516c8c991 -size 366596 diff --git a/Content/__ExternalActors__/Maps/L_World/E/H4/6D8ZQ5MF1Q6VHULCQY3JA9.uasset b/Content/__ExternalActors__/Maps/L_World/E/H4/6D8ZQ5MF1Q6VHULCQY3JA9.uasset new file mode 100644 index 0000000..1f8b33d --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/H4/6D8ZQ5MF1Q6VHULCQY3JA9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4179403bde7fed4bbce62075643dd17323b933131b425e2a1a5409799654c5d9 +size 456931 diff --git a/Content/__ExternalActors__/Maps/L_World/E/HK/DW4VB7S95VCKYXZWF5IYH0.uasset b/Content/__ExternalActors__/Maps/L_World/E/HK/DW4VB7S95VCKYXZWF5IYH0.uasset deleted file mode 100644 index 0719c11..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/HK/DW4VB7S95VCKYXZWF5IYH0.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1bce80657e5659be874ab5164d48bd9de51f28777ae8e87551fdb3678a11ea3c -size 610738 diff --git a/Content/__ExternalActors__/Maps/L_World/E/IW/3DDF8C30JKHPDBZ327FYBN.uasset b/Content/__ExternalActors__/Maps/L_World/E/IW/3DDF8C30JKHPDBZ327FYBN.uasset new file mode 100644 index 0000000..a829c62 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/IW/3DDF8C30JKHPDBZ327FYBN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21384616ec0a06d0ac0178fcb265abbf9d5f5218276861c9c89277c39c95be5c +size 290175 diff --git a/Content/__ExternalActors__/Maps/L_World/E/J4/Y1OMBLG7OEPJSDVKHPT2AO.uasset b/Content/__ExternalActors__/Maps/L_World/E/J4/Y1OMBLG7OEPJSDVKHPT2AO.uasset new file mode 100644 index 0000000..90dad2b --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/J4/Y1OMBLG7OEPJSDVKHPT2AO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:073b365be98d82b939fa8cc35f2fb58900705af056efd7e27b96dabc2689f045 +size 496175 diff --git a/Content/__ExternalActors__/Maps/L_World/E/JO/X8WI9D3VFQGMT92EPSCZJU.uasset b/Content/__ExternalActors__/Maps/L_World/E/JO/X8WI9D3VFQGMT92EPSCZJU.uasset new file mode 100644 index 0000000..8be3cfa --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/JO/X8WI9D3VFQGMT92EPSCZJU.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:348c5c2c7965773a034c6c4b8db193784ee2227d6c82c44025296bfe63751d0f +size 545798 diff --git a/Content/__ExternalActors__/Maps/L_World/E/N4/XXMKU4DVHCWV5LJMHEDBY2.uasset b/Content/__ExternalActors__/Maps/L_World/E/N4/XXMKU4DVHCWV5LJMHEDBY2.uasset new file mode 100644 index 0000000..1dcba33 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/N4/XXMKU4DVHCWV5LJMHEDBY2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22dd3edaa80117a267cb7d481d0055ebe793260e954995eaebc7b3c5a11157ab +size 459892 diff --git a/Content/__ExternalActors__/Maps/L_World/E/N5/UMWR4YMT4VTGL7Q3QGFGRM.uasset b/Content/__ExternalActors__/Maps/L_World/E/N5/UMWR4YMT4VTGL7Q3QGFGRM.uasset new file mode 100644 index 0000000..0acff42 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/N5/UMWR4YMT4VTGL7Q3QGFGRM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:486991a36395f7e357826bbfd3fdbd1e38003dbec2226b75976a13372994c6d2 +size 501822 diff --git a/Content/__ExternalActors__/Maps/L_World/E/P0/2NOC258EKWCUTPG6QP72GR.uasset b/Content/__ExternalActors__/Maps/L_World/E/P0/2NOC258EKWCUTPG6QP72GR.uasset deleted file mode 100644 index 72d3b83..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/P0/2NOC258EKWCUTPG6QP72GR.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2db6608003f9f17d98a37b4011ff1bd8ee807905eff05a6c6c82cc85c87df836 -size 383329 diff --git a/Content/__ExternalActors__/Maps/L_World/E/S2/GFB844AAQOQCS965ABI3I8.uasset b/Content/__ExternalActors__/Maps/L_World/E/S2/GFB844AAQOQCS965ABI3I8.uasset new file mode 100644 index 0000000..cc1e19e --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/S2/GFB844AAQOQCS965ABI3I8.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31f315b1a1d1ef68158cf1c56b9857a0a8d9725cfa9ea09a20bc2d1292fe4ae4 +size 3823 diff --git a/Content/__ExternalActors__/Maps/L_World/E/SG/9JH6F4EBMYCPQMV0LVCX9U.uasset b/Content/__ExternalActors__/Maps/L_World/E/SG/9JH6F4EBMYCPQMV0LVCX9U.uasset deleted file mode 100644 index e17229b..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/SG/9JH6F4EBMYCPQMV0LVCX9U.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:720b0f35b8a2ba4a19ad7e507607ea973a3b2b5df1c86f80d10c71dc0a27f4ef -size 495147 diff --git a/Content/__ExternalActors__/Maps/L_World/E/UF/775YWXL2UHEVD91H1R3RAA.uasset b/Content/__ExternalActors__/Maps/L_World/E/UF/775YWXL2UHEVD91H1R3RAA.uasset new file mode 100644 index 0000000..c45489c --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/UF/775YWXL2UHEVD91H1R3RAA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f09bd1867f637eff525879338aab42542e1e82708c146bbebff2d554f62c00b3 +size 684245 diff --git a/Content/__ExternalActors__/Maps/L_World/E/UG/JXH22IS3Z4C4FAA32HSLSF.uasset b/Content/__ExternalActors__/Maps/L_World/E/UG/JXH22IS3Z4C4FAA32HSLSF.uasset deleted file mode 100644 index a2c0dd6..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/UG/JXH22IS3Z4C4FAA32HSLSF.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:36dd2f23fab07f8e4f8f41b47598c36715520cf07231057ff7f121645eb635b2 -size 458251 diff --git a/Content/__ExternalActors__/Maps/L_World/E/VT/CK7I7U356L85MV1887BBM3.uasset b/Content/__ExternalActors__/Maps/L_World/E/VT/CK7I7U356L85MV1887BBM3.uasset new file mode 100644 index 0000000..09c6cf4 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/VT/CK7I7U356L85MV1887BBM3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edc196a9abd9ffd3a7ae86280c553c7cc2d455740d23d2f85ec9e3ada14c2c80 +size 594238 diff --git a/Content/__ExternalActors__/Maps/L_World/E/XL/8JS8O72BPJR0WYUGN62PEV.uasset b/Content/__ExternalActors__/Maps/L_World/E/XL/8JS8O72BPJR0WYUGN62PEV.uasset deleted file mode 100644 index 10632bc..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/XL/8JS8O72BPJR0WYUGN62PEV.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d55ba50f2fa1b9e9c5fc51b72bbf1c87b3b64d1e6ec0a08feac10b061b260928 -size 490455 diff --git a/Content/__ExternalActors__/Maps/L_World/E/Z0/F1VET9D1CSBBUJZ3OV1P1Q.uasset b/Content/__ExternalActors__/Maps/L_World/E/Z0/F1VET9D1CSBBUJZ3OV1P1Q.uasset deleted file mode 100644 index a846d20..0000000 --- a/Content/__ExternalActors__/Maps/L_World/E/Z0/F1VET9D1CSBBUJZ3OV1P1Q.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e9615647b035e9cf294c5ca686484d785aea40e2956fb91e355e6409998bcc45 -size 583480 diff --git a/Content/__ExternalActors__/Maps/L_World/E/ZZ/K0E435DKI3672ACVI5SFZ1.uasset b/Content/__ExternalActors__/Maps/L_World/E/ZZ/K0E435DKI3672ACVI5SFZ1.uasset new file mode 100644 index 0000000..43e2b34 --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/E/ZZ/K0E435DKI3672ACVI5SFZ1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0acbec248c761d3b3b97dd4a95b8fc1512fc2d189ed431234369d46de3f6d67b +size 467583 diff --git a/Content/__ExternalActors__/Maps/L_World/F/1R/2QY3Q1S3PRTTEE63BKUNOP.uasset b/Content/__ExternalActors__/Maps/L_World/F/1R/2QY3Q1S3PRTTEE63BKUNOP.uasset deleted file mode 100644 index 8328e63..0000000 --- a/Content/__ExternalActors__/Maps/L_World/F/1R/2QY3Q1S3PRTTEE63BKUNOP.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:469f32b314f9d9730e9624fff1c3244c02541c2187892da10222c8e409489234 -size 583056 diff --git a/Content/__ExternalActors__/Maps/L_World/F/22/NQ5Q4MPOJ5ENRNOXOCG1AG.uasset b/Content/__ExternalActors__/Maps/L_World/F/22/NQ5Q4MPOJ5ENRNOXOCG1AG.uasset deleted file mode 100644 index 379bc8a..0000000 --- a/Content/__ExternalActors__/Maps/L_World/F/22/NQ5Q4MPOJ5ENRNOXOCG1AG.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e60b5e176ed663e0b6f281555ec511350c35cb0648564f311e0550316c1417e6 -size 376492 diff --git a/Content/__ExternalActors__/Maps/L_World/F/3J/E5U0AZWSBF02APZHG4SV1B.uasset b/Content/__ExternalActors__/Maps/L_World/F/3J/E5U0AZWSBF02APZHG4SV1B.uasset deleted file mode 100644 index de4ba36..0000000 --- a/Content/__ExternalActors__/Maps/L_World/F/3J/E5U0AZWSBF02APZHG4SV1B.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:72bdc6cc0eb456727c24a74030b3952ad15b1c024cacf327d91939a139789f29 -size 382486 diff --git a/Content/__ExternalActors__/Maps/L_World/F/3M/VO4CT3T2U48G60VIN0R0ZI.uasset b/Content/__ExternalActors__/Maps/L_World/F/3M/VO4CT3T2U48G60VIN0R0ZI.uasset deleted file mode 100644 index dea72bc..0000000 --- a/Content/__ExternalActors__/Maps/L_World/F/3M/VO4CT3T2U48G60VIN0R0ZI.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:75e2473569e69772e324c31b1fb11eef93475664e7084bbb47d7cdfaab8602ea -size 630458 diff --git a/Content/__ExternalActors__/Maps/L_World/F/3X/6EW4K63PEKRO6GIKJX3BL4.uasset b/Content/__ExternalActors__/Maps/L_World/F/3X/6EW4K63PEKRO6GIKJX3BL4.uasset new file mode 100644 index 0000000..04ef36c --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/F/3X/6EW4K63PEKRO6GIKJX3BL4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db7995ab822a07957ae324d14d021f42133347e9a9c773068cfe9d7d6ed9099b +size 438469 diff --git a/Content/__ExternalActors__/Maps/L_World/F/54/YBPKQ2B1D4PMBEWV1QHYG9.uasset b/Content/__ExternalActors__/Maps/L_World/F/54/YBPKQ2B1D4PMBEWV1QHYG9.uasset new file mode 100644 index 0000000..fb4d18a --- /dev/null +++ b/Content/__ExternalActors__/Maps/L_World/F/54/YBPKQ2B1D4PMBEWV1QHYG9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26767ecb867ca224c7b50b0645e1d11bda4de95413e1323b6efccc6d10ed697a +size 658638 diff --git a/Docs/Decisions.md b/Docs/Decisions.md index 81b88cd..651e811 100644 --- a/Docs/Decisions.md +++ b/Docs/Decisions.md @@ -7,6 +7,30 @@ say so. Status: `Decided` · `Supersedes` (contradicts an earlier decision, names it) · `Deferred` (deliberately not now, with a trigger) +## 2026-09-17 — Off the ladder, the terrain generator leaves numpy and gains a drainage network + +| # | Decision | Where | +| --- | --- | --- | +| D-52 | **The continent mask is thresholded, not multiplied, into the uplift field: where the land ends does not decide how fast it is rising.** The rate was `r * l` with `l` the smoothstep continent mask, so uplift tapered to zero across the shore and every coastline on the map was the lowest-uplift ground on the map by construction. Steady state is `S = U/(K*A^m)`, so ground with no uplift grades to no slope: the surf had a flattened strip to work in wherever it looked. The mask now answers only "is this cell sea", which is the yes-or-no the solve needs for its base level, and a range that runs out to the water rises at range rates right up to the waterline. Measured, seed 7 at 1400 with everything else held: surf cut 23.32 → 38.87 Mm³, planed 3.0 → 3.9 km², new beach 3.41 → 5.59 km²; seed 9342 the same in direction, 22.42 → 30.35 Mm³. `Corrects a measurement, not only the code`: the "mean cliff 2 m" that motivated this was a broken metric — it measured the drop from a cell to its seaward neighbour, which is a gradient, and at the angle of repose one cell of a 10 m grid is 7 m, so it could never have exceeded 7 whatever the coast did. Replaced by backshore height, the land's elevation one to two surf reaches inland, median and P90; on that metric the *old* build already read 88 m at P90, so the taper was never the difference between cliffs and no cliffs — it flattened the ~100 m strip the surf works in, so the cliff began a hundred metres inland instead of at the water. The slope–area fit moved −0.480 → −0.312 on seed 7 and −0.698 → −0.720 on seed 9342, in opposite directions and both inside a seed-to-seed spread that is several times larger, so it is not a regression; it is a warning that the fit at five or six bins cannot judge a single change on a single seed. `Decided`. | [Terrain.md](Terrain.md) | +| D-51 | **The coastline becomes a pass of its own, run after the fluvial solve, and the continent outline gains the octaves that make it a coast rather than a blob.** The coast was a line in a mask: the sea floor dropped to a flat plane at −180 m in one step, the land met the water at whatever angle the last erosion step left, and no process knew the shoreline was there. `internal/coast` adds three, each derived rather than drawn. A shelf, from an exact signed distance transform: gentle to a break, then a continental slope to the abyss, its width read off the relief standing behind each stretch of shore, so a plain gets a wide shelf and a range that reaches the water gets a narrow one. A surf, which planes the land to a shore platform within a reach set by how open the water is — the cliff is the step where the reach ends, so its height is whatever the land behind it stands at. And a sediment budget: what the surf cuts is counted, carried a drift length along the shore, and laid in sheltered shallow water, with river mouths delivering their own load in proportion to what they drain, which is what makes a delta. It runs after the solve because two of the three need the finished terrain, and it owns the sea floor outright — `uplift.Result.Bathymetry` is gone, and ocean cells stay at sea level for the whole solve, which is the invariant that stopped rivers cutting to −180 m. Shelter is measured as effective fetch over the *seaward* half-space against fixed absolute anchors, not as a percentile of the map: casting in every direction counts the land behind the shore as shelter, and a percentile is a global statistic that two tiles would disagree about. Measured on seed 7: the outline's octave gain, swept with everything else held, gave 64 km of shoreline at 0.50, 81 at 0.58, 96 at 0.62 and 114 at 0.66, while the fetch's view of the median stretch of coast went 1.00, 0.98, 0.84, 0.51 — five octaves put the finest coastal feature at 450 m, which is a smooth blob with nothing to shelter anything from anything. 8 octaves at gain 0.62 is the setting that has islands, inlets and headlands without the outline breaking into speckle. The whole pass costs 83 ms at the manifest's geology grid. `Decided`. | [Terrain.md](Terrain.md) | +| D-49 | **Plains are made by lowering the intraplate uplift rate an order of magnitude, not by tuning erosion; and the hillslope law becomes Roering nonlinear diffusion with the repose clamp demoted to a constraint the diffusion smooths over.** Steady state is `S = U/(K*A^m)`, and with `critical_area_m2` at 0 that holds down to a single cell, so at K 5e-5, m 0.5 and a ~10 m geology cell an intraplate rate of 0.25-0.9 mm/yr puts *every divide on the map* at 32 degrees or past the 35 degree repose angle. Measured on the old numbers: 81 % of the land in the >0.5 mm/yr class, the plain class 1 % of it and all sea cliff. The plains were never over-dissected; they were being uplifted at mountain rates, and for n = 1 the uplift rate alone fixes the hillslope angle. `intraplate_mm_yr` 0.25 -> 0.03 and `intraplate_swell_mm_yr` 0.9 -> 0.08 keeps the ~2.5-fold swell that puts divides on a plain while making the mountain-to-plain ratio 30-fold, which is what real ones are; `relief.amplitude_m` lo 50 -> 15 so the plains do not start as hills the run must erode away. Measured after: plains 42 % of land at 0.8 degrees median and 9 m of relief over 500 m. The repose clamp stays in the step loop but nonlinear diffusion runs *after* it every step, because the clamp cuts along the eight D8 directions and leaves grid-aligned pyramid faces; a symmetric five-point stencil rounds them off before the next step. Clamping once at the end instead was measured and is worse. `Supersedes` the three-fold mountain-to-plain ratio D-47's uplift notes settled on. `Decided`. | [Terrain.md](Terrain.md) | +| D-50 | **The D8 router's flat-ground tie-breaks are jittered by a hash of the cell index, and `critical_area_m2` stays at 0.** Across a filled flat the only gradient is the priority-flood's millimetre of epsilon, applied in the order the flood happened to reach the cells, so the router draws the flood's own traversal geometry as ruler-straight diagonal rivers — the polygonal network that killed the first attempt at flat plains, and the dominant artefact once D-49 made the plains genuinely flat. The epsilon is scattered per cell by plus or minus half and the choice between two equally steep neighbours is broken by a hash of the cell and direction rather than by the fixed `dx8` order, both deterministic from the seed (cross-cutting rule 12). Measured: the slope-area fit went from R² 0.055 to 0.459 normalised, 0.039 to 0.664 raw, at no cost. A channelization threshold was re-measured after D-49 and still fails — at 1e4 the plains go back to 7.0 degrees and half the rolling class pins against the clamp — because the hillslope it creates must shed its uplift by diffusion and at D 0.02 it cannot. It stays at 0 until there is a transport law to pair it with. `Decided`. | [Terrain.md](Terrain.md) | +| D-48 | **The world's canvas becomes 7141 vertices at 200 cm, elevation −512…1536 m, and it keeps its coastline.** 7140 = 255 × 28, so the engine's importer gives 28×28 components of 255 quads by its own rule (D-45) and the side stays 14 280 m, identical to today's, so nothing `create_world.py` places moves; cells go from 3.5 m to 2.0 m. A 2048 m elevation span *is* Z scale 400, so the incoming spec's canvas is expressed in the manifest's metres contract with no loss, at 3.125 cm precision. The ceiling drops from 2800 m to 1536 m deliberately: 2800 m over 14 km is a Himalayan gradient, and 800–1500 m of relief is what a fluvial landscape this size looks like. `Supersedes` the 2600 m crests the noise was tuned for. The coast stays and sea level is the fixed base level on every ocean cell, which is a better-posed boundary for the stream-power solve than one outlet edge and closes the spec's own open question. A full run holds today's five-minute bar, which sets `fill_every` at 50. `Decided`. | [Terrain.md](Terrain.md) | +| D-47 | **The heightmap generator becomes a standalone Go CLI in `Tools/Terrain/`, and stream-power fluvial erosion replaces particle erosion as the thing that shapes the land.** Droplets carve the path a droplet takes; they do not make a drainage network, which is why the world reads as weathered noise rather than as terrain with a history. A Braun & Willett implicit solve over an uplift field on a coarse geology grid does, and plates, faults and lithology exist to feed it; particle erosion, thermal weathering and strata survive as detail passes at full resolution. The core is engine-free and deterministic from a seed (cross-cutting rule 12), and `World.json` stays the single contract, with its `erosion` block replaced by `pipeline`. Retires `heightmap_noise.py`, `heightmap_erosion.py`, `heightmap_io.py` and `generate_heightmap.py`, about 780 lines of tuned numpy whose lessons are carried into the port by name; keeps `create_world.py`, `dump_level.py`, `world_manifest.py` and `ULandscapeAuthoringLibrary`. `Supersedes` D-46 on the language and on which pass shapes the land. | [Terrain.md](Terrain.md) | + +## 2026-09-17 — Off the ladder, the world's terrain is simulated, not only sampled + +| # | Decision | Where | +| --- | --- | --- | +| D-46 | **The heightmap goes through geological passes after its source, in numpy, at the world's resolution.** Domain-warped ridged noise and cellular crest lines give the uplift; particle hydraulic erosion (a coarse pass for valleys, a fine pass for gullies), mass-conserving thermal weathering at an angle of repose and a strata hardness map shape it; flow, wear, deposition and curvature maps come out beside the weightmaps and drive the layer painting. All of it is engine-free so the source stays swappable, and `"enabled": false` in the manifest skips it for a real DEM. `Decided`. | [RawContent/World/README.md](../RawContent/World/README.md) | + +## 2026-09-16 — Off the ladder, the world's terrain + +| # | Decision | Where | +| --- | --- | --- | +| D-45 | **The world heightmap is 4081 vertices a side, not Epic's 4033.** The engine's importer picks the largest section size that divides the quad count, preferring one section per component; 4080 divides by 255 and gives 256 components, 4032 divides only by 63 and gives 4096. A resolution change stays on `255 x N + 1` or `127 x N + 1`. | [RawContent/World/README.md](../RawContent/World/README.md) | +| D-44 | **`L_World` is a product of a manifest, generated PNGs and one script, never hand-edited.** `RawContent/World/World.json` fixes the size and what a 16-bit value means in metres (world Z 0 is sea level); the height comes from a named source, seeded noise now, a real heightmap by editing the source block; the paint layers are always derived from the height. The level is dressed as Elite_RockyMeadows dresses its own maps, with the numbers read from those maps rather than guessed. `Decided`. | [RawContent/World/README.md](../RawContent/World/README.md), [Worklog](Worklog.md) | + ## 2026-09-16 — Step 2, the telemetry seam | # | Decision | Where | diff --git a/Docs/README.md b/Docs/README.md index 64bc871..610d9df 100644 --- a/Docs/README.md +++ b/Docs/README.md @@ -26,6 +26,7 @@ Two layers, kept apart on purpose. | [Spec/Networking.md](Spec/Networking.md) | The authority table, the responsiveness tiers, the posture, sessions, identity, persistence. | | [Spec/Telemetry.md](Spec/Telemetry.md) | The sink, the envelope, the catalogue. | | [Spec/UI.md](Spec/UI.md) | The HUD, the prompt, the theme, world-space text, localisation, the menu. | +| [Terrain.md](Terrain.md) | Off the ladder: the world's heightmap generator, the canvas, the passes, the Go core, the editor bridge. Not in `Spec/` because it never runs in a game; only the determinism rule governs it. | ## Reading order diff --git a/Docs/Terrain-Next.md b/Docs/Terrain-Next.md new file mode 100644 index 0000000..d05d823 --- /dev/null +++ b/Docs/Terrain-Next.md @@ -0,0 +1,447 @@ +# Terrain: next steps + +A working brief for the next session on the heightmap generator. It exists so a cleared session can pick the +work up cold. [`Terrain.md`](Terrain.md) is still the specification and the decision record; this is only +"where it stands, what looks wrong, and what to do about it". **Fold anything settled back into `Terrain.md` +and delete the corresponding section here.** Do not let the two drift. + +Everything below is off the ladder (D-47). No gameplay code may reach into the generator, and nothing here +blocks a step in [`Steps.md`](Steps.md). + +--- + +## 1. Read this first + +The generator is a Go CLI in `Tools/Terrain/`. It turns a seed and `RawContent/World/World.json` into a +heightmap, by building an **uplift rate field** and letting a stream-power erosion solve produce the terrain +from it. The noise is not the terrain; the noise is the tectonics. + +```bash +cd Tools/Terrain && go build -o bin/terrain.exe ./cmd/terrain && go test ./... +# a preview run: ~4 minutes at 1400², the iteration loop +Tools/Terrain/bin/terrain.exe generate --size 1400 --out RawContent/World/Try1 --quiet +# another continent +Tools/Terrain/bin/terrain.exe generate --size 1400 --seed 9342 --out RawContent/World/Seed_9342 --quiet +``` + +`--size` keeps the map's physical extent and samples it more coarsely, so metres, uplift rates and the +stream-power constants all still mean what they mean. **Do not tune on `--size 512`**: the geology cell there +is 28 m against 8–10 m at full size, and steady-state slope goes as `U/(K*A^m)` with `A = cell²` at every +divide, so a 512 preview shows gentler ground than the real run for reasons that have nothing to do with the +change being judged. + +Every `bs.*`-style knob in the manifest has a `--flag` override so an experiment does not need a file edit: +`--intraplate`, `--intraplate-swell`, `--convergent`, `--k`, `--diffusion`, `--talus`, `--critical-m2`, +`--critical-slope`, `--slope-cap`, `--hillslope-substeps`, `--lithology-types`, `--fault-scale`, `--steps`, +and for the coast `--no-coast`, `--outline-octaves`, `--outline-gain`, `--shelf-km`, `--surf-reach`, +`--cut-fraction`, `--deposit-reach`, `--drift`, `--river-sediment`. + +### What a run writes + +| File | What it is for | +| --- | --- | +| `preview.png` | Hypsometric tint, hillshade, rivers. "Does this look like a landscape" | +| `preview_detail.png` | A crop at 2× vertical exaggeration. The whole continent at 1600 px cannot show whether lowlands read as hill country or as small mountains; this can. Move it with `--crop-x/-y/-size`. It cannot be rendered finer than the grid: a crop of 0.14 at `--size 1400` is 196 cells, so that is the image, whatever `Size` asks for | +| `geology_height.png` | The 16-bit heightmap itself, encoded to the manifest's elevation range | +| `map_uplift.png` | **The most useful diagnostic.** Rock uplift in mm/yr — the field everything else is a consequence of. It and `map_slope` should be recognisably the same picture; when they are not, something downstream is overriding the tectonics | +| `map_slope.png` | Degrees, 0–45 | +| `map_relief.png` | Local relief over 500 m. Separates a 5 m hummock from a 500 m mountainside — both stand at 30° and the slope map cannot tell them apart | +| `map_erodibility.png` | The lithology multiplier on K. Where texture inside a range comes from | +| `map_exposure.png` | How open the water is in front of each stretch of shore, 0 sheltered to 1 open. Drawn only within a kilometre of the waterline, because past that it is a map of the continent's medial axis. The one to read when a beach turns up on a headland | +| `map_coast.png` | Everything the coastal pass moved, in metres: cool where the surf cut, warm where the sediment landed. The sea floor is excluded, or its few hundred metres would swamp the few the processes move | +| `map_flow.png`, `geology_flow.png` | Log drainage area: the rivers | +| `map_basins.png` | One colour per drainage basin, hashed from the basin root. The direct test of whether the solve made a *network* rather than scratches: basins must tile the land, sizes must span orders of magnitude, and divides must sit on the ridge crests. Confetti means the router is re-deciding where water goes every few cells | +| `meta.json` | The full manifest as resolved, plus every statistic | + +### How a run is judged + +The printed summary is the verdict, and the block that matters most is the per-uplift-class breakdown — +map-wide medians cannot answer "are the plains plains", which is precisely how the last problem stayed +invisible. Current state, seed 7 at 1400²: + +``` + slopes: 54% under 15 deg, 77% under 30, 0.3% over 50, median 11.2 deg + slope-area: exponent -0.384 (expect -0.500), R2 0.225 over 6 bins + hypsometric integral 0.107 (concave: over-eroded); drainage density 0.48 /km + by uplift class: + plain 0.00..0.10 mm/yr 42% of land slope 0.8 deg median, 2.8 P90 relief 9 m/490 m at talus 1% + rolling 0.10..0.50 mm/yr 7% of land slope 7.5 deg median, 23.1 P90 relief 85 m/490 m at talus 1% + mountain 0.50.. up mm/yr 51% of land slope 28.5 deg median, 36.0 P90 relief 195 m/490 m at talus 33% +``` + +The coast prints its own block after it, and the numbers to read first are the sediment budget — it is the one +part of the pass not derived from something already measured — and the exposure percentiles, which say whether +the shoreline has any bays for the shelter to work with: + +``` +coast: 95 km of shoreline, 37% sea, shelf 86% of it; surf planed 2.8 km2 and cut 21.23 Mm3, + 16 river mouths delivered 3.87 Mm3, 25.04 Mm3 laid (0% unplaced) as 2.92 km2 of new beach; + mean cliff 3 m, 0.00 km2 drowned; shore exposure 0.00 / 0.90 / 1.00 (p10/p50/p90) +``` + +An unplaced fraction above a few per cent means the sediment has nowhere to go and the deposition gates are +wrong; a median exposure of 1.00 means the outline has no bays at all and neither the surf reach nor the +shelter is doing any work. + +**The slope–area fit cannot judge one change on one seed, and it was nearly used to reject a good one.** It is +the number this document calls the proof that closes the work, and at five or six bins on a 1400 grid its +seed-to-seed spread on *identical code* is larger than most changes: seed 7 gives −0.480 at R² 0.317, seed 9342 +gives −0.698 at R² 0.704, and seed 67914 gives −0.575 at R² 0.944. Use it paired — the same seed before and +after — and across at least two seeds, or raise the bin count before leaning on it. + +--- + +## 2. What was just built, in one paragraph + +The coast, which until now was a line in a mask: the sea floor dropped to a flat plane at −180 m in one step +and no process knew the shoreline was there. `internal/coast` adds three that do, each derived rather than +drawn — a continental shelf whose width is read off the relief standing behind each stretch of shore, a surf +that planes the land to a shore platform within a reach set by how open the water is (the cliff is the step +where the reach ends), and a sediment budget that carries what the surf cut along the shore and lays it in +sheltered shallow water, with river mouths delivering their own load. It runs after the fluvial solve, on the +terrain the solve produced, and it owns the sea floor outright: `uplift.Result.Bathymetry` is gone and ocean +cells stay at sea level for the whole solve. Measuring it then said something about the *continent* rather than +about the coast — the fetch reported the median stretch of shoreline as fully open, because five octaves of +outline noise over a 14 km map put the finest coastal feature at 450 m and a coastline is fractal. D-51 takes +the outline to 8 octaves at gain 0.62, which is 96 km of shoreline against 64. + +Full detail, including four things that were wrong first, is in `Terrain.md` under **What was built, and where +it differs**. + +## 3. Where this is going + +**Composition is parked.** The mountain fraction, the range grain and the fault traces are all real and all +still listed below, but they are *tuning* and the map is good enough to work against. Do not spend the next +session on them. + +The goal is: **get generation working end to end, then make the world author-driven and scalable.** Three +things, in order. + +### 3.1 Finish the pipeline (build-order step 6) + +Passes 8–14 are unbuilt — upsample, detail noise, strata, particle, fine thermal, spawn pad, derive — so the +generator stops at the geology grid and `L_World` is still built by the numpy pipeline it was meant to +replace. Until this lands there is no full-resolution output and nothing to import, at any scale. It is also +the only work that changes how the terrain reads to a player standing on it: see §4.C. + +### 3.2 Painted maps as the source + +An author paints a world map; the simulation turns it into terrain. The manifest already anticipates a file +source — `"source": {"kind": "file", "path": ...}` is documented in `RawContent/World/README.md` and +`field.ReadHeightmap` exists — but **nothing in the Go tool reads it**: `Source.Kind` appears only in a +`Describe()` string, and the run always builds noise. So this is new work, not a re-wiring. + +**Paint the uplift, not the height.** This is the one design decision that matters and it follows directly +from D-47 and from everything measured this session. The architecture is *noise becomes tectonics, and the +solve makes the terrain*; a painted heightmap would be handed to a solver that promptly erodes it into +something else, throwing away the drainage network that is the entire reason the generator was rewritten. +Painting uplift instead means an author draws intent — "a range here, lowlands there, coast like this" — and +gets terrain with real rivers, real divides and real valley hierarchy honouring it. + +Suggested channels, all optional, all falling back to the procedural field where absent: + +| Painted layer | Feeds | Notes | +| --- | --- | --- | +| Land / sea mask | `uplift.Result.Land`, `Base` | The outline. Almost certainly the first thing anyone wants to draw | +| Uplift rate | `Result.Rate` | The load-bearing one. Greyscale mapped to a mm/yr range from the manifest | +| Erodibility | `Result.K` | Rock types. Cheap, and it is where texture inside a range comes from | +| Sea floor | `Result.Bathymetry` | Cosmetic; it is put back after the solve and never erodes | +| Fault lines | `buildFaults` | Later. A line layer, not a raster | + +**Rivers cannot be painted directly**, and it is worth knowing why before someone tries: a river is an +*output* of the drainage solve. What does work is biasing — raise `K` along a painted line so the water finds +the soft rock, or drop the uplift slightly along it, or seed a shallow valley into the initial relief. The +solve then chooses to put a river there for its own reasons and the result is still a coherent network. A +painted line forced into the height directly would be cut apart by the first thousand steps. + +**The blend rule, which keeps painted maps from looking painted.** A painted map is coarse — 2048 px across a +100 km world is 50 m a pixel, five geology cells. Upsample it smoothly and let procedural noise supply +everything below its pixel size: **the painted map owns wavelengths above its resolution, noise owns those +below.** Without that rule a painted world is visibly blocky at the paint resolution; with it, an author +controls structure and the generator still supplies texture. + +### 3.3 Scale, and why tiling is an architecture question + +A world is big. Today's canvas is 14.28 km a side; the interesting sizes are 50–200 km. The numbers, measured +and extrapolated from the 256 s full geology run: + +| World side | Area | Geology cells at 8 m | Fluvial solve, 1000 steps | Grid memory | +| --- | --- | --- | --- | --- | +| 14 km — today | 204 km² | 3.2 M | 4 min | ~150 MB | +| 50 km | 2 500 km² | 39 M | ~50 min | ~1.8 GB | +| 100 km | 10 000 km² | 156 M | ~3.5 h | ~7 GB | +| 200 km | 40 000 km² | 625 M | ~14 h | ~28 GB | + +**The fluvial solve cannot be tiled.** Drainage area accumulates across the whole map and the priority-flood +needs global connectivity, so a river crossing a tile boundary needs its upstream catchment from the next +tile. Solving tiles independently gives wrong drainage areas and a discontinuity at every seam — and drainage +area is the term the whole model is built on. Halo exchange between tiles would work in principle and is a +large, iterative piece of work. + +**The detail passes tile perfectly**, because every one of them is local: noise is pointwise, thermal +weathering propagates a cell at a time, and a droplet travels at most its lifetime in cells. + +So the architecture already contains the answer, and it is the two-grid split that is already there: + +> **Solve the geology whole, once, at a fixed physical cell size. Tile only the detail.** + +That gives consistent relief for free, because the geology cell never changes — which matters more than it +sounds, and §4.D.3 explains why. It makes maximum world size a memory-and-patience question rather than a +correctness one: ~50 km is an hour, 100 km is an overnight bake, and beyond that the geology stage needs to +go out-of-core. Since the goal is explicitly a batched, offline bake, that seems an acceptable trade — but it +should be a decision made deliberately, with these numbers in front of whoever makes it. + +**Two rules that make tiles seamless, and are much easier to adopt now than to retrofit:** + +1. **Index every noise and every hash by absolute world coordinates, never by tile-local index.** Both the + fBm lattices in `internal/noise` and the D8 router's jitter (`internal/fluvial/jitter.go`, D-50) currently + key off grid index. Two tiles would then get different values for the same physical place and every seam + would show. This is a small change now and a pervasive one later. +2. **Every tile carries an overlap margin, discarded after the pass.** Size it by how far the pass can move + material: a few cells for thermal, the droplet lifetime (~40–64 cells) for particle, zero for pointwise + noise. Cheapest correct approach; no inter-tile communication needed. + +--- + +## 4. What looks wrong now + +Ordered by how much it matters to the direction above, which is *not* the order of how visible it is on a +preview image. + +### C. Detail — nothing exists at player scale · the blocker + +Passes 8–14 of the pipeline table in `Terrain.md` are entirely unbuilt: upsample, detail noise, strata, +particle erosion, fine thermal, spawn pad, derive. The generator stops at the geology grid — 8 m cells at full +resolution — so at 2 m quads a player stands on a 4× upsample of a coarse grid with **no detail added at +all**. Ledges, scree, gullies, the strata shelves on a cut face: all of it lives in those passes, and every +one already exists as tuned numpy in `Scripts/Authoring/heightmap_erosion.py` waiting to be **ported, not +reinvented**. Carry its brakes across unchanged — the droplet slope gate, the per-step cut cap, the load cap, +the 3×3 cut brush and the own-cell deposit are each a lesson from the Worklog. + +Budget from `Terrain.md`: upsample and detail noise 15 s, particle 90 s, fine thermal 20 s. The fluvial pass +is already 256 s against 120 s budgeted, so the five-minute bar is at risk before these land — and §3.3 says +the bar is probably the wrong constraint for a batch bake anyway. Worth deciding rather than drifting. + +### D. Scale-independence — the one that becomes load-bearing + +**D.3 Relief is resolution-dependent, and multi-scale makes that a blocker rather than a wart.** Measured +earlier: 1020 m relief at 512² against 2605 m at 1786² on one seed. The cause is that with +`critical_area_m2` at 0, stream power is applied down to a single cell, so the divide slope is +`U/(K·cell^2m)` — halve the cell and every divide steepens, for ever. As long as there was one canvas this was +a wart. The moment the same painted map is meant to produce worlds at different sizes or resolutions, it +means **the same input gives a different landscape depending on grid size**, which is fatal to the whole idea. + +The textbook fix is a critical area, and it was re-measured this session and still fails (§6) because the +hillslope it creates has no transport law strong enough to shed its uplift. So this is genuinely open, and +the two candidate directions are: + +- Fix the pairing: critical area *plus* a hillslope diffusivity that scales with cell size (effective `D` + grows roughly as cell², which is the standard sub-grid argument). Principled, and it makes the critical + area work rather than fail. +- Sidestep it: **always solve the geology at one fixed physical cell size** and never vary it, per §3.3. Free, + correct by construction, and it costs the ability to trade resolution for runtime on a big world. + +The second is the recommendation for now because it is free and unblocks everything; the first is what to +build if the bake times in §3.3 turn out to be unacceptable. + +**D.4 Two open questions that are design, not defects.** The hypsometric integral is 0.10 against 0.4–0.6 for +a mature landscape — no longer a bimodal uplift field, now simply that 42 % of the land is a near-sea-level +plain, which is a question for the `continent` block and will move when composition is tuned. And drainage +density is 0.41–0.48 /km, right on the 0.5 floor set as do-not-cross; it is measured at a 1 km² channel +threshold so it is not directly comparable to a field value, but if it drops further while tuning, raise the +intraplate rate to 0.05 before touching anything else. + +### E. The coast — what it built, and the four things it cannot do yet + +**E1. ~~There are no sea cliffs~~ — withdrawn, and the metric that said so is replaced.** This entry read "mean +cliff height is 2 to 3 m, and the surf has nothing to cut". Both halves were wrong, and the way they were wrong +is the part worth keeping: *the statistic measured the drop from a cell to its seaward neighbour*, which is a +gradient. One cell of a 10 m grid at the angle of repose is 7 m, so the number could never have exceeded 7 +whatever the coast did — it read 2 m on a plain coast and 3 m on a cliffed one because it could not tell them +apart. It is now backshore height: the land's elevation one to two surf reaches inland, median and P90. On that +metric the coast has always had cliffs (seed 7 P90 88 m, seed 9342 108 m, seed 67914 120 m); the median, 3 to +9 m, says the ordinary coast is a plain, which it should. + +What the mask taper was actually doing is narrower and is now fixed anyway (D-52): it flattened the ~100 m +strip the surf works in, so the cliff began a hundred metres inland instead of at the water. Removing it is +worth 35 to 67 % more surf cut and a visibly steeper shore, and the principle stands — **where the land ends +does not decide how fast it is rising** — but it was a sharpening, not the transformation this entry predicted. + +**E1b. The map margin draws one coastline in seven, and it draws it straight.** Measured on three seeds: +14.1 %, 15.0 % and 14.0 % of the waterline sits inside the 4 % margin band that `continentMask` imposes to keep +land off the map border. The margin tapers by distance-to-edge, and a contour of distance-to-edge is a line +parallel to that edge, so wherever the continent would have run past the boundary it is cut off square. This is +pre-existing and it is *not* the frozen-rim failure the margin exists to prevent — `TestBorderIsAlwaysOcean` +confirms every border cell is still ocean on all three seeds, so nothing is frozen. It is cosmetic, and D-52 +made it conspicuous: land inside the band now takes the full 2.0 mm/yr instead of a tapered rate, so the +straight-cut coast can be a mountain range rather than a low plain, which is exactly what seed 67914's southern +coast is. Cheapest fix, and it belongs with the outline work rather than with the coastal pass: perturb the +margin distance with a low-amplitude noise field so the cut follows a crenellated line instead of a ruled one. + +**E2. The shelter contrast is real but thin.** Exposure comes out 0.00 / 0.90 / 1.00 at p10 / p50 / p90, so the +distribution is one long tail: a handful of genuine embayments and a lot of open coast. A floor of 0.15 on +shelter carries most of the deposition, which is deliberate — measured with no floor, 73 % of the sediment +budget came back unplaced, because real exposed coasts do have beaches, they just have less sand than the bay +next door. Re-measure this once the outline is painted rather than noised; it is the same question as E1 from +the other end. + +**E3. The beach is a beach at 8 m, which is to say it is not one.** The surf reach is 110 m, or 14 cells on the +geology grid, and the berm, the wave-cut notch, the scree below a cliff and the sand itself are all finer than +that. They belong in the detail passes (§4.C) — and note that the surf reach is one of the few lengths in the +generator that is set by physics rather than by the canvas, so it does *not* scale with the map: at the 2 m +detail grid it is 55 cells, which is enough for a real profile. The coastal detail pass is a natural addition +to the list in §4.C rather than a separate piece of work. + +**E4. Deltas are placed, not tuned.** `river_m3_per_km2` is 1.2e5 with an exponent of 0.6, and both are guesses; +on seed 7 they put 3.9 Mm³ through 16 mouths against 21 Mm³ from the cliffs. The mechanism is right — the supply +concentrates at the mouth and the drift kernel spreads it into the shallows — but nothing has yet asked whether +what comes out reads as a delta. `map_coast.png` at a crop is where that is judged. + +**E5. Unverified: speckle at the finer canvas.** The outline gain went from 0.50 to 0.62 on measurements taken +at `--size 1400` (10.2 m cells). A finer grid resolves more of the threshold's wander, so the D-48 canvas at +8 m, and any painted map after it, could turn the same setting into a scatter of one-cell islands. Check the +shoreline length per unit land area and look at `preview.png` before assuming it carries over. + +### B. Texture — wrong at mid scale + +**B1. 33 % of the mountain class still sits within 2° of the repose angle**, so a third of the mountains are +shaped by the clamp rather than by erosion. Down from 44 %, and the nonlinear diffusion pass after the clamp +keeps it from showing as hard facets. Levers, most principled first: raise `max_hillslope_substeps` and +`slope_cap` (costs runtime, buys real stiffening); raise `diffusion_m2_yr` (cheap, but past ~0.05 it smooths +away the landforms — measured before as "melted wax"); or accept it, since a belt rising at 2 mm/yr genuinely +*is* landslide-dominated in the real world and the clamp is the right model there. + +**B2. Multiple-flow-direction accumulation is unbuilt.** The hash jitter recovered most of the damage (R² +0.055 → 0.459) but D8 still lets a cell drain to only one of eight neighbours, and some basin boundaries on +the plains in `map_basins.png` are visibly straight. The proper fix is Freeman/Quinn MFD for `Accumulate` +only, keeping D8 receivers for the implicit solve — Braun–Willett needs a single receiver per node for the +update, but the *area* can come from MFD. Cost: MFD needs its own processing order (descending elevation) +rather than the D8 stack. + +**B3. A ribbed, combed texture on the range flanks**, regularly spaced, roughly perpendicular to the crest. +Not diagnosed. Candidates to check before changing anything: the ridged-noise initial relief showing through +where the solve has not had time to overwrite it; channel spacing locking to the grid at small drainage area; +or the `crests` cellular-edge field at `crest_weight` 0.12. Test with `--stage uplift` and compare the initial +relief against the final flanks. + +### A. Composition — parked, but recorded + +All three are one-or-two-constant changes. They are listed so they are not rediscovered, not because they are +next. + +**A1. Half the continent is mountain** — 51 % of land on seed 7, 44 % on seed 9342, against nothing like that +in reality. The cause is arithmetic: + +```go +// internal/uplift/uplift.go +rangeMask := percentileMask(band, cfg.Plates.LowUpliftFraction.Hi()*100, 86) // ramps 40th → 86th percentile +r := base + (convergent-base)*float64(rangeMask.Data[i]) +``` + +With `base` ≈ 0.055 and `convergent` 2.0 a cell clears the 0.5 mm/yr mountain threshold at `rangeMask` 0.229, +which the smoothstep reaches at the **54th percentile** — so 46 % of the map is mountain-class by +construction, matching the 44–51 % measured on land. Computed options: + +| percentile ramp | exponent on the mask | mountain class, % of map | +| --- | --- | --- | +| 40 → 86 | 1 — today | 46 % | +| 40 → 86 | 2 | 38 % | +| 40 → 86 | 3 | 34 % | +| 60 → 92 | 2 | 24 % | +| 70 → 92 | 2 | **19 %** | +| 75 → 95 | 2 | 15 % | + +Squaring the mask is *not* the same as narrowing the ramp: the foreland stays continuous, which is the +property the percentile ramp exists to provide. Note also that the manifest key `low_uplift_fraction` encodes +the spec's "20–40 % of the map at low uplift" constraint, which is satisfied trivially and always has been; +the constraint that actually binds is what fraction is *high* uplift, and nothing names it. + +**A2. Fault traces are drawn curves with stamped ends** — visible in `map_uplift.png` as straight-edged +polygonal facets and an abrupt cut across a summit. Four causes, all in `buildFaults`: the trace is a single +8-point parabola (`const segs = 8`, one `wander` bow); `signedDistance` over 8 straight segments gives a +piecewise-linear distance field, hence polygonal contours; beyond the last segment `inside` is false and the +influence stops dead; and `if r > convergent*1.6` flattens the strongest throws into plateaus. Fix: an +fBm-perturbed heading, `ThrowM` tapered to zero over the last ~15 % of length instead of cut at the tip, and +long faults broken into 2–3 overlapping en-echelon segments. + +**A3. Range grain runs as straight parallel bands** — chains run NW–SE like corduroy on seed 9342. +`bv.Data[i] = float32(0.5 + across*2.2 + float64(wy.Data[i]-0.5)*0.32)` stretches the band 2.2× along one +angle with a single mild warp octave. Raise the warp, or warp with two octaves at different scales so chains +bend and bifurcate. + +--- + +## 5. Suggested order + +1. **Adopt the two seam rules from §3.3 now** — world-coordinate indexing for all noise and hashes. It is a + small change today and a pervasive one after the detail passes exist. +2. **Build the detail passes (§4.C), and put the coastal detail in with them (§4.E3).** Port from the numpy, + keep every brake, profile before any GPU work. This is the blocker for everything else and the only work + that changes how the ground reads to a player — and the shore is where a player will stand first. +3. **Decide the scale question (§3.3 and §4.D.3)** with the bake-time table in front of you: fixed geology + cell and tiled detail, or critical area with cell-scaled diffusivity. The first is free; take it unless + the bake times are unacceptable. +4. **Wire the painted-map source (§3.2).** Mask first, then uplift, then erodibility — each independently + useful, each falling back to the procedural field. Get the blend rule right from the start. Two of them now + have consumers that did not exist before: the mask is the coastline the coastal pass works on, and the + uplift is what decides whether the shore is a plain or a cliff (§4.E1). +5. **Then composition (§4.A)**, which by then can be judged against a real painted world rather than against + noise. + +Build-order steps 1 and 2 in `Terrain.md` — the editor viewport and the `Generated` edit layer — remain open, +remain first in that list, and are worth doing whatever happens here: a generator whose output cannot be seen +in the editor cannot be iterated on, and sculpting that does not survive a rerun makes the whole tool +one-shot. They matter *more* under this direction, not less, because an authored world is one somebody will +want to touch up by hand. + +--- + +## 6. Do not redo these + +Each was measured, not guessed. + +- **`critical_area_m2` above 0, on its own.** Re-measured after the uplift fix and it still fails: 1e4 sends + the plains back to 7.0°, pins 49 % of the rolling class and 79 % of the mountains against the clamp, and + collapses the slope-area fit to R² 0.001. The hillslope it creates has to shed its uplift by diffusion and + at D 0.02 it cannot. It is not a tuning knob — it needs a transport law to pair with. See §4.D.3, where it + comes back as a real candidate for a real reason. +- **Running the repose clamp only once at the end.** A thousand steps of growth arrive together, it cuts + deeply, and nothing runs afterwards to soften it. The grid facets came back in the summits. +- **`fill_every` above 1.** The 50 was written to protect the time budget and it silently destroys the solve. +- **Raising the intraplate uplift rate to give the plains relief.** That is the mistake this round undid. For + n = 1 the uplift rate alone fixes the hillslope angle; `U` sets how high summits get, not how steep ground + is. If plains need texture it comes from the detail passes or from lithology, never from U. +- **An elevation-gated talus** ("below 150 m, don't dissect"). It would work immediately because the clamp + binds everywhere, but elevation is the *output* of the solve, so gating a process on it is circular, it + produces a visible shelf at the threshold, and it hides the cause. +- **A percentile stretch for shore exposure, and casting fetch in every direction.** Both measured, both + wrong, and both recorded in `Terrain.md`: a percentile collapses on a coast that does not vary and is a + global statistic two tiles would disagree about, and an all-directions fetch counts the land behind the shore + as shelter, which made a straight open coast score as more sheltered than a bay. +- **One blur kernel for both the sediment and the carried per-shore values.** The sediment balance needs a + symmetric kernel, which means zero padding; a carried value needs edge clamping, or every shelf near the map + border shrinks to nothing. There are two, and they share their arithmetic on purpose. +- **Importing a painted *heightmap* as the terrain.** See §3.2. The solve will erode it into something else + and the drainage network — the reason the generator exists — is thrown away. Paint the uplift. + +## 7. Traps + +- **`RawContent/World/World.json` is still pre-D-48**: 4081 vertices at 350 cm, elevation −460…2800, and it + still carries the legacy `erosion` block the tool warns about on every run. The Go defaults implement D-48 + (7141 at 200 cm, −512…1536) and the manifest overrides them straight back. Migrating it is build-order step + 8 and it changes every measured number in this doc, so either do it deliberately and re-baseline, or leave + it alone. +- **Never run an authoring script while the editor has `L_World` open**, and run `create_world.py` detached, + never under a tool timeout — a timeout killed one mid-import before. +- **The elevation ceiling is a hard clip** in the 16-bit encoding, so a run reporting a clip fraction above + 0.1 % is a failed run, not a rounded one. `U/K` is the one relief knob. Note this gets harder with painted + uplift, where an author can ask for more relief than the range holds. +- **Determinism from the seed is cross-cutting rule 12 and it applies here completely.** Anything random must + be a hash of (seed, position), never a stateful source: the value for a cell must not depend on how many + cells were visited first, which goroutine ran, or how many steps have passed. + `TestDeterministicAcrossGOMAXPROCS` hashes the output at five values of `GOMAXPROCS` and requires one hash. + Under §3.3's rule 1 that becomes a hash of (seed, *world position*). +- **A test on a grid whose edge is an outlet must say which cells it is asking about.** Two of the four new + hillslope tests passed while measuring nothing: one read the fixed border cells back and called them the + result, the other wrote its initial condition across the fixed border, which then re-injected it into the + interior for ever. diff --git a/Docs/Terrain.md b/Docs/Terrain.md new file mode 100644 index 0000000..aa5ee5d --- /dev/null +++ b/Docs/Terrain.md @@ -0,0 +1,738 @@ +# Terrain + +The world's heightmap generator: what it is, what it will be, and what happens to what exists. Off the ladder, +like everything about `L_World`, so nothing here blocks a step and no gameplay code may reach into it. + +**The current working brief is [`Terrain-Next.md`](Terrain-Next.md)**: what the generator produces today, +what still looks wrong and in what order to fix it. Read it if you are picking the work up; read this one for +why anything is the way it is. Settled work moves from there to here. + +This document reconciles a procedural terrain specification (tectonics → faults → lithology → stream-power +erosion, a Go core, an editor bridge into a Landscape edit layer) with the pipeline already in the repository. +The two agree on the goal and disagree on almost every number, so the point of this document is to settle the +disagreements once, in writing, before any of it is built. Where the incoming spec is called "the spec" below, +its resolution is marked with the project's own notation: `[DECIDED]` settled with the reason, `[PROPOSED]` the +recommended shape not yet built on, `Qn` an open question collected at the end. + +It is not in [`Spec/`](Spec/README.md). The spec set is the gameplay specification, C++-shaped and governed by +the twelve cross-cutting rules; this is an offline tool that never runs in a game. Of those rules only the +twelfth, determinism from a seed, applies, and it applies completely. The level *dressing* — the material, the +sun, the fog, the sea plane, the pack's misleading layer names — stays where it is documented, in +[`../RawContent/World/README.md`](../RawContent/World/README.md). + +## Why change anything + +The user's verdict on the current world was "still somewhat rough", and the Worklog's open item says the same +three things: sculpting does not survive a rerun, the terrain is invisible in the editor viewport, and nothing +grows on it. None of those is the reason to rewrite the generator. The reason is narrower and the spec names it: + +**Particle erosion does not make drainage.** Droplets carve the path each droplet happens to take. They produce +gullies, rills, scree and plausible-looking wear, and the current pipeline does all of that well, but they do +not produce a *network*: no branching hierarchy, no valley whose width matches the area it drains, no divide +that sits where the two basins either side of it put it. Stream power does, because it solves for drainage area +first and then erodes proportionally to it. That is the single change that moves the terrain from "noise that +has been weathered" to "terrain that has a history", and everything else in the spec — plates, faults, +lithology — exists to give that simulation something to chew on. + +So the order is inverted, and that inversion is the whole reconciliation: today the noise *is* the terrain and +erosion decorates it; afterwards the noise is an *uplift field* and the simulation produces the terrain. + +## What exists today, and what becomes of it + +| File | What it is | Fate | +| --- | --- | --- | +| `RawContent/World/World.json` | The manifest: size, quad, elevation range, sea level, source, erosion settings, layer rules | **Kept and extended.** Its `erosion` block is replaced by a `pipeline` block. It stays the single contract | +| `Scripts/Authoring/world_manifest.py` | Reads the manifest, derives Z scale, Z offset, the height encoding | **Kept.** `create_world.py` still needs it. The Go core reads the same file and must derive the same numbers | +| `Scripts/Authoring/heightmap_noise.py` | Value noise, fBm, domain warp, Worley crests, blur; the continent generator | **Retired.** Its shapes are reimplemented in Go, its *tuning* is carried across (below) | +| `Scripts/Authoring/heightmap_erosion.py` | Particle hydraulic erosion, thermal weathering, strata hardness, curvature | **Demoted and reimplemented.** Particle erosion survives as a detail pass only; thermal and strata survive whole | +| `Scripts/Authoring/heightmap_io.py` | 8/16-bit greyscale PNG, raw `.r16`, resample, centred crop — no PIL, numpy only | **Retired.** Go's `image/png` and a small resample cover it. The DEM ingest rules must be ported exactly | +| `Scripts/Authoring/generate_heightmap.py` | The driver: source → erosion → spawn pad → encode → derive layers → write PNGs | **Retired**, replaced by the Go CLI. Its layer derivation is ported unchanged in behaviour | +| `Scripts/Authoring/create_world.py` | Imports the PNGs, dresses the level from Rocky Meadows' demo maps | **Kept.** Gains the edit-layer path | +| `Scripts/Authoring/dump_level.py` | Dumps any level's actors to JSON; how the dressing numbers were read | **Kept**, untouched | +| `Source/SaltyEditor/Authoring/LandscapeAuthoringLibrary.*` | `CreateLandscapeFromHeightmap`, the editor's Import button callable from a script | **Kept**, gains `ReimportHeightmapIntoLayer` and a guard on the component layout | + +Choosing Go retires about 780 lines of working numpy. That is the real price of the decision and it is worth +stating plainly: those lines are not just shapes, they are five rounds of tuning, and every lesson in the +Worklog's "Did not work" section is encoded in a constant somewhere in them. They are listed here so the Go +port carries them rather than rediscovering them: + +- **Octave gain.** Eight octaves at gain 0.5 makes every octave as steep as the last and puts a third of the + land above 50°. Gains stay at 0.42–0.45 and no octave is finer than about 50 m. +- **Cellular crest lines** at 30 % of mountain height turn ranges into a honeycomb of polygon walls. 12 %, + through a stronger warp. +- **The droplet slope gate** must sit well above the median lowland slope (0.25 rise over run, about 14°), or + the meadows come out brushed with rills. +- **A droplet's cut is capped per step** (a fifth of a cell height), because droplets step in batches, share + cells, and a crowd in one cell runs away to infinity without the cap. +- **Cuts go through a 3×3 brush; deposits land on the droplet's own cell.** Spread deposits through the brush + and a pit's rim rises faster than its floor, so the pit never fills and every droplet feeds a mound. +- **Thermal weathering sheds half the *largest* excess**, not half the mean, or it converges far slower. +- **Measure before tuning.** A stage-by-stage slope histogram attributed the rill damage to the coarse pass in + one run. No knob is turned on an impression. + +## The canvas `[DECIDED]` + +The spec and the manifest disagree here and the spec is closer to right, but neither number survives contact +with what the engine's importer actually does. + +| | Today | The spec | Resolved | +| --- | --- | --- | --- | +| Vertices a side | 4081 | 7113 | **7141** | +| Quad | 350 cm | 200 cm | **200 cm** | +| Side | 14.28 km, 204 km² | 14.22 km, 202 km² | **14.28 km, 204 km²** | +| Components | 16×16 of 255 quads, 1 section | 28×28 of 127 quads, 2×2 sections | **28×28 of 255 quads, 1 section** | +| Component count | 256 | 784 | **784** | +| Elevation | −460…2800 m | ±1024 m (Z scale 400) | **−512…1536 m** (Z scale 400) | +| Height precision | 5.0 cm | ~3 cm | **3.125 cm** | + +**Why not 7113.** D-45 is not a preference, it is a description of the importer: it picks the largest section +size that divides the quad count exactly, preferring one section per component. 7112 = 127 × 56 and is not +divisible by 255, so a 7113 heightmap handed to `CreateLandscapeFromHeightmap` as it stands produces 56×56 = +**3136 components**, not the spec's 784 — the same trap that made a 4033 import take forty minutes instead of +two. The spec's 28×28 layout is only reachable by specifying section size and section count explicitly instead +of deriving them, which is a change to the C++ for no gain over a resolution that divides correctly. + +**Why 7141.** 7140 = 255 × 28, so the importer's own rule gives exactly 28×28 components of 255 quads, one +section each: the spec's component grid, reached without touching the importer path. At 200 cm the side is +14 280 m, *identical* to today's, so the manifest's side length, the sea plane, the spawn pad and every number +`create_world.py` places are unchanged. Cells go from 3.5 m to 2.0 m and the sample count from 16.7 M to +51.0 M, a factor of 3.06. + +**Why −512…1536 m.** The manifest's contract is an elevation range in metres, from which the Z scale follows; +that contract is better than the spec's (a raw Z scale) and it stays. A span of 2048 m *is* Z scale 400, so the +spec's canvas is expressible in the manifest's own terms with no loss. It puts the ceiling at 1536 m instead of +2800 m, which is the spec's deliberate judgement: 2800 m peaks in a 14 km-wide region is a Himalayan gradient, +and the spec's 800–1500 m target relief is what a fluvial landscape of this size actually looks like. The sea +floor gets 512 m, more than today's 460 m. Taken with the trade understood: the mountains get lower and the +valleys get better. It supersedes the 2600 m crests the noise was tuned for on 2026-09-16, which is the one +piece of that tuning the port deliberately does not carry. + +**Streaming.** `streaming_grid_components` stays a manifest key; 784 components at one per proxy is 784 +packages, three times today's. Recommended value **2**, giving 14×14 = 196 proxies of 1020 m each. This +interacts with the Worklog's open item 2 (nothing visible in the editor viewport, most likely because every +proxy is spatially loaded and none is loaded in the editor); that item is fixed independently and first, since +a generator whose output cannot be looked at cannot be iterated on. + +## The pipeline + +Fields live on a context and are named. Every pass reads and writes named fields and nothing else. Two +resolutions: the **geology grid** at 1786² (`(7141 − 1) / 4 + 1`, 8.0 m cells — the spec asked for 2048² at +~7 m, and an exact factor of four buys an integer upsample with no resample artefacts), and the **detail grid** +at 7141². + +| # | Pass | Grid | Reads | Writes | Status | +| --- | --- | --- | --- | --- | --- | +| 1 | Plates | geology | — | `uplift`, `boundaries` | New | +| 2 | Continent | geology | — | `landMask`, `baseLevel` | From today's continent falloff | +| 3 | Faults | geology | `boundaries` | `uplift`, `faults`, `warp` | New | +| 4 | Lithology | geology | — | `K` | New (plan view) | +| 5 | Base relief | geology | `uplift`, `warp` | `height` | From today's noise, amplitude cut hard | +| 6 | Fluvial | geology | `height`, `uplift`, `K`, `baseLevel` | `height`, `flowAccum`, `flowDir` | New — the point of the exercise | +| 7 | Thermal (coarse) | geology | `height` | `height` | Today's, unchanged | +| 7b | Coast | geology | `height`, `landMask`, `flowAccum` | `height`, `landMask`, `exposure` | New (D-51) | +| 8 | Upsample | → detail | all | all | New | +| 9 | Detail noise | detail | `height`, slope | `height` | From today's detail octaves | +| 10 | Strata | detail | — | `hardness` | Today's, unchanged (vertical) | +| 11 | Particle | detail | `height`, `hardness` | `height`, `wear`, `deposit` | Today's, demoted to detail | +| 12 | Thermal (fine) | detail | `height` | `height` | Today's, unchanged | +| 13 | Spawn pad | detail | `height` | `height` | Today's, unchanged | +| 14 | Derive | detail | everything | weightmaps, flow/wear/deposit/curvature, `meta.json` | Today's rules, ported | + +Notes where this departs from the spec, each for a reason: + +**Continent and sea (pass 2) are not in the spec at all.** The spec builds an inland region with an outlet on +one edge and leaves the boundary condition as an open question. This world has a coast, a sea plane +(`World_Sea_Proto`), a `sea_level_m` manifest key and statistics reported as "% above sea level". Keeping the +continent is also the better *simulation* choice: sea level is a fixed base level on every cell the land mask +calls ocean, which is a far better-posed boundary for a stream-power solve than one fixed edge, and it removes +the artificial drainage divide that a single-outlet map has along three of its sides. `[DECIDED]`: the world +keeps its coastline, and the spec's §9 boundary question is closed in favour of the continent. + +**Lithology and strata are both kept, because they are orthogonal.** The spec's lithology is a plan-view field +of rock types multiplying `K` by 0.5× / 1× / 3×; the existing strata model is *vertical* banding of hardness +with a slow tilt, which is what puts shelves and ledges on a cliff face. One varies with where you are, the +other with how deep you have cut. Lithology enters the fluvial solve at geology resolution; strata scales the +particle pass at detail resolution, exactly as today. + +**Uplift replaces the range mask.** Today `heightmap_noise.generate_metres` builds ranges from an elongated, +warped, percentile-thresholded band, thresholded so ranges and foothills cover about two fifths of the map +whatever the seed. That percentile trick is the thing that makes the result seed-independent and it is kept — +but it now shapes the *uplift rate field* that the fluvial pass integrates, not the height directly. The +spec's own constraint (20–40 % of the map at low uplift, so there are basins to build in) is the same +statement from the other end, and both are enforced by thresholding on percentile rather than on value. + +**Base relief amplitude is cut hard.** The spec says 50–150 m × normalised uplift and it means it: the fluvial +pass is what produces relief, and starting it from 2600 m ridged crests means it spends its whole run tearing +them down. Today's noise makes the mountains; after this it only breaks the symmetry. + +**Particle erosion keeps every brake it has.** Demoted from "carves the valleys" to "detail only", which is the +spec's §4.8, and explicitly forbidden from reshaping what the fluvial pass produced: the slope gate, the +per-step cut cap, the load cap, the 3×3 cut brush and the own-cell deposit all carry over unchanged, and the +droplet count scales with cell count (about 9 M at 7141² to hold today's density at 4081²). + +### The fluvial pass, in detail + +`dh/dt = U − K · A^m · S^n`, with `m = 0.5`, `n = 1`, `K` from the lithology field around a base of 2e-5 to +1e-4 /yr with A in m². Braun & Willett's 2013 implicit formulation: compute D8 receivers by steepest descent, +build the stack, update up the stack. It is O(n) per step and unconditionally stable in `dt`, which is why it +is the right solver and a naive explicit one is not. + +- **Pits.** Priority-flood (Barnes) to fill or route depressions, because a D8 receiver graph with a pit in it + has no path to base level and the implicit update has nothing to solve against. **It runs every step.** + `fill_every` survives as a knob and its value is 1. + + This corrects the paragraph that stood here, which set it to 50 to protect the time budget. That was + wrong, and measurably so: uplift reaches 5 mm/yr, which at `dt` 1500 is 7.5 m a step, so fifty steps is up + to 375 m of differential uplift between floods — far more than enough to close basins that then sit + unrouted while everything upstream of them stops eroding. Measured at 512² over 3000 steps, against an + expected exponent of −0.5: + + | `fill_every` | 1 | 5 | 10 | 25 | 50 | + | --- | --- | --- | --- | --- | --- | + | exponent | **−0.500** | −0.277 | −0.121 | −0.061 | −0.100 | + | R² | **0.992** | 0.861 | 0.318 | 0.120 | 0.371 | + | run | 93 s | 38 s | 32 s | 28 s | 27 s | + + Even every fifth step is already broken, and the saving is not worth having. The budget is paid for + elsewhere — see the time budget below. The Cordonnier/Barnes lake-flow variant, which routes through + depressions instead of refilling them, remains the fallback if the flood ever has to get cheaper. +- **Hillslope diffusion** `D = 0.01–0.05 m²/yr` after each step, which is what rounds the divides and stops + the channel heads from being needles. +- **Time.** `dt = 1000–2000 yr`, **1000 steps, 1.5 Myr**, not the 5000 steps and 5–15 Myr the incoming spec + asks for. That figure is generic advice; at this K and this scale the knickpoint celerity `K·A^m` puts the + response time of a trunk channel near 45 000 yr, so 1.5 Myr is already tens of response times. Measured at + 512², the exponent is −0.499 at 500 steps and does not move afterwards. Finer grids need more, because + headwaters carry small drainage areas and so respond slowest: at 1024² the exponent is −0.640 at 500 steps + and −0.584 at 1000, still converging while R² sits at 0.99. Stopping early is the knob for a "young", + high-relief look, and it is a real one — the landscape is straight-line graded long before it is finished. +- **Parallelism.** The stack update is sequential *along a flow path* but independent *between basins*. + Partition by basin, not by row, and reduce in basin-id order so the result does not depend on scheduling. + +**The parameter ranges and the canvas are not jointly consistent, and this must be checked every run.** Steady +state puts channel slope at `S = U / (K · A^m)`. At the spec's aggressive corner — `U` = 5 mm/yr, `K` = 2e-5 — +a cell draining 1 km² sits at 25 % slope, and integrating that up a 7 km profile overshoots the 1536 m ceiling +badly. At the gentle corner it undershoots into a plain. `U/K` is effectively the single relief knob and the +ceiling is a hard clip in the 16-bit encoding, so the generator reports the fraction of the map it clipped, as +`generate_heightmap.py` does today, and a run that clips more than a fraction of a percent is a failed run, not +a rounded one. + +## The Go core `[DECIDED]` + +Go, per the user's decision, in `Tools/Terrain/`, module path `salty/terrain`, never published. The binary is +built to `Tools/Terrain/bin/` and is gitignored; `Scripts/build-terrain.sh` builds it beside `build.sh`. Go +1.25.0 is already on the development machine, which has 16 cores, so the toolchain costs nothing and +`math/rand/v2` is available — but Go is not in the repository and not in the engine's toolchain, so a machine +that regenerates the world needs its own install, and `build-terrain.sh` says so when `go` is missing. + +``` +Tools/Terrain/ + go.mod + cmd/terrain/main.go the CLI + field/ Field, HeightField, resample, upsample, PNG in and out + pass/ one file per pass, each implementing Pass + pipeline/ Context, Pipeline, the manifest reader + stats/ slope-area, hypsometry, drainage density +``` + +```go +type Field struct { W, H int; CellM float64; Data []float32 } + +type Pass interface { + Name() string + Apply(ctx *Context) error +} + +type Context struct { + Seed int64 + Fields map[string]*Field // iterated only through an explicitly sorted key list + Params Params + Log func(string, ...any) +} +``` + +**Determinism is the one cross-cutting rule that applies here, and Go fights it in three specific ways.** Map +iteration order is randomised by design, so no pass may iterate `Fields` (or any map) directly to produce +output; goroutine completion order is nondeterministic, so every parallel reduction must be into a +pre-allocated indexed slot rather than a channel drain; and `math/rand`'s global source is shared. Each pass +takes its own `rand.New(rand.NewPCG(seed, passIndex))`, works on integer coordinates, and its result must be +byte-identical whatever `GOMAXPROCS` is. That last sentence is a test: run the pipeline at `GOMAXPROCS=1` and +at `GOMAXPROCS=N` and compare the output hashes. + +**The CLI keeps today's flags**, so the README, the muscle memory and the two documented commands survive: + +```bash +Tools/Terrain/bin/terrain generate # the manifest as it stands +Tools/Terrain/bin/terrain generate --seed 12 # another continent +Tools/Terrain/bin/terrain generate --source-file RawContent/World/Sources/dem.png --source-elevation 0 2400 +Tools/Terrain/bin/terrain generate --stage fluvial --size 1024 # one pass at a small size, for iterating +``` + +Output goes where `create_world.py` already looks, `RawContent/World/Heightmaps/`, with the same file names. +The spec's `out///` layout serves a preset gallery that does not exist; it is deferred with the +gallery. + +**The DEM escape hatch is already built and is better specified than the spec's §8.** `source.kind = "file"` +reads 16-bit PNG or raw little-endian `.r16`, widens 8-bit, optionally flips, centre-crops to a square, +converts with the file's own elevation range, resamples (box when shrinking, bilinear otherwise), optionally +smooths, and re-encodes into the world's range while reporting what it clipped. That behaviour is ported to Go +as-is, including `--source-file` and `--source-elevation`. A file source skips passes 1 through 8 and enters +the pipeline at the detail grid, as `"enabled": false` does today. + +## The manifest + +One file, not two. The spec's `UTerrainPreset` data asset and its JSON preset are a second and third place for +the same numbers to live, for a gallery of presets that does not exist and one world that does; the project's +own rule against abstraction for a single implementation applies. `World.json` keeps `level`, +`vertices_per_side`, `quad_cm`, `elevation_m`, `sea_level_m`, `spawn_pad_m`, `streaming_grid_components`, +`source` and `layers` unchanged in meaning, and the `erosion` block is replaced by `pipeline`: + +```json +"pipeline": { + "geology_factor": 4, + "plates": { "count": 6, "velocity_cm_yr": [1, 5], "convergent_mm_yr": [2, 5], "band_km": [2, 4], + "divergent_mm_yr": [-2, -1], "rift_km": [3, 6], "intraplate_mm_yr": 0.2, + "low_uplift_fraction": [0.2, 0.4] }, + "faults": { "major": [3, 6], "minor": [10, 30], "length_km": [2, 15], "spacing_km": [1, 4], + "throw_major_m": [100, 400], "throw_minor_m": [20, 80], "strike_slip_m": [200, 800] }, + "lithology": { "types": 3, "k_multipliers": [0.5, 1.0, 3.0] }, + "coast": { "shelf_km": [0.6, 3.0], "steep_coast_m": 300, "slope_km": 1.6, "surf_reach_m": 110, + "platform_grade": 0.02, "cut_fraction": 0.85, "deposit_reach_m": 350, "drift_m": 300, + "river_m3_per_km2": 1.2e5 }, + "relief": { "octaves": 7, "gain": 0.45, "base_frequency_m": 4000, "amplitude_m": [50, 150], + "crest_weight": 0.12 }, + "fluvial": { "k": 5e-5, "m": 0.5, "n": 1.0, "dt_yr": 1500, "steps": 1000, + "diffusion_m2_yr": 0.02, "fill_every": 1 }, + "thermal": { "coarse_passes": 12, "fine_passes": 24, "talus_deg": 35 }, + "strata": { "period_m": 160, "contrast": 0.6 }, + "detail": { "octaves": 4, "amplitude_m": [2, 8] }, + "particle": { "droplets": 9000000, "lifetime": 40, "scale": 0.5, "min_erode_slope": 0.25, + "max_change": 0.2, "inertia": 0.1, "capacity": 2.0, "max_load": 2.0, "erode_rate": 0.2, + "deposit_rate": 0.2, "evaporation": 0.02, "gravity": 4.0 } +} +``` + +Every key has a default in the Go source, as `heightmap_erosion.DEFAULTS` holds them today, so the manifest +carries only what differs. `create_world.py` and `world_manifest.py` do not read `pipeline` at all and do not +need to. + +## The bridge + +Two changes to `ULandscapeAuthoringLibrary`, one of which was already the Worklog's open item 1. + +**`ReimportHeightmapIntoLayer` `[PROPOSED]`.** The spec's §5.1 is the project's existing open item: edit +layers, `Generated` at the bottom owned by the tool and rewritten whole on every apply, `Sculpt` above it never +touched. Today `create_world.py` empties the level and builds a fresh landscape, so any hand sculpting dies +with the next rerun, which is why nobody sculpts. The new entry point takes an existing `ALandscape`, a layer +name, a heightmap file and the weightmaps, and writes only into that layer — `FScopedSetLandscapeEditingLayer` +around `FLandscapeEditDataInterface::SetHeightData`, or `ULandscapeEditorObject::ImportHeightmap` per layer; +the exact API is confirmed against 5.8 before it is written, not guessed. `create_world.py` then reimports +instead of rebuilding whenever the landscape already exists with the right resolution, and falls back to +`CreateLandscapeFromHeightmap` when it does not. **Check first** whether edit-layer data survives +`ChangeGridSize`, since the world-partition split happens after creation. Header changes mean a full rebuild of +`SaltyEditor` with the editor closed. + +**A guard on the component layout.** Not needed at 7141, which the importer's own rule resolves correctly, but +the resolution is now something a manifest edit can break silently and expensively. `CreateLandscapeFromHeightmap` +logs the layout it chose and refuses a resolution that yields more than 1024 components rather than spending +forty minutes proving the point. + +**Deferred, with triggers**, in the project's sense — not undecided, decided against for now: + +| Deferred | Until | +| --- | --- | +| The Editor Utility Widget: preset gallery, thumbnails, preview render target, watched folder | There is a second preset. One world does not need a gallery; two shell commands are the interface | +| `UTerrainPreset` data assets | The same trigger. `World.json` is the preset | +| Water plugin river splines from `meta.json` | A water body is wanted in the world. The polylines are exported meanwhile, so the day it happens is a script | +| Build-zone volumes in the level | Something places a settlement. The polygons are exported meanwhile | +| Porting a pass to a compute shader | A pass is measured too slow, not predicted to be | +| A GPU or C++ path for the fluvial solve | The same trigger | + +## Validation + +The project already measures rather than eyeballs — the slope histogram settled the noise tuning and attributed +the rill damage. The spec adds two standard checks that cost nothing and say more, and both go in `meta.json` +beside the existing statistics: + +- **Slope–area.** log slope against log drainage area over channel cells should be a straight line with + negative slope. Curvature or scatter means `K`, `m`, `n` or the run length is wrong. This is the direct test + of whether the fluvial pass did what it is there for, and it is the reason for the rewrite, so it is the + proof that closes the work. +- **Hypsometry.** Cumulative area against normalised elevation should be S-shaped. Convex means too young or + too much uplift; concave means over-eroded. +- **Kept from today:** the slope histogram (the standing target is 80 % of the land under 15°), the fraction + above sea level, the fraction clipped by the elevation range, and the per-layer coverage percentages. + +Drainage density and a straight slope–area plot are what "it reads as real geology" means operationally. Not a +screenshot. + +## Build order + +The spec's order, adjusted for what is already proven. Steps 1 and 2 of the spec's own list are effectively +done: the loop is proven end to end, every day, at full resolution. + +1. **Fix the viewport first.** Worklog open item 2. A generator whose output cannot be seen in the editor + cannot be iterated on, and this is a World Partition setting, not work. +2. **Edit layers.** `ReimportHeightmapIntoLayer`, `Generated` and `Sculpt`, `create_world.py` reimporting. Done + against the *current* PNGs, so it is proven before the generator moves. Worklog open item 1. +3. ~~**The Go skeleton.**~~ **Done, 2026-09-17.** `Field`, the manifest reader, 16-bit PNG out, the + thumbnail, the noise toolkit and the continent. The determinism test runs at five values of `GOMAXPROCS`. +4. ~~**The fluvial solver.**~~ **Done, 2026-09-17.** D8 receivers, stack, implicit update, priority-flood, + diffusion. The slope–area plot is straight at the expected gradient and the analytic steady-state test + passes exactly. See what was built, below. +5. **Plates, faults, lithology** feeding `uplift` and `K`. Scale to the geology grid at 1786². +6. **Thermal, upsample, detail noise, strata, particle** at 7141². Profile; no GPU work before a measurement. +7. **Derived outputs**: weightmaps by today's rules, the four derivative maps, rivers, build zones, statistics. +8. **The canvas move**: manifest to 7141 at 200 cm, elevation −512…1536, streaming grid 2. Full rebuild, + timed, with the component layout logged. + +Steps 1 and 2 are worth doing whatever happens to the rest, which is why they are first. + +## The time budget `[DECIDED]` + +**A full run holds today's bar of about five minutes.** That is a design constraint, not an aspiration: the +generator is a thing you rerun while judging a change, and a pipeline you stop rerunning is a pipeline you stop +tuning. The budget on the development machine's 16 cores, to be replaced by measurements as each pass lands: + +| Stage | Grid | Budget | Measured | +| --- | --- | --- | --- | +| Plates, continent, faults, lithology, base relief | 1786² | 5 s | 1 s (continent and relief only) | +| Fluvial, 1000 steps, flooding every step | 1786² | 120 s | **256 s** | +| Thermal, coarse | 1786² | 5 s | — | +| Coast: shelf, surf, sediment | 1786² | 5 s | **0.08 s** | +| Upsample and detail noise | → 7141² | 15 s | — | +| Particle, 9 M droplets × 40 steps | 7141² | 90 s | — | +| Thermal, fine, 24 passes | 7141² | 20 s | — | +| Weightmaps, derivative maps, statistics | 7141² | 15 s | — | +| PNG encode and write, one 16-bit and seven 8-bit | 7141² | 30 s | — | + +**The fluvial pass is over its budget by a factor of two and the five-minute bar is at risk.** 256 s measured +against 120 s budgeted, with the rest of the pipeline unbuilt and notionally another 175 s. It is not the +flood's `log n` — that is already gone, see what was built — it is simply 3.2 M cells × 1000 steps, most of +it in the two genuinely sequential parts (the stack walk and the flood's cursor). Three ways out, in the +order they should be tried, and this is a decision for build-order step 6, when there is something to +measure against: + +1. **`geology_factor` 8 instead of 4**, a 894² geology grid at 16 m cells: four times cheaper, about 64 s, + and the upsample has to invent more of the fine drainage. +2. **Parallelise the stack update by basin.** Disjoint basins are independent; only the walk within one is + sequential. On this continent the trunk basins are large and few, so the gain is real but bounded. +3. **Spend the time.** Seven minutes instead of five, with `--size` carrying the iteration loop anyway. + +**PNG writing is not free at this size** either: eight maps of 51 M samples is over 100 MB through zlib, and +`heightmap_io.py` compresses at level 6 today. The generated maps are rebuilt from a seed, never archived, so +the Go writer uses level 1 for the 8-bit derivative maps and keeps a higher level only for the height, which +the editor imports once. + +**Relief is resolution-dependent, and by a lot.** The same seed and the same uplift field give 1020 m of land +relief at 512², and **2605 m at 1786²** — well past D-48's 1536 m ceiling. Finer grids resolve smaller +drainage areas near the divides, and `S = (U/K)^(1/n)·A^(-m/n)` makes small `A` steep, so the headwaters keep +getting taller as the grid gets finer. The practical consequence is a trap: **`U/K` tuned at `--size 512` +will overshoot at full resolution.** The iteration loop is for judging the *shape*; the elevation budget has +to be confirmed at the real geology grid, and the clip warning is what confirms it. + +`--stage` and `--size` exist so nobody waits for a full run to judge one pass; the iteration loop is +`--stage fluvial --size 1024` against the slope–area plot, and the full run is what you do when it looks right. + +## Settled + +Everything the reconciliation left open was answered on 2026-09-17. Recorded here so the reasoning stays with +the document; the decisions themselves are D-47 and D-48 in [`Decisions.md`](Decisions.md). + +| Was | Settled | +| --- | --- | +| Continent and sea, or an inland region? | **The continent stays.** Sea level is the base level on every ocean cell; the spec's §9 boundary question closes with it | +| 1536 m peaks or 2800 m? | **−512…1536 m, Z scale 400.** The mountains get lower and the valleys get better | +| 7141, 5101 or 4081? | **7141 at 200 cm**, 2.0 m cells, 784 components | +| Go on the machine? | **Go 1.25.0, 16 cores, already installed.** No toolchain cost | +| How long may a run take? | **About five minutes**, as today. `steps` is the knob; `fill_every` turned out not to be one (see what was built) | + +Nothing is open. What remains is measurement, and the first thing that could reopen any of this is the +slope–area plot at build-order step 4 coming out curved. + +--- + +## What was built, and where it differs + +**2026-09-17, last. The mask is thresholded, not multiplied (D-52), and a broken statistic is retired.** The +coastal pass reported a mean sea cliff of two metres, and the conclusion drawn from it — that the continent +mask, by multiplying the uplift rate, made every coastline the lowest-uplift ground on the map — was half +right and rested on a measurement that could not have said anything else. + +**The statistic first, because it is the more useful lesson.** "Mean cliff" measured the drop from a cell to +its seaward neighbour. That is a *gradient*: at the angle of repose one cell of a 10 m grid is 7 m, so the +number was bounded above by 7 however tall the coast was, and it read 2 m on a plain coast and 3 m on a +cliffed one because it could not distinguish them. It is now backshore height — the land's elevation between +one and two surf reaches inland, median and P90 — and on that metric the coast always had cliffs: P90 88 m on +seed 7, 108 m on seed 9342, 120 m on seed 67914, against a median of 3 to 9 m that correctly says the ordinary +coast is a plain. **A cliff is how far you fall, not how steep the first cell is.** + +**The change is still right, for a narrower reason.** `rate = r * l` tapered uplift to zero across the shore, +and steady state is `S = U/(K*A^m)`, so ground with no uplift grades to no slope. What that flattened was the +hundred-metre strip the surf works in, not the backshore — so the cliff began a hundred metres inland instead +of at the water. The mask now answers only "is this cell sea", which is the yes-or-no the solve needs for its +base level, and a range that runs out to the water rises at range rates right up to it. Measured with +everything else held: surf cut 23.32 → 38.87 Mm³ and planed area 3.0 → 3.9 km² on seed 7, 22.42 → 30.35 Mm³ +and 2.4 → 2.9 km² on seed 9342, with the detail crop showing high ground reaching the waterline where a +uniform low fringe stood in front of it before. + +**What the margin was quietly relying on.** `continentMask` keeps land off the map border because a border +cell is an outlet — it takes no uplift and is never eroded, so land that reaches it freezes while the interior +erodes out beneath it. The margin tapers the mask, and while the rate was multiplied by the mask it was +tapering the uplift too, as a side effect nothing named. `TestBorderIsAlwaysOcean` now asserts the invariant +directly on three seeds and it holds: every border cell is ocean, the nearest land is five cells in, and that +land drains to ocean at sea level, so nothing is frozen. The test also logs what the margin costs, which had +never been measured: **14 to 15 % of the waterline lies inside the margin band**, cut along a contour of +distance-to-edge, which is a straight line parallel to that edge. Pre-existing, cosmetic, and made conspicuous +by this change because the land there now carries the full 2.0 mm/yr. + +**And a warning about the acceptance test itself.** The slope–area fit moved −0.480 → −0.312 on seed 7 and +−0.698 → −0.720 on seed 9342 — opposite directions, and both inside a seed-to-seed spread on identical code +(−0.480, −0.698, −0.575 at R² 0.317, 0.704, 0.944) that is several times the size of the effect. It is the +number this document calls the proof that closes the work, and at five or six bins on a 1400 grid it cannot +carry that on a single run. Pair it — same seed, before and after — and read at least two seeds. + +**2026-09-17, later still. The coast: a pass rather than a line.** D-48 kept the continent because sea level +is a better-posed base level for the solve than one outlet edge, and that is all it was: the mask said which +cells were ocean, the solve held them at sea level, and afterwards the sea floor dropped to a flat plane at +−180 m in a single step. A third of the map and a third of the elevation range was one flat surface; the land +met the water at whatever angle the last erosion step happened to leave; no process in the generator knew the +shoreline was there. `internal/coast` is the pass that does, and it runs *after* the solve because two of its +three parts need the finished terrain. + +**The coordinate is a signed distance, not a line.** Every coastal process is written as "how far is this cell +from the waterline, and which stretch of shore does it belong to", so the pass opens with an exact Euclidean +distance transform carrying a feature index — Felzenszwalb and Huttenlocher's two 1-D passes, O(n) whatever +the radius. Exact rather than a chamfer: there is nothing to buy by approximating an O(n) algorithm, and a +chamfer's 2 % anisotropy would show as a shelf wider along the grid axes than across them. Everything after it +is a lookup. + +**The shelf is derived, not set.** A margin is a gentle shelf out to a break, then a much steeper continental +slope to the abyssal floor. Its width is read off the relief standing behind each stretch of shore, so a low +coastal plain gets a wide shelf and a range that comes down to the water gets a narrow one, out of the same two +manifest numbers and without either having been asked for. `sea_floor_m` keeps its meaning; what changed is that +the depth between its two ends is now a function of distance offshore. + +**The cliff is a consequence.** Within a reach of the waterline the land is planed towards a shore platform, and +the reach is set by how open the water is. Nothing draws a cliff: the cliff is the step where the reach ends, so +its height is whatever the land behind it stands at, which is the right way round. The cut rolls off only over +the last quarter of the reach — rolling it off across the whole reach gives a ramp, which is what a coast looks +like when it has been smoothed rather than eroded. + +**The sediment is accounted for.** What the surf cuts is counted, carried a drift length along the shore and +laid in sheltered water shallower than a few tens of metres; river mouths deliver their own load in proportion +to what they drain, which is what makes a delta. The summary prints the volume cut, delivered, laid and left +unplaced, because the sediment budget is the one part of this that is not derived from something already +measured. + +**And the invariant that is now enforced in one place.** `uplift.Result.Bathymetry` is gone. Ocean cells sit at +sea level for the whole solve and the coast pass owns the sea floor outright, which is the same rule as before +— a coastal cell drains into an ocean cell, and an ocean cell already at −180 m makes the solver cut the river +down to −180 m — but with one owner instead of two. + +*Four things that were wrong first, each worth keeping.* + +1. **Exposure by percentile.** Stretching the map's own 5th-to-95th percentile onto 0..1 is robust and collapses + to nonsense on a coast that does not vary: a straight one has no spread, so the whole continent came out at + one end of the scale. It is also a global statistic, which rule 1 of the tiling plan rules out — two tiles + would stretch by different anchors and their shared bay would be two different colours. The anchors are now + fixed and physical. +2. **Fetch in every direction.** That counts the land *behind* the shore as shelter, and every coast has land + behind it, so a straight open coast — where seven rays in sixteen stop after one cell — scored as more + sheltered than the back of a bay half a kilometre wide. Restricting to the seaward half-space, cosine-weighted + from the shore normal, is the standard effective fetch and gets the sign right. +3. **`cut_fraction` as a fraction of the height above the platform.** Fifteen per cent of a 120 m headland is + 18 m, which is not a rough platform, it is an uncut headland. The residual is capped at a few metres. +4. **The deposition kernel, twice.** `dep = blur(supply) * want / blur(want)` looks like a normalised convolution + and is not one: the blur spreads supply onto land, deep water and exposed headlands, all of which want + nothing and are skipped, and 68 % of the budget was silently dropped there. The conserving order is to divide + the supply by the blurred want *first*, then blur, then multiply by the want — which sums to exactly the + supply. And one kernel cannot do both jobs: the sediment needs zero padding to keep the kernel symmetric, + which is what the balance rests on, while a carried *value* like the shelf width needs edge clamping, and + smoothing the width with the mass-preserving kernel shrank every shelf near the border to nothing. There are + now two, sharing their arithmetic so they cannot drift apart. + +**What the pass measured about the continent, which is the part that mattered most.** With the coast built, the +fetch reported that the median stretch of shoreline was *fully open*: there were no bays. The cause is the +continent outline itself — five octaves over a 14 km map puts its finest feature at about 450 m, which is a +smooth blob, and a coastline is fractal, which is the whole content of the Richardson paradox. Sweeping the +outline's octave gain on seed 7 at 1400, everything else held: + +| outline gain | 0.50 | 0.58 | **0.62** | 0.66 | +| --- | --- | --- | --- | --- | +| shoreline | 64 km | 81 km | **96 km** | 114 km | +| median shore exposure | 1.00 | 0.98 | **0.84** | 0.51 | + +and the octave count, at gain 0.50, gave 59, 63, 64, 65, 66 km at 5, 7, 8, 9, 10 — flat past 9. D-51 takes 8 +octaves at gain 0.62: islands, inlets and headlands that shelter each other, without the outline breaking into +speckle. The whole coastal pass costs 83 ms at the manifest's geology grid, against 130 s for the solve. + +**2026-09-17, later. The plains problem: the uplift field, the router's flat ground, and the hillslope law.** +The complaint was that the lowlands read as mountains that had been shrunk - same texture, same shading, +lower peaks. It was not an erosion-tuning problem and no amount of work downstream would have fixed it. + +**The diagnosis, which is arithmetic.** Steady state is `S = U/(K*A^m)`. With `critical_area_m2` at 0 that law +is applied down to a single cell, so at every divide `A = cell^2`; at K 5e-5, m 0.5 and a ~10 m geology cell +that makes `S = U/4.8e-4`. An intraplate rate of 0.25 mm/yr is therefore a 28 degree hillslope and the 0.9 +mm/yr swell is past the 35 degree repose angle - so the repose clamp, which is meant to be a mountain +process, was the surface of the entire continent. For n = 1 the uplift rate alone fixes the hillslope angle: +`U` sets how *high* the summits get, not how steep the ground is. + +**The measurement that says so** is new, and is the first thing built: `stats.UpliftBuckets` splits the land +by the uplift rate that caused it - plain below 0.1 mm/yr, rolling to 0.5, mountain above - and reports each +bucket's median and P90 slope, local relief over a 500 m window, and the fraction pinned within 2 degrees of +talus. Uplift is the right axis because it is an *input*: a cell does not change bucket when the run does, +which elevation-banding cannot promise. Map-wide aggregates cannot answer "are the plains plains", which is +why this was invisible for so long. + +| Run | plain, % of land | plain median | mountain median | mountain at talus | slope-area R2 | +| --- | --- | --- | --- | --- | --- | +| Before | 1 % | 6.5 deg (sea cliff) | 26.4 deg | 32 % | 0.688 at -1.59 | +| Uplift fixed (D-49) | 42 % | 0.8 deg | 31.1 deg | 44 % | 0.055 at -0.26 | +| plus router jitter (D-50) | 42 % | 0.8 deg | 31.1 deg | 44 % | 0.459 at -0.33 | +| plus nonlinear hillslope | 42 % | 0.8 deg | 28.5 deg | **33 %** | 0.225 at -0.38 | + +The first row is the whole diagnosis in one line: 81 % of the land sat in the mountain uplift class and the +plain class held 1 %, all of it coastal cliff. + +**Fixing the uplift field immediately exposed the next thing**, exactly as expected: once the plains were +genuinely flat, the only gradient across them was the priority-flood's epsilon and the router drew the +flood's traversal order as rivers. Hence D-50. The jitter costs nothing and recovered most of the slope-area +fit on its own. + +**The hillslope law** is now `q = D*S/(1-(S/Sc)^2)` (`internal/fluvial/hillslope.go`), replacing linear +diffusion. It is linear diffusion as `S -> 0`, so the lowlands are untouched, and it is mass-conserving, +which the clamp is not. Three things are worth knowing about it: + +- **It is stiff, and the stiffening is bounded.** `D_eff = D(1+u^2)/(1-u^2)^2` diverges at `u = 1`; at the + defaults `u = 0.9` alone wants seventy sub-steps a step. So `u` is capped at `slope_cap` and, if the + `max_hillslope_substeps` budget cannot buy even that, the cap is lowered further rather than the sub-step + count truncated. Truncating is the tempting branch and it is wrong: it leaves alpha above the stability + limit and grows a checkerboard over hundreds of steps, which by then looks like texture. +- **It therefore cannot replace the clamp.** A belt rising at millimetres a year asks for slopes no + bounded-flux transport law holds; that is a fact about the forcing, not the scheme. The clamp stays in the + loop. +- **What changed is the order.** Diffusion runs *after* the clamp, every step. The clamp cuts along eight D8 + directions and leaves grid-aligned pyramid faces - the blocky facets visible in every earlier mountain + preview - and a symmetric five-point stencil rounds them off before the next step sees them. Clamping once + at the end instead was tried and measured: a thousand steps of growth arrive together, it cuts deeply, and + nothing runs afterwards to soften it. The facets came back. + +**The maps.** A run now also writes `map_uplift`, `map_erodibility`, `map_slope`, `map_relief`, `map_flow` +and `map_basins` beside the preview (`internal/field/datamap.go`). `preview.png` says whether the landscape +looks right; these say *why*, and the uplift map would have shown this whole problem at a glance with no +arithmetic at all. `map_basins` is the direct test of whether the solve made a network rather than scratches. + +### Three findings worth remembering + +1. **A channelization threshold still fails, and now we know what it is waiting for.** Re-measured after the + uplift fix: `critical_area_m2` 1e4 sends the plains back to 7.0 degrees, pins 49 % of the rolling class + and 79 % of the mountains against the clamp, and collapses the slope-area fit to R2 0.001. The hillslope + it creates has to shed its uplift by diffusion and at D 0.02 it cannot, so the clamp takes the job. It is + not a tuning question; it needs a transport law strong enough to pair with, and it stays at 0 until there + is one. +2. **The nonlinear flux was written in height differences and fed a slope.** `u = dh/Sc` instead of + `dh/(Sc*dx)` makes `u` a factor of `dx` too large, which pins every face against the cap and turns the + whole law into linear diffusion with a constant multiplier. It produced *better-looking* terrain than the + correct version, because over-smoothing hides facets. The unit test caught it; the preview did not. +3. **Two of the four new tests passed while measuring nothing.** One read the fixed border cells back and + called them the result; the other wrote a checkerboard across the fixed border, which then re-injected it + into the interior for ever, so the scheme was blamed for a boundary condition. A test on a grid whose + edge is an outlet has to say which cells it is actually asking about. + +### Still open + +- **The hypsometric integral is still 0.10**, and the reason has changed: it is no longer a bimodal uplift + field, it is that 42 % of the land is now a near-sea-level plain. Whether that is wrong depends on whether + a broad low continent is what is wanted; it is a question for the continent block, not the solve. +- **Half the land is still in the mountain uplift class** (51 % on seed 7, 44 % on seed 9342), because + `rangeMask` ramps from the 40th to the 86th percentile and anything above about the 55th clears 0.5 mm/yr. + Real continents are nothing like half mountain. This is the next uplift-field question. +- **Nature does not like straight lines, and three sources remain.** The fault traces are single 8-point + parabolas with a hard cutoff at the tips, and their polygonal influence regions are plainly visible as + straight-edged facets in `map_uplift`. The range grain is `across*2.2` with one warp octave, so chains run + as straight parallel bands. And multiple-flow-direction accumulation would dissolve what is left of the + diagonal river grain that the jitter only reduced. None is built. + + +**2026-09-17. Build-order steps 3 and 4: the Go skeleton and the fluvial solver.** Nothing in the editor has +been touched, so steps 1 and 2 (the viewport, the edit layers) are still open and still first in the list +above; they need the editor closed and it was open. The numpy pipeline is untouched and still the thing that +builds `L_World`. + +Built, in `Tools/Terrain/` (module `salty/terrain`, `Scripts/build-terrain.sh`): + +| Package | What it is | +| --- | --- | +| `internal/field` | `Field`, the one array type: shape, cell size in metres, float32 data. Resampling on the vertex convention, Catmull-Rom integer upsample, five-point blur, slope, curvature, greyscale PNG in and out through `image/png`, hillshaded thumbnails. `field.Rows` is the only place goroutines are created | +| `internal/manifest` | `World.json` over Go-side defaults, the height contract mirroring `world_manifest.py`, and a validator that refuses a resolution the importer would turn into thousands of components | +| `internal/noise` | Value noise, fBm on warped coordinates, Worley crest lines, per-pass PCG sources | +| `internal/uplift` | The continent, the uplift *rate* field and the small initial relief | +| `internal/fluvial` | The solver: priority-flood, D8 receivers, the stack, drainage accumulation, the implicit stream-power update, sub-stepped hillslope diffusion | +| `internal/stats` | Slope–area, hypsometry, slope histogram, drainage density, and the verdict line | +| `internal/check` | The two integration tests | + +**The proof.** `TestSteadyStateMatchesStreamPower` puts uniform uplift on a uniform grid and checks the +analytic answer of `dh/dt = U − K·A^m·S^n`, which is that `K·A^m·S^n / U` is 1 at every channel cell. It +measures **1.0000** over 822 channel cells. On the real continent the fitted slope–area exponent is **−0.498 +against an expected −0.500 at R² 0.996**, and drainage density is 1.33 /km, inside the real-world 1–10 band. +That is what build-order step 4 asked for and it is met. + +`TestDeterministicAcrossGOMAXPROCS` hashes the pipeline output at GOMAXPROCS 1, 2, 4, 8 and 16 and requires +one hash, which is the assertion this document makes about Go and cross-cutting rule 12. It passes. + +### Where it differs from the spec above + +- **`fill_every` is 1, not 50**, and the table in the fluvial section is why. The 50 was written to protect + the time budget and it silently destroyed the solve. +- **1000 steps, not 5000.** Measured, not assumed; see the time note. This is most of the budget back. +- **The priority-flood uses a monotone bucket queue, not a binary heap.** The flood pops in non-decreasing + elevation and never pushes below the current front, which is exactly the condition that makes a bucket + queue valid, and it removed the `log n` from two thirds of the runtime for a measured 1.6× on the whole + solve at identical output (−0.498 against −0.500 before). +- **Slope–area is measured two ways and the normalised one is the verdict.** Steady-state stream power gives + the same gradient but a different *intercept* per uplift rate. This map's uplift spans 0.2 to 5 mm/yr, so + regressing every channel together stacks twenty-five-fold-separated parallel lines and fits nonsense: the + raw fit reads −0.70 at R² 0.91 on a landscape whose true exponent is −0.50. Slope is normalised by + `(U/K)^(1/n)` first. The raw figure is still reported beside it. +- **`Continent` is a pipeline block the spec above does not list**, because D-48 kept the coast and the coast + needs parameters. +- **`uplift.Result` carries `Bathymetry` separately from `Height`.** The sea floor is held at sea level for + the duration of the solve and put back afterwards. Left in, a coastal cell drains into an ocean cell at + −180 m and the solver obligingly cuts the river down to −180 m; the first run with a coast eroded the land + to 174 m *below* sea level. A river's base level is sea level; the bathymetry is scenery. + +### Three bugs worth remembering + +All three produced plausible-looking terrain, which is the point: none of them would have been caught by +looking at it. + +1. **Slope–area measured with the topographic gradient instead of the channel gradient.** For a cell on a + valley floor the central difference is dominated by the valley walls, not by the direction the water + runs. The exponent read −0.78 where the truth was −0.50. `S` in the stream-power law is + `(h − h_receiver)/L` and nothing else. +2. **Cells at a local minimum were skipped entirely, uplift included.** They are the cells differential + uplift is actively pushing up, so freezing them removes exactly the basins that should be forming. Fixed + by letting a root still rise. +3. **The fix for (2) then uplifted the outlets.** The map border is an outlet but is not ocean, so on a map + with no coast every border cell had `Receiver == self` and `Base == false` and base level rose 2 m a step + with the whole landscape chasing it. The steady-state ratio read 0.03 instead of 1.0. The union of "ocean" + and "border" is now a single `fixed` mask. The real runs were never wrong, because there the border *is* + ocean — only the test had no coast, which is why it caught it. + +### Still open + +- Passes 1, 3 and 4 (plates, faults, lithology) are not built; `uplift` currently derives its rate field from + the percentile-thresholded range band alone, which is build-order step 5. +- **The hypsometric integral is 0.11, against 0.4–0.6 for a mature landscape**, and it has been at 0.11 in + every run. The map is a wide, near-flat coastal plain with mountains on a fraction of it, which is what an + intraplate rate of 0.2 mm/yr against a convergent 5 mm/yr produces: a 25-fold ratio is bimodal by + construction. This is a tuning question for the uplift field, so it belongs to step 5, but it is the next + thing that will look wrong. +- Everything from the upsample onward (passes 8 to 14) is unbuilt, so there is no full-resolution output yet + and the canvas has not moved: the manifest is still 4081 at 350 cm. +- **The fluvial pass costs 256 s at the real geology grid, against 120 s budgeted**, and relief there reaches + 2605 m against D-48's 1536 m ceiling. Neither is a defect in the solver — the first is arithmetic and the + second is `U/K` untuned — but both are decisions waiting at steps 5 and 6. See the time budget. +- The exponent at 1786² is −0.640 after 1000 steps, still converging toward −0.5 while R² holds at 0.990. A + straight plot at 0.64 is a perfectly ordinary real landscape (measured concavities run 0.35 to 0.6), so + this is a question of how long to run rather than a fault, and it trades directly against the item above. diff --git a/Docs/Worklog.md b/Docs/Worklog.md index ca83970..49405dc 100644 --- a/Docs/Worklog.md +++ b/Docs/Worklog.md @@ -5,6 +5,115 @@ the reasoning lives in the specs, this is the memory. ## Done +- 2026-09-17 - Off the ladder, the coast, part two: the uplift field stops being multiplied by the continent + mask (D-52), so a range that reaches the water rises at range rates right up to the waterline instead of + being tapered to nothing across the shore. Surf cut 23.3 → 38.9 Mm3 on seed 7 and 22.4 → 30.4 on seed 9342; + high ground now meets the water in the detail crop where it previously had a uniform low fringe in front of + it. New `TestBorderIsAlwaysOcean` in `internal/check`, because the margin that keeps land off the map border + was relying on that same multiplication as a side effect: the border is still all ocean on three seeds, so + there is no frozen rim. **Did not work, and it was mine:** the "mean cliff" statistic measured the drop from + a cell to its seaward neighbour and called it a cliff. That is a gradient - one cell of a 10 m grid at the + angle of repose is 7 m - so it could not exceed 7 whatever the coast did, and it read 2 m on a plain coast + and 3 m on a cliffed one. It is why yesterday's brief claimed there were no sea cliffs anywhere; the + replacement, backshore height at one to two surf reaches inland, shows the *old* build already at 88 m P90. + A cliff is how far you fall, not how steep the first cell is. **Also measured:** the slope-area fit is too + noisy at five or six bins to judge one change on one seed - the same code gives -0.480 on seed 7 and -0.698 + on seed 9342 - and 14 to 15 % of every coastline is drawn by the map margin rather than by the noise, which + is a straight line parallel to the map edge and is pre-existing. +- 2026-09-17 - Off the ladder, the coast. `internal/coast`, running after the fluvial solve, on the terrain + the solve produced. An exact signed distance transform with a feature index (Felzenszwalb, two 1-D passes) + is the coordinate everything is written in; on it sit a continental shelf whose width is read off the relief + behind each stretch of shore, a surf that planes the land to a shore platform within a reach set by how open + the water is - the cliff is the step where the reach ends - and a sediment budget that carries what the surf + cut a drift length along the shore and lays it in sheltered shallow water, with river mouths delivering + their own load. `uplift.Result.Bathymetry` is gone: the coast pass owns the sea floor, and ocean cells stay + at sea level for the whole solve. New: `map_exposure.png`, `map_coast.png`, a coast block in `meta.json` + and in the summary, `--no-coast` and six other overrides, nine tests, and the determinism test now covers + the pass. The measured finding was the coastline *outline*: at five octaves its finest feature is 450 m, + which is a blob, and the fetch called the median stretch of coast fully open. Swept, seed 7 at 1400: + shoreline 64/81/96/114 km and median exposure 1.00/0.98/0.84/0.51 at outline gain 0.50/0.58/0.62/0.66. D-51 + sets 8 octaves at 0.62. Whole pass 83 ms. **Did not work:** a percentile stretch for exposure (degenerate on + an even coast, and a global statistic two tiles would disagree about); casting fetch in every direction + rather than seaward only (it counts the land behind the shore as shelter, so a straight coast scored more + sheltered than a bay); a cut fraction read as a fraction of the height above the platform (15 % of a 120 m + headland is 18 m, which is not a platform); `dep = blur(supply) * want / blur(want)`, which looks like a + normalised convolution and lost 68 % of the sediment budget - the supply blurred onto land and deep water + where nothing wants it was silently dropped, and the conserving order is to divide by the blurred want + *first*, then blur; and one kernel for both jobs - the sediment needs zero padding to stay symmetric and a + carried value needs edge clamping, and using the mass-preserving one on the shelf width shrank every shelf + near the border to nothing. +- 2026-09-17 - Off the ladder, the plains problem. The lowlands read as shrunken mountains because they were + being uplifted at mountain rates: `S = U/(K*A^m)` applied down to one cell puts a 0.25 mm/yr divide at 28 + degrees and the 0.9 mm/yr swell past the 35 degree repose clamp, so the clamp was the surface of the + continent (81 % of land in the >0.5 mm/yr class, the plain class 1 % and all sea cliff). Built + `stats.UpliftBuckets` first, to measure per uplift class rather than map-wide - that is what made it + visible. Then D-49 (intraplate 0.25 to 0.03, swell 0.9 to 0.08, relief lo 50 to 15 m) and D-50 + (hash-jittered flood epsilon and D8 tie-breaks, for the flat ground the fix exposed). Plains are now 42 % + of land at 0.8 degrees and 9 m relief; slope-area R2 0.06 to 0.46. Then Roering nonlinear hillslope + diffusion in `internal/fluvial/hillslope.go`, running *after* the repose clamp each step so the clamp's D8 + pyramid facets get rounded off: mountains 31.1 to 28.5 degrees and 44 % to 33 % pinned at talus, at 8 % + more runtime. Four tests on it. A run now also writes uplift, erodibility, slope, relief, flow and basin + maps. **Did not work:** `critical_area_m2` 1e4, re-measured after the uplift fix and still failing (plains + back to 7 degrees, 79 % of mountains at the clamp) - it needs a hillslope transport law to pair with; + clamping once at the end of the run instead of in the loop (facets returned). **Still open:** half the land + is still in the mountain uplift class; fault traces and the range grain are still visibly straight lines; + MFD accumulation unbuilt. +- 2026-09-17 — Off the ladder, build-order steps 3 and 4 of [`Terrain.md`](Terrain.md): the Go core exists and + the stream-power solver works. `Tools/Terrain/` (module `salty/terrain`, `Scripts/build-terrain.sh`, binary + and `RawContent/World/Preview/` gitignored): `field` (the one array type, vertex-convention resampling, + Catmull-Rom upsample, greyscale PNG through `image/png`, hillshaded thumbnails, and `field.Rows` as the only + place goroutines are made), `manifest` (World.json over Go defaults, the same height contract as + `world_manifest.py`, and a validator that refuses a resolution the importer would turn into thousands of + components), `noise`, `uplift` (the continent, now producing an uplift *rate* rather than terrain), `fluvial` + (priority-flood, D8 receivers, stack, accumulation, implicit Braun & Willett update, sub-stepped diffusion), + `stats` and two integration tests. **The proof: the analytic check `K*A^m*S^n/U` measures 1.0000 over 822 + channel cells, and on the continent the slope-area exponent is -0.498 against -0.500 at R2 0.996 with + drainage density 1.33 /km.** Determinism is asserted across five values of GOMAXPROCS, not assumed. Nothing + in the editor was touched (it was open), so steps 1 and 2 are still first and still open; the numpy pipeline + still builds `L_World` and is unchanged. Three bugs, all of which produced plausible-looking terrain and + none of which could have been seen by looking: slope-area measured with the topographic gradient instead of + the channel gradient read -0.78 where the truth was -0.50; cells at a local minimum were skipped entirely + including their uplift, which froze exactly the basins that differential uplift was forming; and the fix for + that then uplifted the outlets, because a map border is an outlet but is not ocean, so base level rose 2 m a + step and the steady-state ratio read 0.03. The last one was invisible in real runs, where the border *is* + ocean, and only the test caught it. +- 2026-09-17 — Off the ladder, no code: an incoming procedural terrain specification (tectonics, faults, + lithology, stream-power erosion, a Go core, an editor bridge into a Landscape edit layer) reconciled against + the built pipeline in [`Terrain.md`](Terrain.md), and the Go core taken as D-47. What the reconciliation + found: the spec's 7113 canvas is a trap, because 7112 divides by 127 and not by 255, so the importer's own + rule gives 3136 components rather than the spec's 784 — the 4033 mistake again (D-45); 7141 at 200 cm gives + 28x28 components of 255 quads with the same 14.28 km side the manifest already has. The spec's Z scale 400 + is exactly a 2048 m elevation span, so its canvas is expressible in the manifest's own metres contract, at + the cost of dropping the crests from 2800 m to 1536 m (Q2). The spec's uplift/K parameter ranges and its + elevation budget are not jointly consistent at their corners: steady state puts slope at U/(K*A^m), and the + aggressive corner overshoots 1536 m badly, so U/K is the one relief knob and the clip fraction is the check. + The spec has no coast at all and leaves base level open, where this world has one and a sea plane (Q1). + Lithology (plan view) and strata (vertical) are orthogonal and both kept. The spec's §8 DEM escape hatch is + already built and better specified than the spec's version. Deferred with triggers: the preset gallery + widget, `UTerrainPreset`, river splines, build-zone volumes, any GPU port. The five open questions were put + to the user the same day and all five went the recommended way (D-48): the coast stays and sea level is the + base level, the ceiling drops to 1536 m, the canvas goes to 7141 at 200 cm, and a full run holds the + five-minute bar. Go 1.25 turned out to be installed already, on 16 cores, so the toolchain cost was zero. + Nothing is built; the ladder is untouched. +- 2026-09-17 — Off the ladder, third pass: geological simulation in the generator (D-46). `heightmap_erosion.py`, + numpy only: particle hydraulic erosion in vectorised batches, a coarse pass on the 4x-downsampled map for the + valleys and a fine pass at full resolution for the gullies; mass-conserving thermal weathering at a 35° angle + of repose; strata hardness scaling the erosion; flow, wear, deposition and curvature maps written as PNGs and + used by the layer rules. The uplift gained Worley cellular crest lines through the same domain warp. The + manifest's `erosion` block drives it; `"enabled": false` for a real DEM. Two things the smoke test caught: + droplets stepping together in a batch and crowding one cell run away to infinity without a per-step cap, and + thermal weathering that sheds half the mean excess converges far slower than half the largest excess. +- 2026-09-16 — Off the ladder, second pass: the world's terrain is now a manifest, `RawContent/World/World.json` + (D-44). `world_manifest.py` derives the landscape's Z scale and Z offset from an elevation range in metres so + world Z 0 is sea level; `heightmap_io.py` reads 16-bit PNG and raw r16 with numpy alone and resamples; + `heightmap_noise.py` builds the continent in metres (retuned: 80 % of the land under 15°, ranges on a fifth + of the map); `generate_heightmap.py` takes either the noise or a real heightmap named in the manifest and + derives the three Rocky Meadows layers from the height by slope and altitude, so a real heightmap needs no + weightmaps. `create_world.py` dresses `L_World` with the pack's kit as `dump_level.py` (new, dumps any level's + actors to JSON) read it from `Rocky_Meadows_01`: sun with the cloud-shadow light function, skybox dome, sky + light, height fog, fixed exposure and saturation; plus `World_Sea_Proto`, a plane with the engine's water + material. Resolution moved from 4033 to 4081 so the engine's importer picks 16x16 components of 255 quads + instead of 64x64 of 63 (D-45): the import takes two minutes instead of forty. - 2026-09-16 — Off the ladder, at the user's request: `L_World`, a world-partitioned ~200 km² landscape from a seeded heightmap. `Scripts/Authoring/generate_heightmap.py` (numpy, in `Scripts/Authoring/.pylib` via `bootstrap-pylib.sh`) writes 16-bit height and 8-bit weight PNGs to `RawContent/World/Heightmaps/`; @@ -38,10 +147,92 @@ the reasoning lives in the specs, this is the memory. ## Did not work -- (nothing built yet) +- 2026-09-17 — `"fill_every": 50` in the terrain spec, written to protect the five-minute budget, silently + destroyed the stream-power solve. Uplift reaches 5 mm/yr, which at dt 1500 is 7.5 m a step, so fifty steps + is up to 375 m of differential uplift between floods: basins close and sit unrouted while everything above + them stops eroding. Measured at 512² over 3000 steps the fitted exponent goes -0.500 (R2 0.992) at every + step, -0.277 at every fifth, -0.121 at every tenth, noise beyond. Even every fifth step is broken, and the + saving was 93 s against 38 s. The budget came back from the step count instead: 1000 steps, not the spec's + 5000, because at this K the trunk response time is about 45 000 yr and the exponent stops moving after 500. +- 2026-09-17 — The heap in the priority-flood was the wrong data structure. The flood pops in non-decreasing + elevation and never pushes below the current front, which is exactly when a monotone bucket queue is valid; + swapping the binary heap for one took 1.6x off the whole solve at identical output. 22 comparisons and as + many cache misses per operation, on two thirds of the runtime. +- 2026-09-17 — Relief from the stream-power solve is strongly resolution-dependent: the same seed and uplift + field give 1020 m of land relief at 512² and 2605 m at 1786², because finer grids resolve smaller drainage + areas near the divides and S goes as A^(-m/n). Tuning U/K on a `--size` preview will therefore overshoot the + elevation ceiling at full resolution. Judge shape on the preview; confirm the elevation budget at the real + geology grid, where the clip warning is the check. + +- 2026-09-16 — The first `L_World` rebuild of the evening died at twelve minutes with no error: it was run under a + tool with a ten-minute timeout, which killed the commandlet mid-import and left an empty level. Long + commandlets are launched detached (`Start-Process`) and watched through their log. +- 2026-09-16 — A rebuild while the editor had ever loaded `L_World` ended in a nameless `/Temp/Untitled` world + whose save went nowhere: deleting and recreating the level resaves `L_World_HLODLayer_Instanced` and + `_Merged`, and the open editor keeps those two files locked. `create_world.py` now loads and empties an + existing level instead of recreating it, checks the world's package name before building, and sweeps + leftover proxy packages after the save. Check the editor's current level (`SceneTools.get_current_level` + over MCP) before a rebuild; never rebuild the level the editor has open. +- 2026-09-16 — Epic's recommended 4033 resolution gives the engine's importer 64x64 components of 63 quads, because + 4032 does not divide by 127 or 255 and the importer prefers one section per component: 4096 components, over + 8000 textures to build, forty minutes. 4081 divides by 255: 256 components, two minutes. +- 2026-09-16 — The noise stacked eight octaves at gain 0.5, so every octave was as steep as the last and a third of + the land stood above 50°. Lower gains, no octave finer than about 50 m, a percentile-thresholded range mask + and a 38° thermal pass brought it to 80 % under 15°; measured with a slope histogram, not by eye. +- 2026-09-17 — Cellular (Worley) crest lines at 30 % of the mountain height turned the ranges into a honeycomb of + polygon walls with flat floors in the hillshade. Kept at 12 % through a stronger warp; the ridged noise and the + erosion make the divides. +- 2026-09-17 — The first eroded map had the meadows brushed with rills: land under 15° fell from 64 % to 38 %. + A stage-by-stage slope histogram (uplift, coarse pass, fine pass, thermal) put most of it on the coarse pass: + the slope gate sat at 7°, the median lowland slope, and one droplet could cut 7 m per step at 14 m cells. + Gate at 14°, cut capped at a fifth of a cell per step. Attribute by measurement before turning knobs. +- 2026-09-17 — Spreading droplet deposits through a 3x3 brush built mounds: a pit's rim rises faster than its + floor, the pit never fills, and every droplet draining into it adds its load to the rim. Cuts go through the + brush (no one-cell rills), deposits land on the droplet's own cell, and a droplet's load is capped, since + capacity scales with the drop per step and a cliff hands a droplet a hundred cell-heights. +- 2026-09-16 — The first `L_World` with the manifest pipeline showed rock everywhere: Elite_RockyMeadows' layer + names mislead. Its `Base_Layer` function samples the rock textures, `Layer_02` the grass, `Layer_03` the high + rock, and the meadow weightmap had gone to `Base_Layer`. Read a pack's layer functions before mapping layers. +- 2026-09-16 — The retuned noise overshot into flat land with small hills; the user wanted aggressive ranges. + Ranges now come from an elongated, warped, percentile-thresholded band (about two fifths of the land with + foothills), ridged noise sampled through the same warp, crests to about 2600 m. +- 2026-09-16 — `AActor.set_is_spatially_loaded` does not exist in Python; the property is set with + `set_editor_property("is_spatially_loaded", False)`. +- 2026-09-16 — Positional `unreal.Rotator(a, b, c)` is (roll, pitch, yaw), not (pitch, yaw, roll). Both authoring + scripts pitched the sun 25 to 30 degrees upward, every map rendered as night, and the viewport's "cached lighting + is going to be clipped" warning was the auto exposure at EV -8.5 saying so. Keyword arguments from now on. +- 2026-09-16 — A landscape imported from a commandlet had collision but no visible surface: edit layers are always + on in 5.8, the render heightmaps come from a GPU merge, and a commandlet reports it can never render unless + launched with `-AllowCommandletRendering`. `ULandscapeAuthoringLibrary` now forces the full layer update and + `create_world.py` documents the flag. +- 2026-09-16 — The asset library cannot delete a folder of world-partition streaming proxies (their packages do not + load on their own); `create_world.py` removes the folder on disk instead. ## Open +- **World, next time (2026-09-17, the user's verdict: "still somewhat rough").** Three items, none started: + 1. *Sculptable terrain.* Today `create_world.py` empties the level and re-imports the heightmap into a fresh + landscape, so any hand sculpting dies with the next rerun. Wanted: the generated height applied to the + level as its base, with sculpting on top that survives a regeneration. The engine's shape for this is edit + layers: import the PNG into a named `Generated` layer and leave a `Sculpt` layer above it for hand work, then + make a rerun re-import into `Generated` only (`ALandscape` edit-layer API, `FLandscapeEditDataInterface`, or + `ULandscapeEditorObject::ImportHeightmap` per layer) instead of destroying the actor. Needs a C++ change in + `ULandscapeAuthoringLibrary` (a `ReimportHeightmapIntoLayer` beside `CreateLandscapeFromHeightmap`), so a + rebuild of `SaltyEditor` with the editor closed; the weightmaps follow the same path. Check first whether + the proxies' edit-layer data survives `ChangeGridSize`. + 2. *Not visible in the editor.* The rebuilt terrain shows in PIE but the user reports it not visible in the + editor viewport. Most likely cause, to verify: the level is world-partitioned and the 256 landscape proxies + are spatially loaded, so the editor loads none of them until a region is loaded in the World Partition + window; only the always-loaded dressing shows. Candidates: World Settings → World Partition → turn + "Enable Streaming" off for now (everything loads, editor and runtime; 256 components is fine for a + prototype), or save loaded regions with the level, or have `create_world.py` load the regions after the + build. Also confirm the editor reloads `L_World` from disk after a rebuild rather than a stale in-memory copy. + 3. *No greenery on the floor.* The meadow layer is a flat grass texture; nothing grows. No pack in `Content/` + has a grass mesh (Elite_RockyMeadows ships textures only, HouseForge's foliage folder holds one mushroom + and a cover-plant material). Wanted: landscape grass on the meadow layer (`ULandscapeGrassType` fed from a + `LandscapeGrassOutput` node, which means a child or copy of `M_Landscape_Main` since the pack's material has + none), driven by the erosion's deposit and flow maps once the material samples them, plus a foliage pass for + trees and bushes from a pack still to be chosen. Distance culling matters at 200 km². - Step 1's last proof is a person's: Play In Editor in `L_Gym`, two players, "Run Dedicated Server" on, two pawns in the gym. Until it is ticked the step is `◐`. - The default camera mode (OD-03) is deliberately undecided until step 8. diff --git a/HouseForge_01.png b/HouseForge_01.png new file mode 100644 index 0000000..a77f0bc --- /dev/null +++ b/HouseForge_01.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b1c71d9caa9e6f8881ab529fdfcb4bc1c06a6e05f79552f540c152e3e439662 +size 48922 diff --git a/RawContent/World/B0_baseline/geology_flow.png b/RawContent/World/B0_baseline/geology_flow.png new file mode 100644 index 0000000..dafd093 --- /dev/null +++ b/RawContent/World/B0_baseline/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d607fe71348b08b14d250b1b69fa0225585d773b5e98abe9e50253a585f44ecf +size 615721 diff --git a/RawContent/World/B0_baseline/geology_height.png b/RawContent/World/B0_baseline/geology_height.png new file mode 100644 index 0000000..406d5b9 --- /dev/null +++ b/RawContent/World/B0_baseline/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:374b7b98710246765d9537e0abc3a7588fdb90500a9b33764118c72a2201a9ff +size 1645565 diff --git a/RawContent/World/B0_baseline/preview.png b/RawContent/World/B0_baseline/preview.png new file mode 100644 index 0000000..d535904 --- /dev/null +++ b/RawContent/World/B0_baseline/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d09e6fdc67cb1c30f1aa805b125d31149dccc4636da7a3ad98f02fbb7faaefda +size 1379093 diff --git a/RawContent/World/B0_baseline/preview_detail.png b/RawContent/World/B0_baseline/preview_detail.png new file mode 100644 index 0000000..a9ee443 --- /dev/null +++ b/RawContent/World/B0_baseline/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f560456e706d26eff797dac9c68e9b422d666b02bdbbe41ea2e54970fedd00a +size 127502 diff --git a/RawContent/World/B0_baseline/thumb.png b/RawContent/World/B0_baseline/thumb.png new file mode 100644 index 0000000..b547c84 --- /dev/null +++ b/RawContent/World/B0_baseline/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f42febc8e597eb6d81aa53e590f2101c7ecbab199edae69074b30a34349e4cae +size 109950 diff --git a/RawContent/World/B1_uplift/geology_flow.png b/RawContent/World/B1_uplift/geology_flow.png new file mode 100644 index 0000000..14bf5ae --- /dev/null +++ b/RawContent/World/B1_uplift/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8799123961922b02a6a1ddff419d7ca3a19e3a5861f23e8f71a87f5c7bce7b8 +size 658443 diff --git a/RawContent/World/B1_uplift/geology_height.png b/RawContent/World/B1_uplift/geology_height.png new file mode 100644 index 0000000..15a4100 --- /dev/null +++ b/RawContent/World/B1_uplift/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd6c8ddaff0a5f3d7fbb4a9a6155b13b27dad73fac90434469e919bb07fead0a +size 1254699 diff --git a/RawContent/World/B1_uplift/meta.json b/RawContent/World/B1_uplift/meta.json new file mode 100644 index 0000000..bc96639 --- /dev/null +++ b/RawContent/World/B1_uplift/meta.json @@ -0,0 +1,306 @@ +{ + "elapsed_s": 193.7862405, + "generated_at": "2026-09-17T11:44:49Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6164954081632653, + "clip_fraction": 0, + "relief_m": 785.51953125, + "min_m": -177.87100219726562, + "max_m": 607.6485595703125, + "land_min_m": 0.00019826734205707908, + "land_max_m": 607.6485595703125, + "land_relief_m": 607.6483613029704, + "slopes": { + "under_15_deg": 0.5402460087509134, + "under_30_deg": 0.7243611229042374, + "over_50_deg": 0.003465937727328061, + "median_deg": 10.880830100195633 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.656340114808468, + "n": 1655 + }, + { + "log_area": 6.375, + "log_slope": -2.6377794124420477, + "n": 844 + }, + { + "log_area": 6.625, + "log_slope": -3.5977880952266483, + "n": 878 + }, + { + "log_area": 6.875, + "log_slope": -3.3659627643247294, + "n": 537 + }, + { + "log_area": 7.125, + "log_slope": -3.647075916486412, + "n": 360 + }, + { + "log_area": 7.375, + "log_slope": -2.5498585875503315, + "n": 23 + } + ], + "exponent": -0.258703605136058, + "raw_exponent": -0.2226952555232163, + "expected": -0.5, + "r2": 0.05514503729623532, + "raw_r2": 0.03939361560725385, + "channel_cells": 4297, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.10834672873402572, + "curve": [ + 1, + 0.33574823454831504, + 0.18447759761191262, + 0.11970726564161638, + 0.07560097357429385, + 0.04238325425731859, + 0.020741833156643352, + 0.009316983508657839, + 0.0035064895297728382, + 0.0010725537952762654, + 8.27587804952401e-7 + ] + }, + "drainage_density_per_km": 0.49879250186996016, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.42056191556783695, + "median_deg": 0.8097134686364748, + "p90_deg": 2.751674530696939, + "median_relief_m": 8.61474061012268, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.008156590800861115, + "median_elev_m": 2.6375668048858643, + "cells": 508178 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.0736354525374256, + "median_deg": 7.374977625841681, + "p90_deg": 21.450962067306712, + "median_relief_m": 83.9388976097107, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.009631810825391116, + "median_elev_m": 10.556264877319336, + "cells": 88976 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.5058026318947374, + "median_deg": 31.09274624316486, + "p90_deg": 37.38441820638142, + "median_relief_m": 185.84488940238953, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.4364054930077539, + "median_elev_m": 88.29187774658203, + "cells": 611177 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/B1_uplift/preview.png b/RawContent/World/B1_uplift/preview.png new file mode 100644 index 0000000..51f66f8 --- /dev/null +++ b/RawContent/World/B1_uplift/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6dbc4589e1b073928710b1016d35db0bef21953b9c329f3bf23076a2fb43806 +size 1057946 diff --git a/RawContent/World/B1_uplift/preview_detail.png b/RawContent/World/B1_uplift/preview_detail.png new file mode 100644 index 0000000..4d584b2 --- /dev/null +++ b/RawContent/World/B1_uplift/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dc5429ceb924647c0c06860ca491f3c4d8e9857bb641ed41e851e879000477b +size 76977 diff --git a/RawContent/World/B1_uplift/thumb.png b/RawContent/World/B1_uplift/thumb.png new file mode 100644 index 0000000..b9791bc --- /dev/null +++ b/RawContent/World/B1_uplift/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:996cf93c9ca723a25e3e74c1557c4c34ba92d46e9fe4c8be24369a0cb3657bf7 +size 88357 diff --git a/RawContent/World/B2_jitter/geology_flow.png b/RawContent/World/B2_jitter/geology_flow.png new file mode 100644 index 0000000..3983550 --- /dev/null +++ b/RawContent/World/B2_jitter/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bd8b1e7744e4f366d54f35d0cb46afb1a098294d743ffc221e05613ac3fba54 +size 660678 diff --git a/RawContent/World/B2_jitter/geology_height.png b/RawContent/World/B2_jitter/geology_height.png new file mode 100644 index 0000000..947ef70 --- /dev/null +++ b/RawContent/World/B2_jitter/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fdcf3ccd22f2a6be900abce5fc3241429ff93d410c325d01480d239b4d9f5d0 +size 1255286 diff --git a/RawContent/World/B2_jitter/meta.json b/RawContent/World/B2_jitter/meta.json new file mode 100644 index 0000000..5230fff --- /dev/null +++ b/RawContent/World/B2_jitter/meta.json @@ -0,0 +1,306 @@ +{ + "elapsed_s": 194.4218027, + "generated_at": "2026-09-17T11:49:23Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6164954081632653, + "clip_fraction": 0, + "relief_m": 823.02490234375, + "min_m": -177.87100219726562, + "max_m": 645.1538696289062, + "land_min_m": 0.0002748040424194187, + "land_max_m": 645.1538696289062, + "land_relief_m": 645.1535948248638, + "slopes": { + "under_15_deg": 0.53978173199231, + "under_30_deg": 0.7245233301140168, + "over_50_deg": 0.003465937727328061, + "median_deg": 10.876431693287024 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.721887991145525, + "n": 1259 + }, + { + "log_area": 6.375, + "log_slope": -2.8306223060514086, + "n": 1058 + }, + { + "log_area": 6.625, + "log_slope": -3.149411065921327, + "n": 1142 + }, + { + "log_area": 6.875, + "log_slope": -3.321543932931743, + "n": 627 + }, + { + "log_area": 7.125, + "log_slope": -2.9758101857895203, + "n": 144 + }, + { + "log_area": 7.375, + "log_slope": -3.176147652981703, + "n": 75 + } + ], + "exponent": -0.3290279789035031, + "raw_exponent": -0.9721192918516733, + "expected": -0.5, + "r2": 0.4585335361267838, + "raw_r2": 0.6637636128669056, + "channel_cells": 4305, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.10209404993499935, + "curve": [ + 1, + 0.3246329027393984, + 0.17372888720060975, + 0.11090917968669178, + 0.06613171390951655, + 0.03399896220489251, + 0.014588717826489628, + 0.006311184600908182, + 0.002276694051547179, + 0.0005851045781329889, + 8.27587804952401e-7 + ] + }, + "drainage_density_per_km": 0.486955098542097, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.42056191556783695, + "median_deg": 0.798834054105942, + "p90_deg": 2.7441892389387856, + "median_relief_m": 8.531373262405396, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.008156590800861115, + "median_elev_m": 2.5833873748779297, + "cells": 508178 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.0736354525374256, + "median_deg": 7.380591829448346, + "p90_deg": 21.467541788753188, + "median_relief_m": 83.63971364498138, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.009609332853803273, + "median_elev_m": 10.673678398132324, + "cells": 88976 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.5058026318947374, + "median_deg": 31.07943148183974, + "p90_deg": 37.37535915156308, + "median_relief_m": 186.55221557617188, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.43614206686442714, + "median_elev_m": 88.61882019042969, + "cells": 611177 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/B2_jitter/preview.png b/RawContent/World/B2_jitter/preview.png new file mode 100644 index 0000000..cc1bc19 --- /dev/null +++ b/RawContent/World/B2_jitter/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97fa6e35fb72433cded01935a6b6754ddc656c766579bda8341cc5b345a5f8a1 +size 1061998 diff --git a/RawContent/World/B2_jitter/preview_detail.png b/RawContent/World/B2_jitter/preview_detail.png new file mode 100644 index 0000000..548739d --- /dev/null +++ b/RawContent/World/B2_jitter/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee1e012b909c0f229cdaf61fbac0cecd68b3dede653bb960c4a0f97660ddb0bb +size 75482 diff --git a/RawContent/World/B2_jitter/thumb.png b/RawContent/World/B2_jitter/thumb.png new file mode 100644 index 0000000..1f8f871 --- /dev/null +++ b/RawContent/World/B2_jitter/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e1750b61cc6689b7c73aeaa3e3c22603f748c0373c30456e5a1ace26081e2c9 +size 87167 diff --git a/RawContent/World/B3_critarea/geology_flow.png b/RawContent/World/B3_critarea/geology_flow.png new file mode 100644 index 0000000..a7ead8f --- /dev/null +++ b/RawContent/World/B3_critarea/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:406991ad63d624aa099116556c7eb730bfb13218ae0d36dd54906a23e95d9ce8 +size 640186 diff --git a/RawContent/World/B3_critarea/geology_height.png b/RawContent/World/B3_critarea/geology_height.png new file mode 100644 index 0000000..68700e5 --- /dev/null +++ b/RawContent/World/B3_critarea/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57f68d93fc13e3752b49b7813990e33d25e525be8445c8ff478c49fcb9afa91c +size 1503325 diff --git a/RawContent/World/B3_critarea/meta.json b/RawContent/World/B3_critarea/meta.json new file mode 100644 index 0000000..e35f50b --- /dev/null +++ b/RawContent/World/B3_critarea/meta.json @@ -0,0 +1,311 @@ +{ + "elapsed_s": 229.8434145, + "generated_at": "2026-09-17T11:53:32Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 10000, + "channel_taper": 2 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6164954081632653, + "clip_fraction": 0, + "relief_m": 984.2572021484375, + "min_m": -177.87100219726562, + "max_m": 806.3861694335938, + "land_min_m": 0.0037049478851258755, + "land_max_m": 806.3861694335938, + "land_relief_m": 806.3824644857086, + "slopes": { + "under_15_deg": 0.36570856826482145, + "under_30_deg": 0.510562916949081, + "over_50_deg": 0.0035594551492926785, + "median_deg": 29.101818247880658 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.2571956151062116, + "n": 1372 + }, + { + "log_area": 6.375, + "log_slope": -2.0241112854559598, + "n": 1267 + }, + { + "log_area": 6.625, + "log_slope": -3.520279814583942, + "n": 612 + }, + { + "log_area": 6.875, + "log_slope": -3.4821578058392797, + "n": 707 + }, + { + "log_area": 7.125, + "log_slope": -3.739160797998414, + "n": 43 + }, + { + "log_area": 7.375, + "log_slope": -3.0148609580045735, + "n": 359 + }, + { + "log_area": 7.625, + "log_slope": -1.6192817792291674, + "n": 14 + } + ], + "exponent": -0.0409484029829326, + "raw_exponent": -0.8141542779310431, + "expected": -0.5, + "r2": 0.0006982224773537382, + "raw_r2": 0.18826035892663284, + "channel_cells": 4374, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.165474813979092, + "curve": [ + 1, + 0.5339422724402503, + 0.31458515919892815, + 0.17026129429767178, + 0.0956352191576646, + 0.05353665510526506, + 0.026617706572123034, + 0.011302366652845897, + 0.0041106286274208426, + 0.0009202776391568079, + 8.27587804952401e-7 + ] + }, + "drainage_density_per_km": 0.4650640101960487, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.42056191556783695, + "median_deg": 6.978299290750539, + "p90_deg": 19.468315167110788, + "median_relief_m": 60.7269287109375, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.017889400957932063, + "median_elev_m": 30.075618743896484, + "cells": 508178 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.0736354525374256, + "median_deg": 32.78142153058043, + "p90_deg": 37.02667140255376, + "median_relief_m": 182.12700653076172, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.4892555295810106, + "median_elev_m": 89.4842758178711, + "cells": 88976 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.5058026318947374, + "median_deg": 35.66219338858601, + "p90_deg": 41.04955660086608, + "median_relief_m": 238.9236297607422, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.7907545604628446, + "median_elev_m": 188.74847412109375, + "cells": 611177 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/B3_critarea/preview.png b/RawContent/World/B3_critarea/preview.png new file mode 100644 index 0000000..dab5286 --- /dev/null +++ b/RawContent/World/B3_critarea/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4d8980846266bb8ea6e28664dd61c752fd2ffbd36956b4bccf7eb9675ebb505 +size 1195962 diff --git a/RawContent/World/B3_critarea/preview_detail.png b/RawContent/World/B3_critarea/preview_detail.png new file mode 100644 index 0000000..05dd53a --- /dev/null +++ b/RawContent/World/B3_critarea/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cae999392061a250d96c7e1ec9bcbe2e0b50493d7c8d734b255baec89ced426 +size 101283 diff --git a/RawContent/World/B3_critarea/thumb.png b/RawContent/World/B3_critarea/thumb.png new file mode 100644 index 0000000..0b93388 --- /dev/null +++ b/RawContent/World/B3_critarea/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57e3be8493c10c0061831ea772dd80a60d51062b7a68081546c7cbc8ea2fe41d +size 100771 diff --git a/RawContent/World/B4_nonlinear/geology_flow.png b/RawContent/World/B4_nonlinear/geology_flow.png new file mode 100644 index 0000000..236bc09 --- /dev/null +++ b/RawContent/World/B4_nonlinear/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b7037d2616f6a8db435b619eb6cbd8831fef170db23b11bbf341a6453ab71fb +size 656143 diff --git a/RawContent/World/B4_nonlinear/geology_height.png b/RawContent/World/B4_nonlinear/geology_height.png new file mode 100644 index 0000000..50531ed --- /dev/null +++ b/RawContent/World/B4_nonlinear/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:862b6c31690804f76c44f3d9aa1b5e9a4c0972a839883f08bc068c297007173c +size 1045760 diff --git a/RawContent/World/B4_nonlinear/meta.json b/RawContent/World/B4_nonlinear/meta.json new file mode 100644 index 0000000..c30984c --- /dev/null +++ b/RawContent/World/B4_nonlinear/meta.json @@ -0,0 +1,304 @@ +{ + "elapsed_s": 219.1433691, + "generated_at": "2026-09-17T12:02:35Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2, + "critical_slope_deg": 35, + "slope_cap": 0.9, + "max_hillslope_substeps": 24 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6164954081632653, + "clip_fraction": 0, + "relief_m": 1045.8106689453125, + "min_m": -177.87100219726562, + "max_m": 867.939697265625, + "land_min_m": 0.00027692780713550746, + "land_max_m": 867.939697265625, + "land_relief_m": 867.9394203378179, + "slopes": { + "under_15_deg": 0.5749211101924886, + "under_30_deg": 0.7837115823396072, + "over_50_deg": 0.003465937727328061, + "median_deg": 9.106456565164164 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.5231146148743813, + "n": 1319 + }, + { + "log_area": 6.375, + "log_slope": -2.8761380874683997, + "n": 1466 + }, + { + "log_area": 6.625, + "log_slope": -3.26926623171605, + "n": 638 + }, + { + "log_area": 6.875, + "log_slope": -3.3520295621685556, + "n": 665 + }, + { + "log_area": 7.125, + "log_slope": -2.9818524712696357, + "n": 313 + } + ], + "exponent": -0.557346874996274, + "raw_exponent": -1.1103559828277503, + "expected": -0.5, + "r2": 0.44172681221363397, + "raw_r2": 0.7189797249760922, + "channel_cells": 4406, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.09809033042076079, + "curve": [ + 1, + 0.2962747790133664, + 0.15815782264958855, + 0.10669924052267132, + 0.06831406295129394, + 0.04013138783992132, + 0.02127645487867147, + 0.008921396537869164, + 0.0030935232150792746, + 0.0007456566123024144, + 8.27587804952401e-7 + ] + }, + "drainage_density_per_km": 0.48444167728755066, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.42056191556783695, + "median_deg": 0.8529396227680377, + "p90_deg": 2.7138804115379274, + "median_relief_m": 8.774994254112244, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.008266788408785898, + "median_elev_m": 2.762951135635376, + "cells": 508178 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.0736354525374256, + "median_deg": 5.941119511700548, + "p90_deg": 17.556521854836394, + "median_relief_m": 74.32492256164551, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.009171012407840316, + "median_elev_m": 11.322357177734375, + "cells": 88976 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.5058026318947374, + "median_deg": 26.193342712939252, + "p90_deg": 36.59639840691351, + "median_relief_m": 205.5410919189453, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.3784566500375505, + "median_elev_m": 105.49626159667969, + "cells": 611177 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/B4_nonlinear/preview.png b/RawContent/World/B4_nonlinear/preview.png new file mode 100644 index 0000000..67875e2 --- /dev/null +++ b/RawContent/World/B4_nonlinear/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:686877022160abccad30dc6e2f8c6ca9c9adcf2f2676707ebfb45f953080caee +size 825364 diff --git a/RawContent/World/B4_nonlinear/preview_detail.png b/RawContent/World/B4_nonlinear/preview_detail.png new file mode 100644 index 0000000..505080d --- /dev/null +++ b/RawContent/World/B4_nonlinear/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f58b6c896d51dcdab8e88f920d6998d267ff0cff937ad29be2aca4aec171773 +size 68799 diff --git a/RawContent/World/B4_nonlinear/thumb.png b/RawContent/World/B4_nonlinear/thumb.png new file mode 100644 index 0000000..ec17b96 --- /dev/null +++ b/RawContent/World/B4_nonlinear/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02511dbb338fb6b1249f958f946d4413fe41222e6cb73108a079398fa7f22402 +size 77594 diff --git a/RawContent/World/B5_fixed/geology_flow.png b/RawContent/World/B5_fixed/geology_flow.png new file mode 100644 index 0000000..7fb96fd --- /dev/null +++ b/RawContent/World/B5_fixed/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d35308b4fcbe1d8dfd6f7e5222ce7e0f30efaf8a22a5b3ea9d956dd5ccbe687 +size 682851 diff --git a/RawContent/World/B5_fixed/geology_height.png b/RawContent/World/B5_fixed/geology_height.png new file mode 100644 index 0000000..5343fd2 --- /dev/null +++ b/RawContent/World/B5_fixed/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e5dbec4a0cf78d83a4ff6c18c52607e806da718edce49ff7e881479b1f3c684 +size 1101472 diff --git a/RawContent/World/B5_fixed/meta.json b/RawContent/World/B5_fixed/meta.json new file mode 100644 index 0000000..5a406cc --- /dev/null +++ b/RawContent/World/B5_fixed/meta.json @@ -0,0 +1,309 @@ +{ + "elapsed_s": 222.1239768, + "generated_at": "2026-09-17T12:08:51Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2, + "critical_slope_deg": 35, + "slope_cap": 0.9, + "max_hillslope_substeps": 24 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6164954081632653, + "clip_fraction": 0, + "relief_m": 1050.592529296875, + "min_m": -177.87100219726562, + "max_m": 872.7214965820312, + "land_min_m": 0.00043203451787121594, + "land_max_m": 872.7214965820312, + "land_relief_m": 872.7210645475134, + "slopes": { + "under_15_deg": 0.5353036543794705, + "under_30_deg": 0.7451410250999105, + "over_50_deg": 0.003465937727328061, + "median_deg": 11.254556374277325 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.629243739917483, + "n": 1582 + }, + { + "log_area": 6.375, + "log_slope": -2.910864790800789, + "n": 815 + }, + { + "log_area": 6.625, + "log_slope": -3.2796673914132697, + "n": 688 + }, + { + "log_area": 6.875, + "log_slope": -3.4083352782057332, + "n": 543 + }, + { + "log_area": 7.125, + "log_slope": -3.231788143648459, + "n": 355 + }, + { + "log_area": 7.375, + "log_slope": -3.1002844081575764, + "n": 93 + } + ], + "exponent": -0.39390186131840027, + "raw_exponent": -0.5947304094433916, + "expected": -0.5, + "r2": 0.42232083693347733, + "raw_r2": 0.5781132037819735, + "channel_cells": 4076, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.0954847923656812, + "curve": [ + 1, + 0.2770540522423077, + 0.15503947180035937, + 0.10615799809820325, + 0.0683877182659387, + 0.039903801193547084, + 0.02141797239332599, + 0.009777949916041195, + 0.0030587645272693864, + 0.0005784838756930366, + 8.27587804952401e-7 + ] + }, + "drainage_density_per_km": 0.4637667605162828, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.42056191556783695, + "median_deg": 0.8097552418398813, + "p90_deg": 2.7721475472192516, + "median_relief_m": 8.780500292778015, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.008304176882903235, + "median_elev_m": 2.5945687294006348, + "cells": 508178 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.0736354525374256, + "median_deg": 7.408277020266962, + "p90_deg": 22.717959919773662, + "median_relief_m": 84.74027979373932, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.018993885991728108, + "median_elev_m": 10.458891868591309, + "cells": 88976 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.5058026318947374, + "median_deg": 29.683846133939515, + "p90_deg": 37.158447094185455, + "median_relief_m": 216.27429378032684, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.42197595786490655, + "median_elev_m": 97.68097686767578, + "cells": 611177 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/B5_fixed/preview.png b/RawContent/World/B5_fixed/preview.png new file mode 100644 index 0000000..81ecfb7 --- /dev/null +++ b/RawContent/World/B5_fixed/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:595ba37e521499f5b86855ff5d43e392b66da48a7fa10dcc155493e075c59b0d +size 924275 diff --git a/RawContent/World/B5_fixed/preview_detail.png b/RawContent/World/B5_fixed/preview_detail.png new file mode 100644 index 0000000..cfeb120 --- /dev/null +++ b/RawContent/World/B5_fixed/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f6c41238be740edf2b9a5507c8f03bfe3209ec07830bb268d33742f2521bf60 +size 76934 diff --git a/RawContent/World/B5_fixed/thumb.png b/RawContent/World/B5_fixed/thumb.png new file mode 100644 index 0000000..5219261 --- /dev/null +++ b/RawContent/World/B5_fixed/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f11113a6ea6cd9675da87961d2b4872edf992f77c0a523e04f081e493c56266c +size 82918 diff --git a/RawContent/World/B6_clamped/geology_flow.png b/RawContent/World/B6_clamped/geology_flow.png new file mode 100644 index 0000000..b9c7f7f --- /dev/null +++ b/RawContent/World/B6_clamped/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d125f4be63f2f6925ca16e154bdfae7fb08089d2b02572e8d23a497f04473bb7 +size 642701 diff --git a/RawContent/World/B6_clamped/geology_height.png b/RawContent/World/B6_clamped/geology_height.png new file mode 100644 index 0000000..b67e46c --- /dev/null +++ b/RawContent/World/B6_clamped/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e49252e840df13dfa4cafed1434ebd1831d808d3fc277c959d7b0331df28961d +size 1263410 diff --git a/RawContent/World/B6_clamped/meta.json b/RawContent/World/B6_clamped/meta.json new file mode 100644 index 0000000..ffd7e1f --- /dev/null +++ b/RawContent/World/B6_clamped/meta.json @@ -0,0 +1,309 @@ +{ + "elapsed_s": 239.5246435, + "generated_at": "2026-09-17T12:13:12Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2, + "critical_slope_deg": 35, + "slope_cap": 0.9, + "max_hillslope_substeps": 24 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6164954081632653, + "clip_fraction": 0, + "relief_m": 854.8675537109375, + "min_m": -177.87100219726562, + "max_m": 676.99658203125, + "land_min_m": 0.00045469991164281964, + "land_max_m": 676.99658203125, + "land_relief_m": 676.9961273313384, + "slopes": { + "under_15_deg": 0.5365251739796463, + "under_30_deg": 0.7698304520863902, + "over_50_deg": 0.003465937727328061, + "median_deg": 11.215516119042432 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.611773530194613, + "n": 1366 + }, + { + "log_area": 6.375, + "log_slope": -2.93759566346186, + "n": 1053 + }, + { + "log_area": 6.625, + "log_slope": -3.483294451956711, + "n": 604 + }, + { + "log_area": 6.875, + "log_slope": -3.4479230454601377, + "n": 594 + }, + { + "log_area": 7.125, + "log_slope": -3.525030948477573, + "n": 288 + }, + { + "log_area": 7.375, + "log_slope": -2.938967275504876, + "n": 133 + } + ], + "exponent": -0.38433179144021345, + "raw_exponent": -0.692990955410503, + "expected": -0.5, + "r2": 0.22454369297336585, + "raw_r2": 0.5855711866388629, + "channel_cells": 4038, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.10665656369146, + "curve": [ + 1, + 0.3272290456836744, + 0.1813120742577986, + 0.11826891803653139, + 0.07534938688157466, + 0.043331669881845336, + 0.021866524983634505, + 0.009739880877011386, + 0.0036744898541872795, + 0.0006496564269227179, + 8.27587804952401e-7 + ] + }, + "drainage_density_per_km": 0.48022561582831175, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.42056191556783695, + "median_deg": 0.8110745917417936, + "p90_deg": 2.7608358461755076, + "median_relief_m": 8.698705837130547, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.008188075831696768, + "median_elev_m": 2.585980176925659, + "cells": 508178 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.0736354525374256, + "median_deg": 7.4682861630949375, + "p90_deg": 23.134866015917734, + "median_relief_m": 84.90330410003662, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.00873269196187736, + "median_elev_m": 10.52147388458252, + "cells": 88976 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.5058026318947374, + "median_deg": 28.514108839370788, + "p90_deg": 36.017001965327076, + "median_relief_m": 194.501953125, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.32737324866609835, + "median_elev_m": 95.58696746826172, + "cells": 611177 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/B6_clamped/preview.png b/RawContent/World/B6_clamped/preview.png new file mode 100644 index 0000000..4c4bd50 --- /dev/null +++ b/RawContent/World/B6_clamped/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bb777c84465a7bd9c229561254cc9cf551fbb37453e54844bccb7616498c2e5 +size 958735 diff --git a/RawContent/World/B6_clamped/preview_detail.png b/RawContent/World/B6_clamped/preview_detail.png new file mode 100644 index 0000000..27f582d --- /dev/null +++ b/RawContent/World/B6_clamped/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f3764a8d0391f8cdb4f349e9c5bebe750544c4c7d0810747d811eb0f3644312 +size 76137 diff --git a/RawContent/World/B6_clamped/thumb.png b/RawContent/World/B6_clamped/thumb.png new file mode 100644 index 0000000..a80ecc6 --- /dev/null +++ b/RawContent/World/B6_clamped/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ea5440bc487f38acb96d0088f84bf1c709e95b90efeea675b71d140bb6beb95 +size 85188 diff --git a/RawContent/World/Cliffs/geology_flow.png b/RawContent/World/Cliffs/geology_flow.png new file mode 100644 index 0000000..de4be69 --- /dev/null +++ b/RawContent/World/Cliffs/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa30aca91470661a65ff5f098e9b052ece71265b620c73dbc4742540b8e1241b +size 638839 diff --git a/RawContent/World/Cliffs/geology_height.png b/RawContent/World/Cliffs/geology_height.png new file mode 100644 index 0000000..7e24567 --- /dev/null +++ b/RawContent/World/Cliffs/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b598296cc0916623b4e9f5b94491f8e647e35c9e2cad2b306a7c2adbd68ea9c1 +size 1381626 diff --git a/RawContent/World/Cliffs/map_basins.png b/RawContent/World/Cliffs/map_basins.png new file mode 100644 index 0000000..59217d9 --- /dev/null +++ b/RawContent/World/Cliffs/map_basins.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de6bcdf68aca4ac6c43c039856ba5d95b51ac1d981169d2011c2e5e59d7e4f11 +size 274635 diff --git a/RawContent/World/Cliffs/map_coast.png b/RawContent/World/Cliffs/map_coast.png new file mode 100644 index 0000000..9cb32c6 --- /dev/null +++ b/RawContent/World/Cliffs/map_coast.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0392354141b6d115cbf6fe0203e6203065f4225e9cdf767cf31ece67e3624040 +size 169990 diff --git a/RawContent/World/Cliffs/map_erodibility.png b/RawContent/World/Cliffs/map_erodibility.png new file mode 100644 index 0000000..cfadf0c --- /dev/null +++ b/RawContent/World/Cliffs/map_erodibility.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b97d08aa7aeef4a0bca237a2b358daecb2bab4922ccb6402847518377794399b +size 62061 diff --git a/RawContent/World/Cliffs/map_exposure.png b/RawContent/World/Cliffs/map_exposure.png new file mode 100644 index 0000000..336401a --- /dev/null +++ b/RawContent/World/Cliffs/map_exposure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3d68239ad4523816d1b79e57e5a5b76402cd773d60c73d1deab99e52e2a993d +size 478396 diff --git a/RawContent/World/Cliffs/map_flow.png b/RawContent/World/Cliffs/map_flow.png new file mode 100644 index 0000000..9bca0ae --- /dev/null +++ b/RawContent/World/Cliffs/map_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2a0ce5b26847e8f222a805f5d8f05b0a69ef272140657966bd0de7422332bba +size 1215792 diff --git a/RawContent/World/Cliffs/map_relief.png b/RawContent/World/Cliffs/map_relief.png new file mode 100644 index 0000000..ede04e6 --- /dev/null +++ b/RawContent/World/Cliffs/map_relief.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf6d5d346e3078a2fe90d3e8e4a0783a2b428ee78ca1e2b1424d1339ac41d978 +size 470609 diff --git a/RawContent/World/Cliffs/map_slope.png b/RawContent/World/Cliffs/map_slope.png new file mode 100644 index 0000000..28d9efd --- /dev/null +++ b/RawContent/World/Cliffs/map_slope.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a039b85804497e897adca0eaaa1b5e4d0b415eeffbcb610f34f9f1467014fce +size 1676021 diff --git a/Content/__ExternalActors__/Maps/L_World/4/TM/TQ9PEL16JSZHUPZEEE82VK.uasset b/RawContent/World/Cliffs/map_uplift.png similarity index 81% rename from Content/__ExternalActors__/Maps/L_World/4/TM/TQ9PEL16JSZHUPZEEE82VK.uasset rename to RawContent/World/Cliffs/map_uplift.png index ce08249..9d9a1ca 100644 --- a/Content/__ExternalActors__/Maps/L_World/4/TM/TQ9PEL16JSZHUPZEEE82VK.uasset +++ b/RawContent/World/Cliffs/map_uplift.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ec64f74b69c3b51f19a2e15c3cec74e2b9df16aae4e6b328cea290bb0e0465c -size 594866 +oid sha256:e6c48856c617079473bf40d7facc75ba472ba6653ba60eb4975e1a8ee06c9880 +size 516041 diff --git a/RawContent/World/Cliffs/meta.json b/RawContent/World/Cliffs/meta.json new file mode 100644 index 0000000..1f2824a --- /dev/null +++ b/RawContent/World/Cliffs/meta.json @@ -0,0 +1,354 @@ +{ + "coast": { + "shoreline_km": 95.68314510364547, + "sea_fraction": 0.35602244897959184, + "shelf_pct_of_sea": 84.44571896981682, + "surf_cut_m3": 38874577.03960656, + "river_load_m3": 4153387.4247230846, + "laid_m3": 42268629.0638415, + "unplaced_m3": 759335.2652584477, + "river_mouths": 15, + "planed_km2": 3.8880130006064784, + "beach_km2": 5.59222900540108, + "drowned_km2": 0, + "backshore_m": 8.881030082702637, + "backshore_p90_m": 95.66809844970703, + "exposure_p10": 0, + "exposure_p50": 0.8436543345451355, + "exposure_p90": 1 + }, + "elapsed_s": 242.6105375, + "generated_at": "2026-09-17T13:39:34Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3, + "outline_octaves": 8, + "outline_gain": 0.62 + }, + "coast": { + "enabled": true, + "shelf_km": [ + 0.6, + 3 + ], + "steep_coast_m": 300, + "slope_km": 1.6, + "shelf_exponent": 0.7, + "roughness_m": 10, + "rough_wavelength_m": 1200, + "fetch_directions": 16, + "fetch_range_m": 1500, + "surf_reach_m": 110, + "platform_grade": 0.02, + "cut_fraction": 0.85, + "deposit_reach_m": 350, + "deposit_depth_m": 25, + "shelter_bias": 1.5, + "berm_m": 2, + "drift_m": 300, + "river_m3_per_km2": 120000, + "river_exponent": 0.6, + "river_channel_km2": 0.5 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2, + "critical_slope_deg": 35, + "slope_cap": 0.9, + "max_hillslope_substeps": 24 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6439775510204082, + "clip_fraction": 0, + "relief_m": 861.7378540039062, + "min_m": -187.73455810546875, + "max_m": 674.0032958984375, + "land_min_m": 0.000015878724298090674, + "land_max_m": 674.0032958984375, + "land_relief_m": 674.0032800197132, + "slopes": { + "under_15_deg": 0.5619681887757527, + "under_30_deg": 0.7816860455903838, + "over_50_deg": 0.0027087710624974504, + "median_deg": 7.824752906233886 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.5731917366561445, + "n": 1379 + }, + { + "log_area": 6.375, + "log_slope": -2.887003475019511, + "n": 966 + }, + { + "log_area": 6.625, + "log_slope": -3.2863188742702, + "n": 976 + }, + { + "log_area": 6.875, + "log_slope": -3.554213811446756, + "n": 544 + }, + { + "log_area": 7.125, + "log_slope": -3.189354563393906, + "n": 198 + }, + { + "log_area": 7.375, + "log_slope": -2.884818065162557, + "n": 126 + } + ], + "exponent": -0.31235198226649596, + "raw_exponent": -0.6488044600535345, + "expected": -0.5, + "r2": 0.1750033259783007, + "raw_r2": 0.6096290962402766, + "channel_cells": 4189, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.1033246264010237, + "curve": [ + 1, + 0.3177454214717841, + 0.1756256556034087, + 0.11427781422219685, + 0.07303778493989843, + 0.04214321705979107, + 0.021580641992210436, + 0.009504862953138793, + 0.0033584324463078463, + 0.0006591686235735139, + 7.922699802875854e-7 + ] + }, + "drainage_density_per_km": 0.45274606456420674, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.44282187552487884, + "median_deg": 0.8324307607561502, + "p90_deg": 2.7834285815669313, + "median_relief_m": 8.3995041847229, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0, + "median_elev_m": 2.1890780925750732, + "cells": 558928 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.06483224475438046, + "median_deg": 7.338753105242311, + "p90_deg": 22.75931213742903, + "median_relief_m": 58.381693840026855, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.006537864623431218, + "median_elev_m": 11.93692684173584, + "cells": 81831 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.4923458797207407, + "median_deg": 28.42395486231093, + "p90_deg": 36.04215822759804, + "median_relief_m": 157.23731231689453, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.32655763979293156, + "median_elev_m": 94.9468994140625, + "cells": 621437 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/Cliffs/preview.png b/RawContent/World/Cliffs/preview.png new file mode 100644 index 0000000..206cb08 --- /dev/null +++ b/RawContent/World/Cliffs/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a3dbd6e45b0cd0489a7171af66da1f1d69cc2647cd3ab284ff092f301e890da +size 1058946 diff --git a/RawContent/World/Cliffs/preview_detail.png b/RawContent/World/Cliffs/preview_detail.png new file mode 100644 index 0000000..a8eae14 --- /dev/null +++ b/RawContent/World/Cliffs/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ad99ef2bd8e5d7912cc41c7ea1628252f7d100932497074af3aec7a1972a513 +size 36613 diff --git a/RawContent/World/Cliffs/thumb.png b/RawContent/World/Cliffs/thumb.png new file mode 100644 index 0000000..ebdb12b --- /dev/null +++ b/RawContent/World/Cliffs/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a664c22f1a63627342a91d8291cfaf5dfa941b8ff167fbe9bb90c32e43a66fd +size 94254 diff --git a/RawContent/World/Coast1/geology_flow.png b/RawContent/World/Coast1/geology_flow.png new file mode 100644 index 0000000..e91927b --- /dev/null +++ b/RawContent/World/Coast1/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa7a2cfccdf995d59f5c31a134d35e18826b0924af4ba8002f243cf38064aee1 +size 647691 diff --git a/RawContent/World/Coast1/geology_height.png b/RawContent/World/Coast1/geology_height.png new file mode 100644 index 0000000..f4b0865 --- /dev/null +++ b/RawContent/World/Coast1/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff6f2933c7b4b8f7cda0bdcf276ead7d858048480c974cca46c4d0269295baf8 +size 1380312 diff --git a/RawContent/World/Coast1/map_basins.png b/RawContent/World/Coast1/map_basins.png new file mode 100644 index 0000000..fae7bee --- /dev/null +++ b/RawContent/World/Coast1/map_basins.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd4fa3f0ba1b09afb54f648b6b0f2d59c6a0044b045aa40b27ac766a1e0f8f1f +size 213003 diff --git a/RawContent/World/Coast1/map_coast.png b/RawContent/World/Coast1/map_coast.png new file mode 100644 index 0000000..b3fc9ab --- /dev/null +++ b/RawContent/World/Coast1/map_coast.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c9e312578283a034e9157348bf9e50064e8bf0daf78393b832f9424bee49316 +size 141890 diff --git a/RawContent/World/Coast1/map_erodibility.png b/RawContent/World/Coast1/map_erodibility.png new file mode 100644 index 0000000..c4ab6f5 --- /dev/null +++ b/RawContent/World/Coast1/map_erodibility.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f353c0150cda9703d2d0b4628db1e1a2567d13a0b6631d637f840d3819fc797 +size 63350 diff --git a/RawContent/World/Coast1/map_exposure.png b/RawContent/World/Coast1/map_exposure.png new file mode 100644 index 0000000..336401a --- /dev/null +++ b/RawContent/World/Coast1/map_exposure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3d68239ad4523816d1b79e57e5a5b76402cd773d60c73d1deab99e52e2a993d +size 478396 diff --git a/RawContent/World/Coast1/map_flow.png b/RawContent/World/Coast1/map_flow.png new file mode 100644 index 0000000..630464a --- /dev/null +++ b/RawContent/World/Coast1/map_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa91bab1efa28e0a23564fd65c4357cddff25f588b57aaef342f8a4de239ed83 +size 1229804 diff --git a/RawContent/World/Coast1/map_relief.png b/RawContent/World/Coast1/map_relief.png new file mode 100644 index 0000000..8cb450d --- /dev/null +++ b/RawContent/World/Coast1/map_relief.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dddcca423efc60a35a303815c16cfe6f0083cff7eec812a99a0826f024ecef53 +size 464620 diff --git a/RawContent/World/Coast1/map_slope.png b/RawContent/World/Coast1/map_slope.png new file mode 100644 index 0000000..11b02be --- /dev/null +++ b/RawContent/World/Coast1/map_slope.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab15c49204ceb10eb974986adae9a1147d455041a562922b1bde411460dd7c57 +size 1655150 diff --git a/RawContent/World/Coast1/map_uplift.png b/RawContent/World/Coast1/map_uplift.png new file mode 100644 index 0000000..1b7cac4 --- /dev/null +++ b/RawContent/World/Coast1/map_uplift.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:641f87c32fcbb766cbb09bdadc63cbd62b3f4bc5a1634e5c000b622934f9a1e8 +size 565730 diff --git a/RawContent/World/Coast1/meta.json b/RawContent/World/Coast1/meta.json new file mode 100644 index 0000000..fa90acb --- /dev/null +++ b/RawContent/World/Coast1/meta.json @@ -0,0 +1,348 @@ +{ + "coast": { + "shoreline_km": 95.68314510364547, + "sea_fraction": 0.36672091836734694, + "shelf_pct_of_sea": 84.66515320475118, + "surf_cut_m3": 23318455.27357932, + "river_load_m3": 4376956.9661199795, + "laid_m3": 27598214.608382087, + "unplaced_m3": 97197.57598722138, + "river_mouths": 18, + "planed_km2": 2.98605066316643, + "beach_km2": 3.4074943104974906, + "drowned_km2": 0, + "mean_cliff_m": 2.393927712637008, + "exposure_p10": 0, + "exposure_p50": 0.8436543345451355, + "exposure_p90": 1 + }, + "elapsed_s": 248.7209134, + "generated_at": "2026-09-17T13:25:10Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3, + "outline_octaves": 8, + "outline_gain": 0.62 + }, + "coast": { + "enabled": true, + "shelf_km": [ + 0.6, + 3 + ], + "steep_coast_m": 300, + "slope_km": 1.6, + "shelf_exponent": 0.7, + "roughness_m": 10, + "rough_wavelength_m": 1200, + "fetch_directions": 16, + "fetch_range_m": 1500, + "surf_reach_m": 110, + "platform_grade": 0.02, + "cut_fraction": 0.85, + "deposit_reach_m": 350, + "deposit_depth_m": 25, + "shelter_bias": 1.5, + "berm_m": 2, + "drift_m": 300, + "river_m3_per_km2": 120000, + "river_exponent": 0.6, + "river_channel_km2": 0.5 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2, + "critical_slope_deg": 35, + "slope_cap": 0.9, + "max_hillslope_substeps": 24 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.633279081632653, + "clip_fraction": 0, + "relief_m": 863.1369018554688, + "min_m": -187.73455810546875, + "max_m": 675.40234375, + "land_min_m": 1.401298464324817e-44, + "land_max_m": 675.40234375, + "land_relief_m": 675.40234375, + "slopes": { + "under_15_deg": 0.5588357327064268, + "under_30_deg": 0.7808015777935865, + "over_50_deg": 0.0018820086897883836, + "median_deg": 8.457059200496188 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.609918291790944, + "n": 1433 + }, + { + "log_area": 6.375, + "log_slope": -2.8405565405731465, + "n": 879 + }, + { + "log_area": 6.625, + "log_slope": -3.257876594346129, + "n": 972 + }, + { + "log_area": 6.875, + "log_slope": -3.4496352045671608, + "n": 671 + }, + { + "log_area": 7.125, + "log_slope": -2.905704514499717, + "n": 297 + } + ], + "exponent": -0.4802604437646369, + "raw_exponent": -0.8694341928787981, + "expected": -0.5, + "r2": 0.31728838433997253, + "raw_r2": 0.7882466843403201, + "channel_cells": 4258, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.10339354261498276, + "curve": [ + 1, + 0.3164392975660375, + 0.17627315551466416, + 0.1151674915225015, + 0.07342009157067964, + 0.04236533688036115, + 0.021737361497937147, + 0.009451937477995553, + 0.003472370485012033, + 0.0006082690756807896, + 8.056544048562486e-7 + ] + }, + "drainage_density_per_km": 0.47373370416996274, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.4380520243275404, + "median_deg": 0.8408936413711191, + "p90_deg": 2.770946115125579, + "median_relief_m": 8.318006753921509, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0, + "median_elev_m": 2.2237510681152344, + "cells": 543722 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.07089114239377647, + "median_deg": 7.051279677858782, + "p90_deg": 22.102961048897257, + "median_relief_m": 60.68475103378296, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.0061823802163833074, + "median_elev_m": 10.452544212341309, + "cells": 87992 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.4910568332786831, + "median_deg": 28.492466500808426, + "p90_deg": 36.03765884221438, + "median_relief_m": 161.6307830810547, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.3293727943456497, + "median_elev_m": 95.34249114990234, + "cells": 609513 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/Coast1/preview.png b/RawContent/World/Coast1/preview.png new file mode 100644 index 0000000..3d576c5 --- /dev/null +++ b/RawContent/World/Coast1/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e04dee4d6bc0783ae844c30f358dfce9e6e94a2de8e496e4421ca6c590df9f35 +size 1046189 diff --git a/RawContent/World/Coast1/preview_detail.png b/RawContent/World/Coast1/preview_detail.png new file mode 100644 index 0000000..ccba876 --- /dev/null +++ b/RawContent/World/Coast1/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9d770205fe79649b5876e7246dd00fa3b75f5a7afaf566737adc969cf25a808 +size 33152 diff --git a/RawContent/World/Coast1/thumb.png b/RawContent/World/Coast1/thumb.png new file mode 100644 index 0000000..79f523f --- /dev/null +++ b/RawContent/World/Coast1/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b43a2081478dee4cbd7a64e3d46df3de2e37f1cd77440521d7ce1639b9372e46 +size 92381 diff --git a/RawContent/World/Full/geology_flow.png b/RawContent/World/Full/geology_flow.png new file mode 100644 index 0000000..15bc2dd --- /dev/null +++ b/RawContent/World/Full/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4320dd342afb62e3421af8169b9e0376b54405ba46afa870960f3505ac3fa432 +size 365003 diff --git a/RawContent/World/Full/geology_height.png b/RawContent/World/Full/geology_height.png new file mode 100644 index 0000000..ff04b74 --- /dev/null +++ b/RawContent/World/Full/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e92b5fe116fe78746c20b8ff91d6e43c35893f254849683b1da9a6c6d5db10cb +size 807906 diff --git a/RawContent/World/Full/map_basins.png b/RawContent/World/Full/map_basins.png new file mode 100644 index 0000000..a84abe9 --- /dev/null +++ b/RawContent/World/Full/map_basins.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0530366abad82ce9575df6f28d5952bf88d238f78b8293a3c1e10e6b74d913c +size 119234 diff --git a/RawContent/World/Full/map_coast.png b/RawContent/World/Full/map_coast.png new file mode 100644 index 0000000..efd5ff4 --- /dev/null +++ b/RawContent/World/Full/map_coast.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe28a45f4ac39d3d37219f90dc27f463db5725ae0a9a725d10c61c1b748f7c34 +size 84061 diff --git a/RawContent/World/Full/map_erodibility.png b/RawContent/World/Full/map_erodibility.png new file mode 100644 index 0000000..009ddcc --- /dev/null +++ b/RawContent/World/Full/map_erodibility.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:977bd07c02bac7a06327969352b5c8b33c58f5489f8ddcd14f805ac3c22763ad +size 45934 diff --git a/RawContent/World/Full/map_exposure.png b/RawContent/World/Full/map_exposure.png new file mode 100644 index 0000000..253bf00 --- /dev/null +++ b/RawContent/World/Full/map_exposure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:360f149bbcfee7c7da5f8d16377c12425738046080434703c2ed17946fc9b8d2 +size 298640 diff --git a/RawContent/World/Full/map_flow.png b/RawContent/World/Full/map_flow.png new file mode 100644 index 0000000..8e10703 --- /dev/null +++ b/RawContent/World/Full/map_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0793bd4a603c1635a30517c330eccabe176cfd716f10515ffffdc9608d72a477 +size 714954 diff --git a/RawContent/World/Full/map_relief.png b/RawContent/World/Full/map_relief.png new file mode 100644 index 0000000..261a1ce --- /dev/null +++ b/RawContent/World/Full/map_relief.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2092080b6547a2072ee457e10ce3906706259c3094855b300f96ed1bb246862d +size 291511 diff --git a/RawContent/World/Full/map_slope.png b/RawContent/World/Full/map_slope.png new file mode 100644 index 0000000..16c30ff --- /dev/null +++ b/RawContent/World/Full/map_slope.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff2a75daed3ac938e501b2dae6f1087be06fc27fa466bf3cfc0d1ffa1086aeee +size 983409 diff --git a/RawContent/World/Full/map_uplift.png b/RawContent/World/Full/map_uplift.png new file mode 100644 index 0000000..db114ce --- /dev/null +++ b/RawContent/World/Full/map_uplift.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:516fd96c53e10fdabed036455054a744d0e2f95bc20039d733d90aa1bb7493ff +size 357258 diff --git a/RawContent/World/Full/meta.json b/RawContent/World/Full/meta.json new file mode 100644 index 0000000..2255f1b --- /dev/null +++ b/RawContent/World/Full/meta.json @@ -0,0 +1,348 @@ +{ + "coast": { + "shoreline_km": 95.088, + "sea_fraction": 0.3691652573143228, + "shelf_pct_of_sea": 86.48201053700711, + "surf_cut_m3": 21229055.73821889, + "river_load_m3": 3867095.3544031586, + "laid_m3": 25043181.48258968, + "unplaced_m3": 52969.50521802902, + "river_mouths": 16, + "planed_km2": 2.784376, + "beach_km2": 2.920596, + "drowned_km2": 0, + "mean_cliff_m": 2.8495444437451853, + "exposure_p10": 0, + "exposure_p50": 0.8970789909362793, + "exposure_p90": 1 + }, + "elapsed_s": 130.8260849, + "generated_at": "2026-09-17T13:20:51Z", + "geology_cell_m": 14, + "geology_size": 1021, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3, + "outline_octaves": 8, + "outline_gain": 0.62 + }, + "coast": { + "enabled": true, + "shelf_km": [ + 0.6, + 3 + ], + "steep_coast_m": 300, + "slope_km": 1.6, + "shelf_exponent": 0.7, + "roughness_m": 10, + "rough_wavelength_m": 1200, + "fetch_directions": 16, + "fetch_range_m": 1500, + "surf_reach_m": 110, + "platform_grade": 0.02, + "cut_fraction": 0.85, + "deposit_reach_m": 350, + "deposit_depth_m": 25, + "shelter_bias": 1.5, + "berm_m": 2, + "drift_m": 300, + "river_m3_per_km2": 120000, + "river_exponent": 0.6, + "river_channel_km2": 0.5 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2, + "critical_slope_deg": 35, + "slope_cap": 0.9, + "max_hillslope_substeps": 24 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": false, + "seed": 7, + "stats": { + "land_fraction": 0.6308347426856772, + "clip_fraction": 0, + "relief_m": 838.13037109375, + "min_m": -187.734619140625, + "max_m": 650.395751953125, + "land_min_m": 9.80908925027372e-45, + "land_max_m": 650.395751953125, + "land_relief_m": 650.395751953125, + "slopes": { + "under_15_deg": 0.5859721901193417, + "under_30_deg": 0.813112066763178, + "over_50_deg": 0.0016331918103186238, + "median_deg": 7.045213289848446 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.6286474359126237, + "n": 1121 + }, + { + "log_area": 6.375, + "log_slope": -2.9295225290498554, + "n": 635 + }, + { + "log_area": 6.625, + "log_slope": -3.1183610752814737, + "n": 686 + }, + { + "log_area": 6.875, + "log_slope": -3.722152330876201, + "n": 349 + }, + { + "log_area": 7.125, + "log_slope": -3.1991798528940785, + "n": 236 + } + ], + "exponent": -0.7734778543157154, + "raw_exponent": -1.1461329803301852, + "expected": -0.5, + "r2": 0.5783114701442373, + "raw_r2": 0.5339172800071676, + "channel_cells": 3031, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.09699817387618206, + "curve": [ + 1, + 0.28925286796997607, + 0.1620767995523169, + 0.10987244680721642, + 0.0692342550577244, + 0.039353231712509595, + 0.019318499774941933, + 0.008442719674943144, + 0.003010912276006361, + 0.0006128270945608971, + 0.0000015206627657082805 + ] + }, + "drainage_density_per_km": 0.4727088825822418, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.43596793226359776, + "median_deg": 0.7147685754394667, + "p90_deg": 2.368115159435977, + "median_relief_m": 7.330400824546814, + "relief_window_m": 504, + "near_talus_fraction": 0, + "median_elev_m": 1.9393647909164429, + "cells": 286696 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.07117766207223757, + "median_deg": 5.895298511703225, + "p90_deg": 19.228432401207176, + "median_relief_m": 52.51556858420372, + "relief_window_m": 504, + "near_talus_fraction": 0.002734633708633324, + "median_elev_m": 8.35466194152832, + "cells": 46807 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.49285440566416466, + "median_deg": 25.76738150555451, + "p90_deg": 35.797113550869035, + "median_relief_m": 155.17084074020386, + "relief_window_m": 504, + "near_talus_fraction": 0.28891871461409113, + "median_elev_m": 80.15531158447266, + "cells": 324105 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/Full/preview.png b/RawContent/World/Full/preview.png new file mode 100644 index 0000000..9387e63 --- /dev/null +++ b/RawContent/World/Full/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4789bbad6ea00bb4cc959b18f92ddcd3410316ec8ed1a834cff63ba2ca133ed +size 648904 diff --git a/RawContent/World/Full/preview_detail.png b/RawContent/World/Full/preview_detail.png new file mode 100644 index 0000000..ea4585c --- /dev/null +++ b/RawContent/World/Full/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6a4795fc66b29df630eb7b69ba9698086e03974b4cd8a5a9eaaebee2eefb686 +size 47090 diff --git a/RawContent/World/Full/thumb.png b/RawContent/World/Full/thumb.png new file mode 100644 index 0000000..aa1b63d --- /dev/null +++ b/RawContent/World/Full/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:671e3b22bcae00c9674c36af3432c02a3675661ea7725e9d22cbe67bb53ce443 +size 90212 diff --git a/RawContent/World/Heightmaps/L_World_Base_Layer.png b/RawContent/World/Heightmaps/L_World_Base_Layer.png index caeb1ae..66f8875 100644 --- a/RawContent/World/Heightmaps/L_World_Base_Layer.png +++ b/RawContent/World/Heightmaps/L_World_Base_Layer.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3d46cd1c27cea87ab55644cb048ac93c9c86e1760048080e3a79767ac7f42ed2 -size 2652713 +oid sha256:7560e607525b65058f5c23ed761eeb71ade973b83ee7d44e4e7eb2913a2f0a38 +size 5016099 diff --git a/RawContent/World/Heightmaps/L_World_Curvature.png b/RawContent/World/Heightmaps/L_World_Curvature.png new file mode 100644 index 0000000..45b3496 --- /dev/null +++ b/RawContent/World/Heightmaps/L_World_Curvature.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57d1d86449cb081901a7e3ae47a35f2ea90b5011adb610c2d119e6e6956ea7a4 +size 10395786 diff --git a/RawContent/World/Heightmaps/L_World_Deposit.png b/RawContent/World/Heightmaps/L_World_Deposit.png new file mode 100644 index 0000000..4f7dd4d --- /dev/null +++ b/RawContent/World/Heightmaps/L_World_Deposit.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7237f785a0ca34e921ecb5c10595724ecdaafd6381150666ff017807eab94d4a +size 4465945 diff --git a/RawContent/World/Heightmaps/L_World_Flow.png b/RawContent/World/Heightmaps/L_World_Flow.png new file mode 100644 index 0000000..4fe5f5c --- /dev/null +++ b/RawContent/World/Heightmaps/L_World_Flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a01f5b38b90bff863904c9f629334836082847a19e2ef6ee17ad37d2315c9c77 +size 9416098 diff --git a/RawContent/World/Heightmaps/L_World_Height.png b/RawContent/World/Heightmaps/L_World_Height.png index 2130a6b..e304f85 100644 --- a/RawContent/World/Heightmaps/L_World_Height.png +++ b/RawContent/World/Heightmaps/L_World_Height.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cf6c5c1a0bbcc91421baf2fa290f016c31181b83f28bfc655cb0c311856c28c4 -size 23330970 +oid sha256:6cc21ed6e98fbe84a93d19e0d45086e1a3ca5af905df1809166e8784e9d97049 +size 22384422 diff --git a/RawContent/World/Heightmaps/L_World_Layer_02.png b/RawContent/World/Heightmaps/L_World_Layer_02.png index 8719bda..4cc7726 100644 --- a/RawContent/World/Heightmaps/L_World_Layer_02.png +++ b/RawContent/World/Heightmaps/L_World_Layer_02.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:99cd835a67859952697929cc2095659d282f30d20037ddbf4728387806bb2c82 -size 3634126 +oid sha256:4097afb7dc71d50275878bbb70abce7ca22af51686372face2cd8001d0e0928c +size 4754840 diff --git a/RawContent/World/Heightmaps/L_World_Layer_03.png b/RawContent/World/Heightmaps/L_World_Layer_03.png index 3d60732..8dc583f 100644 --- a/RawContent/World/Heightmaps/L_World_Layer_03.png +++ b/RawContent/World/Heightmaps/L_World_Layer_03.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3197cf0a0b693e7ee5bdaa7052bff0fdf78f23bc985f9769cde8e6fb47e1a859 -size 1236552 +oid sha256:cb42b33db35027769b49c89a92392ebe0be33d2477abb3fd99ac67688182aa40 +size 394919 diff --git a/RawContent/World/Heightmaps/L_World_Wear.png b/RawContent/World/Heightmaps/L_World_Wear.png new file mode 100644 index 0000000..452deec --- /dev/null +++ b/RawContent/World/Heightmaps/L_World_Wear.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc000bd8e11bd9ff7d6da1a74ffc3093193e972c16079179c9141011cf33ec2a +size 6874454 diff --git a/RawContent/World/P1/geology_flow.png b/RawContent/World/P1/geology_flow.png new file mode 100644 index 0000000..cd13ad1 --- /dev/null +++ b/RawContent/World/P1/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fc2de45cc83b89811bc22b8e8cb182ece5077cc9cb7d954129139f0e563d60c +size 619634 diff --git a/RawContent/World/P1/geology_height.png b/RawContent/World/P1/geology_height.png new file mode 100644 index 0000000..a8505ac --- /dev/null +++ b/RawContent/World/P1/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4ec436c964e516f79391ce412aee8446d4d846e0b9db2ffbe31e722f4c9ec98 +size 1830603 diff --git a/RawContent/World/P1/meta.json b/RawContent/World/P1/meta.json new file mode 100644 index 0000000..4253497 --- /dev/null +++ b/RawContent/World/P1/meta.json @@ -0,0 +1,279 @@ +{ + "elapsed_s": 209.8196208, + "generated_at": "2026-09-17T10:23:02Z", + "geology_cell_m": 8.930581613508442, + "geology_size": 1600, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.107, + "fill_every": 1, + "critical_area_m2": 160000 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.617614453125, + "clip_fraction": 0.03663515625, + "relief_m": 3238.5048828125, + "min_m": -177.8711700439453, + "max_m": 3060.6337890625, + "land_min_m": 0.008733409456908703, + "land_max_m": 3060.6337890625, + "land_relief_m": 3060.625055653043, + "slopes": { + "under_15_deg": 0.09792466350809219, + "under_30_deg": 0.26714367845534703, + "over_50_deg": 0.3816347298988737, + "median_deg": 43.56648702060375 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.2442436259817562, + "n": 362 + }, + { + "log_area": 5.625, + "log_slope": -1.1397594158918618, + "n": 508 + }, + { + "log_area": 5.875, + "log_slope": -1.2182895873396853, + "n": 722 + }, + { + "log_area": 6.125, + "log_slope": -1.2935003772149456, + "n": 980 + }, + { + "log_area": 6.375, + "log_slope": -1.5072692651324375, + "n": 1108 + }, + { + "log_area": 6.625, + "log_slope": -1.6194889003953854, + "n": 624 + }, + { + "log_area": 6.875, + "log_slope": -1.8098037175751023, + "n": 774 + }, + { + "log_area": 7.125, + "log_slope": -1.7929654410029519, + "n": 309 + }, + { + "log_area": 7.375, + "log_slope": -1.9168190445887232, + "n": 530 + } + ], + "exponent": -0.41059576889415944, + "raw_exponent": -0.44872732564443274, + "expected": -0.5, + "r2": 0.9204248087012106, + "raw_r2": 0.8269627514950428, + "channel_cells": 5917, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.5018052759709398, + "curve": [ + 1, + 0.9715886415283604, + 0.8773797619747858, + 0.7083378397096186, + 0.5487324275042644, + 0.46427945731212517, + 0.3816638236966453, + 0.29451651484131547, + 0.19086796285860474, + 0.08192876699852569, + 6.324738646146244e-7 + ] + }, + "drainage_density_per_km": 0.4206775010077461 + } +} \ No newline at end of file diff --git a/RawContent/World/P1/preview.png b/RawContent/World/P1/preview.png new file mode 100644 index 0000000..1460dc1 --- /dev/null +++ b/RawContent/World/P1/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4309f703d1cec5311767e18a07148044a75eb8cccf35cd49f4b779503845016 +size 772385 diff --git a/RawContent/World/P1/preview_detail.png b/RawContent/World/P1/preview_detail.png new file mode 100644 index 0000000..b94078c --- /dev/null +++ b/RawContent/World/P1/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87d246c3d2b2184dd51c3c5dcc87b11ba99ad253e77b9bc20334b56455cf171c +size 102124 diff --git a/RawContent/World/P1/thumb.png b/RawContent/World/P1/thumb.png new file mode 100644 index 0000000..3b18f1b --- /dev/null +++ b/RawContent/World/P1/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ec078babfc7fd55c0a8c1e9f327783e1711e9feabf35a89b2e4a2e16cbc7b0d +size 57409 diff --git a/RawContent/World/P2/geology_flow.png b/RawContent/World/P2/geology_flow.png new file mode 100644 index 0000000..ca18f69 --- /dev/null +++ b/RawContent/World/P2/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f522e6208a53760753cbc22c86fe0b27e2c3d09fec2c1c80503a85c4278858a6 +size 507059 diff --git a/RawContent/World/P2/geology_height.png b/RawContent/World/P2/geology_height.png new file mode 100644 index 0000000..ef9b85b --- /dev/null +++ b/RawContent/World/P2/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba770060766b1e7879e737363a5f6cf5aca0d1077c116152b79cbbc5dd09e25e +size 1594573 diff --git a/RawContent/World/P2/meta.json b/RawContent/World/P2/meta.json new file mode 100644 index 0000000..678ae74 --- /dev/null +++ b/RawContent/World/P2/meta.json @@ -0,0 +1,279 @@ +{ + "elapsed_s": 253.2072127, + "generated_at": "2026-09-17T10:27:16Z", + "geology_cell_m": 8.930581613508442, + "geology_size": 1600, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.375, + "fill_every": 1, + "critical_area_m2": 560000 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.617614453125, + "clip_fraction": 0.007361328125, + "relief_m": 3058.5068359375, + "min_m": -177.8711700439453, + "max_m": 2880.6357421875, + "land_min_m": 0.0008877395885065198, + "land_max_m": 2880.6357421875, + "land_relief_m": 2880.6348544479115, + "slopes": { + "under_15_deg": 0.09471359369752444, + "under_30_deg": 0.32915141614060656, + "over_50_deg": 0.11941106563624027, + "median_deg": 37.18663304322763 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.562365139192597, + "n": 778 + }, + { + "log_area": 5.625, + "log_slope": -1.5976423989852764, + "n": 864 + }, + { + "log_area": 5.875, + "log_slope": -1.5212916824278784, + "n": 365 + }, + { + "log_area": 6.125, + "log_slope": -1.542652811095598, + "n": 271 + }, + { + "log_area": 6.375, + "log_slope": -1.5568292802629402, + "n": 267 + }, + { + "log_area": 6.625, + "log_slope": -1.7496602985646272, + "n": 369 + }, + { + "log_area": 6.875, + "log_slope": -1.7197825230362576, + "n": 273 + }, + { + "log_area": 7.125, + "log_slope": -1.57799887120597, + "n": 673 + }, + { + "log_area": 7.375, + "log_slope": -1.2201404233384785, + "n": 142 + } + ], + "exponent": 0.05492268520457839, + "raw_exponent": -0.2153323233003448, + "expected": -0.5, + "r2": 0.06265093187137605, + "raw_r2": 0.792021382642758, + "channel_cells": 4002, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.5174111082902108, + "curve": [ + 1, + 0.9628794764128359, + 0.8951459528313641, + 0.7892451614168173, + 0.6186201570685596, + 0.48772779336825856, + 0.38211667498369795, + 0.27760036885875783, + 0.17586568279032289, + 0.08178266553580338, + 6.324738646146244e-7 + ] + }, + "drainage_density_per_km": 0.28484257728167584 + } +} \ No newline at end of file diff --git a/RawContent/World/P2/preview.png b/RawContent/World/P2/preview.png new file mode 100644 index 0000000..d46b2e6 --- /dev/null +++ b/RawContent/World/P2/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51bf3de0f6fac466e8334250f387bb1a1dfadef45e8e4c4a4291d3160c3acaa2 +size 610259 diff --git a/RawContent/World/P2/preview_detail.png b/RawContent/World/P2/preview_detail.png new file mode 100644 index 0000000..c680ee1 --- /dev/null +++ b/RawContent/World/P2/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b0bdf71dccb7bb5ed2955a819a186bf9168caca84a022b7e7ab5a57dfe9bb56 +size 70117 diff --git a/RawContent/World/P2/thumb.png b/RawContent/World/P2/thumb.png new file mode 100644 index 0000000..6bce38f --- /dev/null +++ b/RawContent/World/P2/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b9380e1618f2fcf9455fe72d7328ece41b8b7cfaa038e6c5d3a7fd9e91d4811 +size 45171 diff --git a/RawContent/World/Preview0/geology_flow.png b/RawContent/World/Preview0/geology_flow.png new file mode 100644 index 0000000..0311c97 --- /dev/null +++ b/RawContent/World/Preview0/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d09abf5751721109f093425c59564d80244599a714388eaf39abde9bfcfe7703 +size 467020 diff --git a/RawContent/World/Preview0/geology_height.png b/RawContent/World/Preview0/geology_height.png new file mode 100644 index 0000000..09a9080 --- /dev/null +++ b/RawContent/World/Preview0/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab688190b5b5fd6ca131bd518602af36c2920da3bef798273056bd989f246b18 +size 1270418 diff --git a/RawContent/World/Preview0/meta.json b/RawContent/World/Preview0/meta.json new file mode 100644 index 0000000..9fcbe64 --- /dev/null +++ b/RawContent/World/Preview0/meta.json @@ -0,0 +1,264 @@ +{ + "elapsed_s": 125.0101343, + "generated_at": "2026-09-17T10:19:14Z", + "geology_cell_m": 11.909924937447872, + "geology_size": 1200, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6176034722222222, + "clip_fraction": 0, + "relief_m": 1714.7410888671875, + "min_m": -177.8711700439453, + "max_m": 1536.869873046875, + "land_min_m": 0.003567965468391776, + "land_max_m": 1536.869873046875, + "land_relief_m": 1536.8663050814066, + "slopes": { + "under_15_deg": 0.2778076997893965, + "under_30_deg": 0.6600861978818214, + "over_50_deg": 0.11538215031444343, + "median_deg": 24.058374366102658 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.6967405668584674, + "n": 2070 + }, + { + "log_area": 6.375, + "log_slope": -2.982413766476643, + "n": 1159 + }, + { + "log_area": 6.625, + "log_slope": -4.633877767489028, + "n": 911 + }, + { + "log_area": 6.875, + "log_slope": -4.675470060234328, + "n": 754 + }, + { + "log_area": 7.125, + "log_slope": -4.6761101700082115, + "n": 412 + }, + { + "log_area": 7.375, + "log_slope": -4.591041720119833, + "n": 178 + } + ], + "exponent": -1.6679071165310666, + "raw_exponent": -1.914017079334302, + "expected": -0.5, + "r2": 0.6934829185285345, + "raw_r2": 0.706922614879083, + "channel_cells": 5484, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.0965167710873752, + "curve": [ + 1, + 0.2947515542267434, + 0.12742916447873665, + 0.060377871904055636, + 0.03265872003004444, + 0.019111732289573635, + 0.010906854339522543, + 0.00568168401831004, + 0.0025231939317410523, + 0.0008882901987858904, + 0.0000011244179731750847 + ] + }, + "drainage_density_per_km": 0.5189726745424492 + } +} \ No newline at end of file diff --git a/RawContent/World/Preview0/preview.png b/RawContent/World/Preview0/preview.png new file mode 100644 index 0000000..513b762 --- /dev/null +++ b/RawContent/World/Preview0/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4de03e28812b9d499a4b1b68a42d1d236727268722e4b0e76b48a122d3a17e1a +size 1056658 diff --git a/RawContent/World/Preview0/preview_detail.png b/RawContent/World/Preview0/preview_detail.png new file mode 100644 index 0000000..a8bb839 --- /dev/null +++ b/RawContent/World/Preview0/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8a755908c86175d09d8658fa76c551d2008929d1efff05d93099f7d4d77a046 +size 101909 diff --git a/RawContent/World/Preview0/thumb.png b/RawContent/World/Preview0/thumb.png new file mode 100644 index 0000000..8ceaf6c --- /dev/null +++ b/RawContent/World/Preview0/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6760503d0516a570718716720f1973f99a710070f4a6b9407e3a3437fca2553e +size 111101 diff --git a/RawContent/World/PreviewA/geology_flow.png b/RawContent/World/PreviewA/geology_flow.png new file mode 100644 index 0000000..ef88f89 --- /dev/null +++ b/RawContent/World/PreviewA/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90b29fc6cbe3ea2f6cae9d385516da23086262b82b59c3ce6126b18ffc37572f +size 428054 diff --git a/RawContent/World/PreviewA/geology_height.png b/RawContent/World/PreviewA/geology_height.png new file mode 100644 index 0000000..409c5e8 --- /dev/null +++ b/RawContent/World/PreviewA/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55975e0d13f62f97afedc281e6c25a00e9a097d7c1ee5106115811c40237fc37 +size 1280083 diff --git a/RawContent/World/PreviewA/meta.json b/RawContent/World/PreviewA/meta.json new file mode 100644 index 0000000..b272bc4 --- /dev/null +++ b/RawContent/World/PreviewA/meta.json @@ -0,0 +1,279 @@ +{ + "elapsed_s": 151.1703849, + "generated_at": "2026-09-17T09:49:14Z", + "geology_cell_m": 11.909924937447872, + "geology_size": 1200, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1.5, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.3, + "intraplate_swell_mm_yr": 0.8, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.0001, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.15, + "fill_every": 1, + "critical_area_m2": 10000 + }, + "thermal": { + "coarse_passes": 3, + "every": 2, + "fine_passes": 24, + "talus_deg": 33 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6176034722222222, + "clip_fraction": 0, + "relief_m": 2870.443115234375, + "min_m": -177.8711700439453, + "max_m": 2692.572021484375, + "land_min_m": 0.007662822026759386, + "land_max_m": 2692.572021484375, + "land_relief_m": 2692.5643586623482, + "slopes": { + "under_15_deg": 0.06100079946117891, + "under_30_deg": 0.24816579318130452, + "over_50_deg": 0.30072446250009843, + "median_deg": 40.29165819822567 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.1075694011208599, + "n": 1421 + }, + { + "log_area": 5.625, + "log_slope": -1.2302166636729257, + "n": 1904 + }, + { + "log_area": 5.875, + "log_slope": -1.3087076397851436, + "n": 2041 + }, + { + "log_area": 6.125, + "log_slope": -1.4525689434177083, + "n": 1618 + }, + { + "log_area": 6.375, + "log_slope": -1.6216791237543478, + "n": 1138 + }, + { + "log_area": 6.625, + "log_slope": -1.8884080829971168, + "n": 869 + }, + { + "log_area": 6.875, + "log_slope": -2.394181056967823, + "n": 510 + }, + { + "log_area": 7.125, + "log_slope": -4.3408623276057865, + "n": 386 + }, + { + "log_area": 7.375, + "log_slope": -2.1191911426372205, + "n": 318 + } + ], + "exponent": -1.0656806621205928, + "raw_exponent": -1.1672953807001922, + "expected": -0.5, + "r2": 0.5364130840549429, + "raw_r2": 0.4928987485774514, + "channel_cells": 10205, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.30433441732834104, + "curve": [ + 1, + 0.8580568483238864, + 0.6072048206047345, + 0.40834138229199113, + 0.2700559622825235, + 0.17014355444263163, + 0.116413241595819, + 0.06831401395852477, + 0.03743074990807882, + 0.010532423154464676, + 0.0000011244179731750847 + ] + }, + "drainage_density_per_km": 0.9659103935317077 + } +} \ No newline at end of file diff --git a/RawContent/World/PreviewA/preview.png b/RawContent/World/PreviewA/preview.png new file mode 100644 index 0000000..17343f6 --- /dev/null +++ b/RawContent/World/PreviewA/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21da5c72a445a351cb4b3dec258026f58397fbc2599edc0b4364466629a3baad +size 713760 diff --git a/RawContent/World/PreviewA/thumb.png b/RawContent/World/PreviewA/thumb.png new file mode 100644 index 0000000..b87830a --- /dev/null +++ b/RawContent/World/PreviewA/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ada97e1e0721380f8cda6f96ac74e5f003b86e43e5d34f3d367c5596253a55f4 +size 84805 diff --git a/RawContent/World/PreviewB/geology_flow.png b/RawContent/World/PreviewB/geology_flow.png new file mode 100644 index 0000000..d0040f0 --- /dev/null +++ b/RawContent/World/PreviewB/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54db263679df9cfc5f9ea9c78a16a90139799dedebe6e7655209b97b123da127 +size 458445 diff --git a/RawContent/World/PreviewB/geology_height.png b/RawContent/World/PreviewB/geology_height.png new file mode 100644 index 0000000..45c6ac9 --- /dev/null +++ b/RawContent/World/PreviewB/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d650ed376f24399ff38fe259295b811077516f4056e6bbbff1c084835182f23 +size 1301649 diff --git a/RawContent/World/PreviewB/meta.json b/RawContent/World/PreviewB/meta.json new file mode 100644 index 0000000..71d4e96 --- /dev/null +++ b/RawContent/World/PreviewB/meta.json @@ -0,0 +1,279 @@ +{ + "elapsed_s": 153.0049741, + "generated_at": "2026-09-17T09:51:47Z", + "geology_cell_m": 11.909924937447872, + "geology_size": 1200, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1.5, + 2.5 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.15, + "intraplate_swell_mm_yr": 0.45, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00007, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.08, + "fill_every": 1, + "critical_area_m2": 5000 + }, + "thermal": { + "coarse_passes": 3, + "every": 2, + "fine_passes": 24, + "talus_deg": 33 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6176034722222222, + "clip_fraction": 0.0065270833333333335, + "relief_m": 3418.75830078125, + "min_m": -177.8711700439453, + "max_m": 3240.88720703125, + "land_min_m": 0.01520787738263607, + "land_max_m": 3240.88720703125, + "land_relief_m": 3240.8719991538674, + "slopes": { + "under_15_deg": 0.12055109973699864, + "under_30_deg": 0.3507768041567484, + "over_50_deg": 0.43352946930844927, + "median_deg": 44.367885042453544 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.3518476574002443, + "n": 1965 + }, + { + "log_area": 5.625, + "log_slope": -1.413372062575685, + "n": 2214 + }, + { + "log_area": 5.875, + "log_slope": -1.4191360449846433, + "n": 2650 + }, + { + "log_area": 6.125, + "log_slope": -1.5823437653162533, + "n": 1667 + }, + { + "log_area": 6.375, + "log_slope": -1.9276829198161785, + "n": 866 + }, + { + "log_area": 6.625, + "log_slope": -2.2854692106355103, + "n": 811 + }, + { + "log_area": 6.875, + "log_slope": -2.346076580713514, + "n": 742 + }, + { + "log_area": 7.125, + "log_slope": -4.227976569368733, + "n": 317 + }, + { + "log_area": 7.375, + "log_slope": -2.2578170132675233, + "n": 376 + } + ], + "exponent": -0.9749798307083472, + "raw_exponent": -1.174810753508899, + "expected": -0.5, + "r2": 0.5535497210227134, + "raw_r2": 0.5465402577469349, + "channel_cells": 11608, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.2333773226633848, + "curve": [ + 1, + 0.6014804087034449, + 0.4235480109608264, + 0.31914580215416, + 0.2171149908528598, + 0.12782158635136487, + 0.08248617809206504, + 0.04591898118736293, + 0.023220355563451478, + 0.00533199002866136, + 0.0000011244179731750847 + ] + }, + "drainage_density_per_km": 1.0991231357146067 + } +} \ No newline at end of file diff --git a/RawContent/World/PreviewB/preview.png b/RawContent/World/PreviewB/preview.png new file mode 100644 index 0000000..5cae1ac --- /dev/null +++ b/RawContent/World/PreviewB/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:699c8d686c7508af2f621aca0546a2e9f62e96a753cecd4635212c2a92f92215 +size 793151 diff --git a/RawContent/World/PreviewB/thumb.png b/RawContent/World/PreviewB/thumb.png new file mode 100644 index 0000000..26f5e82 --- /dev/null +++ b/RawContent/World/PreviewB/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f143e72877c88161df4153c65e429dfb6579daa9576a077e8644f3c626f6c51b +size 95185 diff --git a/RawContent/World/PreviewC/geology_flow.png b/RawContent/World/PreviewC/geology_flow.png new file mode 100644 index 0000000..082cfe6 --- /dev/null +++ b/RawContent/World/PreviewC/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3baeaef0dfc61e015c912b7f1f6d79a59cc738ce286a11db31d7e337c0c5b614 +size 471001 diff --git a/RawContent/World/PreviewC/geology_height.png b/RawContent/World/PreviewC/geology_height.png new file mode 100644 index 0000000..fb0cd4a --- /dev/null +++ b/RawContent/World/PreviewC/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76709569f7cf0621ef31aab29ef76b0a79687945fcd145fefc96884de51abd6f +size 1286454 diff --git a/RawContent/World/PreviewC/meta.json b/RawContent/World/PreviewC/meta.json new file mode 100644 index 0000000..069de30 --- /dev/null +++ b/RawContent/World/PreviewC/meta.json @@ -0,0 +1,279 @@ +{ + "elapsed_s": 129.3610703, + "generated_at": "2026-09-17T09:54:10Z", + "geology_cell_m": 11.909924937447872, + "geology_size": 1200, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1.5, + 5 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.15, + "intraplate_swell_mm_yr": 0.7, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 1 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6176034722222222, + "clip_fraction": 0.00386875, + "relief_m": 7024.34765625, + "min_m": -177.8711700439453, + "max_m": 6846.4765625, + "land_min_m": 0.0012852284125983715, + "land_max_m": 6846.4765625, + "land_relief_m": 6846.475277271587, + "slopes": { + "under_15_deg": 0.28811748818517813, + "under_30_deg": 0.5017096775281695, + "over_50_deg": 0.3303528760925126, + "median_deg": 29.735477030937716 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -2.22904452343192, + "n": 2525 + }, + { + "log_area": 5.625, + "log_slope": -2.363269342053484, + "n": 2832 + }, + { + "log_area": 5.875, + "log_slope": -2.4908196778098266, + "n": 2353 + }, + { + "log_area": 6.125, + "log_slope": -2.652319520125809, + "n": 1919 + }, + { + "log_area": 6.375, + "log_slope": -2.804077058776769, + "n": 1127 + }, + { + "log_area": 6.625, + "log_slope": -3.5537082272830616, + "n": 818 + }, + { + "log_area": 6.875, + "log_slope": -2.8828464245903755, + "n": 727 + }, + { + "log_area": 7.125, + "log_slope": -4.520522696072941, + "n": 478 + }, + { + "log_area": 7.375, + "log_slope": -4.520013411677176, + "n": 314 + } + ], + "exponent": -1.154738521050516, + "raw_exponent": -1.5213406530601585, + "expected": -0.5, + "r2": 0.8005338660495536, + "raw_r2": 0.8237708221461683, + "channel_cells": 13093, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.04312440309217298, + "curve": [ + 1, + 0.12103347504747852, + 0.036662772432419666, + 0.011961558398334016, + 0.006421551044640483, + 0.005680559600336865, + 0.005284764473789227, + 0.00492157746846289, + 0.004408842872708041, + 0.0034946910605397896, + 0.000003373253919414232 + ] + }, + "drainage_density_per_km": 1.2390389995806994 + } +} \ No newline at end of file diff --git a/RawContent/World/PreviewC/preview.png b/RawContent/World/PreviewC/preview.png new file mode 100644 index 0000000..ba76c74 --- /dev/null +++ b/RawContent/World/PreviewC/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8466355ece68171650eedc30b891dbeebb4f0cd596f2b60fbc24e4f9c822f48b +size 956913 diff --git a/RawContent/World/PreviewC/thumb.png b/RawContent/World/PreviewC/thumb.png new file mode 100644 index 0000000..d6307ec --- /dev/null +++ b/RawContent/World/PreviewC/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:548f3639753bcbe4a2ec29c439c48007fc3a83b9fbece37aaa83612c306b9eb5 +size 112979 diff --git a/RawContent/World/PreviewD/geology_flow.png b/RawContent/World/PreviewD/geology_flow.png new file mode 100644 index 0000000..890838f --- /dev/null +++ b/RawContent/World/PreviewD/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f72efb0ffd67e09142172c3d2219d129cd155d7cb7cc990b70a7ae14826ffc2d +size 467930 diff --git a/RawContent/World/PreviewD/geology_height.png b/RawContent/World/PreviewD/geology_height.png new file mode 100644 index 0000000..83e3549 --- /dev/null +++ b/RawContent/World/PreviewD/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:309eff0fad21bd058b85b8296e0393bee77894f3477645a9b5475d4c48ac9058 +size 1318012 diff --git a/RawContent/World/PreviewD/meta.json b/RawContent/World/PreviewD/meta.json new file mode 100644 index 0000000..6570752 --- /dev/null +++ b/RawContent/World/PreviewD/meta.json @@ -0,0 +1,279 @@ +{ + "elapsed_s": 129.0275945, + "generated_at": "2026-09-17T09:56:40Z", + "geology_cell_m": 11.909924937447872, + "geology_size": 1200, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1.5, + 4 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 1 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6176034722222222, + "clip_fraction": 0.0003597222222222222, + "relief_m": 3281.4599609375, + "min_m": -177.8711700439453, + "max_m": 3103.5888671875, + "land_min_m": 0.0025680908001959324, + "land_max_m": 3103.5888671875, + "land_relief_m": 3103.5862990967, + "slopes": { + "under_15_deg": 0.22531649554899144, + "under_30_deg": 0.48259232314873013, + "over_50_deg": 0.25329876122871897, + "median_deg": 31.187759611533416 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -2.2590881656837425, + "n": 2669 + }, + { + "log_area": 5.625, + "log_slope": -2.338868342962624, + "n": 2639 + }, + { + "log_area": 5.875, + "log_slope": -2.492450478083006, + "n": 2569 + }, + { + "log_area": 6.125, + "log_slope": -2.672862176401211, + "n": 1955 + }, + { + "log_area": 6.375, + "log_slope": -2.909663303800979, + "n": 1260 + }, + { + "log_area": 6.625, + "log_slope": -2.956289483406319, + "n": 688 + }, + { + "log_area": 6.875, + "log_slope": -4.652429531142932, + "n": 805 + }, + { + "log_area": 7.125, + "log_slope": -4.667150576990804, + "n": 420 + }, + { + "log_area": 7.375, + "log_slope": -4.6235217597379075, + "n": 233 + } + ], + "exponent": -1.403064432761743, + "raw_exponent": -1.7529160570261377, + "expected": -0.5, + "r2": 0.8416350468285978, + "raw_r2": 0.8548065565046015, + "channel_cells": 13238, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.07954535949862045, + "curve": [ + 1, + 0.20091774994968226, + 0.10991185687508498, + 0.055628330385484204, + 0.029003237199344722, + 0.015134665918553947, + 0.007782096792147919, + 0.0038241455266717628, + 0.001805815264873556, + 0.0005925682718482816, + 0.0000011244179731750847 + ] + }, + "drainage_density_per_km": 1.2518787819597739 + } +} \ No newline at end of file diff --git a/RawContent/World/PreviewD/preview.png b/RawContent/World/PreviewD/preview.png new file mode 100644 index 0000000..3d8f89a --- /dev/null +++ b/RawContent/World/PreviewD/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5846ecfb1820125eebb29b8cf7d8389706afa9ab4f0ba23becf81d2519fdf3ee +size 1060271 diff --git a/RawContent/World/PreviewD/thumb.png b/RawContent/World/PreviewD/thumb.png new file mode 100644 index 0000000..7518a79 --- /dev/null +++ b/RawContent/World/PreviewD/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd52f1f1ce966a607c10962f68a83aa37ee0578489d007892d5547f65e5244ad +size 115405 diff --git a/RawContent/World/R1/geology_flow.png b/RawContent/World/R1/geology_flow.png new file mode 100644 index 0000000..4f2ca04 --- /dev/null +++ b/RawContent/World/R1/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e305ec0da3dc70be32e2d1bc8c6f42a4e21cf30c3b70feb75f8c97c935f25618 +size 786377 diff --git a/RawContent/World/R1/geology_height.png b/RawContent/World/R1/geology_height.png new file mode 100644 index 0000000..faaacde --- /dev/null +++ b/RawContent/World/R1/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd626ffe91080614f21c463af697d29339327d43be5d877d30add1a40e1f486a +size 2114669 diff --git a/RawContent/World/R1/meta.json b/RawContent/World/R1/meta.json new file mode 100644 index 0000000..5d5aa47 --- /dev/null +++ b/RawContent/World/R1/meta.json @@ -0,0 +1,279 @@ +{ + "elapsed_s": 247.412629, + "generated_at": "2026-09-17T10:51:47Z", + "geology_cell_m": 8.930581613508442, + "geology_size": 1600, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0 + }, + "thermal": { + "coarse_passes": 2, + "every": 2, + "fine_passes": 24, + "talus_deg": 28 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.617614453125, + "clip_fraction": 0, + "relief_m": 2113.1298828125, + "min_m": -177.8711700439453, + "max_m": 1935.2586669921875, + "land_min_m": 0.002822849666699767, + "land_max_m": 1935.2586669921875, + "land_relief_m": 1935.2558441425208, + "slopes": { + "under_15_deg": 0.2272680987139909, + "under_30_deg": 0.5760964092561285, + "over_50_deg": 0.13009481415704205, + "median_deg": 27.466516124408994 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -2.128236933976885, + "n": 3608 + }, + { + "log_area": 5.625, + "log_slope": -2.249911119875769, + "n": 3271 + }, + { + "log_area": 5.875, + "log_slope": -2.4162875742833805, + "n": 3154 + }, + { + "log_area": 6.125, + "log_slope": -2.6199854819949073, + "n": 2359 + }, + { + "log_area": 6.375, + "log_slope": -2.884274580281283, + "n": 1360 + }, + { + "log_area": 6.625, + "log_slope": -3.842777709303766, + "n": 1563 + }, + { + "log_area": 6.875, + "log_slope": -4.560595558543936, + "n": 712 + }, + { + "log_area": 7.125, + "log_slope": -4.550316443604712, + "n": 583 + }, + { + "log_area": 7.375, + "log_slope": -4.493726359514012, + "n": 377 + } + ], + "exponent": -1.4583054579443544, + "raw_exponent": -1.701621738666479, + "expected": -0.5, + "r2": 0.9100031835786189, + "raw_r2": 0.9288129847567195, + "channel_cells": 16987, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.09665341091812901, + "curve": [ + 1, + 0.2947992306587911, + 0.1268881716635264, + 0.06063906424226784, + 0.032690676639514527, + 0.01914624882913274, + 0.01074699590726158, + 0.00565937614042944, + 0.0028910380350808396, + 0.0011548972767573273, + 6.324738646146244e-7 + ] + }, + "drainage_density_per_km": 1.205517242786844 + } +} \ No newline at end of file diff --git a/RawContent/World/R1/preview.png b/RawContent/World/R1/preview.png new file mode 100644 index 0000000..c1ecc9c --- /dev/null +++ b/RawContent/World/R1/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c46a48b5408ddf7c35b8ca52335281192ec82824f6774343aacb2fd22fe0e6a +size 1599990 diff --git a/RawContent/World/R1/preview_detail.png b/RawContent/World/R1/preview_detail.png new file mode 100644 index 0000000..5714fb0 --- /dev/null +++ b/RawContent/World/R1/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c4b16ea83dbf3960af76b71b182d5124c915cd3c4abf1024bf53318237a17a7 +size 269866 diff --git a/RawContent/World/R1/thumb.png b/RawContent/World/R1/thumb.png new file mode 100644 index 0000000..701267a --- /dev/null +++ b/RawContent/World/R1/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e9b3f8113c201a1ca8da4df12cc35dce5df042e35812913f6229ab53ca9a1ed +size 110415 diff --git a/RawContent/World/R2/geology_flow.png b/RawContent/World/R2/geology_flow.png new file mode 100644 index 0000000..1b1e33e --- /dev/null +++ b/RawContent/World/R2/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b671513e24354c9f4b1cdc594bcd18ed3490c545a7a7e4edab2773ee41b2d644 +size 700986 diff --git a/RawContent/World/R2/geology_height.png b/RawContent/World/R2/geology_height.png new file mode 100644 index 0000000..77650b0 --- /dev/null +++ b/RawContent/World/R2/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f24706b709096cad6c3e9ed5ac65eb03faf7f90889d53368fc24e55a3660a1c +size 2023796 diff --git a/RawContent/World/R2/meta.json b/RawContent/World/R2/meta.json new file mode 100644 index 0000000..6a7d4e3 --- /dev/null +++ b/RawContent/World/R2/meta.json @@ -0,0 +1,284 @@ +{ + "elapsed_s": 227.009049, + "generated_at": "2026-09-17T10:55:35Z", + "geology_cell_m": 8.930581613508442, + "geology_size": 1600, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 100000 + }, + "thermal": { + "coarse_passes": 2, + "every": 2, + "fine_passes": 24, + "talus_deg": 28 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.617614453125, + "clip_fraction": 0.05079296875, + "relief_m": 3275.23681640625, + "min_m": -177.8711700439453, + "max_m": 3097.36572265625, + "land_min_m": 0.07955958694219589, + "land_max_m": 3097.36572265625, + "land_relief_m": 3097.286163069308, + "slopes": { + "under_15_deg": 0.08713465937803785, + "under_30_deg": 0.18604977695809166, + "over_50_deg": 0.4914827907023812, + "median_deg": 49.43696058525635 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.2677670416916433, + "n": 683 + }, + { + "log_area": 5.625, + "log_slope": -1.4305904912657468, + "n": 1946 + }, + { + "log_area": 5.875, + "log_slope": -1.4826823545073475, + "n": 2431 + }, + { + "log_area": 6.125, + "log_slope": -1.672890078629601, + "n": 1841 + }, + { + "log_area": 6.375, + "log_slope": -1.7544107352813034, + "n": 1737 + }, + { + "log_area": 6.625, + "log_slope": -2.0020962150340726, + "n": 870 + }, + { + "log_area": 6.875, + "log_slope": -2.1158422907284846, + "n": 714 + }, + { + "log_area": 7.125, + "log_slope": -2.2509340814703545, + "n": 398 + }, + { + "log_area": 7.375, + "log_slope": -2.2851363474462554, + "n": 480 + }, + { + "log_area": 7.625, + "log_slope": -2.259510600133706, + "n": 314 + } + ], + "exponent": -0.49273487927531473, + "raw_exponent": -0.4818256360084761, + "expected": -0.5, + "r2": 0.9615927396748828, + "raw_r2": 0.8228630579799373, + "channel_cells": 11414, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.4977686828691704, + "curve": [ + 1, + 0.9883321221458826, + 0.8878326575350091, + 0.6654978549648882, + 0.5210408242905382, + 0.447721924010795, + 0.376127147485948, + 0.2985807918952269, + 0.2036837807769688, + 0.08722194077135248, + 6.324738646146244e-7 + ] + }, + "drainage_density_per_km": 0.8103353479007795 + } +} \ No newline at end of file diff --git a/RawContent/World/R2/preview.png b/RawContent/World/R2/preview.png new file mode 100644 index 0000000..6babdc0 --- /dev/null +++ b/RawContent/World/R2/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:535d9d9a31cbd1fc425cc7cb5ec633084107f7123d4b184179f577b3dbbee214 +size 1007473 diff --git a/RawContent/World/R2/preview_detail.png b/RawContent/World/R2/preview_detail.png new file mode 100644 index 0000000..66a6e67 --- /dev/null +++ b/RawContent/World/R2/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e48f461d1c9427a9bfb82afc02fb81134f1acf10d60481f8e65e54e0d52b0d26 +size 133933 diff --git a/RawContent/World/R2/thumb.png b/RawContent/World/R2/thumb.png new file mode 100644 index 0000000..a041ed2 --- /dev/null +++ b/RawContent/World/R2/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e0a0451fe40e0918e29a00050e0ec8144b6906fcbc3e574a000200637e079b3 +size 73022 diff --git a/RawContent/World/R3/geology_flow.png b/RawContent/World/R3/geology_flow.png new file mode 100644 index 0000000..25f08fc --- /dev/null +++ b/RawContent/World/R3/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f8144267cd1155e581bc751ec3737fbd69f84e1f5e643f09b579bfdc68eee3d +size 705598 diff --git a/RawContent/World/R3/geology_height.png b/RawContent/World/R3/geology_height.png new file mode 100644 index 0000000..89c6ca2 --- /dev/null +++ b/RawContent/World/R3/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b514e2991aa30cbe8c572efa83610195e62b20cba5298b4f4255be0946609b7 +size 2008929 diff --git a/RawContent/World/R3/meta.json b/RawContent/World/R3/meta.json new file mode 100644 index 0000000..8866da0 --- /dev/null +++ b/RawContent/World/R3/meta.json @@ -0,0 +1,284 @@ +{ + "elapsed_s": 227.7917629, + "generated_at": "2026-09-17T10:59:23Z", + "geology_cell_m": 8.930581613508442, + "geology_size": 1600, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 100000 + }, + "thermal": { + "coarse_passes": 2, + "every": 2, + "fine_passes": 24, + "talus_deg": 23 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.617614453125, + "clip_fraction": 0.049848046875, + "relief_m": 3274.638427734375, + "min_m": -177.8711700439453, + "max_m": 3096.767333984375, + "land_min_m": 0.07955958694219589, + "land_max_m": 3096.767333984375, + "land_relief_m": 3096.687774397433, + "slopes": { + "under_15_deg": 0.08358395110218059, + "under_30_deg": 0.2203962701751257, + "over_50_deg": 0.47355215664100725, + "median_deg": 48.127202779161045 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.28779711519215, + "n": 670 + }, + { + "log_area": 5.625, + "log_slope": -1.4240797605483546, + "n": 1856 + }, + { + "log_area": 5.875, + "log_slope": -1.5112472653181215, + "n": 2406 + }, + { + "log_area": 6.125, + "log_slope": -1.6966542577798962, + "n": 1948 + }, + { + "log_area": 6.375, + "log_slope": -1.7581430291368703, + "n": 1661 + }, + { + "log_area": 6.625, + "log_slope": -1.9903593630822658, + "n": 772 + }, + { + "log_area": 6.875, + "log_slope": -2.1502955474789305, + "n": 707 + }, + { + "log_area": 7.125, + "log_slope": -2.4269042432668533, + "n": 382 + }, + { + "log_area": 7.375, + "log_slope": -2.2914156071259013, + "n": 495 + }, + { + "log_area": 7.625, + "log_slope": -2.2764458867844577, + "n": 316 + } + ], + "exponent": -0.5124997566826598, + "raw_exponent": -0.5096766397492232, + "expected": -0.5, + "r2": 0.9315927152051573, + "raw_r2": 0.7831988952569084, + "channel_cells": 11213, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.49971352062862, + "curve": [ + 1, + 0.9911396736308364, + 0.8924895626000494, + 0.6677494619228597, + 0.5239090932664935, + 0.4502891354272013, + 0.37857229144648674, + 0.30065277627565234, + 0.20440227108715303, + 0.08591841213641449, + 6.324738646146244e-7 + ] + }, + "drainage_density_per_km": 0.7960294800213915 + } +} \ No newline at end of file diff --git a/RawContent/World/R3/preview.png b/RawContent/World/R3/preview.png new file mode 100644 index 0000000..383e599 --- /dev/null +++ b/RawContent/World/R3/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:983d2d79c7639118ce94f2b6c21c89cacb4048c303e339751affb44131dc4631 +size 998604 diff --git a/RawContent/World/R3/preview_detail.png b/RawContent/World/R3/preview_detail.png new file mode 100644 index 0000000..30d3ea7 --- /dev/null +++ b/RawContent/World/R3/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4cb7ada0e6d5065a2a6ba1c8072cb3e818d11f4c7a658582776f7e0f62ce9a5 +size 130323 diff --git a/RawContent/World/R3/thumb.png b/RawContent/World/R3/thumb.png new file mode 100644 index 0000000..fc351b3 --- /dev/null +++ b/RawContent/World/R3/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d88e056ef0fa4751e2a0424fd7538a6bd0fba90979c774b2460e5cbb450292f9 +size 72024 diff --git a/RawContent/World/README.md b/RawContent/World/README.md new file mode 100644 index 0000000..575b67b --- /dev/null +++ b/RawContent/World/README.md @@ -0,0 +1,116 @@ +# The world's terrain source + +> This document describes the pipeline as it is built today. Where it is going — a Go core, stream-power +> erosion, plates and faults, a `Generated` edit layer, and a canvas of 7141 vertices at 200 cm — is settled in +> [`../../Docs/Terrain.md`](../../Docs/Terrain.md) (D-47). Nothing here is wrong yet; several things in it are +> scheduled to be replaced, and that document says which and by what. + +`L_World` is a product of three inputs, none of them hand-edited: this folder's `World.json` (the manifest), +the PNGs in `Heightmaps/` that `Scripts/Authoring/generate_heightmap.py` writes from it, and +`Scripts/Authoring/create_world.py`, which imports them into the level and dresses it with Elite_RockyMeadows' +kit. Change an input, rerun the two scripts, and the level is rebuilt from scratch. + +```bash +D:/UE_5.8/Engine/Binaries/ThirdParty/Python3/Win64/python.exe Scripts/Authoring/generate_heightmap.py +D:/UE_5.8/Engine/Binaries/Win64/UnrealEditor-Cmd.exe Salty.uproject -run=pythonscript -script=Scripts/Authoring/create_world.py -AllowCommandletRendering +``` + +The first needs numpy in `Scripts/Authoring/.pylib` (`bootstrap-pylib.sh`, once per machine) and takes about +five minutes at 4081, most of it erosion (40 s without). The second takes a minute or two (the landscape's +textures are built through the derived-data cache) +and must not be killed part way: run it detached, not under a tool with a timeout. It can run while the editor +is open, as long as the editor does not have `L_World` loaded at that moment. An existing level is loaded and +emptied rather than deleted, because an editor that has had `L_World` open keeps its two HLOD layer assets +locked and a recreation would fail to save; the previous build's proxy packages are swept after the save. + +## The manifest + +| Key | Meaning | +| --- | --- | +| `vertices_per_side` | Heightmap resolution. `4081` gives 16x16 landscape components of 255 quads, one streaming proxy each; see the layout note below before changing it | +| `quad_cm` | Metres between vertices, in centimetres. `350` makes 4081 vertices 14.28 km, 204 km² | +| `elevation_m.min` / `.max` | What heightmap values 0 and 65535 mean, in metres. The landscape's Z scale and the actor's Z offset follow from these, so that elevation 0 m is world Z 0 | +| `sea_level_m` | Where the sea plane sits and what the noise source builds its continent around. Keep it 0 unless there is a reason | +| `spawn_pad_m` | Radius of the flat disc blended into the centre of the map for the player starts | +| `streaming_grid_components` | Landscape components per world-partition streaming proxy, per side | +| `source` | Where the height comes from; see below | +| `layers` | The paint-layer rules: rock by slope (rise over run), high rock by altitude (metres), and a noise break-up so boundaries are not contour lines | + +## Erosion + +Whatever the source, the height then goes through `heightmap_erosion.py` before the layers are derived, +because fractal noise alone gives pillowy hills and no drainage. The `erosion` block of the manifest drives +it; every key has a default in `heightmap_erosion.DEFAULTS`, and `"enabled": false` skips the whole stage +(for a real DEM, which is already eroded). + +| Key | Meaning | +| --- | --- | +| `coarse_factor`, `coarse_droplets`, `coarse_lifetime` | The first hydraulic pass runs on the map downsampled by the factor, with long-lived droplets (one cell per step, so `120` on 14 m cells is a 1.7 km path): this carves the valleys. Its result is applied to the full map as a delta, so the fine detail survives | +| `fine_droplets`, `fine_lifetime` | The second pass at full resolution, short-lived droplets: gullies and rills | +| `thermal_passes`, `talus_deg` | Thermal weathering with an angle of repose: where a cell stands above a neighbour by more than the angle allows, half of the largest excess slides down, shared among the lower neighbours. Mass is conserved, so cliffs keep a face and scree builds at their foot | +| `strata_period_m`, `strata_contrast` | Rock hardness as horizontal bands with a slow tilt, scaling the hydraulic erosion: hard bands hold shelves and ledges. Contrast `0` is uniform rock | +| `inertia`, `capacity`, `min_slope`, `deposit_rate`, `erode_rate`, `evaporation`, `gravity` | The droplet constants, in cell units (a slope of 1 is 45°), so they mean the same at both resolutions | +| `max_change`, `max_speed`, `max_load` | Brakes. Droplets step in vectorised batches that share cells; without a cap on what one droplet may cut or fill per step, a crowd in one cell runs away to infinity. The load cap bounds the mound a droplet can leave where it stops | +| `min_erode_slope`, `fine_scale` | Below `min_erode_slope` (rise over run) water deposits but barely cuts, so lowland soil holds and meadows stay smooth; `fine_scale` runs the full-resolution pass at a fraction of the cutting rate, so it leaves gullies rather than trenches | + +Each droplet cuts through a 3x3 brush around its cell, not a single cell: a one-cell footprint leaves every +path as a rill one cell wide, which reads as brush strokes across the lowlands. Deposits land on the droplet's +own cell, so a pit fills to the brim and the droplets move on; spread through the brush, a pit's rim rises +faster than its floor and every droplet draining into it adds to a mound. + +The pass also writes four derivative maps next to the weightmaps: `L_World_Flow.png` (water passed, log scaled), +`L_World_Wear.png` (bedrock scraped), `L_World_Deposit.png` (sediment laid down) and `L_World_Curvature.png` +(128 flat, brighter convex, darker concave). The layer rules use them: scraped bedrock and convex ridges read as +rock, sediment fans and basins read as meadow. Nothing in the landscape material samples them yet; they are +there for the material that will. + +## Swapping the noise for a real heightmap + +The source block decides. Today it is noise: + +```json +"source": { "kind": "noise", "seed": 7 } +``` + +To use a real heightmap, point it at the file and say what its value range means in metres: + +```json +"source": { "kind": "file", "path": "RawContent/World/Sources/my_area.png", "elevation_m": { "min": 0, "max": 2400 } } +``` + +Then rerun the two scripts. What happens to the file: it is read (16-bit greyscale PNG, or raw 16-bit +little-endian `.r16`/`.raw` with `"width"` given when it is not square; 8-bit PNGs are accepted and widened), +optionally flipped with `"flip_y": true`, cropped to a centred square, converted to metres with its own +`elevation_m`, resampled onto `vertices_per_side` (box-filtered when shrinking, bilinear otherwise; add +`"smooth_passes": 2` to soften a coarse DEM that was scaled up), and re-encoded into the world's +`elevation_m` range, clipping and reporting anything outside it. The paint layers are derived from the finished +height by the same rules as for noise, so a real heightmap needs no weightmaps of its own, and the spawn pad is +blended in at the centre either way. Widen the world's `elevation_m` if the file's range does not fit; the +range costs nothing but height precision (65535 steps over the span: 4 cm at 2560 m). + +Any DEM tool that writes 16-bit PNG or r16 works: QGIS (`gdal_translate -ot UInt16 -scale`), World Machine, +Gaea, terrain.party, the engine's own landscape export. A 30 m DEM of a 14 km area is only about 470 samples +across; it will be smooth after resampling, which is what `smooth_passes` and the layer break-up are for. + +`--source-file` and `--source-elevation` on `generate_heightmap.py` try a file for one run without editing +the manifest; `--seed` does the same for noise. + +## The component layout + +`create_world.py` hands the PNG to the engine's own importer, which picks the section size the way the +editor's Import button does: the largest of 255, 127, 63, 31, 15, 7 quads that divides `vertices_per_side - 1` +exactly, preferring one section per component. `4081 - 1 = 16 x 255`, so 16x16 components of 255 quads. +The count matters more than the size: every component is a draw call and carries its own height and weight +textures, all built through the derived-data cache on import. Epic's own recommended `4033` would divide only +by 63, giving 64x64 components and a build four times as long for no visible gain. If you change the +resolution, pick `255 x N + 1` (or `127 x N + 1`) with N at most 32. + +## Rocky Meadows' part + +The pack contributes the landscape material (`M_Landscape_Main_Inst_RockyMeadows02`) and its three layer infos, +which is why the weightmaps carry the pack's names. Those names mislead: its `Base_Layer` samples the rock +textures, `Layer_02` the grass, `Layer_03` the high rock, so the meadow weightmap is `L_World_Layer_02.png`; the +sun with the pack's cloud-shadow light function; its skybox dome and sky light; its height fog and post-process +grade. The numbers are copied from the pack's `Rocky_Meadows_01` demo map as `Scripts/Authoring/dump_level.py` +read them, and live at the top of `create_world.py`. The sea is a plane with the engine's water material, +`World_Sea_Proto`, until a water body replaces it. diff --git a/RawContent/World/S1/geology_flow.png b/RawContent/World/S1/geology_flow.png new file mode 100644 index 0000000..6f4da9a --- /dev/null +++ b/RawContent/World/S1/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3399caa0f6a55849665827881f8aab0e78d016939558d3aca0f10225650d655b +size 478984 diff --git a/RawContent/World/S1/geology_height.png b/RawContent/World/S1/geology_height.png new file mode 100644 index 0000000..cd9c725 --- /dev/null +++ b/RawContent/World/S1/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c24952194d1c6e22b96b25cac476a5c1e61d307480221fd00cee4426ece065c4 +size 1012825 diff --git a/RawContent/World/S1/meta.json b/RawContent/World/S1/meta.json new file mode 100644 index 0000000..1df7104 --- /dev/null +++ b/RawContent/World/S1/meta.json @@ -0,0 +1,280 @@ +{ + "elapsed_s": 263.4478203, + "generated_at": "2026-09-17T11:04:22Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 300000, + "channel_taper": 2 + }, + "thermal": { + "coarse_passes": 2, + "every": 2, + "fine_passes": 24, + "talus_deg": 30 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6164954081632653, + "clip_fraction": 0, + "relief_m": 1081.9969482421875, + "min_m": -177.87100219726562, + "max_m": 904.1259765625, + "land_min_m": 0.08157341927289963, + "land_max_m": 904.1259765625, + "land_relief_m": 904.0444031432271, + "slopes": { + "under_15_deg": 0.019523623907687547, + "under_30_deg": 0.16739535772896666, + "over_50_deg": 0.003544558568802758, + "median_deg": 30.471213690410913 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.8566151330240825, + "n": 743 + }, + { + "log_area": 5.625, + "log_slope": -2.0442228490422627, + "n": 1706 + }, + { + "log_area": 5.875, + "log_slope": -2.118341105969183, + "n": 2330 + }, + { + "log_area": 6.125, + "log_slope": -2.322621396437937, + "n": 1599 + }, + { + "log_area": 6.375, + "log_slope": -2.355563425890634, + "n": 1259 + }, + { + "log_area": 6.625, + "log_slope": -2.528497595451783, + "n": 1518 + }, + { + "log_area": 6.875, + "log_slope": -2.584901747613253, + "n": 866 + }, + { + "log_area": 7.125, + "log_slope": -3.180406252007432, + "n": 617 + }, + { + "log_area": 7.375, + "log_slope": -2.9777421164751896, + "n": 147 + } + ], + "exponent": -0.6021370416667937, + "raw_exponent": -0.8512337971766876, + "expected": -0.5, + "r2": 0.9140169934495121, + "raw_r2": 0.9406819006030361, + "channel_cells": 10785, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.2926278269249115, + "curve": [ + 1, + 0.8745318956477985, + 0.6488247011787334, + 0.42913407005199733, + 0.24920572260415397, + 0.1318206683433596, + 0.06411571001654348, + 0.024113425874201733, + 0.006574357522897256, + 0.0016816584197542062, + 8.27587804952401e-7 + ] + }, + "drainage_density_per_km": 0.8762110805768302 + } +} \ No newline at end of file diff --git a/RawContent/World/S1/preview.png b/RawContent/World/S1/preview.png new file mode 100644 index 0000000..50900f4 --- /dev/null +++ b/RawContent/World/S1/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22b43892898e5356eaad68d82257b8021af5c998bcfd92c04876a1f40ac1f270 +size 917186 diff --git a/RawContent/World/S1/preview_detail.png b/RawContent/World/S1/preview_detail.png new file mode 100644 index 0000000..f202b69 --- /dev/null +++ b/RawContent/World/S1/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dce0b949ccd3dabf5ef208d3d6000b516c26cbb736a8727f43eb274e33ff734 +size 131561 diff --git a/RawContent/World/S1/thumb.png b/RawContent/World/S1/thumb.png new file mode 100644 index 0000000..a3ec1d8 --- /dev/null +++ b/RawContent/World/S1/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6b393287ff322d00b1e2e74d399d800fbea9b5d477197c1f11d0352db2da540 +size 79731 diff --git a/RawContent/World/S2/geology_flow.png b/RawContent/World/S2/geology_flow.png new file mode 100644 index 0000000..8772186 --- /dev/null +++ b/RawContent/World/S2/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1fc721cb5ce9463f2813ad05906170cd6b7852f5a6c659ffc0b59d1a51c5067 +size 505847 diff --git a/RawContent/World/S2/geology_height.png b/RawContent/World/S2/geology_height.png new file mode 100644 index 0000000..5f14009 --- /dev/null +++ b/RawContent/World/S2/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e254df71ae6907789b944c77d56c00beb459ceffffeb0e623888058b4bf0a534 +size 916549 diff --git a/RawContent/World/S2/meta.json b/RawContent/World/S2/meta.json new file mode 100644 index 0000000..0ebd324 --- /dev/null +++ b/RawContent/World/S2/meta.json @@ -0,0 +1,280 @@ +{ + "elapsed_s": 259.9410553, + "generated_at": "2026-09-17T11:08:42Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 1000000, + "channel_taper": 2 + }, + "thermal": { + "coarse_passes": 2, + "every": 2, + "fine_passes": 24, + "talus_deg": 30 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6164954081632653, + "clip_fraction": 0, + "relief_m": 1245.2333984375, + "min_m": -177.87100219726562, + "max_m": 1067.3624267578125, + "land_min_m": 0.08157341927289963, + "land_max_m": 1067.3624267578125, + "land_relief_m": 1067.2808533385396, + "slopes": { + "under_15_deg": 0.012313678950552456, + "under_30_deg": 0.13453681151936017, + "over_50_deg": 0.003465937727328061, + "median_deg": 30.717706947324206 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.5035632605868765, + "n": 625 + }, + { + "log_area": 5.625, + "log_slope": -1.4546917409225897, + "n": 429 + }, + { + "log_area": 5.875, + "log_slope": -1.9311940799452527, + "n": 537 + }, + { + "log_area": 6.125, + "log_slope": -2.3455230008996106, + "n": 849 + }, + { + "log_area": 6.375, + "log_slope": -2.412066657276942, + "n": 1343 + }, + { + "log_area": 6.625, + "log_slope": -2.4818852622729985, + "n": 1463 + }, + { + "log_area": 6.875, + "log_slope": -2.685611347513481, + "n": 1425 + }, + { + "log_area": 7.125, + "log_slope": -2.587961747596564, + "n": 343 + }, + { + "log_area": 7.375, + "log_slope": -2.6859831094060374, + "n": 286 + } + ], + "exponent": -0.6516457474538954, + "raw_exponent": -0.6733455050620486, + "expected": -0.5, + "r2": 0.8508093783309294, + "raw_r2": 0.647301512777451, + "channel_cells": 7300, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.34199323330231984, + "curve": [ + 1, + 0.8827142562758052, + 0.7215018070379722, + 0.5501199588523343, + 0.36631850047710435, + 0.21129889078406494, + 0.11592601696058447, + 0.05206520398798009, + 0.018468449456316205, + 0.004275318600615252, + 8.27587804952401e-7 + ] + }, + "drainage_density_per_km": 0.5933295722828947 + } +} \ No newline at end of file diff --git a/RawContent/World/S2/preview.png b/RawContent/World/S2/preview.png new file mode 100644 index 0000000..aeed6b1 --- /dev/null +++ b/RawContent/World/S2/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad9f2f6729eccc73896385c019ea14fdf5fe644e888069b6ccd433fcb1104105 +size 830845 diff --git a/RawContent/World/S2/preview_detail.png b/RawContent/World/S2/preview_detail.png new file mode 100644 index 0000000..d37af21 --- /dev/null +++ b/RawContent/World/S2/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d958cf1fabf8bce20a30fa13e939181ea7eca95a6db63e9c20ca052e0e9b506d +size 122059 diff --git a/RawContent/World/S2/thumb.png b/RawContent/World/S2/thumb.png new file mode 100644 index 0000000..c3f8e86 --- /dev/null +++ b/RawContent/World/S2/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:323486d8dde75a74b59d842b40e8ca45d376275047e73a4cfc9b21f096f828d3 +size 73435 diff --git a/RawContent/World/S3/geology_flow.png b/RawContent/World/S3/geology_flow.png new file mode 100644 index 0000000..8772186 --- /dev/null +++ b/RawContent/World/S3/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1fc721cb5ce9463f2813ad05906170cd6b7852f5a6c659ffc0b59d1a51c5067 +size 505847 diff --git a/RawContent/World/S3/geology_height.png b/RawContent/World/S3/geology_height.png new file mode 100644 index 0000000..5f14009 --- /dev/null +++ b/RawContent/World/S3/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e254df71ae6907789b944c77d56c00beb459ceffffeb0e623888058b4bf0a534 +size 916549 diff --git a/RawContent/World/S3/meta.json b/RawContent/World/S3/meta.json new file mode 100644 index 0000000..8ed8b22 --- /dev/null +++ b/RawContent/World/S3/meta.json @@ -0,0 +1,280 @@ +{ + "elapsed_s": 259.2081827, + "generated_at": "2026-09-17T11:13:02Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 1000000, + "channel_taper": 2 + }, + "thermal": { + "coarse_passes": 2, + "every": 2, + "fine_passes": 24, + "talus_deg": 30 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.6164954081632653, + "clip_fraction": 0, + "relief_m": 1245.2333984375, + "min_m": -177.87100219726562, + "max_m": 1067.3624267578125, + "land_min_m": 0.08157341927289963, + "land_max_m": 1067.3624267578125, + "land_relief_m": 1067.2808533385396, + "slopes": { + "under_15_deg": 0.012313678950552456, + "under_30_deg": 0.13453681151936017, + "over_50_deg": 0.003465937727328061, + "median_deg": 30.717706947324206 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.5035632605868765, + "n": 625 + }, + { + "log_area": 5.625, + "log_slope": -1.4546917409225897, + "n": 429 + }, + { + "log_area": 5.875, + "log_slope": -1.9311940799452527, + "n": 537 + }, + { + "log_area": 6.125, + "log_slope": -2.3455230008996106, + "n": 849 + }, + { + "log_area": 6.375, + "log_slope": -2.412066657276942, + "n": 1343 + }, + { + "log_area": 6.625, + "log_slope": -2.4818852622729985, + "n": 1463 + }, + { + "log_area": 6.875, + "log_slope": -2.685611347513481, + "n": 1425 + }, + { + "log_area": 7.125, + "log_slope": -2.587961747596564, + "n": 343 + }, + { + "log_area": 7.375, + "log_slope": -2.6859831094060374, + "n": 286 + } + ], + "exponent": -0.6516457474538954, + "raw_exponent": -0.6733455050620486, + "expected": -0.5, + "r2": 0.8508093783309294, + "raw_r2": 0.647301512777451, + "channel_cells": 7300, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.34199323330231984, + "curve": [ + 1, + 0.8827142562758052, + 0.7215018070379722, + 0.5501199588523343, + 0.36631850047710435, + 0.21129889078406494, + 0.11592601696058447, + 0.05206520398798009, + 0.018468449456316205, + 0.004275318600615252, + 8.27587804952401e-7 + ] + }, + "drainage_density_per_km": 0.5933295722828947 + } +} \ No newline at end of file diff --git a/RawContent/World/S3/preview.png b/RawContent/World/S3/preview.png new file mode 100644 index 0000000..aeed6b1 --- /dev/null +++ b/RawContent/World/S3/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad9f2f6729eccc73896385c019ea14fdf5fe644e888069b6ccd433fcb1104105 +size 830845 diff --git a/RawContent/World/S3/preview_detail.png b/RawContent/World/S3/preview_detail.png new file mode 100644 index 0000000..d37af21 --- /dev/null +++ b/RawContent/World/S3/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d958cf1fabf8bce20a30fa13e939181ea7eca95a6db63e9c20ca052e0e9b506d +size 122059 diff --git a/RawContent/World/S3/thumb.png b/RawContent/World/S3/thumb.png new file mode 100644 index 0000000..c3f8e86 --- /dev/null +++ b/RawContent/World/S3/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:323486d8dde75a74b59d842b40e8ca45d376275047e73a4cfc9b21f096f828d3 +size 73435 diff --git a/RawContent/World/Seed_24146/geology_flow.png b/RawContent/World/Seed_24146/geology_flow.png new file mode 100644 index 0000000..1d5ebc2 --- /dev/null +++ b/RawContent/World/Seed_24146/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e827b6ef262aed0253a057497def93d964537f3699fe2a261e9f602db0a383f9 +size 664034 diff --git a/RawContent/World/Seed_24146/geology_height.png b/RawContent/World/Seed_24146/geology_height.png new file mode 100644 index 0000000..bbb76be --- /dev/null +++ b/RawContent/World/Seed_24146/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0375b194718b730cd11995bf863d0402615cbff2d0b27d32ce57550797803080 +size 1239037 diff --git a/RawContent/World/Seed_24146/map_basins.png b/RawContent/World/Seed_24146/map_basins.png new file mode 100644 index 0000000..e97cea8 --- /dev/null +++ b/RawContent/World/Seed_24146/map_basins.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f2ff43f7792a2b0b2ed6e0076e1e069ce85e9d024640ca8605293be1d95254c +size 257425 diff --git a/RawContent/World/Seed_24146/map_coast.png b/RawContent/World/Seed_24146/map_coast.png new file mode 100644 index 0000000..1150030 --- /dev/null +++ b/RawContent/World/Seed_24146/map_coast.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16a15e58fd9b8850f0cd3d78da7657a5addb0df4a07f8b0bffb8bcbcdbebce39 +size 152380 diff --git a/RawContent/World/Seed_24146/map_erodibility.png b/RawContent/World/Seed_24146/map_erodibility.png new file mode 100644 index 0000000..20eac9e --- /dev/null +++ b/RawContent/World/Seed_24146/map_erodibility.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f3f6a58313d49e6215c80eb45b3e359872f90fc2409e9ab54f64977fbbcf376c +size 68224 diff --git a/RawContent/World/Seed_24146/map_exposure.png b/RawContent/World/Seed_24146/map_exposure.png new file mode 100644 index 0000000..2578e1a --- /dev/null +++ b/RawContent/World/Seed_24146/map_exposure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31870fcae5f978d044ce7de02bdd9f707a89220dbf9f48890576bae2a5dc8f3f +size 419072 diff --git a/RawContent/World/Seed_24146/map_flow.png b/RawContent/World/Seed_24146/map_flow.png new file mode 100644 index 0000000..946ecb8 --- /dev/null +++ b/RawContent/World/Seed_24146/map_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1336b0e470d1ba054065eb33ff15cd1605de89dd9e456aa0bd2f14cdc50fe14a +size 1286710 diff --git a/RawContent/World/Seed_24146/map_relief.png b/RawContent/World/Seed_24146/map_relief.png new file mode 100644 index 0000000..9adeb49 --- /dev/null +++ b/RawContent/World/Seed_24146/map_relief.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14ae9a6b13ef12a29f2e89797964dbda1024d1aa2c61856fe07529e1a8816d08 +size 504651 diff --git a/RawContent/World/Seed_24146/map_slope.png b/RawContent/World/Seed_24146/map_slope.png new file mode 100644 index 0000000..0172f70 --- /dev/null +++ b/RawContent/World/Seed_24146/map_slope.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9a40997b2f94c52569050446d962ed7f76cdb570df1c541295fe94908a94309 +size 1411699 diff --git a/RawContent/World/Seed_24146/map_uplift.png b/RawContent/World/Seed_24146/map_uplift.png new file mode 100644 index 0000000..39b0229 --- /dev/null +++ b/RawContent/World/Seed_24146/map_uplift.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:933044f95cda046a89cc584a31134ed56f22c22745464f7be985305193d332c7 +size 562849 diff --git a/RawContent/World/Seed_24146/meta.json b/RawContent/World/Seed_24146/meta.json new file mode 100644 index 0000000..4c0c2fe --- /dev/null +++ b/RawContent/World/Seed_24146/meta.json @@ -0,0 +1,354 @@ +{ + "coast": { + "shoreline_km": 84.59802716225876, + "sea_fraction": 0.35927040816326533, + "shelf_pct_of_sea": 89.1245525709248, + "surf_cut_m3": 36817595.88457821, + "river_load_m3": 2863023.584277641, + "laid_m3": 38637689.65699461, + "unplaced_m3": 1042930.0091174257, + "river_mouths": 14, + "planed_km2": 2.869150843066195, + "beach_km2": 5.107542763773368, + "drowned_km2": 0, + "backshore_m": 4.622556209564209, + "backshore_p90_m": 109.2190933227539, + "exposure_p10": 0, + "exposure_p50": 0.9095531702041626, + "exposure_p90": 1 + }, + "elapsed_s": 389.8673321, + "generated_at": "2026-09-17T14:04:08Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 24146, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3, + "outline_octaves": 8, + "outline_gain": 0.62 + }, + "coast": { + "enabled": true, + "shelf_km": [ + 0.6, + 3 + ], + "steep_coast_m": 300, + "slope_km": 1.6, + "shelf_exponent": 0.7, + "roughness_m": 10, + "rough_wavelength_m": 1200, + "fetch_directions": 16, + "fetch_range_m": 1500, + "surf_reach_m": 110, + "platform_grade": 0.02, + "cut_fraction": 0.85, + "deposit_reach_m": 350, + "deposit_depth_m": 25, + "shelter_bias": 1.5, + "berm_m": 2, + "drift_m": 300, + "river_m3_per_km2": 120000, + "river_exponent": 0.6, + "river_channel_km2": 0.5 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2, + "critical_slope_deg": 35, + "slope_cap": 0.9, + "max_hillslope_substeps": 24 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 24146, + "stats": { + "land_fraction": 0.6407295918367347, + "clip_fraction": 0, + "relief_m": 806.8338623046875, + "min_m": -180.0838165283203, + "max_m": 626.7500610351562, + "land_min_m": 3.079572327429302e-18, + "land_max_m": 626.7500610351562, + "land_relief_m": 626.7500610351562, + "slopes": { + "under_15_deg": 0.6291289426116592, + "under_30_deg": 0.7852543736015225, + "over_50_deg": 0.0028841483321787598, + "median_deg": 3.4978361258234925 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.445507292726136, + "n": 580 + }, + { + "log_area": 6.375, + "log_slope": -2.7522608878175028, + "n": 635 + }, + { + "log_area": 6.625, + "log_slope": -3.4225346913194343, + "n": 60 + }, + { + "log_area": 6.875, + "log_slope": -2.4087452335096153, + "n": 72 + }, + { + "log_area": 7.125, + "log_slope": -2.7912348370133038, + "n": 261 + }, + { + "log_area": 7.375, + "log_slope": -3.4271547372220375, + "n": 262 + } + ], + "exponent": -0.45844224140079554, + "raw_exponent": -0.17189802514043376, + "expected": -0.5, + "r2": 0.2234795829196261, + "raw_r2": 0.02474433394542208, + "channel_cells": 1870, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.09975787133288097, + "curve": [ + 1, + 0.27662183575802457, + 0.1638318880740227, + 0.11481729214941516, + 0.07956729812156105, + 0.05158739638326848, + 0.03164042903896225, + 0.018436412571765315, + 0.009314158763526925, + 0.0029884618140990638, + 7.962861214849681e-7 + ] + }, + "drainage_density_per_km": 0.43897073572666606, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.5268985451852559, + "median_deg": 0.4645436428410096, + "p90_deg": 3.235091053270102, + "median_relief_m": 10.56937861442566, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.00000453381089474758, + "median_elev_m": 1.4948557615280151, + "cells": 661695 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.09165332887413105, + "median_deg": 9.375490120032095, + "p90_deg": 26.22060935835223, + "median_relief_m": 97.66588711738586, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.013110224932885032, + "median_elev_m": 15.948734283447266, + "cells": 115101 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.381448125940613, + "median_deg": 31.340451806614382, + "p90_deg": 36.16103217509603, + "median_relief_m": 232.22679209709167, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.4301114325914236, + "median_elev_m": 105.14710998535156, + "cells": 479034 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/Seed_24146/preview.png b/RawContent/World/Seed_24146/preview.png new file mode 100644 index 0000000..8aced07 --- /dev/null +++ b/RawContent/World/Seed_24146/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bdf2721a90efdfebd70735ffb5b8544755f18a05df2a2a875c601f2364e94cc +size 929178 diff --git a/RawContent/World/Seed_24146/preview_detail.png b/RawContent/World/Seed_24146/preview_detail.png new file mode 100644 index 0000000..8aa16b0 --- /dev/null +++ b/RawContent/World/Seed_24146/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:805673901eb3aa476400bb783d9b1f8b2ce7ef0e62d6f49c08ae122bb7c60708 +size 65526 diff --git a/RawContent/World/Seed_24146/thumb.png b/RawContent/World/Seed_24146/thumb.png new file mode 100644 index 0000000..4f26833 --- /dev/null +++ b/RawContent/World/Seed_24146/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74e51f8149a39b801fe0c13c217271f2395fb214353c311a610d18027cc853e0 +size 84179 diff --git a/RawContent/World/Seed_36529/geology_flow.png b/RawContent/World/Seed_36529/geology_flow.png new file mode 100644 index 0000000..606f425 --- /dev/null +++ b/RawContent/World/Seed_36529/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da200e5b7ac2870b2f14f44e6b98adc8b250a5187352e6335b8e5ba519a27edd +size 633950 diff --git a/RawContent/World/Seed_36529/geology_height.png b/RawContent/World/Seed_36529/geology_height.png new file mode 100644 index 0000000..5556f4d --- /dev/null +++ b/RawContent/World/Seed_36529/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:340b1d8cf59ca97af8c5438338dde3b0f5dfdf9c77666bfc20e150d494cf43ac +size 1235474 diff --git a/RawContent/World/Seed_36529/map_basins.png b/RawContent/World/Seed_36529/map_basins.png new file mode 100644 index 0000000..49fa48a --- /dev/null +++ b/RawContent/World/Seed_36529/map_basins.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7ed0130dc5ab3727b4328bdb995a9f9256b21e4e728cada9f6eb60c4cac03ff +size 244224 diff --git a/RawContent/World/Seed_36529/map_coast.png b/RawContent/World/Seed_36529/map_coast.png new file mode 100644 index 0000000..93bd012 --- /dev/null +++ b/RawContent/World/Seed_36529/map_coast.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aded25190fe442c584eea70793b474fd464a808a168bfb15619a293198556133 +size 125288 diff --git a/RawContent/World/Seed_36529/map_erodibility.png b/RawContent/World/Seed_36529/map_erodibility.png new file mode 100644 index 0000000..37fdc1a --- /dev/null +++ b/RawContent/World/Seed_36529/map_erodibility.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:557eb09065b13d55db0b25e243cb12fbba8a0f1ac41bb2fa82b95c629f1b859c +size 63706 diff --git a/RawContent/World/Seed_36529/map_exposure.png b/RawContent/World/Seed_36529/map_exposure.png new file mode 100644 index 0000000..4cb85cd --- /dev/null +++ b/RawContent/World/Seed_36529/map_exposure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45792568a7b4ccdb6872496a3f963fb9aeff30b45febbea6e94c68fed48a4ef7 +size 472301 diff --git a/RawContent/World/Seed_36529/map_flow.png b/RawContent/World/Seed_36529/map_flow.png new file mode 100644 index 0000000..a8a2b36 --- /dev/null +++ b/RawContent/World/Seed_36529/map_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f89a591ef50195db4d4a8f9e99c67c006ee6e2dd6208dd013ee45d7aa90f22e0 +size 1248353 diff --git a/RawContent/World/Seed_36529/map_relief.png b/RawContent/World/Seed_36529/map_relief.png new file mode 100644 index 0000000..9640171 --- /dev/null +++ b/RawContent/World/Seed_36529/map_relief.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15c20b94967d8c74702a2a4d9440dc92f70fda09d02c4dda64608314767ae0e1 +size 494220 diff --git a/RawContent/World/Seed_36529/map_slope.png b/RawContent/World/Seed_36529/map_slope.png new file mode 100644 index 0000000..f07fa9b --- /dev/null +++ b/RawContent/World/Seed_36529/map_slope.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a38bd7426a96a62dc81369c0bf34f7e7f03382caccbd193b25bfb008125daa55 +size 1257386 diff --git a/RawContent/World/Seed_36529/map_uplift.png b/RawContent/World/Seed_36529/map_uplift.png new file mode 100644 index 0000000..1420c8c --- /dev/null +++ b/RawContent/World/Seed_36529/map_uplift.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33d5d5889e7845a83f7b7cb8fe19b3fe2c533c87e2ca2d1e30bbde7734db6ae5 +size 528920 diff --git a/RawContent/World/Seed_36529/meta.json b/RawContent/World/Seed_36529/meta.json new file mode 100644 index 0000000..0b5c151 --- /dev/null +++ b/RawContent/World/Seed_36529/meta.json @@ -0,0 +1,354 @@ +{ + "coast": { + "shoreline_km": 91.84520371694067, + "sea_fraction": 0.36205051020408163, + "shelf_pct_of_sea": 97.54696399471307, + "surf_cut_m3": 26299078.984259993, + "river_load_m3": 4132369.1838550833, + "laid_m3": 29803521.399617605, + "unplaced_m3": 627926.7124091709, + "river_mouths": 17, + "planed_km2": 2.040954167507578, + "beach_km2": 4.577742776955458, + "drowned_km2": 0, + "backshore_m": 0.3834778368473053, + "backshore_p90_m": 87.24969482421875, + "exposure_p10": 0, + "exposure_p50": 0.8652657270431519, + "exposure_p90": 1 + }, + "elapsed_s": 369.669986, + "generated_at": "2026-09-17T14:03:58Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 36529, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3, + "outline_octaves": 8, + "outline_gain": 0.62 + }, + "coast": { + "enabled": true, + "shelf_km": [ + 0.6, + 3 + ], + "steep_coast_m": 300, + "slope_km": 1.6, + "shelf_exponent": 0.7, + "roughness_m": 10, + "rough_wavelength_m": 1200, + "fetch_directions": 16, + "fetch_range_m": 1500, + "surf_reach_m": 110, + "platform_grade": 0.02, + "cut_fraction": 0.85, + "deposit_reach_m": 350, + "deposit_depth_m": 25, + "shelter_bias": 1.5, + "berm_m": 2, + "drift_m": 300, + "river_m3_per_km2": 120000, + "river_exponent": 0.6, + "river_channel_km2": 0.5 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2, + "critical_slope_deg": 35, + "slope_cap": 0.9, + "max_hillslope_substeps": 24 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 36529, + "stats": { + "land_fraction": 0.6379494897959184, + "clip_fraction": 0, + "relief_m": 941.6723022460938, + "min_m": -153.67747497558594, + "max_m": 787.9948120117188, + "land_min_m": 7.006492321624085e-45, + "land_max_m": 787.9948120117188, + "land_relief_m": 787.9948120117188, + "slopes": { + "under_15_deg": 0.5471436306213866, + "under_30_deg": 0.6988158009438723, + "over_50_deg": 0.0021697386636553295, + "median_deg": 7.5228261712430085 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.426392748873889, + "n": 861 + }, + { + "log_area": 6.375, + "log_slope": -2.5547068870498393, + "n": 560 + }, + { + "log_area": 6.625, + "log_slope": -2.5335228203909748, + "n": 274 + }, + { + "log_area": 6.875, + "log_slope": -2.1559521387725096, + "n": 16 + }, + { + "log_area": 7.125, + "log_slope": -1.8833258385717475, + "n": 86 + }, + { + "log_area": 7.375, + "log_slope": -2.168667911313569, + "n": 8 + } + ], + "exponent": 0.4206100588405077, + "raw_exponent": -1.7043565786955392, + "expected": -0.5, + "r2": 0.5592445461878801, + "raw_r2": 0.8244862227866088, + "channel_cells": 1805, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.12494957096260761, + "curve": [ + 1, + 0.3445285876864732, + 0.23514112898388573, + 0.1676960862329162, + 0.11326227765776986, + 0.07053050230289803, + 0.0392776281789311, + 0.018913435184955585, + 0.006292482051470705, + 0.0009221189381476425, + 7.997562343486919e-7 + ] + }, + "drainage_density_per_km": 0.49384930666410193, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.46728797062655303, + "median_deg": 0.07406850445067414, + "p90_deg": 2.841649890540571, + "median_relief_m": 6.594719648361206, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0, + "median_elev_m": 0.8109077215194702, + "cells": 584288 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.09482229816351975, + "median_deg": 12.951035125236976, + "p90_deg": 28.23024496026088, + "median_relief_m": 132.3492440879345, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.008999358995985291, + "median_elev_m": 20.73417091369629, + "cells": 118564 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.4378897312099272, + "median_deg": 33.966686946230304, + "p90_deg": 36.555027244875404, + "median_relief_m": 277.01416015625, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.5528693457332854, + "median_elev_m": 174.5109405517578, + "cells": 547529 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/Seed_36529/preview.png b/RawContent/World/Seed_36529/preview.png new file mode 100644 index 0000000..4051595 --- /dev/null +++ b/RawContent/World/Seed_36529/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e204403939ced314dd7a8f8d50de4b88b59e564fdb78294e829b2992cc032d44 +size 852200 diff --git a/RawContent/World/Seed_36529/preview_detail.png b/RawContent/World/Seed_36529/preview_detail.png new file mode 100644 index 0000000..651b527 --- /dev/null +++ b/RawContent/World/Seed_36529/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dadae79c92dd19b5a1a0fa57b91e5d25fd4b6c52e76e853f1cc864109d964d75 +size 77639 diff --git a/RawContent/World/Seed_36529/thumb.png b/RawContent/World/Seed_36529/thumb.png new file mode 100644 index 0000000..85e8667 --- /dev/null +++ b/RawContent/World/Seed_36529/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:acc783bb111a32727e99987d50b2f04cdf9c4e940abd2b0c5a3c5c65c371f41b +size 77428 diff --git a/RawContent/World/Seed_5365/geology_flow.png b/RawContent/World/Seed_5365/geology_flow.png new file mode 100644 index 0000000..fbbc472 --- /dev/null +++ b/RawContent/World/Seed_5365/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67c876bf47b16dc4290086ddbd735ec5c648322923c693eee794a7b1d2e18231 +size 684361 diff --git a/RawContent/World/Seed_5365/geology_height.png b/RawContent/World/Seed_5365/geology_height.png new file mode 100644 index 0000000..6509efa --- /dev/null +++ b/RawContent/World/Seed_5365/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb8f7ce8a533f1d1d681a522e187eed92ad26bbff246a442bb434b26fc68875a +size 1179912 diff --git a/RawContent/World/Seed_5365/map_basins.png b/RawContent/World/Seed_5365/map_basins.png new file mode 100644 index 0000000..81e1416 --- /dev/null +++ b/RawContent/World/Seed_5365/map_basins.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:139eabeac7cecb0e835f9e1f2f2e06898415cd1803ddd1939b94732a3d7a518c +size 296007 diff --git a/RawContent/World/Seed_5365/map_coast.png b/RawContent/World/Seed_5365/map_coast.png new file mode 100644 index 0000000..9f32941 --- /dev/null +++ b/RawContent/World/Seed_5365/map_coast.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d95ccd28ece6acd3343fbbd113c14619896670fec1a9b60f0a6a3608ee87d41e +size 182471 diff --git a/RawContent/World/Seed_5365/map_erodibility.png b/RawContent/World/Seed_5365/map_erodibility.png new file mode 100644 index 0000000..7ce6a2f --- /dev/null +++ b/RawContent/World/Seed_5365/map_erodibility.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd3d190f047e43f985a8858e0ab308ee5f49ace6e7a2f08ffb44f35a073ef3e6 +size 71013 diff --git a/RawContent/World/Seed_5365/map_exposure.png b/RawContent/World/Seed_5365/map_exposure.png new file mode 100644 index 0000000..970e83f --- /dev/null +++ b/RawContent/World/Seed_5365/map_exposure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7057f2d7602793132d70feb4689c3f4285b3e3b0b90e80c08a0a1c5664cb8aa4 +size 486638 diff --git a/RawContent/World/Seed_5365/map_flow.png b/RawContent/World/Seed_5365/map_flow.png new file mode 100644 index 0000000..805554b --- /dev/null +++ b/RawContent/World/Seed_5365/map_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0dd77ba67aabd1af3ad9acf50030ed33052a607a850b0804deac9f83b62f3c5 +size 1346199 diff --git a/RawContent/World/Seed_5365/map_relief.png b/RawContent/World/Seed_5365/map_relief.png new file mode 100644 index 0000000..3214008 --- /dev/null +++ b/RawContent/World/Seed_5365/map_relief.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e27631ebc6daff62d8ed87785e9c279fbe344acd46b525ca129c13b1ab278b1 +size 440861 diff --git a/RawContent/World/Seed_5365/map_slope.png b/RawContent/World/Seed_5365/map_slope.png new file mode 100644 index 0000000..a499b04 --- /dev/null +++ b/RawContent/World/Seed_5365/map_slope.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d91a8d9180c7838aa8e2c23b205c97937146e1f4e8f52ba04564f014aa4088d9 +size 1449746 diff --git a/RawContent/World/Seed_5365/map_uplift.png b/RawContent/World/Seed_5365/map_uplift.png new file mode 100644 index 0000000..272159a --- /dev/null +++ b/RawContent/World/Seed_5365/map_uplift.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f27d7e6a7c9a193005366e173f2fa2a40fcb4c8bddefc52cf555b14e66b9eab6 +size 530185 diff --git a/RawContent/World/Seed_5365/meta.json b/RawContent/World/Seed_5365/meta.json new file mode 100644 index 0000000..402913f --- /dev/null +++ b/RawContent/World/Seed_5365/meta.json @@ -0,0 +1,364 @@ +{ + "coast": { + "shoreline_km": 92.6209578270193, + "sea_fraction": 0.3511311224489796, + "shelf_pct_of_sea": 87.165798888392, + "surf_cut_m3": 45825901.07337934, + "river_load_m3": 3800133.211451476, + "laid_m3": 48132090.786208615, + "unplaced_m3": 1493943.5357335405, + "river_mouths": 15, + "planed_km2": 3.7647576644401877, + "beach_km2": 6.577125618063755, + "drowned_km2": 0, + "backshore_m": 24.40717124938965, + "backshore_p90_m": 113.39287567138672, + "exposure_p10": 0, + "exposure_p50": 0.8413459062576294, + "exposure_p90": 1 + }, + "elapsed_s": 390.8652679, + "generated_at": "2026-09-17T14:04:14Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 5365, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3, + "outline_octaves": 8, + "outline_gain": 0.62 + }, + "coast": { + "enabled": true, + "shelf_km": [ + 0.6, + 3 + ], + "steep_coast_m": 300, + "slope_km": 1.6, + "shelf_exponent": 0.7, + "roughness_m": 10, + "rough_wavelength_m": 1200, + "fetch_directions": 16, + "fetch_range_m": 1500, + "surf_reach_m": 110, + "platform_grade": 0.02, + "cut_fraction": 0.85, + "deposit_reach_m": 350, + "deposit_depth_m": 25, + "shelter_bias": 1.5, + "berm_m": 2, + "drift_m": 300, + "river_m3_per_km2": 120000, + "river_exponent": 0.6, + "river_channel_km2": 0.5 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2, + "critical_slope_deg": 35, + "slope_cap": 0.9, + "max_hillslope_substeps": 24 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 5365, + "stats": { + "land_fraction": 0.6488688775510204, + "clip_fraction": 0, + "relief_m": 678.4112548828125, + "min_m": -183.35635375976562, + "max_m": 495.0549011230469, + "land_min_m": 5.86885885377292e-19, + "land_max_m": 495.0549011230469, + "land_relief_m": 495.0549011230469, + "slopes": { + "under_15_deg": 0.7120318482005185, + "under_30_deg": 0.8584506948119294, + "over_50_deg": 0.0037962451141428932, + "median_deg": 2.5106125549932354 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.538272002120577, + "n": 848 + }, + { + "log_area": 6.375, + "log_slope": -2.7564335045903667, + "n": 639 + }, + { + "log_area": 6.625, + "log_slope": -2.4894703522853305, + "n": 182 + }, + { + "log_area": 6.875, + "log_slope": -2.5579077450235195, + "n": 306 + }, + { + "log_area": 7.125, + "log_slope": -2.712881102872528, + "n": 230 + }, + { + "log_area": 7.375, + "log_slope": -3.0010589820751408, + "n": 119 + }, + { + "log_area": 7.625, + "log_slope": -3.0264753301968494, + "n": 122 + }, + { + "log_area": 7.875, + "log_slope": -2.586017725242196, + "n": 94 + } + ], + "exponent": -0.16067468748104016, + "raw_exponent": -0.6943473864675871, + "expected": -0.5, + "r2": 0.223179731293773, + "raw_r2": 0.6001574745493856, + "channel_cells": 2540, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.07790034309482201, + "curve": [ + 1, + 0.2343127719115604, + 0.13645960041925387, + 0.07719477300765931, + 0.045245140090723, + 0.02559713410228004, + 0.0128598982688084, + 0.005656625383418379, + 0.0020255027783827595, + 0.0005551261496654636, + 7.862976624251061e-7 + ] + }, + "drainage_density_per_km": 0.4586541441561704, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.5603636783948205, + "median_deg": 0.3434614999156087, + "p90_deg": 3.3818570446253196, + "median_relief_m": 7.301409721374512, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.000001403191699840457, + "median_elev_m": 3.2061429023742676, + "cells": 712661 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.13177877043489336, + "median_deg": 6.882440891472541, + "p90_deg": 20.07302891961029, + "median_relief_m": 61.22549247741699, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.004898743391768202, + "median_elev_m": 12.189573287963867, + "cells": 167594 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.3078575511702861, + "median_deg": 28.90238757182441, + "p90_deg": 36.06063269317746, + "median_relief_m": 176.66146779060364, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.31931049631188574, + "median_elev_m": 87.013671875, + "cells": 391528 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/Seed_5365/preview.png b/RawContent/World/Seed_5365/preview.png new file mode 100644 index 0000000..c306b0b --- /dev/null +++ b/RawContent/World/Seed_5365/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f77177887450a5c4b654cc315becdfe5f0b5aade5bd5b67eb5b619b5e3a6a18 +size 954427 diff --git a/RawContent/World/Seed_5365/preview_detail.png b/RawContent/World/Seed_5365/preview_detail.png new file mode 100644 index 0000000..7e29e4c --- /dev/null +++ b/RawContent/World/Seed_5365/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:296ec630efd092abddf8bd243e42057a474975815ebb44386b217a9b19de86b3 +size 61448 diff --git a/RawContent/World/Seed_5365/thumb.png b/RawContent/World/Seed_5365/thumb.png new file mode 100644 index 0000000..59d242e --- /dev/null +++ b/RawContent/World/Seed_5365/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a00d4427452ca9e5b32380760deda917e40c33802a967eec6cc1f15212daf930 +size 83809 diff --git a/RawContent/World/Seed_67914/geology_flow.png b/RawContent/World/Seed_67914/geology_flow.png new file mode 100644 index 0000000..2905c6f --- /dev/null +++ b/RawContent/World/Seed_67914/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ae14f71cbf11aeb7ca2af9cb5cfb12461b8ba72c75d7400aa8e4ae7afc7bd1e +size 692270 diff --git a/RawContent/World/Seed_67914/geology_height.png b/RawContent/World/Seed_67914/geology_height.png new file mode 100644 index 0000000..082c661 --- /dev/null +++ b/RawContent/World/Seed_67914/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:888f7c5fb88db324e82598ef96892ff518b534162443d9d0b55d5ecd6046d9e2 +size 1108425 diff --git a/RawContent/World/Seed_67914/map_basins.png b/RawContent/World/Seed_67914/map_basins.png new file mode 100644 index 0000000..bb2ffc2 --- /dev/null +++ b/RawContent/World/Seed_67914/map_basins.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2594e045a879bb393b7b66e89fd86af8f486b76e662e5656d90cc29f4db045a +size 323307 diff --git a/RawContent/World/Seed_67914/map_coast.png b/RawContent/World/Seed_67914/map_coast.png new file mode 100644 index 0000000..01fbb27 --- /dev/null +++ b/RawContent/World/Seed_67914/map_coast.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33957b0bfa14c94ee43c787e81bdd5cd64e96c68e2408842ad57877977db6ac4 +size 178212 diff --git a/RawContent/World/Seed_67914/map_erodibility.png b/RawContent/World/Seed_67914/map_erodibility.png new file mode 100644 index 0000000..ae8d21b --- /dev/null +++ b/RawContent/World/Seed_67914/map_erodibility.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88a3879243f77cb97a5e206edee3d1deb922163fefd3f8c4c74422ca2f39f9ee +size 75475 diff --git a/RawContent/World/Seed_67914/map_exposure.png b/RawContent/World/Seed_67914/map_exposure.png new file mode 100644 index 0000000..01bacd7 --- /dev/null +++ b/RawContent/World/Seed_67914/map_exposure.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56725efde41a099f5006ad4108747a298aae9acd36dd936d61c552087c2ca89e +size 520518 diff --git a/RawContent/World/Seed_67914/map_flow.png b/RawContent/World/Seed_67914/map_flow.png new file mode 100644 index 0000000..3fd1adc --- /dev/null +++ b/RawContent/World/Seed_67914/map_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dea11f16046659d09aa25d8a7dba5b982c130692e7dca2b9177f0ddeea94f51f +size 1370920 diff --git a/RawContent/World/Seed_67914/map_relief.png b/RawContent/World/Seed_67914/map_relief.png new file mode 100644 index 0000000..859dbc7 --- /dev/null +++ b/RawContent/World/Seed_67914/map_relief.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:753d4c3eb9b6284a9c2f90d0a29a1825052da36832c81a5de804fa46e5fa1cdc +size 378856 diff --git a/RawContent/World/Seed_67914/map_slope.png b/RawContent/World/Seed_67914/map_slope.png new file mode 100644 index 0000000..d5f1760 --- /dev/null +++ b/RawContent/World/Seed_67914/map_slope.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9460d8c73711b2446b2057896345adb58fa297000c5be15bf6d9767992a42f1a +size 1355794 diff --git a/RawContent/World/Seed_67914/map_uplift.png b/RawContent/World/Seed_67914/map_uplift.png new file mode 100644 index 0000000..c72fffe --- /dev/null +++ b/RawContent/World/Seed_67914/map_uplift.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99f085661e46c37aaa580d67d0b4da6c849e63161b112ac02aeaefa38600d062 +size 487676 diff --git a/RawContent/World/Seed_67914/meta.json b/RawContent/World/Seed_67914/meta.json new file mode 100644 index 0000000..0a53695 --- /dev/null +++ b/RawContent/World/Seed_67914/meta.json @@ -0,0 +1,349 @@ +{ + "coast": { + "shoreline_km": 121.07888491779842, + "sea_fraction": 0.35074387755102043, + "shelf_pct_of_sea": 96.21255997577059, + "surf_cut_m3": 42339874.81357887, + "river_load_m3": 3496993.954832353, + "laid_m3": 44506501.02712501, + "unplaced_m3": 1330367.7015654328, + "river_mouths": 14, + "planed_km2": 3.311536436778849, + "beach_km2": 6.808320538565022, + "drowned_km2": 0, + "backshore_m": 5.011405944824219, + "backshore_p90_m": 120.35001373291016, + "exposure_p10": 0, + "exposure_p50": 0.4688587188720703, + "exposure_p90": 1 + }, + "elapsed_s": 276.2745213, + "generated_at": "2026-09-17T13:53:50Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 67914, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3, + "outline_octaves": 8, + "outline_gain": 0.62 + }, + "coast": { + "enabled": true, + "shelf_km": [ + 0.6, + 3 + ], + "steep_coast_m": 300, + "slope_km": 1.6, + "shelf_exponent": 0.7, + "roughness_m": 10, + "rough_wavelength_m": 1200, + "fetch_directions": 16, + "fetch_range_m": 1500, + "surf_reach_m": 110, + "platform_grade": 0.02, + "cut_fraction": 0.85, + "deposit_reach_m": 350, + "deposit_depth_m": 25, + "shelter_bias": 1.5, + "berm_m": 2, + "drift_m": 300, + "river_m3_per_km2": 120000, + "river_exponent": 0.6, + "river_channel_km2": 0.5 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2, + "critical_slope_deg": 35, + "slope_cap": 0.9, + "max_hillslope_substeps": 24 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 67914, + "stats": { + "land_fraction": 0.6492561224489796, + "clip_fraction": 0, + "relief_m": 734.893798828125, + "min_m": -177.95045471191406, + "max_m": 556.943359375, + "land_min_m": 1.401298464324817e-44, + "land_max_m": 556.943359375, + "land_relief_m": 556.943359375, + "slopes": { + "under_15_deg": 0.7244978947649665, + "under_30_deg": 0.8660995079140806, + "over_50_deg": 0.003408924813483538, + "median_deg": 1.8241909292013103 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.5644822599162542, + "n": 933 + }, + { + "log_area": 6.375, + "log_slope": -2.7464634064591977, + "n": 847 + }, + { + "log_area": 6.625, + "log_slope": -2.987842463306101, + "n": 463 + }, + { + "log_area": 6.875, + "log_slope": -3.01844248741651, + "n": 350 + }, + { + "log_area": 7.125, + "log_slope": -3.147072478455281, + "n": 44 + } + ], + "exponent": -0.5748638072141512, + "raw_exponent": -0.7908451053122917, + "expected": -0.5, + "r2": 0.9444954281570626, + "raw_r2": 0.8616215759931519, + "channel_cells": 2637, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.0698711977585277, + "curve": [ + 1, + 0.20925124671720075, + 0.11592701851883869, + 0.07264121734292461, + 0.046418114294066504, + 0.026886342454708778, + 0.014699711286543016, + 0.00736242890215022, + 0.0032910505114959188, + 0.0007402506164826406, + 7.858286799056202e-7 + ] + }, + "drainage_density_per_km": 0.5098078969372436, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.5819304981682334, + "median_deg": 0.2643951462656629, + "p90_deg": 2.549245095711488, + "median_relief_m": 5.133490592241287, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.000005401529443061803, + "median_elev_m": 1.261344313621521, + "cells": 740531 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.11090557325416371, + "median_deg": 6.5366603345941785, + "p90_deg": 18.748185841460266, + "median_relief_m": 49.364609718322754, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.006192784060312331, + "median_elev_m": 11.276684761047363, + "cells": 141132 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.30716392857760294, + "median_deg": 28.12141723170582, + "p90_deg": 36.10770601304755, + "median_relief_m": 166.89758276939392, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.32330209604506766, + "median_elev_m": 84.72608947753906, + "cells": 390879 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/Seed_67914/preview.png b/RawContent/World/Seed_67914/preview.png new file mode 100644 index 0000000..b76f18e --- /dev/null +++ b/RawContent/World/Seed_67914/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c1652c70dd5fb7ca781016493f762e0ea2444e0bdad719c10f1d40a6a498131 +size 868196 diff --git a/RawContent/World/Seed_67914/preview_detail.png b/RawContent/World/Seed_67914/preview_detail.png new file mode 100644 index 0000000..62fed7f --- /dev/null +++ b/RawContent/World/Seed_67914/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ede9187b4006bd9289defd066d537a7ac1f8cfa28c828539a0baf565be1a7ac0 +size 77771 diff --git a/RawContent/World/Seed_67914/thumb.png b/RawContent/World/Seed_67914/thumb.png new file mode 100644 index 0000000..7379744 --- /dev/null +++ b/RawContent/World/Seed_67914/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c48f1dce7824000c4bfeb29b3e385b64bfbc292733011c8e4f88de6884088e21 +size 77917 diff --git a/RawContent/World/Seed_9342/geology_flow.png b/RawContent/World/Seed_9342/geology_flow.png new file mode 100644 index 0000000..8aa6f2d --- /dev/null +++ b/RawContent/World/Seed_9342/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36f77f119bc0c05e86e1e3490b4dd9f8c47e164ea12032b24a063f1ec30c3f45 +size 675641 diff --git a/RawContent/World/Seed_9342/geology_height.png b/RawContent/World/Seed_9342/geology_height.png new file mode 100644 index 0000000..3c0f776 --- /dev/null +++ b/RawContent/World/Seed_9342/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fb739d41e6d58639ad7fd82c0e4ccc40a815f0ad12867e2465954e1cece98cf +size 1194785 diff --git a/RawContent/World/Seed_9342/map_basins.png b/RawContent/World/Seed_9342/map_basins.png new file mode 100644 index 0000000..457676d --- /dev/null +++ b/RawContent/World/Seed_9342/map_basins.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4d88fcdef0356b198ec6ac3a718036a1deefd327b15652066768df93e4b7d52 +size 108427 diff --git a/RawContent/World/Seed_9342/map_erodibility.png b/RawContent/World/Seed_9342/map_erodibility.png new file mode 100644 index 0000000..f122dee --- /dev/null +++ b/RawContent/World/Seed_9342/map_erodibility.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b01d007f801b6951daa949a22679075aca5f867bc916ab72e13f5413e4e0c52 +size 56635 diff --git a/RawContent/World/Seed_9342/map_flow.png b/RawContent/World/Seed_9342/map_flow.png new file mode 100644 index 0000000..044855f --- /dev/null +++ b/RawContent/World/Seed_9342/map_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2df4bf09f0022ee0d883a2de224c83eca6042cbdc034459e0ff5abcbe1c1997 +size 1287130 diff --git a/RawContent/World/Seed_9342/map_relief.png b/RawContent/World/Seed_9342/map_relief.png new file mode 100644 index 0000000..d206ffc --- /dev/null +++ b/RawContent/World/Seed_9342/map_relief.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:356a114f1725f9c510d51466c7131f81d4c08903adc9ec1d508c0eb0f19e7797 +size 514444 diff --git a/RawContent/World/Seed_9342/map_slope.png b/RawContent/World/Seed_9342/map_slope.png new file mode 100644 index 0000000..60e6852 --- /dev/null +++ b/RawContent/World/Seed_9342/map_slope.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7c178711c93cbb6f01e8c7c01fe873a9d95655776ea9e77ffec272af13108e9 +size 1358773 diff --git a/RawContent/World/Seed_9342/map_uplift.png b/RawContent/World/Seed_9342/map_uplift.png new file mode 100644 index 0000000..8dba9ae --- /dev/null +++ b/RawContent/World/Seed_9342/map_uplift.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0af05320409b69aecc93d7962ecf1596bdbf1eadcb240915eed0b89249f998be +size 582431 diff --git a/RawContent/World/Seed_9342/meta.json b/RawContent/World/Seed_9342/meta.json new file mode 100644 index 0000000..8202af1 --- /dev/null +++ b/RawContent/World/Seed_9342/meta.json @@ -0,0 +1,309 @@ +{ + "elapsed_s": 243.9890145, + "generated_at": "2026-09-17T12:18:05Z", + "geology_cell_m": 10.207290922087205, + "geology_size": 1400, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 9342, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.03, + "intraplate_swell_mm_yr": 0.08, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 15, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 0, + "channel_taper": 2, + "critical_slope_deg": 35, + "slope_cap": 0.9, + "max_hillslope_substeps": 24 + }, + "thermal": { + "coarse_passes": 2, + "every": 4, + "fine_passes": 24, + "talus_deg": 35 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 9342, + "stats": { + "land_fraction": 0.6169535714285714, + "clip_fraction": 0, + "relief_m": 812.2389526367188, + "min_m": -178.77781677246094, + "max_m": 633.4611206054688, + "land_min_m": 0.00019495678134262562, + "land_max_m": 633.4611206054688, + "land_relief_m": 633.4609256486874, + "slopes": { + "under_15_deg": 0.5414210211630717, + "under_30_deg": 0.690898911620545, + "over_50_deg": 0.003836328768165531, + "median_deg": 9.39130222106862 + }, + "slope_area": { + "bins": [ + { + "log_area": 6.125, + "log_slope": -2.4504012829667374, + "n": 794 + }, + { + "log_area": 6.375, + "log_slope": -2.512756266330689, + "n": 397 + }, + { + "log_area": 6.625, + "log_slope": -2.656867113983284, + "n": 300 + }, + { + "log_area": 6.875, + "log_slope": -2.818631643278141, + "n": 117 + }, + { + "log_area": 7.125, + "log_slope": -2.745526402546549, + "n": 32 + }, + { + "log_area": 7.375, + "log_slope": -3.53656896861973, + "n": 389 + } + ], + "exponent": -0.7189615275665606, + "raw_exponent": -1.047144116269105, + "expected": -0.5, + "r2": 0.7342249158069706, + "raw_r2": 0.6155115645694202, + "channel_cells": 2029, + "threshold_km2": 1 + }, + "hypsometry": { + "integral": 0.12457783270964158, + "curve": [ + 1, + 0.34998085556995406, + 0.24264634738333268, + 0.1684875238685145, + 0.10772814743940151, + 0.061315929406258074, + 0.028496670192329154, + 0.010998743827678625, + 0.003599814427209358, + 0.0005606878432455886, + 8.269732201249269e-7 + ] + }, + "drainage_density_per_km": 0.41157090459239387, + "uplift_buckets": [ + { + "name": "plain", + "lo_mm_yr": 0, + "hi_mm_yr": 0.1, + "land_fraction": 0.4537602058832529, + "median_deg": 0.3254615767701104, + "p90_deg": 3.633314896511541, + "median_relief_m": 22.65010666847229, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.008279569892473118, + "median_elev_m": 2.020932674407959, + "cells": 548700 + }, + { + "name": "rolling", + "lo_mm_yr": 0.1, + "hi_mm_yr": 0.5, + "land_fraction": 0.10446656505922369, + "median_deg": 9.688988211710662, + "p90_deg": 28.7743757194525, + "median_relief_m": 141.72243271023035, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.024951711472087648, + "median_elev_m": 12.096170425415039, + "cells": 126324 + }, + { + "name": "mountain", + "lo_mm_yr": 0.5, + "hi_mm_yr": 100, + "land_fraction": 0.4417732290575234, + "median_deg": 33.70684681183145, + "p90_deg": 36.52926682773351, + "median_relief_m": 266.6409664154053, + "relief_window_m": 489.9499642601859, + "near_talus_fraction": 0.5420765436489737, + "median_elev_m": 143.13929748535156, + "cells": 534205 + } + ] + } +} \ No newline at end of file diff --git a/RawContent/World/Seed_9342/preview.png b/RawContent/World/Seed_9342/preview.png new file mode 100644 index 0000000..de99ee2 --- /dev/null +++ b/RawContent/World/Seed_9342/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5629dcbc857dc5370bbf207f2534a552814183ebbce7efb738fd462177bf7ae6 +size 850118 diff --git a/RawContent/World/Seed_9342/preview_detail.png b/RawContent/World/Seed_9342/preview_detail.png new file mode 100644 index 0000000..ef3b222 --- /dev/null +++ b/RawContent/World/Seed_9342/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16395aed81e26b6998ac08a20ab41a930bb869393be246944215f939b6c788b8 +size 38896 diff --git a/RawContent/World/Seed_9342/thumb.png b/RawContent/World/Seed_9342/thumb.png new file mode 100644 index 0000000..35a8897 --- /dev/null +++ b/RawContent/World/Seed_9342/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:809e3b7ad1c803fe001670247f201f68016533eb922f662a4c2da16599a4ebfc +size 78071 diff --git a/RawContent/World/T1/geology_flow.png b/RawContent/World/T1/geology_flow.png new file mode 100644 index 0000000..4619871 --- /dev/null +++ b/RawContent/World/T1/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1264e0c9f1575f3e0a2ed7429c17360ce4189345549110d46147470b4c9901be +size 676439 diff --git a/RawContent/World/T1/geology_height.png b/RawContent/World/T1/geology_height.png new file mode 100644 index 0000000..a841732 --- /dev/null +++ b/RawContent/World/T1/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17a8857e166ba49fd8e3efa4213855a6b8644dd99495b01900fa704ae026ad35 +size 1944534 diff --git a/RawContent/World/T1/meta.json b/RawContent/World/T1/meta.json new file mode 100644 index 0000000..155a77f --- /dev/null +++ b/RawContent/World/T1/meta.json @@ -0,0 +1,284 @@ +{ + "elapsed_s": 326.5677557, + "generated_at": "2026-09-17T10:33:10Z", + "geology_cell_m": 8.930581613508442, + "geology_size": 1600, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 1.5 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 100000 + }, + "thermal": { + "coarse_passes": 3, + "every": 1, + "fine_passes": 24, + "talus_deg": 22 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.617614453125, + "clip_fraction": 0, + "relief_m": 2523.750244140625, + "min_m": -177.8711700439453, + "max_m": 2345.879150390625, + "land_min_m": 0.07955958694219589, + "land_max_m": 2345.879150390625, + "land_relief_m": 2345.799590803683, + "slopes": { + "under_15_deg": 0.08682601213211368, + "under_30_deg": 0.32270840488193925, + "over_50_deg": 0.1977258769724488, + "median_deg": 37.19245235357433 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.3829677817518173, + "n": 671 + }, + { + "log_area": 5.625, + "log_slope": -1.491944632656208, + "n": 1535 + }, + { + "log_area": 5.875, + "log_slope": -1.5344233725664702, + "n": 1921 + }, + { + "log_area": 6.125, + "log_slope": -1.686380151777066, + "n": 1955 + }, + { + "log_area": 6.375, + "log_slope": -1.82768522281245, + "n": 1378 + }, + { + "log_area": 6.625, + "log_slope": -1.9555891456025845, + "n": 797 + }, + { + "log_area": 6.875, + "log_slope": -2.262808788090177, + "n": 836 + }, + { + "log_area": 7.125, + "log_slope": -2.798701663653139, + "n": 329 + }, + { + "log_area": 7.375, + "log_slope": -2.3608195554881743, + "n": 556 + }, + { + "log_area": 7.625, + "log_slope": -2.2095832125629036, + "n": 242 + } + ], + "exponent": -0.5260665363463296, + "raw_exponent": -0.49108523187983144, + "expected": -0.5, + "r2": 0.7743413167919169, + "raw_r2": 0.6723622240905114, + "channel_cells": 10220, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.5422157880850027, + "curve": [ + 1, + 0.999273287529576, + 0.964846470131738, + 0.8432704464569762, + 0.6541911196874567, + 0.49558122134498095, + 0.4069488638555733, + 0.30617427311359924, + 0.18029110242092017, + 0.059090768221730205, + 6.324738646146244e-7 + ] + }, + "drainage_density_per_km": 0.7260582054429987 + } +} \ No newline at end of file diff --git a/RawContent/World/T1/preview.png b/RawContent/World/T1/preview.png new file mode 100644 index 0000000..6dea06f --- /dev/null +++ b/RawContent/World/T1/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3e0776a914150df868c82d987012fd4c049337bf752cb30f7619eb11599d5ea +size 1006917 diff --git a/RawContent/World/T1/preview_detail.png b/RawContent/World/T1/preview_detail.png new file mode 100644 index 0000000..a9eb314 --- /dev/null +++ b/RawContent/World/T1/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c3972f174838655dafedbb325e7ae80e34f25167590e4a6d9a03bbbb486420d +size 130660 diff --git a/RawContent/World/T1/thumb.png b/RawContent/World/T1/thumb.png new file mode 100644 index 0000000..446780a --- /dev/null +++ b/RawContent/World/T1/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b3794623b5210955c81c29db1261c8ffaaf6175228230c469ebdd6f4231b48c +size 68220 diff --git a/RawContent/World/T2/geology_flow.png b/RawContent/World/T2/geology_flow.png new file mode 100644 index 0000000..501665d --- /dev/null +++ b/RawContent/World/T2/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:988bf700354ff9b8dde3331a5c5ab3b6240d8ae85f6ada3b6f49f0e4a3dae166 +size 696141 diff --git a/RawContent/World/T2/geology_height.png b/RawContent/World/T2/geology_height.png new file mode 100644 index 0000000..0ad4616 --- /dev/null +++ b/RawContent/World/T2/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f11e210a51604a64052711c0c80f9ff97a2756f80938280f6b40e91e81a6eff9 +size 1945953 diff --git a/RawContent/World/T2/meta.json b/RawContent/World/T2/meta.json new file mode 100644 index 0000000..2b7c904 --- /dev/null +++ b/RawContent/World/T2/meta.json @@ -0,0 +1,279 @@ +{ + "elapsed_s": 331.5852201, + "generated_at": "2026-09-17T10:38:41Z", + "geology_cell_m": 8.930581613508442, + "geology_size": 1600, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 1.2 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 30000 + }, + "thermal": { + "coarse_passes": 3, + "every": 1, + "fine_passes": 24, + "talus_deg": 20 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.617614453125, + "clip_fraction": 0, + "relief_m": 2069.958251953125, + "min_m": -177.8711700439453, + "max_m": 1892.087158203125, + "land_min_m": 0.07955958694219589, + "land_max_m": 1892.087158203125, + "land_relief_m": 1892.0075986161828, + "slopes": { + "under_15_deg": 0.06540601975974848, + "under_30_deg": 0.3961050994470281, + "over_50_deg": 0.09558324526134765, + "median_deg": 33.534773510302486 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.465258145734109, + "n": 1758 + }, + { + "log_area": 5.625, + "log_slope": -1.511641646629868, + "n": 2512 + }, + { + "log_area": 5.875, + "log_slope": -1.6374660707948783, + "n": 2302 + }, + { + "log_area": 6.125, + "log_slope": -1.7553484194936293, + "n": 1948 + }, + { + "log_area": 6.375, + "log_slope": -1.7512406437236727, + "n": 1389 + }, + { + "log_area": 6.625, + "log_slope": -2.1551854305820233, + "n": 988 + }, + { + "log_area": 6.875, + "log_slope": -2.40291331515698, + "n": 1040 + }, + { + "log_area": 7.125, + "log_slope": -2.0759286510124806, + "n": 569 + }, + { + "log_area": 7.375, + "log_slope": -2.219222768985019, + "n": 322 + } + ], + "exponent": -0.4426300670642713, + "raw_exponent": -0.3919403164667242, + "expected": -0.5, + "r2": 0.8154896979153298, + "raw_r2": 0.6079390174006236, + "channel_cells": 12828, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.5473224909589679, + "curve": [ + 1, + 0.9993042787489413, + 0.982174989074014, + 0.907774558485807, + 0.7421770888872444, + 0.5316999063306207, + 0.3783521905416063, + 0.2582801897168604, + 0.1301694460730647, + 0.03851829082792724, + 6.324738646146244e-7 + ] + }, + "drainage_density_per_km": 0.9112554554657692 + } +} \ No newline at end of file diff --git a/RawContent/World/T2/preview.png b/RawContent/World/T2/preview.png new file mode 100644 index 0000000..d625f7e --- /dev/null +++ b/RawContent/World/T2/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb70e459df25488fe7255cfbff8b5c88f66427a72e8a919867b30b3baeb3c695 +size 1140762 diff --git a/RawContent/World/T2/preview_detail.png b/RawContent/World/T2/preview_detail.png new file mode 100644 index 0000000..86a4046 --- /dev/null +++ b/RawContent/World/T2/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:378748a5ce69fb076a3c11ce82ccceda40c323bc27a3d1e1a830c44eca84b3bd +size 159424 diff --git a/RawContent/World/T2/thumb.png b/RawContent/World/T2/thumb.png new file mode 100644 index 0000000..d8bf8bc --- /dev/null +++ b/RawContent/World/T2/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0830d4ffd0e2e39b58cef7957478e4104c6c0ebbd03dc65fa6ccac3df97f87bc +size 76794 diff --git a/RawContent/World/T3/geology_flow.png b/RawContent/World/T3/geology_flow.png new file mode 100644 index 0000000..de315bc --- /dev/null +++ b/RawContent/World/T3/geology_flow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c56109419d6618c29f85cb4dd4018b41b4d46cbc13cd673a018919151a9abb48 +size 664407 diff --git a/RawContent/World/T3/geology_height.png b/RawContent/World/T3/geology_height.png new file mode 100644 index 0000000..c545205 --- /dev/null +++ b/RawContent/World/T3/geology_height.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:147fed412463b36057b995d7834f3d31244d605de2e0e336daa56cbb3d78b95b +size 1975511 diff --git a/RawContent/World/T3/meta.json b/RawContent/World/T3/meta.json new file mode 100644 index 0000000..875635c --- /dev/null +++ b/RawContent/World/T3/meta.json @@ -0,0 +1,284 @@ +{ + "elapsed_s": 327.4871227, + "generated_at": "2026-09-17T10:44:09Z", + "geology_cell_m": 8.930581613508442, + "geology_size": 1600, + "manifest": { + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { + "min": -460, + "max": 2800 + }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { + "kind": "noise", + "seed": 7, + "path": "", + "elevation_m": null, + "width": 0, + "flip_y": false, + "smooth_passes": 0 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18, + "wear_rock_start": 0.35, + "ridge_rock": 0.6, + "deposit_softens": 0.7 + }, + "pipeline": { + "geology_factor": 4, + "continent": { + "enabled": true, + "radius": 0.62, + "coast_warp": 0.28, + "sea_floor_m": [ + -180, + -30 + ], + "land_fraction": 0.62, + "radial_bias": 0.85, + "shore_width_pct": 3 + }, + "plates": { + "count": 6, + "velocity_cm_yr": [ + 1, + 5 + ], + "convergent_mm_yr": [ + 1, + 1.5 + ], + "band_km": [ + 2, + 4 + ], + "divergent_mm_yr": [ + -2, + -1 + ], + "rift_km": [ + 3, + 6 + ], + "intraplate_mm_yr": 0.25, + "intraplate_swell_mm_yr": 0.9, + "low_uplift_fraction": [ + 0.2, + 0.4 + ] + }, + "faults": { + "major": [ + 3, + 6 + ], + "minor": [ + 10, + 30 + ], + "length_km": [ + 2, + 15 + ], + "spacing_km": [ + 1, + 4 + ], + "throw_major_m": [ + 100, + 400 + ], + "throw_minor_m": [ + 20, + 80 + ], + "strike_slip_m": [ + 200, + 800 + ] + }, + "lithology": { + "types": 3, + "k_multipliers": [ + 0.5, + 1, + 3 + ] + }, + "relief": { + "octaves": 7, + "gain": 0.45, + "base_frequency_m": 4000, + "amplitude_m": [ + 50, + 150 + ], + "crest_weight": 0.12 + }, + "fluvial": { + "k": 0.00005, + "m": 0.5, + "n": 1, + "dt_yr": 1500, + "steps": 1000, + "diffusion_m2_yr": 0.02, + "fill_every": 1, + "critical_area_m2": 100000 + }, + "thermal": { + "coarse_passes": 3, + "every": 1, + "fine_passes": 24, + "talus_deg": 26 + }, + "strata": { + "period_m": 160, + "contrast": 0.6 + }, + "detail": { + "octaves": 4, + "amplitude_m": [ + 2, + 8 + ] + }, + "particle": { + "droplets": 9000000, + "lifetime": 40, + "scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "max_speed": 5, + "max_load": 2, + "inertia": 0.1, + "capacity": 2, + "min_slope": 0.01, + "erode_rate": 0.2, + "deposit_rate": 0.2, + "evaporation": 0.02, + "gravity": 4, + "batch": 200000 + } + }, + "erosion": { + "coarse_droplets": 800000, + "coarse_factor": 4, + "coarse_lifetime": 120, + "enabled": true, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "max_change": 0.2, + "min_erode_slope": 0.25, + "strata_contrast": 0.6, + "strata_period_m": 160, + "talus_deg": 35, + "thermal_passes": 24 + } + }, + "preview": true, + "seed": 7, + "stats": { + "land_fraction": 0.617614453125, + "clip_fraction": 0, + "relief_m": 2524.494873046875, + "min_m": -177.8711700439453, + "max_m": 2346.623779296875, + "land_min_m": 0.07955958694219589, + "land_max_m": 2346.623779296875, + "land_relief_m": 2346.544219709933, + "slopes": { + "under_15_deg": 0.09305714464614036, + "under_30_deg": 0.2576540405909077, + "over_50_deg": 0.22902447863598152, + "median_deg": 39.11425933721167 + }, + "slope_area": { + "bins": [ + { + "log_area": 5.375, + "log_slope": -1.3866585639468505, + "n": 737 + }, + { + "log_area": 5.625, + "log_slope": -1.4741553638106213, + "n": 1763 + }, + { + "log_area": 5.875, + "log_slope": -1.544219387045104, + "n": 2131 + }, + { + "log_area": 6.125, + "log_slope": -1.6744886894957003, + "n": 1870 + }, + { + "log_area": 6.375, + "log_slope": -1.8031837005589917, + "n": 1476 + }, + { + "log_area": 6.625, + "log_slope": -1.9553670759136426, + "n": 694 + }, + { + "log_area": 6.875, + "log_slope": -2.2467428422197475, + "n": 787 + }, + { + "log_area": 7.125, + "log_slope": -2.414496376619396, + "n": 363 + }, + { + "log_area": 7.375, + "log_slope": -2.405071622149998, + "n": 576 + }, + { + "log_area": 7.625, + "log_slope": -2.2191457702411927, + "n": 263 + } + ], + "exponent": -0.49040313809509933, + "raw_exponent": -0.48336137038643895, + "expected": -0.5, + "r2": 0.9017917380631265, + "raw_r2": 0.8041436975372874, + "channel_cells": 10660, + "threshold_km2": 0.2 + }, + "hypsometry": { + "integral": 0.5388483396060368, + "curve": [ + 1, + 0.9983245767326779, + 0.9582921434729014, + 0.8368647511563203, + 0.6491604225684384, + 0.48944812227996704, + 0.4011623604683595, + 0.3010860208729025, + 0.17944801475941008, + 0.06078200333566719, + 6.324738646146244e-7 + ] + }, + "drainage_density_per_km": 0.7570778595577113 + } +} \ No newline at end of file diff --git a/RawContent/World/T3/preview.png b/RawContent/World/T3/preview.png new file mode 100644 index 0000000..d66dd98 --- /dev/null +++ b/RawContent/World/T3/preview.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffac7aed498e01030d17b0e3facd9d959148db476eb260890e5eda99e814c666 +size 1022200 diff --git a/RawContent/World/T3/preview_detail.png b/RawContent/World/T3/preview_detail.png new file mode 100644 index 0000000..eecaa3b --- /dev/null +++ b/RawContent/World/T3/preview_detail.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e766d930155fa860fe2946385d85f37361669a5703f9e5e20d824d99b03dae24 +size 129794 diff --git a/RawContent/World/T3/thumb.png b/RawContent/World/T3/thumb.png new file mode 100644 index 0000000..2c0d9c2 --- /dev/null +++ b/RawContent/World/T3/thumb.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d499c1ba504a526bd405b24f5bbe7e630941df97081e734b6c700f3f2c66649b +size 69823 diff --git a/RawContent/World/World.json b/RawContent/World/World.json new file mode 100644 index 0000000..1b164e5 --- /dev/null +++ b/RawContent/World/World.json @@ -0,0 +1,33 @@ +{ + "_comment": "The contract between the heightmap source and L_World. Read by Scripts/Authoring/generate_heightmap.py and create_world.py through world_manifest.py; see README.md next to this file.", + "level": "/Game/Maps/L_World", + "vertices_per_side": 4081, + "quad_cm": 350, + "elevation_m": { "min": -460, "max": 2800 }, + "sea_level_m": 0, + "spawn_pad_m": 150, + "streaming_grid_components": 1, + "source": { "kind": "noise", "seed": 7 }, + "erosion": { + "enabled": true, + "coarse_factor": 4, + "coarse_droplets": 800000, + "coarse_lifetime": 120, + "fine_droplets": 2000000, + "fine_lifetime": 40, + "fine_scale": 0.5, + "min_erode_slope": 0.25, + "max_change": 0.2, + "thermal_passes": 24, + "talus_deg": 35, + "strata_period_m": 160, + "strata_contrast": 0.6 + }, + "layers": { + "rock_slope_start": 0.55, + "rock_slope_full": 1.05, + "high_altitude_start_m": 1400, + "high_altitude_full_m": 2000, + "breakup_m": 18 + } +} diff --git a/Salty.uproject b/Salty.uproject index a01076c..e31e2b6 100644 --- a/Salty.uproject +++ b/Salty.uproject @@ -83,6 +83,10 @@ { "Name": "LiveCodingToolset", "Enabled": true + }, + { + "Name": "AllToolsets", + "Enabled": true } ] } \ No newline at end of file diff --git a/Scripts/Authoring/create_world.py b/Scripts/Authoring/create_world.py index 7308611..f5980ee 100644 --- a/Scripts/Authoring/create_world.py +++ b/Scripts/Authoring/create_world.py @@ -1,15 +1,19 @@ -"""Builds /Game/Maps/L_World: a world-partitioned level with a ~200 km2 landscape from the heightmap PNGs in -RawContent/World/Heightmaps/, the Elite_RockyMeadows landscape material, daylight and a player start. Rebuilds -from scratch every run; the level is a product of this script and the PNGs, never hand-edited. +"""Builds /Game/Maps/L_World: a world-partitioned level with the landscape that RawContent/World/World.json +describes, imported from the PNGs in RawContent/World/Heightmaps/ and dressed as Elite_RockyMeadows dresses its +demo maps: the pack's landscape material and three paint layers, its sun with the moving cloud shadows, its +skybox dome, sky light, height fog and post-process settings (numbers read from the pack's maps with +dump_level.py), plus a sea plane at sea level and two player starts on the spawn pad. Rebuilds from scratch +every run; the level is a product of this script, the manifest and the PNGs, never hand-edited. - UnrealEditor-Cmd.exe Salty.uproject -run=pythonscript -script=Scripts/Authoring/create_world.py + UnrealEditor-Cmd.exe Salty.uproject -run=pythonscript -script=Scripts/Authoring/create_world.py -AllowCommandletRendering -Swapping the terrain later: replace L_World_Height.png (16-bit greyscale, any resolution the landscape -supports) and the three L_World_.png weightmaps, or rerun generate_heightmap.py with another seed, -then rerun this. If the PNGs are missing this script generates them first. +-AllowCommandletRendering matters: the landscape's render heightmaps come from the edit-layer merge on the GPU, +and a commandlet without it silently skips that, leaving a landscape with collision but no visible surface. -Size: 4033 vertices a side at 350 cm a quad is 14.11 km a side, 199 km2. Z scale 500 spans -1280 m to -+1280 m, so 65535 in the PNG is 1280 m above the landscape origin and sea level (0.18 of the range) is -820 m. +Swapping the terrain: point the manifest's source at a real heightmap (or change the seed), rerun +generate_heightmap.py, then rerun this. If the PNGs are missing or the wrong size this script generates them +first. The landscape's component layout is the engine's choice for the resolution: 4081 vertices a side gives +16x16 components of 255 quads, each its own streaming proxy (see RawContent/World/README.md before changing it). """ import os import shutil @@ -20,20 +24,53 @@ import unreal HERE = os.path.dirname(os.path.abspath(__file__)) sys.path.insert(0, HERE) sys.path.insert(0, os.path.join(HERE, ".pylib")) +import heightmap_io # noqa: E402 +from world_manifest import LAYER_FILES, load_manifest # noqa: E402 -LEVEL_PATH = "/Game/Maps/L_World" -HEIGHTMAP_DIR = os.path.normpath(os.path.join(HERE, "..", "..", "RawContent", "World", "Heightmaps")) -HEIGHTMAP = os.path.join(HEIGHTMAP_DIR, "L_World_Height.png") PACK = "/Game/Elite_RockyMeadows" LANDSCAPE_MATERIAL = f"{PACK}/Materials/M_Landscape_Main_Inst_RockyMeadows02" -LAYER_INFOS = { # layer info asset -> weightmap file - f"{PACK}/Materials/Material_Layers/Base_Layer_LayerInfo": "L_World_Base_Layer.png", - f"{PACK}/Materials/Material_Layers/Layer_02_LayerInfo": "L_World_Layer_02.png", - f"{PACK}/Materials/Material_Layers/Layer_03_LayerInfo": "L_World_Layer_03.png", +LAYER_INFOS = { # paint layer name -> the pack's layer info asset; the weightmap file comes from the manifest module + "Base_Layer": f"{PACK}/Materials/Material_Layers/Base_Layer_LayerInfo", + "Layer_02": f"{PACK}/Materials/Material_Layers/Layer_02_LayerInfo", + "Layer_03": f"{PACK}/Materials/Material_Layers/Layer_03_LayerInfo", } -QUAD_SCALE_CM = 350.0 -Z_SCALE = 500.0 -GRID_SIZE_COMPONENTS = 4 # streaming proxies of 4x4 components (4 x 126 quads x 3.5 m = 1.76 km a side) +SKYBOX_MESH = f"{PACK}/Materials/Skybox/Skybox_Mesh" +SKYBOX_MATERIAL = f"{PACK}/Materials/Skybox/M_Skybox_Inst_RockyMeadows" +CLOUD_SHADOWS = f"{PACK}/Materials/Light_Material/M_Cloud_Shadows_Inst02" +SEA_MESH = "/Engine/BasicShapes/Plane" +SEA_MATERIAL = "/Engine/EngineMaterials/WaterMaterial" + +# The pack's Rocky_Meadows_01 demo map, as dump_level.py read it. Distances are scaled up where the demo's +# 8 km scene would otherwise cut the effect short on a 14 km world. +PACK_SUN = { + "rotation": unreal.Rotator(roll=-51.273, pitch=-31.342, yaw=36.413), # keyword arguments: positional order is roll, pitch, yaw + "intensity": 9.2368, + "light_color": unreal.Color(r=223, g=245, b=255, a=255), + "light_function_scale": unreal.Vector(1024.0, 1024.0, 1024.0), + "light_function_fade_distance": 2000000.0, # the demo fades its cloud shadows out at 2 km; keep them to 20 km here + "dynamic_shadow_distance_movable_light": 200000.0, + "cascade_distribution_exponent": 3.0, + "light_source_angle": 0.5357, + "shadow_bias": 0.5, +} +PACK_SKY_LIGHT = {"intensity": 1.5, "lower_hemisphere_color": unreal.LinearColor(0.0, 0.0, 0.0, 1.0), "sky_distance_threshold": 150000.0} +PACK_FOG = { + "fog_density": 0.027143, + "fog_height_falloff": 0.039076, + "fog_inscattering_luminance": unreal.LinearColor(0.238715, 0.329426, 0.458333, 1.0), + "directional_inscattering_luminance": unreal.LinearColor(0.25, 0.20832, 0.154948, 1.0), + "directional_inscattering_exponent": 4.0, + "directional_inscattering_start_distance": 10000.0, +} +PACK_POST_PROCESS = { # FPostProcessSettings field -> value; the override flag of each is set alongside + "auto_exposure_min_brightness": 1.0, + "auto_exposure_max_brightness": 1.0, + "auto_exposure_bias": 0.263034, + "color_saturation": unreal.Vector4(1.0, 1.0, 1.0, 1.25), +} + +manifest = load_manifest() +LEVEL_PATH = manifest.level level_subsystem = unreal.get_editor_subsystem(unreal.LevelEditorSubsystem) actor_subsystem = unreal.get_editor_subsystem(unreal.EditorActorSubsystem) @@ -41,14 +78,42 @@ editor_subsystem = unreal.get_editor_subsystem(unreal.UnrealEditorSubsystem) asset_lib = unreal.EditorAssetLibrary +def load_or_raise(asset_path): + asset = unreal.load_asset(asset_path) + if not asset: + raise RuntimeError(f"{asset_path} not found; is the pack in Content/?") + return asset + + +def set_properties(target, values): + for name, value in values.items(): + target.set_editor_property(name, value) + + +def keep_always_loaded(actor): + """World partition streams actors by their bounds; the sky dome and the sea are the whole world and must + not stream at all.""" + try: + actor.set_editor_property("is_spatially_loaded", False) + except Exception as error: + unreal.log_warning(f"{actor.get_actor_label()}: could not clear is_spatially_loaded ({error}); it will stream by bounds") + + def ensure_heightmaps(): - missing = [f for f in [HEIGHTMAP] + [os.path.join(HEIGHTMAP_DIR, f) for f in LAYER_INFOS.values()] if not os.path.isfile(f)] - if not missing: + files = [manifest.heightmap_path] + [manifest.weightmap_path(name) for name in LAYER_FILES] + reason = None + missing = [f for f in files if not os.path.isfile(f)] + if missing: + reason = f"missing {missing}" + else: + width, height, depth, _ = heightmap_io.read_png_header(manifest.heightmap_path) + if (width, height, depth) != (manifest.vertices_per_side, manifest.vertices_per_side, 16): + reason = f"{manifest.heightmap_path} is {width}x{height} at {depth} bit, the manifest wants {manifest.vertices_per_side} at 16" + if reason is None: return - unreal.log(f"generating heightmaps, missing {missing}") + unreal.log(f"generating heightmaps: {reason}") import generate_heightmap - sys.argv = ["generate_heightmap.py"] - generate_heightmap.main() + generate_heightmap.main([]) def spawn(actor_class, label, location=unreal.Vector(0, 0, 0), rotation=unreal.Rotator(0, 0, 0)): @@ -57,39 +122,84 @@ def spawn(actor_class, label, location=unreal.Vector(0, 0, 0), rotation=unreal.R return actor -def recreate_level(): +KEEP_CLASSES = {"WorldSettings", "WorldDataLayers", "WorldPartitionMiniMap"} # what a fresh partitioned level has + + +def content_path(): + return os.path.abspath(unreal.Paths.convert_relative_path_to_full(unreal.Paths.project_content_dir())) + + +def external_actor_dir(): + return os.path.join(content_path(), "__ExternalActors__", LEVEL_PATH.replace("/Game/", "", 1)) + + +def prepare_level(): + """An empty level to build into. An existing level is loaded and emptied rather than deleted and recreated: + recreating it resaves its two HLOD layer assets, and an open editor that has had the level loaded keeps + those files locked, so the recreation ends in a nameless temp world whose save goes nowhere (2026-09-16). + Streaming proxies the editor does not load cannot be destroyed here; sweep_stale_actor_packages removes + their files after the save.""" if asset_lib.does_asset_exist(LEVEL_PATH): - unreal.log(f"{LEVEL_PATH} exists; deleting it and its external actors") - level_subsystem.new_level("/Temp/Untitled_Scratch", False) # do not delete the level we stand in - asset_lib.delete_asset(LEVEL_PATH) - # The external actor packages of streaming proxies cannot be loaded on their own, so the asset library - # refuses to delete the folder; remove what is left on disk instead. - content_dir = unreal.Paths.project_content_dir() - for folder in ("__ExternalActors__/Maps/L_World", "__ExternalObjects__/Maps/L_World"): - path = os.path.join(content_dir, folder) - if os.path.isdir(path): - shutil.rmtree(path, ignore_errors=True) - level_subsystem.new_level(LEVEL_PATH, True) # world-partitioned: 200 km2 must stream + if not level_subsystem.load_level(LEVEL_PATH): + raise RuntimeError(f"could not load {LEVEL_PATH}") + removed = 0 + for actor in actor_subsystem.get_all_level_actors(): + if actor.get_class().get_name() in KEEP_CLASSES: + continue + actor_subsystem.destroy_actor(actor) + removed += 1 + unreal.log(f"{LEVEL_PATH} loaded and emptied: {removed} loaded actors removed") + else: + folder = external_actor_dir() + if os.path.isdir(folder): + shutil.rmtree(folder, ignore_errors=True) + level_subsystem.new_level(LEVEL_PATH, True) # world-partitioned: 200 km2 must stream + world_path = editor_subsystem.get_editor_world().get_path_name() + if not world_path.startswith(LEVEL_PATH): + raise RuntimeError(f"the editor world is {world_path}, not {LEVEL_PATH}; a save would go nowhere") + + +def sweep_stale_actor_packages(): + """After the save: every file under the level's external actor folder that belongs to none of the level's + actors is a leftover of an earlier build (a proxy the editor never loaded, so it could not be destroyed). + Left there, it would come back as a second landscape the next time the level loads.""" + keep = set() + for actor in actor_subsystem.get_all_level_actors(): + package = actor.get_outermost().get_path_name() # /Game/__ExternalActors__/Maps/L_World/1/YM/XXXX + keep.add(os.path.normcase(os.path.join(content_path(), package.replace("/Game/", "", 1).replace("/", os.sep) + ".uasset"))) + removed, failed = 0, 0 + for root, _, files in os.walk(external_actor_dir()): + for name in files: + path = os.path.join(root, name) + if os.path.normcase(path) in keep: + continue + try: + os.remove(path) + removed += 1 + except OSError as error: + failed += 1 + unreal.log_warning(f"stale actor package {path} could not be removed: {error}") + unreal.log(f"stale actor packages: {removed} removed, {failed} left, {len(keep)} kept") + if failed: + raise RuntimeError(f"{failed} stale actor packages remain under {external_actor_dir()}; the level would load duplicates") def create_landscape(): - material = unreal.load_asset(LANDSCAPE_MATERIAL) - if not material: - raise RuntimeError(f"landscape material {LANDSCAPE_MATERIAL} not found; is the pack in Content/?") + material = load_or_raise(LANDSCAPE_MATERIAL) weightmaps = [] - for asset_path, file_name in LAYER_INFOS.items(): - layer_info = unreal.load_asset(asset_path) - if not layer_info: - raise RuntimeError(f"layer info {asset_path} not found") + for layer_name, asset_path in LAYER_INFOS.items(): entry = unreal.LandscapeAuthoringWeightmap() - entry.set_editor_property("layer_info", layer_info) - entry.set_editor_property("file", os.path.join(HEIGHTMAP_DIR, file_name)) + entry.set_editor_property("layer_info", load_or_raise(asset_path)) + entry.set_editor_property("file", manifest.weightmap_path(layer_name)) weightmaps.append(entry) world = editor_subsystem.get_editor_world() + unreal.log(f"landscape: {manifest.describe()}") landscape = unreal.LandscapeAuthoringLibrary.create_landscape_from_heightmap( - world, HEIGHTMAP, weightmaps, material, - unreal.Vector(0, 0, 0), unreal.Vector(QUAD_SCALE_CM, QUAD_SCALE_CM, Z_SCALE), GRID_SIZE_COMPONENTS) + world, manifest.heightmap_path, weightmaps, material, + unreal.Vector(0.0, 0.0, manifest.landscape_z_cm), + unreal.Vector(manifest.quad_cm, manifest.quad_cm, manifest.z_scale), + manifest.streaming_grid_components) if not landscape: raise RuntimeError("landscape creation failed; see LogSaltyEditor") return landscape @@ -97,7 +207,8 @@ def create_landscape(): def ground_height_at(x, y, fallback): world = editor_subsystem.get_editor_world() - start, end = unreal.Vector(x, y, 200000.0), unreal.Vector(x, y, -200000.0) + reach = manifest.elevation_max_m * 100.0 + 100000.0 + start, end = unreal.Vector(x, y, reach), unreal.Vector(x, y, -reach) hit = unreal.SystemLibrary.line_trace_single(world, start, end, unreal.TraceTypeQuery.ECC_VISIBILITY, False, [], unreal.DrawDebugTrace.NONE, True) if hit and hit.to_tuple()[0]: @@ -106,24 +217,62 @@ def ground_height_at(x, y, fallback): return fallback -def ensure_daylight(): - # Keyword arguments on purpose: positional unreal.Rotator is (roll, pitch, yaw), and a sun pitched upward is night. - sun = spawn(unreal.DirectionalLight, "World_Sun", unreal.Vector(0, 0, 50000), unreal.Rotator(roll=0.0, pitch=-38.0, yaw=25.0)) - sun.light_component.set_editor_property("intensity", 10.0) - sun.light_component.set_editor_property("atmosphere_sun_light", True) - sun.light_component.set_editor_property("dynamic_shadow_distance_movable_light", 60000.0) - spawn(unreal.SkyAtmosphere, "World_Sky") +def dress_with_rocky_meadows(): + """The pack's sky, sun, fog and grade, so L_World reads like its demo maps.""" + sun = spawn(unreal.DirectionalLight, "World_Sun", unreal.Vector(0, 0, 50000), PACK_SUN["rotation"]) + light = sun.light_component + light.set_editor_property("mobility", unreal.ComponentMobility.MOVABLE) + set_properties(light, {k: v for k, v in PACK_SUN.items() if k != "rotation"}) + light.set_editor_property("light_function_material", load_or_raise(CLOUD_SHADOWS)) + sky_light = spawn(unreal.SkyLight, "World_SkyLight", unreal.Vector(0, 0, 50000)) - sky_light.light_component.set_editor_property("real_time_capture", True) - spawn(unreal.VolumetricCloud, "World_Clouds") - fog = spawn(unreal.ExponentialHeightFog, "World_Fog") - fog.component.set_editor_property("fog_density", 0.005) - fog.component.set_editor_property("fog_height_falloff", 0.05) + sky_light.light_component.set_editor_property("mobility", unreal.ComponentMobility.MOVABLE) + set_properties(sky_light.light_component, PACK_SKY_LIGHT) + + # The pack's skybox is a textured dome mesh, not a sky atmosphere. Scale it so the whole world sits inside + # with room to spare, and sink its centre so the dome's equator is below the sea from any shore. + mesh = load_or_raise(SKYBOX_MESH) + native_radius = max(mesh.get_bounds().sphere_radius, 1.0) + radius = manifest.side_m * 100.0 * 1.1 + skybox = spawn(unreal.StaticMeshActor, "World_Skybox", unreal.Vector(0.0, 0.0, -radius * 0.25)) + skybox.static_mesh_component.set_editor_property("mobility", unreal.ComponentMobility.MOVABLE) + skybox.static_mesh_component.set_static_mesh(mesh) + skybox.static_mesh_component.set_material(0, load_or_raise(SKYBOX_MATERIAL)) + skybox.static_mesh_component.set_editor_property("cast_shadow", False) + skybox.static_mesh_component.set_collision_enabled(unreal.CollisionEnabled.NO_COLLISION) + skybox.set_actor_scale3d(unreal.Vector(radius / native_radius, radius / native_radius, radius / native_radius)) + keep_always_loaded(skybox) + unreal.log(f"skybox dome radius {radius / 100000:.1f} km (mesh radius {native_radius:g} cm, scale {radius / native_radius:g})") + + fog = spawn(unreal.ExponentialHeightFog, "World_Fog", unreal.Vector(0.0, 0.0, manifest.sea_level_z_cm)) + set_properties(fog.component, PACK_FOG) + + post = spawn(unreal.PostProcessVolume, "World_PostProcess") + post.set_editor_property("unbound", True) + settings = post.get_editor_property("settings") + for field, value in PACK_POST_PROCESS.items(): + settings.set_editor_property(f"override_{field}", True) + settings.set_editor_property(field, value) + post.set_editor_property("settings", settings) + + +def ensure_sea(): + """A flat plane at sea level with the engine's water material: enough to read as sea until a water body + replaces it. It keeps collision so a walk off the coast is a walk, not a fall to the sea floor.""" + mesh = load_or_raise(SEA_MESH) + material = unreal.load_asset(SEA_MATERIAL) or load_or_raise("/Engine/BasicShapes/BasicShapeMaterial") + side = manifest.side_m * 100.0 * 1.5 / 100.0 # the plane is 100 cm; cover the world and the sea beyond its edge + sea = spawn(unreal.StaticMeshActor, "World_Sea_Proto", unreal.Vector(0.0, 0.0, manifest.sea_level_z_cm)) + sea.static_mesh_component.set_static_mesh(mesh) + sea.static_mesh_component.set_material(0, material) + sea.static_mesh_component.set_editor_property("cast_shadow", False) + sea.set_actor_scale3d(unreal.Vector(side, side, 1.0)) + keep_always_loaded(sea) def ensure_player_starts(): # The heightmap has a flat pad at its centre; two starts so two PIE clients spawn without a warning. - fallback = (0.24 * 65535.0 - 32768.0) / 128.0 * Z_SCALE + fallback = manifest.sea_level_z_cm + 15000.0 z = ground_height_at(0.0, 0.0, fallback) + 120.0 for index, y in enumerate((-200.0, 200.0)): spawn(unreal.PlayerStart, f"World_PlayerStart_{index}", unreal.Vector(0.0, y, z)) @@ -131,12 +280,15 @@ def ensure_player_starts(): def main(): ensure_heightmaps() - recreate_level() + prepare_level() landscape = create_landscape() - ensure_daylight() + dress_with_rocky_meadows() + ensure_sea() ensure_player_starts() - level_subsystem.save_current_level() + if not level_subsystem.save_current_level(): + raise RuntimeError(f"saving {LEVEL_PATH} failed; see the log above") unreal.EditorLoadingAndSavingUtils.save_dirty_packages(True, True) + sweep_stale_actor_packages() unreal.log(f"{LEVEL_PATH} saved with landscape {landscape.get_actor_label()}") diff --git a/Scripts/Authoring/dump_level.py b/Scripts/Authoring/dump_level.py new file mode 100644 index 0000000..5a1208e --- /dev/null +++ b/Scripts/Authoring/dump_level.py @@ -0,0 +1,160 @@ +"""Dumps the actors of one or more levels to JSON, so a reference level (a pack's demo map) can be read without +opening it in the editor: class, label, transform, and the properties that matter for lighting, sky, fog, +post-processing and landscape. Written for reading Elite_RockyMeadows' demo maps while building L_World. + + UnrealEditor-Cmd.exe Salty.uproject -run=pythonscript -script="Scripts/Authoring/dump_level.py /Game/Elite_RockyMeadows/Maps/Rocky_Meadows_01" + +Levels come from the script arguments, else from the SALTY_DUMP_LEVELS environment variable (semicolon +separated), else the pack's first demo map. Output: Saved/Authoring/.json, one per level. +""" +import json +import os +import sys + +import unreal + +HERE = os.path.dirname(os.path.abspath(__file__)) +OUT_DIR = os.path.normpath(os.path.join(HERE, "..", "..", "Saved", "Authoring")) +DEFAULT_LEVELS = ["/Game/Elite_RockyMeadows/Maps/Rocky_Meadows_01"] + +# Component class name -> editor properties worth reading. Missing ones are skipped, so the list can be generous. +COMPONENT_PROPERTIES = { + "DirectionalLightComponent": [ + "intensity", "light_color", "use_temperature", "temperature", "light_function_material", "light_function_scale", + "light_function_fade_distance", "atmosphere_sun_light", "cast_shadows", "dynamic_shadow_distance_movable_light", + "dynamic_shadow_distance_stationary_light", "num_dynamic_shadow_cascades", "cascade_distribution_exponent", + "cascade_transition_fraction", "shadow_distance_fadeout_fraction", "light_source_angle", "shadow_bias", + "volumetric_scattering_intensity", "cast_cloud_shadows", "cast_volumetric_shadow", "indirect_lighting_intensity", + "mobility", "specular_scale", + ], + "SkyLightComponent": [ + "intensity", "light_color", "source_type", "cubemap", "cubemap_resolution", "source_cubemap_angle", "real_time_capture", + "lower_hemisphere_color", "sky_distance_threshold", "cast_shadows", "volumetric_scattering_intensity", + "indirect_lighting_intensity", "occlusion_max_distance", "mobility", + ], + "ExponentialHeightFogComponent": [ + "fog_density", "fog_height_falloff", "second_fog_data", "fog_inscattering_luminance", "skybox_inscattering_color_cubemap", + "fog_inscattering_luminance_scale", "directional_inscattering_luminance", "directional_inscattering_exponent", + "directional_inscattering_start_distance", "fog_max_opacity", "start_distance", "end_distance", "fog_cutoff_distance", + "volumetric_fog", "volumetric_fog_scattering_distribution", "volumetric_fog_albedo", "volumetric_fog_emissive", + "volumetric_fog_extinction_scale", "volumetric_fog_distance", "volumetric_fog_start_distance", + "volumetric_fog_near_fade_in_distance", "volumetric_fog_static_lighting_scattering_intensity", + ], + "StaticMeshComponent": ["static_mesh", "cast_shadow", "visible"], + "SkyAtmosphereComponent": ["rayleigh_scattering_scale", "mie_scattering_scale", "aerial_pespective_view_distance_scale"], + "VolumetricCloudComponent": ["layer_bottom_altitude", "layer_height", "material"], +} +ACTOR_PROPERTIES = { + "Landscape": ["landscape_material", "landscape_hole_material", "component_size_quads", "subsection_size_quads", "num_subsections", + "static_lighting_lod", "lod_distribution_setting", "lod0_distribution_setting", "lod0_screen_size", + "streaming_distance_multiplier", "collision_mip_level", "nanite_lod_index", "enable_nanite", "target_display_order"], + "LandscapeStreamingProxy": ["landscape_material", "component_size_quads", "subsection_size_quads", "num_subsections"], + "PostProcessVolume": ["unbound", "enabled", "priority", "blend_weight"], + "Actor": ["hidden"], +} + + +def encode(value): + """A JSON-able rendering of a Python-wrapped Unreal value.""" + if value is None or isinstance(value, (bool, int, float, str)): + return value + if isinstance(value, unreal.Object): + return value.get_path_name() + if isinstance(value, (unreal.Name, unreal.Text)): + return str(value) + if isinstance(value, (unreal.Vector, unreal.Rotator, unreal.LinearColor, unreal.Color, unreal.Vector2D, unreal.IntPoint)): + return list(value.to_tuple()) + if isinstance(value, unreal.Array): + return [encode(v) for v in value] + return str(value) + + +def read_properties(obj, names): + out = {} + for name in names: + try: + out[name] = encode(obj.get_editor_property(name)) + except Exception: + pass + return out + + +def overridden_post_process(settings): + """The FPostProcessSettings fields whose override flag is set, with their values.""" + out = {} + for name in dir(settings): + if not name.startswith("override_"): + continue + try: + if not settings.get_editor_property(name): + continue + field = name[len("override_"):] + out[field] = encode(settings.get_editor_property(field)) + except Exception: + pass + return out + + +def dump_actor(actor): + class_name = actor.get_class().get_name() + record = { + "class": class_name, + "label": actor.get_actor_label(), + "location": list(actor.get_actor_location().to_tuple()), + "rotation": list(actor.get_actor_rotation().to_tuple()), # the tuple order is (roll, pitch, yaw) + "scale": list(actor.get_actor_scale3d().to_tuple()), + } + for key, names in ACTOR_PROPERTIES.items(): + if key == "Actor" or class_name.startswith(key): + record.update(read_properties(actor, names)) + if class_name.startswith("PostProcessVolume"): + try: + record["settings"] = overridden_post_process(actor.get_editor_property("settings")) + except Exception as error: + record["settings_error"] = str(error) + components = {} + for component in actor.get_components_by_class(unreal.ActorComponent): + component_class = component.get_class().get_name() + for key, names in COMPONENT_PROPERTIES.items(): + if component_class == key or component_class.startswith(key): + entry = read_properties(component, names) + if isinstance(component, unreal.SceneComponent): + entry["relative_location"] = list(component.get_editor_property("relative_location").to_tuple()) + entry["relative_rotation"] = list(component.get_editor_property("relative_rotation").to_tuple()) + entry["relative_scale3d"] = list(component.get_editor_property("relative_scale3d").to_tuple()) + if isinstance(component, unreal.MeshComponent): + entry["materials"] = [encode(m) for m in component.get_materials()] + components[f"{component_class}:{component.get_name()}"] = entry + if class_name.startswith("Landscape"): + try: + components["landscape_component_count"] = len(actor.get_editor_property("landscape_components")) + except Exception: + pass + record["components"] = components + return record + + +def dump_level(level_path): + unreal.log(f"dump_level: loading {level_path}") + level_subsystem = unreal.get_editor_subsystem(unreal.LevelEditorSubsystem) + if not level_subsystem.load_level(level_path): + unreal.log_error(f"dump_level: could not load {level_path}") + return + actor_subsystem = unreal.get_editor_subsystem(unreal.EditorActorSubsystem) + actors = [dump_actor(actor) for actor in actor_subsystem.get_all_level_actors()] + os.makedirs(OUT_DIR, exist_ok=True) + out_path = os.path.join(OUT_DIR, level_path.rsplit("/", 1)[-1] + ".json") + with open(out_path, "w", encoding="utf-8") as f: + json.dump({"level": level_path, "actors": actors}, f, indent=2) + unreal.log(f"dump_level: {len(actors)} actors of {level_path} written to {out_path}") + + +def main(): + levels = [a for a in sys.argv[1:] if a.startswith("/")] + if not levels and os.environ.get("SALTY_DUMP_LEVELS"): + levels = [p for p in os.environ["SALTY_DUMP_LEVELS"].split(";") if p] + for level in levels or DEFAULT_LEVELS: + dump_level(level) + + +main() diff --git a/Scripts/Authoring/generate_heightmap.py b/Scripts/Authoring/generate_heightmap.py index 4b66a93..d1e8803 100644 --- a/Scripts/Authoring/generate_heightmap.py +++ b/Scripts/Authoring/generate_heightmap.py @@ -1,161 +1,174 @@ -"""Generates a seeded heightmap and three weightmaps for L_World, as 16-bit and 8-bit greyscale PNGs. +"""Writes the heightmap and the three weightmaps of L_World to RawContent/World/Heightmaps/ from the manifest +RawContent/World/World.json: 16-bit greyscale height, 8-bit greyscale weights, sized for the landscape. -Pure numpy, no engine: run it with any Python that has numpy, or let create_world.py call it. The output is -plain files under RawContent/World/Heightmaps/, so swapping the terrain later is dropping in a different PNG of -any resolution and rerunning create_world.py; nothing else in the project knows how the terrain was made. +Pure numpy, no engine: run it with the engine's Python (numpy lives in Scripts/Authoring/.pylib, see +bootstrap-pylib.sh), or let create_world.py call it when the PNGs are missing. - UE_5.8/Engine/Binaries/ThirdParty/Python3/Win64/python.exe Scripts/Authoring/generate_heightmap.py [--seed N] [--size 4033] + D:/UE_5.8/Engine/Binaries/ThirdParty/Python3/Win64/python.exe Scripts/Authoring/generate_heightmap.py + ... --seed 12 # another noise continent, manifest otherwise as is + ... --source-file RawContent/World/Sources/dem.png --source-elevation 0 2400 # a real heightmap, this once -The shape, in metres, with the default scale in create_world.py (350 cm per quad, Z scale 500): - a continent with ragged coasts and sea around it, lowland plains, rolling hills, one or two mountain ranges - along a low-frequency band, thermal smoothing so slopes read as slopes, and a flat 200 m pad at the centre - for the player start. Weightmaps: base (grass) everywhere, layer 2 (rock) by slope, layer 3 by altitude. +The manifest names the source. Noise builds a continent with heightmap_noise.py. A file (16-bit PNG or raw +.r16 from any DEM tool) is cropped to a square, read as its own elevation range, resampled onto the world and +re-encoded into the world's range; the paint layers are then derived from the height exactly as for noise, +so swapping to a real heightmap is a manifest edit and a rerun, nothing else. Either way a flat spawn pad is +blended into the centre so the player starts stand on level ground. """ import argparse import os -import struct import sys -import zlib +import time HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) sys.path.insert(0, os.path.join(HERE, ".pylib")) import numpy as np # noqa: E402 -OUT_DIR = os.path.normpath(os.path.join(HERE, "..", "..", "RawContent", "World", "Heightmaps")) -SEA_LEVEL = 0.18 # fraction of the 16-bit range that is sea; create_world.py places the water plane here -PAD_RADIUS_FRACTION = 0.01 # flat spawn pad, as a fraction of the map width +import heightmap_erosion # noqa: E402 +import heightmap_io # noqa: E402 +import heightmap_noise # noqa: E402 +from world_manifest import DERIVED_FILES, HEIGHTMAP_DIR, LAYER_FILES, MANIFEST_PATH, load_manifest # noqa: E402 + +LAYER_DEFAULTS = { + "rock_slope_start": 0.55, # rise over run where rock starts to show through the meadow (about 29 degrees) + "rock_slope_full": 1.05, # and where it is all rock (about 46 degrees) + "high_altitude_start_m": 1100, # where the high rock layer starts + "high_altitude_full_m": 1650, # and where it has taken over + "breakup_m": 18, # noise added to the altitude before the rules, so boundaries are not contour lines + "wear_rock_start": 0.35, # scraped bedrock (wear map, 0..1) reads as rock from here + "ridge_rock": 0.6, # how much convex curvature (ridges, shoulders) adds rock + "deposit_softens": 0.7, # how much laid-down sediment (deposit map, 0..1) takes rock away: fans and basins are meadow +} -def write_png(path, data): - """Greyscale PNG, 8 or 16 bit from the array dtype. Row filter 0, one zlib stream.""" - if data.dtype == np.uint16: - depth, payload = 16, data.astype(">u2") - else: - depth, payload = 8, data.astype(np.uint8) - height, width = data.shape - raw = b"".join(b"\x00" + payload[y].tobytes() for y in range(height)) - - def chunk(kind, body): - return struct.pack(">I", len(body)) + kind + body + struct.pack(">I", zlib.crc32(kind + body) & 0xFFFFFFFF) - - ihdr = struct.pack(">IIBBBBB", width, height, depth, 0, 0, 0, 0) - with open(path, "wb") as f: - f.write(b"\x89PNG\r\n\x1a\n" + chunk(b"IHDR", ihdr) + chunk(b"IDAT", zlib.compress(raw, 6)) + chunk(b"IEND", b"")) +def source_height_metres(manifest, size): + """The world's height in metres, size x size, from whichever source the manifest names.""" + source = manifest.source + kind = source.get("kind", "noise") + quad_m = manifest.quad_cm / 100.0 + if kind == "noise": + seed = int(source.get("seed", 7)) + print(f"noise source, seed {seed}") + return heightmap_noise.generate_metres(size, seed, quad_m, manifest.sea_level_m) + if kind == "file": + path = manifest.resolve(source["path"]) + print(f"file source {path}") + values = heightmap_io.read_heightmap(path, source.get("width")) + if source.get("flip_y", False): + values = values[::-1] + values = heightmap_io.center_crop_square(values) + elevation = source.get("elevation_m", {"min": manifest.elevation_min_m, "max": manifest.elevation_max_m}) + low, high = float(elevation["min"]), float(elevation["max"]) + metres = low + values.astype(np.float32) / 65535.0 * (high - low) + print(f" {values.shape[1]}x{values.shape[0]} samples spanning {low:g}..{high:g} m, resampled to {size}x{size}") + metres = heightmap_io.resample(metres, size) + smooth = int(source.get("smooth_passes", 0)) + if smooth > 0: + metres = heightmap_noise.box_blur(metres, smooth) + return metres + raise ValueError(f"{manifest.path}: unknown source kind {kind!r}; use 'noise' or 'file'") -def smoothstep(t): - return t * t * (3.0 - 2.0 * t) - - -def value_noise(size, cells, rng): - """One octave: a random lattice of cells x cells, smoothly interpolated to size x size. Tileable enough.""" - lattice = rng.random((cells + 1, cells + 1), dtype=np.float32) - coords = np.linspace(0.0, cells, size, endpoint=False, dtype=np.float32) - i = np.floor(coords).astype(np.int32) - t = smoothstep(coords - i) - i1 = np.minimum(i + 1, cells) - top = lattice[i[:, None], i[None, :]] * (1 - t[None, :]) + lattice[i[:, None], i1[None, :]] * t[None, :] - bottom = lattice[i1[:, None], i[None, :]] * (1 - t[None, :]) + lattice[i1[:, None], i1[None, :]] * t[None, :] - return top * (1 - t[:, None]) + bottom * t[:, None] - - -def fbm(size, rng, base_cells=4, octaves=8, gain=0.5, ridged=False): - total = np.zeros((size, size), dtype=np.float32) - amplitude, cells, norm = 1.0, base_cells, 0.0 - for _ in range(octaves): - n = value_noise(size, cells, rng) - if ridged: - n = 1.0 - np.abs(n * 2.0 - 1.0) - n = n * n - total += n * amplitude - norm += amplitude - amplitude *= gain - cells *= 2 - return total / norm - - -def box_blur(h, passes): - for _ in range(passes): - padded = np.pad(h, 1, mode="edge") - h = (padded[:-2, 1:-1] + padded[2:, 1:-1] + padded[1:-1, :-2] + padded[1:-1, 2:] + h) / 5.0 - return h.astype(np.float32) - - -def thermal_smooth(h, passes, talus): - """Cheap erosion: where a cell is much higher than a neighbour, move a little material downhill.""" - for _ in range(passes): - padded = np.pad(h, 1, mode="edge") - for dy, dx in ((0, 1), (0, -1), (1, 0), (-1, 0)): - neighbour = padded[1 + dy:1 + dy + h.shape[0], 1 + dx:1 + dx + h.shape[1]] - diff = h - neighbour - move = np.where(diff > talus, (diff - talus) * 0.25, 0.0).astype(np.float32) - h -= move - return h - - -def generate(size, seed): - rng = np.random.default_rng(seed) +def apply_spawn_pad(metres, manifest): + """A flat disc at the centre for the player starts, blended into the terrain over a second radius.""" + if manifest.spawn_pad_m <= 0: + return metres + size = metres.shape[0] + radius = manifest.spawn_pad_m / manifest.side_m y, x = np.mgrid[0:size, 0:size].astype(np.float32) / (size - 1) - - # Continent: a radial falloff with a ragged, noise-warped edge, so the coast is not a circle. - cx, cy = 0.5 + (rng.random() - 0.5) * 0.15, 0.5 + (rng.random() - 0.5) * 0.15 - radius = np.sqrt(((x - cx) * 1.05) ** 2 + ((y - cy) * 0.95) ** 2) - coast_warp = (fbm(size, rng, base_cells=3, octaves=5) - 0.5) * 0.35 - continent = np.clip(1.0 - (radius + coast_warp) / 0.55, 0.0, 1.0) - continent = smoothstep(np.clip(continent * 1.6, 0.0, 1.0)) - - plains = fbm(size, rng, base_cells=6, octaves=4) * 0.06 - hills = fbm(size, rng, base_cells=12, octaves=6, gain=0.5) * 0.22 - # Mountain ranges: ridged noise, masked by a low-frequency band so they come as ranges, not everywhere. - range_band = fbm(size, rng, base_cells=3, octaves=3) - range_mask = smoothstep(np.clip((range_band - 0.47) / 0.2, 0.0, 1.0)) - mountains = fbm(size, rng, base_cells=10, octaves=8, gain=0.5, ridged=True) * range_mask - - land = 0.05 + plains + hills * (0.4 + 0.6 * continent) + mountains * 0.75 - height = SEA_LEVEL + continent * land - # The sea floor keeps a little shape so the shore is not a hard step. - sea_floor = SEA_LEVEL - 0.03 - (1.0 - continent) * 0.04 + plains * 0.3 - height = np.where(continent > 0.02, height, np.maximum(sea_floor, 0.0)).astype(np.float32) - height = np.maximum(height, sea_floor.astype(np.float32)) - - height = thermal_smooth(height, passes=6, talus=0.0025) - - # A flat pad at the centre for the player start, blended into the terrain around it. - pad_radius = PAD_RADIUS_FRACTION - pad_dist = np.sqrt((x - 0.5) ** 2 + (y - 0.5) ** 2) - pad_weight = smoothstep(np.clip(1.0 - (pad_dist - pad_radius) / pad_radius, 0.0, 1.0)) - pad_height = max(float(height[size // 2, size // 2]), SEA_LEVEL + 0.06) - height = height * (1 - pad_weight) + pad_height * pad_weight - - height = np.clip(height, 0.0, 1.0) - - # Weightmaps from the finished shape. Slope is per quad in height-range units; the thresholds are guesses - # to be tuned by eye in the editor. - gy, gx = np.gradient(box_blur(height, 3)) - slope = np.sqrt(gx * gx + gy * gy) * size - rock = smoothstep(np.clip((slope - 1.8) / 1.6, 0.0, 1.0)) - high = smoothstep(np.clip((height - 0.5) / 0.16, 0.0, 1.0)) * (1.0 - rock * 0.5) - base = np.clip(1.0 - rock - high, 0.0, 1.0) - total = base + rock + high - weights = [np.rint(w / total * 255.0).astype(np.uint8) for w in (base, rock, high)] - - return np.rint(height * 65535.0).astype(np.uint16), weights + dist = np.sqrt((x - 0.5) ** 2 + (y - 0.5) ** 2) + weight = heightmap_noise.smoothstep(np.clip(1.0 - (dist - radius) / radius, 0.0, 1.0)) + centre = float(metres[size // 2, size // 2]) + pad_height = max(centre, manifest.sea_level_m + 150.0) # never a pad in the sea + return (metres * (1 - weight) + pad_height * weight).astype(np.float32) -def main(): - parser = argparse.ArgumentParser() - parser.add_argument("--seed", type=int, default=7) - parser.add_argument("--size", type=int, default=4033, help="vertices per side; 4033 fits 32x32 components of 126 quads") - parser.add_argument("--out", default=OUT_DIR) - args = parser.parse_args() +def derived_maps(metres, maps, manifest): + """The erosion's leftovers squashed to [0, 1]: flow (log scaled), wear, deposit, and a curvature map with + 0.5 flat, convex above, concave below.""" + curve = heightmap_erosion.curvature(metres, manifest.quad_cm / 100.0) + scale = max(float(np.percentile(np.abs(curve), 99.0)), 1e-6) + return { + "flow": heightmap_erosion.to_unit(maps["flow"], 99.5, log_scale=True), + "wear": heightmap_erosion.to_unit(maps["wear"], 99.0), + "deposit": heightmap_erosion.to_unit(maps["deposit"], 99.0), + "curvature": np.clip(0.5 + curve / scale * 0.5, 0.0, 1.0).astype(np.float32), + } + + +def derive_layers(metres, derived, manifest, rng): + """Rocky Meadows' three paint layers from the finished height and what the erosion left: meadow everywhere, + rock by slope, on scraped bedrock and on convex ridges, less rock where sediment was laid down, high rock + by altitude. Returns {layer name: uint8 weightmap}, the three summing to 255.""" + rules = {**LAYER_DEFAULTS, **manifest.layers} + quad_m = manifest.quad_cm / 100.0 + size = metres.shape[0] + + breakup = (heightmap_noise.fbm(size, rng, base_cells=24, octaves=4) - 0.5) * 2.0 * float(rules["breakup_m"]) + gy, gx = np.gradient(heightmap_noise.box_blur(metres, 2), quad_m) + slope = np.sqrt(gx * gx + gy * gy) + slope_breakup = breakup / float(rules["breakup_m"]) * 0.12 if rules["breakup_m"] else 0.0 + + rock = heightmap_noise.smoothstep(np.clip( + (slope + slope_breakup - rules["rock_slope_start"]) / (rules["rock_slope_full"] - rules["rock_slope_start"]), 0.0, 1.0)) + scraped = heightmap_noise.smoothstep(np.clip((derived["wear"] - rules["wear_rock_start"]) / (1.0 - rules["wear_rock_start"]), 0.0, 1.0)) + convex = np.clip((derived["curvature"] - 0.5) * 2.0, 0.0, 1.0) * np.clip(slope / rules["rock_slope_start"], 0.0, 1.0) + rock = np.maximum(rock, np.maximum(scraped * 0.9, convex * rules["ridge_rock"])) + rock = rock * (1.0 - rules["deposit_softens"] * derived["deposit"] * (slope < rules["rock_slope_full"])) + high = heightmap_noise.smoothstep(np.clip( + (metres + breakup - rules["high_altitude_start_m"]) / (rules["high_altitude_full_m"] - rules["high_altitude_start_m"]), 0.0, 1.0)) + high = high * (1.0 - rock * 0.5) + meadow = np.clip(1.0 - rock - high, 0.0, 1.0) + total = np.maximum(meadow + rock + high, 1e-6) + # The pack's names are not what they sound like: Base_Layer is its rock, Layer_02 its grass, Layer_03 its + # high rock (read from the textures its layer functions sample). + weights = {"Base_Layer": rock, "Layer_02": meadow, "Layer_03": high} + return {name: np.rint(w / total * 255.0).astype(np.uint8) for name, w in weights.items()} + + +def main(argv=None): + parser = argparse.ArgumentParser(description=__doc__.split("\n\n")[0]) + parser.add_argument("--manifest", default=MANIFEST_PATH) + parser.add_argument("--seed", type=int, help="override the noise seed for this run") + parser.add_argument("--source-file", help="use this heightmap file for this run instead of the manifest's source") + parser.add_argument("--source-elevation", nargs=2, type=float, metavar=("MIN_M", "MAX_M"), + help="what 0 and 65535 mean in the source file, in metres") + parser.add_argument("--out", default=HEIGHTMAP_DIR) + args = parser.parse_args(argv) + + manifest = load_manifest(args.manifest) + if args.source_file: + manifest.source = {"kind": "file", "path": args.source_file} + if args.source_elevation: + manifest.source["elevation_m"] = {"min": args.source_elevation[0], "max": args.source_elevation[1]} + elif args.seed is not None: + manifest.source = {"kind": "noise", "seed": args.seed} + print(manifest.describe()) + + size = manifest.vertices_per_side + started = time.time() + metres = source_height_metres(manifest, size) + print(f"uplift {metres.min():.0f}..{metres.max():.0f} m in {time.time() - started:.0f} s; eroding") + metres, maps = heightmap_erosion.erode(metres, manifest.quad_cm / 100.0, manifest.sea_level_m, manifest.erosion) + metres = apply_spawn_pad(metres, manifest) + + clipped = float(((metres < manifest.elevation_min_m) | (metres > manifest.elevation_max_m)).mean()) * 100.0 + metres = np.clip(metres, manifest.elevation_min_m, manifest.elevation_max_m) + height = np.rint(manifest.metres_to_value(metres)).clip(0, 65535).astype(np.uint16) + derived = derived_maps(metres, maps, manifest) + layers = derive_layers(metres, derived, manifest, np.random.default_rng(int(manifest.source.get("seed", 0)) + 1)) os.makedirs(args.out, exist_ok=True) - height, weights = generate(args.size, args.seed) - write_png(os.path.join(args.out, "L_World_Height.png"), height) - for name, data in zip(("Base_Layer", "Layer_02", "Layer_03"), weights): - write_png(os.path.join(args.out, f"L_World_{name}.png"), data) - land = float((height > SEA_LEVEL * 65535).mean()) * 100.0 - print(f"seed {args.seed}: {args.size}x{args.size}, {land:.0f}% land, written to {args.out}") + heightmap_io.write_png(os.path.join(args.out, "L_World_Height.png"), height) + for name, data in layers.items(): + heightmap_io.write_png(os.path.join(args.out, LAYER_FILES[name]), data) + for name, data in derived.items(): + heightmap_io.write_png(os.path.join(args.out, DERIVED_FILES[name]), np.rint(data * 255.0).astype(np.uint8)) + + land = float((metres > manifest.sea_level_m).mean()) * 100.0 + print(f"height {metres.min():.0f}..{metres.max():.0f} m, {land:.0f}% above sea level, {clipped:.2f}% clipped to the range; " + f"layers meadow {layers['Layer_02'].mean() / 255 * 100:.0f}% rock {layers['Base_Layer'].mean() / 255 * 100:.0f}% " + f"high {layers['Layer_03'].mean() / 255 * 100:.0f}%; {time.time() - started:.0f} s; written to {args.out}") if __name__ == "__main__": diff --git a/Scripts/Authoring/heightmap_erosion.py b/Scripts/Authoring/heightmap_erosion.py new file mode 100644 index 0000000..c938e63 --- /dev/null +++ b/Scripts/Authoring/heightmap_erosion.py @@ -0,0 +1,251 @@ +"""Geological passes over a heightmap in metres, numpy only: particle hydraulic erosion, thermal weathering with +an angle of repose, strata hardness, and the derivative maps (flow, wear, deposition) they leave behind. +Fractal noise gives pillowy hills; these passes give drainage, V-valleys, alluvial fans, scree aprons and rock +shelves. Applied by generate_heightmap.py to whatever the manifest's source produced, noise or file. + +Units inside: heights are in cell widths (metres over the cell size), so a slope of 1.0 is 45 degrees and the +droplet constants mean the same thing at any resolution. The hydraulic pass runs twice: on a downsampled map +(coarse cells, long droplet lives) for the valleys, then at full resolution (short lives) for the gullies; +the coarse result is applied to the full map as a delta, so the fine detail underneath survives. + +Droplets are simulated in vectorised batches: a batch of tens of thousands takes one step together, reading +the map as it was at the start of the step and scattering its erosion and deposits back with np.add.at. Two +droplets in the same cell in the same step do not see each other; at these densities that is invisible. +""" +import time + +import numpy as np + +import heightmap_io +import heightmap_noise + +DEFAULTS = { + "enabled": True, + "coarse_factor": 4, # the coarse pass runs on the map downsampled by this + "coarse_droplets": 800000, + "coarse_lifetime": 120, # steps, one cell each: 120 coarse cells is 1.7 km of path at 4x on 3.5 m quads + "fine_droplets": 3000000, + "fine_lifetime": 40, + "thermal_passes": 24, + "talus_deg": 35.0, # angle of repose + "inertia": 0.1, + "capacity": 2.0, # sediment a droplet can carry, in cell-heights per unit of slope, speed and water + "max_load": 2.0, # cell-heights: the most one droplet carries, so the mound it can leave where it stops is bounded + "min_slope": 0.01, + "deposit_rate": 0.2, + "erode_rate": 0.2, + "evaporation": 0.02, + "gravity": 4.0, + "strata_period_m": 160.0, # vertical period of the hard and soft bands + "strata_contrast": 0.6, # 0 is uniform rock, 1 is hard bands that barely erode next to soft ones that melt + "max_change": 0.2, # cell-heights one droplet may cut or fill in one step; batches of droplets share cells, so this is the brake + "max_speed": 5.0, + "min_erode_slope": 0.25, # below this slope (about 14 degrees) water deposits but barely cuts: lowland soil holds, so meadows stay meadows + "fine_scale": 0.5, # the fine pass cuts at this fraction of the coarse pass's rates: gullies, not trenches, at 3.5 m cells + "batch": 200000, # droplets stepping together, at most one per 40 cells of the map + "seed": 11, +} + + +class Hardness: + """Rock hardness in [0, 1] as a function of position and elevation: horizontal strata with a slow tilt and a + slow change of rock type across the map. Erosion is scaled by (1 - hardness), so hard bands hold shelves.""" + + def __init__(self, size, rng, period_cells, contrast): + self.period = max(float(period_cells), 1e-3) + self.contrast = float(contrast) + self.tilt = heightmap_noise.fbm(size, rng, base_cells=3, octaves=3, gain=0.5).astype(np.float32) + self.kind = heightmap_noise.fbm(size, rng, base_cells=2, octaves=3, gain=0.5).astype(np.float32) + + def at(self, ix, iy, height): + band = 0.5 + 0.5 * np.sin(2.0 * np.pi * (height / self.period + self.tilt[iy, ix] * 2.0)) + return np.clip(0.5 + self.contrast * (band - 0.5) * (0.4 + 0.8 * self.kind[iy, ix]), 0.05, 0.95).astype(np.float32) + + +BRUSH = ((0, 0, 0.36), (0, 1, 0.12), (0, -1, 0.12), (1, 0, 0.12), (-1, 0, 0.12), + (1, 1, 0.04), (1, -1, 0.04), (-1, 1, 0.04), (-1, -1, 0.04)) # offsets (dy, dx) and weights summing to 1 + + +def sample(h, px, py): + """Bilinear height and gradient at float positions; the caller keeps px, py inside [0, size - 2].""" + x0 = px.astype(np.int32) + y0 = py.astype(np.int32) + fx = px - x0 + fy = py - y0 + h00 = h[y0, x0] + h10 = h[y0, x0 + 1] + h01 = h[y0 + 1, x0] + h11 = h[y0 + 1, x0 + 1] + gx = (h10 - h00) * (1 - fy) + (h11 - h01) * fy + gy = (h01 - h00) * (1 - fx) + (h11 - h10) * fx + hc = h00 * (1 - fx) * (1 - fy) + h10 * fx * (1 - fy) + h01 * (1 - fx) * fy + h11 * fx * fy + return hc, gx, gy, x0, y0, fx, fy + + +def hydraulic(h, rng, droplets, lifetime, cfg, hardness, spawn_mask, maps, sea_cells=-1e9): + """Particle erosion in place on h (cell units). maps: flow, wear, deposit arrays of h's shape, accumulated. + A droplet that reaches water below `sea_cells` drops its whole load there and ends: the sea is a sink, + and river mouths get their fans.""" + size = h.shape[0] + ys, xs = np.nonzero(spawn_mask) + if xs.size == 0: + return + inertia, capacity_factor = cfg["inertia"], cfg["capacity"] + min_slope, deposit_rate, erode_rate = cfg["min_slope"], cfg["deposit_rate"], cfg["erode_rate"] + evaporation, gravity = cfg["evaporation"], cfg["gravity"] + max_change, max_speed, max_load = float(cfg["max_change"]), float(cfg["max_speed"]), float(cfg["max_load"]) + min_erode_slope = max(float(cfg["min_erode_slope"]), 1e-6) + batch = max(min(int(cfg["batch"]), size * size // 40), 1000) + limit = size - 2.001 + done = 0 + while done < droplets: + n = min(batch, droplets - done) + done += n + pick = rng.integers(0, xs.size, n) + px = np.clip(xs[pick] + rng.random(n, dtype=np.float32), 1.0, limit).astype(np.float32) + py = np.clip(ys[pick] + rng.random(n, dtype=np.float32), 1.0, limit).astype(np.float32) + dx = np.zeros(n, dtype=np.float32) + dy = np.zeros(n, dtype=np.float32) + speed = np.ones(n, dtype=np.float32) + water = np.ones(n, dtype=np.float32) + sediment = np.zeros(n, dtype=np.float32) + + for _ in range(lifetime): + if px.size == 0: + break + hc, gx, gy, x0, y0, fx, fy = sample(h, px, py) + dx = dx * inertia - gx * (1 - inertia) + dy = dy * inertia - gy * (1 - inertia) + length = np.hypot(dx, dy) + moving = length > 1e-9 + safe = np.where(moving, length, 1.0) + dx = np.where(moving, dx / safe, 0.0).astype(np.float32) + dy = np.where(moving, dy / safe, 0.0).astype(np.float32) + nx = px + dx + ny = py + dy + inside = moving & (nx >= 1.0) & (nx <= limit) & (ny >= 1.0) & (ny <= limit) + hn = sample(h, np.clip(nx, 1.0, limit), np.clip(ny, 1.0, limit))[0] + dh = np.where(inside, hn - hc, 0.0).astype(np.float32) + + slope = np.maximum(-dh, min_slope) + capacity = np.minimum(slope * speed * water * capacity_factor, max_load) + hard = hardness.at(x0, y0, hc) if hardness is not None else 0.0 + holds = np.clip(np.hypot(gx, gy) / min_erode_slope, 0.0, 1.0) ** 2 # flat ground resists cutting + deposit = np.where(dh > 0.0, np.minimum(dh, sediment), + np.where(sediment > capacity, (sediment - capacity) * deposit_rate, 0.0)) + erode = np.where((dh <= 0.0) & (sediment <= capacity), + np.minimum((capacity - sediment) * erode_rate, -dh) * (1.0 - hard) * holds, 0.0) + into_sea = inside & (hn < sea_cells) + deposit = np.where(into_sea, sediment, np.minimum(deposit, max_change)).astype(np.float32) + erode = np.where(into_sea, 0.0, np.minimum(erode, max_change)).astype(np.float32) + # Cuts go through a 3x3 brush: a one-cell footprint leaves every path as a rill one cell wide, which + # reads as brush strokes. Deposits land on the droplet's own bilinear cell: spread through the brush, + # a pit's rim rises faster than its floor, the pit never fills, and every droplet that drains into it + # adds to the rim until there is a mound. + for oy, ox, weight in BRUSH: + np.add.at(h, (y0 + oy, x0 + ox), -erode * weight) + np.add.at(h, (y0, x0), deposit * (1 - fx) * (1 - fy)) + np.add.at(h, (y0, x0 + 1), deposit * fx * (1 - fy)) + np.add.at(h, (y0 + 1, x0), deposit * (1 - fx) * fy) + np.add.at(h, (y0 + 1, x0 + 1), deposit * fx * fy) + np.add.at(maps["flow"], (y0, x0), water) + np.add.at(maps["wear"], (y0, x0), erode) + np.add.at(maps["deposit"], (y0, x0), deposit) + + sediment = sediment + erode - deposit + speed = np.minimum(np.sqrt(np.maximum(0.0, speed * speed - dh * gravity)), max_speed).astype(np.float32) # downhill is faster + water = water * (1.0 - evaporation) + alive = inside & ~into_sea & (water > 0.001) + px, py, dx, dy = nx[alive], ny[alive], dx[alive], dy[alive] + speed, water, sediment = speed[alive], water[alive], sediment[alive] + + +DIRECTIONS = ((0, 1, 1.0), (0, -1, 1.0), (1, 0, 1.0), (-1, 0, 1.0), + (1, 1, np.sqrt(2.0)), (1, -1, np.sqrt(2.0)), (-1, 1, np.sqrt(2.0)), (-1, -1, np.sqrt(2.0))) + + +def thermal(h, passes, talus): + """Mass-conserving thermal weathering: where a cell stands above a neighbour by more than the angle of + repose allows, half the excess slides down, shared among the lower neighbours. Cliffs keep a face, and + scree builds at their feet. h in cell units, talus is tan(angle of repose).""" + size = h.shape[0] + + def neighbour(padded, dy, dx): + return padded[1 + dy:1 + dy + size, 1 + dx:1 + dx + size] + + for _ in range(passes): + start = h.copy() + padded = np.pad(start, 1, mode="edge") + worst = np.zeros(h.shape, dtype=np.float32) + total = np.zeros(h.shape, dtype=np.float32) + for dy, dx, dist in DIRECTIONS: + excess = np.maximum(start - neighbour(padded, dy, dx) - talus * dist, 0.0) + worst = np.maximum(worst, excess) + total += excess + # A cell sheds half of its largest excess per pass, split among its lower neighbours in proportion to + # how far each is below the angle of repose. Never more than half, so slopes settle without inverting. + scale = np.where(total > 0.0, 0.5 * worst / np.maximum(total, 1e-9), 0.0).astype(np.float32) + for dy, dx, dist in DIRECTIONS: + move = np.maximum(start - neighbour(padded, dy, dx) - talus * dist, 0.0) * scale + h -= move + h[max(dy, 0):size + min(dy, 0), max(dx, 0):size + min(dx, 0)] += move[max(-dy, 0):size + min(-dy, 0), max(-dx, 0):size + min(-dx, 0)] + return h + + +def erode(metres, quad_m, sea_level_m, settings, log=print): + """The whole sequence on a map in metres. Returns (metres, maps) where maps holds flow, wear and deposit at + the map's resolution, in cell-height units accumulated over both passes.""" + cfg = {**DEFAULTS, **(settings or {})} + size = metres.shape[0] + maps = {name: np.zeros((size, size), dtype=np.float32) for name in ("flow", "wear", "deposit")} + if not cfg["enabled"]: + return metres, maps + rng = np.random.default_rng(int(cfg["seed"])) + talus = float(np.tan(np.radians(cfg["talus_deg"]))) + started = time.time() + + factor = int(cfg["coarse_factor"]) + if factor > 1 and cfg["coarse_droplets"] > 0: + coarse = heightmap_io.block_mean(metres, factor) + cell_m = quad_m * factor + hc = (coarse / cell_m).astype(np.float32) + hardness = Hardness(hc.shape[0], rng, cfg["strata_period_m"] / cell_m, cfg["strata_contrast"]) + coarse_maps = {name: np.zeros(hc.shape, dtype=np.float32) for name in maps} + thermal(hc, max(cfg["thermal_passes"] // 4, 1), talus) + hydraulic(hc, rng, int(cfg["coarse_droplets"]), int(cfg["coarse_lifetime"]), cfg, hardness, coarse > sea_level_m + 2.0, coarse_maps, + sea_cells=sea_level_m / cell_m) + thermal(hc, max(cfg["thermal_passes"] // 2, 1), talus) + delta = hc * cell_m - coarse + metres = (metres + heightmap_io.resample(delta, size)).astype(np.float32) + for name in maps: + maps[name] += heightmap_io.resample(coarse_maps[name], size) * factor + log(f" coarse erosion at {hc.shape[0]}x{hc.shape[0]}: {cfg['coarse_droplets']} droplets, " + f"largest cut {-delta.min():.0f} m, largest fill {delta.max():.0f} m, {time.time() - started:.0f} s") + + hf = (metres / quad_m).astype(np.float32) + before = hf.copy() + hardness = Hardness(size, rng, cfg["strata_period_m"] / quad_m, cfg["strata_contrast"]) + fine_cfg = {**cfg, "erode_rate": cfg["erode_rate"] * cfg["fine_scale"], "max_change": cfg["max_change"] * cfg["fine_scale"]} + hydraulic(hf, rng, int(cfg["fine_droplets"]), int(cfg["fine_lifetime"]), fine_cfg, hardness, metres > sea_level_m + 2.0, maps, + sea_cells=sea_level_m / quad_m) + thermal(hf, int(cfg["thermal_passes"]), talus) + delta = (hf - before) * quad_m + log(f" fine erosion at {size}x{size}: {cfg['fine_droplets']} droplets, {cfg['thermal_passes']} thermal passes at " + f"{cfg['talus_deg']:g} deg, largest cut {-delta.min():.0f} m, largest fill {delta.max():.0f} m, {time.time() - started:.0f} s total") + return (hf * quad_m).astype(np.float32), maps + + +def curvature(metres, quad_m): + """Laplacian of the lightly blurred height, in metres per cell squared: positive on ridges and convex + shoulders, negative in gullies and sediment traps.""" + h = heightmap_noise.box_blur(metres, 2) + padded = np.pad(h, 1, mode="edge") + lap = (padded[:-2, 1:-1] + padded[2:, 1:-1] + padded[1:-1, :-2] + padded[1:-1, 2:] - 4.0 * h) + return (lap / quad_m).astype(np.float32) + + +def to_unit(values, percentile=99.0, log_scale=False): + """A map squashed into [0, 1] for painting and for an 8-bit PNG.""" + v = np.log1p(np.maximum(values, 0.0)) if log_scale else np.maximum(values, 0.0) + top = float(np.percentile(v, percentile)) + return np.clip(v / max(top, 1e-6), 0.0, 1.0).astype(np.float32) diff --git a/Scripts/Authoring/heightmap_io.py b/Scripts/Authoring/heightmap_io.py new file mode 100644 index 0000000..a8ba856 --- /dev/null +++ b/Scripts/Authoring/heightmap_io.py @@ -0,0 +1,184 @@ +"""Reading, writing and resampling heightmaps with nothing but numpy, so the authoring scripts run on the +engine's own Python (which has no PIL). Greyscale PNG in 8 or 16 bit, raw 16-bit little-endian (.r16 / .raw, +what World Machine, Gaea and the engine's own exporter write), bilinear resampling and a centred square crop: +enough to take a real heightmap from any of the usual sources and put it on the landscape. +""" +import math +import struct +import zlib + +import numpy as np + +PNG_SIGNATURE = b"\x89PNG\r\n\x1a\n" + + +def write_png(path, data): + """Greyscale PNG, 8 or 16 bit from the array dtype. Row filter 0, one zlib stream.""" + if data.dtype == np.uint16: + depth, payload = 16, data.astype(">u2") + else: + depth, payload = 8, data.astype(np.uint8) + height, width = data.shape + raw = b"".join(b"\x00" + payload[y].tobytes() for y in range(height)) + + def chunk(kind, body): + return struct.pack(">I", len(body)) + kind + body + struct.pack(">I", zlib.crc32(kind + body) & 0xFFFFFFFF) + + ihdr = struct.pack(">IIBBBBB", width, height, depth, 0, 0, 0, 0) + with open(path, "wb") as f: + f.write(PNG_SIGNATURE + chunk(b"IHDR", ihdr) + chunk(b"IDAT", zlib.compress(raw, 6)) + chunk(b"IEND", b"")) + + +def read_png_header(path): + """(width, height, bit_depth, colour_type) without decoding the image.""" + with open(path, "rb") as f: + head = f.read(8 + 8 + 13) + if head[:8] != PNG_SIGNATURE or head[12:16] != b"IHDR": + raise ValueError(f"{path}: not a PNG") + width, height, depth, colour_type = struct.unpack(">IIBB", head[16:26]) + return width, height, depth, colour_type + + +def _unfilter_sequential(filter_type, row, prev, bpp): + """Average and Paeth depend on the byte just decoded, so they go pixel by pixel. Rare in practice; a + 4081x4081 16-bit file with every row Paeth-filtered takes some tens of seconds, once, on import.""" + out = bytearray(row) + n = len(out) + if filter_type == 3: + for i in range(n): + left = out[i - bpp] if i >= bpp else 0 + out[i] = (out[i] + ((left + prev[i]) >> 1)) & 0xFF + else: + for i in range(n): + if i >= bpp: + a, c = out[i - bpp], prev[i - bpp] + else: + a, c = 0, 0 + b = prev[i] + p = a + b - c + pa, pb, pc = abs(p - a), abs(p - b), abs(p - c) + if pa <= pb and pa <= pc: + predictor = a + elif pb <= pc: + predictor = b + else: + predictor = c + out[i] = (out[i] + predictor) & 0xFF + return out + + +def read_png(path): + """The first channel of a non-interlaced PNG as a 2D uint8 or uint16 array (greyscale, grey+alpha, RGB + and RGBA are accepted; palette and interlaced files are not).""" + with open(path, "rb") as f: + blob = f.read() + if blob[:8] != PNG_SIGNATURE: + raise ValueError(f"{path}: not a PNG") + pos, idat, ihdr = 8, [], None + while pos + 8 <= len(blob): + length, kind = struct.unpack(">I4s", blob[pos:pos + 8]) + body = blob[pos + 8:pos + 8 + length] + pos += 12 + length + if kind == b"IHDR": + ihdr = struct.unpack(">IIBBBBB", body) + elif kind == b"IDAT": + idat.append(body) + elif kind == b"IEND": + break + if ihdr is None: + raise ValueError(f"{path}: no IHDR") + width, height, depth, colour_type, _, _, interlace = ihdr + channels = {0: 1, 2: 3, 4: 2, 6: 4}.get(colour_type) + if channels is None or depth not in (8, 16) or interlace != 0: + raise ValueError(f"{path}: unsupported PNG (colour type {colour_type}, {depth} bit, interlace {interlace}); " + "use a non-interlaced 8 or 16 bit greyscale or RGB file") + bytes_per_sample = depth // 8 + bpp = channels * bytes_per_sample + stride = width * bpp + data = zlib.decompress(b"".join(idat)) + if len(data) != height * (stride + 1): + raise ValueError(f"{path}: PNG data is {len(data)} bytes, expected {height * (stride + 1)}") + + rows = np.empty((height, stride), dtype=np.uint8) + prev = np.zeros(stride, dtype=np.uint8) + for y in range(height): + start = y * (stride + 1) + filter_type = data[start] + row = np.frombuffer(data, dtype=np.uint8, count=stride, offset=start + 1) + if filter_type == 0: + out = row.copy() + elif filter_type == 1: + out = (np.cumsum(row.reshape(width, bpp), axis=0, dtype=np.uint64) & 0xFF).astype(np.uint8).reshape(stride) + elif filter_type == 2: + out = ((row.astype(np.uint16) + prev) & 0xFF).astype(np.uint8) + elif filter_type in (3, 4): + out = np.frombuffer(bytes(_unfilter_sequential(filter_type, bytes(row), bytes(prev), bpp)), dtype=np.uint8) + else: + raise ValueError(f"{path}: bad PNG filter {filter_type} on row {y}") + rows[y] = out + prev = rows[y] + + dtype = ">u2" if depth == 16 else np.uint8 + samples = rows.reshape(height, width * channels * bytes_per_sample).view(dtype).reshape(height, width, channels) + first = samples[:, :, 0] + return first.astype(np.uint16) if depth == 16 else first.astype(np.uint8) + + +def read_r16(path, width=None): + """Raw 16-bit little-endian samples, square unless a width is given.""" + values = np.fromfile(path, dtype="= 2: + source = block_mean(source, factor) + src_h, src_w = source.shape + if (src_h, src_w) == (size, size): + return source + ys = np.linspace(0.0, src_h - 1, size, dtype=np.float32) + xs = np.linspace(0.0, src_w - 1, size, dtype=np.float32) + y0 = np.floor(ys).astype(np.int64) + x0 = np.floor(xs).astype(np.int64) + y1 = np.minimum(y0 + 1, src_h - 1) + x1 = np.minimum(x0 + 1, src_w - 1) + ty = (ys - y0)[:, None] + tx = (xs - x0)[None, :] + top = source[np.ix_(y0, x0)] * (1 - tx) + source[np.ix_(y0, x1)] * tx + bottom = source[np.ix_(y1, x0)] * (1 - tx) + source[np.ix_(y1, x1)] * tx + return (top * (1 - ty) + bottom * ty).astype(np.float32) diff --git a/Scripts/Authoring/heightmap_noise.py b/Scripts/Authoring/heightmap_noise.py new file mode 100644 index 0000000..651e2fc --- /dev/null +++ b/Scripts/Authoring/heightmap_noise.py @@ -0,0 +1,167 @@ +"""The noise heightmap source: a seeded continent in metres, and the small numpy toolkit (value noise, fBm, +domain warping, cellular crest lines, blur) that generate_heightmap.py also uses to derive the paint layers. + +The shape, in metres: a continent with ragged coasts and sea around it, meadow lowlands, rolling hills, and +mountain ranges that run as long warped chains over about two fifths of the land, foothills included, with +ridged crests up to the manifest's ceiling. This is the uplift only; heightmap_erosion.py weathers and carves +it afterwards. Rocky Meadows is the look: meadow between the ranges, rock on them. This is the placeholder +until a real heightmap replaces it in the manifest; nothing downstream can tell the difference. +""" +import numpy as np + + +def smoothstep(t): + return t * t * (3.0 - 2.0 * t) + + +def value_noise(size, cells, rng): + """One octave on the regular grid: a random lattice of cells x cells, smoothly interpolated to size x size.""" + lattice = rng.random((cells + 1, cells + 1), dtype=np.float32) + coords = np.linspace(0.0, cells, size, endpoint=False, dtype=np.float32) + i = np.floor(coords).astype(np.int32) + t = smoothstep(coords - i) + i1 = np.minimum(i + 1, cells) + top = lattice[i[:, None], i[None, :]] * (1 - t[None, :]) + lattice[i[:, None], i1[None, :]] * t[None, :] + bottom = lattice[i1[:, None], i[None, :]] * (1 - t[None, :]) + lattice[i1[:, None], i1[None, :]] * t[None, :] + return top * (1 - t[:, None]) + bottom * t[:, None] + + +def sample_lattice(lattice, u, v): + """One octave at arbitrary coordinates: smooth interpolation of a periodic lattice at (u, v) in cell units, + any float arrays of one shape. Periodic, so warped or stretched coordinates never run off the edge.""" + cells = lattice.shape[0] + i0 = np.floor(u).astype(np.int32) + j0 = np.floor(v).astype(np.int32) + tu = smoothstep(u - i0) + tv = smoothstep(v - j0) + i0 %= cells + j0 %= cells + i1 = (i0 + 1) % cells + j1 = (j0 + 1) % cells + top = lattice[j0, i0] * (1 - tu) + lattice[j0, i1] * tu + bottom = lattice[j1, i0] * (1 - tu) + lattice[j1, i1] * tu + return top * (1 - tv) + bottom * tv + + +def fbm(size, rng, base_cells=4, octaves=8, gain=0.5, ridged=False): + """Fractional Brownian motion in [0, 1] on the regular grid: octaves of value noise, each twice as fine + and `gain` as strong.""" + total = np.zeros((size, size), dtype=np.float32) + amplitude, cells, norm = 1.0, base_cells, 0.0 + for _ in range(octaves): + n = value_noise(size, cells, rng) + if ridged: + n = 1.0 - np.abs(n * 2.0 - 1.0) + n = n * n + total += n * amplitude + norm += amplitude + amplitude *= gain + cells *= 2 + return total / norm + + +def fbm_at(u, v, rng, base_cells=4, octaves=8, gain=0.5, ridged=False): + """fBm sampled at map coordinates (u, v), where 0..1 spans the map once; anything outside wraps. Feed it + warped or anisotropic coordinates and the noise bends and stretches with them.""" + total = np.zeros(u.shape, dtype=np.float32) + amplitude, cells, norm = 1.0, base_cells, 0.0 + for _ in range(octaves): + lattice = rng.random((cells, cells), dtype=np.float32) + n = sample_lattice(lattice, u * cells, v * cells) + if ridged: + n = 1.0 - np.abs(n * 2.0 - 1.0) + n = n * n + total += n * amplitude + norm += amplitude + amplitude *= gain + cells *= 2 + return total / norm + + +def normalised(a): + return (a - a.min()) / max(float(a.max() - a.min()), 1e-6) + + +def cellular_edges(u, v, rng, cells=12, jitter=0.9): + """Worley cellular noise, F2 - F1 through periodic jittered feature points, mapped so the borders between + cells read 1 and the interiors 0: a network of thin, branching crest lines. Sampled at map coordinates + like fbm_at, so warped coordinates bend the network.""" + points = rng.random((cells, cells, 2), dtype=np.float32) * jitter + (1.0 - jitter) * 0.5 + su = u * cells + sv = v * cells + i0 = np.floor(su).astype(np.int32) + j0 = np.floor(sv).astype(np.int32) + fu = (su - i0).astype(np.float32) + fv = (sv - j0).astype(np.float32) + f1 = np.full(u.shape, np.inf, dtype=np.float32) + f2 = f1.copy() + for dj in (-1, 0, 1): + for di in (-1, 0, 1): + ci = (i0 + di) % cells + cj = (j0 + dj) % cells + d = np.hypot(points[cj, ci, 0] + di - fu, points[cj, ci, 1] + dj - fv) + closer = d < f1 + f2 = np.where(closer, f1, np.minimum(f2, d)) + f1 = np.where(closer, d, f1) + edge = 1.0 - np.clip((f2 - f1) / 0.6, 0.0, 1.0) + return (edge * edge).astype(np.float32) + + +def box_blur(h, passes): + for _ in range(passes): + padded = np.pad(h, 1, mode="edge") + h = (padded[:-2, 1:-1] + padded[2:, 1:-1] + padded[1:-1, :-2] + padded[1:-1, 2:] + h) / 5.0 + return h.astype(np.float32) + + +def generate_metres(size, seed, quad_m, sea_level_m=0.0, land_height_m=2560.0): + """A size x size continent in metres above `sea_level_m`, before erosion: the uplift. The crests approach + `land_height_m` above the sea; the sea floor lies 30 to 180 m below it, shaped so the shore is not a step. + + On steepness: each octave of noise contributes a slope of about amplitude over wavelength, so with gain 0.5 + every octave is as steep as the last and eight of them stack into cliffs everywhere. The gains here keep + the meadows gentle; the ranges are meant to be steep and the erosion pass gives them their faces. + Measure the result with a slope histogram before tuning by eye. + """ + rng = np.random.default_rng(seed) + y, x = np.mgrid[0:size, 0:size].astype(np.float32) / (size - 1) + + # Continent: a radial falloff with a ragged, noise-warped edge, so the coast is not a circle. + cx, cy = 0.5 + (rng.random() - 0.5) * 0.15, 0.5 + (rng.random() - 0.5) * 0.15 + radius = np.sqrt(((x - cx) * 1.05) ** 2 + ((y - cy) * 0.95) ** 2) + coast_warp = (fbm(size, rng, base_cells=3, octaves=5, gain=0.45) - 0.5) * 0.35 + continent = np.clip(1.0 - (radius + coast_warp) / 0.55, 0.0, 1.0) + continent = smoothstep(np.clip(continent * 1.6, 0.0, 1.0)) + + # A low-frequency warp field bends everything that follows, so ridges curve and ranges are not blobs. + warp_x = (fbm(size, rng, base_cells=3, octaves=3, gain=0.5) - 0.5) * 0.16 + warp_y = (fbm(size, rng, base_cells=3, octaves=3, gain=0.5) - 0.5) * 0.16 + + plains = fbm(size, rng, base_cells=6, octaves=4, gain=0.45) * 0.05 + hills = fbm_at(x + warp_x * 0.5, y + warp_y * 0.5, rng, base_cells=5, octaves=5, gain=0.45) * 0.18 + + # Ranges. An elongated, warped band says where they run: stretched across its grain so they come as long + # chains, thresholded by percentile so they and their foothills cover about two fifths of the map whatever + # the seed. Ridged noise through the same warp gives them their crests; the gamma keeps the flanks massive. + angle = float(rng.uniform(0.0, np.pi)) + along = (x - 0.5) * np.cos(angle) + (y - 0.5) * np.sin(angle) + across = -(x - 0.5) * np.sin(angle) + (y - 0.5) * np.cos(angle) + band = fbm_at(0.5 + along * 0.7 + warp_x, 0.5 + across * 2.2 + warp_y, rng, base_cells=3, octaves=3, gain=0.5) + band_lo, band_hi = np.percentile(band, [58.0, 86.0]) + range_mask = smoothstep(np.clip((band - band_lo) / max(band_hi - band_lo, 1e-6), 0.0, 1.0)) + ridges = normalised(fbm_at(x + warp_x, y + warp_y, rng, base_cells=5, octaves=6, gain=0.42, ridged=True)) + # Cellular edges through a stronger warp: a light touch of branching crest lines where cells meet. Kept + # light on purpose: at 0.3 the ranges became a honeycomb of polygon walls with flat floors (2026-09-17). + crests = cellular_edges(x + warp_x * 1.4, y + warp_y * 1.4, rng, cells=14, jitter=0.95) + mountains = np.power(0.88 * ridges + 0.12 * crests, 0.8) * range_mask + + # Ground detail at the scale of a few quads, a few metres tall: texture, not terrain. + detail = (fbm(size, rng, base_cells=200, octaves=3, gain=0.5) - 0.5) * 2.0 * 4.0 + + land = 0.04 + plains + hills * (0.4 + 0.6 * continent) + mountains * 1.0 + height = continent * land * land_height_m + detail * continent + sea_floor = (-0.03 - (1.0 - continent) * 0.04 + plains * 0.3) * land_height_m + height = np.where(continent > 0.02, height, sea_floor).astype(np.float32) + height = np.maximum(height, sea_floor.astype(np.float32)) + # Weathering and erosion are heightmap_erosion.py's job; this is the raw uplift. + return (height + sea_level_m).astype(np.float32) diff --git a/Scripts/Authoring/world_manifest.py b/Scripts/Authoring/world_manifest.py new file mode 100644 index 0000000..acc46bb --- /dev/null +++ b/Scripts/Authoring/world_manifest.py @@ -0,0 +1,129 @@ +"""The world manifest: RawContent/World/World.json, the one place that says how big L_World is, what a +heightmap value means in metres, and where the height comes from. Pure Python (no numpy, no engine), shared by +generate_heightmap.py (writes the PNGs) and create_world.py (imports them), so both agree without either +knowing about the other. + +The height contract. The landscape is `vertices_per_side` vertices a side at `quad_cm` a quad. The 16-bit +heightmap spans `elevation_m.min` (value 0) to `elevation_m.max` (value 65535), and the level places the +landscape so that world Z 0 is elevation 0 m: sea level, when `sea_level_m` is 0. From that the engine's +Z scale and the actor's Z offset follow; nothing else in the project needs to know them. + +Sources. `{"kind": "noise", "seed": N}` builds a continent with heightmap_noise.py. `{"kind": "file", "path": +..., "elevation_m": {"min": ..., "max": ...}}` takes a real heightmap (16-bit greyscale PNG or raw 16-bit +little-endian .r16), whose 0..65535 spans its own elevation range, and resamples it onto the world. Either way +the paint layers are derived from the finished height, so a real heightmap needs no weightmaps of its own. +""" +import json +import os + +HERE = os.path.dirname(os.path.abspath(__file__)) +PROJECT_ROOT = os.path.normpath(os.path.join(HERE, "..", "..")) +WORLD_DIR = os.path.join(PROJECT_ROOT, "RawContent", "World") +MANIFEST_PATH = os.path.join(WORLD_DIR, "World.json") +HEIGHTMAP_DIR = os.path.join(WORLD_DIR, "Heightmaps") + +HEIGHTMAP_FILE = "L_World_Height.png" +# Paint layer name (as the Elite_RockyMeadows landscape material calls it) -> weightmap file. The names mislead: +# in this pack Base_Layer is the rock, Layer_02 the grass (the meadow) and Layer_03 the high rock. +LAYER_FILES = { + "Base_Layer": "L_World_Base_Layer.png", + "Layer_02": "L_World_Layer_02.png", + "Layer_03": "L_World_Layer_03.png", +} +# Derivative maps the erosion pass leaves behind, 8-bit, for painting and for a material that wants them later: +# how much water passed (log scaled), how much bedrock was scraped, how much sediment was laid down, and the +# curvature (128 flat, brighter convex, darker concave). +DERIVED_FILES = { + "flow": "L_World_Flow.png", + "wear": "L_World_Wear.png", + "deposit": "L_World_Deposit.png", + "curvature": "L_World_Curvature.png", +} + +# The engine maps heightmap value v to local height (v - 32768) / 128 * ZScale cm, so ZScale 100 spans 512 m. +ENGINE_SPAN_M_AT_SCALE_100 = 512.0 + + +class WorldManifest: + def __init__(self, data, path=MANIFEST_PATH): + self.path = path + self.level = data.get("level", "/Game/Maps/L_World") + self.vertices_per_side = int(data["vertices_per_side"]) + self.quad_cm = float(data["quad_cm"]) + self.elevation_min_m = float(data["elevation_m"]["min"]) + self.elevation_max_m = float(data["elevation_m"]["max"]) + self.sea_level_m = float(data.get("sea_level_m", 0.0)) + self.spawn_pad_m = float(data.get("spawn_pad_m", 150.0)) + self.streaming_grid_components = int(data.get("streaming_grid_components", 1)) + self.source = dict(data.get("source", {"kind": "noise", "seed": 7})) + self.erosion = dict(data.get("erosion", {})) # keys and defaults in heightmap_erosion.DEFAULTS + self.layers = dict(data.get("layers", {})) + if self.vertices_per_side < 2 or self.elevation_max_m <= self.elevation_min_m or self.quad_cm <= 0: + raise ValueError(f"{path}: vertices_per_side, quad_cm and elevation_m must be positive and ordered") + + # Derived geometry. + @property + def quads_per_side(self): + return self.vertices_per_side - 1 + + @property + def side_m(self): + return self.quads_per_side * self.quad_cm / 100.0 + + @property + def area_km2(self): + return (self.side_m / 1000.0) ** 2 + + @property + def elevation_span_m(self): + return self.elevation_max_m - self.elevation_min_m + + @property + def elevation_mid_m(self): + return (self.elevation_max_m + self.elevation_min_m) / 2.0 + + @property + def z_scale(self): + """The landscape actor's Z scale so that the 16-bit range spans exactly the manifest's elevation range.""" + return self.elevation_span_m / ENGINE_SPAN_M_AT_SCALE_100 * 100.0 + + @property + def landscape_z_cm(self): + """The landscape actor's world Z: value 32768 sits at elevation_mid, so elevation 0 m lands on world Z 0.""" + return self.elevation_mid_m * 100.0 + + @property + def sea_level_z_cm(self): + return self.sea_level_m * 100.0 + + # The height encoding, in plain floats so the numpy side can vectorise the same formula. + def metres_to_value(self, metres): + return (metres - self.elevation_min_m) / self.elevation_span_m * 65535.0 + + def value_to_metres(self, value): + return self.elevation_min_m + value / 65535.0 * self.elevation_span_m + + # Files. + @property + def heightmap_path(self): + return os.path.join(HEIGHTMAP_DIR, HEIGHTMAP_FILE) + + def weightmap_path(self, layer_name): + return os.path.join(HEIGHTMAP_DIR, LAYER_FILES[layer_name]) + + def derived_path(self, map_name): + return os.path.join(HEIGHTMAP_DIR, DERIVED_FILES[map_name]) + + def resolve(self, relative): + """A manifest path is relative to the project root unless absolute.""" + return relative if os.path.isabs(relative) else os.path.normpath(os.path.join(PROJECT_ROOT, relative)) + + def describe(self): + return (f"{self.vertices_per_side} vertices a side at {self.quad_cm:g} cm: {self.side_m / 1000:.2f} km, " + f"{self.area_km2:.0f} km2; elevation {self.elevation_min_m:g}..{self.elevation_max_m:g} m " + f"(Z scale {self.z_scale:g}, actor Z {self.landscape_z_cm:g} cm); source {self.source}") + + +def load_manifest(path=MANIFEST_PATH): + with open(path, "r", encoding="utf-8") as f: + return WorldManifest(json.load(f), path) diff --git a/Scripts/build-terrain.sh b/Scripts/build-terrain.sh new file mode 100644 index 0000000..84e6455 --- /dev/null +++ b/Scripts/build-terrain.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +# Builds the terrain generator (Docs/Terrain.md) to Tools/Terrain/bin/terrain.exe. +# +# Go is not in the repository and not in the engine's toolchain, so this is the one place that says so out +# loud when it is missing. Everything else about the generator is engine-free and needs nothing installed. +set -euo pipefail + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +cd "$ROOT/Tools/Terrain" + +if ! command -v go >/dev/null 2>&1; then + echo "build-terrain: no 'go' on PATH." >&2 + echo " The generator needs a Go toolchain (1.22 or newer, for math/rand/v2). https://go.dev/dl/" >&2 + echo " Take the windows/amd64 build: a 386 toolchain caps the process near 2 GB, and one float32" >&2 + echo " field at the full 7141 grid is 204 MB, of which the detail passes hold several at once." >&2 + exit 1 +fi + +echo "go $(go version | awk '{print $3}' | sed 's/^go//') ($(go env GOOS)/$(go env GOARCH))" +if [ "$(go env GOARCH)" = "386" ]; then + echo "build-terrain: WARNING - this is a 32-bit toolchain. The full-resolution run will not fit." >&2 +fi + +gofmt -l . | (! grep .) || { echo "build-terrain: gofmt would change the files above" >&2; exit 1; } +go vet ./... +go test ./... +mkdir -p bin +go build -o bin/terrain.exe ./cmd/terrain +echo "built $ROOT/Tools/Terrain/bin/terrain.exe" diff --git a/Source/SaltyEditor/Authoring/LandscapeAuthoringLibrary.cpp b/Source/SaltyEditor/Authoring/LandscapeAuthoringLibrary.cpp index 2c6d7aa..fed07d3 100644 --- a/Source/SaltyEditor/Authoring/LandscapeAuthoringLibrary.cpp +++ b/Source/SaltyEditor/Authoring/LandscapeAuthoringLibrary.cpp @@ -7,6 +7,7 @@ #include "LandscapeSubsystem.h" #include "Engine/World.h" #include "Materials/MaterialInterface.h" +#include "RenderingThread.h" ALandscape* ULandscapeAuthoringLibrary::CreateLandscapeFromHeightmap(UWorld* World, const FString& HeightmapFile, const TArray& Weightmaps, UMaterialInterface* Material, @@ -130,6 +131,21 @@ ALandscape* ULandscapeAuthoringLibrary::CreateLandscapeFromHeightmap(UWorld* Wor } } + // Edit layers are always on, and the render heightmaps and weightmaps are produced from the imported layer + // data by the edit-layer merge, which normally runs on the editor tick. A commandlet never ticks, so without + // this the saved level has the imported collision heights but flat, empty render textures, and the landscape + // is invisible from below. The editor's own import does the same full update before saving. + Landscape->ForceLayersFullUpdate(); + for (int32 Attempt = 0; Attempt < 500 && !Landscape->IsUpToDate(); ++Attempt) + { + Landscape->TickLayers(1.0f / 30.0f); + FlushRenderingCommands(); + } + if (!Landscape->IsUpToDate()) + { + UE_LOG(LogSaltyEditor, Warning, TEXT("CreateLandscapeFromHeightmap: the edit-layer update did not finish; render heightmaps may be stale")); + } + UE_LOG(LogSaltyEditor, Log, TEXT("CreateLandscapeFromHeightmap: %ux%u vertices, %dx%d components of %d quads, scale (%g, %g, %g), %d paint layers"), RequiredResolution.Width, RequiredResolution.Height, ComponentCount.X, ComponentCount.Y, QuadsPerComponent, Scale.X, Scale.Y, Scale.Z, LayerInfos.Num()); return Landscape; diff --git a/Source/SaltyEditor/SaltyEditor.Build.cs b/Source/SaltyEditor/SaltyEditor.Build.cs index 0b7a81c..13c9289 100644 --- a/Source/SaltyEditor/SaltyEditor.Build.cs +++ b/Source/SaltyEditor/SaltyEditor.Build.cs @@ -17,7 +17,8 @@ public class SaltyEditor : ModuleRules PrivateDependencyModuleNames.AddRange(new string[] { "UnrealEd", "Landscape", - "LandscapeEditor" // FLandscapeImportHelper reads the heightmap and weightmap files + "LandscapeEditor", // FLandscapeImportHelper reads the heightmap and weightmap files + "RenderCore" // FlushRenderingCommands while the edit-layer merge is driven by hand }); PublicIncludePaths.Add(ModuleDirectory); diff --git a/Tools/Terrain/cmd/terrain/main.go b/Tools/Terrain/cmd/terrain/main.go new file mode 100644 index 0000000..21ce797 --- /dev/null +++ b/Tools/Terrain/cmd/terrain/main.go @@ -0,0 +1,617 @@ +// Command terrain generates L_World's heightmap. See Docs/Terrain.md. +// +// terrain generate the manifest as it stands +// terrain generate --seed 12 another continent +// terrain generate --stage fluvial --size 1024 one pass at a small size, the iteration loop +// +// The flags are deliberately the ones Scripts/Authoring/generate_heightmap.py had, so the two documented +// commands in RawContent/World/README.md and everybody's muscle memory survive the port. +package main + +import ( + "encoding/json" + "flag" + "fmt" + "image/png" + "math" + "os" + "path/filepath" + "runtime" + "time" + + "salty/terrain/internal/coast" + "salty/terrain/internal/field" + "salty/terrain/internal/fluvial" + "salty/terrain/internal/manifest" + "salty/terrain/internal/stats" + "salty/terrain/internal/thermal" + "salty/terrain/internal/uplift" +) + +func main() { + if len(os.Args) < 2 { + usage() + os.Exit(2) + } + switch os.Args[1] { + case "generate": + if err := generate(os.Args[2:]); err != nil { + fmt.Fprintln(os.Stderr, "terrain:", err) + os.Exit(1) + } + case "-h", "--help", "help": + usage() + default: + fmt.Fprintf(os.Stderr, "terrain: unknown command %q\n", os.Args[1]) + usage() + os.Exit(2) + } +} + +func usage() { + fmt.Fprint(os.Stderr, `terrain - the world's heightmap generator (Docs/Terrain.md) + + terrain generate [flags] + + --manifest PATH default RawContent/World/World.json, found by walking up from the working directory + --seed N override the noise seed for this run + --size N run the geology grid at N instead of the manifest's, for iterating + --stage NAME stop after a stage: uplift, fluvial (default: the last one built) + --steps N override the fluvial step count + --out DIR where the PNGs go (default: beside the manifest, or Preview/ for a --size run) + --quiet only the summary + --no-coast skip the coastal pass: a flat sea floor and an unworked shoreline +`) +} + +func generate(args []string) error { + fs := flag.NewFlagSet("generate", flag.ExitOnError) + manifestPath := fs.String("manifest", "", "path to World.json") + seed := fs.Int64("seed", -1, "override the noise seed") + size := fs.Int("size", 0, "run the geology grid at this size instead of the manifest's") + stage := fs.String("stage", "fluvial", "stop after this stage: uplift, fluvial") + steps := fs.Int("steps", 0, "override the fluvial step count") + out := fs.String("out", "", "output directory") + quiet := fs.Bool("quiet", false, "only print the summary") + fillEvery := fs.Int("fill-every", 0, "override the priority-flood interval") + channelKm2 := fs.Float64("channel-km2", 1.0, "drainage area that counts as a channel, km2") + criticalM2 := fs.Float64("critical-m2", 0, "override where channels begin, m2") + diffusion := fs.Float64("diffusion", 0, "override hillslope diffusivity, m2/yr") + talusDeg := fs.Float64("talus", 0, "override the angle of repose, degrees") + thermalEvery := fs.Int("thermal-every", 0, "override the landslide interval, steps") + thermalPasses := fs.Int("thermal-passes", 0, "override landslide passes per application") + convergent := fs.Float64("convergent", 0, "override the convergent uplift rate, mm/yr") + intraplate := fs.Float64("intraplate", 0, "override the intraplate sag rate, mm/yr") + intraSwell := fs.Float64("intraplate-swell", 0, "override the intraplate swell rate, mm/yr") + lithTypes := fs.Int("lithology-types", -1, "override the rock type count; 1 disables lithology") + faultScale := fs.Float64("fault-scale", -1, "scale the fault counts; 0 disables faults") + kOverride := fs.Float64("k", 0, "override the stream-power erodibility K") + cropX := fs.Float64("crop-x", 0.20, "detail crop, left edge in map coordinates") + cropY := fs.Float64("crop-y", 0.62, "detail crop, top edge in map coordinates") + cropSize := fs.Float64("crop-size", 0.22, "detail crop, side length in map coordinates") + reliefWindowM := fs.Float64("relief-window", 500, "window the per-bucket local relief is measured over, m") + criticalSlope := fs.Float64("critical-slope", -1, "override Sc in the nonlinear hillslope law, degrees; 0 reverts to linear diffusion and the in-loop clamp") + slopeCap := fs.Float64("slope-cap", 0, "override where the nonlinear flux stops stiffening, as a fraction of Sc") + hillslopeSub := fs.Int("hillslope-substeps", 0, "override the nonlinear hillslope sub-step budget") + mapSize := fs.Int("map-size", 1400, "side, in pixels, of the false-colour data maps") + outlineOctaves := fs.Int("outline-octaves", 0, "override how much detail the coastline outline has") + outlineGain := fs.Float64("outline-gain", 0, "override the coastline outline's octave gain: how crenellated it is") + noCoast := fs.Bool("no-coast", false, "skip the coastal pass: a flat sea floor and an unworked shoreline") + surfReach := fs.Float64("surf-reach", 0, "override how far inland the surf planes on open coast, m") + cutFraction := fs.Float64("cut-fraction", 0, "override how completely the surf planes the shore platform, 0..1") + shelfKm := fs.Float64("shelf-km", 0, "override the widest continental shelf, km") + driftM := fs.Float64("drift", 0, "override how far sediment is carried along the shore, m") + riverSediment := fs.Float64("river-sediment", -1, "override the river load per km2 of catchment, m3; 0 disables deltas") + if err := fs.Parse(args); err != nil { + return err + } + + path, err := findManifest(*manifestPath) + if err != nil { + return err + } + m, err := manifest.Load(path) + if err != nil { + return err + } + if *seed >= 0 { + m.Source.Seed = *seed + } + if *steps > 0 { + m.Pipeline.Fluvial.Steps = *steps + } + if *fillEvery > 0 { + m.Pipeline.Fluvial.FillEvery = *fillEvery + } + if *criticalM2 > 0 { + m.Pipeline.Fluvial.CriticalAreaM2 = *criticalM2 + } + if *diffusion > 0 { + m.Pipeline.Fluvial.DiffusionM2Yr = *diffusion + } + if *talusDeg > 0 { + m.Pipeline.Thermal.TalusDeg = *talusDeg + } + if *thermalEvery > 0 { + m.Pipeline.Thermal.Every = *thermalEvery + } + if *thermalPasses > 0 { + m.Pipeline.Thermal.CoarsePasses = *thermalPasses + } + if *convergent > 0 { + m.Pipeline.Plates.ConvergentMmYr[1] = *convergent + } + if *intraplate > 0 { + m.Pipeline.Plates.IntraplateMmYr = *intraplate + } + if *intraSwell > 0 { + m.Pipeline.Plates.IntraplateSwellMmYr = *intraSwell + } + if *criticalSlope >= 0 { + m.Pipeline.Fluvial.CriticalSlopeDeg = *criticalSlope + } + if *slopeCap > 0 { + m.Pipeline.Fluvial.SlopeCap = *slopeCap + } + if *hillslopeSub > 0 { + m.Pipeline.Fluvial.MaxHillslopeSub = *hillslopeSub + } + if *kOverride > 0 { + m.Pipeline.Fluvial.K = *kOverride + } + if *lithTypes >= 1 { + m.Pipeline.Lithology.Types = *lithTypes + } + if *faultScale >= 0 { + m.Pipeline.Faults.Major[0] *= *faultScale + m.Pipeline.Faults.Major[1] *= *faultScale + m.Pipeline.Faults.Minor[0] *= *faultScale + m.Pipeline.Faults.Minor[1] *= *faultScale + } + if *outlineOctaves > 0 { + m.Pipeline.Continent.OutlineOctaves = *outlineOctaves + } + if *outlineGain > 0 { + m.Pipeline.Continent.OutlineGain = *outlineGain + } + if *noCoast { + m.Pipeline.Coast.Enabled = false + } + if *surfReach > 0 { + m.Pipeline.Coast.SurfReachM = *surfReach + } + if *cutFraction > 0 { + m.Pipeline.Coast.CutFraction = *cutFraction + } + if *shelfKm > 0 { + m.Pipeline.Coast.ShelfKm[1] = *shelfKm + } + if *driftM > 0 { + m.Pipeline.Coast.DriftM = *driftM + } + if *riverSediment >= 0 { + m.Pipeline.Coast.RiverM3PerKm2 = *riverSediment + } + if m.Erosion != nil { + fmt.Println("note: this manifest still has an 'erosion' block; D-47 replaced it with 'pipeline' and it is ignored") + } + + geoSize := m.GeologySize() + geoCell := m.GeologyCellM() + preview := *size > 0 + if preview { + // A --size run keeps the manifest's physical extent and just samples it more coarsely, so the + // metres, the uplift rates and the stream-power constants all still mean what they mean. + geoSize = *size + geoCell = m.SideM() / float64(*size-1) + } + + outDir := *out + if outDir == "" { + if preview { + outDir = filepath.Join(manifest.ProjectRoot(path), "RawContent", "World", "Preview") + } else { + outDir = filepath.Join(filepath.Dir(path), "Heightmaps") + } + } + + log := func(format string, a ...any) { + if !*quiet { + fmt.Printf(format+"\n", a...) + } + } + log("%s", m.Describe()) + log("geology grid %d at %.2f m a cell, %d cores, GOMAXPROCS %d", geoSize, geoCell, runtime.NumCPU(), runtime.GOMAXPROCS(0)) + if preview { + log("preview run: the geology grid only, written to %s", outDir) + } + + started := time.Now() + up := uplift.Build(geoSize, geoCell, m) + rateLo, rateHi := up.Rate.MinMax() + hLo, hHi := up.Height.MinMax() + landFrac := fractionTrue(invert(up.Base)) + kLo, kHi := float32(1), float32(1) + if up.K != nil { + kLo, kHi = up.K.MinMax() + } + log("uplift %.3f..%.3f mm/yr, K x%.2f..%.2f, %d faults, initial relief %.0f..%.0f m, %.0f%% land [%s]", + float64(rateLo)*1000, float64(rateHi)*1000, kLo, kHi, len(up.Faults), hLo, hHi, landFrac*100, since(started)) + + h := up.Height.Clone() + var grid *fluvial.Grid + var kField []float32 + if up.K != nil { + kField = up.K.Data + } + + if *stage != "uplift" { + p := fluvial.Params{ + K: m.Pipeline.Fluvial.K, M: m.Pipeline.Fluvial.M, N: m.Pipeline.Fluvial.N, + DtYr: m.Pipeline.Fluvial.DtYr, Steps: m.Pipeline.Fluvial.Steps, + Diffusion: m.Pipeline.Fluvial.DiffusionM2Yr, FillEvery: m.Pipeline.Fluvial.FillEvery, + TalusSlope: thermal.TalusFromDegrees(m.Pipeline.Thermal.TalusDeg), + ThermalEvery: m.Pipeline.Thermal.Every, + ThermalPasses: m.Pipeline.Thermal.CoarsePasses, + CriticalAreaM2: m.Pipeline.Fluvial.CriticalAreaM2, + ChannelTaper: m.Pipeline.Fluvial.ChannelTaper, + CriticalSlope: thermal.TalusFromDegrees(m.Pipeline.Fluvial.CriticalSlopeDeg), + SlopeCap: m.Pipeline.Fluvial.SlopeCap, + MaxHillslopeSub: m.Pipeline.Fluvial.MaxHillslopeSub, + } + hillslope := fmt.Sprintf("linear D %.3f m2/yr, repose clamp every %d steps", p.Diffusion, m.Pipeline.Thermal.Every) + if p.CriticalSlope > 0 { + hillslope = fmt.Sprintf("nonlinear D %.3f m2/yr, Sc %.0f deg, cap %.2f, up to %d sub-steps", + p.Diffusion, m.Pipeline.Fluvial.CriticalSlopeDeg, p.SlopeCap, p.MaxHillslopeSub) + } + log("fluvial %d steps of %.0f yr (%.1f Myr), K %.1e, m %.2f, n %.2f, fill every %d", + p.Steps, p.DtYr, float64(p.Steps)*p.DtYr/1e6, p.K, p.M, p.N, p.FillEvery) + log("hillslope: %s", hillslope) + grid = fluvial.NewGrid(geoSize, geoSize, geoCell, up.Base) + grid.SetSeed(m.Source.Seed) // the flat-routing jitter; see internal/fluvial/jitter.go + // Size the flood's bucket queue to the elevation the run can actually reach: the manifest's range, + // with headroom for uplift that outruns erosion before the warning catches it. + grid.SetElevationRange(m.ElevationM.Min-200, m.ElevationM.Max+500) + solveStart := time.Now() + grid.Run(h.Data, up.Rate.Data, kField, p, func(step, total int, pct float64) { + if step == 0 { + return + } + lo, hi := h.MinMax() + elapsed := time.Since(solveStart) + eta := time.Duration(float64(elapsed) / (pct / 100) * (1 - pct/100)) + log(" %3.0f%% step %d/%d height %.0f..%.0f m eta %s", pct, step, total, lo, hi, eta.Round(time.Second)) + }) + log("fluvial done [%s]", since(solveStart)) + } + + // The coast, last, on the terrain the solve produced: the sea floor, the surf and the sediment it moves. + // It owns the sea floor outright — the ocean cells were held at sea level for the whole solve so that + // rivers cut down to sea level and no further, and this is where they stop being held. + coastStart := time.Now() + var flow []float32 + if grid != nil { + flow = grid.Area + } + cs := coast.Build(coast.Input{ + Height: h, Sea: up.Base, SeaLevelM: m.SeaLevelM, + BreakM: -m.Pipeline.Continent.SeaFloorM.Hi(), AbyssM: -m.Pipeline.Continent.SeaFloorM.Lo(), + Flow: flow, Seed: m.Source.Seed, Cfg: m.Pipeline.Coast, + }) + if m.Pipeline.Coast.Enabled { + log("coast: shelf %.1f..%.1f km, surf reach %.0f m, drift %.0f m, %d fetch rays to %.0f m [%s]", + m.Pipeline.Coast.ShelfKm.Lo(), m.Pipeline.Coast.ShelfKm.Hi(), m.Pipeline.Coast.SurfReachM, + m.Pipeline.Coast.DriftM, m.Pipeline.Coast.FetchDirections, m.Pipeline.Coast.FetchRangeM, + since(coastStart)) + } + + // Everything downstream asks about the terrain rather than about the mask that seeded it: a beach the + // coastal pass built is land and a headland it planed under the waterline is not, so the mask that the + // statistics, the preview and the data maps use is the one the coast pass finished with. + sea := cs.Sea + land := invert(sea) + landFrac = fractionTrue(land) + hLo, hHi = h.MinMax() + landLo, landHi := minMaxWhere(h.Data, land) + rep := stats.Report{ + LandFraction: landFrac, + ClipFraction: m.ClipFraction(h.Data), + MinM: float64(hLo), MaxM: float64(hHi), ReliefM: float64(hHi - hLo), + LandMinM: landLo, LandMaxM: landHi, LandReliefM: landHi - landLo, + Slopes: stats.ComputeSlopes(h, land), + Hypsometry: stats.ComputeHypsometry(h, land), + Buckets: stats.UpliftBuckets(h, up.Rate.Data, land, m.Pipeline.Thermal.TalusDeg, *reliefWindowM), + } + if grid != nil { + threshold := *channelKm2 * 1e6 // the incoming spec's channel definition is 1 km² + stats.SetExpected(m.Pipeline.Fluvial.M, m.Pipeline.Fluvial.N) + rep.SlopeArea = stats.ComputeSlopeArea(h, grid.Area, grid.Receiver, grid.Length, land, + up.Rate.Data, kField, m.Pipeline.Fluvial.K, m.Pipeline.Fluvial.N, threshold) + rep.DrainageDensity = stats.DrainageDensity(grid.Area, land, geoCell, threshold) + } + fmt.Println(rep.Summary()) + if m.Pipeline.Coast.Enabled { + fmt.Println() + fmt.Println(cs.Stats.Summary()) + } + if rep.ClipFraction > 0.001 { + fmt.Printf("\nWARNING: %.2f%% of the map is outside elevation_m %g..%g. U/K is the relief knob and the\n"+ + " ceiling is a hard clip in the 16-bit encoding, so this is a failed run, not a rounded one.\n", + rep.ClipFraction*100, m.ElevationM.Min, m.ElevationM.Max) + } + + if err := os.MkdirAll(outDir, 0o755); err != nil { + return err + } + if err := field.WriteThumbnail(filepath.Join(outDir, "thumb.png"), h, 512); err != nil { + return err + } + // The one that is actually worth looking at: hypsometric tint, hillshade and the drainage network. + pv := field.PreviewOptions{Sea: sea, SeaLevelM: m.SeaLevelM, RiverKm2: 0.5, Size: 1600} + if grid != nil { + flow := field.New(h.W, h.H, h.CellM) + copy(flow.Data, grid.Area) + pv.Flow = flow + } + if err := field.WritePreview(filepath.Join(outDir, "preview.png"), h, pv); err != nil { + return err + } + // A detail crop as well, always. The whole continent at 1500 px cannot show whether the lowlands read as + // hill country or as small mountains, and that distinction is the current question. + detail := pv + detail.Crop = [4]float64{*cropX, *cropY, *cropX + *cropSize, *cropY + *cropSize} + detail.Size = 1400 + detail.RiverKm2 = 0.15 + detail.Exaggeration = 2.0 + if err := field.WritePreview(filepath.Join(outDir, "preview_detail.png"), h, detail); err != nil { + return err + } + // The geology-grid height, so a preview run has something to look at. The full-resolution height belongs + // to the detail passes, which are not built yet (build-order steps 5 to 8). + if err := field.WriteGray16(filepath.Join(outDir, "geology_height.png"), h.W, h.H, m.Encode(h.Data), png.DefaultCompression); err != nil { + return err + } + if grid != nil { + flow := field.New(h.W, h.H, h.CellM) + copy(flow.Data, grid.Area) + unit := flow.ToUnit(99.5, true) + if err := field.WriteGray8(filepath.Join(outDir, "geology_flow.png"), unit.W, unit.H, toBytes(unit.Data), png.BestSpeed); err != nil { + return err + } + } + + // The false-colour maps: the inputs the run worked from and the structure it produced, beside the result. + // preview.png says whether the landscape looks right; these say why it looks the way it does, and when it + // does not they are where the answer is. See internal/field/datamap.go. + if err := writeDataMaps(outDir, h, up, cs, grid, *mapSize); err != nil { + return err + } + meta := map[string]any{ + "seed": m.Source.Seed, + "generated_at": time.Now().UTC().Format(time.RFC3339), + "geology_size": geoSize, + "geology_cell_m": geoCell, + "preview": preview, + "manifest": m, + "stats": rep, + "coast": cs.Stats, + "elapsed_s": time.Since(started).Seconds(), + } + blob, err := json.MarshalIndent(meta, "", " ") + if err != nil { + return err + } + if err := os.WriteFile(filepath.Join(outDir, "meta.json"), blob, 0o644); err != nil { + return err + } + log("\nwritten to %s in %s", outDir, since(started)) + return nil +} + +func toBytes(v []float32) []uint8 { + out := make([]uint8, len(v)) + for i, x := range v { + if x < 0 { + x = 0 + } else if x > 1 { + x = 1 + } + out[i] = uint8(x*255 + 0.5) + } + return out +} + +func invert(b []bool) []bool { + out := make([]bool, len(b)) + for i, v := range b { + out[i] = !v + } + return out +} + +func minMaxWhere(v []float32, mask []bool) (float64, float64) { + lo, hi := math.Inf(1), math.Inf(-1) + for i, x := range v { + if !mask[i] { + continue + } + f := float64(x) + if f < lo { + lo = f + } + if f > hi { + hi = f + } + } + if math.IsInf(lo, 1) { + return 0, 0 + } + return lo, hi +} + +func fractionTrue(b []bool) float64 { + if len(b) == 0 { + return 0 + } + n := 0 + for _, v := range b { + if v { + n++ + } + } + return float64(n) / float64(len(b)) +} + +func since(t time.Time) string { return time.Since(t).Round(time.Millisecond).String() } + +// findManifest walks up from the working directory, so the command works from anywhere in the repository +// rather than only from the root. +func findManifest(explicit string) (string, error) { + if explicit != "" { + return explicit, nil + } + dir, err := os.Getwd() + if err != nil { + return "", err + } + for i := 0; i < 8; i++ { + candidate := filepath.Join(dir, "RawContent", "World", "World.json") + if _, err := os.Stat(candidate); err == nil { + return candidate, nil + } + parent := filepath.Dir(dir) + if parent == dir { + break + } + dir = parent + } + return "", fmt.Errorf("no RawContent/World/World.json above %q; pass --manifest", mustWd()) +} + +func mustWd() string { + d, _ := os.Getwd() + return d +} + +// writeDataMaps renders the run's inputs and structure as false-colour PNGs beside the result. +// +// Which maps, and why each one earns its place: +// +// - map_uplift: rock uplift in mm/yr, the field everything else is a consequence of. Steady-state slope is +// U/(K*A^m), so this map and the slope map should be recognisably the same picture; when they are not, +// something downstream is overriding the tectonics, which is exactly how the repose clamp turned out to +// be the surface of the whole continent. +// - map_erodibility: the lithology multiplier on K. Hard bands stand up as ridges and soft ones are cut +// away, so this is where the texture inside a range comes from. +// - map_slope: degrees. The one to read next to map_uplift. +// - map_relief: local relief over 500 m, which separates a 5 m hummock from a 500 m mountainside — both +// can stand at 30 degrees and the slope map cannot tell them apart. +// - map_basins: one colour per drainage basin. The direct picture of whether the solve made a network. +// - map_flow: log drainage area, the rivers themselves. +func writeDataMaps(dir string, h *field.Field, up *uplift.Result, cs *coast.Result, grid *fluvial.Grid, size int) error { + sea := cs.Sea + + rateMmYr := field.NewLike(up.Rate) + for i, v := range up.Rate.Data { + rateMmYr.Data[i] = v * 1000 + } + if err := field.WriteDataMap(filepath.Join(dir, "map_uplift.png"), rateMmYr, + field.DataMapOptions{Sea: sea, Size: size, Palette: field.Inferno}); err != nil { + return err + } + if up.K != nil { + if err := field.WriteDataMap(filepath.Join(dir, "map_erodibility.png"), up.K, + field.DataMapOptions{Sea: sea, Size: size}); err != nil { + return err + } + } + + slope := h.Slope() + deg := field.NewLike(slope) + for i, s := range slope.Data { + deg.Data[i] = float32(math.Atan(float64(s)) * 180 / math.Pi) + } + if err := field.WriteDataMap(filepath.Join(dir, "map_slope.png"), deg, + field.DataMapOptions{Sea: sea, Size: size, Lo: 0, Hi: 45, Palette: field.Inferno}); err != nil { + return err + } + + if err := field.WriteDataMap(filepath.Join(dir, "map_relief.png"), localRelief(h, 500), + field.DataMapOptions{Sea: sea, Size: size, Palette: field.Inferno}); err != nil { + return err + } + + // The coast's own two. Exposure is the input both shore processes are driven by, and it is the one to + // read when a beach turns up on a headland or a cliff at the back of a bay. The change map is the pass's + // whole effect in one picture: cool where the surf cut, warm where the sediment landed. + // + // Exposure is drawn only within a kilometre of the water, and the rest is rendered as the flat "no data" + // colour. That is not tidiness: exposure is measured on the waterline and carried to every other cell by + // "the stretch of shore nearest to you", which past a few hundred metres is a map of the continent's + // medial axis rather than of anything coastal. The first render of it was a sunburst of polygonal wedges + // meeting in the middle of the continent, which says nothing about a coast and hides what does. + band := make([]bool, len(cs.Exposure.Data)) + for i, d := range cs.Geometry.Dist.Data { + band[i] = math.Abs(float64(d)) > 1000 + } + if err := field.WriteDataMap(filepath.Join(dir, "map_exposure.png"), cs.Exposure, + field.DataMapOptions{Sea: band, Size: size, Lo: 0, Hi: 1, Palette: field.Inferno}); err != nil { + return err + } + if err := field.WriteDataMap(filepath.Join(dir, "map_coast.png"), cs.Change, + field.DataMapOptions{Size: size, Lo: -30, Hi: 30, Palette: field.Divergent}); err != nil { + return err + } + + if grid == nil { + return nil + } + flow := field.New(h.W, h.H, h.CellM) + copy(flow.Data, grid.Area) + if err := field.WriteDataMap(filepath.Join(dir, "map_flow.png"), flow, + field.DataMapOptions{Sea: sea, Size: size, Log: true}); err != nil { + return err + } + return field.WriteBasinMap(filepath.Join(dir, "map_basins.png"), h.W, h.H, grid.Receiver, sea, size) +} + +// localRelief is max minus min over a square window, as a field. Separable: the row pass then the column +// pass, each a sliding min and max, so the cost does not grow with the window. +func localRelief(h *field.Field, windowM float64) *field.Field { + r := int(math.Round(windowM / h.CellM / 2)) + if r < 1 { + r = 1 + } + rowLo, rowHi := field.NewLike(h), field.NewLike(h) + for y := 0; y < h.H; y++ { + for x := 0; x < h.W; x++ { + lo, hi := float32(math.Inf(1)), float32(math.Inf(-1)) + for d := -r; d <= r; d++ { + v := h.AtClamped(x+d, y) + if v < lo { + lo = v + } + if v > hi { + hi = v + } + } + rowLo.Data[y*h.W+x], rowHi.Data[y*h.W+x] = lo, hi + } + } + out := field.NewLike(h) + for y := 0; y < h.H; y++ { + for x := 0; x < h.W; x++ { + lo, hi := float32(math.Inf(1)), float32(math.Inf(-1)) + for d := -r; d <= r; d++ { + if v := rowLo.AtClamped(x, y+d); v < lo { + lo = v + } + if v := rowHi.AtClamped(x, y+d); v > hi { + hi = v + } + } + out.Data[y*h.W+x] = hi - lo + } + } + return out +} diff --git a/Tools/Terrain/internal/check/check_test.go b/Tools/Terrain/internal/check/check_test.go new file mode 100644 index 0000000..6210cbd --- /dev/null +++ b/Tools/Terrain/internal/check/check_test.go @@ -0,0 +1,138 @@ +// Package check holds the generator's integration tests: the ones that need more than one package and so +// cannot live in either. There are two, and they are the two that matter. +// +// Determinism is a promise the project makes (cross-cutting rule 12) and Go is the language most likely to +// break it quietly, so it is asserted rather than assumed. Steady state is the physics: if the solver does +// not reproduce the analytic stream-power answer on a case with a known answer, every prettier result it +// produces is a coincidence. +package check + +import ( + "crypto/sha256" + "encoding/hex" + "math" + "runtime" + "sort" + "testing" + "unsafe" + + "salty/terrain/internal/coast" + "salty/terrain/internal/fluvial" + "salty/terrain/internal/manifest" + "salty/terrain/internal/uplift" +) + +func hash(v []float32) string { + b := unsafe.Slice((*byte)(unsafe.Pointer(&v[0])), len(v)*4) + sum := sha256.Sum256(b) + return hex.EncodeToString(sum[:8]) +} + +// run is one whole small pipeline: uplift, the solve, then the coast. All three are in it because all three +// are parallel, and the coast pass in particular has two places determinism could leak — the fetch rays run +// over a slice of the waterline, and the sediment scatter accumulates several land cells into one shore cell, +// which is why that scatter is deliberately serial. +func run(size, steps int) []float32 { + m := manifest.Defaults() + m.Source.Seed = 7 + up := uplift.Build(size, 40, m) + h := up.Height.Clone() + g := fluvial.NewGrid(size, size, 40, up.Base) + g.SetElevationRange(-2000, 4000) + g.Run(h.Data, up.Rate.Data, nil, fluvial.Params{ + K: 5e-5, M: 0.5, N: 1, DtYr: 1500, Steps: steps, Diffusion: 0.02, FillEvery: 1, + }, nil) + coast.Build(coast.Input{ + Height: h, Sea: up.Base, SeaLevelM: m.SeaLevelM, + BreakM: -m.Pipeline.Continent.SeaFloorM.Hi(), AbyssM: -m.Pipeline.Continent.SeaFloorM.Lo(), + Flow: g.Area, Seed: m.Source.Seed, Cfg: m.Pipeline.Coast, + }) + return h.Data +} + +// TestDeterministicAcrossGOMAXPROCS is the assertion Docs/Terrain.md makes about the Go core: the result must +// be byte-identical however many cores it ran on. Go offers three good ways to break this - randomised map +// iteration, goroutine completion order, and a shared global RNG - so it is worth a test rather than a +// comment. +func TestDeterministicAcrossGOMAXPROCS(t *testing.T) { + was := runtime.GOMAXPROCS(1) + defer runtime.GOMAXPROCS(was) + + single := run(128, 40) + hSingle := hash(single) + + for _, procs := range []int{2, 4, 8, 16} { + if procs > runtime.NumCPU()*2 { + continue + } + runtime.GOMAXPROCS(procs) + got := hash(run(128, 40)) + if got != hSingle { + t.Fatalf("GOMAXPROCS=%d gave %s, GOMAXPROCS=1 gave %s: the pipeline is not deterministic", procs, got, hSingle) + } + } +} + +// TestSameSeedSameResult guards the other half of rule 12: a seed names a world. +func TestSameSeedSameResult(t *testing.T) { + if a, b := hash(run(96, 20)), hash(run(96, 20)); a != b { + t.Fatalf("two runs of one seed differ: %s vs %s", a, b) + } +} + +// TestSteadyStateMatchesStreamPower is the physics check. On a uniform uplift field with uniform erodibility, +// the analytic steady state of dh/dt = U - K*A^m*S^n is S = (U/K)^(1/n) * A^(-m/n), so K*A^m*S^n / U must be +// 1 at every channel cell. Anything systematically off means the implicit update, the drainage accumulation +// or the stack order is wrong, and no amount of tuning would fix it. +func TestSteadyStateMatchesStreamPower(t *testing.T) { + const ( + size = 160 + cellM = 50.0 + k = 1e-4 + mExp = 0.5 + nExp = 1.0 + u = 1e-3 // m/yr + ) + base := make([]bool, size*size) // no ocean: the borders are the outlets + h := make([]float32, size*size) + rate := make([]float32, size*size) + // A little noise so the flow network has something to organise; the answer must not depend on it. + seed := uint32(12345) + for i := range h { + seed = seed*1664525 + 1013904223 + h[i] = float32(seed>>8&0xffff) / 65535 * 5 + rate[i] = u + } + + g := fluvial.NewGrid(size, size, cellM, base) + g.SetElevationRange(-100, 5000) + g.Run(h, rate, nil, fluvial.Params{ + K: k, M: mExp, N: nExp, DtYr: 2000, Steps: 4000, Diffusion: 0, FillEvery: 1, + }, nil) + + // Only well-developed channels: headwaters are hillslopes, where stream power is not the whole story + // and where the discrete D8 grid quantises slope badly. + var ratios []float64 + threshold := 200 * cellM * cellM + for i := range h { + r := g.Receiver[i] + if int(r) == i || g.Base[i] || float64(g.Area[i]) < threshold { + continue + } + s := float64(h[i]-h[r]) / float64(g.Length[i]) + if s <= 0 { + continue + } + ratios = append(ratios, k*math.Pow(float64(g.Area[i]), mExp)*math.Pow(s, nExp)/u) + } + if len(ratios) < 100 { + t.Fatalf("only %d channel cells; the solve did not organise a network", len(ratios)) + } + sort.Float64s(ratios) + median := ratios[len(ratios)/2] + if math.Abs(median-1) > 0.1 { + t.Errorf("median K*A^m*S^n/U = %.4f over %d channel cells, want 1.0 +/- 0.1: "+ + "the solve is not reaching the analytic steady state", median, len(ratios)) + } + t.Logf("steady state check: median ratio %.4f over %d channel cells", median, len(ratios)) +} diff --git a/Tools/Terrain/internal/check/margin_test.go b/Tools/Terrain/internal/check/margin_test.go new file mode 100644 index 0000000..4a4a531 --- /dev/null +++ b/Tools/Terrain/internal/check/margin_test.go @@ -0,0 +1,96 @@ +package check + +import ( + "testing" + + "salty/terrain/internal/manifest" + "salty/terrain/internal/uplift" +) + +// TestBorderIsAlwaysOcean is the boundary condition the whole solve rests on, asserted rather than assumed. +// +// A cell on the map border is an outlet: `fluvial.isOutlet` returns true for it whatever else is true, so it +// takes no uplift and is never eroded, and the repose clamp will not lower it either. Land that reaches the +// border therefore freezes at whatever the initial relief gave it while the interior erodes away beneath it, +// and what that looks like is a rim of untouched terrain standing a hundred metres over its neighbour — it is +// what once reported a 66 degree slope on a map whose angle of repose was 22. `continentMask` imposes a +// margin to prevent it, and this test is what says the margin is still doing its job. +// +// It is worth a test rather than a comment because the margin is easy to break from a distance. The uplift +// rate used to be multiplied by the continent mask, so the margin's taper was suppressing uplift at the border +// as a side effect; decoupling the two (D-52) removed that, and nothing in the change was anywhere near this +// file. The invariant is the border cells themselves, so that is what is asserted; the distances and rates are +// reported alongside because they are what a person would want to see when it does fail. +func TestBorderIsAlwaysOcean(t *testing.T) { + const size = 1400 + const sideM = 14280.0 + cell := sideM / (size - 1) + + for _, seed := range []int64{7, 9342, 67914} { + m := manifest.Defaults() + m.Source.Seed = seed + up := uplift.Build(size, cell, m) + + for x := 0; x < size; x++ { + for _, i := range [2]int{x, (size-1)*size + x} { + if !up.Base[i] { + t.Errorf("seed %d: cell (%d,%d) on the top or bottom border is land", seed, i%size, i/size) + } + } + } + for y := 0; y < size; y++ { + for _, i := range [2]int{y * size, y*size + size - 1} { + if !up.Base[i] { + t.Errorf("seed %d: cell (%d,%d) on the left or right border is land", seed, i%size, i/size) + } + } + } + + // How hard the margin is pressing. The margin does not only keep land off the border; where the + // continent would have run past the edge it *cuts* it, and it cuts along a contour of distance-to-edge, + // which is a straight line parallel to that edge. So a coastline inside the margin band is a coastline + // the margin drew rather than one the noise did, and the count is the measure of how much of one there + // is. It is logged, not asserted: some is unavoidable and the right threshold is a judgement. + band := int(0.04 * size) + nearest := size + var peakRate, peakHeight float64 + landInBand, shoreInBand, shore := 0, 0, 0 + for i := range up.Base { + x, y := i%size, i/size + d := min(min(x, size-1-x), min(y, size-1-y)) + if up.Base[i] { + // A waterline cell: ocean with land in the four-neighbourhood. + for _, n := range [4]int{i - 1, i + 1, i - size, i + size} { + if n >= 0 && n < len(up.Base) && !up.Base[n] { + shore++ + if d < band { + shoreInBand++ + } + break + } + } + continue + } + if d < nearest { + nearest = d + } + if d < band { + landInBand++ + if r := float64(up.Rate.Data[i]) * 1000; r > peakRate { + peakRate = r + } + if h := float64(up.Height.Data[i]); h > peakHeight { + peakHeight = h + } + } + } + pct := 0.0 + if shore > 0 { + pct = float64(shoreInBand) / float64(shore) * 100 + } + t.Logf("seed %6d: nearest land %d cells (%.0f m) from the border; inside the %d-cell margin, "+ + "%d land cells, peak uplift %.2f mm/yr, peak initial relief %.0f m; %.1f%% of the shoreline is "+ + "inside the margin band (a coast the margin drew, not the noise)", + seed, nearest, float64(nearest)*cell, band, landInBand, peakRate, peakHeight, pct) + } +} diff --git a/Tools/Terrain/internal/check/talus_test.go b/Tools/Terrain/internal/check/talus_test.go new file mode 100644 index 0000000..a33de32 --- /dev/null +++ b/Tools/Terrain/internal/check/talus_test.go @@ -0,0 +1,86 @@ +package check + +import ( + "math" + "os" + "strconv" + "testing" + + "salty/terrain/internal/fluvial" + "salty/terrain/internal/manifest" + "salty/terrain/internal/thermal" + "salty/terrain/internal/uplift" +) + +// TestTalusHoldsInThePipeline is the gap between a unit test and a system. thermal.Apply demonstrably cuts a +// cone to the angle of repose, and yet a full run with the angle set to 22 degrees reports a median land slope +// of 37. One of those two things is wrong and the difference matters: the angle of repose is the only direct +// lever on how steep hill country looks. +func TestTalusHoldsInThePipeline(t *testing.T) { + const ( + size = 300 + deg = 22.0 + steps = 300 + ) + passesUnderTest := 3 + if v := os.Getenv("TALUS_PASSES"); v != "" { + passesUnderTest, _ = strconv.Atoi(v) + } + m := manifest.Defaults() + m.Source.Seed = 7 + cellM := m.SideM() / float64(size-1) + up := uplift.Build(size, cellM, m) + h := up.Height.Clone() + + g := fluvial.NewGrid(size, size, cellM, up.Base) + g.SetElevationRange(-2000, 4000) + talus := thermal.TalusFromDegrees(deg) + g.Run(h.Data, up.Rate.Data, up.K.Data, fluvial.Params{ + K: m.Pipeline.Fluvial.K, M: 0.5, N: 1, DtYr: 1500, Steps: steps, + Diffusion: 0.02, FillEvery: 1, + TalusSlope: talus, ThermalEvery: 1, ThermalPasses: passesUnderTest, + }, nil) + + if os.Getenv("CLAMP_AFTER") != "" { + t.Logf("removed %.2f m mean by a final clamp", g.ClampToRepose(h.Data, talus)) + } + + // The steepest neighbour drop anywhere on land, in the same units the angle of repose is written in. + worst, count := 0.0, 0 + wx, wy := 0, 0 + worstOther := float32(0) + worstOtherBase := false + for y := 1; y < size-1; y++ { + for x := 1; x < size-1; x++ { + i := y*size + x + if up.Base[i] { + continue + } + for _, d := range [][2]int{{1, 0}, {0, 1}, {1, 1}, {1, -1}} { + ni := (y+d[1])*size + (x + d[0]) + if up.Base[ni] { + continue + } + dist := cellM + if d[0] != 0 && d[1] != 0 { + dist = cellM * math.Sqrt2 + } + if s := math.Abs(float64(h.Data[i]-h.Data[ni])) / dist; s > worst { + worst = s + wx, wy = x, y + worstOther = h.Data[ni] + worstOtherBase = up.Base[ni] + } + } + if count++; false { + _ = count + } + } + } + t.Logf("worst pair at (%d,%d): h=%.1f vs h=%.1f, base=%v/%v", wx, wy, h.Data[wy*size+wx], worstOther, up.Base[wy*size+wx], worstOtherBase) + gotDeg := math.Atan(worst) * 180 / math.Pi + t.Logf("steepest land slope after %d steps: %.1f deg (repose %.1f, cell %.0f m)", steps, gotDeg, deg, cellM) + if gotDeg > deg+5 { + t.Errorf("steepest land slope is %.1f deg with the angle of repose at %.1f: landsliding is not binding", gotDeg, deg) + } +} diff --git a/Tools/Terrain/internal/coast/coast.go b/Tools/Terrain/internal/coast/coast.go new file mode 100644 index 0000000..53b61f9 --- /dev/null +++ b/Tools/Terrain/internal/coast/coast.go @@ -0,0 +1,812 @@ +// Package coast is what happens where the land meets the sea. +// +// Until this pass existed the coastline was only a *line*: the continent mask said which cells were ocean, +// the fluvial solve held those cells at sea level as its base level, and afterwards the sea floor was dropped +// to a flat plane 180 m down in one step. That is enough to give the solve a well-posed boundary — which is +// why D-48 kept the continent — and it is not a coast. There was no shelf, so a third of the map was a flat +// plane occupying a third of the elevation range; there was no surf, so the land met the water at whatever +// angle the last erosion step happened to leave it; and there was no sediment, so every bay was as deep as +// every headland was steep. +// +// # The three things this pass adds, and why each is a process rather than a shape +// +// 1. The shelf. A continental margin is a shelf at a very gentle grade out to a shelf break and then a much +// steeper slope to the abyssal floor. The width of the shelf is not a constant: it is wide off a low +// coastal plain and narrow where a range comes down to the water. So it is read off the relief standing +// behind each stretch of shore rather than set, and the same manifest numbers then produce a wide shelf +// on a passive coast and a narrow one on an active coast without either having been asked for. +// +// 2. The surf. Within a reach of the waterline the land is planed towards a shore platform. The reach is set +// by how open the water is, so an exposed headland is attacked further inland than the back of a bay. The +// cliff is not drawn: it is the step where the reach ends, and its height is whatever the land behind it +// happened to stand at. That is the right way round — a sea cliff is tall because the land is tall, not +// because a constant says so. +// +// 3. The sediment. What the surf cuts is counted, carried along the shore, and laid down in sheltered water +// shallower than a few tens of metres: beaches and bars in the bays, nothing on the headlands. Rivers +// deliver their own load at their mouths in proportion to what they drain, which is what makes a delta. +// Mass is conserved to within the drift kernel's edges, and what will not fit under the berm is reported +// rather than quietly dropped. +// +// # Why it runs after the solve and not before +// +// Two of the three need the finished terrain: the shelf width is a function of the relief behind the shore, +// and the surf cuts into whatever the solve built. The third could run before but would then be erased. So +// this pass owns the sea floor outright — uplift.Build no longer produces a bathymetry field — and it is the +// last thing that touches the geology grid. +// +// The one invariant it must not break: the sea floor is laid after the solve, never during it. A coastal cell +// drains into an ocean cell, and if that ocean cell sits at -180 m then the solver cuts the river down to +// -180 m; the first run with a coast eroded the land to 174 m below sea level for exactly that reason. A +// river's base level is sea level, and what the sea floor does below that is scenery. +package coast + +import ( + "fmt" + "math" + "sort" + + "salty/terrain/internal/field" + "salty/terrain/internal/manifest" + "salty/terrain/internal/noise" +) + +// srcShelf is this pass's noise stream. Pass indices are fixed and never reordered so that inserting a pass +// does not reshuffle the ones before it; uplift owns 1 to 9, so the coast starts at 10. +const srcShelf = 10 + +// backshoreM is how far inland the shelf looks for the relief that decides its width. Not a manifest key: it +// is the length over which "the land behind this beach" means anything, and 600 m is one hillside. +const backshoreM = 600 + +// The two anchors of the fetch scale, in fractions of the fetch range the seaward rays travelled. They are +// properties of how fetch is measured rather than of a world, which is why they are constants and not keys: +// a coast whose seaward rays nearly all run to the horizon is open however big the map is. +const ( + shelteredFetch = 0.35 + openFetch = 0.90 +) + +// shelfSmoothM is how far the carried shelf width is smoothed along the coast. See shelfWidth. +const shelfSmoothM = 700 + +// exposureSmoothM is how far the carried fetch is smoothed along the coast. Shorter than the shelf's, because +// exposure is only read within a few hundred metres of the water and smoothing it over more than the reach of +// the processes that use it would flatten the very contrast it exists to provide. +const exposureSmoothM = 250 + +// shelterFloor is how much sediment the most exposed water will still take. +// +// Shelter cannot be a gate. Measured on the real continent with no floor, 73 % of the sediment budget came +// back unplaced, because the seaward rays from an ordinary stretch of coast nearly all run to the horizon and +// it therefore scores as fully exposed — and a fully exposed coast with no floor wants nothing at all. Real +// exposed coasts do have beaches; what they do not have is *more* sand than the bay next door. So the floor +// keeps the contrast, which is the part that matters, and stops the budget falling on the floor. +const shelterFloor = 0.15 + +// platformResidualCapM bounds what CutFraction may leave standing on the shore platform. +// +// CutFraction below 1 exists so the platform is not glass, and the obvious reading — leave that fraction of +// the height above the target — is wrong in a way that only shows on a tall coast: 15 % of a 120 m headland is +// 18 m, which is not a rough platform, it is an uncut headland. The residual is therefore a few metres at +// most, whatever the coast behind it stands at. +const platformResidualCapM = 4 + +// Input is everything the pass needs. Height is modified in place. +type Input struct { + Height *field.Field + Sea []bool // the continent mask's ocean: the cells the solve held at base level + SeaLevelM float64 // the base level the solve used, and the datum every depth here is measured from + BreakM float64 // depth at the shelf break, positive metres + AbyssM float64 // depth of the abyssal floor, positive metres + Flow []float32 + Seed int64 + Cfg manifest.Coast +} + +// Result is the geometry the pass built and the accounting it kept. +type Result struct { + Geometry *Geometry + Exposure *field.Field // 0 sheltered, 1 open water; defined on every cell through Geometry.Ref + Change *field.Field // metres this pass moved: negative where the surf cut, positive where it laid + Sea []bool // the mask as it now stands: everything strictly below sea level + Stats Stats +} + +// Stats is the pass's own report. The volumes are the point: the sediment budget is the one part of this that +// is not derived from something already measured, so it is printed rather than assumed. +type Stats struct { + ShorelineKm float64 `json:"shoreline_km"` + SeaFraction float64 `json:"sea_fraction"` + ShelfPctSea float64 `json:"shelf_pct_of_sea"` + CutM3 float64 `json:"surf_cut_m3"` + RiverM3 float64 `json:"river_load_m3"` + LaidM3 float64 `json:"laid_m3"` + UnplacedM3 float64 `json:"unplaced_m3"` + RiverMouths int `json:"river_mouths"` + PlanedKm2 float64 `json:"planed_km2"` + BeachKm2 float64 `json:"beach_km2"` + DrownedKm2 float64 `json:"drowned_km2"` + // How high the land stands immediately behind the surf strip, which is the cliff when there is one. + // + // The first version of this measured the drop from a cell to its seaward neighbour and called that the + // cliff. That is a gradient, not a height: at the angle of repose one cell of a 10 m grid is 7 m, so the + // number could not exceed 7 whatever the coast did, and it read 2 m on a plain coast and 3 m on a coast + // with genuine cliffs on it. A cliff is how far you fall, not how steep the first cell is. + BackshoreM float64 `json:"backshore_m"` + BackshoreP90M float64 `json:"backshore_p90_m"` + // Exposure percentiles over the waterline cells, which is where it is measured and the only place it + // means anything. A coast that is all 1.0 has no bays as far as the fetch can tell, and then neither the + // surf reach nor the shelter is doing any work; a coast that is all 0 means the anchors are wrong. This + // is the diagnostic to read before touching either. + ExposureP10 float64 `json:"exposure_p10"` + ExposureP50 float64 `json:"exposure_p50"` + ExposureP90 float64 `json:"exposure_p90"` +} + +func (s Stats) Summary() string { + return fmt.Sprintf( + "coast: %.0f km of shoreline, %.0f%% sea, shelf %.0f%% of it; surf planed %.1f km2 and cut %.2f Mm3,\n"+ + " %d river mouths delivered %.2f Mm3, %.2f Mm3 laid (%.0f%% unplaced) as %.2f km2 of new beach;\n"+ + " backshore %.0f m median, %.0f m P90, %.2f km2 drowned; exposure %.2f / %.2f / %.2f (p10/p50/p90)", + s.ShorelineKm, s.SeaFraction*100, s.ShelfPctSea, s.PlanedKm2, s.CutM3/1e6, + s.RiverMouths, s.RiverM3/1e6, s.LaidM3/1e6, pct(s.UnplacedM3, s.CutM3+s.RiverM3), s.BeachKm2, + s.BackshoreM, s.BackshoreP90M, s.DrownedKm2, s.ExposureP10, s.ExposureP50, s.ExposureP90) +} + +func pct(a, b float64) float64 { + if b <= 0 { + return 0 + } + return a / b * 100 +} + +// Build lays the sea floor, cuts the shore and moves what it cuts. Height is modified in place. +func Build(in Input) *Result { + h := in.Height + w, ht := h.W, h.H + cellArea := h.CellM * h.CellM + + g := Measure(in.Sea, w, ht, h.CellM) + res := &Result{Geometry: g, Exposure: field.NewLike(h), Change: field.NewLike(h)} + + // Disabled, or a map with no coast on it: the sea floor is the flat plane at the abyssal depth, which is + // what the generator produced before this pass existed. Everything below is skipped. + if !in.Cfg.Enabled || len(g.Waterline) == 0 { + for i := range in.Sea { + if in.Sea[i] { + h.Data[i] = float32(in.SeaLevelM - in.AbyssM) + } + } + res.finish(h.Clone(), in) + return res + } + + shelfW := shelfWidth(h, g, in) + layShelf(h, g, in, shelfW) + + // The before-and-after is taken here, after the sea floor and before the two shore processes. Taken any + // earlier it would be a map of the sea floor: the ocean cells go from sea level to -180 m in one step, and + // a few hundred metres of that swamps the few metres the surf and the sediment move, which is the thing + // the map exists to show. + before := h.Clone() + + shoreExposure := fetch(g, in) + res.Stats.ExposureP10, res.Stats.ExposureP50, res.Stats.ExposureP90 = shorePercentiles(shoreExposure, g) + carried := field.NewLike(h) + for i, ref := range g.Ref { + if ref >= 0 { + carried.Data[i] = shoreExposure.Data[ref] + } + } + // Smoothed for the same reason the shelf width is: carrying a per-shore value by "the stretch nearest to + // you" partitions the map into Voronoi wedges, and a wedge boundary inside the deposition band would put + // a straight edge through a beach. + res.Exposure = boxMean(carried, int(exposureSmoothM/h.CellM+0.5), 2) + + cut := plane(h, g, res.Exposure, in) + + // The scatter into the supply array is serial and in index order on purpose: several land cells share a + // waterline cell, so a parallel loop would be accumulating into the same slot from several goroutines and + // the float sum would depend on who got there first. Cross-cutting rule 12 is not negotiable here, and + // one linear pass over the grid costs nothing next to the solve. + supply := make([]float64, w*ht) + var cutM3, planedCells float64 + for i, c := range cut.Data { + if c <= 0 { + continue + } + v := float64(c) * cellArea + supply[g.Ref[i]] += v + cutM3 += v + planedCells++ + } + backshore, backshoreP90 := measureBackshore(h, g, in) + + riverM3, mouths := rivers(g, in, supply) + laid, unplaced := deposit(h, g, res.Exposure, in, supply) + + res.Stats.CutM3 = cutM3 + res.Stats.RiverM3 = riverM3 + res.Stats.RiverMouths = mouths + res.Stats.LaidM3 = laid + res.Stats.UnplacedM3 = unplaced + res.Stats.PlanedKm2 = planedCells * cellArea / 1e6 + res.Stats.BackshoreM = backshore + res.Stats.BackshoreP90M = backshoreP90 + res.Stats.ShelfPctSea = shelfFraction(g, in, shelfW) + res.finish(before, in) + return res +} + +// finish computes the mask the rest of the run should use, and the before-and-after difference. +// +// The mask is "strictly below sea level", not the continent mask it started from, and that is the point: a +// beach the pass built out of cliff debris is land, and a low headland it planed under the waterline is not. +// The statistics and the preview both ask what is above sea level, so they get an answer about the terrain +// rather than about the mask that seeded it. +func (r *Result) finish(before *field.Field, in Input) { + h := in.Height + r.Sea = make([]bool, len(h.Data)) + sea, beach, drowned := 0, 0, 0 + for i := range h.Data { + r.Change.Data[i] = h.Data[i] - before.Data[i] + r.Sea[i] = float64(h.Data[i]) < in.SeaLevelM + if r.Sea[i] { + sea++ + if !in.Sea[i] { + drowned++ + } + } else if in.Sea[i] { + beach++ + } + } + n := float64(len(h.Data)) + cellArea := h.CellM * h.CellM + r.Stats.SeaFraction = float64(sea) / n + r.Stats.BeachKm2 = float64(beach) * cellArea / 1e6 + r.Stats.DrownedKm2 = float64(drowned) * cellArea / 1e6 + r.Stats.ShorelineKm = r.Geometry.ShoreM / 1000 +} + +// shelfWidth is metres of shelf for every cell: measured on the waterline from the relief standing behind it, +// carried out to sea by the nearest-shore reference, and then smoothed. +// +// The inland direction comes from the gradient of the signed distance field rather than from the eight-way +// step to the nearest land cell: the distance field is smooth, so the march does not stagger along the grid +// axes and the widths do not come out banded. +// +// The smoothing is not cosmetic. Carrying a per-shore quantity out to sea by "the stretch nearest to you" +// partitions the ocean into Voronoi wedges, and a wedge boundary is a discontinuity that runs for kilometres: +// the first render of the change map came out as a sunburst of straight rays radiating from every headland, +// which is a map of the feature transform rather than of a sea floor. Blurring the carried field over a few +// hundred metres turns the wedge boundaries back into what they should have been, a shelf whose width varies +// smoothly along the coast. +func shelfWidth(h *field.Field, g *Geometry, in Input) *field.Field { + out := field.NewLike(h) + steps := int(backshoreM/h.CellM + 0.5) + lo := in.Cfg.ShelfKm.Lo() * 1000 + hi := in.Cfg.ShelfKm.Hi() * 1000 + steep := in.Cfg.SteepCoastM + if steep <= 0 { + steep = 1 + } + field.Rows(len(g.Waterline), func(a, b int) { + for n := a; n < b; n++ { + i := int(g.Waterline[n]) + x, y := i%g.W, i/g.W + dx := float64(g.Dist.AtClamped(x+1, y) - g.Dist.AtClamped(x-1, y)) + dy := float64(g.Dist.AtClamped(x, y+1) - g.Dist.AtClamped(x, y-1)) + l := math.Hypot(dx, dy) + if l < 1e-6 { + dx, dy, l = 1, 0, 1 + } + dx, dy = dx/l, dy/l + var relief float64 + for t := 1; t <= steps; t++ { + px := x + int(math.Round(dx*float64(t))) + py := y + int(math.Round(dy*float64(t))) + if px < 0 || py < 0 || px >= g.W || py >= g.H { + break + } + if e := float64(h.Data[py*g.W+px]) - in.SeaLevelM; e > relief { + relief = e + } + } + t := relief / steep + if t > 1 { + t = 1 + } + out.Data[i] = float32(hi + (lo-hi)*noise.Smoothstep(t)) + } + }) + + carried := field.NewLike(h) + for i, ref := range g.Ref { + if ref >= 0 { + carried.Data[i] = out.Data[ref] + } else { + carried.Data[i] = float32(hi) + } + } + return boxMean(carried, int(shelfSmoothM/h.CellM+0.5), 2) +} + +// layShelf writes the sea floor: a gentle shelf out to the break, then the continental slope to the abyss. +// +// The roughness is scaled by depth so it dies out at the waterline. Without that it puts metre-scale noise on +// water a few centimetres deep and the shallows come out as a scatter of one-cell islands, which then read as +// land in every statistic downstream. +func layShelf(h *field.Field, g *Geometry, in Input, shelfW *field.Field) { + cfg := in.Cfg + period := cfg.RoughWaveM * 256 + u, v := noise.WorldUV(g.W, g.H, h.CellM, 0, 0, period) + rough := noise.FBMAt(u, v, noise.NewSource(in.Seed, srcShelf), + noise.Params{BaseCells: 256, Octaves: 3, Gain: 0.5}) + + exp := cfg.ShelfExponent + if exp <= 0 { + exp = 1 + } + slopeW := cfg.SlopeKm * 1000 + if slopeW <= 0 { + slopeW = 1 + } + field.Rows(g.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < g.W; x++ { + i := y*g.W + x + if !in.Sea[i] { + continue + } + d := -float64(g.Dist.Data[i]) // metres offshore + width := float64(shelfW.Data[i]) + if width <= 0 { + width = cfg.ShelfKm.Hi() * 1000 + } + var depth float64 + if d < width { + depth = in.BreakM * math.Pow(d/width, exp) + } else { + t := (d - width) / slopeW + if t > 1 { + t = 1 + } + depth = in.BreakM + (in.AbyssM-in.BreakM)*noise.Smoothstep(t) + } + taper := depth / 10 + if taper > 1 { + taper = 1 + } + r := (float64(rough.Data[i])*2 - 1) * cfg.RoughnessM * taper + h.Data[i] = float32(in.SeaLevelM - depth + r) + } + } + }) +} + +// fetch is how open the water is in front of each waterline cell: rays cast seaward until they hit land, +// weighted by the cosine of their angle from the shore normal, and averaged. +// +// Two things about that sentence are the whole of it, and the first version got both wrong. +// +// **Only seaward.** Casting in every direction counts the land *behind* the shore as shelter, and every coast +// has land behind it — so a straight open coast, where seven rays in sixteen stop after one cell, scored as +// more sheltered than the back of a bay whose walls are half a kilometre off. Restricting to the half-space +// the shore faces, weighted by the cosine of the angle from the normal, is the standard effective fetch and it +// gets the sign right: open coast near 1, embayment well below it, enclosed inlet near 0. +// +// **Absolute, not a percentile.** The first version stretched the map's own 5th to 95th percentile onto 0..1, +// which is robust and which collapses to nonsense on a coast that does not vary — a perfectly straight one has +// no spread, so every cell of it came out at the same end of the scale and the whole continent read as one +// sheltered lagoon. A percentile is also a global statistic, which rule 1 of the tiling plan rules out: two +// tiles would stretch by different anchors and their shared bay would be two different colours. So the +// anchors are fixed and physical, and the units are "fraction of the fetch range the rays got". +func fetch(g *Geometry, in Input) *field.Field { + out := field.New(g.W, g.H, g.CellM) + dirs := in.Cfg.FetchDirections + if dirs < 4 { + dirs = 4 + } + maxSteps := int(in.Cfg.FetchRangeM / g.CellM) + if maxSteps < 2 { + maxSteps = 2 + } + cs := make([]float64, dirs) + sn := make([]float64, dirs) + for k := 0; k < dirs; k++ { + th := 2 * math.Pi * float64(k) / float64(dirs) + cs[k], sn[k] = math.Cos(th), math.Sin(th) + } + field.Rows(len(g.Waterline), func(a, b int) { + for n := a; n < b; n++ { + i := int(g.Waterline[n]) + x0, y0 := i%g.W, i/g.W + // The seaward normal: the distance field increases inland, so its gradient points away from the + // water and the negative of it is the direction this stretch of shore faces. + nx := -float64(g.Dist.AtClamped(x0+1, y0) - g.Dist.AtClamped(x0-1, y0)) + ny := -float64(g.Dist.AtClamped(x0, y0+1) - g.Dist.AtClamped(x0, y0-1)) + if l := math.Hypot(nx, ny); l > 1e-6 { + nx, ny = nx/l, ny/l + } else { + nx, ny = 0, 0 // no usable normal: fall back to the whole circle + } + var num, den float64 + for k := 0; k < dirs; k++ { + w := cs[k]*nx + sn[k]*ny + if nx == 0 && ny == 0 { + w = 1 + } else if w <= 0 { + continue + } + reach := maxSteps + for t := 1; t <= maxSteps; t++ { + px := x0 + int(math.Round(cs[k]*float64(t))) + py := y0 + int(math.Round(sn[k]*float64(t))) + if px < 0 || py < 0 || px >= g.W || py >= g.H { + break // off the map is open water, and the mask keeps the border at sea + } + if !in.Sea[py*g.W+px] { + reach = t + break + } + } + num += w * float64(reach) / float64(maxSteps) + den += w + } + raw := 1.0 + if den > 0 { + raw = num / den + } + t := (raw - shelteredFetch) / (openFetch - shelteredFetch) + if t < 0 { + t = 0 + } else if t > 1 { + t = 1 + } + out.Data[i] = float32(noise.Smoothstep(t)) + } + }) + return out +} + +// shorePercentiles reports the fetch distribution over the waterline itself, before it is carried anywhere. +func shorePercentiles(shore *field.Field, g *Geometry) (p10, p50, p90 float64) { + if len(g.Waterline) == 0 { + return 0, 0, 0 + } + vals := make([]float64, 0, len(g.Waterline)) + for _, i := range g.Waterline { + vals = append(vals, float64(shore.Data[i])) + } + sort.Float64s(vals) + at := func(f float64) float64 { + i := int(float64(len(vals)-1) * f) + return vals[i] + } + return at(0.10), at(0.50), at(0.90) +} + +// plane cuts the shore platform and returns how much it took off each cell, in metres. +// +// The shape is deliberate. Within the reach the land is planed nearly all the way to the platform, and only +// over the last quarter of the reach is the cut rolled off — so the profile is a gentle platform, then a short +// steep face, then untouched land. That face is the cliff. Rolling the cut off over the whole reach instead +// would give a ramp, which is what a coast looks like when someone has smoothed it rather than eroded it. +func plane(h *field.Field, g *Geometry, exposure *field.Field, in Input) *field.Field { + cut := field.NewLike(h) + cfg := in.Cfg + field.Rows(g.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < g.W; x++ { + i := y*g.W + x + if in.Sea[i] { + continue + } + d := float64(g.Dist.Data[i]) + e := float64(exposure.Data[i]) + reach := cfg.SurfReachM * (0.35 + 0.65*e) + if reach <= 0 || d >= reach { + continue + } + target := in.SeaLevelM + cfg.PlatformGrade*d + above := float64(h.Data[i]) - target + if above <= 0 { + continue + } + w := 1.0 + if tail := reach * 0.25; d > reach-tail { + w = noise.Smoothstep((reach - d) / tail) + } + residual := above * (1 - cfg.CutFraction) + if residual > platformResidualCapM { + residual = platformResidualCapM + } + c := (above - residual) * w + h.Data[i] -= float32(c) + cut.Data[i] = float32(c) + } + } + }) + return cut +} + +// measureBackshore is how high the land stands immediately behind the surf strip: between one and two surf +// reaches inland, so it is clear of everything the surf planed whatever the exposure there was. +// +// The median says what the ordinary coast is — a plain, on this continent, and it should be — and the P90 is +// the number that answers "are there sea cliffs anywhere on this map", which a median never can when most of a +// coastline is lowland. +func measureBackshore(h *field.Field, g *Geometry, in Input) (median, p90 float64) { + lo := in.Cfg.SurfReachM + hi := lo * 2 + vals := make([]float64, 0, 4096) + for i := range in.Sea { + if in.Sea[i] { + continue + } + if d := float64(g.Dist.Data[i]); d < lo || d > hi { + continue + } + vals = append(vals, float64(h.Data[i])-in.SeaLevelM) + } + if len(vals) == 0 { + return 0, 0 + } + sort.Float64s(vals) + return vals[len(vals)/2], vals[int(float64(len(vals)-1)*0.9)] +} + +// rivers adds each river mouth's load to the sediment supply. The load scales with what the river drains, +// sub-linearly, because the alternative is one trunk basin delivering more than every other mouth together. +// +// Only cells orthogonally against the water count as a mouth, so a channel contributes once or twice rather +// than along its whole lower course. +func rivers(g *Geometry, in Input, supply []float64) (total float64, mouths int) { + if in.Flow == nil || in.Cfg.RiverM3PerKm2 <= 0 { + return 0, 0 + } + threshold := in.Cfg.RiverChannelKm2 * 1e6 + for i := range in.Sea { + if in.Sea[i] || float64(g.Dist.Data[i]) > g.CellM*1.01 { + continue + } + a := float64(in.Flow[i]) + if a < threshold { + continue + } + v := in.Cfg.RiverM3PerKm2 * math.Pow(a/1e6, in.Cfg.RiverExponent) + supply[g.Ref[i]] += v + total += v + mouths++ + } + return total, mouths +} + +// deposit carries the supply along the shore and lays it in sheltered shallow water. +// +// The transport is a box-kernel spread over DriftM, which is longshore drift at the only fidelity this grid +// can carry: it moves sediment out of the place it was cut and into the bays either side of it, and it does +// not pretend to know which way the waves run. +// +// # The order of the two operations, which is the whole of the mass balance +// +// Each source cell divides what it has among the cells around it in proportion to how much each wants it. +// Writing K for the kernel and w for the want, cell i receives +// +// dep_i = w_i * sum_j K(i,j) * sup_j / Wbar_j, Wbar_j = sum_k K(j,k) w_k +// +// which sums to exactly sum_j sup_j, because summing over i turns the inner weight back into Wbar_j. In code +// that is: divide the supply by the blurred want *first*, then blur, then multiply by the want. +// +// The obvious-looking alternative — blur the supply, then scale it by w_i / Wbar_i — is not the same thing and +// does not conserve. It was what this function did first, and it lost 68 % of the budget: the blur spreads +// supply onto land, onto deep water and onto exposed headlands, every one of which has w = 0 and is skipped, +// so everything that landed there was silently dropped. The test that caught it is an accounting identity, not +// a picture, which is the only kind of test that could have. +// +// The cap is the berm: nothing is laid more than BermM above sea level, because a beach crests and stops. What +// will not fit is offered once more to whatever still has room, and whatever is left after that is reported +// rather than dropped. +func deposit(h *field.Field, g *Geometry, exposure *field.Field, in Input, supply []float64) (laid, unplaced float64) { + cfg := in.Cfg + cellArea := h.CellM * h.CellM + radius := int(cfg.DriftM/h.CellM + 0.5) + if radius < 1 { + radius = 1 + } + + // want is how much each cell of shallow, sheltered water will take. It is the only place sediment may go. + want := field.NewLike(h) + for i := range h.Data { + if !in.Sea[i] { + continue + } + if d := -float64(g.Dist.Data[i]); d > cfg.DepositReachM { + continue + } + depth := in.SeaLevelM - float64(h.Data[i]) + if depth <= 0 || depth >= cfg.DepositDepthM { + continue + } + shallow := (cfg.DepositDepthM - depth) / cfg.DepositDepthM + shelter := shelterFloor + (1-shelterFloor)*math.Pow(1-float64(exposure.Data[i]), cfg.ShelterBias) + want.Data[i] = float32(shelter * shallow) + } + norm := boxBlur(want, radius, 3) + + share := field.NewLike(h) + for i, v := range supply { + if v <= 0 { + continue + } + nb := float64(norm.Data[i]) + if nb < 1e-9 { + unplaced += v // nowhere within a drift length will take it + continue + } + share.Data[i] = float32(v / nb) + } + spread := boxBlur(share, radius, 3) + + // place walks the grid in index order, which keeps the running totals deterministic: the writes are to + // distinct cells but the sums are not, so this one stays serial. + place := func(source *field.Field, scaled bool) (placed, over float64) { + for i := range h.Data { + w := float64(want.Data[i]) + if w <= 0 { + continue + } + v := float64(source.Data[i]) + if scaled { + v *= w + } + if v <= 0 { + continue + } + room := in.SeaLevelM + cfg.BermM - float64(h.Data[i]) + if room <= 0 { + over += v + continue + } + dz := v / cellArea + if dz > room { + over += (dz - room) * cellArea + dz = room + } + h.Data[i] += float32(dz) + placed += dz * cellArea + } + return placed, over + } + + laid, over := place(spread, true) + + // One more round for what would not fit, spread over the whole shore in proportion to want rather than + // locally: by this point the material has already been carried as far as the model knows how to carry it. + if over > 1 { + var wsum float64 + for i := range h.Data { + if want.Data[i] > 0 && float64(h.Data[i]) < in.SeaLevelM+cfg.BermM { + wsum += float64(want.Data[i]) + } + } + if wsum > 0 { + second := field.NewLike(h) + for i := range h.Data { + if want.Data[i] > 0 && float64(h.Data[i]) < in.SeaLevelM+cfg.BermM { + second.Data[i] = float32(over * float64(want.Data[i]) / wsum) + } + } + more, still := place(second, false) + laid += more + over = still + } + } + return laid, unplaced + over +} + +// shelfFraction is how much of the sea is shallower than the break, which is the number that says whether the +// margin came out as a shelf or as a trench with a rim. +func shelfFraction(g *Geometry, in Input, shelfW *field.Field) float64 { + var shelf, sea float64 + for i := range in.Sea { + if !in.Sea[i] { + continue + } + sea++ + if -float64(g.Dist.Data[i]) < float64(shelfW.Data[i]) { + shelf++ + } + } + if sea == 0 { + return 0 + } + return shelf / sea * 100 +} + +// boxMean smooths a *value* rather than a quantity: the same kernel, divided by how much of it landed on the +// grid, so a cell at the border keeps the average of its neighbours instead of being pulled towards zero. +// +// The distinction is not pedantic and it cost a test to notice. boxBlur is mass-preserving because it treats +// everything off the map as zero, which is right for sediment — there is none out there — and wrong for a +// shelf width, where off the map means "no information", not "a shelf of width zero". Smoothing the carried +// width with the mass-preserving kernel shrank every shelf near the border to nothing and put the whole +// margin below the break. Blurring a field of ones with the same kernel gives exactly the coverage to divide +// by, so the two share their arithmetic and cannot drift apart. +func boxMean(f *field.Field, radius, passes int) *field.Field { + if radius < 1 || passes < 1 { + return f.Clone() + } + ones := field.NewLike(f) + ones.Fill(1) + sum := boxBlur(f, radius, passes) + cover := boxBlur(ones, radius, passes) + out := field.NewLike(f) + for i := range out.Data { + if c := cover.Data[i]; c > 1e-6 { + out.Data[i] = sum.Data[i] / c + } else { + out.Data[i] = f.Data[i] + } + } + return out +} + +// boxBlur is a separable running-sum box blur: O(n) whatever the radius, which is what makes a 300 m drift +// kernel cost the same as a 30 m one. +// +// It divides by the full window rather than by however much of the window was on the grid, which is to say it +// treats everything outside the map as zero. That choice is what makes the deposition sum come out right. The +// mass balance in deposit needs the kernel to be *symmetric* — a cell's share of its neighbour must equal the +// neighbour's share of it — and dividing each output by its own truncated window size breaks that symmetry at +// the border, which cost 4 % of the sediment budget on a coast that ran off the edge of the map. Zero padding +// keeps K(i,j) = K(j,i) everywhere, and a cell outside the map has no want, so nothing is owed to it. +func boxBlur(f *field.Field, radius, passes int) *field.Field { + cur := f.Clone() + if radius < 1 || passes < 1 { + return cur + } + inv := 1 / float64(2*radius+1) + next := field.NewLike(f) + for p := 0; p < passes; p++ { + field.Rows(f.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + row := y * f.W + var sum float64 + for x := 0; x <= radius && x < f.W; x++ { + sum += float64(cur.Data[row+x]) + } + for x := 0; x < f.W; x++ { + next.Data[row+x] = float32(sum * inv) + if hi := x + radius + 1; hi < f.W { + sum += float64(cur.Data[row+hi]) + } + if lo := x - radius; lo >= 0 { + sum -= float64(cur.Data[row+lo]) + } + } + } + }) + cur, next = next, cur + field.Rows(f.W, func(x0, x1 int) { + for x := x0; x < x1; x++ { + var sum float64 + for y := 0; y <= radius && y < f.H; y++ { + sum += float64(cur.Data[y*f.W+x]) + } + for y := 0; y < f.H; y++ { + next.Data[y*f.W+x] = float32(sum * inv) + if hi := y + radius + 1; hi < f.H { + sum += float64(cur.Data[hi*f.W+x]) + } + if lo := y - radius; lo >= 0 { + sum -= float64(cur.Data[lo*f.W+x]) + } + } + } + }) + cur, next = next, cur + } + return cur +} diff --git a/Tools/Terrain/internal/coast/coast_test.go b/Tools/Terrain/internal/coast/coast_test.go new file mode 100644 index 0000000..1f1fe99 --- /dev/null +++ b/Tools/Terrain/internal/coast/coast_test.go @@ -0,0 +1,351 @@ +package coast + +import ( + "math" + "testing" + + "salty/terrain/internal/field" + "salty/terrain/internal/manifest" +) + +// TestEdtMatchesBruteForce is the one test the whole package rests on. Everything else is written in terms of +// "how far is this cell from the waterline and which stretch does it belong to", so a distance transform that +// is subtly wrong would not fail loudly, it would put the shelf break in slightly the wrong place everywhere. +// Felzenszwalb's transform is exact, so the comparison is against an exhaustive search and the tolerance is +// float32 rounding, not a percentage. +func TestEdtMatchesBruteForce(t *testing.T) { + const w, h = 41, 37 + seed := uint32(99) + seeds := make([]bool, w*h) + for i := range seeds { + seed = seed*1664525 + 1013904223 + seeds[i] = seed>>20&7 == 0 + } + seeds[0] = true // guarantee at least one + + d2, near := edt(seeds, w, h) + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + best := math.Inf(1) + for sy := 0; sy < h; sy++ { + for sx := 0; sx < w; sx++ { + if !seeds[sy*w+sx] { + continue + } + dx, dy := float64(x-sx), float64(y-sy) + if d := dx*dx + dy*dy; d < best { + best = d + } + } + } + i := y*w + x + if math.Abs(float64(d2[i])-best) > 1e-3 { + t.Fatalf("cell (%d,%d): d2 %g, brute force %g", x, y, d2[i], best) + } + // The feature index must be a seed, and it must be one at exactly that distance. + n := int(near[i]) + if n < 0 || !seeds[n] { + t.Fatalf("cell (%d,%d): nearest %d is not a seed", x, y, n) + } + dx, dy := float64(x-n%w), float64(y-n/w) + if math.Abs(dx*dx+dy*dy-best) > 1e-3 { + t.Fatalf("cell (%d,%d): nearest seed %d is at %g, not %g", x, y, n, dx*dx+dy*dy, best) + } + } + } +} + +// TestSignedDistanceIsMetresEitherWay checks the sign convention and the unit on a straight coast, where the +// answer is arithmetic. The cells asked about are named explicitly: the map's own border is forced to sea by +// the continent mask in a real run, and a test that read the border back would be measuring the boundary +// condition rather than the transform. +func TestSignedDistanceIsMetresEitherWay(t *testing.T) { + const w, h = 60, 20 + const cellM = 8.0 + sea := make([]bool, w*h) + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + sea[y*w+x] = x < 30 + } + } + g := Measure(sea, w, h, cellM) + + y := h / 2 + for _, c := range []struct { + x int + want float64 + }{{29, -cellM}, {30, cellM}, {33, 4 * cellM}, {26, -4 * cellM}} { + if got := float64(g.Dist.Data[y*w+c.x]); math.Abs(got-c.want) > 1e-3 { + t.Errorf("x=%d: distance %.3f m, want %.3f m", c.x, got, c.want) + } + } + // The waterline is the sea side of the boundary, one column of it. + for _, i := range g.Waterline { + if x := int(i) % w; x != 29 { + t.Fatalf("waterline cell at x=%d, want 29", x) + } + } + if len(g.Waterline) != h { + t.Errorf("%d waterline cells, want %d", len(g.Waterline), h) + } + // A straight coast of h cells has h boundary edges. + if want := float64(h) * cellM; math.Abs(g.ShoreM-want) > 1e-6 { + t.Errorf("shoreline %.1f m, want %.1f m", g.ShoreM, want) + } +} + +// coastFixture is a straight coast: sea to the left of x=split, a plateau at heightM to the right. +func coastFixture(w, h, split int, cellM, heightM float64) (*field.Field, []bool) { + f := field.New(w, h, cellM) + sea := make([]bool, w*h) + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + i := y*w + x + if x < split { + sea[i] = true + f.Data[i] = 0 // held at sea level by the solve; the pass overwrites it + } else { + f.Data[i] = float32(heightM) + } + } + } + return f, sea +} + +func testCfg() manifest.Coast { + c := manifest.Defaults().Pipeline.Coast + c.RoughnessM = 0 // the profile tests are about the profile, not about the noise on it + return c +} + +// shelfOnlyCfg silences the surf, which silences the sediment with it: no cut means no supply, and no supply +// means the sea floor is the shelf profile and nothing else. Without this the two shelf tests are also testing +// the beach the deposition step builds over the top of it, which is a different question and has its own test. +func shelfOnlyCfg() manifest.Coast { + c := testCfg() + c.SurfReachM = 0 + c.RiverM3PerKm2 = 0 + return c +} + +// TestShelfDeepensAwayFromTheShore is the sea floor's shape: monotone down from the waterline, through the +// break, to the abyssal floor, and never above sea level. +// +// The coast in this fixture stands 5 m above the water, so the shelf comes out at its widest — 3 km of shelf +// and 1.6 km of slope — and the map is made wide enough to hold both. That matters: on a narrower map the +// abyssal floor is simply never reached, which is correct behaviour and would read as a failed test. +func TestShelfDeepensAwayFromTheShore(t *testing.T) { + const w, h, split = 1000, 40, 600 + const cellM = 8.0 + cfg := shelfOnlyCfg() + f, sea := coastFixture(w, h, split, cellM, 5) + Build(Input{Height: f, Sea: sea, SeaLevelM: 0, BreakM: 30, AbyssM: 180, Seed: 7, Cfg: cfg}) + + y := h / 2 + prev := 0.0 + for x := split - 1; x >= 1; x-- { + z := float64(f.Data[y*w+x]) + if z > 0 { + t.Fatalf("x=%d: sea floor at %.2f m, above sea level", x, z) + } + if x < split-1 && z > prev+1e-4 { + t.Fatalf("x=%d: sea floor rose from %.2f to %.2f m going offshore", x, prev, z) + } + prev = z + } + // Past the shelf and the slope together, 4.6 km out, is the abyssal floor. + if z := float64(f.Data[y*w+2]); math.Abs(z+180) > 1 { + t.Errorf("the far sea floor is at %.1f m, want -180 m", z) + } + // And the break is where it was asked for: just inside the shelf width, the depth is the break depth. + shelfCells := int(cfg.ShelfKm.Hi()*1000/cellM) - 2 + if z := float64(f.Data[y*w+split-1-shelfCells]); math.Abs(z+30) > 2 { + t.Errorf("the shelf break is at %.1f m, want -30 m", z) + } +} + +// TestShelfIsNarrowerOffAMountain is the one behaviour that makes the shelf width worth deriving rather than +// setting: the same manifest gives a wide shelf off a plain and a narrow one off a range. +func TestShelfIsNarrowerOffAMountain(t *testing.T) { + const w, h, split = 700, 60, 400 + const cellM = 8.0 + depthAt := func(backshoreM float64, x int) float64 { + f, sea := coastFixture(w, h, split, cellM, backshoreM) + in := Input{Height: f, Sea: sea, SeaLevelM: 0, BreakM: 30, AbyssM: 180, Seed: 7, Cfg: shelfOnlyCfg()} + Build(in) + return float64(f.Data[(h/2)*w+x]) + } + // One kilometre offshore: on a plain coast that is still shelf, on a mountain coast it is past the break. + const probe = 400 - 125 + plain := depthAt(20, probe) + mountain := depthAt(600, probe) + if !(mountain < plain-20) { + t.Errorf("1 km offshore: %.1f m off a 20 m coast, %.1f m off a 600 m coast; "+ + "the mountain coast should be far deeper", plain, mountain) + } +} + +// TestSurfCutsACliffNotARamp is the shape the surf is for. A ramp would satisfy "the land is lower near the +// water" just as well, and it is not what a coast looks like, so the test asks for both halves: a nearly flat +// platform at the water and a step at the back of it. +func TestSurfCutsACliffNotARamp(t *testing.T) { + const w, h, split = 700, 60, 400 + const cellM, plateau = 8.0, 120.0 + f, sea := coastFixture(w, h, split, cellM, plateau) + cfg := testCfg() + in := Input{Height: f, Sea: sea, SeaLevelM: 0, BreakM: 30, AbyssM: 180, Seed: 7, Cfg: cfg} + Build(in) + + y := h / 2 + // The platform: the first five cells inland, 8 to 40 m from the water. + for x := split; x < split+5; x++ { + if z := float64(f.Data[y*w+x]); z > 8 { + t.Errorf("x=%d (%.0f m inland): %.1f m, want a platform near sea level", + x, float64(x-split+1)*cellM, z) + } + } + // The land beyond twice the reach is untouched. + far := split + int(2*cfg.SurfReachM/cellM) + if z := float64(f.Data[y*w+far]); math.Abs(z-plateau) > 1e-3 { + t.Errorf("%.0f m inland: %.1f m, want the plateau at %.0f m", 2*cfg.SurfReachM, z, plateau) + } + // The cliff: somewhere in the strip there is a step of at least a third of the plateau in one cell. + biggest := 0.0 + for x := split; x < far; x++ { + if d := float64(f.Data[y*w+x+1] - f.Data[y*w+x]); d > biggest { + biggest = d + } + } + if biggest < plateau/3 { + t.Errorf("the biggest step in the surf strip is %.1f m over %.0f m; a %0.f m plateau should leave a "+ + "cliff, not a ramp", biggest, cellM, plateau) + } +} + +// bayFixture is a straight coast with a semicircular bay bitten out of it, which is the smallest shape that +// has both an exposed stretch and a sheltered one. +func bayFixture(w, h, split, radius int, cellM, heightM float64) (*field.Field, []bool) { + f, sea := coastFixture(w, h, split, cellM, heightM) + cx, cy := split, h/2 + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + dx, dy := float64(x-cx), float64(y-cy) + if math.Hypot(dx, dy) < float64(radius) { + i := y*w + x + sea[i] = true + f.Data[i] = 0 + } + } + } + return f, sea +} + +// TestSedimentBudgetBalances is an accounting identity, and it is worth asserting because the deposition step +// is the only place in the generator where material is moved from one place to another rather than created or +// destroyed by a law. Everything cut, plus everything the rivers deliver, is either laid down or reported as +// unplaced; nothing evaporates. +func TestSedimentBudgetBalances(t *testing.T) { + const w, h, split = 400, 400, 250 + const cellM = 8.0 + f, sea := bayFixture(w, h, split, 90, cellM, 90) + res := Build(Input{Height: f, Sea: sea, SeaLevelM: 0, BreakM: 30, AbyssM: 180, Seed: 7, Cfg: testCfg()}) + s := res.Stats + + in := s.CutM3 + s.RiverM3 + out := s.LaidM3 + s.UnplacedM3 + if in <= 0 { + t.Fatalf("the surf cut nothing: there is no budget to balance") + } + if rel := math.Abs(out-in) / in; rel > 0.02 { + t.Errorf("cut %.0f m3 + rivers %.0f m3 = %.0f, but laid %.0f + unplaced %.0f = %.0f (%.1f%% out)", + s.CutM3, s.RiverM3, in, s.LaidM3, s.UnplacedM3, out, rel*100) + } + if s.LaidM3 <= 0 { + t.Errorf("nothing was laid down at all; a bay should collect sediment") + } +} + +// TestSedimentPrefersTheBay is the behaviour the fetch field exists to produce. Without it the surf would cut +// a headland and lay the debris straight back down on the headland, which is the one thing a coast never does. +func TestSedimentPrefersTheBay(t *testing.T) { + const w, h, split, radius = 400, 400, 250, 90 + const cellM = 8.0 + f, sea := bayFixture(w, h, split, radius, cellM, 90) + res := Build(Input{Height: f, Sea: sea, SeaLevelM: 0, BreakM: 30, AbyssM: 180, Seed: 7, Cfg: testCfg()}) + + // Two windows of sea cells: the back of the bay, and open water the same distance offshore from the + // straight coast well clear of it. + var bay, open float64 + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + i := y*w + x + if !sea[i] || res.Change.Data[i] <= 0 { + continue + } + inBay := math.Hypot(float64(x-split), float64(y-h/2)) < float64(radius) + farFromBay := math.Abs(float64(y-h/2)) > float64(radius)*1.6 + if inBay { + bay += float64(res.Change.Data[i]) + } else if farFromBay && x > split-40 { + open += float64(res.Change.Data[i]) + } + } + } + if !(bay > open*2) { + t.Errorf("sediment laid: %.0f m in the bay against %.0f m on the open coast; "+ + "shelter is not steering deposition", bay, open) + } +} + +// TestBoxBlurIsMassPreservingAndSymmetric guards the drift kernel, which the deposition mass balance rests on. +// Support well inside the grid must come through with its total intact, and a single grain must spread to a +// kernel that is the same either side of where it started — that symmetry is what makes "what i gives j" equal +// "what j gives i", and it is what the zero padding is there to protect. +func TestBoxBlurIsMassPreservingAndSymmetric(t *testing.T) { + f := field.New(64, 64, 1) + seed := uint32(5) + var before float64 + for y := 20; y < 44; y++ { // support clear of the border by more than the kernel + for x := 20; x < 44; x++ { + seed = seed*1664525 + 1013904223 + f.Data[y*64+x] = float32(seed>>16&255) / 255 + before += float64(f.Data[y*64+x]) + } + } + out := boxBlur(f, 5, 3) + var after float64 + for _, v := range out.Data { + after += float64(v) + } + if rel := math.Abs(after-before) / before; rel > 1e-4 { + t.Errorf("the kernel moved the total from %.4f to %.4f (%.4f%%)", before, after, rel*100) + } + + one := field.New(64, 64, 1) + one.Data[32*64+32] = 1 + k := boxBlur(one, 5, 3) + for d := 1; d <= 16; d++ { + l, r := k.Data[32*64+32-d], k.Data[32*64+32+d] + if math.Abs(float64(l-r)) > 1e-7 { + t.Fatalf("the kernel is not symmetric at offset %d: %g against %g", d, l, r) + } + } +} + +// TestDisabledIsThePreCoastBehaviour keeps the escape hatch honest: --no-coast has to give the flat sea floor +// the generator had before this pass, not a half-applied version of it. +func TestDisabledIsThePreCoastBehaviour(t *testing.T) { + const w, h, split = 200, 40, 120 + f, sea := coastFixture(w, h, split, 8, 100) + cfg := testCfg() + cfg.Enabled = false + Build(Input{Height: f, Sea: sea, SeaLevelM: 0, BreakM: 30, AbyssM: 180, Seed: 7, Cfg: cfg}) + for i := range sea { + if sea[i] && math.Abs(float64(f.Data[i])+180) > 1e-3 { + t.Fatalf("cell %d: %.2f m, want a flat floor at -180 m", i, f.Data[i]) + } + if !sea[i] && math.Abs(float64(f.Data[i])-100) > 1e-3 { + t.Fatalf("cell %d: land at %.2f m, want it untouched at 100 m", i, f.Data[i]) + } + } +} diff --git a/Tools/Terrain/internal/coast/distance.go b/Tools/Terrain/internal/coast/distance.go new file mode 100644 index 0000000..aa734f3 --- /dev/null +++ b/Tools/Terrain/internal/coast/distance.go @@ -0,0 +1,200 @@ +package coast + +import ( + "math" + + "salty/terrain/internal/field" +) + +// The coast is a *distance*, not a line. Every coastal process is written in terms of how far a cell is from +// the waterline and which stretch of waterline it belongs to: the shelf deepens with distance offshore, the +// surf planes the land within a reach of it, sediment settles in the shallows behind it, and shelter is a +// property of a stretch of shore that every cell near it inherits. So the first thing the pass builds is an +// exact signed distance field with a feature index, and everything after it is a lookup. +// +// Exact, not a chamfer approximation: Felzenszwalb & Huttenlocher's transform is two 1-D passes and O(n) +// whatever the radius, so there is nothing to buy by approximating, and a chamfer's 2 % anisotropy would show +// up directly as a shelf that is wider along the grid axes than across them. + +// edt returns, for every cell, the squared distance in cells to the nearest seed cell and the index of that +// seed. A column pass finds the nearest seed in each column; a row pass takes the lower envelope of the +// parabolas those distances define. +// +// Cells in a column with no seed at all are given a cost above any real distance rather than an infinity, so +// the envelope arithmetic never sees a NaN; they are then never chosen unless the map has no seeds anywhere, +// which the caller checks for. +func edt(seed []bool, w, h int) (d2 []float32, near []int32) { + d2 = make([]float32, w*h) + near = make([]int32, w*h) + + bigF := float64(w*w+h*h) * 4 // above any achievable dx² + dy² + bigD := float32(math.Sqrt(bigF)) + + colD := make([]float32, w*h) // distance in cells to the nearest seed in this column + colN := make([]int32, w*h) // that seed's row, or -1 + + field.Rows(w, func(x0, x1 int) { + for x := x0; x < x1; x++ { + best := -1 + for y := 0; y < h; y++ { + i := y*w + x + if seed[i] { + best = y + } + if best < 0 { + colD[i], colN[i] = bigD, -1 + } else { + colD[i], colN[i] = float32(y-best), int32(best) + } + } + best = -1 + for y := h - 1; y >= 0; y-- { + i := y*w + x + if seed[i] { + best = y + } + if best >= 0 { + if d := float32(best - y); d < colD[i] { + colD[i], colN[i] = d, int32(best) + } + } + } + } + }) + + field.Rows(h, func(y0, y1 int) { + f := make([]float64, w) + v := make([]int, w) + z := make([]float64, w+1) + for y := y0; y < y1; y++ { + row := y * w + for x := 0; x < w; x++ { + d := float64(colD[row+x]) + f[x] = d * d + } + k := 0 + v[0] = 0 + z[0] = math.Inf(-1) + z[1] = math.Inf(1) + for q := 1; q < w; q++ { + s := intersect(f, v[k], q) + for s <= z[k] { + k-- + s = intersect(f, v[k], q) + } + k++ + v[k] = q + z[k] = s + z[k+1] = math.Inf(1) + } + k = 0 + for q := 0; q < w; q++ { + for z[k+1] < float64(q) { + k++ + } + dx := float64(q - v[k]) + d2[row+q] = float32(dx*dx + f[v[k]]) + if n := colN[row+v[k]]; n < 0 { + near[row+q] = -1 + } else { + near[row+q] = n*int32(w) + int32(v[k]) + } + } + } + }) + return d2, near +} + +// intersect is where the parabolas rooted at p and q cross. +func intersect(f []float64, p, q int) float64 { + return ((f[q] + float64(q*q)) - (f[p] + float64(p*p))) / float64(2*q-2*p) +} + +// Geometry is the coastline as the rest of the pass sees it. +type Geometry struct { + W, H int + CellM float64 + + // Dist is metres to the waterline: positive inland, negative offshore. + Dist *field.Field + + // Ref is, for every cell, the waterline cell whose stretch of shore it belongs to. A land cell takes the + // sea cell nearest to it, which is on the waterline by construction; a sea cell takes the waterline cell + // nearest to the land cell nearest to it, which is the stretch of shore facing it. Every per-shore + // quantity — shelter, shelf width, the backshore relief — is computed once on the waterline and read + // everywhere else through this. + Ref []int32 + + // Waterline is the sea cells that touch land, in row-major order so anything iterating them is + // deterministic. + Waterline []int32 + + // ShoreM is the length of the land/sea boundary in metres, counted as boundary edges. It overestimates a + // diagonal coast by about 4/pi, as any edge-counted perimeter does. + ShoreM float64 +} + +// Measure builds the signed distance field and the shore reference from a land/sea mask. +func Measure(sea []bool, w, h int, cellM float64) *Geometry { + anySea, anyLand := false, false + land := make([]bool, len(sea)) + for i, s := range sea { + land[i] = !s + if s { + anySea = true + } else { + anyLand = true + } + } + g := &Geometry{W: w, H: h, CellM: cellM, Dist: field.New(w, h, cellM), Ref: make([]int32, w*h)} + for i := range g.Ref { + g.Ref[i] = -1 + } + if !anySea || !anyLand { + return g // an all-land or all-sea map has no coast; every pass below is a no-op on it + } + + d2Sea, nearSea := edt(sea, w, h) // for a land cell: how far to water, and where + d2Land, nearLand := edt(land, w, h) // for a sea cell: how far to land, and where + + for i := range sea { + if sea[i] { + g.Dist.Data[i] = float32(-math.Sqrt(float64(d2Land[i])) * cellM) + } else { + g.Dist.Data[i] = float32(math.Sqrt(float64(d2Sea[i])) * cellM) + } + } + + // The waterline: sea cells with land in the eight-neighbourhood, which is d2Land of 1 or 2. + for i := range sea { + if sea[i] && d2Land[i] <= 2.001 { + g.Waterline = append(g.Waterline, int32(i)) + } + } + + for i := range sea { + if sea[i] { + if l := nearLand[i]; l >= 0 { + g.Ref[i] = nearSea[l] + } + } else { + g.Ref[i] = nearSea[i] + } + } + + // Perimeter by boundary edges, which is what a shoreline length means on a grid. + edges := 0 + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + i := y*w + x + if x+1 < w && sea[i] != sea[i+1] { + edges++ + } + if y+1 < h && sea[i] != sea[i+w] { + edges++ + } + } + } + g.ShoreM = float64(edges) * cellM + return g +} diff --git a/Tools/Terrain/internal/field/datamap.go b/Tools/Terrain/internal/field/datamap.go new file mode 100644 index 0000000..1135283 --- /dev/null +++ b/Tools/Terrain/internal/field/datamap.go @@ -0,0 +1,236 @@ +package field + +import ( + "image" + "image/color" + "image/png" + "math" + "sort" +) + +// False-colour maps of the fields a run works from, as opposed to the field it produces. +// +// preview.png answers "does this look like a landscape". These answer the question that comes next, which is +// "why does it look like that" — the uplift field, the erodibility, the slope and the basins are the inputs +// and the structure, and when a run comes out wrong it is almost always one of them that says so first. The +// uplift map in particular is the one that would have shown, without any arithmetic, that the plains were +// being raised at mountain rates. + +// DataMapOptions controls one false-colour render. +type DataMapOptions struct { + // Sea marks cells to render as flat water rather than data. Optional. + Sea []bool + // Size is the output side in pixels; the field is point-sampled down to it. + Size int + // Log renders log10 of the value, for anything with a heavy tail — drainage area spans seven decades and + // is unreadable linearly. + Log bool + // Lo and Hi bound the colour ramp. Left at zero they are taken from the 1st and 99th percentile of the + // data, which keeps one outlier cell from flattening the whole image. + Lo, Hi float64 + // Palette maps 0..1 to a colour. Nil is Viridis. + Palette func(float64) [3]float64 +} + +// WriteDataMap renders one scalar field as a false-colour PNG. +func WriteDataMap(path string, f *Field, opt DataMapOptions) error { + size := opt.Size + if size <= 0 || size > f.W { + size = f.W + } + pal := opt.Palette + if pal == nil { + pal = Viridis + } + + vals := make([]float64, len(f.Data)) + for i, v := range f.Data { + x := float64(v) + if opt.Log { + if x < 1 { + x = 1 + } + x = math.Log10(x) + } + vals[i] = x + } + + lo, hi := opt.Lo, opt.Hi + if lo == 0 && hi == 0 { + lo, hi = percentiles(vals, opt.Sea, 1, 99) + } + span := hi - lo + if span < 1e-12 { + span = 1 + } + + img := image.NewRGBA(image.Rect(0, 0, size, size)) + for y := 0; y < size; y++ { + sy := y * f.H / size + for x := 0; x < size; x++ { + sx := x * f.W / size + i := sy*f.W + sx + if opt.Sea != nil && opt.Sea[i] { + img.Set(x, y, color.RGBA{24, 44, 74, 255}) + continue + } + t := (vals[i] - lo) / span + if t < 0 { + t = 0 + } else if t > 1 { + t = 1 + } + c := pal(t) + img.Set(x, y, color.RGBA{clamp8(c[0]), clamp8(c[1]), clamp8(c[2]), 255}) + } + } + return encode(path, img, png.DefaultCompression) +} + +// WriteBasinMap colours each drainage basin, which is the one picture that shows whether the solve produced a +// *network* rather than a set of scratches: real basins tile the land, meet along divides that sit where the +// two catchments either side put them, and come in a spread of sizes. A map of noisy speckle means the router +// is re-deciding where the water goes every few cells. +// +// receiver is the D8 receiver array; a cell whose receiver is itself is a basin root. +func WriteBasinMap(path string, w, h int, receiver []int32, sea []bool, size int) error { + if size <= 0 || size > w { + size = w + } + // Walk each cell down to its root with path compression, so the whole thing stays O(n). + root := make([]int32, w*h) + for i := range root { + root[i] = -1 + } + var stack []int32 + for i := range root { + if root[i] >= 0 { + continue + } + stack = stack[:0] + c := int32(i) + for root[c] < 0 && receiver[c] != c { + stack = append(stack, c) + c = receiver[c] + } + r := root[c] + if r < 0 { + r = c + root[c] = r + } + for _, s := range stack { + root[s] = r + } + } + + img := image.NewRGBA(image.Rect(0, 0, size, size)) + for y := 0; y < size; y++ { + sy := y * h / size + for x := 0; x < size; x++ { + sx := x * w / size + i := sy*w + sx + if sea != nil && sea[i] { + img.Set(x, y, color.RGBA{24, 44, 74, 255}) + continue + } + // A hash of the root id, so neighbouring basins get unrelated colours and a divide is a hard + // edge rather than a gradient. + k := uint64(uint32(root[i]))*0x9e3779b97f4a7c15 + 0x2545f4914f6cdd1d + k ^= k >> 29 + k *= 0xbf58476d1ce4e5b9 + k ^= k >> 32 + c := hsv(float64(k%3600)/3600, 0.45+float64((k>>12)%40)/100, 0.55+float64((k>>24)%40)/100) + img.Set(x, y, color.RGBA{clamp8(c[0]), clamp8(c[1]), clamp8(c[2]), 255}) + } + } + return encode(path, img, png.DefaultCompression) +} + +// Viridis, sampled at sixteen stops. Perceptually uniform and legible in greyscale, which matters because +// these get pasted into notes and printed. +var viridisStops = [][3]float64{ + {68, 1, 84}, {72, 26, 108}, {71, 47, 125}, {65, 68, 135}, + {57, 86, 140}, {49, 104, 142}, {42, 120, 142}, {35, 136, 142}, + {31, 152, 139}, {34, 168, 132}, {53, 183, 121}, {84, 197, 104}, + {122, 209, 81}, {165, 219, 54}, {210, 226, 27}, {253, 231, 37}, +} + +func Viridis(t float64) [3]float64 { return sampleStops(viridisStops, t) } + +// Inferno, for anything where "how much" reads better as heat: slope and local relief. +var infernoStops = [][3]float64{ + {0, 0, 4}, {12, 8, 38}, {36, 12, 79}, {66, 10, 104}, + {93, 18, 110}, {120, 28, 109}, {147, 38, 103}, {174, 48, 92}, + {199, 62, 76}, {221, 81, 58}, {237, 105, 37}, {247, 133, 17}, + {251, 164, 10}, {249, 196, 41}, {243, 228, 96}, {252, 255, 164}, +} + +func Inferno(t float64) [3]float64 { return sampleStops(infernoStops, t) } + +// Divergent is for a field with a meaningful zero and a sign: cool below, near-white at zero, warm above. +// The change map is the one that needs it — where the surf cut and where it laid are the same magnitude and +// opposite in meaning, and a sequential ramp renders them as the same colour. +func Divergent(t float64) [3]float64 { return sampleStops(divergentStops, t) } + +var divergentStops = [][3]float64{ + {30, 64, 120}, {64, 126, 180}, {150, 196, 220}, {238, 238, 236}, + {236, 196, 140}, {206, 132, 62}, {140, 66, 22}, +} + +func sampleStops(s [][3]float64, t float64) [3]float64 { + if t <= 0 { + return s[0] + } + if t >= 1 { + return s[len(s)-1] + } + x := t * float64(len(s)-1) + i := int(x) + u := x - float64(i) + a, b := s[i], s[i+1] + return [3]float64{a[0] + (b[0]-a[0])*u, a[1] + (b[1]-a[1])*u, a[2] + (b[2]-a[2])*u} +} + +func hsv(hue, sat, val float64) [3]float64 { + h6 := hue * 6 + i := int(h6) + f := h6 - float64(i) + p := val * (1 - sat) + q := val * (1 - sat*f) + t := val * (1 - sat*(1-f)) + var r, g, b float64 + switch i % 6 { + case 0: + r, g, b = val, t, p + case 1: + r, g, b = q, val, p + case 2: + r, g, b = p, val, t + case 3: + r, g, b = p, q, val + case 4: + r, g, b = t, p, val + default: + r, g, b = val, p, q + } + return [3]float64{r * 255, g * 255, b * 255} +} + +func percentiles(vals []float64, sea []bool, loPct, hiPct float64) (float64, float64) { + keep := make([]float64, 0, len(vals)) + for i, v := range vals { + if sea != nil && sea[i] { + continue + } + keep = append(keep, v) + } + if len(keep) == 0 { + return 0, 1 + } + sort.Float64s(keep) + at := func(p float64) float64 { + i := int(p / 100 * float64(len(keep)-1)) + return keep[i] + } + return at(loPct), at(hiPct) +} diff --git a/Tools/Terrain/internal/field/field.go b/Tools/Terrain/internal/field/field.go new file mode 100644 index 0000000..0c9b3e8 --- /dev/null +++ b/Tools/Terrain/internal/field/field.go @@ -0,0 +1,201 @@ +// Package field is the one array type the whole generator passes around: a square-ish grid of float32 in a +// known unit, with the cell size in metres attached so no pass has to be told the scale twice. +// +// Determinism (cross-cutting rule 12) is a property of this package as much as of the passes. Everything +// parallel here partitions rows into disjoint, contiguous ranges and writes only into its own range, so the +// result does not depend on how the goroutines were scheduled. Nothing reduces through a channel. +package field + +import ( + "math" + "runtime" + "sort" + "sync" +) + +// Field is a W x H grid, row-major, with CellM metres between neighbouring samples. +type Field struct { + W, H int + CellM float64 + Data []float32 +} + +func New(w, h int, cellM float64) *Field { + return &Field{W: w, H: h, CellM: cellM, Data: make([]float32, w*h)} +} + +// NewLike is an empty field with another's shape and scale. +func NewLike(f *Field) *Field { return New(f.W, f.H, f.CellM) } + +func (f *Field) Idx(x, y int) int { return y*f.W + x } +func (f *Field) At(x, y int) float32 { return f.Data[y*f.W+x] } +func (f *Field) Set(x, y int, v float32) { f.Data[y*f.W+x] = v } +func (f *Field) Len() int { return len(f.Data) } + +// AtClamped samples with edge clamping, which is what every stencil in the generator wants at the border. +func (f *Field) AtClamped(x, y int) float32 { + if x < 0 { + x = 0 + } else if x >= f.W { + x = f.W - 1 + } + if y < 0 { + y = 0 + } else if y >= f.H { + y = f.H - 1 + } + return f.Data[y*f.W+x] +} + +func (f *Field) Clone() *Field { + c := New(f.W, f.H, f.CellM) + copy(c.Data, f.Data) + return c +} + +func (f *Field) Fill(v float32) { + for i := range f.Data { + f.Data[i] = v + } +} + +func (f *Field) MinMax() (float32, float32) { + if len(f.Data) == 0 { + return 0, 0 + } + lo, hi := f.Data[0], f.Data[0] + for _, v := range f.Data { + if v < lo { + lo = v + } + if v > hi { + hi = v + } + } + return lo, hi +} + +func (f *Field) Mean() float64 { + if len(f.Data) == 0 { + return 0 + } + // Summed as float64 in index order: the same total every run, whatever the machine. + var sum float64 + for _, v := range f.Data { + sum += float64(v) + } + return sum / float64(len(f.Data)) +} + +// Percentile sorts a copy, so it costs a copy and a sort; used for thresholds, not in inner loops. +func (f *Field) Percentile(p float64) float32 { + if len(f.Data) == 0 { + return 0 + } + c := make([]float32, len(f.Data)) + copy(c, f.Data) + sort.Slice(c, func(i, j int) bool { return c[i] < c[j] }) + i := int(p / 100 * float64(len(c)-1)) + if i < 0 { + i = 0 + } else if i >= len(c) { + i = len(c) - 1 + } + return c[i] +} + +// Normalise maps the field onto [0, 1]. A flat field becomes zero rather than a division by nothing. +func (f *Field) Normalise() { + lo, hi := f.MinMax() + span := float64(hi - lo) + if span < 1e-9 { + f.Fill(0) + return + } + for i, v := range f.Data { + f.Data[i] = float32((float64(v) - float64(lo)) / span) + } +} + +// Slope returns rise over run per cell, the central difference used by the layer rules and the statistics. +func (f *Field) Slope() *Field { + out := NewLike(f) + inv := float32(1.0 / (2.0 * f.CellM)) + Rows(f.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < f.W; x++ { + gx := (f.AtClamped(x+1, y) - f.AtClamped(x-1, y)) * inv + gy := (f.AtClamped(x, y+1) - f.AtClamped(x, y-1)) * inv + out.Data[out.Idx(x, y)] = float32(math.Hypot(float64(gx), float64(gy))) + } + } + }) + return out +} + +// Curvature is the Laplacian in metres per cell squared: positive on ridges and convex shoulders, negative in +// gullies and sediment traps. Ported from heightmap_erosion.curvature, which blurs lightly first. +func (f *Field) Curvature() *Field { + h := f.Blur(2) + out := NewLike(f) + inv := float32(1.0 / f.CellM) + Rows(f.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < f.W; x++ { + lap := h.AtClamped(x-1, y) + h.AtClamped(x+1, y) + h.AtClamped(x, y-1) + h.AtClamped(x, y+1) - 4*h.At(x, y) + out.Data[out.Idx(x, y)] = lap * inv + } + } + }) + return out +} + +// Blur is the five-point box blur the numpy pipeline used, repeated. Edge-clamped, so it does not darken +// the border the way a zero-padded one would. +func (f *Field) Blur(passes int) *Field { + cur := f.Clone() + if passes <= 0 { + return cur + } + next := NewLike(f) + for p := 0; p < passes; p++ { + Rows(f.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < cur.W; x++ { + s := cur.At(x, y) + cur.AtClamped(x-1, y) + cur.AtClamped(x+1, y) + cur.AtClamped(x, y-1) + cur.AtClamped(x, y+1) + next.Data[next.Idx(x, y)] = s / 5 + } + } + }) + cur, next = next, cur + } + return cur +} + +// Rows runs fn over disjoint contiguous row ranges, one per core. The ranges are fixed before any goroutine +// starts and each writes only into its own, so the output is identical at any GOMAXPROCS. Every parallel +// loop in the generator goes through here; none spawns goroutines of its own. +func Rows(h int, fn func(y0, y1 int)) { + workers := runtime.GOMAXPROCS(0) + if workers > h { + workers = h + } + if workers <= 1 { + fn(0, h) + return + } + var wg sync.WaitGroup + step := (h + workers - 1) / workers + for y0 := 0; y0 < h; y0 += step { + y1 := y0 + step + if y1 > h { + y1 = h + } + wg.Add(1) + go func(a, b int) { + defer wg.Done() + fn(a, b) + }(y0, y1) + } + wg.Wait() +} diff --git a/Tools/Terrain/internal/field/png.go b/Tools/Terrain/internal/field/png.go new file mode 100644 index 0000000..af79d0d --- /dev/null +++ b/Tools/Terrain/internal/field/png.go @@ -0,0 +1,195 @@ +package field + +import ( + "bufio" + "encoding/binary" + "fmt" + "image" + "image/png" + "io" + "os" + "path/filepath" +) + +// Greyscale PNG in and out, plus the raw 16-bit little-endian .r16 that World Machine, Gaea and the engine's +// own exporter write. The numpy pipeline hand-rolled all of this because the engine's Python has no PIL; +// image/png covers it, so the only thing worth carrying over is the behaviour, not the code. + +// WriteGray16 writes values already in 0..65535. Compression matters at this size: one 7141 x 7141 map is +// 102 MB of samples, so the level is a parameter and the caller pays for what it needs. The height map is +// imported by the editor and worth compressing; the derivative maps are rebuilt from a seed and are not. +func WriteGray16(path string, w, h int, values []uint16, level png.CompressionLevel) error { + if len(values) != w*h { + return fmt.Errorf("%s: %d values for a %dx%d image", path, len(values), w, h) + } + img := image.NewGray16(image.Rect(0, 0, w, h)) + for y := 0; y < h; y++ { + row := img.Pix[y*img.Stride : y*img.Stride+w*2] + src := values[y*w : y*w+w] + for x, v := range src { + binary.BigEndian.PutUint16(row[x*2:], v) // PNG is big-endian; image.Gray16 stores it that way too + } + } + return encode(path, img, level) +} + +// WriteGray8 writes values already in 0..255. +func WriteGray8(path string, w, h int, values []uint8, level png.CompressionLevel) error { + if len(values) != w*h { + return fmt.Errorf("%s: %d values for a %dx%d image", path, len(values), w, h) + } + img := image.NewGray(image.Rect(0, 0, w, h)) + for y := 0; y < h; y++ { + copy(img.Pix[y*img.Stride:y*img.Stride+w], values[y*w:y*w+w]) + } + return encode(path, img, level) +} + +func encode(path string, img image.Image, level png.CompressionLevel) error { + if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil { + return err + } + // Written beside the target and renamed, so a killed run never leaves create_world.py a half-written PNG + // to import. The numpy pipeline learned this the hard way with a killed commandlet. + tmp := path + ".tmp" + f, err := os.Create(tmp) + if err != nil { + return err + } + bw := bufio.NewWriterSize(f, 1<<20) + enc := png.Encoder{CompressionLevel: level} + if err := enc.Encode(bw, img); err != nil { + f.Close() + os.Remove(tmp) + return err + } + if err := bw.Flush(); err != nil { + f.Close() + os.Remove(tmp) + return err + } + if err := f.Close(); err != nil { + os.Remove(tmp) + return err + } + return os.Rename(tmp, path) +} + +// ReadHeightmap reads a 16-bit greyscale PNG, an 8-bit greyscale PNG (widened, as the numpy pipeline widened +// it) or a raw 16-bit little-endian .r16/.raw, and returns values in 0..65535 with the image's dimensions. +// A raw file needs its width when it is not square. +func ReadHeightmap(path string, width int) (values []uint16, w, h int, err error) { + switch ext := filepath.Ext(path); ext { + case ".r16", ".raw": + return readRaw(path, width) + default: + return readPNG(path) + } +} + +func readPNG(path string) ([]uint16, int, int, error) { + f, err := os.Open(path) + if err != nil { + return nil, 0, 0, err + } + defer f.Close() + img, err := png.Decode(bufio.NewReaderSize(f, 1<<20)) + if err != nil { + return nil, 0, 0, fmt.Errorf("%s: %w", path, err) + } + b := img.Bounds() + w, h := b.Dx(), b.Dy() + out := make([]uint16, w*h) + switch src := img.(type) { + case *image.Gray16: + for y := 0; y < h; y++ { + row := src.Pix[y*src.Stride:] + for x := 0; x < w; x++ { + out[y*w+x] = binary.BigEndian.Uint16(row[x*2:]) + } + } + case *image.Gray: + // Widened the way the numpy reader widened it: 8-bit 255 must become 65535, not 65280, or a DEM + // comes in a whisker short of its own ceiling. + for y := 0; y < h; y++ { + row := src.Pix[y*src.Stride:] + for x := 0; x < w; x++ { + out[y*w+x] = uint16(row[x]) * 257 + } + } + default: + // Anything else (RGB, paletted) goes through the generic accessor, which already returns 16-bit. + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + r, g, bl, _ := img.At(b.Min.X+x, b.Min.Y+y).RGBA() + out[y*w+x] = uint16((r*299 + g*587 + bl*114) / 1000) + } + } + } + return out, w, h, nil +} + +func readRaw(path string, width int) ([]uint16, int, int, error) { + raw, err := os.ReadFile(path) + if err != nil { + return nil, 0, 0, err + } + if len(raw)%2 != 0 { + return nil, 0, 0, fmt.Errorf("%s: %d bytes is not a whole number of 16-bit samples", path, len(raw)) + } + n := len(raw) / 2 + w := width + if w <= 0 { + w = isqrt(n) + if w*w != n { + return nil, 0, 0, fmt.Errorf("%s: %d samples is not square; give the width", path, n) + } + } + if n%w != 0 { + return nil, 0, 0, fmt.Errorf("%s: %d samples do not divide by width %d", path, n, w) + } + out := make([]uint16, n) + for i := 0; i < n; i++ { + out[i] = binary.LittleEndian.Uint16(raw[i*2:]) + } + return out, w, n / w, nil +} + +func isqrt(n int) int { + r := 0 + for (r+1)*(r+1) <= n { + r++ + } + return r +} + +// WriteThumbnail writes a small 8-bit preview of a height field, hillshaded so the drainage is actually +// visible: a flat grey ramp hides exactly the thing this generator exists to produce. +func WriteThumbnail(path string, h *Field, size int) error { + small := h.Resample(size, size) + lo, hi := small.MinMax() + span := float64(hi - lo) + if span < 1e-6 { + span = 1 + } + // Light from the north-west at 45 degrees, the convention every DEM hillshade uses. + px := make([]uint8, size*size) + for y := 0; y < size; y++ { + for x := 0; x < size; x++ { + gx := float64(small.AtClamped(x+1, y) - small.AtClamped(x-1, y)) + gy := float64(small.AtClamped(x, y+1) - small.AtClamped(x, y-1)) + shade := (0.5*gx + 0.5*gy) / (2 * small.CellM) + lum := 0.35 + 0.65*(float64(small.At(x, y))-float64(lo))/span + lum += shade * 0.35 + if lum < 0 { + lum = 0 + } else if lum > 1 { + lum = 1 + } + px[y*size+x] = uint8(lum * 255) + } + } + return WriteGray8(path, size, size, px, png.BestSpeed) +} + +var _ io.Writer = (*bufio.Writer)(nil) diff --git a/Tools/Terrain/internal/field/preview.go b/Tools/Terrain/internal/field/preview.go new file mode 100644 index 0000000..5e0d06b --- /dev/null +++ b/Tools/Terrain/internal/field/preview.go @@ -0,0 +1,259 @@ +package field + +import ( + "bufio" + "image" + "image/color" + "image/png" + "math" + "os" + "path/filepath" + "sort" +) + +// A colour preview of a height field: hypsometric tint, hillshade, and the drainage network drawn on top. +// +// The grey thumbnail is nearly useless for judging this generator, which is a problem, because the thing it +// exists to produce is a drainage network and a flat grey ramp is exactly what hides one. Rivers are drawn +// from the flow accumulation with a width that grows with drainage area, so a glance says whether the network +// branches like a river system or like noise. + +type PreviewOptions struct { + // Flow is drainage area per cell, m². Optional; without it no rivers are drawn. + Flow *Field + // Sea marks cells below sea level. Optional. + Sea []bool + SeaLevelM float64 + // RiverKm2 is the drainage area at which a channel starts being drawn. + RiverKm2 float64 + Size int + // Crop is a sub-rectangle in map coordinates (x0, y0, x1, y1 in 0..1), rendered at full resolution. + // A whole continent at 1500 px puts ten kilometres into a hundred pixels, which is enough to see that + // there is drainage and not nearly enough to see whether it is the right *kind* of drainage. Judging + // hill country against real hill country needs a crop. + Crop [4]float64 + // Hillshade exaggerates the vertical before shading. Lowland relief is a few tens of metres over + // kilometres and disappears at true scale, which is the same reason every printed relief map lies. + Exaggeration float64 +} + +// rgb is a colour in 0..255 kept as float64 so the hillshade can multiply it before it is clamped. +type rgb = [3]float64 + +type stop struct { + t float64 + c rgb +} + +var ( + // A hypsometric ramp: salt-marsh green at sea level through farmland and rock to snow. Stops are chosen + // so the lowland does not read as one flat colour, which is where most of the map is. + landStops = []stop{ + {0.00, rgb{72, 106, 68}}, + {0.08, rgb{104, 132, 74}}, + {0.20, rgb{142, 152, 88}}, + {0.38, rgb{164, 148, 104}}, + {0.58, rgb{150, 128, 106}}, + {0.75, rgb{138, 130, 128}}, + {0.88, rgb{176, 174, 174}}, + {1.00, rgb{246, 246, 250}}, + } + seaShallow = rgb{56, 104, 136} + seaDeep = rgb{18, 40, 72} + riverTint = rgb{70, 132, 180} +) + +func ramp(t float64) rgb { + if t <= 0 { + return landStops[0].c + } + for i := 1; i < len(landStops); i++ { + if t <= landStops[i].t { + a, b := landStops[i-1], landStops[i] + u := (t - a.t) / (b.t - a.t) + return rgb{ + a.c[0] + (b.c[0]-a.c[0])*u, + a.c[1] + (b.c[1]-a.c[1])*u, + a.c[2] + (b.c[2]-a.c[2])*u, + } + } + } + return landStops[len(landStops)-1].c +} + +// WritePreview renders the field at opt.Size and writes an RGB PNG. +func WritePreview(path string, h *Field, opt PreviewOptions) error { + size := opt.Size + if size <= 0 { + size = 1024 + } + if size > h.W { + size = h.W + } + if opt.Crop[2] > opt.Crop[0] && opt.Crop[3] > opt.Crop[1] { + fullW, fullH := h.W, h.H + h = h.Sub(opt.Crop) + if opt.Flow != nil { + opt.Flow = opt.Flow.Sub(opt.Crop) + } + if opt.Sea != nil { + opt.Sea = subMask(opt.Sea, fullW, fullH, opt.Crop) + } + if size > h.W { + size = h.W + } + } + small := h.Resample(size, size) + exag := opt.Exaggeration + if exag <= 0 { + exag = 1 + } + + // Land elevations only: letting the sea floor into the range squashes the whole land ramp. + // + // And the top of the ramp is a high percentile, not the maximum. One 2800 m summit over a continent whose + // land is mostly under 300 m puts every other cell into the bottom tenth of the ramp, and the map reads as + // uniform green with a white dot on it — which says far more about one pixel than about the terrain. The + // percentile lets the tint span the distribution that is actually there; the few cells above it clamp to + // snow, which is what they should look like anyway. + sea := resampleMask(opt.Sea, h.W, h.H, size) + landVals := make([]float64, 0, len(small.Data)) + for i, v := range small.Data { + if sea != nil && sea[i] { + continue + } + landVals = append(landVals, float64(v)) + } + landMax := 1.0 + if len(landVals) > 0 { + sort.Float64s(landVals) + landMax = landVals[int(0.995*float64(len(landVals)-1))] + } + if landMax <= 0 { + landMax = 1 + } + var seaMin float64 + for i, v := range small.Data { + if sea != nil && sea[i] && float64(v) < seaMin { + seaMin = float64(v) + } + } + + var flow *Field + riverA := opt.RiverKm2 * 1e6 + if opt.Flow != nil && riverA > 0 { + flow = opt.Flow.Resample(size, size) + } + + img := image.NewRGBA(image.Rect(0, 0, size, size)) + for y := 0; y < size; y++ { + for x := 0; x < size; x++ { + i := y*size + x + elev := float64(small.Data[i]) + var c rgb + + if sea != nil && sea[i] { + d := 0.0 + if seaMin < 0 { + d = math.Min(1, (opt.SeaLevelM-elev)/(opt.SeaLevelM-seaMin)) + } + c = rgb{ + seaShallow[0] + (seaDeep[0]-seaShallow[0])*d, + seaShallow[1] + (seaDeep[1]-seaShallow[1])*d, + seaShallow[2] + (seaDeep[2]-seaShallow[2])*d, + } + } else { + c = ramp(math.Min(1, math.Max(0, elev)/landMax)) + // Hillshade from the north-west at 45 degrees, the DEM convention. Applied to land only; + // shading the sea floor would draw attention to bathymetry nobody will ever see. + gx := float64(small.AtClamped(x+1, y)-small.AtClamped(x-1, y)) * exag + gy := float64(small.AtClamped(x, y+1)-small.AtClamped(x, y-1)) * exag + slope := math.Atan(math.Hypot(gx, gy) / (2 * small.CellM)) + aspect := math.Atan2(gy, -gx) + lum := math.Cos(slope)*math.Cos(math.Pi/4) + + math.Sin(slope)*math.Sin(math.Pi/4)*math.Cos(3*math.Pi/4-aspect) + lum = 0.45 + 0.75*math.Max(0, lum) + for k := range c { + c[k] *= lum + } + } + + // Rivers on top, their strength growing with the log of drainage area so a trunk reads darker + // than a headwater without needing a width in pixels. + if flow != nil { + if a := float64(flow.Data[i]); a >= riverA { + w := math.Min(1, math.Log10(a/riverA)/2.2) + blend := 0.45 + 0.55*w + for k := range c { + c[k] = c[k]*(1-blend) + riverTint[k]*blend + } + } + } + + img.Set(x, y, color.RGBA{clamp8(c[0]), clamp8(c[1]), clamp8(c[2]), 255}) + } + } + + if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil { + return err + } + f, err := os.Create(path) + if err != nil { + return err + } + defer f.Close() + bw := bufio.NewWriterSize(f, 1<<20) + enc := png.Encoder{CompressionLevel: png.DefaultCompression} + if err := enc.Encode(bw, img); err != nil { + return err + } + return bw.Flush() +} + +// resampleMask takes a boolean mask down to the preview size by nearest neighbour; a mask has no meaningful +// average. +func resampleMask(mask []bool, w, h, size int) []bool { + if mask == nil { + return nil + } + out := make([]bool, size*size) + for y := 0; y < size; y++ { + sy := y * (h - 1) / (size - 1) + for x := 0; x < size; x++ { + sx := x * (w - 1) / (size - 1) + out[y*size+x] = mask[sy*w+sx] + } + } + return out +} + +func clamp8(v float64) uint8 { + if v <= 0 { + return 0 + } + if v >= 255 { + return 255 + } + return uint8(v + 0.5) +} + +// subMask is Sub for a boolean mask. +func subMask(mask []bool, w, h int, crop [4]float64) []bool { + clamp := func(v float64) float64 { return math.Min(1, math.Max(0, v)) } + x0 := int(clamp(crop[0]) * float64(w-1)) + y0 := int(clamp(crop[1]) * float64(h-1)) + x1 := int(clamp(crop[2]) * float64(w-1)) + y1 := int(clamp(crop[3]) * float64(h-1)) + if x1 <= x0 { + x1 = x0 + 1 + } + if y1 <= y0 { + y1 = y0 + 1 + } + cw, ch := x1-x0+1, y1-y0+1 + out := make([]bool, cw*ch) + for y := 0; y < ch; y++ { + copy(out[y*cw:(y+1)*cw], mask[(y0+y)*w+x0:(y0+y)*w+x0+cw]) + } + return out +} diff --git a/Tools/Terrain/internal/field/resample.go b/Tools/Terrain/internal/field/resample.go new file mode 100644 index 0000000..e9324a0 --- /dev/null +++ b/Tools/Terrain/internal/field/resample.go @@ -0,0 +1,182 @@ +package field + +import "math" + +// The vertex convention, which every resample here obeys: a field of N samples a side spans N-1 quads, so +// sample i sits at parameter i/(N-1) and the four corners are fixed points of any resize. Getting this wrong +// shifts the whole map by half a cell per resize and the error compounds over a pipeline. + +// Resample returns the field at a new resolution: block means when shrinking by an exact integer factor +// (which is what the geology grid wants, and what preserves mass), bilinear otherwise. Ported from +// heightmap_io.resample, which chose the same two paths for the same reasons. +func (f *Field) Resample(w, h int) *Field { + if w == f.W && h == f.H { + return f.Clone() + } + cell := f.CellM * float64(f.W-1) / float64(w-1) + if w < f.W && (f.W-1)%(w-1) == 0 && (f.H-1)%(h-1) == 0 && (f.W-1)/(w-1) == (f.H-1)/(h-1) { + return f.blockMean((f.W-1)/(w-1), w, h, cell) + } + return f.bilinear(w, h, cell) +} + +// blockMean averages each factor x factor block of quads onto one output sample. The last row and column are +// half-blocks under the vertex convention, which is why the accumulation counts what it actually summed. +func (f *Field) blockMean(factor, w, h int, cell float64) *Field { + out := New(w, h, cell) + Rows(h, func(y0, y1 int) { + for oy := y0; oy < y1; oy++ { + for ox := 0; ox < w; ox++ { + var sum float64 + var n int + for dy := 0; dy < factor; dy++ { + sy := oy*factor + dy - factor/2 + if sy < 0 || sy >= f.H { + continue + } + for dx := 0; dx < factor; dx++ { + sx := ox*factor + dx - factor/2 + if sx < 0 || sx >= f.W { + continue + } + sum += float64(f.At(sx, sy)) + n++ + } + } + if n > 0 { + out.Data[out.Idx(ox, oy)] = float32(sum / float64(n)) + } + } + } + }) + return out +} + +func (f *Field) bilinear(w, h int, cell float64) *Field { + out := New(w, h, cell) + sx := float64(f.W-1) / float64(w-1) + sy := float64(f.H-1) / float64(h-1) + Rows(h, func(y0, y1 int) { + for oy := y0; oy < y1; oy++ { + fy := float64(oy) * sy + iy := int(fy) + ty := float32(fy - float64(iy)) + for ox := 0; ox < w; ox++ { + fx := float64(ox) * sx + ix := int(fx) + tx := float32(fx - float64(ix)) + a := f.AtClamped(ix, iy) + b := f.AtClamped(ix+1, iy) + c := f.AtClamped(ix, iy+1) + d := f.AtClamped(ix+1, iy+1) + top := a + (b-a)*tx + bot := c + (d-c)*tx + out.Data[out.Idx(ox, oy)] = top + (bot-top)*ty + } + } + }) + return out +} + +// UpsampleInt is the geology-to-detail step: an exact integer factor on the quad count, so 1786 at factor 4 +// becomes (1786-1)*4+1 = 7141 with every source sample landing exactly on an output sample and no resample +// phase error at all. Catmull-Rom between them, which is the bicubic the spec asks for and does not overshoot +// into ringing the way a plain cubic does on a ridge. +func (f *Field) UpsampleInt(factor int) *Field { + if factor <= 1 { + return f.Clone() + } + w := (f.W-1)*factor + 1 + h := (f.H-1)*factor + 1 + out := New(w, h, f.CellM/float64(factor)) + inv := 1.0 / float64(factor) + Rows(h, func(y0, y1 int) { + for oy := y0; oy < y1; oy++ { + sy := oy / factor + ty := float64(oy%factor) * inv + for ox := 0; ox < w; ox++ { + sx := ox / factor + tx := float64(ox%factor) * inv + var col [4]float64 + for k := 0; k < 4; k++ { + col[k] = catmullRom( + float64(f.AtClamped(sx-1, sy-1+k)), + float64(f.AtClamped(sx, sy-1+k)), + float64(f.AtClamped(sx+1, sy-1+k)), + float64(f.AtClamped(sx+2, sy-1+k)), tx) + } + out.Data[out.Idx(ox, oy)] = float32(catmullRom(col[0], col[1], col[2], col[3], ty)) + } + } + }) + return out +} + +func catmullRom(p0, p1, p2, p3, t float64) float64 { + t2 := t * t + t3 := t2 * t + return 0.5 * ((2 * p1) + + (-p0+p2)*t + + (2*p0-5*p1+4*p2-p3)*t2 + + (-p0+3*p1-3*p2+p3)*t3) +} + +// ToUnit squashes a field into [0, 1] against a percentile, optionally through log1p first: what the four +// derivative maps (flow, wear, deposit) need before they become 8-bit PNGs. Ported from +// heightmap_erosion.to_unit. +func (f *Field) ToUnit(percentile float64, logScale bool) *Field { + out := NewLike(f) + for i, v := range f.Data { + x := float64(v) + if x < 0 { + x = 0 + } + if logScale { + x = math.Log1p(x) + } + out.Data[i] = float32(x) + } + top := float64(out.Percentile(percentile)) + if top < 1e-6 { + top = 1e-6 + } + for i, v := range out.Data { + x := float64(v) / top + if x > 1 { + x = 1 + } + out.Data[i] = float32(x) + } + return out +} + +// Sub extracts a sub-rectangle given in map coordinates (x0, y0, x1, y1 in 0..1), at the source resolution. +// Used by the preview to look at a piece of the map closely, which is the only way to judge whether hill +// country reads as hill country rather than as small mountains. +func (f *Field) Sub(crop [4]float64) *Field { + clamp := func(v float64) float64 { + if v < 0 { + return 0 + } + if v > 1 { + return 1 + } + return v + } + x0 := int(clamp(crop[0]) * float64(f.W-1)) + y0 := int(clamp(crop[1]) * float64(f.H-1)) + x1 := int(clamp(crop[2]) * float64(f.W-1)) + y1 := int(clamp(crop[3]) * float64(f.H-1)) + if x1 <= x0 { + x1 = x0 + 1 + } + if y1 <= y0 { + y1 = y0 + 1 + } + w, h := x1-x0+1, y1-y0+1 + out := New(w, h, f.CellM) + for y := 0; y < h; y++ { + copy(out.Data[y*w:(y+1)*w], f.Data[(y0+y)*f.W+x0:(y0+y)*f.W+x0+w]) + } + return out +} diff --git a/Tools/Terrain/internal/fluvial/bucketpq.go b/Tools/Terrain/internal/fluvial/bucketpq.go new file mode 100644 index 0000000..5ff3bb4 --- /dev/null +++ b/Tools/Terrain/internal/fluvial/bucketpq.go @@ -0,0 +1,79 @@ +package fluvial + +// A monotone bucket priority queue, which is what priority-flood actually needs. +// +// The flood pops cells in non-decreasing elevation and never pushes anything below the cell it just popped: +// a neighbour lower than the current front is raised to it and goes to the FIFO instead. That "monotone" +// property is exactly the condition under which a bucket queue beats a binary heap, because the read cursor +// only ever moves forward and both operations become an append and a scan. The heap was costing about +// log2(3.2M) = 22 comparisons and as many cache misses per operation, on two thirds of the solve's runtime. +// +// Elevations are quantised into fixed-width buckets. Cells inside one bucket pop in an arbitrary but +// deterministic order (last in, first out), so a spill point can be wrong by at most one bucket width. At a +// centimetre against a 2 km elevation range that is far below the millimetre-per-cell epsilon the flood adds +// anyway, and it is the same approximation an integer-elevation priority-flood makes by construction. +type bucketPQ struct { + lo float64 + width float64 + buckets [][]int32 + cur int + count int +} + +const bucketWidthM = 0.01 + +func newBucketPQ(loM, hiM float64) *bucketPQ { + if hiM <= loM { + hiM = loM + 1 + } + // Headroom above the top: the flood raises cells by epsilon as it fills, so the highest key pushed can + // sit slightly above the terrain's own maximum. + n := int((hiM-loM)/bucketWidthM) + 64 + return &bucketPQ{lo: loM, width: bucketWidthM, buckets: make([][]int32, n)} +} + +func (q *bucketPQ) reset() { + for i := range q.buckets { + q.buckets[i] = q.buckets[i][:0] + } + q.cur = 0 + q.count = 0 +} + +func (q *bucketPQ) len() int { return q.count } + +func (q *bucketPQ) push(elev float32, idx int32) { + b := int((float64(elev) - q.lo) / q.width) + if b < q.cur { + b = q.cur // monotone: never behind the cursor, whatever rounding says + } + if b >= len(q.buckets) { + b = len(q.buckets) - 1 + } + q.buckets[b] = append(q.buckets[b], idx) + q.count++ +} + +// pop returns the lowest cell. The cursor only moves forward, so the total scan cost over a whole flood is +// the number of buckets, not the number of pops. +func (q *bucketPQ) pop() int32 { + for q.cur < len(q.buckets) && len(q.buckets[q.cur]) == 0 { + q.cur++ + } + if q.cur >= len(q.buckets) { + return -1 + } + b := q.buckets[q.cur] + v := b[len(b)-1] + q.buckets[q.cur] = b[:len(b)-1] + q.count-- + return v +} + +// frontElev is the elevation the cursor is at, which the FIFO compares itself against. +func (q *bucketPQ) frontElev() float32 { + for q.cur < len(q.buckets) && len(q.buckets[q.cur]) == 0 { + q.cur++ + } + return float32(q.lo + float64(q.cur)*q.width) +} diff --git a/Tools/Terrain/internal/fluvial/fluvial.go b/Tools/Terrain/internal/fluvial/fluvial.go new file mode 100644 index 0000000..3bcd017 --- /dev/null +++ b/Tools/Terrain/internal/fluvial/fluvial.go @@ -0,0 +1,512 @@ +// Package fluvial is the stream-power erosion solve: dh/dt = U - K * A^m * S^n, integrated implicitly up the +// drainage stack by the method of Braun & Willett (2013). +// +// This is the reason the generator exists (D-47). Particle erosion carves the path each droplet happens to +// take: it makes wear, but never a network. Stream power solves for drainage area first and erodes in +// proportion to it, which is what produces a branching hierarchy, valleys whose size matches the area they +// drain, and divides that sit where the basins either side of them put them. +// +// Four things happen per step, in this order: +// +// 1. Depressions are filled (priority-flood), because a D8 receiver graph containing a pit has no path to +// base level and the implicit solve has nothing to descend to. This is the only part of a step that is +// not O(n), so it runs every FillEvery steps, not every step. +// 2. Receivers and the stack are computed: steepest descent to one of eight neighbours, then a depth-first +// ordering in which every node appears after its receiver. +// 3. Drainage area is accumulated down the stack in reverse. +// 4. The implicit update runs up the stack, so each node's receiver already holds its new height. This is +// what makes the scheme unconditionally stable in dt, and it is why a naive explicit solver is not an +// acceptable substitute at dt = 1500 yr. +package fluvial + +import ( + "math" + + "salty/terrain/internal/field" + "salty/terrain/internal/thermal" +) + +// Params are the stream-power constants. K is per year with A in m². +type Params struct { + K float64 + M float64 + N float64 + DtYr float64 + Steps int + Diffusion float64 // hillslope diffusivity, m²/yr + FillEvery int + + // Landsliding. Stream power bounds nothing at small drainage area, so without this the hillslopes grow + // as steep as the uplift rate asks them to and the map becomes needles. TalusSlope is rise over run; 0 + // disables. It runs inside the loop rather than after it, because a cap applied once at the end just + // shaves the tops off, while a cap applied throughout changes where the sediment goes. + TalusSlope float64 + ThermalEvery int + ThermalPasses int + + // CriticalAreaM2 is where channels begin. Below it the cell is a hillslope: it still rises, and + // diffusion and landsliding still shape it, but stream power does not incise it. + // + // This is not a tuning knob, it is a correctness fix. Stream power is a law about channels, and applying + // it at A = one cell says a cell that drains only itself should stand at U/(K*cellM^(2m)) — 63 degrees at + // the rates here. That is why the map came out as needles at a 39 degree median. It is also why relief + // was resolution-dependent (1020 m at 512², 2605 m at 1786² on one seed): halving the cell size halves + // the smallest A and steepens every divide, for ever. A critical area is a physical length, so the same + // landscape comes out at any resolution, which is the property the full-resolution run depends on. + CriticalAreaM2 float64 + + // ChannelTaper is the exponent on (A/Ac) below the channel head. 0 is no taper, 2 is strong. + ChannelTaper float64 + + // CriticalSlope is Sc in the nonlinear hillslope law, rise over run. Above zero it selects + // DiffuseNonlinear over plain linear diffusion and takes the repose clamp out of the step loop; see + // hillslope.go and Run. Zero keeps the old pairing of linear diffusion and an in-loop clamp. + CriticalSlope float64 + SlopeCap float64 // where the flux stops stiffening, as a fraction of Sc + MaxHillslopeSub int // the sub-step budget that bound buys +} + +// Grid holds the flow topology and the scratch it is built from. Allocated once and reused across every +// step: at 3.2 M cells the allocations would otherwise dominate the solve. +type Grid struct { + W, H int + CellM float64 + + // Base marks cells fixed at base level: the ocean. The map border is an outlet too, so what actually + // counts as "fixed" is Base plus the border, and that union is `fixed`. Keeping only Base in mind here is + // how the outlets themselves ended up being uplifted: on a map with no ocean, every border cell has + // Receiver == itself and Base == false, so base level rose two metres a step and the whole solve chased + // it. The steady-state test is what caught it. + Base []bool + fixed []bool + + Receiver []int32 // index of the cell this one drains to; itself for a base cell + Length []float32 // distance to that receiver, metres + Stack []int32 // every node after its receiver + Area []float32 // drainage area, m² + + seed uint64 // the jitter's seed; see jitter.go and SetSeed + donorOff []int32 + donorList []int32 + cursor []int32 + closed []bool + pq *bucketPQ + fifo []int32 + scratch []float32 +} + +// SetElevationRange sizes the flood's bucket queue. Called once, with the manifest's elevation range plus a +// margin, before the first step. +func (g *Grid) SetElevationRange(loM, hiM float64) { + g.pq = newBucketPQ(loM, hiM) +} + +var ( + // D8, in the order (-1,-1) .. (1,1) skipping the centre. The order is fixed so that a run is reproducible, + // but it is no longer what decides a tie between two equally steep neighbours: a fixed order resolves + // every tie the same way and prints its preferred axis across any near-flat ground. See jitter.go. + dx8 = [8]int{-1, 0, 1, -1, 1, -1, 0, 1} + dy8 = [8]int{-1, -1, -1, 0, 0, 1, 1, 1} +) + +func NewGrid(w, h int, cellM float64, base []bool) *Grid { + n := w * h + g := &Grid{ + W: w, H: h, CellM: cellM, Base: base, + Receiver: make([]int32, n), Length: make([]float32, n), Stack: make([]int32, 0, n), + Area: make([]float32, n), donorOff: make([]int32, n+1), donorList: make([]int32, n), + closed: make([]bool, n), fifo: make([]int32, 0, n), scratch: make([]float32, n), + } + g.fixed = make([]bool, n) + for i := range g.fixed { + g.fixed[i] = g.isOutlet(i) + } + g.SetElevationRange(-2000, 4000) + return g +} + +// FillDepressions raises closed depressions to their spill point, in place, using Barnes' improved +// priority-flood with a plain FIFO beside the heap. The FIFO is the optimisation that matters: on real +// terrain most cells are reached while descending into an already-flooded pit, and those never touch the +// heap, which turns the cost from "half an hour over a run" into something affordable. +// +// The epsilon variant adds a millimetre of fall per cell across a flat, so filled lakes still route rather +// than becoming a plateau the flow accumulator cannot leave. That millimetre is scattered per cell by a hash +// of the index rather than applied uniformly: a uniform epsilon means the only gradient on a flat is the +// flood's own traversal order, and the router then draws that order as rivers. See jitter.go. +func (g *Grid) FillDepressions(h []float32, epsilon float32) { + n := g.W * g.H + for i := range g.closed { + g.closed[i] = false + } + g.pq.reset() + g.fifo = g.fifo[:0] + + for i := 0; i < n; i++ { + if g.isOutlet(i) { + g.closed[i] = true + g.pq.push(h[i], int32(i)) + } + } + + head := 0 + for g.pq.len() > 0 || head < len(g.fifo) { + var c int32 + var celev float32 + // Drain the FIFO while it cannot violate the queue's ordering. + if head < len(g.fifo) && (g.pq.len() == 0 || h[g.fifo[head]] <= g.pq.frontElev()) { + c = g.fifo[head] + head++ + celev = h[c] + } else { + c = g.pq.pop() + if c < 0 { + break + } + celev = h[c] + } + cx := int(c) % g.W + cy := int(c) / g.W + for k := 0; k < 8; k++ { + nx, ny := cx+dx8[k], cy+dy8[k] + if nx < 0 || ny < 0 || nx >= g.W || ny >= g.H { + continue + } + ni := int32(ny*g.W + nx) + if g.closed[ni] { + continue + } + g.closed[ni] = true + if h[ni] <= celev { + h[ni] = celev + epsilon*(0.5+hash01(g.seed, ni)) + g.fifo = append(g.fifo, ni) + } else { + g.pq.push(h[ni], ni) + } + } + // Compact the FIFO occasionally so it does not grow without bound over a whole flood. + if head > n/2 { + g.fifo = append(g.fifo[:0], g.fifo[head:]...) + head = 0 + } + } +} + +func (g *Grid) isOutlet(i int) bool { + if g.Base != nil && g.Base[i] { + return true + } + x, y := i%g.W, i/g.W + return x == 0 || y == 0 || x == g.W-1 || y == g.H-1 +} + +// ComputeReceivers picks the steepest downhill neighbour of each cell. A base cell, and any cell with no +// lower neighbour, receives itself, which makes it a root of the stack. +// +// Two neighbours of equal steepness are separated by a hash of the cell and the direction rather than by the +// fixed order of dx8/dy8. A fixed order always resolves a tie the same way, which on any near-flat surface +// puts a systematic preference on one grid axis and shows up as rivers that run straight along it. The +// perturbation is a tenth of a percent, so it decides near-ties and nothing else: a neighbour that is +// genuinely steeper than another by more than that is still chosen. +func (g *Grid) ComputeReceivers(h []float32) { + diag := float32(g.CellM * math.Sqrt2) + card := float32(g.CellM) + field.Rows(g.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < g.W; x++ { + i := int32(y*g.W + x) + if g.isOutlet(int(i)) { + g.Receiver[i] = i + g.Length[i] = card + continue + } + best := int32(-1) + bestJitter := float32(0) + bestLen := card + for k := 0; k < 8; k++ { + nx, ny := x+dx8[k], y+dy8[k] + if nx < 0 || ny < 0 || nx >= g.W || ny >= g.H { + continue + } + ni := int32(ny*g.W + nx) + l := card + if dx8[k] != 0 && dy8[k] != 0 { + l = diag + } + s := (h[i] - h[ni]) / l + if s <= 0 { + continue + } + // The tie-break, not a change of gradient: the comparison is jittered, the slope that + // is kept is not, so Length and the stream-power update see the true geometry. + sj := s * (1 + 1e-3*(hash01(g.seed, i*8+int32(k))-0.5)) + if sj > bestJitter { + bestJitter, best, bestLen = sj, ni, l + } + } + if best < 0 { + g.Receiver[i] = i + g.Length[i] = card + } else { + g.Receiver[i] = best + g.Length[i] = bestLen + } + } + } + }) +} + +// BuildStack orders every node after its receiver, by counting donors into a CSR list and then walking it +// depth-first from the roots. O(n), no recursion, and the order is fully determined by the receiver array, +// so it does not vary between runs. +func (g *Grid) BuildStack() { + n := g.W * g.H + for i := 0; i <= n; i++ { + g.donorOff[i] = 0 + } + for i := 0; i < n; i++ { + r := g.Receiver[i] + if int(r) != i { + g.donorOff[r+1]++ + } + } + for i := 0; i < n; i++ { + g.donorOff[i+1] += g.donorOff[i] + } + cursor := g.scratchInt32() + copy(cursor, g.donorOff[:n]) + for i := 0; i < n; i++ { + r := g.Receiver[i] + if int(r) != i { + g.donorList[cursor[r]] = int32(i) + cursor[r]++ + } + } + + g.Stack = g.Stack[:0] + for i := 0; i < n; i++ { + if int(g.Receiver[i]) == i { + g.Stack = append(g.Stack, int32(i)) + } + } + // Depth-first: everything already in the stack expands its donors, which land after it. + for read := 0; read < len(g.Stack); read++ { + c := g.Stack[read] + for d := g.donorOff[c]; d < g.donorOff[c+1]; d++ { + g.Stack = append(g.Stack, g.donorList[d]) + } + } +} + +// scratchInt32 reuses the float32 scratch as int32 storage; same width, and it saves a 12 MB allocation per +// step at the geology grid. +func (g *Grid) scratchInt32() []int32 { + if cap(g.cursor) < g.W*g.H { + g.cursor = make([]int32, g.W*g.H) + } + return g.cursor[:g.W*g.H] +} + +// Accumulate sums drainage area down the stack in reverse, so every node has collected its whole upstream +// catchment before its receiver is reached. +func (g *Grid) Accumulate() { + cell := float32(g.CellM * g.CellM) + for i := range g.Area { + g.Area[i] = cell + } + for k := len(g.Stack) - 1; k >= 0; k-- { + i := g.Stack[k] + r := g.Receiver[i] + if r != i { + g.Area[r] += g.Area[i] + } + } +} + +// StreamPower is the implicit update, walked up the stack. uplift is in metres per year and k is the local +// erodibility; either may be nil for a uniform value. +func (g *Grid) StreamPower(h []float32, uplift, k []float32, p Params) { + dt := p.DtYr + linear := math.Abs(p.N-1) < 1e-9 + for _, i := range g.Stack { + if g.fixed[i] { + continue // base level is fixed: no uplift, no erosion + } + u := 0.0 + if uplift != nil { + u = float64(uplift[i]) + } + r := g.Receiver[i] + if r == i { + // A local minimum that the last flood has not reached yet. It still rises: skipping uplift here + // freezes exactly the cells that differential uplift is busy pushing up, which quietly removes + // the basins from the landscape between floods. + h[i] += float32(dt * u) + continue + } + kk := p.K + if k != nil { + kk *= float64(k[i]) + } + hr := float64(h[r]) + hi := float64(h[i]) + dt*u + area := float64(g.Area[i]) + if p.CriticalAreaM2 > 0 && area < p.CriticalAreaM2 { + // Below the channel head, incision is tapered rather than switched off. Switching it off + // entirely is what broke: the material had nowhere to go, because the only remaining transport + // was landsliding, which caps slope but not height, and the map grew until 22 % of it clipped + // the elevation range. A taper suppresses the fine dissection that makes lowlands look like + // small mountains while still letting the hillslope shed its uplift into the network. + kk *= math.Pow(area/p.CriticalAreaM2, p.ChannelTaper) + } + a := math.Pow(area, p.M) + l := float64(g.Length[i]) + + var next float64 + if linear { + f := kk * dt * a / l + next = (hi + f*hr) / (1 + f) + } else { + next = newtonStreamPower(hi, hr, kk*dt*a, l, p.N) + } + // A node may never fall below what it drains into; the implicit form only guarantees that while + // uplift has not raised the receiver past it. + if next < hr { + next = hr + } + h[i] = float32(next) + } +} + +// newtonStreamPower solves h - hi + c*((h-hr)/l)^n = 0 for n != 1. Five iterations from the linear answer is +// comfortably enough at the exponents anyone actually uses; it is here so the manifest's n is not a lie. +func newtonStreamPower(hi, hr, c, l, n float64) float64 { + f := c / l + h := (hi + f*hr) / (1 + f) // the n = 1 answer, as a starting point + for iter := 0; iter < 5; iter++ { + d := h - hr + if d < 0 { + d = 0 + } + s := d / l + fx := h - hi + c*math.Pow(s, n)/1 + dfx := 1 + c*n*math.Pow(s, n-1)/l + if dfx == 0 { + break + } + step := fx / dfx + h -= step + if math.Abs(step) < 1e-6 { + break + } + } + if h < hr { + h = hr + } + return h +} + +// Diffuse is hillslope diffusion, which rounds the divides and stops every channel head from being a needle. +// +// Explicit five-point diffusion is stable only while D*dt/dx² <= 0.25, and the defaults sit above that +// (0.02 m²/yr at dt 1500 on 8 m cells is 0.47), so it sub-steps rather than quietly going unstable. This is +// the sort of thing that shows up as a checkerboard three thousand steps in. +func (g *Grid) Diffuse(h []float32, d, dt float64) { + if d <= 0 || dt <= 0 { + return + } + dx2 := g.CellM * g.CellM + total := d * dt / dx2 + sub := int(math.Ceil(total / 0.2)) + if sub < 1 { + sub = 1 + } + alpha := float32(total / float64(sub)) + src := h + tmp := g.scratch[:len(h)] + for s := 0; s < sub; s++ { + field.Rows(g.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < g.W; x++ { + i := y*g.W + x + if g.fixed[i] { + tmp[i] = src[i] + continue + } + c := src[i] + lap := clampAt(src, g.W, g.H, x-1, y) + clampAt(src, g.W, g.H, x+1, y) + + clampAt(src, g.W, g.H, x, y-1) + clampAt(src, g.W, g.H, x, y+1) - 4*c + tmp[i] = c + alpha*lap + } + } + }) + copy(src, tmp) + } +} + +func clampAt(a []float32, w, h, x, y int) float32 { + if x < 0 { + x = 0 + } else if x >= w { + x = w - 1 + } + if y < 0 { + y = 0 + } else if y >= h { + y = h - 1 + } + return a[y*w+x] +} + +// Run is the whole solve. Progress is reported through log, which is what a five-minute budget needs to be +// steerable: a run that is going wrong should say so at step 500, not at the end. +func (g *Grid) Run(h []float32, uplift, k []float32, p Params, log func(step int, total int, elapsedPct float64)) { + fill := p.FillEvery + if fill < 1 { + fill = 1 + } + for step := 0; step < p.Steps; step++ { + if step%fill == 0 { + g.FillDepressions(h, 1e-3) + } + g.ComputeReceivers(h) + g.BuildStack() + g.Accumulate() + g.StreamPower(h, uplift, k, p) + if p.CriticalSlope > 0 { + // The clamp still runs, and it still has to: a belt rising at millimetres a year asks for slopes + // no bounded-flux transport law can hold, which is a fact about the forcing and not about the + // scheme. What changes is the order and who gets the last word. The clamp cuts along the eight + // D8 directions and leaves grid-aligned pyramid faces; nonlinear diffusion then runs over the + // result with a symmetric five-point stencil and rounds them off before the next step sees them. + // + // Running the clamp only once at the end was tried and is worse: a thousand steps of unclamped + // growth arrive at it together, so it cuts deeply, and nothing runs afterwards to soften what it + // cut. The facets came back in the summits. Little and often, with diffusion last, is what keeps + // the constraint without printing the stencil. + if p.TalusSlope > 0 && p.ThermalEvery > 0 && step%p.ThermalEvery == 0 { + g.ClampToRepose(h, p.TalusSlope) + } + g.DiffuseNonlinear(h, p.Diffusion, p.CriticalSlope, p.SlopeCap, p.DtYr, p.MaxHillslopeSub) + } else { + g.Diffuse(h, p.Diffusion, p.DtYr) + if p.TalusSlope > 0 && p.ThermalEvery > 0 && step%p.ThermalEvery == 0 { + // The constraint first, which actually binds, then the transport, which puts scree at the + // foot of what the constraint cut. + g.ClampToRepose(h, p.TalusSlope) + if p.ThermalPasses > 0 { + thermal.Apply(h, g.W, g.H, g.CellM, p.TalusSlope, p.ThermalPasses, g.fixed, g.scratch) + } + } + } + if log != nil && p.Steps >= 10 && step%(p.Steps/10) == 0 { + log(step, p.Steps, float64(step)/float64(p.Steps)*100) + } + } + // One last fill so the result has no closed pits to hand to the detail passes, and one last routing so + // Area and Receiver describe the surface that is actually returned. + g.FillDepressions(h, 1e-3) + g.ComputeReceivers(h) + g.BuildStack() + g.Accumulate() +} diff --git a/Tools/Terrain/internal/fluvial/hillslope.go b/Tools/Terrain/internal/fluvial/hillslope.go new file mode 100644 index 0000000..edf4591 --- /dev/null +++ b/Tools/Terrain/internal/fluvial/hillslope.go @@ -0,0 +1,187 @@ +package fluvial + +import ( + "math" + + "salty/terrain/internal/field" +) + +// Nonlinear hillslope transport: q = D*S / (1 - (S/Sc)^2), the Roering form. +// +// It replaces the pair of patches that stood in for a hillslope law — linear diffusion, which does not care +// how steep the ground is, and ClampToRepose, which cares about nothing else — with one process that does +// both jobs. As S goes to zero it *is* linear diffusion, q -> D*S, so the divides in the lowlands round over +// exactly as before. As S approaches Sc the flux diverges, so the slope approaches Sc and never reaches it. +// +// The difference that shows is not in the numbers, it is in the shape. ClampToRepose cuts each cell down to +// talus*distance along one of eight neighbour directions and pops cells in grid order within an elevation +// bucket, so what it leaves is pyramids with faces aligned to the grid — the blocky, ruler-cut facets that +// are visible in any preview of a mountain belt here. Nothing about that is geology; it is the D8 stencil +// printed onto the landscape. Nonlinear diffusion approaches the same limiting angle *asymptotically* and +// through a symmetric five-point stencil, so there is no cut, no facet and no preferred direction. +// +// It is also mass-conserving, which the clamp is not: the flux out of one cell is the flux into its +// neighbour by construction, so material shed from a divide arrives at the foot of the slope rather than +// being deleted. +// +// # The cost, and the honest limit +// +// The catch is stiffness. The tangent of the flux law, which is what sets the explicit time-step limit, is +// +// D_eff(S) = D * (1 + u^2) / (1 - u^2)^2, u = S/Sc +// +// and that goes to infinity at u = 1. At the defaults the linear Courant number D*dt/dx^2 is already 0.29, +// so u = 0.9 alone asks for about seventy sub-steps a step and u = 0.95 for nearly three hundred. That is +// not affordable over a thousand steps, so the stiffening is bounded: u is capped at SlopeCap, and if even +// that exceeds MaxSubSteps the cap is lowered further to whatever the budget affords. The sub-step count is +// then derived from the cap that was actually used, so the scheme stays inside its stability limit whatever +// happens — it degrades by transporting less on the steepest ground, never by going unstable. +// +// Ground steeper than the cap therefore relaxes at a finite rate instead of an unbounded one, and on a +// mountain belt rising at 2 mm/yr that is not fast enough on its own. ClampToRepose stays for exactly that, +// as a safety pass rather than as the process that shapes the land: see Run. +func (g *Grid) DiffuseNonlinear(h []float32, d, sc, slopeCap, dt float64, maxSub int) { + if d <= 0 || dt <= 0 { + return + } + if sc <= 0 { + g.Diffuse(h, d, dt) // no critical slope configured: the linear law, unchanged + return + } + if slopeCap <= 0 || slopeCap >= 1 { + slopeCap = 0.9 + } + if maxSub < 1 { + maxSub = 1 + } + dx := g.CellM + dx2 := dx * dx + + // The steepest ground on the grid bounds D_eff for the whole call. Uplift is not applied in here and + // diffusion only relaxes slopes, so nothing can get steeper part-way through and invalidate the bound. + u := math.Min(g.maxSlopeRatio(h, sc), slopeCap) + f := stiffness(u) + // What the sub-step budget can pay for. Lowering the cap rather than truncating the sub-step count is + // what keeps this stable: a truncated count leaves alpha above 0.25 and the surface checkerboards a few + // hundred steps later, which is precisely the sort of failure that does not announce itself. + if budget := float64(maxSub) * 0.2 * dx2 / (d * dt); f > budget { + f = budget + u = invStiffness(f) + } + if f < 1 { + // The budget cannot buy even the linear law. It is not optional: D*dt/dx^2 alone may need several + // sub-steps and going without them is an unstable scheme, so MaxSubSteps bounds the nonlinear + // *enhancement* and never the stability floor underneath it. + f = 1 + u = 0 + } + sub := int(math.Ceil(d * f * dt / dx2 / 0.2)) + if sub < 1 { + sub = 1 + } + dtSub := dt / float64(sub) + coeff := float32(d * dtSub / dx2) + uCap := float32(u) + // The height difference across one cell that *is* Sc. flux works in height differences rather than + // slopes, so the cell spacing has to be folded into the critical value here; leaving it out makes u a + // factor of dx too large, which pins every face against the cap and quietly turns the whole law into + // linear diffusion with a constant multiplier. + dhCrit := float32(sc * dx) + + src := h + tmp := g.scratch[:len(h)] + for s := 0; s < sub; s++ { + field.Rows(g.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < g.W; x++ { + i := y*g.W + x + if g.fixed[i] { + tmp[i] = src[i] // base level: held, and whatever arrives here has left the system + continue + } + c := src[i] + // The net inflow over the four faces. Each face is evaluated from both of its cells, + // which costs twice and buys a gather: no two goroutines ever write the same cell. + net := flux(clampAt(src, g.W, g.H, x-1, y)-c, dhCrit, uCap) + + flux(clampAt(src, g.W, g.H, x+1, y)-c, dhCrit, uCap) + + flux(clampAt(src, g.W, g.H, x, y-1)-c, dhCrit, uCap) + + flux(clampAt(src, g.W, g.H, x, y+1)-c, dhCrit, uCap) + tmp[i] = c + coeff*net + } + } + }) + copy(src, tmp) + } +} + +// flux is q/D for one face, in height differences rather than slopes: one factor of the cell spacing cancels +// against the divergence and is carried in coeff instead. dhCrit is the height difference that corresponds to +// Sc across one cell, so dh/dhCrit is exactly S/Sc. u is capped so the denominator cannot reach zero. +func flux(dh, dhCrit, uCap float32) float32 { + u := dh / dhCrit + if u < 0 { + u = -u + } + if u > uCap { + u = uCap + } + return dh / (1 - u*u) +} + +// stiffness is D_eff/D at a given u = S/Sc: the factor by which the nonlinear law shortens the stable step. +func stiffness(u float64) float64 { + q := 1 - u*u + return (1 + u*u) / (q * q) +} + +// invStiffness inverts it. Bisection because stiffness is monotone on [0,1) and this runs once per call, so +// there is nothing to gain from being cleverer and something to lose from being wrong. +func invStiffness(f float64) float64 { + if f <= 1 { + return 0 + } + lo, hi := 0.0, 0.999999 + for i := 0; i < 60; i++ { + mid := (lo + hi) / 2 + if stiffness(mid) < f { + lo = mid + } else { + hi = mid + } + } + return lo +} + +// maxSlopeRatio is the steepest face on the grid as a fraction of Sc. Cardinal neighbours only, because those +// are the faces the five-point stencil actually transports across. +func maxSlopeRatio(h []float32, w, hgt int, sc, cellM float64) float64 { + var maxDiff float32 + for y := 0; y < hgt; y++ { + for x := 0; x < w; x++ { + i := y*w + x + c := h[i] + if x+1 < w { + if dv := abs32(h[i+1] - c); dv > maxDiff { + maxDiff = dv + } + } + if y+1 < hgt { + if dv := abs32(h[i+w] - c); dv > maxDiff { + maxDiff = dv + } + } + } + } + return float64(maxDiff) / cellM / sc +} + +func (g *Grid) maxSlopeRatio(h []float32, sc float64) float64 { + return maxSlopeRatio(h, g.W, g.H, sc, g.CellM) +} + +func abs32(v float32) float32 { + if v < 0 { + return -v + } + return v +} diff --git a/Tools/Terrain/internal/fluvial/hillslope_test.go b/Tools/Terrain/internal/fluvial/hillslope_test.go new file mode 100644 index 0000000..1ad9ef2 --- /dev/null +++ b/Tools/Terrain/internal/fluvial/hillslope_test.go @@ -0,0 +1,239 @@ +package fluvial + +import ( + "math" + "testing" +) + +// The three properties the nonlinear law is being trusted for. Each one is a thing the pair it replaces got +// wrong, so each is worth a test rather than an assurance. + +// TestDiffuseNonlinearConservesMass is the property ClampToRepose does not have: material shed from a divide +// has to arrive somewhere, not be deleted. +// +// The border is always an outlet, so the sum over the whole grid cannot be conserved by construction — base +// level is a sink and is meant to be. The check is therefore over an interior that the disturbance never +// reaches: a bump in the middle of a grid big enough that nothing has diffused to the edge by the time the +// run ends. +func TestDiffuseNonlinearConservesMass(t *testing.T) { + const ( + w, h = 101, 101 + cellM = 10.0 + sc = 0.7 + ) + base := make([]bool, w*h) + g := NewGrid(w, h, cellM, base) + g.SetElevationRange(-100, 2000) + + field := make([]float32, w*h) + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + d := math.Hypot(float64(x-w/2), float64(y-h/2)) * cellM + field[y*w+x] = float32(math.Max(0, 300-1.5*d)) // a cone well past Sc + } + } + + sum := func() float64 { + var s float64 + for y := 2; y < h-2; y++ { + for x := 2; x < w-2; x++ { + s += float64(field[y*w+x]) + } + } + return s + } + before := sum() + for i := 0; i < 40; i++ { + g.DiffuseNonlinear(field, 0.02, sc, 0.9, 1500, 24) + } + after := sum() + + // The cone is 300 m tall and the interior holds millions of cubic metres; a tenth of a percent is a very + // tight bound on forty steps of an explicit scheme in float32. + rel := math.Abs(after-before) / before + t.Logf("interior mass %.1f -> %.1f, relative change %.2e", before, after, rel) + if rel > 1e-3 { + t.Errorf("interior mass changed by %.3f%%; the flux is not antisymmetric", rel*100) + } +} + +// TestDiffuseNonlinearLimitsSlope is the self-limiting property, and the only honest way to test it is under +// uplift. Without uplift every diffusion law flattens everything eventually, nonlinear included, so a +// relaxing cone proves nothing. What distinguishes the two laws is where they come to rest against a forcing: +// linear diffusion has no limiting angle at all and lets relief grow to U*L^2/(2D), which at these numbers is +// a kilometre and slopes many times Sc, while the nonlinear law's flux diverges as the slope approaches Sc so +// the landscape settles near it whatever U is. That is the entire reason for the change, so it is the test. +func TestDiffuseNonlinearLimitsSlope(t *testing.T) { + // The forcing is chosen so the question is about the law and not about the sub-step budget. A hillslope of + // half-width L under uplift U comes to rest, under the linear law, at a maximum slope of U*L/D; here that is + // 0.8, twice Sc, so linear diffusion visibly fails to limit. The nonlinear law can hold Sc only while its + // flux at the cap, D*Sc/(1-uCap^2), still exceeds U*L, and at these numbers it does with room to spare — so + // a failure here is the law's, not the budget's. Push U much higher and no bounded-flux law holds Sc; that + // is the regime ClampToRepose exists for, and Run keeps it for exactly that reason. + const ( + w, h = 41, 41 + cellM = 10.0 + sc = 0.4 + upliftM = 2e-4 // 0.2 mm/yr + dt = 1000.0 + steps = 5000 + ) + grow := func(nonlinear bool) float64 { + base := make([]bool, w*h) + g := NewGrid(w, h, cellM, base) + g.SetElevationRange(-100, 8000) + f := make([]float32, w*h) + for i := 0; i < steps; i++ { + for j := range f { + if !g.fixed[j] { + f[j] += float32(upliftM * dt) + } + } + if nonlinear { + g.DiffuseNonlinear(f, 0.05, sc, 0.9, dt, 24) + } else { + g.Diffuse(f, 0.05, dt) + } + } + return maxCardinalSlope(f, w, h, cellM) + } + lin := grow(false) + non := grow(true) + t.Logf("after %.1f Myr at %.1f mm/yr: linear reaches slope %.3f, nonlinear %.3f (Sc %.3f)", + steps*dt/1e6, upliftM*1000, lin, non, sc) + + if non > sc { + t.Errorf("nonlinear settled at %.3f, above Sc %.3f: the flux is not stiffening", non, sc) + } + if non < sc*0.4 { + t.Errorf("nonlinear settled at %.3f, far below Sc %.3f: it is over-transporting", non, sc) + } + // The discriminating statement: under one forcing, the linear law overshoots the critical slope and the + // nonlinear law does not. If linear stays under it too, the forcing was too gentle to test anything. + if lin <= sc { + t.Errorf("linear only reached %.3f against Sc %.3f; the forcing is too weak to tell the laws apart", lin, sc) + } +} + +// TestDiffuseNonlinearIsStable catches the failure that does not announce itself. An explicit scheme run past +// its stability limit does not blow up on the first step; it grows a checkerboard over hundreds of them, and +// by then the run is finished and the artefact looks like texture. A checkerboard is the mode a five-point +// stencil goes unstable in, so it is what the test starts from: a stable scheme damps it towards flat. +// +// The settings put the sub-step logic where it has to choose. The initial field is far past Sc, so the cap +// engages; the budget is well below what u = 0.95 would want, so the cap has to be lowered rather than the +// sub-step count truncated. Truncating is the tempting, wrong branch and is what this is here to catch. +// +// Only the interior is measured. The border is an outlet and is held fixed by design, so it keeps its initial +// values for ever and reading it back tells you nothing about the scheme. +func TestDiffuseNonlinearIsStable(t *testing.T) { + const ( + w, h = 64, 64 + cellM = 8.0 + sc = 0.7 + ) + base := make([]bool, w*h) + g := NewGrid(w, h, cellM, base) + g.SetElevationRange(-1000, 4000) + + // The checkerboard goes in the interior only. The border is an outlet and is held fixed, so a + // checkerboard written across it is a permanent forcing that keeps re-injecting the mode into the first + // interior ring — the scheme would then be blamed for a boundary condition. + field := make([]float32, w*h) + for y := 1; y < h-1; y++ { + for x := 1; x < w-1; x++ { + if (x+y)%2 == 0 { + field[y*w+x] = 200 + } + } + } + for i := range field { + if g.fixed[i] { + field[i] = 100 // flat base level, the mean of the checkerboard + } + } + for i := 0; i < 500; i++ { + g.DiffuseNonlinear(field, 0.02, sc, 0.95, 1500, 24) + } + lo, hi := float32(math.Inf(1)), float32(math.Inf(-1)) + for y := 1; y < h-1; y++ { + for x := 1; x < w-1; x++ { + v := field[y*w+x] + if math.IsNaN(float64(v)) || math.IsInf(float64(v), 0) { + t.Fatalf("hillslope diffusion produced %v at %d,%d", v, x, y) + } + if v < lo { + lo = v + } + if v > hi { + hi = v + } + } + } + t.Logf("after 500 steps the interior spans %.3f..%.3f m, from a 200 m checkerboard", lo, hi) + if hi-lo > 1 { + t.Errorf("the checkerboard is still %.1f m after 500 steps: it is not being damped", hi-lo) + } +} + +// TestDiffuseNonlinearMatchesLinearWhenGentle pins the other end of the law. Well below Sc the two must agree +// closely, because that is the claim that lets this replace linear diffusion outright rather than sit beside +// it: the lowlands must not change when the switch is thrown. +func TestDiffuseNonlinearMatchesLinearWhenGentle(t *testing.T) { + const ( + w, h = 64, 64 + cellM = 10.0 + sc = 1.0 // Sc far above anything in the field, so u stays near zero + ) + base := make([]bool, w*h) + a := make([]float32, w*h) + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + // A gentle bump: peak slope about 0.01, one percent of Sc. + d := math.Hypot(float64(x-w/2), float64(y-h/2)) * cellM + a[y*w+x] = float32(3 * math.Exp(-d*d/(2*100*100))) + } + } + b := make([]float32, w*h) + copy(b, a) + + ga := NewGrid(w, h, cellM, base) + ga.SetElevationRange(-100, 100) + gb := NewGrid(w, h, cellM, base) + gb.SetElevationRange(-100, 100) + for i := 0; i < 20; i++ { + ga.DiffuseNonlinear(a, 0.02, sc, 0.9, 1500, 24) + gb.Diffuse(b, 0.02, 1500) + } + + var worst float64 + for i := range a { + if d := math.Abs(float64(a[i] - b[i])); d > worst { + worst = d + } + } + t.Logf("worst divergence from linear diffusion over 20 steps: %.4f m", worst) + if worst > 0.01 { + t.Errorf("nonlinear and linear diffusion differ by %.4f m at u ~ 0.01; they should agree", worst) + } +} + +func maxCardinalSlope(h []float32, w, hgt int, cellM float64) float64 { + var worst float64 + for y := 0; y < hgt; y++ { + for x := 0; x < w; x++ { + i := y*w + x + if x+1 < w { + if s := math.Abs(float64(h[i+1]-h[i])) / cellM; s > worst { + worst = s + } + } + if y+1 < hgt { + if s := math.Abs(float64(h[i+w]-h[i])) / cellM; s > worst { + worst = s + } + } + } + } + return worst +} diff --git a/Tools/Terrain/internal/fluvial/jitter.go b/Tools/Terrain/internal/fluvial/jitter.go new file mode 100644 index 0000000..0256600 --- /dev/null +++ b/Tools/Terrain/internal/fluvial/jitter.go @@ -0,0 +1,36 @@ +package fluvial + +// Deterministic per-cell jitter, and why a router needs one. +// +// D8 lets a cell drain to one of eight neighbours, so every channel is a chain of 0, 45 and 90 degree +// segments. In mountains the slope hides it. On a plain it is the dominant artefact, and for a specific +// reason: across a filled flat the only gradient present is the priority-flood's own epsilon, one millimetre +// a cell, applied in the order the flood happened to reach the cells. The router then faithfully follows the +// flood's traversal geometry and draws it as rivers — ruler-straight diagonals, the polygonal network that +// killed the first attempt at flat plains. +// +// The fix is to stop the epsilon being uniform. A hash of the cell index scatters it by plus or minus half, +// which is far below anything that matters to the solve (a millimetre against metre-scale relief) and far +// above the difference the flood's ordering would otherwise leave, so the descent direction on a flat is +// decided by the hash rather than by scan order. The same hash breaks near-ties between two equally steep +// neighbours, which is the other place a fixed direction order leaks a grid axis into the result. +// +// It is a hash rather than a random source because cross-cutting rule 12 is determinism from a seed: the +// value for a cell must not depend on how many cells were visited before it, on which goroutine ran, or on +// how many steps the solve has taken. + +// hash01 is splitmix64 finalised to the unit interval. Cheap, no state, and well enough distributed that +// neighbouring indices get unrelated values — which is the whole requirement here. +func hash01(seed uint64, i int32) float32 { + x := seed ^ (uint64(uint32(i)) * 0x9e3779b97f4a7c15) + x ^= x >> 30 + x *= 0xbf58476d1ce4e5b9 + x ^= x >> 27 + x *= 0x94d049bb133111eb + x ^= x >> 31 + return float32(x>>11) / float32(1<<53) +} + +// SetSeed ties the jitter to the run's seed, so two seeds do not share the same flat-routing geometry. +// Zero is a perfectly good seed; it is the default and nothing depends on it being set. +func (g *Grid) SetSeed(seed int64) { g.seed = uint64(seed)*0x9e3779b97f4a7c15 + 0x243f6a8885a308d3 } diff --git a/Tools/Terrain/internal/fluvial/repose.go b/Tools/Terrain/internal/fluvial/repose.go new file mode 100644 index 0000000..bd08b4b --- /dev/null +++ b/Tools/Terrain/internal/fluvial/repose.go @@ -0,0 +1,74 @@ +package fluvial + +import "math" + +// ClampToRepose enforces a maximum slope everywhere: no cell may stand above a neighbour by more than +// talus * distance. It returns the mean thickness removed, in metres. +// +// This replaces iterating thermal.Apply inside the solve, which could not do the job however many passes it +// was given (measured: 3, 10 and 40 passes all left the steepest land slope at 64 degrees against a 22 degree +// repose). The reason is structural rather than a bug. That routine moves half the excess downhill, so on a +// *uniform* over-steep slope every cell sheds exactly as much as it receives, the net change is zero, and the +// slope is a fixed point. It relaxes only where the downhill flux diverges — which is why it cuts a cone, +// whose contours converge, and why it cannot touch a planar hillside. +// +// So the constraint is imposed directly instead. This is the priority-flood mirrored: pop cells in ascending +// elevation, and lower any neighbour standing higher than the repose angle allows. Because a lowered cell is +// set to h[c] + talus*d, which is at or above the elevation just popped, the queue stays monotone and the +// bucket queue works unchanged. One pass, O(n) with the bucket queue, and the constraint holds globally when +// it returns. +// +// It is not mass-conserving: the material is removed rather than piled at the foot of the slope. That is the +// deliberate simplification, because in this landscape the foot of a hillslope is a channel and the channel +// exports the sediment anyway. The mean thickness removed is returned so a run can report it, and a run that +// removes a suspicious amount is saying its uplift and its repose angle disagree. +func (g *Grid) ClampToRepose(h []float32, talus float64) float64 { + if talus <= 0 { + return 0 + } + n := g.W * g.H + for i := range g.closed { + g.closed[i] = false + } + g.pq.reset() + for i := 0; i < n; i++ { + g.pq.push(h[i], int32(i)) + } + + card := talus * g.CellM + diag := talus * g.CellM * math.Sqrt2 + var removed float64 + + for g.pq.len() > 0 { + c := g.pq.pop() + if c < 0 { + break + } + if g.closed[c] { + continue + } + g.closed[c] = true + cx, cy := int(c)%g.W, int(c)/g.W + for k := 0; k < 8; k++ { + nx, ny := cx+dx8[k], cy+dy8[k] + if nx < 0 || ny < 0 || nx >= g.W || ny >= g.H { + continue + } + ni := int32(ny*g.W + nx) + if g.closed[ni] || g.fixed[ni] { + continue + } + allow := card + if dx8[k] != 0 && dy8[k] != 0 { + allow = diag + } + limit := h[c] + float32(allow) + if h[ni] > limit { + removed += float64(h[ni] - limit) + h[ni] = limit + g.pq.push(limit, ni) + } + } + } + return removed / float64(n) +} diff --git a/Tools/Terrain/internal/fluvial/repose_test.go b/Tools/Terrain/internal/fluvial/repose_test.go new file mode 100644 index 0000000..bb76fe7 --- /dev/null +++ b/Tools/Terrain/internal/fluvial/repose_test.go @@ -0,0 +1,50 @@ +package fluvial + +import ( + "math" + "testing" +) + +// TestClampToReposeCutsACone is the smallest possible check on the constraint: a cone far steeper than the +// repose angle must come back at or under it. +func TestClampToReposeCutsACone(t *testing.T) { + const ( + w, h = 81, 81 + cellM = 10.0 + talus = 0.4 // about 22 degrees + ) + base := make([]bool, w*h) + field := make([]float32, w*h) + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + d := math.Hypot(float64(x-w/2), float64(y-h/2)) * cellM + field[y*w+x] = float32(math.Max(0, 800-2.0*d)) // slope 2.0, five times repose + } + } + g := NewGrid(w, h, cellM, base) + g.SetElevationRange(-100, 2000) + removed := g.ClampToRepose(field, talus) + + worst := 0.0 + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + for k := 0; k < 8; k++ { + nx, ny := x+dx8[k], y+dy8[k] + if nx < 0 || ny < 0 || nx >= w || ny >= h { + continue + } + d := cellM + if dx8[k] != 0 && dy8[k] != 0 { + d = cellM * math.Sqrt2 + } + if s := float64(field[y*w+x]-field[ny*w+nx]) / d; s > worst { + worst = s + } + } + } + } + t.Logf("removed %.2f m mean; steepest slope now %.3f (repose %.3f)", removed, worst, talus) + if worst > talus*1.02 { + t.Errorf("steepest slope %.3f exceeds repose %.3f", worst, talus) + } +} diff --git a/Tools/Terrain/internal/manifest/manifest.go b/Tools/Terrain/internal/manifest/manifest.go new file mode 100644 index 0000000..deb705d --- /dev/null +++ b/Tools/Terrain/internal/manifest/manifest.go @@ -0,0 +1,546 @@ +// Package manifest reads RawContent/World/World.json, the one place that says how big L_World is, what a +// heightmap value means in metres, and where the height comes from. It is the Go half of a contract whose +// other half is Scripts/Authoring/world_manifest.py: create_world.py still reads the same file to place the +// landscape, so the two must derive the same Z scale and the same Z offset from the same keys. Any change to +// the height contract here is a change there. +package manifest + +import ( + "encoding/json" + "fmt" + "math" + "os" + "path/filepath" +) + +// The engine maps heightmap value v to local height (v - 32768) / 128 * ZScale cm, so ZScale 100 spans 512 m. +const EngineSpanMAtScale100 = 512.0 + +// Range is the [low, high] pair the pipeline block uses for anything a seed picks between. +type Range [2]float64 + +func (r Range) Lo() float64 { return r[0] } +func (r Range) Hi() float64 { return r[1] } + +// Pick returns a value in the range from a unit random. +func (r Range) Pick(u float64) float64 { return r[0] + (r[1]-r[0])*u } + +type Elevation struct { + Min float64 `json:"min"` + Max float64 `json:"max"` +} + +type Source struct { + Kind string `json:"kind"` + Seed int64 `json:"seed"` + Path string `json:"path"` + Elevation *Elevation `json:"elevation_m"` + Width int `json:"width"` + FlipY bool `json:"flip_y"` + SmoothPasses int `json:"smooth_passes"` +} + +// Layers is the paint-layer rule block, unchanged in meaning from the numpy pipeline. +type Layers struct { + RockSlopeStart float64 `json:"rock_slope_start"` + RockSlopeFull float64 `json:"rock_slope_full"` + HighAltitudeStartM float64 `json:"high_altitude_start_m"` + HighAltitudeFullM float64 `json:"high_altitude_full_m"` + BreakupM float64 `json:"breakup_m"` + WearRockStart float64 `json:"wear_rock_start"` + RidgeRock float64 `json:"ridge_rock"` + DepositSoftens float64 `json:"deposit_softens"` +} + +type Plates struct { + Count int `json:"count"` + VelocityCmYr Range `json:"velocity_cm_yr"` + ConvergentMmYr Range `json:"convergent_mm_yr"` + BandKm Range `json:"band_km"` + DivergentMmYr Range `json:"divergent_mm_yr"` + RiftKm Range `json:"rift_km"` + // IntraplateMmYr and IntraplateSwellMmYr are the two ends of the regional swell: the interior warps + // between them over tens of kilometres. A single uniform intraplate rate is what produced a table-flat + // plain with no divides on it, and therefore no drainage for the router to find. See package uplift. + IntraplateMmYr float64 `json:"intraplate_mm_yr"` + IntraplateSwellMmYr float64 `json:"intraplate_swell_mm_yr"` + LowUpliftFraction Range `json:"low_uplift_fraction"` +} + +type Faults struct { + Major Range `json:"major"` + Minor Range `json:"minor"` + LengthKm Range `json:"length_km"` + SpacingKm Range `json:"spacing_km"` + ThrowMajorM Range `json:"throw_major_m"` + ThrowMinorM Range `json:"throw_minor_m"` + StrikeSlipM Range `json:"strike_slip_m"` +} + +type Lithology struct { + Types int `json:"types"` + KMultipliers []float64 `json:"k_multipliers"` +} + +type Relief struct { + Octaves int `json:"octaves"` + Gain float64 `json:"gain"` + BaseFrequencyM float64 `json:"base_frequency_m"` + AmplitudeM Range `json:"amplitude_m"` + CrestWeight float64 `json:"crest_weight"` +} + +// Fluvial is the stream-power block: dh/dt = U - K * A^m * S^n, solved implicitly up the drainage stack. +type Fluvial struct { + K float64 `json:"k"` + M float64 `json:"m"` + N float64 `json:"n"` + DtYr float64 `json:"dt_yr"` + Steps int `json:"steps"` + DiffusionM2Yr float64 `json:"diffusion_m2_yr"` + // FillEvery is the one number that decides whether a full run is five minutes or half an hour: the + // priority-flood is the only part of a step that is not O(n). See Docs/Terrain.md, the time budget. + FillEvery int `json:"fill_every"` + // CriticalAreaM2 is where channels begin; below it a cell is a hillslope. See package fluvial. + CriticalAreaM2 float64 `json:"critical_area_m2"` + ChannelTaper float64 `json:"channel_taper"` + + // The nonlinear hillslope law, q = D*S/(1-(S/Sc)^2). CriticalSlopeDeg is Sc as an angle; 0 falls back to + // linear diffusion with the repose clamp inside the step loop. See internal/fluvial/hillslope.go. + CriticalSlopeDeg float64 `json:"critical_slope_deg"` + SlopeCap float64 `json:"slope_cap"` + MaxHillslopeSub int `json:"max_hillslope_substeps"` +} + +type Thermal struct { + CoarsePasses int `json:"coarse_passes"` + Every int `json:"every"` + FinePasses int `json:"fine_passes"` + TalusDeg float64 `json:"talus_deg"` +} + +type Strata struct { + PeriodM float64 `json:"period_m"` + Contrast float64 `json:"contrast"` +} + +type Detail struct { + Octaves int `json:"octaves"` + AmplitudeM Range `json:"amplitude_m"` +} + +// Particle is the droplet block, demoted by D-47 from "carves the valleys" to detail only. Every brake in it +// was learned the hard way; see Docs/Terrain.md. +type Particle struct { + Droplets int `json:"droplets"` + Lifetime int `json:"lifetime"` + Scale float64 `json:"scale"` + MinErodeSlope float64 `json:"min_erode_slope"` + MaxChange float64 `json:"max_change"` + MaxSpeed float64 `json:"max_speed"` + MaxLoad float64 `json:"max_load"` + Inertia float64 `json:"inertia"` + Capacity float64 `json:"capacity"` + MinSlope float64 `json:"min_slope"` + ErodeRate float64 `json:"erode_rate"` + DepositRate float64 `json:"deposit_rate"` + Evaporation float64 `json:"evaporation"` + Gravity float64 `json:"gravity"` + Batch int `json:"batch"` +} + +// Continent is the coast and the sea floor: not in the incoming spec at all, kept by D-48 because sea level +// is a better-posed base level for the fluvial solve than one outlet edge. +type Continent struct { + Enabled bool `json:"enabled"` + Radius float64 `json:"radius"` + CoastWarp float64 `json:"coast_warp"` + SeaFloorM Range `json:"sea_floor_m"` + // LandFraction is met exactly, by thresholding the continent field at the percentile that yields it, so + // the land area does not wander with the seed. + LandFraction float64 `json:"land_fraction"` + // RadialBias pulls the land towards the middle. It only biases: at 0 the continent is wherever the noise + // puts it, and high values return the disc with a wobbly edge that the first version produced. + RadialBias float64 `json:"radial_bias"` + // ShoreWidthPct is how many percentiles the shore transition spans. Small is a cliff coast, large is a + // wide tidal shelf. + ShoreWidthPct float64 `json:"shore_width_pct"` + // OutlineOctaves and OutlineGain are how much detail the coastline itself has. A real coastline is + // fractal — that is the whole point of the Richardson coastline paradox — and five octaves over a 14 km + // map puts the finest feature at about 450 m, which is a smooth blob with no inlets, no headlands and no + // islands. Measured on seed 7 with five octaves: the fetch called the median stretch of coast fully open, + // because there was nothing at the fetch scale to shelter anything from anything. + OutlineOctaves int `json:"outline_octaves"` + OutlineGain float64 `json:"outline_gain"` +} + +// Coast is what happens where the land meets the sea: the shape of the sea floor, and the two processes +// that work on the shoreline itself. +// +// It is a separate block from Continent because the two answer different questions. Continent decides *where* +// the coastline runs — it is part of the tectonics, it is what the fluvial solve takes as its base level, and +// it is fixed before a single step of erosion. Coast decides what the shoreline *is*, and it runs after the +// solve, on the terrain the solve produced: the sea floor cannot be laid until the land behind it has its +// relief, and the surf cannot cut a cliff into a mountain that has not been built yet. +type Coast struct { + Enabled bool `json:"enabled"` + + // The sea floor. A real margin is a shelf at a very gentle grade out to a shelf break, and then a much + // steeper continental slope down to the abyssal floor; the flat plane at the bottom of the elevation + // range that this replaces was neither. ShelfKm is a range because the shelf width is not a constant: + // it is wide off a low coastal plain and narrow off a mountain range that comes down to the water, so it + // is interpolated per stretch of shore by the relief standing behind that stretch. + ShelfKm Range `json:"shelf_km"` + SteepCoastM float64 `json:"steep_coast_m"` + SlopeKm float64 `json:"slope_km"` + ShelfExponent float64 `json:"shelf_exponent"` + RoughnessM float64 `json:"roughness_m"` + RoughWaveM float64 `json:"rough_wavelength_m"` + + // Shelter. Fetch is cast from every waterline cell in FetchDirections directions out to FetchRangeM, and + // how far the rays get before they hit land is what separates an exposed headland from the back of a bay. + // It is the one field both coastal processes are driven by: the surf reaches furthest inland where the + // water is open, and sediment settles where it is not. + FetchDirections int `json:"fetch_directions"` + FetchRangeM float64 `json:"fetch_range_m"` + + // The surf. Within a reach of the waterline the land is planed towards a shore platform at + // PlatformGrade; the step at the back of the planed strip is the cliff, and it is a consequence of the + // reach ending rather than something drawn. CutFraction below 1 leaves the platform rough. + SurfReachM float64 `json:"surf_reach_m"` + PlatformGrade float64 `json:"platform_grade"` + CutFraction float64 `json:"cut_fraction"` + + // Deposition. What the surf cuts does not vanish: it is carried DriftM along the shore and laid in + // sheltered water shallower than DepositDepthM and within DepositReachM of the shore, up to BermM above + // sea level. Rivers deliver their own load at their mouths, which is what makes a delta. + DepositReachM float64 `json:"deposit_reach_m"` + DepositDepthM float64 `json:"deposit_depth_m"` + ShelterBias float64 `json:"shelter_bias"` + BermM float64 `json:"berm_m"` + DriftM float64 `json:"drift_m"` + RiverM3PerKm2 float64 `json:"river_m3_per_km2"` + RiverExponent float64 `json:"river_exponent"` + RiverChannelKm2 float64 `json:"river_channel_km2"` +} + +type Pipeline struct { + GeologyFactor int `json:"geology_factor"` + Continent Continent `json:"continent"` + Coast Coast `json:"coast"` + Plates Plates `json:"plates"` + Faults Faults `json:"faults"` + Lithology Lithology `json:"lithology"` + Relief Relief `json:"relief"` + Fluvial Fluvial `json:"fluvial"` + Thermal Thermal `json:"thermal"` + Strata Strata `json:"strata"` + Detail Detail `json:"detail"` + Particle Particle `json:"particle"` +} + +type Manifest struct { + Path string `json:"-"` + + Level string `json:"level"` + VerticesPerSide int `json:"vertices_per_side"` + QuadCm float64 `json:"quad_cm"` + ElevationM Elevation `json:"elevation_m"` + SeaLevelM float64 `json:"sea_level_m"` + SpawnPadM float64 `json:"spawn_pad_m"` + StreamingGridComponents int `json:"streaming_grid_components"` + Source Source `json:"source"` + Layers Layers `json:"layers"` + Pipeline Pipeline `json:"pipeline"` + + // Erosion is the pre-D-47 block. Kept only so a manifest that still carries it can be reported rather + // than silently ignored. + Erosion map[string]any `json:"erosion"` +} + +// Defaults are the generator's own numbers, so a manifest carries only what differs from them. This is the +// Go equivalent of heightmap_erosion.DEFAULTS and it plays the same role. +func Defaults() *Manifest { + return &Manifest{ + Level: "/Game/Maps/L_World", + VerticesPerSide: 7141, // 255*28+1 (D-48): the importer's own rule then gives 28x28 components + QuadCm: 200, + ElevationM: Elevation{Min: -512, Max: 1536}, // span 2048 m is exactly Z scale 400 + SeaLevelM: 0, + SpawnPadM: 150, + StreamingGridComponents: 2, + Source: Source{Kind: "noise", Seed: 7}, + Layers: Layers{ + RockSlopeStart: 0.55, RockSlopeFull: 1.05, + HighAltitudeStartM: 1100, HighAltitudeFullM: 1650, BreakupM: 18, + WearRockStart: 0.35, RidgeRock: 0.6, DepositSoftens: 0.7, + }, + Pipeline: Pipeline{ + GeologyFactor: 4, + Continent: Continent{ + Enabled: true, Radius: 0.62, CoastWarp: 0.28, + SeaFloorM: Range{-180, -30}, LandFraction: 0.62, + RadialBias: 0.85, ShoreWidthPct: 3, + // Measured on seed 7 at 1400, sweeping the gain with everything else held: shoreline length + // 64 km at 0.50, 81 at 0.58, 96 at 0.62, 114 at 0.66, and the fetch's view of the coast went + // from "the median stretch is fully open" (1.00) to 0.98, 0.84 and 0.51. 0.62 is where the + // coast has islands, inlets and headlands that shelter each other without the outline + // breaking up into speckle. Octaves past 9 buy nothing: at gain 0.50 the sweep 5, 7, 8, 9, 10 + // gave 59, 63, 64, 65, 66 km and it had flattened. + OutlineOctaves: 8, OutlineGain: 0.62, + }, + Coast: Coast{ + Enabled: true, + // The canvas is 14.28 km a side and the sea is a third of it, so a real shelf — 75 km out + // to a break at 130 m — does not fit and is not what these numbers are. They are the same + // *shape* scaled to the map: a gentle shelf a kilometre or two wide, a break at the + // SeaFloorM high end, and a slope to the SeaFloorM low end over another kilometre and a + // half. The two SeaFloorM numbers keep their meaning; what changes is that the depth + // between them is now a function of distance offshore rather than of the mask's ramp. + ShelfKm: Range{0.6, 3.0}, SteepCoastM: 300, SlopeKm: 1.6, ShelfExponent: 0.7, + RoughnessM: 10, RoughWaveM: 1200, + FetchDirections: 16, FetchRangeM: 1500, + // 110 m of reach is 14 cells at the 8 m geology cell, which is about the least that can + // carry a platform and a cliff at this resolution. The shore is the one landform whose + // scale is set by physics rather than by the map, so it does not grow with the canvas; + // when the detail passes exist this pass is where the beach itself gets built, at 2 m. + SurfReachM: 110, PlatformGrade: 0.02, CutFraction: 0.85, + DepositReachM: 350, DepositDepthM: 25, ShelterBias: 1.5, BermM: 2, DriftM: 300, + // Untuned, and deliberately reported rather than assumed: the summary prints the volume + // cut, the volume laid and the volume the rivers delivered, so the next round of tuning + // has a number to work from instead of an impression of a picture. + RiverM3PerKm2: 1.2e5, RiverExponent: 0.6, RiverChannelKm2: 0.5, + }, + Plates: Plates{ + Count: 6, VelocityCmYr: Range{1, 5}, BandKm: Range{2, 4}, + DivergentMmYr: Range{-2, -1}, RiftKm: Range{3, 6}, + // The swell is the fix for the dead plains and it stays: what a lowland needs in order to + // have drainage is not a higher uplift rate but a *varying* one, because divides come from + // variation. What was wrong was the absolute rate, not the idea. + // + // Steady-state slope is S = U/(K*A^m), and at CriticalAreaM2 0 that law is applied down to + // a single cell, so every divide on the map sits at A = cell². At K 5e-5, m 0.5 and an 8 m + // cell that is S = U/4e-4: 0.25 mm/yr puts every divide at 32 degrees and 0.9 mm/yr puts it + // past the 35 degree repose clamp. Measured on the old numbers, 81 % of the land came out + // in the >0.5 mm/yr class and the plain class held 1 %, all of it sea cliff. The plains were + // not over-dissected; they were being uplifted at mountain rates, and U sets how *high* the + // summits get, not how steep the ground is — for n = 1 the hillslope angle is the same + // everywhere the same U is applied. + // + // So the rate drops an order of magnitude and the variation stays: 0.03 to 0.08 is still + // the ~2.5-fold warp that puts divides on a plain, and it gives 4 to 11 degree hillslopes + // and lowland channel gradients near 1 m/km. Against a convergent 1-2 mm/yr that is a + // 30-to-60-fold mountain-to-plain ratio, which is what real ones are; the three-fold ratio + // this replaces was not mountains and plains, it was mountains and slightly lower mountains. + // The percentile ramp in rangeMask keeps the foreland continuous, so nothing becomes bimodal. + ConvergentMmYr: Range{1.0, 2.0}, + IntraplateMmYr: 0.03, + IntraplateSwellMmYr: 0.08, + LowUpliftFraction: Range{0.2, 0.4}, + }, + Faults: Faults{ + Major: Range{3, 6}, Minor: Range{10, 30}, LengthKm: Range{2, 15}, SpacingKm: Range{1, 4}, + ThrowMajorM: Range{100, 400}, ThrowMinorM: Range{20, 80}, StrikeSlipM: Range{200, 800}, + }, + Lithology: Lithology{Types: 3, KMultipliers: []float64{0.5, 1.0, 3.0}}, + Relief: Relief{ + // The low end is 15 m, not 50: amplitude scales with normalised uplift, so the lo end is + // what the plains start as, and steady-state plain relief at the rates above is about 10 m. + // Starting them as 50 m hills means the run spends itself eroding away relief it was handed + // rather than carving what the uplift field asks for. + Octaves: 7, Gain: 0.45, BaseFrequencyM: 4000, AmplitudeM: Range{15, 150}, CrestWeight: 0.12, + }, + Fluvial: Fluvial{ + // 1000 steps, not the incoming spec's 5000: at this K the trunk response time is about + // 45 000 yr, and the exponent stops moving after 500 steps at 512². FillEvery is 1 and is + // not a budget knob: at 50 the solve is simply wrong (see Docs/Terrain.md). + K: 5e-5, M: 0.5, N: 1.0, DtYr: 1500, Steps: 1000, DiffusionM2Yr: 0.02, FillEvery: 1, + // 0 disables it, and it is disabled on purpose. A channelization threshold is the textbook + // answer to stream power over-steepening hillslopes, but it only works paired with a + // hillslope transport law strong enough to carry the uplift into the channels, and at this + // timescale there isn't one: the diffusivity it would need (~0.3 m²/yr over a 220 m + // hillslope) has a diffusion length of sqrt(D*t) ≈ 470 m over 1.5 Myr, which smooths away + // every landform the generator exists to make. Measured: the map went to melted wax. With + // the threshold on and diffusion left low, hillslopes instead accumulate uplift unchecked + // and the map clipped 22% of the elevation range. Landsliding carries the hillslopes here. + // Measured again after the uplift field was fixed, and it still fails: at 1e4 the plains + // went from 0.8 to 7.0 degrees median, the rolling class from 7.4 to 32.8 with half of it + // pinned against the repose clamp, and the mountains to 79 % pinned. The reason is the same + // one as before — the hillslope the threshold creates has to shed its uplift by diffusion, + // and at D 0.02 it cannot, so the clamp takes the job instead. It stays at 0 until there is + // a transport law strong enough to pair it with. + CriticalAreaM2: 0, + ChannelTaper: 2, + // Sc is the repose angle, so the nonlinear law limits at the same place the clamp did; what + // changes is that it approaches it smoothly and isotropically instead of cutting to it along + // eight grid directions. See internal/fluvial/hillslope.go for what the cap and the sub-step + // budget buy and what they cost. + CriticalSlopeDeg: 35, + SlopeCap: 0.9, + MaxHillslopeSub: 24, + }, + Thermal: Thermal{CoarsePasses: 2, Every: 4, FinePasses: 24, TalusDeg: 35}, + Strata: Strata{PeriodM: 160, Contrast: 0.6}, + Detail: Detail{Octaves: 4, AmplitudeM: Range{2, 8}}, + Particle: Particle{ + Droplets: 9000000, Lifetime: 40, Scale: 0.5, MinErodeSlope: 0.25, MaxChange: 0.2, + MaxSpeed: 5, MaxLoad: 2, Inertia: 0.1, Capacity: 2, MinSlope: 0.01, + ErodeRate: 0.2, DepositRate: 0.2, Evaporation: 0.02, Gravity: 4, Batch: 200000, + }, + }, + } +} + +// Load reads the manifest over the defaults, so a key absent from the file keeps the generator's number. +// encoding/json only assigns fields that are present, which gives exactly the merge the numpy pipeline did +// with {**DEFAULTS, **settings}. +func Load(path string) (*Manifest, error) { + raw, err := os.ReadFile(path) + if err != nil { + return nil, err + } + m := Defaults() + if err := json.Unmarshal(raw, m); err != nil { + return nil, fmt.Errorf("%s: %w", path, err) + } + m.Path = path + return m, m.Validate() +} + +func (m *Manifest) Validate() error { + if m.VerticesPerSide < 2 { + return fmt.Errorf("%s: vertices_per_side must be at least 2", m.Path) + } + if m.QuadCm <= 0 { + return fmt.Errorf("%s: quad_cm must be positive", m.Path) + } + if m.ElevationM.Max <= m.ElevationM.Min { + return fmt.Errorf("%s: elevation_m.max must be above .min", m.Path) + } + // D-45: the importer picks the largest section size that divides the quad count, preferring one section + // per component, so a resolution off the ladder of 255*N+1 or 127*N+1 silently multiplies the component + // count. 4033 gave 4096 components and a forty-minute import. Refuse rather than let it happen again. + q := m.QuadsPerSide() + section := 0 + for _, s := range []int{255, 127, 63, 31, 15, 7} { + if q%s == 0 { + section = s + break + } + } + if section == 0 { + return fmt.Errorf("%s: vertices_per_side %d gives %d quads, which no section size divides; use 255*N+1 or 127*N+1", + m.Path, m.VerticesPerSide, q) + } + if components := (q / section) * (q / section); components > 1024 { + return fmt.Errorf("%s: vertices_per_side %d gives %d components of %d quads; that import takes tens of minutes (D-45)", + m.Path, m.VerticesPerSide, components, section) + } + if f := m.Pipeline.GeologyFactor; f < 1 || q%f != 0 { + return fmt.Errorf("%s: geology_factor %d must divide the quad count %d exactly", m.Path, f, q) + } + return nil +} + +// Derived geometry, all of it mirroring world_manifest.py. + +func (m *Manifest) QuadsPerSide() int { return m.VerticesPerSide - 1 } +func (m *Manifest) QuadM() float64 { return m.QuadCm / 100 } +func (m *Manifest) SideM() float64 { return float64(m.QuadsPerSide()) * m.QuadM() } +func (m *Manifest) AreaKm2() float64 { s := m.SideM() / 1000; return s * s } + +func (m *Manifest) ElevationSpanM() float64 { return m.ElevationM.Max - m.ElevationM.Min } +func (m *Manifest) ElevationMidM() float64 { return (m.ElevationM.Max + m.ElevationM.Min) / 2 } + +// ZScale is the landscape actor's Z scale so the 16-bit range spans exactly the manifest's elevation range. +func (m *Manifest) ZScale() float64 { return m.ElevationSpanM() / EngineSpanMAtScale100 * 100 } + +// LandscapeZCm places value 32768 at the middle of the range, so elevation 0 m lands on world Z 0. +func (m *Manifest) LandscapeZCm() float64 { return m.ElevationMidM() * 100 } + +func (m *Manifest) MetresToValue(metres float64) float64 { + return (metres - m.ElevationM.Min) / m.ElevationSpanM() * 65535 +} + +func (m *Manifest) ValueToMetres(v float64) float64 { + return m.ElevationM.Min + v/65535*m.ElevationSpanM() +} + +// GeologySize is the coarse grid the tectonics and the fluvial solve run on: an exact integer factor of the +// quad count, so the upsample back to full resolution lands every sample on a sample. +func (m *Manifest) GeologySize() int { + return m.QuadsPerSide()/m.Pipeline.GeologyFactor + 1 +} + +func (m *Manifest) GeologyCellM() float64 { + return m.QuadM() * float64(m.Pipeline.GeologyFactor) +} + +// SectionLayout reports what the engine's importer will choose, so a run can print it and a person can see +// the component count before the editor spends minutes on it. +func (m *Manifest) SectionLayout() (section, componentsPerSide int) { + q := m.QuadsPerSide() + for _, s := range []int{255, 127, 63, 31, 15, 7} { + if q%s == 0 { + return s, q / s + } + } + return 0, 0 +} + +// Resolve reads a manifest path as relative to the project root. +func (m *Manifest) Resolve(rel string) string { + if filepath.IsAbs(rel) { + return rel + } + return filepath.Join(ProjectRoot(m.Path), rel) +} + +// ProjectRoot walks up from the manifest (RawContent/World/World.json) to the repository root. +func ProjectRoot(manifestPath string) string { + abs, err := filepath.Abs(manifestPath) + if err != nil { + return "." + } + return filepath.Dir(filepath.Dir(filepath.Dir(abs))) +} + +func (m *Manifest) Describe() string { + section, perSide := m.SectionLayout() + return fmt.Sprintf( + "%d vertices a side at %g cm: %.2f km, %.0f km2; elevation %g..%g m (Z scale %g, actor Z %g cm, %.2f cm a step); "+ + "%dx%d components of %d quads; geology %d at %.1f m; source %s seed %d", + m.VerticesPerSide, m.QuadCm, m.SideM()/1000, m.AreaKm2(), + m.ElevationM.Min, m.ElevationM.Max, m.ZScale(), m.LandscapeZCm(), m.ElevationSpanM()/65535*100, + perSide, perSide, section, m.GeologySize(), m.GeologyCellM(), m.Source.Kind, m.Source.Seed) +} + +// ClipFraction is the check D-48 made a pass/fail: U/K is the one relief knob and the elevation ceiling is a +// hard clip in the 16-bit encoding, so a run that clips is a failed run, not a rounded one. +func (m *Manifest) ClipFraction(metres []float32) float64 { + if len(metres) == 0 { + return 0 + } + var n int + for _, v := range metres { + if float64(v) < m.ElevationM.Min || float64(v) > m.ElevationM.Max { + n++ + } + } + return float64(n) / float64(len(metres)) +} + +// Encode turns metres into the 16-bit values the PNG carries, clamping to the range. +func (m *Manifest) Encode(metres []float32) []uint16 { + out := make([]uint16, len(metres)) + for i, v := range metres { + x := m.MetresToValue(float64(v)) + if x < 0 { + x = 0 + } else if x > 65535 { + x = 65535 + } + out[i] = uint16(math.Round(x)) + } + return out +} diff --git a/Tools/Terrain/internal/noise/noise.go b/Tools/Terrain/internal/noise/noise.go new file mode 100644 index 0000000..d4bff7e --- /dev/null +++ b/Tools/Terrain/internal/noise/noise.go @@ -0,0 +1,233 @@ +// Package noise is the small toolkit the uplift field is built from: value noise, fBm, domain warping and +// Worley crest lines. Ported from Scripts/Authoring/heightmap_noise.py, and the tuning is the point of the +// port, not the shapes. Read the constants in Docs/Terrain.md before changing any of them; every one of them +// is a round of measurement that has already been paid for. +// +// The one change of intent from the numpy original (D-47): what comes out of here is no longer the terrain. +// It is an uplift rate field that the fluvial pass integrates. Amplitudes are therefore far smaller and the +// shapes matter more than the heights. +package noise + +import ( + "math" + "math/rand/v2" + + "salty/terrain/internal/field" +) + +// Source is a per-pass random source. Never the global one: determinism is cross-cutting rule 12 and a +// shared source makes the result depend on which pass drew first. +type Source struct{ r *rand.Rand } + +// NewSource seeds from the run seed and the pass index, so inserting a pass does not reshuffle the ones +// before it. +func NewSource(seed int64, pass uint64) *Source { + return &Source{r: rand.New(rand.NewPCG(uint64(seed), pass))} +} + +func (s *Source) Float() float64 { return s.r.Float64() } +func (s *Source) Range(lo, hi float64) float64 { return lo + (hi-lo)*s.r.Float64() } +func (s *Source) IntN(n int) int { return s.r.IntN(n) } + +func Smoothstep(t float64) float64 { return t * t * (3 - 2*t) } + +func smoothstep32(t float32) float32 { return t * t * (3 - 2*t) } + +// Lattice is one octave's random grid. Periodic: sampling outside it wraps, so warped or stretched +// coordinates never run off an edge. +type Lattice struct { + Cells int + Data []float32 +} + +// NewLattice draws cells*cells uniforms in index order, which is what makes the octave reproducible however +// it is later sampled in parallel. +func NewLattice(cells int, s *Source) *Lattice { + l := &Lattice{Cells: cells, Data: make([]float32, cells*cells)} + for i := range l.Data { + l.Data[i] = float32(s.Float()) + } + return l +} + +// Sample interpolates the periodic lattice at (u, v) in cell units. +func (l *Lattice) Sample(u, v float64) float32 { + c := l.Cells + i0 := int(math.Floor(u)) + j0 := int(math.Floor(v)) + tu := smoothstep32(float32(u - math.Floor(u))) + tv := smoothstep32(float32(v - math.Floor(v))) + i0 = ((i0 % c) + c) % c + j0 = ((j0 % c) + c) % c + i1 := (i0 + 1) % c + j1 := (j0 + 1) % c + top := l.Data[j0*c+i0]*(1-tu) + l.Data[j0*c+i1]*tu + bot := l.Data[j1*c+i0]*(1-tu) + l.Data[j1*c+i1]*tu + return top*(1-tv) + bot*tv +} + +// Params are one fBm stack. Gain is the constant that matters most: eight octaves at 0.5 makes every octave +// as steep as the last and puts a third of the land above 50 degrees. 0.42 to 0.45. +type Params struct { + BaseCells int + Octaves int + Gain float64 + Ridged bool +} + +// FBM fills a size x size field with fractional Brownian motion in [0, 1] on the regular grid. +func FBM(size int, s *Source, p Params) *field.Field { + uv := identity(size) + return FBMAt(uv.u, uv.v, s, p) +} + +// FBMAt samples the same stack at map coordinates, where 0..1 spans the map once. Feed it warped or +// anisotropic coordinates and the noise bends and stretches with them, which is how the ranges come out as +// long chains rather than blobs. +func FBMAt(u, v *field.Field, s *Source, p Params) *field.Field { + out := field.NewLike(u) + amplitude, cells, norm := 1.0, p.BaseCells, 0.0 + // Lattices are built up front, in octave order, before any sampling: the draw order must not depend on + // the parallel loop below. + lattices := make([]*Lattice, p.Octaves) + for o := 0; o < p.Octaves; o++ { + lattices[o] = NewLattice(cells, s) + cells *= 2 + } + cells = p.BaseCells + for o := 0; o < p.Octaves; o++ { + l := lattices[o] + amp := float32(amplitude) + c := float64(cells) + field.Rows(u.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < u.W; x++ { + i := y*u.W + x + n := l.Sample(float64(u.Data[i])*c, float64(v.Data[i])*c) + if p.Ridged { + n = 1 - float32(math.Abs(float64(n)*2-1)) + n = n * n + } + out.Data[i] += n * amp + } + } + }) + norm += amplitude + amplitude *= p.Gain + cells *= 2 + } + inv := float32(1 / norm) + for i := range out.Data { + out.Data[i] *= inv + } + return out +} + +// CellularEdges is Worley F2-F1 through periodic jittered feature points, mapped so the borders between cells +// read 1 and the interiors 0: a network of thin, branching crest lines. +// +// Kept light on purpose. At 30 % of the mountain height this turned the ranges into a honeycomb of polygon +// walls with flat floors (2026-09-17); 12 % through a stronger warp is the setting that survived. +func CellularEdges(u, v *field.Field, s *Source, cells int, jitter float64) *field.Field { + pts := make([]float32, cells*cells*2) + for i := range pts { + pts[i] = float32(s.Float()*jitter + (1-jitter)*0.5) + } + out := field.NewLike(u) + field.Rows(u.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < u.W; x++ { + i := y*u.W + x + su := float64(u.Data[i]) * float64(cells) + sv := float64(v.Data[i]) * float64(cells) + i0 := int(math.Floor(su)) + j0 := int(math.Floor(sv)) + fu := su - math.Floor(su) + fv := sv - math.Floor(sv) + f1, f2 := math.Inf(1), math.Inf(1) + for dj := -1; dj <= 1; dj++ { + for di := -1; di <= 1; di++ { + ci := ((i0+di)%cells + cells) % cells + cj := ((j0+dj)%cells + cells) % cells + px := float64(pts[(cj*cells+ci)*2]) + float64(di) - fu + py := float64(pts[(cj*cells+ci)*2+1]) + float64(dj) - fv + d := math.Hypot(px, py) + if d < f1 { + f2, f1 = f1, d + } else if d < f2 { + f2 = d + } + } + } + e := 1 - (f2-f1)/0.6 + if e < 0 { + e = 0 + } else if e > 1 { + e = 1 + } + out.Data[i] = float32(e * e) + } + } + }) + return out +} + +type uvPair struct{ u, v *field.Field } + +// identity is the unwarped coordinate pair: 0..1 across the map, matching numpy's mgrid / (size - 1). +func identity(size int) uvPair { + u := field.New(size, size, 1) + v := field.New(size, size, 1) + inv := float32(1) / float32(size-1) + for y := 0; y < size; y++ { + for x := 0; x < size; x++ { + u.Data[y*size+x] = float32(x) * inv + v.Data[y*size+x] = float32(y) * inv + } + } + return uvPair{u, v} +} + +// Identity exposes the coordinate pair so passes can warp it. +func Identity(size int) (u, v *field.Field) { + p := identity(size) + return p.u, p.v +} + +// Warp offsets a coordinate pair by a low-frequency field scaled by amount. This is what bends ridges so +// ranges curve instead of running straight. +func Warp(u, v, dx, dy *field.Field, amount float64) (*field.Field, *field.Field) { + wu := u.Clone() + wv := v.Clone() + a := float32(amount) + for i := range wu.Data { + wu.Data[i] += (dx.Data[i] - 0.5) * 2 * a + wv.Data[i] += (dy.Data[i] - 0.5) * 2 * a + } + return wu, wv +} + +// WorldUV is the coordinate pair for noise that must not move when the map does: u and v count periods of +// *world* space from the world origin rather than fractions of the map. +// +// Everything else in this package takes coordinates where 0..1 spans the map once, which is right for a field +// whose whole job is to be shaped like the continent — the range grain, the continent outline, the lithology. +// It is wrong for anything that will one day be generated a tile at a time, because two tiles asking about the +// same physical place would get different values and every seam would show. That is rule 1 of the tiling plan +// in Docs/Terrain-Next.md, and this function is what obeying it looks like. +// +// periodM is how far the lattice runs before it repeats, so it must be comfortably larger than any world that +// will ever be generated; the octave count then sets the finest wavelength, periodM / (BaseCells * 2^octaves). +func WorldUV(w, h int, cellM, originXM, originYM, periodM float64) (u, v *field.Field) { + u = field.New(w, h, cellM) + v = field.New(w, h, cellM) + for y := 0; y < h; y++ { + vy := float32((originYM + float64(y)*cellM) / periodM) + for x := 0; x < w; x++ { + i := y*w + x + u.Data[i] = float32((originXM + float64(x)*cellM) / periodM) + v.Data[i] = vy + } + } + return u, v +} diff --git a/Tools/Terrain/internal/stats/stats.go b/Tools/Terrain/internal/stats/stats.go new file mode 100644 index 0000000..542c0c3 --- /dev/null +++ b/Tools/Terrain/internal/stats/stats.go @@ -0,0 +1,474 @@ +// Package stats is how a run is judged. "It reads as real geology" is not a screenshot; it is a straight +// slope-area plot and an S-shaped hypsometric curve, and this package produces both. +// +// The project's habit already is to measure rather than eyeball — a slope histogram settled the noise tuning +// and attributed rill damage to a specific pass — and these are the two standard checks the incoming spec +// added on top. The slope-area exponent in particular is the direct test of whether the fluvial pass did the +// thing it exists to do, so it is the proof that closes build-order step 4. +package stats + +import ( + "fmt" + "math" + "sort" + + "salty/terrain/internal/field" +) + +type Bin struct { + LogA float64 `json:"log_area"` + LogS float64 `json:"log_slope"` + N int `json:"n"` +} + +// SlopeArea is the stream-power signature. At steady state S = (U/K)^(1/n) * A^(-m/n), so log S against +// log A is a straight line of gradient -m/n: -0.5 at the defaults. A curved or scattered plot means K, m, n +// or the run length is wrong, and no amount of detail noise will hide it. +// +// The catch, and it took a bad R2 to notice: that relation has the same gradient but a *different intercept* +// for every uplift rate. This map's uplift spans 0.2 to 5 mm/yr, so regressing every channel together stacks +// twenty-five-fold-separated parallel lines into a cloud and fits nonsense to it. Slope is therefore +// normalised by (U/K)^(1/n) first, which collapses every regime onto one line through the origin and tests +// the exponent rather than the uplift field's heterogeneity. RawExponent keeps the unnormalised fit, which is +// what a single-uplift map would report and is worth seeing next to it. +type SlopeArea struct { + Bins []Bin `json:"bins"` + Exponent float64 `json:"exponent"` + RawExponent float64 `json:"raw_exponent"` + Expected float64 `json:"expected"` + R2 float64 `json:"r2"` + RawR2 float64 `json:"raw_r2"` + Channels int `json:"channel_cells"` + ThreshKm2 float64 `json:"threshold_km2"` +} + +// Hypsometry is the second check: cumulative area against normalised elevation should be S-shaped. The +// integral is the single number - convex and high means too young or too much uplift, concave and low means +// over-eroded. Mature landscapes sit near 0.4 to 0.6. +type Hypsometry struct { + Integral float64 `json:"integral"` + Curve []float64 `json:"curve"` // area fraction at 11 elevation fractions, 0.0 to 1.0 +} + +type Slopes struct { + Under15Deg float64 `json:"under_15_deg"` + Under30Deg float64 `json:"under_30_deg"` + Over50Deg float64 `json:"over_50_deg"` + MedianDeg float64 `json:"median_deg"` +} + +type Report struct { + LandFraction float64 `json:"land_fraction"` + ClipFraction float64 `json:"clip_fraction"` + // Min and Max span the whole field, sea floor included, because that is what the 16-bit encoding has to + // fit. Land relief is the number that says anything about the terrain, and they are not the same: a + // -180 m sea floor flatters the relief by 180 m for free. + ReliefM float64 `json:"relief_m"` + MinM float64 `json:"min_m"` + MaxM float64 `json:"max_m"` + LandMinM float64 `json:"land_min_m"` + LandMaxM float64 `json:"land_max_m"` + LandReliefM float64 `json:"land_relief_m"` + Slopes Slopes `json:"slopes"` + SlopeArea SlopeArea `json:"slope_area"` + Hypsometry Hypsometry `json:"hypsometry"` + DrainageDensity float64 `json:"drainage_density_per_km"` + + // Buckets is the whole-map aggregates split by the uplift class that caused them; see UpliftBuckets. + // The map-wide median above cannot tell a mountain belt from a plain, and that is the question. + Buckets []UpliftBucket `json:"uplift_buckets"` +} + +// ComputeSlopeArea bins channel cells by log10 drainage area and takes the median slope in each bin, which +// is far more robust than the mean: one cliff cell in a bin drags a mean and leaves a median alone. +// +// S is the gradient *along the flow path*, (h - h_receiver) / L, not the magnitude of the topographic +// gradient. The difference is not pedantic: for a cell on a valley floor the central difference is dominated +// by the valley walls across the channel, which reads as a far steeper slope than the water actually runs +// down, and it bends the fitted exponent well past -m/n. The receiver gradient is the quantity the +// stream-power law is written in, so it is the quantity the plot has to use. +// kLocal is the per-cell erodibility multiplier from the lithology pass, and passing it matters as much as +// passing the uplift. Erodibility correlates with drainage area by construction: soft rock is cut down, so it +// sits low and collects flow, while hard rock stands up as ridges and drains little. Normalising every cell by +// one global K therefore mis-corrects the large-A end systematically and bends the fitted exponent — it read +// -1.23 against a true -0.50 on a landscape the solver had built correctly. Steady state is written in the +// local K, so the normalisation has to be too. +func ComputeSlopeArea(h *field.Field, area []float32, receiver []int32, length []float32, land []bool, + upliftMYr, kLocal []float32, k, n float64, thresholdM2 float64) SlopeArea { + const binsPerDecade = 4 + type acc struct{ norm, raw []float64 } + bins := map[int]*acc{} + count := 0 + for i := range h.Data { + if land != nil && !land[i] { + continue + } + r := receiver[i] + if int(r) == i { // a root drains to itself and has no gradient to measure + continue + } + a := float64(area[i]) + s := float64(h.Data[i]-h.Data[r]) / float64(length[i]) + if a < thresholdM2 || s <= 1e-6 { + continue + } + u := 0.0 + if upliftMYr != nil { + u = float64(upliftMYr[i]) + } + kk := k + if kLocal != nil { + kk *= float64(kLocal[i]) + } + if u <= 0 || kk <= 0 || n <= 0 { + continue // no steady state to normalise against + } + count++ + key := int(math.Floor(math.Log10(a) * binsPerDecade)) + b := bins[key] + if b == nil { + b = &acc{} + bins[key] = b + } + b.norm = append(b.norm, math.Log10(s/math.Pow(u/kk, 1/n))) + b.raw = append(b.raw, math.Log10(s)) + } + // Map iteration is randomised in Go, so the keys are sorted before anything reads them. Determinism is + // cross-cutting rule 12 and this is exactly where it would leak. + keys := make([]int, 0, len(bins)) + for k := range bins { + keys = append(keys, k) + } + sort.Ints(keys) + + out := SlopeArea{Expected: expectedGradient, Channels: count, ThreshKm2: thresholdM2 / 1e6} + var xs, normYs, rawYs []float64 + for _, key := range keys { + b := bins[key] + if len(b.norm) < 8 { // a bin with a handful of cells is noise, not a data point + continue + } + sort.Float64s(b.norm) + sort.Float64s(b.raw) + logA := (float64(key) + 0.5) / binsPerDecade + out.Bins = append(out.Bins, Bin{LogA: logA, LogS: b.norm[len(b.norm)/2], N: len(b.norm)}) + xs = append(xs, logA) + normYs = append(normYs, b.norm[len(b.norm)/2]) + rawYs = append(rawYs, b.raw[len(b.raw)/2]) + } + out.Exponent, out.R2 = fitLine(xs, normYs) + out.RawExponent, out.RawR2 = fitLine(xs, rawYs) + return out +} + +// expectedGradient is the -m/n the theory predicts, kept in one place so the verdict compares the fit against +// the exponents the run was actually configured with rather than against the defaults. +var expectedGradient = -0.5 + +// SetExpected is called once from the command before any report is computed. +func SetExpected(m, n float64) { + if n != 0 { + expectedGradient = -m / n + } +} + +// fitLine is an ordinary least-squares fit returning the gradient and R². +func fitLine(x, y []float64) (float64, float64) { + n := float64(len(x)) + if n < 3 { + return 0, 0 + } + var sx, sy, sxx, sxy float64 + for i := range x { + sx += x[i] + sy += y[i] + sxx += x[i] * x[i] + sxy += x[i] * y[i] + } + den := n*sxx - sx*sx + if math.Abs(den) < 1e-12 { + return 0, 0 + } + grad := (n*sxy - sx*sy) / den + intercept := (sy - grad*sx) / n + mean := sy / n + var ssRes, ssTot float64 + for i := range x { + pred := grad*x[i] + intercept + ssRes += (y[i] - pred) * (y[i] - pred) + ssTot += (y[i] - mean) * (y[i] - mean) + } + if ssTot < 1e-12 { + return grad, 0 + } + return grad, 1 - ssRes/ssTot +} + +func ComputeHypsometry(h *field.Field, land []bool) Hypsometry { + vals := make([]float64, 0, len(h.Data)) + for i, v := range h.Data { + if land != nil && !land[i] { + continue + } + vals = append(vals, float64(v)) + } + if len(vals) == 0 { + return Hypsometry{} + } + sort.Float64s(vals) + lo, hi := vals[0], vals[len(vals)-1] + span := hi - lo + if span < 1e-6 { + return Hypsometry{Integral: 0} + } + var sum float64 + for _, v := range vals { + sum += (v - lo) / span + } + curve := make([]float64, 11) + for i := 0; i <= 10; i++ { + target := lo + span*float64(i)/10 + // Fraction of land standing above this elevation. + idx := sort.SearchFloat64s(vals, target) + curve[i] = 1 - float64(idx)/float64(len(vals)) + } + return Hypsometry{Integral: sum / float64(len(vals)), Curve: curve} +} + +func ComputeSlopes(h *field.Field, land []bool) Slopes { + slope := h.Slope() + degs := make([]float64, 0, len(slope.Data)) + for i, s := range slope.Data { + if land != nil && !land[i] { + continue + } + degs = append(degs, math.Atan(float64(s))*180/math.Pi) + } + if len(degs) == 0 { + return Slopes{} + } + sort.Float64s(degs) + frac := func(limit float64) float64 { + return float64(sort.SearchFloat64s(degs, limit)) / float64(len(degs)) + } + return Slopes{ + Under15Deg: frac(15), + Under30Deg: frac(30), + Over50Deg: 1 - frac(50), + MedianDeg: degs[len(degs)/2], + } +} + +// DrainageDensity is channel length over basin area, per kilometre. Real landscapes sit around 1 to 10 /km; +// a value near zero means the solve never organised into channels at all. +func DrainageDensity(area []float32, land []bool, cellM float64, thresholdM2 float64) float64 { + var channels, total int + for i, a := range area { + if land != nil && !land[i] { + continue + } + total++ + if float64(a) >= thresholdM2 { + channels++ + } + } + if total == 0 { + return 0 + } + lengthKm := float64(channels) * cellM / 1000 + areaKm2 := float64(total) * cellM * cellM / 1e6 + if areaKm2 == 0 { + return 0 + } + return lengthKm / areaKm2 +} + +// Summary is the one block a run prints. Written so the numbers that decide whether the run was any good are +// the ones you see without asking. +func (r Report) Summary() string { + sa := r.SlopeArea + verdict := "no channels: the solve did not organise" + if sa.Channels > 0 && len(sa.Bins) >= 3 { + switch { + case sa.R2 >= 0.9 && math.Abs(sa.Exponent-sa.Expected) < 0.15: + verdict = "straight and at the expected gradient: stream power is doing its job" + case sa.R2 >= 0.9: + verdict = "straight but off gradient: K, m or n is wrong, or the run is too short" + default: + verdict = "scattered: not at steady state, or pits are routing badly" + } + } + hyp := "mature" + switch { + case r.Hypsometry.Integral > 0.6: + hyp = "convex: too young, or too much uplift" + case r.Hypsometry.Integral < 0.35: + hyp = "concave: over-eroded" + } + return fmt.Sprintf( + " field %.0f..%.0f m; land %.0f..%.0f m (relief %.0f m), %.0f%% land, %.2f%% clipped\n"+ + " slopes: %.0f%% under 15 deg, %.0f%% under 30, %.1f%% over 50, median %.1f deg\n"+ + " slope-area: exponent %.3f (expect %.3f), R2 %.3f over %d bins, %d channel cells above %.2f km2\n"+ + " unnormalised %.3f, R2 %.3f (heterogeneous uplift, so this one is expected to be worse)\n"+ + " %s\n"+ + " hypsometric integral %.3f (%s); drainage density %.2f /km\n"+ + "%s", + r.MinM, r.MaxM, r.LandMinM, r.LandMaxM, r.LandReliefM, r.LandFraction*100, r.ClipFraction*100, + r.Slopes.Under15Deg*100, r.Slopes.Under30Deg*100, r.Slopes.Over50Deg*100, r.Slopes.MedianDeg, + sa.Exponent, sa.Expected, sa.R2, len(sa.Bins), sa.Channels, sa.ThreshKm2, + sa.RawExponent, sa.RawR2, + verdict, r.Hypsometry.Integral, hyp, r.DrainageDensity, + BucketSummary(r.Buckets)) +} + +// Uplift buckets: the measurement that decides whether a plain is a plain. +// +// Every aggregate above is taken over the whole land mask, and that is exactly what hid the problem this +// bucketing was added to find. A continent whose mountains are at 35 degrees and whose plains are at 32 +// reports a median of 31 and looks, from the summary, like a mountainous map — which it is, but not for the +// reason anyone assumed. Splitting by the uplift rate that *caused* the slope separates the two questions: +// "are the mountains right" and "are the plains plains". +// +// Uplift is the right axis rather than elevation. Elevation is the output of the solve, so bucketing by it +// mixes a low mountain valley in with a plain and moves the boundary every time a constant changes; uplift +// is an input, fixed before the first step, and it is the term that sets steady-state slope through +// S = U/(K*A^m). A cell's bucket therefore does not move when the run does. + +// UpliftBucket is one class of the uplift field and what the landscape did with it. +type UpliftBucket struct { + Name string `json:"name"` + LoMmYr float64 `json:"lo_mm_yr"` + HiMmYr float64 `json:"hi_mm_yr"` + LandFrac float64 `json:"land_fraction"` // share of land in this bucket + MedianDeg float64 `json:"median_deg"` + P90Deg float64 `json:"p90_deg"` + MedianRelM float64 `json:"median_relief_m"` // local relief, max-min over the window below + WindowM float64 `json:"relief_window_m"` + NearTalus float64 `json:"near_talus_fraction"` // within 2 degrees of the angle of repose + MedianElevM float64 `json:"median_elev_m"` + Cells int `json:"cells"` +} + +// UpliftBuckets splits the land by rock uplift rate and reports slope, local relief and how much of each +// bucket is pinned against the repose clamp. The last of those is the diagnostic: a bucket where most cells +// sit within two degrees of talus is not being shaped by erosion at all, it is being shaped by the clamp, +// and no amount of tuning downstream of that will change what it looks like. +// +// reliefWindowM is the side of the square the local relief is taken over; 500 m is the usual choice and is +// what the caller passes. +func UpliftBuckets(h *field.Field, upliftMYr []float32, land []bool, talusDeg, reliefWindowM float64) []UpliftBucket { + // The class boundaries are in mm/yr and are deliberately absolute rather than percentiles of this map's + // own field: the point is to compare one run against the next, and a percentile split would redefine + // "plain" every time the uplift field was retuned. + defs := []struct { + name string + lo, hi float64 + }{ + {"plain", 0, 0.1}, + {"rolling", 0.1, 0.5}, + // The top bound is finite rather than +Inf only because the report is marshalled to meta.json and + // encoding/json refuses an infinity. 100 mm/yr is an order of magnitude above anything on Earth. + {"mountain", 0.5, 100}, + } + if upliftMYr == nil { + return nil + } + slope := h.Slope() + radius := int(math.Round(reliefWindowM / h.CellM / 2)) + if radius < 1 { + radius = 1 + } + type acc struct { + deg, rel, elev []float64 + near, total int + } + accs := make([]acc, len(defs)) + landCells := 0 + for i := range h.Data { + if land != nil && !land[i] { + continue + } + landCells++ + u := float64(upliftMYr[i]) * 1000 // mm/yr + b := -1 + for j, d := range defs { + if u >= d.lo && u < d.hi { + b = j + break + } + } + if b < 0 { + continue + } + a := &accs[b] + deg := math.Atan(float64(slope.Data[i])) * 180 / math.Pi + a.deg = append(a.deg, deg) + a.elev = append(a.elev, float64(h.Data[i])) + a.rel = append(a.rel, localRelief(h, i%h.W, i/h.W, radius)) + a.total++ + if deg >= talusDeg-2 { // pinned against the clamp rather than shaped by erosion + a.near++ + } + } + + out := make([]UpliftBucket, 0, len(defs)) + for j, d := range defs { + a := &accs[j] + if a.total == 0 { + continue + } + sort.Float64s(a.deg) + sort.Float64s(a.rel) + sort.Float64s(a.elev) + out = append(out, UpliftBucket{ + Name: d.name, LoMmYr: d.lo, HiMmYr: d.hi, + LandFrac: float64(a.total) / float64(max(landCells, 1)), + MedianDeg: a.deg[len(a.deg)/2], + P90Deg: a.deg[min(len(a.deg)*9/10, len(a.deg)-1)], + MedianRelM: a.rel[len(a.rel)/2], + WindowM: float64(radius*2) * h.CellM, + NearTalus: float64(a.near) / float64(a.total), + MedianElevM: a.elev[len(a.elev)/2], + Cells: a.total, + }) + } + return out +} + +// localRelief is max minus min over a square window, the standard field measure of how rugged a place is. +// Slope alone cannot tell a 5 m hummock from a 500 m mountainside, because both can stand at 30 degrees. +func localRelief(h *field.Field, cx, cy, radius int) float64 { + lo, hi := math.Inf(1), math.Inf(-1) + for y := cy - radius; y <= cy+radius; y++ { + for x := cx - radius; x <= cx+radius; x++ { + v := float64(h.AtClamped(x, y)) + if v < lo { + lo = v + } + if v > hi { + hi = v + } + } + } + return hi - lo +} + +// BucketSummary is the block the buckets print. Kept separate from Summary so a run that has no uplift field +// to hand still prints the rest. +func BucketSummary(bs []UpliftBucket) string { + if len(bs) == 0 { + return "" + } + s := " by uplift class:\n" + for _, b := range bs { + hi := fmt.Sprintf("%.2f", b.HiMmYr) + if b.HiMmYr >= 100 { + hi = " up" + } + s += fmt.Sprintf(" %-9s %.2f..%s mm/yr %4.0f%% of land slope %4.1f deg median, %4.1f P90 "+ + "relief %5.0f m/%.0f m at talus %4.0f%% median %.0f m\n", + b.Name, b.LoMmYr, hi, b.LandFrac*100, b.MedianDeg, b.P90Deg, b.MedianRelM, b.WindowM, + b.NearTalus*100, b.MedianElevM) + } + return s +} diff --git a/Tools/Terrain/internal/thermal/thermal.go b/Tools/Terrain/internal/thermal/thermal.go new file mode 100644 index 0000000..35ddb70 --- /dev/null +++ b/Tools/Terrain/internal/thermal/thermal.go @@ -0,0 +1,136 @@ +// Package thermal is mass-conserving thermal weathering at an angle of repose: where a cell stands above a +// neighbour by more than the angle allows, material slides down. +// +// It is not decoration, and this is worth stating because it looks like decoration. Stream power puts *no +// upper bound* on hillslope angle: the steady state S = (U/K)^(1/n) * A^(-m/n) is evaluated per cell, and a +// cell next to a divide drains one cell, so A is tiny and S is enormous. Raising the intraplate uplift rate +// to give the plains some relief therefore made every hillslope on the map proportionally steeper, and the +// median slope went from 10 to 39 degrees. What limits a real hillslope is not fluvial incision, it is +// landsliding, and this is landsliding. +// +// Ported from heightmap_erosion.thermal, including the lesson attached to it: shed half the *largest* excess +// rather than half the mean, because the mean converges far slower. Mass is conserved, so a cliff keeps its +// face and scree gathers at its foot instead of evaporating. +package thermal + +import ( + "math" + + "salty/terrain/internal/field" +) + +var ( + dx8 = [8]int{-1, 0, 1, -1, 1, -1, 0, 1} + dy8 = [8]int{-1, -1, -1, 0, 0, 1, 1, 1} +) + +// Apply runs `passes` iterations over h in place. talus is the maximum slope as rise over run (tan of the +// angle of repose). fixed marks cells that may not move, which is base level. +// +// Each pass reads h and writes a delta, then applies it: no cell is read after any cell has been written, so +// the result does not depend on the order the rows were processed and the parallel version is identical to +// the serial one. +func Apply(h []float32, w, hgt int, cellM, talus float64, passes int, fixed []bool, scratch []float32) { + if passes <= 0 || talus <= 0 { + return + } + delta := scratch[:len(h)] + card := cellM + diag := cellM * math.Sqrt2 + + for p := 0; p < passes; p++ { + for i := range delta { + delta[i] = 0 + } + // Deltas are accumulated per source cell into a private view; each row range owns its own writes for + // the cell it is standing on, and the neighbour credits are gathered rather than scattered, which is + // what keeps this free of races without a lock. + field.Rows(hgt, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < w; x++ { + i := y*w + x + // Gather: how much this cell RECEIVES from higher neighbours, and how much it sheds. + var give, take float64 + if fixed == nil || !fixed[i] { + give = shed(h, w, hgt, x, y, card, diag, talus) + } + take = 0 + for k := 0; k < 8; k++ { + nx, ny := x+dx8[k], y+dy8[k] + if nx < 0 || ny < 0 || nx >= w || ny >= hgt { + continue + } + ni := ny*w + nx + if fixed != nil && fixed[ni] { + continue + } + // The share this cell gets of that neighbour's shed material. + if share := shedShare(h, w, hgt, nx, ny, i, card, diag, talus); share > 0 { + take += share + } + } + delta[i] = float32(take - give) + } + } + }) + for i := range h { + h[i] += delta[i] + } + } +} + +// shed is the total a cell gives away this pass: half the largest excess over the angle of repose. +func shed(h []float32, w, hgt, x, y int, card, diag, talus float64) float64 { + i := y*w + x + maxExcess := 0.0 + for k := 0; k < 8; k++ { + nx, ny := x+dx8[k], y+dy8[k] + if nx < 0 || ny < 0 || nx >= w || ny >= hgt { + continue + } + d := card + if dx8[k] != 0 && dy8[k] != 0 { + d = diag + } + if e := float64(h[i]-h[ny*w+nx]) - talus*d; e > maxExcess { + maxExcess = e + } + } + return maxExcess / 2 +} + +// shedShare is how much of cell (x, y)'s shed material lands on cell target, proportional to target's share +// of the total excess below it. +func shedShare(h []float32, w, hgt, x, y, target int, card, diag, talus float64) float64 { + i := y*w + x + maxExcess, total, mine := 0.0, 0.0, 0.0 + for k := 0; k < 8; k++ { + nx, ny := x+dx8[k], y+dy8[k] + if nx < 0 || ny < 0 || nx >= w || ny >= hgt { + continue + } + d := card + if dx8[k] != 0 && dy8[k] != 0 { + d = diag + } + ni := ny*w + nx + e := float64(h[i]-h[ni]) - talus*d + if e <= 0 { + continue + } + if e > maxExcess { + maxExcess = e + } + total += e + if ni == target { + mine = e + } + } + if total <= 0 || mine <= 0 { + return 0 + } + return (maxExcess / 2) * (mine / total) +} + +// TalusFromDegrees converts an angle of repose to the rise-over-run the solver wants. +func TalusFromDegrees(deg float64) float64 { return math.Tan(deg * math.Pi / 180) } diff --git a/Tools/Terrain/internal/thermal/thermal_test.go b/Tools/Terrain/internal/thermal/thermal_test.go new file mode 100644 index 0000000..23f10f2 --- /dev/null +++ b/Tools/Terrain/internal/thermal/thermal_test.go @@ -0,0 +1,73 @@ +package thermal + +import ( + "math" + "testing" +) + +// TestConeIsCutToRepose is the property the whole hillslope story rests on: after enough passes nothing may +// stand steeper than the angle of repose. A cone is the worst case, because every cell on it is steep. +func TestConeIsCutToRepose(t *testing.T) { + const ( + w, h = 101, 101 + cellM = 10.0 + deg = 33.0 + ) + talus := TalusFromDegrees(deg) + field := make([]float32, w*h) + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + // A steep cone: 60 m of fall per 10 m cell at the flanks, far beyond repose. + d := math.Hypot(float64(x-w/2), float64(y-h/2)) + field[y*w+x] = float32(math.Max(0, 600-6*d*cellM)) + } + } + before := maxSlope(field, w, h, cellM) + scratch := make([]float32, w*h) + + volBefore := sum(field) + Apply(field, w, h, cellM, talus, 400, nil, scratch) + volAfter := sum(field) + + after := maxSlope(field, w, h, cellM) + t.Logf("max slope %.1f deg -> %.1f deg (repose %.1f)", degOf(before), degOf(after), deg) + if degOf(after) > deg+2 { + t.Errorf("after 400 passes the steepest slope is %.1f deg, want no more than %.1f", degOf(after), deg+2) + } + if rel := math.Abs(volAfter-volBefore) / volBefore; rel > 1e-4 { + t.Errorf("mass changed by %.4f%%; thermal weathering must conserve it", rel*100) + } +} + +func sum(a []float32) float64 { + var s float64 + for _, v := range a { + s += float64(v) + } + return s +} + +func degOf(slope float64) float64 { return math.Atan(slope) * 180 / math.Pi } + +func maxSlope(a []float32, w, h int, cellM float64) float64 { + worst := 0.0 + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + i := y*w + x + for k := 0; k < 8; k++ { + nx, ny := x+dx8[k], y+dy8[k] + if nx < 0 || ny < 0 || nx >= w || ny >= h { + continue + } + d := cellM + if dx8[k] != 0 && dy8[k] != 0 { + d = cellM * math.Sqrt2 + } + if s := float64(a[i]-a[ny*w+nx]) / d; s > worst { + worst = s + } + } + } + } + return worst +} diff --git a/Tools/Terrain/internal/uplift/uplift.go b/Tools/Terrain/internal/uplift/uplift.go new file mode 100644 index 0000000..1cd303a --- /dev/null +++ b/Tools/Terrain/internal/uplift/uplift.go @@ -0,0 +1,482 @@ +// Package uplift builds what the fluvial solve integrates: a rock uplift rate field in metres per year, an +// erodibility field, a continent mask that says where the sea is, and a small initial relief to break the +// symmetry. +// +// This is heightmap_noise.generate_metres turned inside out (D-47). The numpy version produced the terrain: +// ranges to 2600 m, foothills, plains, and erosion was applied to it afterwards as decoration. Here the same +// shapes produce an uplift *rate*, and the terrain is whatever the stream-power solve makes of it. The +// percentile thresholding is kept exactly, because it is what makes the result seed-independent. +// +// The coast is kept (D-48). Sea level is the base level on every ocean cell, which is a far better-posed +// boundary for the solve than a single outlet edge and removes the artificial divide a one-outlet map has +// along three of its sides. This package decides *where* the coastline runs and nothing else about it; what +// the shoreline and the sea floor then look like belongs to package coast, which runs after the solve. +// +// # Why the plains need their own uplift, and not a flat one +// +// The first version gave the whole intraplate interior one uniform rate, 0.2 mm/yr against a convergent +// 5 mm/yr. That produced a table-flat green void with a polygonal river network scribbled across it, and the +// network was an artifact rather than drainage. Two reasons, and they are the same reason twice: +// +// - Steady state is S = U/(K*A^m). On a plain A is large and U was tiny, so S collapsed to nothing. +// - Uniform uplift over a wide area produces no *divides*. With no divides there is no drainage to find, +// so the router fell back on the only gradient present, which was the priority-flood's millimetre of +// epsilon, and drew the flood's own traversal geometry as rivers. +// +// Real intraplate regions are not uniform. They warp gently over tens of kilometres into swells and sags, and +// that warping is what puts divides on a plain. So the intraplate rate is modulated by a long-wavelength +// field. +// +// # And why the rate itself must stay low +// +// The first attempt at the above did the right thing and then overdid it: the plains were lifted to +// 0.25-0.9 mm/yr, on the reasoning that a higher rate sustains more relief against K. It does, but relief is +// not the quantity that was in trouble. Steady state is S = U/(K*A^m), and with no critical area that holds +// down to a single cell, so every divide stands at A = cell² whatever else is true of it. At the defaults +// that made 0.25 mm/yr a 32 degree hillslope and 0.9 mm/yr one past the angle of repose — so the repose clamp, +// which is meant to be a mountain process, became the surface of the whole continent. Measured: 81 % of the +// land fell in the >0.5 mm/yr class and the plains held 1 %. +// +// The lesson is that U and S are not two knobs. For n = 1, U alone fixes the hillslope angle at a given A, +// and the only things that make a plain flat are a low U or a large A. So the intraplate rate is an order of +// magnitude lower than it was and the *variation* carries the divides, which is what it was for. The +// mountain-to-plain ratio is 30-fold and up, which is what real ones are. +// +// # Where the land ends does not decide how fast it is rising +// +// The uplift rate used to be multiplied by the continent mask, which is a smoothstep, so it tapered to zero +// across the shore. That made every coastline on the map the lowest-uplift ground on the map, by construction +// and whatever the tectonics said — and since steady state is S = U/(K*A^m), ground with no uplift grades to +// no slope, so every coast was a plain. It is why the coastal pass measured a mean sea cliff of two metres +// while working perfectly: there was nothing anywhere on the map for the surf to cut into. +// +// The two questions are not the same question. The mask answers "is this cell sea", which is a yes or a no and +// is what the solve needs for its base level. The uplift field answers "how fast is this rock rising", and a +// range that happens to run out to the water is rising at range rates right up to the waterline — which is +// what Big Sur, the Norwegian west coast and the Great Australian Bight all are. So the mask is thresholded +// rather than multiplied, and whether a given coast is a cliff or a plain is now decided by where the range +// band falls relative to the coastline, which is exactly the sort of thing that should be decided by the +// tectonics and not by a smoothstep. +package uplift + +import ( + "math" + + "salty/terrain/internal/field" + "salty/terrain/internal/manifest" + "salty/terrain/internal/noise" +) + +type Result struct { + Rate *field.Field // rock uplift, metres per year + Height *field.Field // initial relief, metres; ocean cells sit at sea level and stay there for the solve + Land *field.Field // continent mask, 0 at sea, 1 inland + K *field.Field // erodibility multiplier from the lithology pass, around 1 + Base []bool // cells fixed at base level: the ocean + + Faults []Fault +} + +// Fault is a recorded trace, kept for meta.json and for whatever later wants to draw one. +type Fault struct { + Points [][2]float64 `json:"points"` // map coordinates, 0..1 + ThrowM float64 `json:"throw_m"` + Major bool `json:"major"` + Reverse bool `json:"reverse"` // which side goes up +} + +// seaThreshold is where the continent mask stops being land. The mask is a smoothstep, so it has a ramp, and +// this is the one place that ramp is turned into the yes-or-no answer the solve needs: a cell is either an +// ocean cell held at base level or it is not. +// +// It is a named constant rather than a literal in two loops because the rate field and the height field have +// to agree about it exactly. If they ever disagreed, a cell would be uplifted and then pinned at base level, +// or held at sea level while taking no uplift, and neither would be visible in anything a run prints. +const seaThreshold = 0.02 + +// Pass indices for the seeded sources. Fixed and never reordered: a pass keeps its own stream so that +// inserting a later pass does not reshuffle the ones before it (cross-cutting rule 12). +const ( + srcContinent = 1 + srcWarp = 2 + srcBand = 3 + srcRidges = 4 + srcCrests = 5 + srcRelief = 6 + srcSwell = 7 + srcFaults = 8 + srcLithology = 9 +) + +// Build produces the geology-grid inputs at size x size. +func Build(size int, cellM float64, m *manifest.Manifest) *Result { + seed := m.Source.Seed + cfg := m.Pipeline + sideM := float64(size-1) * cellM + u, v := noise.Identity(size) + + // A low-frequency warp bends everything that follows, so ridges curve and ranges are not blobs. + ws := noise.NewSource(seed, srcWarp) + wx := noise.FBM(size, ws, noise.Params{BaseCells: 3, Octaves: 3, Gain: 0.5}) + wy := noise.FBM(size, ws, noise.Params{BaseCells: 3, Octaves: 3, Gain: 0.5}) + + land := continentMask(size, u, v, wx, wy, seed, cfg.Continent) + + // Ranges: an elongated, warped band says where they run, stretched across its grain so they come as long + // chains rather than patches. Thresholded by percentile, not by value, which is the whole trick. + bs := noise.NewSource(seed, srcBand) + angle := bs.Range(0, math.Pi) + cos, sin := math.Cos(angle), math.Sin(angle) + bu := field.NewLike(u) + bv := field.NewLike(v) + for i := range bu.Data { + x := float64(u.Data[i]) - 0.5 + y := float64(v.Data[i]) - 0.5 + along := x*cos + y*sin + across := -x*sin + y*cos + bu.Data[i] = float32(0.5 + along*0.7 + float64(wx.Data[i]-0.5)*0.32) + bv.Data[i] = float32(0.5 + across*2.2 + float64(wy.Data[i]-0.5)*0.32) + } + band := noise.FBMAt(bu, bv, bs, noise.Params{BaseCells: 3, Octaves: 3, Gain: 0.5}) + rangeMask := percentileMask(band, cfg.Plates.LowUpliftFraction.Hi()*100, 86) + + // The regional swell: long-wavelength warping of the intraplate interior, which is what puts divides on + // a plain. Without it the lowlands have no drainage of their own and the flood's epsilon decides where + // the water goes. + ss := noise.NewSource(seed, srcSwell) + swu, swv := noise.Warp(u, v, wx, wy, 0.10) + swell := noise.FBMAt(swu, swv, ss, noise.Params{BaseCells: 2, Octaves: 4, Gain: 0.5}) + swell.Normalise() + + // Rock uplift in metres per year. + intraLo := cfg.Plates.IntraplateMmYr / 1000 + intraHi := cfg.Plates.IntraplateSwellMmYr / 1000 + if intraHi < intraLo { + intraHi = intraLo + } + convergent := cfg.Plates.ConvergentMmYr.Hi() / 1000 + rate := field.New(size, size, cellM) + for i := range rate.Data { + if land.Data[i] <= seaThreshold { + // Ocean. The rate is zeroed for the sake of map_uplift and the statistics; the solve does not + // need it, because a base cell is fixed and StreamPower skips it before it reads the rate. + rate.Data[i] = 0 + continue + } + base := intraLo + (intraHi-intraLo)*float64(swell.Data[i]) + rate.Data[i] = float32(base + (convergent-base)*float64(rangeMask.Data[i])) + } + + faults := buildFaults(rate, u, v, seed, angle, sideM, cfg.Faults, cfg.Plates.ConvergentMmYr.Hi()/1000, + float64(cfg.Fluvial.Steps)*cfg.Fluvial.DtYr) + + // Lithology: a plan-view erodibility field. It is what stops every ridge in a range looking like every + // other ridge, because a hard band resists and a soft one is cut away. + k := lithology(size, cellM, u, v, wx, wy, seed, cfg.Lithology) + + // Initial relief: small on purpose. The spec says 50-150 m x normalised uplift and it means it; the + // solve is what produces relief, and handing it 2600 m of ridged noise means it spends its whole run + // tearing that down instead of carving. + rs := noise.NewSource(seed, srcRidges) + wu, wv := noise.Warp(u, v, wx, wy, 0.16) + ridges := noise.FBMAt(wu, wv, rs, noise.Params{BaseCells: 5, Octaves: 6, Gain: 0.42, Ridged: true}) + ridges.Normalise() + cs := noise.NewSource(seed, srcCrests) + cu, cv := noise.Warp(u, v, wx, wy, 0.224) // the stronger warp the crest lines need + crests := noise.CellularEdges(cu, cv, cs, 14, 0.95) + + ps := noise.NewSource(seed, srcRelief) + plains := noise.FBM(size, ps, noise.Params{BaseCells: 6, Octaves: 4, Gain: 0.45}) + + ampLo := cfg.Relief.AmplitudeM.Lo() + ampHi := cfg.Relief.AmplitudeM.Hi() + crestW := cfg.Relief.CrestWeight + maxRate := convergent + if maxRate <= 0 { + maxRate = 1 + } + height := field.New(size, size, cellM) + base := make([]bool, size*size) + for i := range height.Data { + if land.Data[i] <= seaThreshold { + // Ocean: base level, fixed, never eroded, never uplifted, and held at sea level for the whole + // solve. The sea floor is not laid here and deliberately not laid *yet* — a coastal cell drains + // into an ocean cell, and if that cell already sat at -180 m the solver would cut the river down + // to -180 m, because that is the base level it was handed. The first run with a coast eroded the + // land to 174 m below sea level for exactly that reason. Package coast lays the sea floor after + // the solve, where it also has the relief it needs to decide how wide the shelf is. + height.Data[i] = float32(m.SeaLevelM) + base[i] = true + continue + } + norm := float64(rate.Data[i]) / maxRate // normalised uplift, 0..1 + amp := ampLo + (ampHi-ampLo)*norm + shape := (1-crestW)*float64(ridges.Data[i]) + crestW*float64(crests.Data[i]) + height.Data[i] = float32(m.SeaLevelM + 20 + amp*shape + float64(plains.Data[i])*8) + } + + return &Result{Rate: rate, Height: height, Land: land, K: k, Base: base, Faults: faults} +} + +// percentileMask thresholds a field between two percentiles and smoothsteps between them, so the fraction of +// the map it covers is the same whatever the seed. +func percentileMask(f *field.Field, loPct, hiPct float64) *field.Field { + lo := f.Percentile(loPct) + hi := f.Percentile(hiPct) + span := float64(hi - lo) + if span < 1e-6 { + span = 1e-6 + } + out := field.NewLike(f) + for i, b := range f.Data { + t := (float64(b) - float64(lo)) / span + if t < 0 { + t = 0 + } else if t > 1 { + t = 1 + } + out.Data[i] = float32(noise.Smoothstep(t)) + } + return out +} + +// continentMask is the coast. A radial falloff with noise added to the radius gives a disc with a wobbly +// edge, which is what the first version did and what it looked like. Instead a warped multi-octave field is +// biased radially and then thresholded at the percentile that yields the wanted land fraction: the coastline +// gets bays, peninsulas and offshore deeps, and the land area is still the same whatever the seed. +func continentMask(size int, u, v, wx, wy *field.Field, seed int64, cfg manifest.Continent) *field.Field { + out := field.New(size, size, 1) + if !cfg.Enabled { + out.Fill(1) + return out + } + s := noise.NewSource(seed, srcContinent) + cx := 0.5 + (s.Float()-0.5)*0.12 + cy := 0.5 + (s.Float()-0.5)*0.12 + + // Strong domain warp, so the shape is not obviously built from a circle. + // + // The octave count is the coastline's own detail and it is a manifest key because it is the one number + // that decides whether the continent has a coast or an outline: five octaves over this map is a 450 m + // finest feature, which is a smooth blob, and everything downstream that asks "is this stretch sheltered" + // then answers "no" everywhere. Gain stays at 0.5 rather than the 0.42 the *relief* noise uses, because + // this field is thresholded at a percentile rather than read as a height, so a steep spectrum costs + // nothing here and is what makes the shoreline crenellate. + cu, cv := noise.Warp(u, v, wx, wy, cfg.CoastWarp) + octaves := cfg.OutlineOctaves + if octaves < 1 { + octaves = 5 + } + gain := cfg.OutlineGain + if gain <= 0 { + gain = 0.5 + } + shape := noise.FBMAt(cu, cv, s, noise.Params{BaseCells: 2, Octaves: octaves, Gain: gain}) + + // The radial term only biases the field towards the middle; it does not define the edge. + score := field.New(size, size, 1) + for i := range score.Data { + x := float64(u.Data[i]) - cx + y := float64(v.Data[i]) - cy + radius := math.Hypot(x*1.05, y*0.95) / cfg.Radius + score.Data[i] = float32(float64(shape.Data[i]) - cfg.RadialBias*radius*radius) + } + + // The threshold that yields the wanted land fraction, read off the distribution. + seaPct := (1 - cfg.LandFraction) * 100 + lo := score.Percentile(seaPct) + hi := score.Percentile(math.Min(99.9, seaPct+cfg.ShoreWidthPct)) + span := float64(hi - lo) + if span < 1e-6 { + span = 1e-6 + } + for i, sc := range score.Data { + t := (float64(sc) - float64(lo)) / span + if t < 0 { + t = 0 + } else if t > 1 { + t = 1 + } + out.Data[i] = float32(noise.Smoothstep(t)) + } + + // The last few percent of the map is forced to sea, so land never touches the edge. + // + // This is not cosmetic. A border cell is an outlet: it takes no uplift, is never eroded, and the repose + // clamp will not lower it either, so any land that reaches the edge is frozen at whatever height the + // initial relief gave it while the interior erodes away beneath it. The result is a rim of untouched + // terrain standing over a hundred metres above its neighbour — which is exactly what the repose test + // found when it reported a 66 degree slope on a map whose angle of repose was 22. Percentile + // thresholding picks the lowest fraction of the *score* and has no reason to put it at the edges, so the + // margin has to be imposed. + const marginFrac = 0.04 + for i := range out.Data { + x := float64(i%size) / float64(size-1) + y := float64(i/size) / float64(size-1) + d := math.Min(math.Min(x, 1-x), math.Min(y, 1-y)) + if d < marginFrac { + out.Data[i] *= float32(noise.Smoothstep(math.Max(0, d/marginFrac))) + } + } + return out +} + +// lithology is the spec's 4.3: low-frequency noise thresholded into a few rock types, each with its own +// erodibility. Plan view, and orthogonal to the strata model that scales the particle pass by depth. +func lithology(size int, cellM float64, u, v, wx, wy *field.Field, seed int64, cfg manifest.Lithology) *field.Field { + out := field.New(size, size, cellM) + if cfg.Types <= 1 || len(cfg.KMultipliers) == 0 { + out.Fill(1) + return out + } + s := noise.NewSource(seed, srcLithology) + lu, lv := noise.Warp(u, v, wx, wy, 0.18) + f := noise.FBMAt(lu, lv, s, noise.Params{BaseCells: 3, Octaves: 4, Gain: 0.5}) + + n := cfg.Types + if n > len(cfg.KMultipliers) { + n = len(cfg.KMultipliers) + } + // Equal-area bands, so every rock type actually appears whatever the seed. + edges := make([]float32, n-1) + for i := 1; i < n; i++ { + edges[i-1] = f.Percentile(float64(i) / float64(n) * 100) + } + for i, val := range f.Data { + t := 0 + for t < len(edges) && val > edges[t] { + t++ + } + out.Data[i] = float32(cfg.KMultipliers[t]) + } + // Softened, so a boundary is a transition rather than a wall the solver carves into a cliff. + return out.Blur(2) +} + +// buildFaults perturbs the uplift field across a set of traces. Normal faults are applied as an uplift-rate +// *difference* across the trace, steep on one side and gentle on the other, and erosion then carves the +// escarpment; that is the spec's 4.2 and it is why a fault reads as landscape rather than as a drawn line. +// +// Orientation follows the range grain rather than being random, because a fault set that ignores the +// structure it belongs to looks like scratches. +func buildFaults(rate, u, v *field.Field, seed int64, grainAngle, sideM float64, + cfg manifest.Faults, convergent, runYears float64) []Fault { + s := noise.NewSource(seed, srcFaults) + if runYears <= 0 { + runYears = 1.5e6 + } + + nMajor := int(cfg.Major.Pick(s.Float()) + 0.5) + nMinor := int(cfg.Minor.Pick(s.Float()) + 0.5) + faults := make([]Fault, 0, nMajor+nMinor) + + for i := 0; i < nMajor+nMinor; i++ { + major := i < nMajor + lengthM := cfg.LengthKm.Pick(s.Float()) * 1000 + if major { + lengthM = math.Max(lengthM, cfg.LengthKm.Hi()*1000*0.6) + } + throw := cfg.ThrowMinorM.Pick(s.Float()) + if major { + throw = cfg.ThrowMajorM.Pick(s.Float()) + } + // Parallel to the grain, with a little scatter: never a random orientation. + a := grainAngle + (s.Float()-0.5)*0.6 + cx, cy := s.Float(), s.Float() + half := lengthM / sideM / 2 + + // A polyline, gently curved by low-frequency wander rather than a straight segment. + const segs = 8 + pts := make([][2]float64, segs+1) + wander := (s.Float() - 0.5) * 0.5 + for j := 0; j <= segs; j++ { + t := float64(j)/segs*2 - 1 // -1..1 + off := wander * (1 - t*t) // zero at the tips, largest in the middle + px := cx + math.Cos(a)*half*t - math.Sin(a)*half*off + py := cy + math.Sin(a)*half*t + math.Cos(a)*half*off + pts[j] = [2]float64{px, py} + } + faults = append(faults, Fault{Points: pts, ThrowM: throw, Major: major, Reverse: s.Float() < 0.5}) + } + + // Throw is a total displacement over the run, so it becomes a rate the solve can integrate. + steepM := 200.0 + gentleM := 2000.0 + field.Rows(rate.H, func(y0, y1 int) { + for y := y0; y < y1; y++ { + for x := 0; x < rate.W; x++ { + i := y*rate.W + x + px := float64(u.Data[i]) + py := float64(v.Data[i]) + var delta float64 + for _, f := range faults { + d, inside := signedDistance(px, py, f.Points) + if !inside { + continue + } + dm := d * sideM + sign := 1.0 + if f.Reverse { + sign = -1 + } + // Steep side falls off fast, gentle side slowly: an asymmetric block, not a ridge. + var w float64 + if dm*sign >= 0 { + w = math.Exp(-math.Abs(dm) / steepM) + } else { + w = -math.Exp(-math.Abs(dm) / gentleM) + } + delta += f.ThrowM / runYears * w + } + if delta != 0 { + r := float64(rate.Data[i]) + delta + if r < 0 { + r = 0 + } + if r > convergent*1.6 { + r = convergent * 1.6 + } + rate.Data[i] = float32(r) + } + } + } + }) + return faults +} + +// signedDistance is the perpendicular distance from a point to a polyline, signed by which side it falls on, +// in map units. inside is false beyond the ends, where a fault has no effect. +func signedDistance(px, py float64, pts [][2]float64) (float64, bool) { + best := math.Inf(1) + sign := 1.0 + found := false + for j := 0; j+1 < len(pts); j++ { + ax, ay := pts[j][0], pts[j][1] + bx, by := pts[j+1][0], pts[j+1][1] + dx, dy := bx-ax, by-ay + l2 := dx*dx + dy*dy + if l2 < 1e-12 { + continue + } + t := ((px-ax)*dx + (py-ay)*dy) / l2 + if t < 0 || t > 1 { + continue // beyond this segment; a neighbouring one may still claim the point + } + found = true + projx, projy := ax+t*dx, ay+t*dy + d := math.Hypot(px-projx, py-projy) + if d < best { + best = d + // Cross product decides the side. + if (px-ax)*dy-(py-ay)*dx < 0 { + sign = -1 + } else { + sign = 1 + } + } + } + if !found { + return 0, false + } + return best * sign, true +}