
Mods / Tiered Superiority
Author: Landar
Side: Both
Created: Sep 13th 2023 at 4:05 PM
Last modified: Jan 29th at 3:43 PM
Downloads: 2175
Follow Unfollow 45
Latest file for
v1.20.3:
tieredsuperiority_1.1.3.zip
1-click install
Now supports ConfigLib! This is an optional dependancy, configs are still available the usual way.
If you have a world that has already been loaded with Tiered Superiority v1.1.2 or earlier, you'll need to delete your old config file and regenerate it by loading your world afterwards. This applies whether or not you plan on using ConfigLib.
Features:
Tired of your hard-earned tools vanishing into dust after just a few swings?
This mod compares your tool's tool tier and the targeted block's mining tier to give a chance to refund some durability when the block is broken.
Refund Chance = (tool tier - mining tier) x 10% (by default).
To let you know that your tool has been refunded durability, a small 'ding' sound will also play upon a successful refund.
Tools that usually have a tool tier of 0 will act as if they are of the tier they're made of for the sake of calculating refund chances. For example, this means that a bronze shovel with a tool tier of 0 will still act as "tool tier 3" only when calculating refund chances.
Tools that this mod affects include:
- Axe
- Hammer (also when smithing)
- Hoe
- Knife
- Pickaxe
- Propick
- Saw
- Scythe
- Shears
- Shovel
Mod Configs:
A config file is available to adjust the refund chances, as well as to enable/disable the refund sound.
The config file can be found at 'VintageStoryData/ModConfig/tieredsuperiorityconfig.json' and will be generated upon first loading of a world with this mod enabled.
Version | For Game version | Downloads | Release date | Changelog | Download | 1-click mod install* |
---|---|---|---|---|---|---|
v1.1.3 | 497 | Jan 29th at 3:43 PM | Show | tieredsuperiority_1.1.3.zip | Install now | |
v1.1.2 | 621 | Apr 19th 2024 at 12:42 AM | Show | tieredsuperiority_1.1.2.zip | Install now | |
v1.1.1 | 483 | Oct 17th 2023 at 2:03 AM | Show | tieredsuperiority_1.1.1.zip | Install now | |
v1.1.0 | 305 | Sep 21st 2023 at 4:43 AM | Show | tieredsuperiority_1.1.0.zip | Install now | |
v1.0.0 | 253 | Sep 13th 2023 at 4:06 PM | Show | tieredsuperiority_1.0.0.zip | Install now |
This mod is causing any tool it replaces the breaking tool with to take on its durability (If you have a chert shovel with a max durability of 60 and you have a Steel shovel with 3000 and the chert shovel breaks the steel shovel will immediately replace it and have 60/3000 durability) Update: After a few weeks its happened again even with this mod off but it seems having it on guarantees this to happen
weird request: could a config option be added to make stone tools not benefit from this mod? I think that's my only real gripe with this, as it can (randomly) add a ton of lifespan to stone tools
Mlodyowiec sorry, I accidentally uploaded a version with my debug logs on that I only caught a few hours after posting. The current version (still labeled v1.1.3) should have that fixed
For some reason after the latest update there's a chat notification:
Durability Diff:1
Refund chance 15 x (1-0) = 15%
Doesn't seem like I can turn it off, is there any way to disable it?
Configlib support, pls?
confirmed still working with game version v1.20.0-rc.1
Hi there, similar vein to previous comment, the scythe behaves strangely and frequently leads to crashes. Here's the associated log:
15.4.2024 06:02:27 [Error] Exception: Object reference not set to an instance of an object.
at TieredSuperiority.src.TSBehavior.PostfixOnBlockBrokenWith(CollectibleObject __instance, Entity byEntity, ItemSlot itemslot, BlockSelection blockSel) in C:\Users\heatb\Desktop\game dev\_vintage story modding\mods\TieredSuperiority\TieredSuperiority\src\TSBehavior.cs:line 64
at Vintagestory.GameContent.ItemShears.OnBlockBrokenWith_Patch3(ItemShears this, IWorldAccessor world, Entity byEntity, ItemSlot itemslot, BlockSelection blockSel, Single dropQuantityMultiplier)
at Vintagestory.GameContent.ItemScythe.performActions(Single secondsPassed, EntityAgent byEntity, ItemSlot slot, BlockSelection blockSelection) in VSSurvivalMod\Item\ItemScythe.cs:line 172
at Vintagestory.GameContent.ItemScythe.OnHeldAttackStep(Single secondsPassed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSelection, EntitySelection entitySel) in VSSurvivalMod\Item\ItemScythe.cs:line 135
at Vintagestory.API.Common.CollectibleObject.OnHeldUseStep(Single secondsPassed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel) in VintagestoryApi\Common\Collectible\Collectible.cs:line 1143
at Vintagestory.Server.ServerSystemInventory.callOnUsing(ItemSlot slot, ServerPlayer player, BlockSelection blockSel, EntitySelection entitySel, Single& secondsPassed, Boolean callStop) in VintagestoryLib\Server\Systems\Inventory.cs:line 519
at Vintagestory.Server.ServerSystemInventory.HandleHandInteraction(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\Systems\Inventory.cs:line 252
at Vintagestory.Server.ServerMain.ProcessNetMessage(NetIncomingMessage msg, NetServer mainSocket) in VintagestoryLib\Server\ServerMainNetworking.cs:line 138
Something is going on with the scyth and this mod. Even with trim grass function set on it will remove all grass as if the remove grass function is set on. Once I remove the mod and try again the scyth behaves as normal. The mod also seems to be burning the durability of the scyth at a higher rate than it should, at least double, when cutting grass.
This mod is a really cool Idea. I makes total sense that the material you are breaking should have an impact on how quickly it breaks the tool you are using. A steel shovel is never going to be broken by dirt. and a steel pickaxe would have almost no wear when mining sand stone.
Issue on multiplayer where breaking a tool while destroying a block will throw an exception to the server resulting in immediate disconnect (game version 1.18.13):
Bug?:
System.NullReferenceException: Object reference not set to an instance of an object.
at TieredSuperiority.src.TSBehaviorHammer.OnHeldAttackStop(Single secondsPassed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSelection, EntitySelection entitySel, EnumHandHandling& handling) in C:\Users\heatb\Desktop\game dev\_vintage story modding\mods\TieredSuperiority\TieredSuperiority\src\TSBehaviorHammer.cs:line 69
at Vintagestory.GameContent.ItemHammer.OnHeldAttackStop_Patch1(ItemHammer this, Single secondsPassed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel)
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleHandInteraction(Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 332
at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnGameTick(Single dt) in VintagestoryLib\Client\Systems\Player\MouseInWorldInteractions.cs:line 165
at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world) in VintagestoryLib\Common\EventManager.cs:line 59
at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 796
at Vintagestory.Client.NoObf.ClientMain.MainGameLoop(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 712
at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 200
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 668
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 643
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 76
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 312
at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 129
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93