Jump to content

XLib and XSkills


Xandu

Recommended Posts

1 hour ago, Michał Rychlewski said:

Game crashes when trying to smith on multiplayer. 

Running on 64 bit Windows with 16 GB RAM 
Version: v1.16.0 (Stable)15.01.2022 18:41:02: Critical error occurred
System.NullReferenceException: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
   w XSkills.BlockEntityAnvilPatch.CheckIfFinishedPostfix(BlockEntityAnvil __instance, AnvilState& __state, IPlayer byPlayer)
   w Vintagestory.GameContent.BlockEntityAnvil.CheckIfFinished_Patch4(BlockEntityAnvil this, IPlayer byPlayer)
   w Vintagestory.GameContent.BlockEntityAnvil.TryPut_Patch2(BlockEntityAnvil this, IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
   w Vintagestory.GameContent.BlockEntityAnvil.OnPlayerInteract(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
   w Vintagestory.GameContent.BlockAnvil.OnBlockInteractStart(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
   w Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.TryBeginUseBlock(Block selectedBlock, BlockSelection blockSelection)
   w Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleMouseInteractionsBlockSelected(Single dt)
   w Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnFinalizeFrame(Single dt)
   w Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt)
   w Vintagestory.Client.NoObf.ClientMain.TriggerRenderStage(EnumRenderStage stage, Single dt)
   w Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt)
   w _lb8GGBWOchQLOU3RFFw58Ijkh1D._1NlBQQ8qS5idQptIBQaAbARuOfxA(Single )
   w _vFhcDU5n6Z0hUte90jdaxlrDjR5._HuDdfzha8ZKZvU2y0RbH58r7VzR(Single )
   w _vFhcDU5n6Z0hUte90jdaxlrDjR5._XZOFA2JA54yZjH15yys9W7vL9hj(Single )
   w Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(Object sender, FrameEventArgs e)
   w System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   w OpenTK.GameWindow.RaiseRenderFrame(Double elapsed, Double& timestamp) w C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:wiersz 476
   w OpenTK.GameWindow.DispatchRenderFrame() w C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:wiersz 452
   w OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second) w C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:wiersz 375
   w _FKpOpQGqqf3cJWdQyWh1ysxsDBb._pYad7oBcQ5qtzQkYGDu4NFHQxhK(_5x3PJgrln4IBXPDNSNN0fecxKFb , String[] )
   w _sejP0Tcz8wTg70ptIdRr3CwQmrE._pYad7oBcQ5qtzQkYGDu4NFHQxhK(ThreadStart )
-------------------------------

For me everything works fine. Do you have any other mods that does things with anvils? What did you smith?

Link to comment
Share on other sites

Ditto on Survival skill not gaining any experience. Everything else seems to work fine for now. All other skills gain experience properly and no crashes in any capacity, tested for over several hours in singleplayer.

On a side note, I'll admit I haven't checked all the pages here to see if this has been asked already but, does "Exclusive" mean you're able to pick only a single skill from a tree to rank up to level 3? If yes, have you planned on ever making it possible to remove the limitation via a config option?

And just because "Happy Meal" can be this risky to use, I think I'll just skip over it. I'd toss the idea to make an alternative version of the skill that does something else for the people who want to max the skill out but don't want to risk future problems but I'm just spitballing.

Thanks for the quality mod. It's a breath of fresh air to my ongoing save. Kudos for continually updating it.

RE: Survival skill. I'm using the v0.6.6 version.

Edited by Vincent Morgan
  • Like 1
Link to comment
Share on other sites

39 minutes ago, Vincent Morgan said:

Ditto on Survival skill not gaining any experience. Everything else seems to work fine for now. All other skills gain experience properly and no crashes in any capacity, tested for over several hours in singleplayer.

On a side note, I'll admit I haven't checked all the pages here to see if this has been asked already but, does "Exclusive" mean you're able to pick only a single skill from a tree to rank up to level 3? If yes, have you planned on ever making it possible to remove the limitation via a config option?

And just because "Happy Meal" can be this risky to use, I think I'll just skip over it. I'd toss the idea to make an alternative version of the skill that does something else for the people who want to max the skill out but don't want to risk future problems but I'm just spitballing.

