Jump to content

Micah Holmes

Vintarian
  • Posts

    200
  • Joined

  • Last visited

Everything posted by Micah Holmes

  1. Making my first crop and having a issue. It looks like the crop is not attached to the stem of the plant: also noticed on stage 5 and 6 its not using the correct texture. corn code: { code: "craftsmanship:crop", class: "BlockCrop", behaviors: [{name: "Unstable"}], variantgroups: [ { code: "type", states: ["corn"] }, { code: "stage", states: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10" ] }, ], creativeinventory: { "general": [""], "plants": [""] }, renderpass: "OpaqueNoCull", shape: { base: "block/crop/corn/stage{stage}" }, texturesByType: { "*-1": { "stalk": { "base": "block/corn/stalk1" }, "leaf": { "base": "block/corn/leaf1" } }, "*-2": { "stalk": { "base": "block/corn/stalk1" }, "leaf": { "base": "block/corn/leaf1" } }, "*-3": { "stalk": { "base": "block/corn/stalk1" }, "leaf": { "base": "block/corn/leaf1" } }, "*-4": { "stalk": { "base": "block/corn/stalk1" }, "leaf": { "base": "block/corn/leaf1" }, "corn": { "base": "block/corn/corn1" } }, "*-5": { "stalk": { "base": "block/corn/stalk1" }, "leaf": { "base": "block/corn/leaf1" }, "corn": { "base": "block/corn/corn1" } }, "*-6": { "stalk": { "base": "block/corn/stalk1" }, "leaf": { "base": "block/corn/leaf1" }, "corn": { "base": "block/corn/corn1" } }, "*-7": { "stalk": { "base": "block/corn/stalk1" }, "leaf": { "base": "block/corn/leaf1" }, "corn": { "base": "block/corn/corn1" } }, "*-8": { "stalk": { "base": "block/corn/stalk2" }, "leaf": { "base": "block/corn/leaf2" }, "corn": { "base": "block/corn/corn2" } }, "*-9": { "stalk": { "base": "block/corn/stalk3" }, "leaf": { "base": "block/corn/leaf3" }, "corn": { "base": "block/corn/corn3" } }, "*-10": { "stalk": { "base": "block/corn/stalk4" }, "leaf": { "base": "block/corn/leaf4" }, "corn": { "base": "block/corn/corn4" } } }, blockmaterial: "Plant", faceCullMode: "NeverCull", randomizeRotations: true, attributes: { foodTagsByType: { "*-1": ["nibbleCrop"], "*-2": ["nibbleCrop"], "*-3": ["nibbleCrop"] }, butterflyFeedByType: { "*-1": false, "*-2": false, "*-3": false, "*-12": false, "*": true }, beeFeedByType: { "*-1": false, "*-2": false, "*-3": false, "*-10": false, "*": true }, sitHeight: 0.9, tickGrowthProbability: 0.05, handbook: { include: true } }, sideopaque: { all: false }, sidesolid: { all: false }, replaceable: 3000, lightAbsorption: 0, resistance: 0.5, sounds: { place: "block/plant", break: "block/plant", hit: "block/plant" }, rainPermeable: false, dropsByType: { "*-10": [ { type: "item", code: "seeds-corn", quantity: { avg: 4,var: 6 } }, { type: "item", code: "grain-corn", quantity: { avg: 13, var: 4 } } ], "*": [ { type: "item", code: "seeds-corn", quantity: { avg: 4 } } ] }, cropProps: { // Common rates of nutrients to be applied are 50 to 60 lb/acre N, 25 lb/acre P2O5 and 30 lb/acre K2O. - http://www.heirloom-organics.com/guide/va/guidetogrowingspelt.html requiredNutrient: "N", nutrientConsumption: 40, growthStages: 10, totalGrowthMonths: 0.05, //totalGrowthMonths: 1.85, }, collisionbox: null, selectionbox: { x1: 0.0625, y1: 0, z1: 0.0625, x2: 0.9375, y2: 0.25, z2: 0.9375 }, materialDensity: 200, combustibleProps: { burnTemperature: 600, burnDuration: 10, }, frostable: true } Corn stage 5 shape code: { "editor": { "collapsedPaths": "Root/Cobb", "allAngles": true, "entityTextureMode": false }, "textureWidth": 16, "textureHeight": 16, "textureSizes": { }, "textures": { }, "elements": [ { "name": "origin", "from": [ 8.0, 0.0, 8.0 ], "to": [ 8.0, 0.0, 8.0 ], "rotationOrigin": [ 8.0, 0.0, 8.0 ], "faces": { "north": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 0.5 ], "enabled": false }, "east": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 0.5 ], "enabled": false }, "south": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 0.5 ], "enabled": false }, "west": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 0.5 ], "enabled": false }, "up": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 0.5 ], "enabled": false }, "down": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 0.5 ], "enabled": false } }, "children": [ { "name": "stemdown", "from": [ -4.5, -0.1, -4.5 ], "to": [ -3.7, 12.9, -3.7 ], "rotationOrigin": [ -4.0, -0.1, -4.0 ], "faces": { "north": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 13.0 ], "windMode": [0,4,4,0] }, "east": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 13.0 ], "windMode": [0,4,4,0] }, "south": { "texture": "#stalk", "uv": [ 1.0, 0.0, 1.5, 13.0 ], "windMode": [0,0,4,4] }, "west": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 13.0 ], "windMode": [0,0,4,4] }, "up": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 0.5 ], "enabled": false }, "down": { "texture": "#stalk", "uv": [ 0.5, 14.5, 1.0, 15.0 ], "windMode": [0,0,0,0] } }, "children": [ { "name": "Leaf1", "from": [ -1.5, 5.0, -3.5 ], "to": [ 2.0, 5.0, 0.0 ], "rotationOrigin": [ 0.5, 5.0, 0.5 ], "rotationX": 6.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf2", "from": [ -1.5, 7.0, -3.5 ], "to": [ 2.0, 7.0, 0.0 ], "rotationOrigin": [ 0.5, 7.0, 0.5 ], "rotationX": 14.0, "rotationY": 45.0, "rotationZ": -13.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf3", "from": [ -1.5, 2.0, -3.5 ], "to": [ 2.0, 2.0, 0.0 ], "rotationOrigin": [ 0.5, 2.0, 0.5 ], "rotationX": -25.0, "rotationY": -157.5, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf4", "from": [ -1.5, 8.0, -3.5 ], "to": [ 2.0, 8.0, 0.0 ], "rotationOrigin": [ 0.5, 8.0, 0.5 ], "rotationX": -3.0, "rotationY": 135.0, "rotationZ": -22.5, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf5", "from": [ -1.5, 9.0, -3.5 ], "to": [ 2.0, 9.0, 0.0 ], "rotationOrigin": [ 0.5, 9.0, 0.5 ], "rotationX": -19.0, "rotationY": -135.0, "rotationZ": -6.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf6", "from": [ -1.5, 10.0, -3.5 ], "to": [ 2.0, 10.0, 0.0 ], "rotationOrigin": [ 0.5, 10.0, 0.5 ], "rotationX": -3.0, "rotationY": -36.0, "rotationZ": -8.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "cobbleaf1", "from": [ -0.1, 13.0, -0.1 ], "to": [ 0.9, 15.0, 0.9 ], "rotationOrigin": [ 0.0, 13.0, 0.0 ], "faces": { "north": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "east": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "south": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "west": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "up": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } } } ] }, { "name": "stemdown15", "from": [ 4.5, -0.3, -4.5 ], "to": [ 5.3, 11.7, -3.7 ], "rotationOrigin": [ 5.0, -0.3, -4.0 ], "faces": { "north": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 12.0 ], "windMode": [0,4,4,0] }, "east": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 12.0 ], "windMode": [0,4,4,0] }, "south": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 12.0 ], "windMode": [0,0,4,4] }, "west": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 12.0 ], "windMode": [0,0,4,4] }, "up": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 0.5 ], "enabled": false }, "down": { "texture": "#stalk", "uv": [ 0.5, 14.5, 1.0, 15.0 ], "windMode": [0,0,0,0] } }, "children": [ { "name": "Leaf22", "from": [ -1.5, 3.0, -3.5 ], "to": [ 2.0, 3.0, 0.0 ], "rotationOrigin": [ 0.5, 3.0, 0.5 ], "rotationX": 17.0, "rotationZ": 19.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf23", "from": [ -1.5, 6.0, -3.5 ], "to": [ 2.0, 6.0, 0.0 ], "rotationOrigin": [ 0.5, 6.0, 0.5 ], "rotationX": 17.0, "rotationY": 39.0, "rotationZ": -3.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf24", "from": [ -1.5, 2.0, -3.5 ], "to": [ 2.0, 2.0, 0.0 ], "rotationOrigin": [ 0.5, 2.0, 0.5 ], "rotationX": -14.0, "rotationY": -130.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf25", "from": [ -1.5, 7.0, -3.5 ], "to": [ 2.0, 7.0, 0.0 ], "rotationOrigin": [ 0.5, 7.0, 0.5 ], "rotationX": -14.0, "rotationY": 163.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf26", "from": [ -1.5, 6.0, -3.5 ], "to": [ 2.0, 6.0, 0.0 ], "rotationOrigin": [ 0.5, 6.0, 0.5 ], "rotationX": -19.0, "rotationY": -135.0, "rotationZ": -36.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf27", "from": [ -1.5, 8.0, -3.5 ], "to": [ 2.0, 8.0, 0.0 ], "rotationOrigin": [ 0.5, 8.0, 0.5 ], "rotationX": -6.0, "rotationY": -58.0, "rotationZ": -11.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "cobbleaf2", "from": [ -0.1, 11.6, -0.1 ], "to": [ 0.9, 13.6, 0.9 ], "rotationOrigin": [ 0.0, 12.2, 0.0 ], "rotationX": 0.0, "rotationY": 0.0, "rotationZ": 0.0, "faces": { "north": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "east": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "south": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "west": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "up": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } } } ] }, { "name": "stemdown28", "from": [ 4.5, -0.3, 4.5 ], "to": [ 5.3, 12.7, 5.3 ], "rotationOrigin": [ 5.0, -0.3, 5.0 ], "faces": { "north": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 13.0 ], "windMode": [0,4,4,0] }, "east": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 13.0 ], "windMode": [0,4,4,0] }, "south": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 13.0 ], "windMode": [0,0,4,4] }, "west": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 13.0 ], "windMode": [0,0,4,4] }, "up": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 0.5 ], "enabled": false }, "down": { "texture": "#stalk", "uv": [ 0.5, 14.5, 1.0, 15.0 ], "windMode": [0,0,0,0] } }, "children": [ { "name": "Leaf35", "from": [ -1.5, 4.0, -3.5 ], "to": [ 2.0, 4.0, 0.0 ], "rotationOrigin": [ 0.5, 4.0, 0.5 ], "rotationX": 14.0, "rotationZ": -8.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 4.0, 3.5, 4.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf36", "from": [ -1.5, 9.0, -3.5 ], "to": [ 2.0, 9.0, 0.0 ], "rotationOrigin": [ 0.5, 9.0, 0.5 ], "rotationX": 25.0, "rotationY": 3.0, "rotationZ": -6.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf37", "from": [ -1.5, 2.0, -3.5 ], "to": [ 2.0, 2.0, 0.0 ], "rotationOrigin": [ 0.5, 2.0, 0.5 ], "rotationX": -25.0, "rotationY": -163.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf38", "from": [ -1.5, 7.0, -3.5 ], "to": [ 2.0, 7.0, 0.0 ], "rotationOrigin": [ 0.5, 7.0, 0.5 ], "rotationX": -6.0, "rotationY": 114.0, "rotationZ": -8.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf39", "from": [ -1.5, 6.0, -3.5 ], "to": [ 2.0, 6.0, 0.0 ], "rotationOrigin": [ 0.5, 6.0, 0.5 ], "rotationX": -11.0, "rotationY": -116.0, "rotationZ": -11.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf40", "from": [ -1.5, 8.0, -3.5 ], "to": [ 2.0, 8.0, 0.0 ], "rotationOrigin": [ 0.5, 8.0, 0.5 ], "rotationX": -45.0, "rotationY": -94.0, "rotationZ": -45.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "cobbleaf3", "from": [ -0.1, 12.6, -0.1 ], "to": [ 0.9, 14.6, 0.9 ], "rotationOrigin": [ 0.0, 13.2, 0.0 ], "rotationX": 0.0, "rotationY": 0.0, "rotationZ": 0.0, "faces": { "north": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "east": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "south": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "west": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "up": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } } } ] }, { "name": "stemdown41", "from": [ -4.5, -0.3, 4.5 ], "to": [ -3.7, 13.7, 5.3 ], "rotationOrigin": [ -4.0, -0.3, 5.0 ], "faces": { "north": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 14.0 ], "windMode": [0,4,4,0] }, "east": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 14.0 ], "windMode": [0,4,4,0] }, "south": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 14.0 ], "windMode": [0,0,4,4] }, "west": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 14.0 ], "windMode": [0,0,4,4] }, "up": { "texture": "#stalk", "uv": [ 0.0, 0.0, 0.5, 0.5 ], "enabled": false }, "down": { "texture": "#stalk", "uv": [ 0.5, 14.5, 1.0, 15.0 ], "windMode": [0,0,0,0] } }, "children": [ { "name": "Leaf48", "from": [ -1.5, 7.0, -3.5 ], "to": [ 2.0, 7.0, 0.0 ], "rotationOrigin": [ 0.5, 7.0, 0.5 ], "rotationX": 19.0, "rotationY": -36.0, "rotationZ": -14.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf49", "from": [ -1.5, 6.0, -3.5 ], "to": [ 2.0, 6.0, 0.0 ], "rotationOrigin": [ 0.5, 6.0, 0.5 ], "rotationX": 17.0, "rotationY": 64.0, "rotationZ": -3.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf50", "from": [ -1.5, 3.0, -3.5 ], "to": [ 2.0, 3.0, 0.0 ], "rotationOrigin": [ 0.5, 3.0, 0.5 ], "rotationX": -22.0, "rotationY": -180.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf51", "from": [ -1.5, 9.0, -3.5 ], "to": [ 2.0, 9.0, 0.0 ], "rotationOrigin": [ 0.5, 9.0, 0.5 ], "rotationX": -17.0, "rotationY": 135.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf52", "from": [ -1.5, 7.0, -3.5 ], "to": [ 2.0, 7.0, 0.0 ], "rotationOrigin": [ 0.5, 7.0, 0.5 ], "rotationX": -6.0, "rotationY": -135.0, "rotationZ": -11.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "Leaf53", "from": [ -1.5, 10.0, -3.5 ], "to": [ 2.0, 10.0, 0.0 ], "rotationOrigin": [ 0.5, 10.0, 0.5 ], "rotationX": 11.0, "rotationY": 3.0, "rotationZ": 19.0, "faces": { "north": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "east": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "south": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "west": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 0.5 ], "enabled": false }, "up": { "texture": "#leaf", "uv": [ 10.5, 12.5, 14.0, 16.0 ], "windMode": [1,4,4,1] }, "down": { "texture": "#leaf", "uv": [ 0.0, 0.0, 3.5, 3.5 ], "enabled": false } } }, { "name": "cobbleaf4", "from": [ -0.1, 13.6, -0.1 ], "to": [ 0.9, 15.6, 0.9 ], "rotationOrigin": [ 0.0, 14.2, 0.0 ], "rotationX": 0.0, "rotationY": 0.0, "rotationZ": 0.0, "faces": { "north": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "east": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "south": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "west": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 2.0 ] }, "up": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#cornleaf", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } } } ] } ] } ]}
  2. Micah Holmes

    Hemp

    I'll be working on a mod that will now include Hemp and cannabis for medicine. the mod will be a mega mod. so it should cover several areas of focus including leather working.... hopefully. Update Can we move this to WIP. Sorry didnt see wip area. Thanks.
  3. I am releasing this mod today for everyone to enjoy. Here is a video of the mod and its highlights: Link to mod: https://mods.vintagestory.at/httpswwwvintagestoryatforumstopic18747woodwor
  4. I have rebuilt my cabinet code 3 times now. It works for awhile then starts to crash. I have two identical files one works and other crashes: Working version: { code: "b1cabinet", class: "BlockGenericTypedContainer", entityclass: "GenericTypedContainer", behaviors: [ { "name": "Lockable" }, { "name": "Container" }, { "name": "BoatableGenericTypedContainer" } ], creativeinventory: { "general": [ "b1cabinet" ], "decorative": [ "b1cabinet" ] }, attributes: { inventoryClassName: "chest", defaultType: "acacia", types: [ "acacia" ], handbook: { groupBy: [ "cabinet" ] }, rotatatableInterval: { "acacia": "22.5degnot45deg" }, storageType: { "acacia": 189 }, retrieveOnly: { "acacia": false }, quantitySlots: { "acacia": 20 }, shape: { "acacia": "cabinet" }, typedOpenSound: { "acacia": "game:sounds/block/largechestopen" }, typedCloseSound: { "acacia": "game:sounds/block/largechestclose" }, variantByGroup: "side", variantByGroupInventory: null }, shapeInventory: { "base": "cabinet", "rotateY": 270 }, //Texture identifiers are prefixed with the type textures: { "acacia-top": { "base": "polished/obsidian2" }, "acacia-handle": { "base": "polished/obsidian2" }, "acacia-bottom": { "base": "debarked/acacia" }, "acacia-fdoor": { "base": "debarked/acacia" }, "acacia-back": { "base": "debarked/acacia" }, "acacia-sideleft": { "base": "debarked/acacia" }, "acacia-sideright": { "base": "debarked/acacia" } }, replaceable: 500, resistance: 1.5, lightAbsorption: 99, sidesolid: { "all": false }, sideopaque: { "all": false }, heldTpIdleAnimation: "holdbothhandslarge", heldRightReadyAnimation: "heldblockready", heldTpUseAnimation: "twohandplaceblock", tpHandTransform: { translation: { "x": -1.23, "y": -0.91, "z": -0.8 }, rotation: { "x": -2, "y": 25, "z": -78 }, scale: 0.4 } } Crashing version: { code: "cabinet-1", class: "BlockGenericTypedContainer", entityclass: "GenericTypedContainer", behaviors: [ { "name": "Lockable" }, { "name": "Container" }, { "name": "BoatableGenericTypedContainer" } ], creativeinventory: { "general": [ "cabinet-1" ], "decorative": [ "cabinet-1" ] }, attributes: { inventoryClassName: "chest", defaultType: "acacia", types: [ "acacia" ], handbook: { groupBy: [ "cabinet" ] }, rotatatableInterval: { "acacia": "22.5degnot45deg" }, storageType: { "acacia": 189 }, retrieveOnly: { "acacia": false }, quantitySlots: { "acacia": 20 }, shape: { "acacia": "cabinet" }, typedOpenSound: { "acacia": "game:sounds/block/largechestopen" }, typedCloseSound: { "acacia": "game:sounds/block/largechestclose" }, variantByGroup: "side", variantByGroupInventory: null }, shapeInventory: { "base": "cabinet", "rotateY": 270 }, //Texture identifiers are prefixed with the type textures: { "acacia-top": { "base": "polished/obsidian2" }, "acacia-handle": { "base": "polished/obsidian2" }, "acacia-bottom": { "base": "debarked/acacia" }, "acacia-fdoor": { "base": "debarked/acacia" }, "acacia-back": { "base": "debarked/acacia" }, "acacia-sideleft": { "base": "debarked/acacia" }, "acacia-sideright": { "base": "debarked/acacia" } }, replaceable: 500, resistance: 1.5, lightAbsorption: 99, sidesolid: { "all": false }, sideopaque: { "all": false }, heldTpIdleAnimation: "holdbothhandslarge", heldRightReadyAnimation: "heldblockready", heldTpUseAnimation: "twohandplaceblock", tpHandTransform: { translation: { "x": -1.23, "y": -0.91, "z": -0.8 }, rotation: { "x": -2, "y": 25, "z": -78 }, scale: 0.4 } } Crash report: Running on 64 bit Linux (Linux Mint 22.1) [Kernel 6.8.0.90] with 31965 MB RAM Game Version: v1.21.6 (Stable) 12/29/2025 10:37:10 AM: Critical error occurred Loaded Mods: mudmod@1.0.0, plantsexpandedmod@1.0.4, game@1.21.6, woodworking@1.0.0, creative@1.21.6, survival@1.21.6 System.Exception: Can't create itemstack without block! at Vintagestory.API.Common.ItemStack..ctor(Block block, Int32 stacksize) in VintagestoryApi\Common\Collectible\ItemStack.cs:line 244 at Vintagestory.GameContent.BlockGenericTypedContainer.OnPickBlock(IWorldAccessor world, BlockPos pos) in VSSurvivalMod\Block\BlockGenericTypedContainer.cs:line 374 at Vintagestory.API.Common.Block.GetPlacedBlockName(IWorldAccessor world, BlockPos pos) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 2199 at Vintagestory.Client.NoObf.HudElementBlockAndEntityInfo.ComposeBlockInfoHud() in VintagestoryLib\Client\Systems\Gui\Huds\HudElementBlockAndEntityInfo.cs:line 44 at Vintagestory.Common.GameTickListener.OnTriggered(Int64 ellapsedMilliseconds) in VintagestoryLib\Common\Model\GameTickListener.cs:line 25 at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 102 at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 836 at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 172 at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 719 at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 663 at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 112 at OpenTK.Windowing.Desktop.GameWindow.Run() at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 347 at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 131 at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95
  5. @The Insanity God Well when I use this: code: "woodworking:latticefence", class: "BlockFenceStackAware", //class: "Block", The fence will disappear when I stack on top and does not behave correctly. Open to suggestions Update: Ive adjusted this code a million different ways. I think I'm going to give up on custom fence blocks for now. Even if I just change model and texture, it still does not want to work using base game code.
  6. @The Insanity God Adjusted code as advised only issue now is the fence can not be rotated. { code: "woodworking:latticefence", //class: "BlockFenceStackAware", class: "Block", behaviors: [ {name: "CanAttach", properties: { sides: ["up", "down"] } } ], attributes: { isFence: true, particleCollBoxHeight: 1, handbook: { groupBy: ["latticefence-*"] } }, variantgroups: [ { code: "wood", states: ["purpleheart" ] }, { code: "type", states: ["empty", "n", "e", "s", "w", "ne", "ns", "nw", "es", "ew", "sw", "nes", "new", "nsw", "esw", "nesw"] }, { code: "cover", states: ["free"] } ], creativeinventory: { "general": ["latticefence-*-ew-free"], "decorative": ["latticefence-*-ew-free"] }, shapebytype: { "*-empty-free": { base: "fence/lattice" }, "*-n-free": { base: "fence/lattice", rotateY: 270 }, "*-e-free": { base: "fence/lattice", rotateY: 180 }, "*-s-free": { base: "fence/lattice", rotateY: 90 }, "*-w-free": { base: "fence/lattice", rotateY: 0 }, "*-ns-free": { base: "fence/lattice", rotateY: 90 }, "*-ew-free": { base: "fence/lattice", rotateY: 0 }, "*-ne-free": { base: "fence/lattice", rotateY: 180 }, "*-nw-free": { base: "fence/lattice", rotateY: 270 }, "*-es-free": { base: "fence/lattice", rotateY: 90 }, "*-sw-free": { base: "fence/lattice", rotateY: 0 }, "*-nes-free": { base: "fence/lattice", rotateY: 180 }, "*-new-free": { base: "fence/lattice", rotateY: 270 }, "*-nsw-free": { base: "fence/lattice", rotateY: 0 }, "*-esw-free": { base: "fence/lattice", rotateY: 90 }, "*-nesw-free": { base: "fence/lattice", rotateY: 0 } }, drawtypeByType: { "*-free": "JSON", "*-snow": "JSONAndSnowLayer" }, blockmaterial: "Wood", texturesByType: { "*": { "wood": { base: "debarked/{wood}" } } }, sidesolid: { all: false }, sideopaque: { all: false }, resistance: 3, lightAbsorption: 0, sounds: { "place": "game:block/planks", "hit": "game:block/planks", "break": "game:block/planks", "walk": "game:walk/wood" }, selectionboxbytype: { "*-empty-*": { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625 }, "*-n-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 270}, "*-e-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 180}, "*-s-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-w-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625}, "*-ns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-gns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-ngs-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-ew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, "*-egw-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, "*-gew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, }, selectionboxesbytype: { "*-sw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 0 } ], "*-ne-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 180 } ] , "*-nw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 270 } ], "*-es-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 90 } ], "*-nes-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 180 } ], "*-new-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 270 } ], "*-nsw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 0 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 0 } ], "*-esw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 90 } ], "*-nesw": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625 } ] }, collisionboxbytype: { "*-empty-*": { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625 }, "*-n-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 270}, "*-e-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 180}, "*-s-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-w-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625}, "*-ns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-gns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-ngs-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-ew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, "*-egw-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, "*-gew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, }, collisionboxesbytype: { "*-sw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 0 } ], "*-ne-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 180 } ] , "*-nw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 270 } ], "*-es-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 90 } ], "*-nes-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 180 } ], "*-new-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 270 } ], "*-nsw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 0 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 0 } ], "*-esw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 90 } ], "*-nesw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625 } ] }, combustibleProps: { burnTemperature: 600, burnDuration: 10, }, materialDensity: 600, tpHandTransform: { translation: { x: -1.5, y: -1, z: -1.2 }, rotation: { x: 5, y: -3, z: -96 }, scale: 0.37 }, groundTransform: { translation: { x: 0, y: 0.05, z: 0 }, rotation: { x: 90, y: -45, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 2.07 } } Tried adding rotatatableInterval: { base: "22.5degnot45deg" }, but did not do anything
  7. Got it fixed using this code but now I'm getting weird behavior. When I place side by side it turns both. An when I stack on top of each other, it turns invisible { code: "woodworking:latticefence", class: "BlockFenceStackAware", behaviors: [ {name: "CanAttach", properties: { sides: ["up", "down"] } } ], attributes: { isFence: true, particleCollBoxHeight: 1, handbook: { groupBy: ["latticefence-*"] } }, variantgroups: [ { code: "wood", states: ["purpleheart" ] }, { code: "type", states: ["empty", "n", "e", "s", "w", "ne", "ns", "nw", "es", "ew", "sw", "nes", "new", "nsw", "esw", "nesw"] }, { code: "cover", states: ["free"] } ], creativeinventory: { "general": ["latticefence-*-ew-free"], "decorative": ["latticefence-*-ew-free"] }, shapebytype: { "*-empty-free": { base: "fence/lattice" }, "*-n-free": { base: "fence/lattice", rotateY: 270 }, "*-e-free": { base: "fence/lattice", rotateY: 180 }, "*-s-free": { base: "fence/lattice", rotateY: 90 }, "*-w-free": { base: "fence/lattice", rotateY: 0 }, "*-ns-free": { base: "fence/lattice", rotateY: 90 }, "*-ew-free": { base: "fence/lattice", rotateY: 0 }, "*-ne-free": { base: "fence/lattice", rotateY: 180 }, "*-nw-free": { base: "fence/lattice", rotateY: 270 }, "*-es-free": { base: "fence/lattice", rotateY: 90 }, "*-sw-free": { base: "fence/lattice", rotateY: 0 }, "*-nes-free": { base: "fence/lattice", rotateY: 180 }, "*-new-free": { base: "fence/lattice", rotateY: 270 }, "*-nsw-free": { base: "fence/lattice", rotateY: 0 }, "*-esw-free": { base: "fence/lattice", rotateY: 90 }, "*-nesw-free": { base: "fence/lattice", rotateY: 0 } }, drawtypeByType: { "*-free": "JSON", "*-snow": "JSONAndSnowLayer" }, blockmaterial: "Wood", texturesByType: { "*": { "wood": { base: "debarked/{wood}" } } }, sidesolid: { all: false }, sideopaque: { all: false }, resistance: 3, lightAbsorption: 0, sounds: { "place": "game:block/planks", "hit": "game:block/planks", "break": "game:block/planks", "walk": "game:walk/wood" }, selectionboxbytype: { "*-empty-*": { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625 }, "*-n-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 270}, "*-e-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 180}, "*-s-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-w-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625}, "*-ns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-gns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-ngs-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-ew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, "*-egw-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, "*-gew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, }, selectionboxesbytype: { "*-sw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 0 } ], "*-ne-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 180 } ] , "*-nw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 270 } ], "*-es-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 90 } ], "*-nes-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 180 } ], "*-new-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 270 } ], "*-nsw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 0 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 0 } ], "*-esw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 90 } ], "*-nesw": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625 } ] }, collisionboxbytype: { "*-empty-*": { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625 }, "*-n-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 270}, "*-e-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 180}, "*-s-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-w-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625}, "*-ns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-gns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-ngs-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-ew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, "*-egw-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, "*-gew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, }, collisionboxesbytype: { "*-sw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 0 } ], "*-ne-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 180 } ] , "*-nw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 270 } ], "*-es-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 90 } ], "*-nes-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 180 } ], "*-new-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 270 } ], "*-nsw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 0 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 0 } ], "*-esw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 90 } ], "*-nesw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625 } ] }, combustibleProps: { burnTemperature: 600, burnDuration: 10, }, materialDensity: 600, tpHandTransform: { translation: { x: -1.5, y: -1, z: -1.2 }, rotation: { x: 5, y: -3, z: -96 }, scale: 0.37 }, groundTransform: { translation: { x: 0, y: 0.05, z: 0 }, rotation: { x: 90, y: -45, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 2.07 } } Tried commenting out a few different things to see if it has a effect but nothing seems to stop it. Not sure whats causing it, can only assume its behavior but I commented it out and still acts weird. Maybe its the fence class?
  8. Anytime i work with RegX I always reference this page: https://www.c-sharpcorner.com/article/c-sharp-regex-examples/ I know its basic but I try not to over complicate things wieh I use regX. I hope it helps.
  9. So for wood working mod, I've added a book called book of tribes that you will need to make tribal based items and weapons. These are special items based on native american and Aztec cultures. Likely expand upon it in near future. Id like to add a lib for c# near future to create a book sharing more info about tribe cultures. Possibly add entities as well. I want to add some viking stuff as well in near future. So I hope it does not clash with core game lore. Also want to add some vintage story tribe stuff too related to base story. Again hopefully does not clash with base game.
  10. I'll retry with committed code removed temporarily. But I think it's still failing.
  11. Been awhile since I made a barrel recipe but i thought it was pretty straight forward. No errors but not working when I try it [ { code: "vinegar", sealHours: 1, ingredients: [ { type: "item", code: "game:waterportion", litres: 10, consumeLitres: 10 }, { type: "item", code: "game:pressedmash-cranberry-dry", quantity: 1 } ], output: { type: "item", code: "game:vinegarportion", litres: 5 } } ]
  12. I don't remember ever having so many issues with grid crafting recipes not working. Has any one else had issues getting grid craft recipes working for your mods? No issues get my mod items in game. But grid seems to wana crash a lot when I know the recipe is correct. Really seems to struggle the most with variants. Just me?
  13. Been troubleshooting this recipe for a bit. Has to be something basic I'm not seeing: 14.12.2025 22:15:01 [Error] [game] An exception was thrown when trying to start the mod: 14.12.2025 22:15:01 [Error] [game] Exception: Object reference not set to an instance of an object. at Vintagestory.ServerMods.GridRecipeLoader.LoadRecipe(AssetLocation assetLocation, GridRecipe recipe) in VSEssentials\Loading\GridRecipeLoader.cs:line 60 at Vintagestory.ServerMods.GridRecipeLoader.LoadGridRecipes() in VSEssentials\Loading\GridRecipeLoader.cs:line 48 at Vintagestory.ServerMods.GridRecipeLoader.AssetsLoaded(ICoreAPI api) in VSEssentials\Loading\GridRecipeLoader.cs:line 28 at Vintagestory.Common.ModLoader.TryRunModPhase(Mod mod, ModSystem system, ICoreAPI api, ModRunPhase phase) in VintagestoryLib\Common\API\ModLoader.cs:line 667 14.12.2025 22:15:01 [Error] Failed to run mod phase AssetsLoaded for mod Vintagestory.ServerMods.GridRecipeLoader recipe: [ //apprentice { ingredientPattern: "HS", ingredients: { "H": { type: "item", code: "spearhead-sanded-limestone", quantity: 1 }, "S": { type: "item", code: "spearshaft-redwood", quantity: 1 } }, width: 2, height: 1, output: { type: "item", code: "spear-apprentice-redwood-limestone" } }, { ingredientPattern: "HS", ingredients: { "H": { type: "item", code: "spearhead-sanded-limestone", quantity: 1 }, "S": { type: "item", code: "spearshaft-larch", quantity: 1 } }, width: 2, height: 1, output: { type: "item", code: "spear-apprentice-larch-limestone" } }, { ingredientPattern: "HS", ingredients: { "H": { type: "item", code: "spearhead-sanded-slate", quantity: 1 }, "S": { type: "item", code: "spearshaft-redwood", quantity: 1 } }, width: 2, height: 1, output: { type: "item", code: "spear-apprentice-redwood-slate" } }, { ingredientPattern: "HS", ingredients: { "H": { type: "item", code: "spearhead-sanded-slate", quantity: 1 }, "S": { type: "item", code: "spearshaft-larch", quantity: 1 } }, width: 2, height: 1, output: { type: "item", code: "spear-apprentice-larch-slate" } }, //journeyman { ingredientPattern: "HS", ingredients: { "H": { type: "item", code: "spearhead-polished-limestone", quantity: 1 }, "S": { type: "item", code: "spearshaft-redwood", quantity: 1 } }, width: 2, height: 1, output: { type: "item", code: "spear-journeyman-redwood-limestone" } }, { ingredientPattern: "HS", ingredients: { "H": { type: "item", code: "spearhead-polished-limestone", quantity: 1 }, "S": { type: "item", code: "spearshaft-larch", quantity: 1 } }, width: 2, height: 1, output: { type: "item", code: "spear-journeyman-larch-limestone" } }, { ingredientPattern: "HS", ingredients: { "H": { type: "item", code: "spearhead-polished-slate", quantity: 1 }, "S": { type: "item", code: "spearshaft-redwood", quantity: 1 } }, width: 2, height: 1, output: { type: "item", code: "spear-journeyman-redwood-slate" } }, { ingredientPattern: "HS", ingredients: { "H": { type: "item", code: "spearhead-polished-slate", quantity: 1 }, "S": { type: "item", code: "spearshaft-larch", quantity: 1 } }, width: 2, height: 1, output: { type: "item", code: "spear-journeyman-larch-slate" } } ] Spears: { code: "spear", class: "ItemSpear", tags: ["weapon", "weapon-melee"], damagedby: ["attacking"], tool: "spear", behaviors: [ { name: "GroundStorable", properties: { layout: 'WallHalves', wallOffYByType:{ "@spear-generic-(chert|granite|andesite|basalt|obsidian|peridotite|flint)": 2, "*": 3 }, ctrlKey: true, selectionBox: { x1: 0, y1: 0, z1: 0, x2: 1, y2: 0.1, z2: 1 }, collisionBox: { x1: 0, y1: 0, z1: 0, x2: 0, y2: 0, z2: 0 } } }, { name: "AnimationAuthoritative" } ], variantgroups: [ { code: "type", states: ["apprentice", "journeyman" ] }, { code: "wood", states: [ "redwood", "larch" ] }, { code: "material", states: ["limestone", "slate" ] } ], shapeByType: { "*": { base: "game:item/tool/spear/stone" } }, heldTpIdleAnimation: "spearidle", heldRightReadyAnimation: "spearidle", heldTpHitAnimation: "spearhit", texturesByType: { "spear-apprentice-*-limestone": { "string": { "base": "bow-string/bowstring-hide" }, "handle": { "base": "debarked/{wood}" }, "material": { "base": "polished/{material}1" } }, "spear-journeyman-*-limestone": { "string": { "base": "bow-string/bowstring-hide" }, "handle": { "base": "debarked/{wood}" }, "material": { "base": "polished/{material}1" } }, "spear-apprentice-*-slate": { "string": { "base": "bow-string/bowstring-hide" }, "handle": { "base": "debarked/{wood}" }, "material": { "base": "polished/{material}1" } }, "spear-journeyman-*-slate": { "string": { "base": "bow-string/bowstring-hide" }, "handle": { "base": "debarked/{wood}" }, "material": { "base": "polished/{material}1" } } }, attackRange: 3.5, attackpowerbytype: { "spear-apprentice-*-limestone": 1.35, "spear-journeyman-*-limestone": 1.5, "spear-apprentice-*-slate": 1.45, "spear-journeyman-*-slate": 1.65 }, attributes: { heldItemPitchFollow: 1, groundStorageTransformByType: { "*": { translation: { x: 0, y: 0.26, z: 0.596 }, rotation: { x: 16, y: 90, z: 90 }, scale: 0.85 } }, // Thrown damage damageByType: { "spear-apprentice-*-limestone": 3.45, "spear-journeyman-*-limestone": 3.7, "spear-apprentice-*-slate": 3.62, "spear-journeyman-*-slate": 3.89 }, damageTierByType: { "spear-apprentice-*-limestone": 0, "spear-journeyman-*-limestone": 0, "spear-apprentice-*-slate": 0, "spear-journeyman-*-slate": 0 }, spearEntityCodeByType: { "*": "erelprojectile-large-usable" //"*": "spear-{type}-{wood}-{material}" }, handbook: { groupBy: ["spear-*"] }, toolrackTransformByType: { "*": { rotation: { y: 1, z: -1 }, translation: { x: -0.23, y: 0.66 }, scale: 1.36 } } }, durabilitybytype: { "spear-apprentice-*-limestone": 80, "spear-journeyman-*-limestone": 140, "spear-apprentice-*-slate": 110, "spear-journeyman-*-slate": 190 }, creativeinventory: { "general": ["*"], "items": ["*"], "tools": ["*"] }, guiTransformByType: { "*": { translation: { x: 0, y: 0, z: 0 }, rotation: { x: -60, y: 124, z: 6 }, origin: { x: 1.19, y: 0, z: 0.5 }, scale: 2.26 } }, fpHandTransformByType: { "*": { translation: { x: 0.1, y: 0.4, z: 0.16 }, rotation: { x: -82, y: 180, z: 96 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 2.45 } }, groundTransformByType: { "*": { translation: { x: 0, y: 0.05, z: 0 }, rotation: { x: 90, y: 0, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 3.4 } }, tpHandTransformByType: { "*": { translation: { x: -1.29, y: 0.02, z: -0.57 }, rotation: { x: -90, y: 0, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 0.8 } } } If I remove the recipe, works fine no issues. Gives error with no helpful info when i load: 14.12.2025 22:15:01 [Error] [game] An exception was thrown when trying to start the mod: 14.12.2025 22:15:01 [Error] [game] Exception: Object reference not set to an instance of an object. at Vintagestory.ServerMods.GridRecipeLoader.LoadRecipe(AssetLocation assetLocation, GridRecipe recipe) in VSEssentials\Loading\GridRecipeLoader.cs:line 60 at Vintagestory.ServerMods.GridRecipeLoader.LoadGridRecipes() in VSEssentials\Loading\GridRecipeLoader.cs:line 48 at Vintagestory.ServerMods.GridRecipeLoader.AssetsLoaded(ICoreAPI api) in VSEssentials\Loading\GridRecipeLoader.cs:line 28 at Vintagestory.Common.ModLoader.TryRunModPhase(Mod mod, ModSystem system, ICoreAPI api, ModRunPhase phase) in VintagestoryLib\Common\API\ModLoader.cs:line 667 14.12.2025 22:15:01 [Error] Failed to run mod phase AssetsLoaded for mod Vintagestory.ServerMods.GridRecipeLoader how I read it is the recipe reader crapped out but its not saying why or whats wrong with my recipe.
  14. Well I adjusted the code no crashing any more but I get errors in the log : 14.12.2025 10:48:41 [Error] Exception thrown while trying to parse json data of the type with code woodworking:latticefence, variant woodworking:latticefence-purpleheart-empty-free. Will ignore most of the attributes. Exception: 14.12.2025 10:48:41 [Error] Exception: Error converting value "blockfence" to type 'Vintagestory.API.Common.EnumItemClass'. Path 'drops[0].type'. ---> System.ArgumentException: Requested value 'blockfence' was not found. at Newtonsoft.Json.Utilities.EnumUtils.ParseEnum(Type enumType, NamingStrategy namingStrategy, String value, Boolean disallowNumber) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType) --- End of inner exception stack trace --- at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Populate(JsonReader reader, Object target) at Newtonsoft.Json.JsonSerializer.PopulateInternal(JsonReader reader, Object target) at Vintagestory.API.Common.JsonUtil.PopulateObject(Object toPopulate, JToken token, JsonSerializer js) in VintagestoryApi\Util\JsonUtil.cs:line 96 at Vintagestory.ServerMods.NoObf.RegistryObjectType.CreateResolvedType[T](ICoreServerAPI api, AssetLocation fullcode, JObject jobject, JsonSerializer deserializer, OrderedDictionary`2 variant) in VSEssentials\Loading\RegistryObjectType.cs:line 303 14.12.2025 10:48:41 [Error] Exception thrown while trying to parse json data of the type with code woodworking:latticefence, variant woodworking:latticefence-purpleheart-n-free. Will ignore most of the attributes. Exception: This error is a little confusing. not sure why it cant find "blockfence" in the API. Is it trying to look in my mod for blockfence? New code: { code: "woodworking:latticefence", class: "game:BlockFence", behaviors: [ {name: "CanAttach", properties: { sides: ["up", "down"] } }, { name: "RopeTieable" } ], attributes: { supportsUnstableRock: true, isFence: true, particleCollBoxHeight: 1, handbook: { groupBy: ["woodenfence-*"] }, attachableToEntity: { categoryCode: "ropetiepost", requiresBehindSlots: 1, attachedShape: { base: "game:block/wood/fence/boatpost" }, texturePrefixCode: "fence-{wood}", seatConfig: { controllable: false, bodyYawLimit: 0.25, mountOffset: { x: 1, y: 0, z: 1.5 }, eyeHeight: 1, attributes: { ropeTieablesOnly: true } } } }, variantgroups: [ { code: "wood", states: ["purpleheart" ] }, { code: "type", states: ["empty", "n", "e", "s", "w", "ne", "ns", "nw", "es", "ew", "sw", "nes", "new", "nsw", "esw", "nesw"] }, { code: "cover", states: ["free"] } ], creativeinventory: { "general": ["latticefence-*-ew-free"], "decorative": ["latticefence-*-ew-free"] }, shapebytype: { "*-empty-free": { base: "fence/lattice" }, "*-n-free": { base: "fence/lattice", rotateY: 270 }, "*-e-free": { base: "fence/lattice", rotateY: 180 }, "*-s-free": { base: "fence/lattice", rotateY: 90 }, "*-w-free": { base: "fence/lattice", rotateY: 0 }, "*-ns-free": { base: "fence/lattice", rotateY: 90 }, "*-ew-free": { base: "fence/lattice", rotateY: 0 }, "*-ne-free": { base: "fence/lattice", rotateY: 180 }, "*-nw-free": { base: "fence/lattice", rotateY: 270 }, "*-es-free": { base: "fence/lattice", rotateY: 90 }, "*-sw-free": { base: "fence/lattice", rotateY: 0 }, "*-nes-free": { base: "fence/lattice", rotateY: 180 }, "*-new-free": { base: "fence/lattice", rotateY: 270 }, "*-nsw-free": { base: "fence/lattice", rotateY: 0 }, "*-esw-free": { base: "fence/lattice", rotateY: 90 }, "*-nesw-free": { base: "fence/lattice", rotateY: 0 } }, drawtypeByType: { "*-free": "JSON", "*-snow": "JSONAndSnowLayer" }, blockmaterial: "Wood", texturesByType: { "*": { "wood": { base: "debarked/{wood}" } } }, sidesolid: { all: false }, sideopaque: { all: false }, resistance: 3, lightAbsorption: 0, drops: [ { type: "blockfence", code: "latticefence{wood}{type}{cover}", quantity: { avg: 0.85, var: 0 } } ], sounds: { "place": "game:block/planks", "hit": "game:block/planks", "break": "game:block/planks", "walk": "game:walk/wood" }, selectionboxbytype: { "*-empty-*": { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625 }, "*-n-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 270}, "*-e-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 180}, "*-s-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-w-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625}, "*-ns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-gns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-ngs-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-ew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, "*-egw-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, "*-gew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, }, selectionboxesbytype: { "*-sw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 0 } ], "*-ne-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 180 } ] , "*-nw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 270 } ], "*-es-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 90 } ], "*-nes-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 180 } ], "*-new-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 270 } ], "*-nsw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 0 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 0 } ], "*-esw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 90 } ], "*-nesw": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625 } ] }, collisionboxbytype: { "*-empty-*": { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625 }, "*-n-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 270}, "*-e-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 180}, "*-s-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-w-*": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625}, "*-ns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-gns-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-ngs-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-ew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, "*-egw-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, "*-gew-*": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, }, collisionboxesbytype: { "*-sw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 0 } ], "*-ne-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 180 } ] , "*-nw-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 270 } ], "*-es-*": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 90 } ], "*-nes-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 180 } ], "*-new-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 270 } ], "*-nsw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 0 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 0 } ], "*-esw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 90 } ], "*-nesw-*": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625 } ] }, combustibleProps: { burnTemperature: 600, burnDuration: 10, }, materialDensity: 600, tpHandTransform: { translation: { x: -1.5, y: -1, z: -1.2 }, rotation: { x: 5, y: -3, z: -96 }, scale: 0.37 }, groundTransform: { translation: { x: 0, y: 0.05, z: 0 }, rotation: { x: 90, y: -45, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 2.07 } } Not sure where to go from here on this one.
  15. Making some new fences and I'm crashing every time after I place it. Best I can tell it needs some logic for placing which I've seen before but does not seem to work. Here is the crash: crash: Running on 64 bit Linux (Linux Mint 22.1) [Kernel 6.8.0.88] with 31965 MB RAM Game Version: v1.21.5 (Stable) 12/13/2025 11:40:57 PM: Critical error occurred Loaded Mods: mudmod@1.0.0, plantsexpandedmod@1.0.4, game@1.21.5, woodworking@1.0.0, creative@1.21.5, survival@1.21.5 System.Exception: Can't create itemstack without block! at Vintagestory.API.Common.ItemStack..ctor(Block block, Int32 stacksize) in VintagestoryApi\Common\Collectible\ItemStack.cs:line 244 at Vintagestory.GameContent.BlockFence.OnPickBlock(IWorldAccessor world, BlockPos pos) in VSSurvivalMod\Block\BlockFence.cs:line 110 at Vintagestory.API.Common.Block.GetPlacedBlockName(IWorldAccessor world, BlockPos pos) in VintagestoryApi\Common\Collectible\Block\Block.cs:line 2199 at Vintagestory.Client.NoObf.HudElementBlockAndEntityInfo.ComposeBlockInfoHud() in VintagestoryLib\Client\Systems\Gui\Huds\HudElementBlockAndEntityInfo.cs:line 44 at Vintagestory.Common.GameTickListener.OnTriggered(Int64 ellapsedMilliseconds) in VintagestoryLib\Common\Model\GameTickListener.cs:line 25 at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 102 at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 836 at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 172 at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 719 at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 663 at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 112 at OpenTK.Windowing.Desktop.GameWindow.Run() at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 338 at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 133 at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95 Here is the code: { code: "lattice-fence", class: "BlockFence", behaviors: [ {name: "CanAttach", properties: { sides: ["up", "down"] } }, { name: "RopeTieable" } ], attributes: { supportsUnstableRock: true, isFence: true, particleCollBoxHeight: 1, handbook: { groupBy: ["woodenfence-*"] }, attachableToEntity: { categoryCode: "ropetiepost", requiresBehindSlots: 1, attachedShape: { base: "game:block/wood/fence/boatpost" }, texturePrefixCode: "lattice-fence-{wood}", seatConfig: { controllable: false, bodyYawLimit: 0.25, mountOffset: { x: 1, y: 0, z: 1.5 }, eyeHeight: 1, attributes: { ropeTieablesOnly: true } } } }, variantgroups: [ { code: "wood", states: ["oak" ], loadFromProperties: "game:block/wood" }, { code: "type", states: ["empty", "n", "e", "s", "w", "ne", "ns", "nw", "es", "ew", "sw", "nes", "new", "nsw", "esw", "nesw"] } ], creativeinventory: { "general": ["lattice-*-ew"], "decorative": ["lattice-*-ew"] }, shapebytype: { "*-empty": { base: "fence/lattice" }, "*-n": { base: "fence/lattice", rotateY: 270 }, "*-e": { base: "fence/lattice", rotateY: 180 }, "*-s": { base: "fence/lattice", rotateY: 90 }, "*-w": { base: "fence/lattice", rotateY: 0 }, "*-ns": { base: "fence/lattice", rotateY: 90 }, "*-ew": { base: "fence/lattice", rotateY: 0 }, "*-ne": { base: "fence/lattice", rotateY: 180 }, "*-nw": { base: "fence/lattice", rotateY: 270 }, "*-es": { base: "fence/lattice", rotateY: 90 }, "*-sw": { base: "fence/lattice", rotateY: 0 }, "*-nes": { base: "fence/lattice", rotateY: 180 }, "*-new": { base: "fence/lattice", rotateY: 270 }, "*-nsw": { base: "fence/lattice", rotateY: 0 }, "*-esw": { base: "fence/lattice", rotateY: 90 }, "*-nesw-free": { base: "fence/lattice", rotateY: 0 } }, blockmaterial: "Wood", texturesByType: { "*": { "wood": { base: "debarked/{wood}" } } /*"*-empty": { "wood": { base: "debarked/{wood}" } }, "*-n": { "wood": { base: "debarked/{wood}" } }, "*-e": { "wood": { base: "debarked/{wood}" } }, "*-s": { "wood": { base: "debarked/{wood}" } }, "*-w": { "wood": { base: "debarked/{wood}" } }, "*-ns": { "wood": { base: "debarked/{wood}" } }, "*-ew": { "wood": { base: "debarked/{wood}" } }, "*-ne": { "wood": { base: "debarked/{wood}" } }, "*-nw": { "wood": { base: "debarked/{wood}" } }, "*-es": { "wood": { base: "debarked/{wood}" } }, "*-sw": { "wood": { base: "debarked/{wood}" } }, "*-nes": { "wood": { base: "debarked/{wood}" } }, "*-new": { "wood": { base: "debarked/{wood}" } }, "*-nsw": { "wood": { base: "debarked/{wood}" } }, "*-esw": { "wood": { base: "debarked/{wood}" } }, "*-nesw-free": { "wood": { base: "debarked/{wood}" } }*/ }, sidesolid: { all: false }, sideopaque: { all: false }, resistance: 3, lightAbsorption: 0, sounds: { "place": "game:block/planks", "hit": "game:block/planks", "break": "game:block/planks", "walk": "game:walk/wood" }, selectionboxbytype: { "*-empty": { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625 }, "*-n": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 270}, "*-e": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 180}, "*-s": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-w": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 0.625}, "*-ns": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-gns": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-ngs": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625, rotateY: 90}, "*-ew": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, "*-egw": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, "*-gew": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625}, }, selectionboxesbytype: { "*-sw": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 0 } ], "*-ne": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 180 } ] , "*-nw": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 270 } ], "*-es": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 90 } ], "*-nes": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 180 } ], "*-new": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 270 } ], "*-nsw": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 0 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 0 } ], "*-esw": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.0625, z2: 0.625, rotateY: 90 } ], "*-nesw": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.0625, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.0625, z2: 0.625 } ] }, collisionboxbytype: { "*-empty": { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625 }, "*-n": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 270}, "*-e": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 180}, "*-s": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-w": { x1: 0, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 0.625}, "*-ns": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-gns": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-ngs": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625, rotateY: 90}, "*-ew": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, "*-egw": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, "*-gew": { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625}, }, collisionboxesbytype: { "*-sw": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 0 } ], "*-ne": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 180 } ] , "*-nw": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 270 } ], "*-es": [ { x1: 0.375, y1: 0, z1: 0.375, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 90 } ], "*-nes": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 180 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 180 } ], "*-new": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 270 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 270 } ], "*-nsw": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 0 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 0 } ], "*-esw": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1, rotateY: 90 }, { x1: 0, y1: 0, z1: 0.375, x2: 0.375, y2: 1.3125, z2: 0.625, rotateY: 90 } ], "*-nesw": [ { x1: 0.375, y1: 0, z1: 0, x2: 0.625, y2: 1.3125, z2: 1 }, { x1: 0, y1: 0, z1: 0.375, x2: 1, y2: 1.3125, z2: 0.625 } ] }, combustibleProps: { burnTemperature: 600, burnDuration: 10, }, materialDensity: 600, tpHandTransform: { translation: { x: -1.5, y: -1, z: -1.2 }, rotation: { x: 5, y: -3, z: -96 }, scale: 0.37 }, groundTransform: { translation: { x: 0, y: 0.05, z: 0 }, rotation: { x: 90, y: -45, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 2.07 } } To the best of my knowledge i think it wants something like this: drops: [ { type: "block", code: "CODE NAME GOES HERE", quantity: { avg: 0.85, var: 0 } } ], Even when i put something similar in there, its does not like it and crashes with same error. So i think I'm missing something here
  16. Been waiting to do this article long time. Figured id ask the community before I build this in near future. Id like a fire that has multi output. So you could get charcoal for example from making campfire for example plus food if you cooked on the fire. Obviously the fire needs to be out before you grab the charcoal or maybe that puts the fire out? Thought? I think id just need to add output to the code? Never made a gui yet from code. So something to learn i suppose. Thoughts anyone on how difficult this will be?
  17. Working on a tomahawk for the mod. Should I allow it to be thrown and strictly used as a weapon or be more like a tool/axe and can't be thrown?
  18. Apologies in advance, I thought I had a thread already created but could not find it. Wood working is WIP currently but wanted to share a few things. Mod aims to expand your wood working shop, tools and wood working skills. Sneak Peak: Macuahuitl weapon ojibwe weapon Flint saw Clamp Workbench Fence Just a few items of several in the mod pack.
  19. Well for now it's too much work for me to refactor it. If I was going to build a dll and all that jazz, id build logic for a well. Unfortunately my mod pack won't have additional shields sade face. Lol anyway thank you @The Insanity God for helping. Really appreciate it.
  20. Recently started building a mod that includes shields. Using the base games scripts for reference I discovered the shield code back end is hard coded. Since the game is heavily mod focused, I think you should consider updating this code and allowing modders to better support custom shield mods. Ref:
      • 4
      • Like
  21. @The Insanity God you would be 100% correct. So unless I use one of those names it will not render the shield/object. Also found out no matter what I do in my Lang file, it forces the "Crude" sheild name for example: "item-shield-wscutum-crude-*": "Wooden scutum shield", Here is my item code: { code: "shield-wscutum", class: "ItemShield", storageFlags: 257, attributes: { shield: { blockSoundLightByType: { "*": "held/shieldblock-wood-light" }, blockSoundHeavyByType: { "*": "held/shieldblock-wood-heavy" }, protectionChanceByType: { "*-apprentice": { "passive-projectile": 0.1, "active-projectile": 0.9, "passive": 0.1, "active": 0.8 }, "*-journeyman": { "passive-projectile": 0.15, "active-projectile": 0.9, "passive": 0.15, "active": 0.85 }, "*-artisan": { "passive-projectile": 0.2, "active-projectile": 0.95, "passive": 0.2, "active": 0.9 }, "*-master": { "passive-projectile": 0.2, "active-projectile": 1, "passive": 0.2, "active": 0.95 }, "*-grandmaster": { "passive-projectile": 0.3, "active-projectile": 1, "passive": 0.3, "active": 0.98 } }, projectileDamageAbsorptionByType: { "*-apprentice": 1, "*-journeyman": 1.5, "*-artisan*": 2, "*-master": 3, "*-grandmaster": 4 }, damageAbsorptionByType: { "*-apprentice": 1, "*-journeyman": 1.5, "*-artisan*": 2, "*-master": 3, "*-grandmaster": 4 } }, handbook: { groupBy: ["shield-*"] }, rackable: true, toolrackTransformByType: { "shield-wscutum-*": { translation: { x: 0.3, y: -0.62, z: 0.8 }, rotation: { x: 91, y: -6, z: 0 }, scale: 1.5 } }, moldrackable: false, onmoldrackTransformByType: { "shield-wscutum-*": { translation: { x: 0.82, y: 0.5, z: -0.45 }, rotation: { x: -90, y: 82, z: 90 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1.2 } }, groundStorageTransformByType: { "shield-wscutum-*": { translation: { x: -0.5, y: -0.2, z: -0.2 }, rotation: { x: 21, y: 168, z: -81 }, scale: 1 } }, durabilityGains: { "wood": { "aged": -200, "ebony": 30, "purpleheart": 20, "oak": 15 } }, attachableToEntity: { categoryCode: "shield", texturePrefixCode: "shield", attachedShapeByType: { "shield-wscutum-*": { base: "shields/scutum" } } } }, behaviors: [{ name: "GroundStorable", properties: { layout: 'WallHalves', wallOffY: 1, ctrlKey: true, selectionBox: { x1: 0, y1: 0, z1: 0, x2: 1, y2: 0.1, z2: 1 }, collisionBox: { x1: 0, y1: 0, z1: 0, x2: 0, y2: 0, z2: 0 }, } }], variantgroups: [ { code: "construction", states: [ "crude" ] }, { code: "type", states: ["apprentice", "journeyman", "artisan", "master", "grandmaster" ] } ], creativeinventory: { "general": ["shield-wscutum-*"], "items": ["shield-wscutum-*"], "tools": ["shield-wscutum-*"] }, shapeByType: { "shield-wscutum-*": { base: "shields/scutum" } }, durabilitybytype: { "*-apprentice": 80, "*-journeyman": 150, "*-artisan*": 250, "*-master": 300, "*-grandmaster": 400 }, fpHandTransformByType: { "shield-wscutum-*": { translation: { x: -0.86, y: 0.04, z: -0.8 }, rotation: { x: 0, y: 1, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1.2 } }, guiTransformByType: { "shield-wscutum-*": { translation: { x: 0, y: 0, z: 0 }, rotation: { x: 34, y: 32, z: -166 }, origin: { x: 0.28, y: -0.28, z: 0.47 }, scale: 1.96 } }, groundTransform: { translation: { x: 0, y: 0.37, z: 0 }, rotation: { x: -93, y: 0, z: 0 }, origin: { x: 0.5, y: 0, z: 0.43 }, scale: 5 }, tpHandTransformByType: { "shield-wscutum-*": { translation: { x: -0.86, y: 0.04, z: -0.8 }, rotation: { x: 0, y: 1, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1.2 } }, tpOffHandTransformByType: { "shield-wscutum-*": { translation: { x: 0, y: 0.2, z: -0.078 }, rotation: { x: 0, y: 180, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1.2 } } } Every shield I made is "crude shield". they hard coded this object. I hope they plan to fix that in the future since the game is mod based.
  22. @The Insanity God Just tested it again, it appears to not want to render? I have the object but its not rendering on screen? I'm little confused how to solve that issue. Is my problem with the shape? { "editor": { "collapsedPaths": "Root/Center/bend3,Root/Center/bend4", "allAngles": false, "entityTextureMode": false }, "textureWidth": 16, "textureHeight": 16, "textureSizes": { }, "textures": { "wood": "stain/kapok-4", "trim1": "debarked/purpleheart", "trim2": "debarked/purpleheart" }, "elements": [ { "name": "Center", "from": [ 0.0, -4.0, 4.0 ], "to": [ 3.0, 4.0, 5.0 ], "rotationOrigin": [ 0.0, -4.0, 4.0 ], "faces": { "north": { "texture": "#wood", "uv": [ 0.0, 0.0, 3.0, 8.0 ] }, "east": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "south": { "texture": "#wood", "uv": [ 0.0, 0.0, 3.0, 8.0 ] }, "west": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "up": { "texture": "#wood", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, "down": { "texture": "#wood", "uv": [ 0.0, 0.0, 3.0, 1.0 ] } }, "children": [ { "name": "bend1", "from": [ 0.79, 0.0, -1.9 ], "to": [ 1.79, 8.0, -0.9 ], "rotationOrigin": [ 0.0, 0.0, -1.0 ], "rotationY": -112.5, "faces": { "north": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "east": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "south": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "west": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "up": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } }, "children": [ { "name": "Plate2", "from": [ 1.0, 0.0, 0.0 ], "to": [ 1.2, 1.0, 1.0 ], "rotationOrigin": [ 1.0, 0.0, 0.0 ], "faces": { "north": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "east": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "west": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "down": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] } } }, { "name": "Plate1", "from": [ 1.0, 7.0, 0.0 ], "to": [ 1.2, 8.0, 1.0 ], "rotationOrigin": [ 1.0, 7.0, 0.0 ], "faces": { "north": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "east": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "west": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "down": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] } } } ] }, { "name": "bend2", "from": [ 0.656, 0.0, -1.7 ], "to": [ 1.656, 8.0, -0.7 ], "rotationOrigin": [ 0.0, 0.0, -1.0 ], "rotationY": -135.0, "faces": { "north": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "east": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "south": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "west": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "up": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } }, "children": [ { "name": "Plate6", "from": [ 1.0, 0.0, 0.0 ], "to": [ 1.2, 1.0, 1.0 ], "rotationOrigin": [ 1.0, 0.0, 0.0 ], "faces": { "north": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "east": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "west": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "down": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] } } }, { "name": "Plate7", "from": [ 1.0, 7.0, 0.0 ], "to": [ 1.2, 8.0, 1.0 ], "rotationOrigin": [ 1.0, 7.0, 0.0 ], "faces": { "north": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "east": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "west": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "down": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] } } } ] }, { "name": "bend3", "from": [ 2.6, 0.0, -0.1 ], "to": [ 3.6, 8.0, 0.9 ], "rotationOrigin": [ 3.0, 0.0, 0.0 ], "rotationY": 22.5, "faces": { "north": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "east": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "south": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "west": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "up": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } }, "children": [ { "name": "Plate", "from": [ 0.0, 0.0, 1.0 ], "to": [ 1.0, 1.0, 1.2 ], "rotationOrigin": [ 0.0, 0.0, 1.0 ], "faces": { "north": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "east": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "south": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "west": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "up": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 0.5 ] }, "down": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 0.5 ] } } }, { "name": "Plate3", "from": [ 0.0, 7.0, 1.0 ], "to": [ 1.0, 8.0, 1.2 ], "rotationOrigin": [ 0.0, 7.0, 1.0 ], "faces": { "north": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "east": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "south": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "west": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "up": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 0.5 ] }, "down": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 0.5 ] } } } ] }, { "name": "bend4", "from": [ 3.4, 0.0, -0.7 ], "to": [ 4.4, 8.0, 0.3 ], "rotationOrigin": [ 4.0, 0.0, 0.0 ], "rotationY": 45.0, "faces": { "north": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "east": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "south": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "west": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 8.0 ] }, "up": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#wood", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } }, "children": [ { "name": "Plate4", "from": [ 0.0, 0.0, 1.0 ], "to": [ 1.0, 1.0, 1.2 ], "rotationOrigin": [ 0.0, 0.0, 1.0 ], "faces": { "north": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "east": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "south": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "west": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "up": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 0.5 ] }, "down": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 0.5 ] } } }, { "name": "Plate5", "from": [ 0.0, 7.0, 1.0 ], "to": [ 1.0, 8.0, 1.2 ], "rotationOrigin": [ 0.0, 7.0, 1.0 ], "faces": { "north": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "east": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "south": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "west": { "texture": "#trim1", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "up": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 0.5 ] }, "down": { "texture": "#trim1", "uv": [ 0.0, 0.0, 1.0, 0.5 ] } } } ] } ] }, { "name": "PlateTop", "from": [ 0.0, 3.0, 5.0 ], "to": [ 3.0, 4.0, 5.2 ], "rotationOrigin": [ 0.0, 3.0, 5.0 ], "faces": { "north": { "texture": "#trim2", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, "east": { "texture": "#trim2", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "south": { "texture": "#trim2", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, "west": { "texture": "#trim2", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "up": { "texture": "#trim2", "uv": [ 0.0, 0.0, 3.0, 0.5 ] }, "down": { "texture": "#trim2", "uv": [ 0.0, 0.0, 3.0, 0.5 ] } } }, { "name": "PlateTop2", "from": [ 0.0, -4.0, 5.0 ], "to": [ 3.0, -3.0, 5.2 ], "rotationOrigin": [ 0.0, -4.0, 5.0 ], "faces": { "north": { "texture": "#trim2", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, "east": { "texture": "#trim2", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "south": { "texture": "#trim2", "uv": [ 0.0, 0.0, 3.0, 1.0 ] }, "west": { "texture": "#trim2", "uv": [ 0.0, 0.0, 0.5, 1.0 ] }, "up": { "texture": "#trim2", "uv": [ 0.0, 0.0, 3.0, 0.5 ] }, "down": { "texture": "#trim2", "uv": [ 0.0, 0.0, 3.0, 0.5 ] } } } ]}
  23. I made a few new shield shapes/items recently and I have one that is not appearing in the GUI or on screen. I vaguely remember there was a way to adjust position of items in game but i don't remember how. Item Model: In game: Item code; { code: "shield", class: "ItemShield", storageFlags: 257, attributes: { shield: { blockSoundLightByType: { "*": "held/shieldblock-wood-light" }, blockSoundHeavyByType: { "*": "held/shieldblock-wood-heavy" }, protectionChance: { "passive-projectile": 0.2, "active-projectile": 1, "passive": 0.2, "active": 0.9 }, projectileDamageAbsorptionByType: { "*": 3 }, damageAbsorptionByType: { "*": 3 } }, handbook: { groupBy: ["shield-*"] }, rackable: true, toolrackTransformByType: { "shield-scutum": { translation: { x: 0.3, y: -0.62, z: 0.8 }, rotation: { x: 91, y: -6, z: 0 }, scale: 1.5 }, "*": { translation: { x: 0.3, y: -0.62, z: -0.625 }, rotation: { x: 91, y: -6, z: -90 }, scale: 1.5 } }, moldrackable: true, onmoldrackTransformByType: { "shield-scutum": { translation: { x: 0.82, y: 0.5, z: -0.45 }, rotation: { x: -90, y: 82, z: 90 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1.2 }, "*": { translation: { x: 0.74, y: 0.5, z: -0.4 }, rotation: { x: -90, y: 82, z: 90 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1.01 } }, groundStorageTransformByType: { "shield-scutum": { translation: { x: -0.5, y: -0.2, z: -0.2 }, rotation: { x: 21, y: 168, z: -81 }, scale: 1 }, "*": { translation: { x: -0.42, y: -0.45, z: -0.105 }, rotation: { x: 21, y: 179, z: -90 }, scale: 1 } }, // Note: variantgroups inside attributes. Used to generate all variants for the creative inventory dynamically, and for valid recipe checking variantGroups: { "metal": [ "silver" ], "wood": ["aged" ], "color": [ "purple"], "deco": ["none" ] }, durabilityGains: { "wood": { "aged": -200, "ebony": 30, "purpleheart": 20, "oak": 15 } }, attachableToEntity: { categoryCode: "shield", texturePrefixCode: "shield", attachedShapeByType: { "shield-scutum": { base: "shields/scutum3" }, "*": { base: "shields/scutum3" } } }, allowedVariants: [ { construction: "woodmetal", wood: "*", metal: "*", color: "*", deco: "none" }, { construction: "woodmetalleather", wood: "*", metal: "*", color: "*", deco: "none" }, { construction: "metal", wood: null, metal: "*", color: "*", deco: "none" }, { construction: "woodmetal", wood: "*", metal: "*", color: "*", deco: "ornate" }, { construction: "woodmetalleather", wood: "*", metal: "*", color: "*", deco: "ornate" }, { construction: "metal", wood: null, metal: "*", color: "*", deco: "ornate" }, ] }, behaviors: [{ name: "GroundStorable", properties: { layout: 'WallHalves', wallOffY: 1, ctrlKey: true, selectionBox: { x1: 0, y1: 0, z1: 0, x2: 1, y2: 0.1, z2: 1 }, collisionBox: { x1: 0, y1: 0, z1: 0, x2: 0, y2: 0, z2: 0 }, } }], variantgroups: [ { code: "construction", states: [ "scutum" ] } ], creativeinventory: { "general": ["shield-scutum"], "items": ["shield-scutum"], "tools": ["shield-scutum"] }, shapeByType: { "shield-scutum": { base: "shields/scutum3" }, "*": { base: "shields/scutum3" } }, textures: { "wood": { "base": "stain/oak-4" }, "trim1": { "base": "debarked/pine" }, "trim2": { "base": "debarked/pine" } }, durabilitybytype: { "shield-scutum": 80 }, fpHandTransformByType: { "shield-scutum": { translation: { x: 0, y: 0, z: 0 }, rotation: { x: 9, y: 154, z: 86 }, origin: { x: 0.2, y: 0, z: 0.23 }, scale: 5.38 }, "*": { translation: { x: 0, y: 0, z: 0 }, rotation: { x: 10, y: 149, z: 90 }, origin: { x: 0, y: -0.1, z: 0.3 }, scale: 5.38 } }, guiTransformByType: { "shield-scutum": { translation: { x: 0, y: 0, z: 0 }, rotation: { x: 34, y: 32, z: -163 }, origin: { x: 0.28, y: -0.28, z: 0.47 }, scale: 1.8 }, "*": { translation: { x: 0, y: 0, z: 0 }, rotation: { x: 34, y: 32, z: -163 }, origin: { x: 0.21, y: -0.21, z: 0.49 }, scale: 1.8 } }, groundTransform: { translation: { x: 0, y: 0.37, z: 0 }, rotation: { x: -93, y: 0, z: 0 }, origin: { x: 0.5, y: 0, z: 0.43 }, scale: 5 }, tpHandTransformByType: { "shield-scutum": { translation: { x: -0.93, y: 0.04, z: -0.92 }, rotation: { x: 0, y: 1, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1 }, "*": { translation: { x: -0.98, y: 0, z: -0.85 }, rotation: { x: -4, y: 4, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1 } }, tpOffHandTransformByType: { "shield-scutum": { translation: { x: -0.12, y: 0.05, z: -0.078 }, rotation: { x: 0, y: 180, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1 }, "*": { translation: { x: -0.13, y: 0.01, z: -0.01 }, rotation: { x: -4, y: 173, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1 } } } Pretty sure here is my code area that needs adjusted: fpHandTransformByType: { "shield-scutum": { translation: { x: 0, y: 0, z: 0 }, rotation: { x: 9, y: 154, z: 86 }, origin: { x: 0.2, y: 0, z: 0.23 }, scale: 5.38 }, "*": { translation: { x: 0, y: 0, z: 0 }, rotation: { x: 10, y: 149, z: 90 }, origin: { x: 0, y: -0.1, z: 0.3 }, scale: 5.38 } }, guiTransformByType: { "shield-scutum": { translation: { x: 0, y: 0, z: 0 }, rotation: { x: 34, y: 32, z: -163 }, origin: { x: 0.28, y: -0.28, z: 0.47 }, scale: 1.8 }, "*": { translation: { x: 0, y: 0, z: 0 }, rotation: { x: 34, y: 32, z: -163 }, origin: { x: 0.21, y: -0.21, z: 0.49 }, scale: 1.8 } }, groundTransform: { translation: { x: 0, y: 0.37, z: 0 }, rotation: { x: -93, y: 0, z: 0 }, origin: { x: 0.5, y: 0, z: 0.43 }, scale: 5 }, tpHandTransformByType: { "shield-scutum": { translation: { x: -0.93, y: 0.04, z: -0.92 }, rotation: { x: 0, y: 1, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1 }, "*": { translation: { x: -0.98, y: 0, z: -0.85 }, rotation: { x: -4, y: 4, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1 } }, tpOffHandTransformByType: { "shield-scutum": { translation: { x: -0.12, y: 0.05, z: -0.078 }, rotation: { x: 0, y: 180, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1 }, "*": { translation: { x: -0.13, y: 0.01, z: -0.01 }, rotation: { x: -4, y: 173, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 1 } } }
  24. Not sure where place/share this but I made a fairly round shield model I'd like to share with the community. feel free to adjust and perfect it as you see fit. Took a little time to get this made but really wanted to share with community. model code: { "editor": { "collapsedPaths": "Root/updown2,Root/updown,Root/shield", "allAngles": false, "entityTextureMode": false }, "textureWidth": 16, "textureHeight": 16, "textureSizes": { }, "textures": { }, "elements": [ { "name": "shield", "from": [ 0.0, 0.0, 3.0 ], "to": [ 1.0, 1.0, 4.0 ], "rotationOrigin": [ 0.0, 0.0, 3.0 ], "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } }, "children": [ { "name": "updown2", "from": [ 0.0, 1.0, 0.0 ], "to": [ 1.0, 2.0, 1.0 ], "rotationOrigin": [ 0.0, 1.0, 0.0 ], "rotationZ": -90.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } }, "children": [ { "name": "Cube15", "from": [ 1.0, 5.5, 0.0 ], "to": [ 11.0, 6.5, 1.0 ], "rotationOrigin": [ 1.0, 5.0, 0.0 ], "rotationZ": -100.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube16", "from": [ 2.32, -5.3, 0.0 ], "to": [ 12.32, -4.3, 1.0 ], "rotationOrigin": [ 2.0, -5.0, 0.0 ], "rotationZ": 115.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube17", "from": [ 2.32, 4.7, 0.0 ], "to": [ 12.32, 5.7, 1.0 ], "rotationOrigin": [ 2.0, 5.0, 0.0 ], "rotationZ": -115.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube18", "from": [ 1.05, 4.5, 0.0 ], "to": [ 11.05, 5.5, 1.0 ], "rotationOrigin": [ 1.0, 5.0, 0.0 ], "rotationZ": -100.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube19", "from": [ 1.05, -5.5, 0.0 ], "to": [ 11.05, -4.5, 1.0 ], "rotationOrigin": [ 1.0, -5.0, 0.0 ], "rotationZ": 100.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube20", "from": [ -0.8, -5.3, 0.0 ], "to": [ 9.2, -4.3, 1.0 ], "rotationOrigin": [ -1.0, -5.0, 0.0 ], "rotationZ": 75.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube21", "from": [ -0.8, 4.7, 0.0 ], "to": [ 9.2, 5.7, 1.0 ], "rotationOrigin": [ -1.0, 5.0, 0.0 ], "rotationZ": -75.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube22", "from": [ -3.35, 3.5, 0.0 ], "to": [ 6.65, 4.5, 1.0 ], "rotationOrigin": [ -2.0, 3.0, 0.0 ], "rotationZ": -65.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube23", "from": [ -1.0, -5.0, 0.0 ], "to": [ 9.0, -4.0, 1.0 ], "rotationOrigin": [ -1.0, -5.0, 0.0 ], "rotationZ": 65.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube24", "from": [ -3.0, -4.0, 0.0 ], "to": [ 7.0, -3.0, 1.0 ], "rotationOrigin": [ -3.0, -4.0, 0.0 ], "rotationZ": 45.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube25", "from": [ -7.0, 2.0, 0.0 ], "to": [ 3.0, 3.0, 1.0 ], "rotationOrigin": [ -4.0, -1.0, 0.0 ], "rotationZ": -45.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube26", "from": [ -5.0, 0.0, 0.0 ], "to": [ 5.0, 1.0, 1.0 ], "rotationOrigin": [ -1.0, 0.0, 0.0 ], "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube27", "from": [ 0.0, -5.0, 0.0 ], "to": [ 1.0, 5.0, 1.0 ], "rotationOrigin": [ 0.0, -5.0, 0.0 ], "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 10.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 10.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 10.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 10.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } } }, { "name": "Cube32", "from": [ 0.0, 0.0, 0.0 ], "to": [ 1.0, 1.0, 1.0 ], "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } } } ] }, { "name": "updown", "from": [ 0.0, 1.0, 0.0 ], "to": [ 1.0, 2.0, 1.0 ], "rotationOrigin": [ 0.0, 1.0, 0.0 ], "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } }, "children": [ { "name": "Cube14", "from": [ 1.0, 5.5, 0.0 ], "to": [ 11.0, 6.5, 1.0 ], "rotationOrigin": [ 1.0, 5.0, 0.0 ], "rotationZ": -100.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube13", "from": [ 2.32, -5.3, 0.0 ], "to": [ 12.32, -4.3, 1.0 ], "rotationOrigin": [ 2.0, -5.0, 0.0 ], "rotationZ": 115.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube12", "from": [ 2.32, 4.7, 0.0 ], "to": [ 12.32, 5.7, 1.0 ], "rotationOrigin": [ 2.0, 5.0, 0.0 ], "rotationZ": -115.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube11", "from": [ 1.05, 4.5, 0.0 ], "to": [ 11.05, 5.5, 1.0 ], "rotationOrigin": [ 1.0, 5.0, 0.0 ], "rotationZ": -100.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube10", "from": [ 1.05, -5.5, 0.0 ], "to": [ 11.05, -4.5, 1.0 ], "rotationOrigin": [ 1.0, -5.0, 0.0 ], "rotationZ": 100.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube9", "from": [ -0.8, -5.3, 0.0 ], "to": [ 9.2, -4.3, 1.0 ], "rotationOrigin": [ -1.0, -5.0, 0.0 ], "rotationZ": 75.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube8", "from": [ -0.8, 4.7, 0.0 ], "to": [ 9.2, 5.7, 1.0 ], "rotationOrigin": [ -1.0, 5.0, 0.0 ], "rotationZ": -75.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube7", "from": [ -3.35, 3.5, 0.0 ], "to": [ 6.65, 4.5, 1.0 ], "rotationOrigin": [ -2.0, 3.0, 0.0 ], "rotationZ": -65.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube6", "from": [ -1.0, -5.0, 0.0 ], "to": [ 9.0, -4.0, 1.0 ], "rotationOrigin": [ -1.0, -5.0, 0.0 ], "rotationZ": 65.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube5", "from": [ -3.0, -4.0, 0.0 ], "to": [ 7.0, -3.0, 1.0 ], "rotationOrigin": [ -3.0, -4.0, 0.0 ], "rotationZ": 45.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube4", "from": [ -4.5, 1.0, 0.0 ], "to": [ 5.5, 2.0, 1.0 ], "rotationOrigin": [ -1.0, 1.0, 0.0 ], "rotationZ": -45.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube3", "from": [ -5.0, 0.0, 0.0 ], "to": [ 5.0, 1.0, 1.0 ], "rotationOrigin": [ -1.0, 0.0, 0.0 ], "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 10.0, 1.0 ] } } }, { "name": "Cube2", "from": [ 0.0, -5.0, 0.0 ], "to": [ 1.0, 5.0, 1.0 ], "rotationOrigin": [ 0.0, -5.0, 0.0 ], "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 10.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 10.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 10.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 10.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] } } }, { "name": "Cube28", "from": [ -4.76, 0.0, 0.0 ], "to": [ -2.76, 1.0, 1.0 ], "rotationOrigin": [ 1.0, 0.0, 0.0 ], "rotationZ": -25.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } } }, { "name": "Cube29", "from": [ -4.6, 0.0, 0.0 ], "to": [ -2.6, 1.0, 1.0 ], "rotationOrigin": [ 1.0, 0.0, 0.0 ], "rotationZ": 50.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } } }, { "name": "Cube30", "from": [ -4.8, -0.2, 0.0 ], "to": [ -2.8, 0.8, 1.0 ], "rotationOrigin": [ 1.0, 0.0, 0.0 ], "rotationZ": 35.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } } }, { "name": "Cube31", "from": [ -5.0, -0.3, 0.0 ], "to": [ -3.0, 0.7, 1.0 ], "rotationOrigin": [ 0.0, 0.0, 0.0 ], "rotationZ": -90.0, "faces": { "north": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "east": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "south": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "west": { "texture": "#null", "uv": [ 0.0, 0.0, 1.0, 1.0 ] }, "up": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] }, "down": { "texture": "#null", "uv": [ 0.0, 0.0, 2.0, 1.0 ] } } } ] } ] } ]}
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.