Time for a little fishing derby!

So… fishing. Wow, that ended up taking much longer than I expected. Several ideas that I had, or that I saw on the forums from A9.x just did not work. Luckily through a lot of trial and error I ended up utilizing the “hoe” as the basis for my fishingPole by using the action “MakeFertile” which is normally used to exchange a dirt block with a fertileblock. By doing this in conjunction with a new loot item, I was able to make a reasonably realistic fishing action.

I also added worms which can be found by digging up all kinds of dirt with different results, recipes for creating a fishing pole, and a recipe to add bait (worms) to the pole. I also set it up so that the pole degrades quickly during usage to simulate worm use, then it requires using more worms to “repair” the fishing pole.

I created a new loot container id that holds a new item “fishyFish” because I didn’t want to go through and create a dozen different kinds of fish names since they all have the same effect anyway.

Lets start by looking at the changes for the items.xml file. Here we see definitions for the basic fishingPole which is pretty much just a copy of a stick. Then the fishingPoleBaited which is where the action happens. Look closely at Action1 to see the magic. You could also adjust it’s durability by adjusting the degredation max under attributes. It’s set up so that as you level up, you can make better and better poles, getting more usage out of each worm. Then we have the fishyFish itself, which is a raw fish, then some new cooked food items, grilled Fish, fish stew, and a fish chowder. Lastly the worms themselves which are a very basic item. As usual, when adding these to your game, make sure you keep your item ids unique and in sequence.