Thanks for the quality mod. It's a breath of fresh air to my ongoing save. Kudos for continually updating it.

RE: Survival skill. I'm using the v0.6.6 version.

Ok. I will look into the survival skill. 

Yeah you can only learn one of these abilities. But requirements are defined in: xskills_v0.6.6/assets/xskills/skills/[skillname].json. You can change these files which is not recommended because you have to do it for every version. But json patching should also work.

You can deactivate the ability in the configuration files if you don't want to use it.

Thanks for your appreciation.

Link to comment
Share on other sites

Hi, i uploaded a small update. It should primarily fix the survival skill experience bug. I was accidentally resetting a time counter to zero before i used it to calculate the experience you should get.🤦‍♂️

-fixed not getting experience for the survival skill
-hopefully fixed an issue with the firepit block entity this time. i am still not able to reproduce it so i can't really test it.

Link to comment
Share on other sites

Client crashes when attempting to put a Copper Ingot on an Anvil on xskills v0.6.6 and v0.6.7

edit: appears to be a conflict with this mod ( https://mods.vintagestory.at/show/mod/1910 )

Running on 64 bit Windows with 32 GB RAM 
Version: v1.16.0 (Stable)1/17/2022 9:09:20 PM: Critical error occurred
System.NullReferenceException: Object reference not set to an instance of an object.
   at XSkills.BlockEntityAnvilPatch.CheckIfFinishedPostfix(BlockEntityAnvil __instance, AnvilState& __state, IPlayer byPlayer)
   at Vintagestory.GameContent.BlockEntityAnvil.CheckIfFinished_Patch4(BlockEntityAnvil this, IPlayer byPlayer)
   at Vintagestory.GameContent.BlockEntityAnvil.TryPut_Patch2(BlockEntityAnvil this, IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
   at Vintagestory.GameContent.BlockEntityAnvil.OnPlayerInteract(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
   at Vintagestory.GameContent.BlockAnvil.OnBlockInteractStart(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.TryBeginUseBlock(Block selectedBlock, BlockSelection blockSelection)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleMouseInteractionsBlockSelected(Single dt)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnFinalizeFrame(Single dt)
   at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt)
   at Vintagestory.Client.NoObf.ClientMain.TriggerRenderStage(EnumRenderStage stage, Single dt)
   at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt)
   at _lb8GGBWOchQLOU3RFFw58Ijkh1D._1NlBQQ8qS5idQptIBQaAbARuOfxA(Single )
   at _vFhcDU5n6Z0hUte90jdaxlrDjR5._HuDdfzha8ZKZvU2y0RbH58r7VzR(Single )
   at _vFhcDU5n6Z0hUte90jdaxlrDjR5._XZOFA2JA54yZjH15yys9W7vL9hj(Single )
   at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(Object sender, FrameEventArgs e)
   at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   at OpenTK.GameWindow.RaiseRenderFrame(Double elapsed, Double& timestamp) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 476
   at OpenTK.GameWindow.DispatchRenderFrame() in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 452
   at OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 375
   at _FKpOpQGqqf3cJWdQyWh1ysxsDBb._pYad7oBcQ5qtzQkYGDu4NFHQxhK(_5x3PJgrln4IBXPDNSNN0fecxKFb , String[] )
   at _sejP0Tcz8wTg70ptIdRr3CwQmrE._pYad7oBcQ5qtzQkYGDu4NFHQxhK(ThreadStart )
-------------------------------

Event Log entries containing Vintagestory.exe, the latest 3
==================================
{ TimeGenerated = 1/4/2022 2:43:52 PM, Site = , Source = Windows Error Reporting, Message = Fault bucket 1425832529100330876, type 5
Event Name: RADAR_PRE_LEAK_64
Response: Not available
Cab Id: 0

Problem signature:
P1: Vintagestory.exe
P2: 1.15.10.0
P3: 10.0.19042.2.0.0
P4: 
P5: 
P6: 
P7: 
P8: 
P9: 
P10: 

Attached files:
\\?\D:\Users\gleib\AppData\Local\Temp\RDR52A4.tmp\empty.txt
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER52C4.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER52F4.tmp.xml

These files may be available here:


Analysis symbol: 
Rechecking for solution: 0
Report Id: d7fa1102-485b-4e92-8b63-c78b57299c90
Report Status: 268435456
Hashed bucket: 5d54ad1cf22fc6ba33c993217e38d77c
Cab Guid: 0 }

 

Edited by Gage Leibman
  • Thanks 1
Link to comment
Share on other sites

10 hours ago, Gage Leibman said:

Client crashes when attempting to put a Copper Ingot on an Anvil on xskills v0.6.6 and v0.6.7

edit: appears to be a conflict with this mod ( https://mods.vintagestory.at/show/mod/1910 )

Running on 64 bit Windows with 32 GB RAM 
Version: v1.16.0 (Stable)1/17/2022 9:09:20 PM: Critical error occurred
System.NullReferenceException: Object reference not set to an instance of an object.
   at XSkills.BlockEntityAnvilPatch.CheckIfFinishedPostfix(BlockEntityAnvil __instance, AnvilState& __state, IPlayer byPlayer)
   at Vintagestory.GameContent.BlockEntityAnvil.CheckIfFinished_Patch4(BlockEntityAnvil this, IPlayer byPlayer)
   at Vintagestory.GameContent.BlockEntityAnvil.TryPut_Patch2(BlockEntityAnvil this, IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
   at Vintagestory.GameContent.BlockEntityAnvil.OnPlayerInteract(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
   at Vintagestory.GameContent.BlockAnvil.OnBlockInteractStart(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.TryBeginUseBlock(Block selectedBlock, BlockSelection blockSelection)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleMouseInteractionsBlockSelected(Single dt)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnFinalizeFrame(Single dt)
   at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt)
   at Vintagestory.Client.NoObf.ClientMain.TriggerRenderStage(EnumRenderStage stage, Single dt)
   at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt)
   at _lb8GGBWOchQLOU3RFFw58Ijkh1D._1NlBQQ8qS5idQptIBQaAbARuOfxA(Single )
   at _vFhcDU5n6Z0hUte90jdaxlrDjR5._HuDdfzha8ZKZvU2y0RbH58r7VzR(Single )
   at _vFhcDU5n6Z0hUte90jdaxlrDjR5._XZOFA2JA54yZjH15yys9W7vL9hj(Single )
   at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(Object sender, FrameEventArgs e)
   at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   at OpenTK.GameWindow.RaiseRenderFrame(Double elapsed, Double& timestamp) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 476
   at OpenTK.GameWindow.DispatchRenderFrame() in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 452
   at OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 375
   at _FKpOpQGqqf3cJWdQyWh1ysxsDBb._pYad7oBcQ5qtzQkYGDu4NFHQxhK(_5x3PJgrln4IBXPDNSNN0fecxKFb , String[] )
   at _sejP0Tcz8wTg70ptIdRr3CwQmrE._pYad7oBcQ5qtzQkYGDu4NFHQxhK(ThreadStart )
-------------------------------

Event Log entries containing Vintagestory.exe, the latest 3
==================================
{ TimeGenerated = 1/4/2022 2:43:52 PM, Site = , Source = Windows Error Reporting, Message = Fault bucket 1425832529100330876, type 5
Event Name: RADAR_PRE_LEAK_64
Response: Not available
Cab Id: 0

Problem signature:
P1: Vintagestory.exe
P2: 1.15.10.0
P3: 10.0.19042.2.0.0
P4: 
P5: 
P6: 
P7: 
P8: 
P9: 
P10: 

Attached files:
\\?\D:\Users\gleib\AppData\Local\Temp\RDR52A4.tmp\empty.txt
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER52C4.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER52F4.tmp.xml

These files may be available here:


Analysis symbol: 
Rechecking for solution: 0
Report Id: d7fa1102-485b-4e92-8b63-c78b57299c90
Report Status: 268435456
Hashed bucket: 5d54ad1cf22fc6ba33c993217e38d77c
Cab Guid: 0 }

 

Even when i have installed the mod  (https://mods.vintagestory.at/show/mod/1910) the game does not crash for me. Instead the mod just breaks a lot of the abilities.

Do you have any other mod that does things with anvils that could cause this?

Link to comment
Share on other sites

8 hours ago, Xandu said:

Even when i have installed the mod  (https://mods.vintagestory.at/show/mod/1910) the game does not crash for me. Instead the mod just breaks a lot of the abilities.

Do you have any other mod that does things with anvils that could cause this?

That's the only one, and removing it has fixed the problem. Odd that it's not reproducible on your end. 

Link to comment
Share on other sites

40 minutes ago, Hexedian said:

I'm not sure if this bug report belongs here, or in the instruments mod, but the Happy Meal ability gave me a delicious portion of  game:recipeingredient-item-fruit-insturmentalcase  (there's also a typo in instrument)

2022-01-18_19-56-41.png.ef950dae08cdc4af1b2de00b193c7a1c.png

insturmentalcase is a vanilla property used in recipe ingredients, for whatever reason. I'm not really sure why it exists, but it has nothing to do with the instruments mod. It looks like it's referring to fruit, but not any of the variants for it.

  • Haha 2
Link to comment
Share on other sites

2 hours ago, Gage Leibman said:

That's the only one, and removing it has fixed the problem. Odd that it's not reproducible on your end. 

Might you have an old copy still in the cache directory? Happened to me twice in migrating to 16. Would have thought once would be enough, but no... 🥴

Link to comment
Share on other sites

7 hours ago, Hexedian said:

I'm not sure if this bug report belongs here, or in the instruments mod, but the Happy Meal ability gave me a delicious portion of  game:recipeingredient-item-fruit-insturmentalcase  (there's also a typo in instrument)

2022-01-18_19-56-41.png.ef950dae08cdc4af1b2de00b193c7a1c.png

The Happy Meal ability should just use ingredients that are already used in the recipes. So somewhere in the recipe it seems to be an ingredient as l33tmaan already mentioned. I assume that it is not a big deal in vanilla since no item with the actual name in the base game exists but it seems like the mod is adding an item with this exact name. 

Link to comment
Share on other sites

9 hours ago, Gage Leibman said:

That's the only one, and removing it has fixed the problem. Odd that it's not reproducible on your end. 

The way the mod is implemented in harmony should disable most other harmony patches. So with the mod the xskills function that caused the crash shouldn't even be called. Which would also disable most of the metalworking abilities since there are mostly implemented with this function.

Link to comment
Share on other sites

1 hour ago, Gage Leibman said:

I have the Desalinate ability from Cooking. I have a cooking pot with 4*4 liters of water (4 liters in each slot for total of 16 liters) -- it doesn't seem to do anything. There's no progress bar, no recipe description. The only other mod I have is Primitive Survival (https://mods.vintagestory.at/primitivesurvival)

would you kindly try without primitive survival

 

 

Link to comment
Share on other sites

I've been playing with the mod for a few days and I have to say it's amazing. It's a lot of fun and has made me do things I wouldn't bother with otherwise, just because of the promise of cool abilities.

Before I continue, I must say that I'm playing with double experience because I wanted to sort of "catch up" to the time I've spent playing without it. I also allowed myself to specialize in all skills, because since I'm playing solo, I have to do everything. Also all the cool skills are locked behind the specializations, which is a cool concept but I'm grateful for the ability to change the limit in the config files.

Some feedback:

Master Smith is incredibly strong. The fact that it needs Metalworker is the one thing that would keep it in check on a multiplayer server. It makes Heating Hits, Finishing Touch and Automated Smithing obsolete. You can work anything and everything in mere seconds without breaking a sweat and it's lovely. I do understand that working the hammer is a skill one must learn and improve on, but by the time you get Master Smith you're probably a bit tired of moving voxels around manually so it actually avoids boring repeated gameplay. I would still consider increasing its level or something to make it a bit harder to get. But at this point, on solo play, I can't live without it so I'd say it's the best skill out of the entire tree.

Helvehammers still let you get experience. Not sure if intended, but I was happy to find that out because even with double experience I still needed over half a year of working with nothing but iron and steel to get to level 11. And before Master Smith getting that much experience working nothing but blooms and plates is very grindy.

The Blacksmith skill quality feature is nice, if a bit RNG. The durability bonuses, at least up to quality of 5.0 aren't anything special but I would still need to make higher level ones to really be able to tell. The biggest thing about it is that I've found a way to get very high quality plates. When making plates, if you have two plates of a differing quality in your inventory, their qualities average out, which I assume is the intented way of dealing with stacking plates of different qualities. But on the other hand, if you put a plate down on the ground, any other plates you stack on top of it will inherit its quality in full. As in:

If you put a plate with a quality of 2.34 on the ground and then stack a plate with a quality of 5.15 on top of it, then take both plates from the stack both will be with a quality of 2.34. This works the other way around as well, which has let me get 30+ plates with the exact same quality of 5.15. You just put the highest quality plate on the ground and then stack the rest on top of it. All the while you check each new plate you make to see if it has a higher quality which, if it does, you make a new stack on the ground with it and then toss all your other plates on top to upgrade them.

Speaking of quality, one issue I have with it is that if even if I make a sword blade with a quality of 5.0, the fact that I then need to craft it with a stick which has no quality whatsoever, results in a sword with a quality much lower than what I had. It's rather disappointing.

Huge Stomach, Beemaster, Master Smith and Canteen Cook are the best abilites to ever exist, hands down. I think you've spoiled me and I wouldn't be able to play without them.

Addendum: I forgot to talk about Geologist. That skill is also incredibly strong. At max level it's a propick integrated into a normal pickaxe. I feel like it should instead either enable the secondary tool mod for prospecting picks or simply transferring the currently existing functionality from the normal pickaxes to them. Having it as what's pretty much a passive ability might be a bit too strong and it would be cool to have some extra functionality on the prospecting pick instead of the normal one.

Another thing about Geologist is that it loves to spam your currently open chat window with messages, even if you've already found the ore. Here's some suggestions:

1. Limit the Geologist readings to the Info chat window only. Currently it posts in whichever window you have open which can drown out general chat. I know that in singleplayer you don't use chat a lot but I think it belongs in the Info window anyway.

2. If the ability remains on the normal pickaxe, maybe let the player choose when to trigger it. The normal pickaxe has no special functions when holding the crouch or sprint buttons so maybe have it trigger when having one of them pressed? Though that might just make the ability too annoying to use since you have to either crouch or sprint, which players either do for other reasons or wouldn't want to do every time they want to use Geologist.

3. If the ability is moved to the prospecting pick, it could either be done by enabling the already existing but disabled feature on it. Though as far as I'm aware that mght require a world/server restart so maybe just moving what's already in the mod could be just as good. In a way, moving it to the prospecting pick would nerf it because people would have to stop, change pickaxes and test instead of just having it on all the time. Honestly, even with how strong it is, you could argue that's a good thing because otherwise looking for ore is either spelunking, which not everybody likes to do, or a literal crapshoot in the dark where you hope you hit something and Geologist makes it a lot easier.

4. Since Geologist readings are very short-lived you could, instead of putting them in the chat window, make them print out as the red text that shows up when you can't place something down. The one in the bottom middle of the screen, above the hotbar.

Edited by Vincent Morgan
Spelling and Geologist
  • Like 1
  • Cookie time 1
Link to comment
Share on other sites

23 minutes ago, KittyCat said:

I don't know why, but i can't add mushroms to my meal, when mod is on. When I turn mod off, all works fine. Does anyone have the same problem ?

I have seen someone else somewhere mentioning this. I will look into this.

  • Thanks 1
Link to comment
Share on other sites

Seems like Duplicator works on plates. I assumed it wouldn't because plates can be broken down with a chisel and resmelted. Also Blaster seems to be not applying to bombs properly, at least with what I've tested which was native silver in quartz.

To elaborate: I noticed the way bonus drops work is that you still get a single item being dropped visually but when picking it up, it gives you two items. (I think it just makes two items drop stacked together?) But with bombs I haven't seen it happen after multiple tests. I'll try and test if Blaster instead makes ores simply drop two separate items instead of the way it normally works when I find the time to.

Edited by Vincent Morgan
  • Thanks 1
Link to comment
Share on other sites

×
×
  • 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.