-
Posts
199 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
News
Store
Everything posted by Micah Holmes
-
As a mod dev my self. I like reviewing other mods for direction but I prefer to make my mods all self containing. Your fear I think is fair. I hate having to get one mod to use another because of that issue. I also fear having to get one mod to use another because other mod may be buggy or add things I don't want or like. Easy to say don't use it but some mods manipulate core game. Your fear is valid in my opinion. Also mods that piggy back run risk as you said, mod dev steps away or the mod dies. I seen a lot of older mods die. Very sad when it happens but not much you can do except ask community to rebuild it. This why in my opinion these forums are so important as users for us to support. This should be the place we all go, discuss and post this product.
-
Planning a craftsmanship mod. Basically you craft vanilla tools but over time you gain experience and go up in tier or skill level. Higher your crafting skill, the more durable the tools. The idea is to reach master craftsmanship. Interested in everyone's thoughts about the system as well as suggestions on how to build it. I'm not sure if something already exists for a template. I want to build it as vanilla as much as possible. Don't want any third party tools. Needs to be a self contained mod. Thoughts?
-
I was looking at building a loom. The loom would still use grid recipe crafting but you would need the loom to make cloths. I also seen you would need a spinning wheel to make thread. To make the mod right, we would need some machines. So I'm currently figuring out how to build it in my head first, then put thoughts on paper and then start modeling the tools and finally code. Not a easy request
-
I just released charcoal expanded that allows you to go from low to Terra Petra
-
Great mod idea. I'll look into it for everyone.
-
I just released a new mod that allows you to make woodash using charcoal.
-
I have added several new items as well as expanded the uses for charcoal. Charcoal is extremely useful product and can be used for a lot of different things. I tried my best to keep it semi realistic. charcoalexpanded_1.0.0.zip
-
Making a windmill for the first time. I need to get my windmill crank to turn 90 degrees. I have two angled gears in place. When I attach another wooden axel, it does not turn 90 degrees. It stays vertical
-
Going to make some more fish for this mod. Any fish requests? Please post. Thanks
-
@Krougal I'm currently working on a new cooking recipe for salt water to salt. Running into issue currently with the salt water after I cook it. I could cheese for the moment and bucket of saltwater + stone = 1 salt crystal. Salt Crystal + rock = 10 salt. Not sure how upset everyone would be with a hacky mod for salt until I fix the boiling salt water issue.
- 18 replies
-
- 2
-
-
- salt water
- water
-
(and 2 more)
Tagged with:
-
Obligatory Distant Horizons Mod Post
Micah Holmes replied to Velifax's topic in [Legacy] Mods & Mod Development
I might be able to make a patch to extend it in near future for you but working on salt water to salt right now -
Fresh water vs salt water
Micah Holmes replied to Micah Holmes's topic in [Legacy] Mods & Mod Development
I don't know how to fix this issue: I keep getting "Unknown" portion.I want it to return something I can put in a bowl or something and then take the bowl with the item in grid and produce a salt crystal. { code: "boiledsaltcrystal", perishableProps: { type: "Harden", freshHours: { avg: 4 }, transitionHours: { avg: 0.01 }, transitionRatio: 1, transitionedStack: { type: "item", code: "saltcrystal:saltcrystal" } }, shape: { base: "game:item/gem/rough/normal/diamond" }, textures: {diamond: { base: "saltcrystal:saltcrystal" }}, attributes: { handbook: { ignoreCreativeInvStacks: true, "groupBy": ["items-*"] } }, ingredients: [ { code: "game:saltwaterportion", validStacks: [ { type: "item", code: "game:saltwaterportion", shapeElement: "game:bowl/water" } ], minQuantity: 1, maxQuantity: 1, portionSizeLitres: 1 }, { code: "game:stone-*", validStacks: [ { type: "item", code: "game:stone-*", shapeElement: "game:bowl/water" } ], minQuantity: 1, maxQuantity: 1 } ], dirtyPot: true, dirtyPotOutput: "saltcrystal:saltcrystal" } Any suggestions would be helpful. -
Fresh water vs salt water
Micah Holmes replied to Micah Holmes's topic in [Legacy] Mods & Mod Development
Latest code I cant get it to work. No tut on cooking. I might try barrel if I cant get it going: Update: I got the mod working ish. I can now boil salt water, fixed crashing but not out putting item currently. I hope to have this out soon to everyone. Might be a few steps to boil salt water to get salt but it should be easy to get early game when I finish. Currently you can use a jug or bucket to get salt water, boil it with a stone in pot and produce boiled salt crystal. Use the boiled salt crystal(in a bowl) in a grid. This should produce 1 salt crystal. Next use grid salt crystal and rock to get 10 salt. This is the plan but we will see if I can get it to work this way. Stay tuned saltcrystal.zip -
Fresh water vs salt water
Micah Holmes replied to Micah Holmes's topic in [Legacy] Mods & Mod Development
Updated code: New code: { code: "mysaltcrystal", shape: { base: "game:item/gem/rough/normal/diamond" }, perishableProps: { freshHours: { avg: 400 }, transitionHours: { avg: 0.01 }, transitionRatio: 1, transitionedStack: { type: "item", code: "saltcrystal" } }, ingredients: [ { code: "water", validStacks: [ { type: "item", code: "saltwaterportion" } ], minQuantity: 4, maxQuantity: 4, portionSizeLitres: 6 } ], dirtyPot: true, dirtyPotOutput: "saltcrystal" } -
Fresh water vs salt water
Micah Holmes replied to Micah Holmes's topic in [Legacy] Mods & Mod Development
I am a little confused currently about cooking. I made my item already. I simply want to boil this salt water and output my item. On grid crafting I can see its easy but cooking im not sure. Here is what I have currently: Item: { code: "saltcrystal", creativeinventory: { "general": ["*"]}, shape: { base: "game:item/gem/rough/normal/diamond" }, textures: {diamond: { base: "saltcrystal:saltcrystal" }}, maxstacksize: 16, guiTransform: { translation: { x: 0, y: 0, z: 0 }, rotation: { x: 151, y: -3, z: 0 }, origin: { x: 0.487, y: 0.08, z: 0.5 }, scale: 12 }, fpHandTransform: { translation: { x: -0.05, y: 0.04, z: 0 }, rotation: { x: 5, y: 100, z: 0 }, origin: { x: 0.5, y: -0.13, z: 0.5 }, scale: 3.4 }, tpHandTransform: { translation: { x: -0.78, y: -0.11, z: -0.7 }, rotation: { x: -41, y: -29, z: -60 }, origin: { x: 0.5, y: 0.09, z: 0.5 }, scale: 0.75 }, groundTransform: { translation: { x: 0, y: 0, z: 0 }, rotation: { x: 0, y: 0, z: 0 }, origin: { x: 0.5, y: 0, z: 0.5 }, scale: 12 } } This is the cooking recipe. This is where i am lost now currently. I'm expecting the ability to "output" an item but I dont see that currently in any sample code: { code: "saltcrystal", ingredients: [ { code: "water", validStacks: [ { type: "item", code: "saltwaterportion" } ], minQuantity: 1, maxQuantity: 6, portionSizeLitres: 6, }, { code: "water", validStacks: [ { type: "item", code: "saltwaterportion" } ], minQuantity: 1, maxQuantity: 6, portionSizeLitres: 6, }, { code: "water", validStacks: [ { type: "item", code: "saltwaterportion" } ], minQuantity: 1, maxQuantity: 6, portionSizeLitres: 6, }, { code: "water", validStacks: [ { type: "item", code: "saltwaterportion" } ], minQuantity: 1, maxQuantity: 6, portionSizeLitres: 6, } ] } I want the recipe to be 6 salt water liters x 4 = 1 salt crystal. -
I'm about to start working on a new mod. I want to boil salt water to get salt crystals. If I get a jug of water for example can I boil water and can I determine a difference between salt and fresh water? I've not looked at water mechanics yet. Hoping fresh and salt water are two different items. Thanks in advance
-
I could not find a lot of "fish" mods in game so I made this one. I felt like players needed to fear the water lol Special thank to Spear and Fang for helping me figure out my first entity mod. Version 1.19.8 piranha1.0.1.zip
- 1 reply
-
- 2
-
-
I think this fixes the spawn issue: spawnconditions: { worldgen: { TriesPerChunk: { avg: 0.5, var: 0 }, tryOnlySurface: true, minLightLevel: 3, groupSize: { dist: "verynarrowgaussian", avg: 2, var: 3 }, insideBlockCodes: ["game:water-*"], minTemp: 4, maxTemp: 20 }, runtime: { group: "hostile", chance: 0.01, tryOnlySurface: true, minLightLevel: 3, groupSize: { dist: "verynarrowgaussian", avg: 2, var: 3 }, insideBlockCodes: ["game:water-*"], minTemp: 4, maxTemp: 20 } I also added seek entity in my code so now it will seek out players. I had to lower there damage. They hit too hard. I also added "alertheard" attribute: { code: "seekentity", entityCodes: ["player"], priority: 1.5, mincooldown: 1500, maxcooldown: 1500, movespeed: 0.045, seekingRange: 15, maxFollowTime: 20, animationSpeed: 2.3, alarmHerd: true, animation: "swimfast" } alarmherd seems to make them all swarm a player in the water. so you know ... dont go in the water lol Here is final copy. Please feel free to review it and test. They are very nasty little fish piranha1.0.1.zip
-
Here is where we are at now: I created a new Creature.json file because that seemed like the correct way to do this/add entity Created a new en.lang file again just seemed like the correct thing to do moved all the stuff into the "piranha" folder Removed all "patches" folders converted into domain file based structure Reviewed all your changes as well. One issue I ran into was in my Creature.Json I have to have a "Skin: base" section for the texture part based on Salmon logic or the game will crash. Not sure what that is all about. Other issue is of course the fish acts like an item and not a entity when i add it in game via creative. So now I think I need to figure out how to get the fish to basically be a fish and not a item. Plus I broke the texture somehow so the fish texture is not working again. Latest version zipped and attached. /piranha/itemtypes/creature.json { code: "creature", class: "ItemCreature", maxstacksize: 64, variantgroups: [ { code: "type", states: [ "piranha" ] } ], shapeByType: { "*-piranha": { base: "piranha:entity/water/piranha" } }, texturesByType: { "*-piranha": { skin: {base: "piranha:entity/fish/piranha-red" }} }, creativeinventory: { "general": ["*"], "items": ["*"], "creatures": ["*"] }, materialDensity: 600, guiTransformByType: { "creature-piranha": { rotate: true, translation: { x: 0, y: 0, z: 0 }, rotation: { x: 177, y: 144, z: -41 }, origin: { x: 0.49, y: 0.18, z: 0.5 }, scale: 1.9 } }, tpHandTransformByType: { "creature-piranha": { translation: { x: -0.8, y: -0.55, z: -0.6 }, rotation: { x: 0, y: -62, z: 28 }, scale: 0.62 } }, fpHandTransformByType: { "creature-piranha": { rotation: { x: 26, y: -65, z: 2 }, origin: { x: 0.6, y: 0.3, z: 0.6 }, scale: 1.71 } }, groundTransformByType: { "creature-piranha": { scale: 4.06 } } } /piranha/lang/en.json { "item-creature-piranha": "Piranha", "item-dead-creature-piranha": "Dead Piranha" } /piranha/entities/water/piranha.json { code: "piranha", class: "EntityFish", hitboxSize: { x: 0.5, y: 0.25 }, eyeHeight: 0.2, drops: [], habitat: "Underwater", client: { renderer: "Shape", size: 0.7, shape: { base: "piranha:entity/water/piranha" }, texture: { base: "piranha:entity/fish/piranha-red" }, behaviors: [ { code: "repulseagents" }, { code: "controlledphysics", stepHeight: 0 }, { code: "interpolateposition" }, { code: "floatupwhenstuck", onlyWhenDead: true }, { code: "harvestable" }, { code: "despawn", minPlayerDistance: 8, belowLightLevel: 8, minSeconds: 300 }, ], animations: [ { code: "hurt", animation: "hurt", animationSpeed: 1, weight: 10, blendMode: "AddAverage" }, { code: "swim", animation: "swim" }, { code: "swimfast", animation: "swim" }, { code: "die", animation: "dead", }, { code: "flop", animation: "flopping" }, { code: "idle", animation: "idle", blendMode: "AddAverage", animationSpeed: 0.33, easeOutSpeed: 4, triggeredBy: { defaultAnim: true }, } ] }, server: { behaviors: [ { code: "repulseagents" }, { code: "controlledphysics", stepHeight: 1.1251 }, { code: "despawn", minPlayerDistance: 12, belowLightLevel: 8, minSeconds: 200 }, { code: "health", currenthealth: 5, maxhealth: 5, }, { code: "deaddecay", hoursToDecay: 96, decayedBlock: "carcass-tiny" }, { code: "floatupwhenstuck", onlyWhenDead: true }, { code: "harvestable", drops: [ { type: "item", code: "fish-raw", quantity: { avg: 2, var: 0 } } ] }, { code: "emotionstates", states: [ { code: "fleeondamage", duration: 10, chance: 1, slot: 0, priority: 1, accumType: "max", whenHealthRelBelow: 0.3 }, { code: "saturated", duration: 1200, chance: 1, slot: 0, priority: 1, accumType: "sum", belowTempDuration: 600, belowTempThreshold: -5 }, { code: "aggressiveondamage", duration: 30, chance: 1, slot: 2, priority: 2, accumType: "noaccum" }, { code: "alarmherdondamage", chance: 1, slot: 1, priority: 1, accumType: "max" } ] }, { code: "taskai", aitasks: [ { code: "fishoutofwater", priority: 2.5, priorityForCancel: 2.6, movespeed: 0.005, animation: "flop", animationSpeed: 2 }, { code: "meleeattack", entityCodes: ["player", "chicken-rooster", "chicken-hen", "chicken-baby", "hare-*", "deer-*-baby", "deer-pudu-*-adult", "deer-water-*-adult", "deer-pampas-*-adult", "deer-redbrocket-*-adult"], priority: 2, damage: 3, damageTier: 2, damageType: "SlashingAttack", slot: 1, mincooldown: 1500, maxcooldown: 1500, attackDurationMs: 800, damagePlayerAtMs: 500, animation: "swim", animationSpeed: 2, sound: "player/stab" }, { code: "fleeentity", entityCodes: ["player"], priority: 2, movespeed: 0.06, seekingRange: 14, animation: "swim", animationSpeed: 2, whenInEmotionState: "fleeondamage" }, { code: "wander", priority: 1.2, priorityForCancel: 1.35, movespeed: 0.015, animationSpeed: 0.9, animation: "swim" }, { code: "fishmovefast", priority: 1.0, priorityForCancel: 1.5, movespeed: 0.045, animation: "swimfast", animationSpeed: 2.3 }, { code: "idle", priority: 0.9, priorityForCancel: 1.5, minduration: 1000, maxduration: 6000, mincooldown: 2000, maxcooldown: 20000, animation: "eat" }, { code: "idle", priority: 0.9, minduration: 500, maxduration: 1000, mincooldown: 2000, maxcooldown: 30000, animation: "idle" } ] } ], spawnconditions: { worldgen: { TriesPerChunk: { avg: 0.5, var: 0 }, tryOnlySurface: true, minLightLevel: 3, groupSize: { dist: "verynarrowgaussian", avg: 2, var: 3 }, insideBlockCodes: ["water-*"], minTemp: 4, maxTemp: 20 }, runtime: { group: "hostile", chance: 0.01, tryOnlySurface: true, minLightLevel: 3, groupSize: { dist: "verynarrowgaussian", avg: 2, var: 3 }, insideBlockCodes: ["water-*"], minTemp: 4, maxTemp: 20 } } } } Update: I got it fixed one line of code was off. I'll post this in mods but i plan on adding more fish later piranha1.0.1.zip piranha1.0.1.zip
-
Here is where we are at now: I created a new Creature.json file because that seemed like the correct way to do this/add entity Created a new en.lang file again just seemed like the correct thing to do moved all the stuff into the "piranha" folder Removed all "patches" folders converted into domain file based structure Reviewed all your changes as well. One issue I ran into was in my Creature.Json I have to have a "Skin: base" section for the texture part based on Salmon logic or the game will crash. Not sure what that is all about. Other issue is of course the fish acts like an item and not a entity when i add it in game via creative. So now I think I need to figure out how to get the fish to basically be a fish and not a item. Plus I broke the texture somehow so the fish texture is not working again. Latest version zipped and attached. /piranha/itemtypes/creature.json { code: "creature", class: "ItemCreature", maxstacksize: 64, variantgroups: [ { code: "type", states: [ "piranha" ] } ], shapeByType: { "*-piranha": { base: "piranha:entity/water/piranha" } }, texturesByType: { "*-piranha": { skin: {base: "piranha:entity/fish/piranha-red" }} }, creativeinventory: { "general": ["*"], "items": ["*"], "creatures": ["*"] }, materialDensity: 600, guiTransformByType: { "creature-piranha": { rotate: true, translation: { x: 0, y: 0, z: 0 }, rotation: { x: 177, y: 144, z: -41 }, origin: { x: 0.49, y: 0.18, z: 0.5 }, scale: 1.9 } }, tpHandTransformByType: { "creature-piranha": { translation: { x: -0.8, y: -0.55, z: -0.6 }, rotation: { x: 0, y: -62, z: 28 }, scale: 0.62 } }, fpHandTransformByType: { "creature-piranha": { rotation: { x: 26, y: -65, z: 2 }, origin: { x: 0.6, y: 0.3, z: 0.6 }, scale: 1.71 } }, groundTransformByType: { "creature-piranha": { scale: 4.06 } } } /piranha/lang/en.json { "item-creature-piranha": "Piranha", "item-dead-creature-piranha": "Dead Piranha" } /piranha/entities/water/piranha.json { code: "piranha", class: "EntityFish", hitboxSize: { x: 0.5, y: 0.25 }, eyeHeight: 0.2, drops: [], habitat: "Underwater", client: { renderer: "Shape", size: 0.7, shape: { base: "piranha:entity/water/piranha" }, texture: { base: "piranha:entity/fish/piranha-red" }, behaviors: [ { code: "repulseagents" }, { code: "controlledphysics", stepHeight: 0 }, { code: "interpolateposition" }, { code: "floatupwhenstuck", onlyWhenDead: true }, { code: "harvestable" }, { code: "despawn", minPlayerDistance: 8, belowLightLevel: 8, minSeconds: 300 }, ], animations: [ { code: "hurt", animation: "hurt", animationSpeed: 1, weight: 10, blendMode: "AddAverage" }, { code: "swim", animation: "swim" }, { code: "swimfast", animation: "swim" }, { code: "die", animation: "dead", }, { code: "flop", animation: "flopping" }, { code: "idle", animation: "idle", blendMode: "AddAverage", animationSpeed: 0.33, easeOutSpeed: 4, triggeredBy: { defaultAnim: true }, } ] }, server: { behaviors: [ { code: "repulseagents" }, { code: "controlledphysics", stepHeight: 1.1251 }, { code: "despawn", minPlayerDistance: 12, belowLightLevel: 8, minSeconds: 200 }, { code: "health", currenthealth: 5, maxhealth: 5, }, { code: "deaddecay", hoursToDecay: 96, decayedBlock: "carcass-tiny" }, { code: "floatupwhenstuck", onlyWhenDead: true }, { code: "harvestable", drops: [ { type: "item", code: "fish-raw", quantity: { avg: 2, var: 0 } } ] }, { code: "emotionstates", states: [ { code: "fleeondamage", duration: 10, chance: 1, slot: 0, priority: 1, accumType: "max", whenHealthRelBelow: 0.3 }, { code: "saturated", duration: 1200, chance: 1, slot: 0, priority: 1, accumType: "sum", belowTempDuration: 600, belowTempThreshold: -5 }, { code: "aggressiveondamage", duration: 30, chance: 1, slot: 2, priority: 2, accumType: "noaccum" }, { code: "alarmherdondamage", chance: 1, slot: 1, priority: 1, accumType: "max" } ] }, { code: "taskai", aitasks: [ { code: "fishoutofwater", priority: 2.5, priorityForCancel: 2.6, movespeed: 0.005, animation: "flop", animationSpeed: 2 }, { code: "meleeattack", entityCodes: ["player", "chicken-rooster", "chicken-hen", "chicken-baby", "hare-*", "deer-*-baby", "deer-pudu-*-adult", "deer-water-*-adult", "deer-pampas-*-adult", "deer-redbrocket-*-adult"], priority: 2, damage: 3, damageTier: 2, damageType: "SlashingAttack", slot: 1, mincooldown: 1500, maxcooldown: 1500, attackDurationMs: 800, damagePlayerAtMs: 500, animation: "swim", animationSpeed: 2, sound: "player/stab" }, { code: "fleeentity", entityCodes: ["player"], priority: 2, movespeed: 0.06, seekingRange: 14, animation: "swim", animationSpeed: 2, whenInEmotionState: "fleeondamage" }, { code: "wander", priority: 1.2, priorityForCancel: 1.35, movespeed: 0.015, animationSpeed: 0.9, animation: "swim" }, { code: "fishmovefast", priority: 1.0, priorityForCancel: 1.5, movespeed: 0.045, animation: "swimfast", animationSpeed: 2.3 }, { code: "idle", priority: 0.9, priorityForCancel: 1.5, minduration: 1000, maxduration: 6000, mincooldown: 2000, maxcooldown: 20000, animation: "eat" }, { code: "idle", priority: 0.9, minduration: 500, maxduration: 1000, mincooldown: 2000, maxcooldown: 30000, animation: "idle" } ] } ], spawnconditions: { worldgen: { TriesPerChunk: { avg: 0.5, var: 0 }, tryOnlySurface: true, minLightLevel: 3, groupSize: { dist: "verynarrowgaussian", avg: 2, var: 3 }, insideBlockCodes: ["water-*"], minTemp: 4, maxTemp: 20 }, runtime: { group: "hostile", chance: 0.01, tryOnlySurface: true, minLightLevel: 3, groupSize: { dist: "verynarrowgaussian", avg: 2, var: 3 }, insideBlockCodes: ["water-*"], minTemp: 4, maxTemp: 20 } } } } piranha1.0.1.zip
-
thinking the same thing to my self the other day. I'll work on one once i master mod making
-
I read that on the tut, you mean I need to add a new folder right as well as adjust the Json code. Is that what your referring too?
-
Lots of progress made on making a new fish but I ran into a issue I hope some one can point out my mistake. Making a new fish called "piranha". I used the Salmon shape and most of its code to make a new fish. I can see the new "item" in the creatures but it has not texture or icon. I'm hoping my code is correct: { code: "piranha", class: "EntityFish", hitboxSize: { x: 0.5, y: 0.25 }, eyeHeight: 0.2, drops: [], habitat: "Underwater", client: { renderer: "Shape", size: 0.7, shape: { base: "entity/water/piranha" }, texture: { base: "entity/fish/piranha-red" }, behaviors: [ { code: "repulseagents" }, { code: "controlledphysics", stepHeight: 0 }, { code: "interpolateposition" }, { code: "floatupwhenstuck", onlyWhenDead: true }, { code: "harvestable" }, { code: "despawn", minPlayerDistance: 8, belowLightLevel: 8, minSeconds: 300 }, ], animations: [ { code: "hurt", animation: "hurt", animationSpeed: 1, weight: 10, blendMode: "AddAverage" }, { code: "swim", animation: "swim" }, { code: "swimfast", animation: "swim" }, { code: "die", animation: "dead", }, { code: "flop", animation: "flopping" }, { code: "idle", animation: "idle", blendMode: "AddAverage", animationSpeed: 0.33, easeOutSpeed: 4, triggeredBy: { defaultAnim: true }, } ] }, server: { behaviors: [ { code: "repulseagents" }, { code: "controlledphysics", stepHeight: 1.1251 }, { code: "despawn", minPlayerDistance: 12, belowLightLevel: 8, minSeconds: 200 }, { code: "health", currenthealth: 5, maxhealth: 5, }, { code: "deaddecay", hoursToDecay: 96, decayedBlock: "carcass-tiny" }, { code: "floatupwhenstuck", onlyWhenDead: true }, { code: "harvestable", drops: [ { type: "item", code: "fish-raw", quantity: { avg: 2, var: 0 } } ] }, { code: "emotionstates", states: [ { code: "fleeondamage", duration: 10, chance: 1, slot: 0, priority: 1, accumType: "max", whenHealthRelBelow: 0.3 }, { code: "saturated", duration: 1200, chance: 1, slot: 0, priority: 1, accumType: "sum", belowTempDuration: 600, belowTempThreshold: -5 }, { code: "aggressiveondamage", duration: 30, chance: 1, slot: 2, priority: 2, accumType: "noaccum" }, { code: "alarmherdondamage", chance: 1, slot: 1, priority: 1, accumType: "max" } ] }, { code: "taskai", aitasks: [ { code: "fishoutofwater", priority: 2.5, priorityForCancel: 2.6, movespeed: 0.005, animation: "flop", animationSpeed: 2 }, { code: "meleeattack", entityCodes: ["player", "chicken-rooster", "chicken-hen", "chicken-baby", "hare-*", "deer-*-baby", "deer-pudu-*-adult", "deer-water-*-adult", "deer-pampas-*-adult", "deer-redbrocket-*-adult"], priority: 2, damage: 3, damageTier: 2, damageType: "SlashingAttack", slot: 1, mincooldown: 1500, maxcooldown: 1500, attackDurationMs: 800, damagePlayerAtMs: 500, animation: "swim", animationSpeed: 2, sound: "player/stab" }, { code: "fleeentity", entityCodes: ["player"], priority: 2, movespeed: 0.06, seekingRange: 14, animation: "swim", animationSpeed: 2, whenInEmotionState: "fleeondamage" }, { code: "wander", priority: 1.2, priorityForCancel: 1.35, movespeed: 0.015, animationSpeed: 0.9, animation: "swim" }, { code: "fishmovefast", priority: 1.0, priorityForCancel: 1.5, movespeed: 0.045, animation: "swimfast", animationSpeed: 2.3 }, { code: "idle", priority: 0.9, priorityForCancel: 1.5, minduration: 1000, maxduration: 6000, mincooldown: 2000, maxcooldown: 20000, animation: "eat" }, { code: "idle", priority: 0.9, minduration: 500, maxduration: 1000, mincooldown: 2000, maxcooldown: 30000, animation: "idle" } ] } ], spawnconditions: { worldgen: { TriesPerChunk: { avg: 0.5, var: 0 }, tryOnlySurface: true, minLightLevel: 3, groupSize: { dist: "verynarrowgaussian", avg: 2, var: 3 }, insideBlockCodes: ["water-*"], minTemp: 4, maxTemp: 20 }, runtime: { group: "hostile", chance: 0.01, tryOnlySurface: true, minLightLevel: 3, groupSize: { dist: "verynarrowgaussian", avg: 2, var: 3 }, insideBlockCodes: ["water-*"], minTemp: 4, maxTemp: 20 } } } } I uploaded the entire zip as well. What did I miss? When I ran ModMaker, it did not capture my new texture so I added that folder path. Did I miss something? piranha.zip