<item id=”760″ name=”fishingPole”>
<property name=”Meshfile” value=”Items/Weapons/Melee/Stick/stick” />
<property name=”Material” value=”wood” />
<property name=”HoldType” value=”16″ />
<property name=”CustomIcon” value=”stick” />
<property name=”CustomIconTint” value=”ffd700″ />
<property name=”FuelValue” value=”72″ />
<property name=”Group” value=”Resources” />
<property class=”Preview”>
<property name=”Zoom” value=”24″ />
<property name=”Pos” value=”-0.02,-0.1″ />
<property name=”Rot” value=”90,45,0″ />
</property>
</item>
<item id=”761″ name=”fishingPoleBaited”>
<property name=”Meshfile” value=”Items/Weapons/Melee/Stick/stick” />
<property name=”Material” value=”wood” />
<property name=”HoldType” value=”16″ />
<property name=”CustomIcon” value=”stick” />
<property name=”CustomIconTint” value=”ffd700″ />
<property name=”Stacknumber” value=”1″ />
<property name=”RepairTools” value=”worms” />
<property name=”FuelValue” value=”72″ />
<property class=”Action1″>
<!– UseAction –>
<property name=”Class” value=”MakeFertile” />
<property name=”Delay” value=”30″ />
<property name=”Block_range” value=”4″ />
<property name=”DamageBlock” value=”1″ />
<property name=”Fertileblock” value=”fishingLoot” />
<property name=”Adjacentblock” value=”fishingLoot” />
<property name=”Focused_blockname_1″ value=”water” />
<property name=”Focused_blockname_2″ value=”waterMoving” />
<property name=”Sound_start” value=”swoosh” />
<property name=”Sound_end” value=”UseActions/bucketfill_water” />
<property name=”Stamina_usage” value=”5″ />
</property>
<property name=”Group” value=”Tools/Traps” />
<property class=”Attributes”>
<property name=”EntityDamage” value=”1,5″ />
<property name=”BlockDamage” value=”1,2″ />
<property name=”DegradationMax” value=”5,30″ />
<property name=”DegradationRate” value=”1,1″ />
</property>
<property class=”Preview”>
<property name=”Zoom” value=”24″ />
<property name=”Pos” value=”-0.02,-0.1″ />
<property name=”Rot” value=”90,45,0″ />
</property>
</item>
<item id=”763″ name=”fishyFish”>
<property name=”Meshfile” value=”Items/Food/meat_rabbit” />
<property name=”Material” value=”organic” />
<property name=”CustomIcon” value=”rottingFlesh” />
<property name=”CustomIconTint” value=”ffd700″ />
<property name=”HoldType” value=”21″ />
<property class=”Action1″>
<property name=”Class” value=”Eat” />
<property name=”Delay” value=”1.0″ />
<property name=”Use_time” value=”…” />
<property name=”Gain_health” value=”5″ />
<property name=”Gain_food” value=”10″ />
<property name=”Gain_water” value=”10″ />
<property name=”Gain_stamina” value=”5″ />
<property name=”Gain_wellness” value=”.2″ />
<property name=”Sound_start” value=”UseActions/player_eating” />
</property>
<property name=”Group” value=”Food/Cooking” />
<property class=”Preview”>
<property name=”Zoom” value=”5″ />
<property name=”Pos” value=”0,-1″ />
<property name=”Rot” value=”90,45,0″ />
</property>
</item>
<item id=”764″ name=”fishGrilled”>
<property name=”Meshfile” value=”Items/Food/meat_rabbit” />
<property name=”Material” value=”organic” />
<property name=”CustomIcon” value=”rottingFlesh” />
<property name=”CustomIconTint” value=”b4895a” />
<property name=”HoldType” value=”21″ />
<property class=”Action1″>
<property name=”Class” value=”Eat” />
<property name=”Delay” value=”1.0″ />
<property name=”Use_time” value=”…” />
<property name=”Gain_health” value=”10″ />
<property name=”Gain_food” value=”20″ />
<property name=”Gain_water” value=”5″ />
<property name=”Gain_stamina” value=”20″ />
<property name=”Gain_wellness” value=”1″ />
<property name=”Sound_start” value=”UseActions/player_eating” />
</property>
<property name=”Smell” value=”LargeSmell” />
<property name=”Group” value=”Food/Cooking” />
<property class=”Preview”>
<property name=”Zoom” value=”5″ />
<property name=”Pos” value=”0,-1″ />
<property name=”Rot” value=”90,45,0″ />
</property>
</item>
<item id=”765″ name=”fishStew”>
<property name=”Meshfile” value=”Items/Food/venison_stew” />
<property name=”Material” value=”organic” />
<property name=”HoldType” value=”23″ />
<property name=”CustomIcon” value=”venisonStew” />
<property name=”CustomIconTint” value=”b4895a” />
<property class=”Action1″>
<property name=”Class” value=”Eat” />
<property name=”Delay” value=”1.0″ />
<property name=”Use_time” value=”…” />
<property name=”Gain_health” value=”10″ />
<property name=”Gain_food” value=”30″ />
<property name=”Gain_water” value=”25″ />
<property name=”Gain_wellness” value=”1.6″ />
<property name=”Sound_start” value=”UseActions/player_drinking” />
</property>
<property name=”Smell” value=”LargeSmell” />
<property name=”Group” value=”Food/Cooking” />
<property class=”Preview”>
<property name=”Zoom” value=”5″ />
<property name=”Pos” value=”0,-1″ />
<property name=”Rot” value=”90,45,0″ />
</property>
</item>
<item id=”766″ name=”fishChowder”>
<property name=”Meshfile” value=”Items/Food/venison_stew” />
<property name=”Material” value=”organic” />
<property name=”HoldType” value=”23″ />
<property name=”CustomIcon” value=”venisonStew” />
<property name=”CustomIconTint” value=”b4895a” />
<property class=”Action1″>
<property name=”Class” value=”Eat” />
<property name=”Delay” value=”1.0″ />
<property name=”Use_time” value=”…” />
<property name=”Gain_health” value=”10″ />
<property name=”Gain_food” value=”30″ />
<property name=”Gain_water” value=”25″ />
<property name=”Gain_wellness” value=”1.6″ />
<property name=”Sound_start” value=”UseActions/player_drinking” />
</property>
<property name=”Smell” value=”LargeSmell” />
<property name=”Group” value=”Food/Cooking” />
<property class=”Preview”>
<property name=”Zoom” value=”5″ />
<property name=”Pos” value=”0,-1″ />
<property name=”Rot” value=”90,45,0″ />
</property>
</item>
<item id=”767″ name=”worms”>
<property name=”Meshfile” value=”Items/Food/vegetable_potato_baked” />
<property name=”Material” value=”organic” />
<property name=”HoldType” value=”16″ />
<property name=”CustomIcon” value=”trapSpikesDamage04″ />
<property name=”CustomIconTint” value=”ffd700″ />
<property name=”Stacknumber” value=”250″ />
<property name=”RepairTime” value=”0.5″ />
<property name=”RepairAmount” value=”3″ />
</item>

Next we have some new recipes to make the fishing pole, the baited fishing pole, the grilled fish, and the fish stew and chowders.

<recipe name=”fishGrilled” count=”1″ scrapable=”False” craft_area=”campfire” craft_tool=”cookingGrill” craft_time=”15″ craft_exp_gain=”2″ learn_exp_gain=”20″ >
<ingredient name=”fishyFish” count=”1″/>
</recipe>
<recipe name=”fishStew” count=”1″ scrapable=”False” craft_area=”campfire” craft_tool=”cookingPot” craft_time=”15″ craft_exp_gain=”2″ learn_exp_gain=”20″ >
<ingredient name=”bottledWater” count=”1″/>
<ingredient name=”fishyFish” count=”1″/>
<ingredient name=”potato” count=”1″/>
<ingredient name=”mushrooms” count=”1″/>
</recipe>
<recipe name=”fishChowder” count=”1″ scrapable=”False” craft_area=”campfire” craft_tool=”cookingPot” craft_time=”15″ craft_exp_gain=”2″ learn_exp_gain=”20″ >
<ingredient name=”bottledWater” count=”1″/>
<ingredient name=”fishyFish” count=”1″/>
<ingredient name=”potato” count=”1″/>
<ingredient name=”corn” count=”1″/>
</recipe>

<recipe name=”fishingPole” count=”1″ scrapable=”False” craft_time=”5″ craft_exp_gain=”2″ learn_exp_gain=”20″ >
<ingredient name=”stick” count=”1″ grid=”-2, 2″/>
<ingredient name=”stick” count=”1″ grid=”-1, 1″/>
<ingredient name=”stick” count=”1″ grid=”0, 0″/>
<ingredient name=”stick” count=”1″ grid=”1, -1″/>
<ingredient name=”stick” count=”1″ grid=”2, -2″/>
<ingredient name=”yuccaFibers” count=”1″ grid=”2, -1″/>
<ingredient name=”yuccaFibers” count=”1″ grid=”2, 0″/>
<ingredient name=”fishingWeight” count=”1″ grid=”2, 1″/>
</recipe>
<recipe name=”fishingPoleBaited” count=”1″ scrapable=”False” craft_time=”5″ craft_exp_gain=”2″ learn_exp_gain=”20″ >
<ingredient name=”fishingPole” count=”1″ grid=”0, 0″/>
<ingredient name=”worms” count=”1″ grid=”1,-1″/>
</recipe>

In the blocks.xml file we just need to add one item, the fishingLoot that is created when you right-click on water with the fishingPoleBaited equipped.

<block id=”1416″ name=”fishingLoot”>
<property name=”Class” value=”Loot” />
<property name=”Material” value=”wood” />
<property name=”Shape” value=”Ext3dModel” />
<property name=”Mesh” value=”models” />
<property name=”Model” value=”LootContainers/shopping_basket” param1=”main_mesh” />
<property name=”LootList” value=”62″ />
</block>

The key here is the lootlist value which needs to match up with the lootlist id in the loot.xml file. That change looks like this:

<!– fishing loot –>
<lootcontainer id=”62″ count=”1,2″ size=”1,2″ sound_open=”UseActions/open_corpse” sound_close=”UseActions/close_corpse”>
<item group=”clothes” prob=”0.05″ />
<item name=”fishyFish” count=”1,2″ prob=”.75″/>
<item name=”worms” count=”1″ prob=”.1″/>
</lootcontainer>

Here you can see that it will go through the container 1-2 times (count=”1,2″) and then there is a 5% chance of a clothing item (for fun), a 75% of 1-2 fish chunks, and a 10% of a worm (consider it to be ‘usable bait’).

The last thing I did was to go through the blocks.xml file and add this line:

<drop event=”Destroy” name=”worms” count=”1,2″ prob=”.2″ /> <!– vary the count and probability based on the kind of soil to your own liking –>

To all “soil” type blocks like belowL

<block id=”4″ name=”plainsGround”>
<property name=”Material” value=”forestGround” />
<property name=”Shape” value=”Terrain” />
<property name=”Mesh” value=”terrain” />
<property name=”Texture” value=”396,2,2,2,2,2″ />
<drop event=”Destroy” name=”fertileDirt” />
<drop event=”Destroy” name=”worms” count=”1,2″ prob=”.2″ /> <!– adding a chance for worms! –>
<property name=”DropScale” value=”2″ />
<property name=”LPHardnessScale” value=”2″ />
<property name=”Map.Color” value=”110,95,49″ />
</block>

 

As always, you take full responsibility for modding your game. If you break it, you’ll need to do a steam verify and restore to default. Always make a backup of your files before working on them, and remember that if you play on a server, the server will over-write your local modded files with it’s files, so make a copy of your modded files in a safe place!

About

Oldschool gamer. Professional developer by day, gamer by night. I try to keep myself young through lots and lots and lots of game playing. So far I've been successful.

Leave a Reply

more stuf?