Jump to content

XLib and XSkills


Xandu

Recommended Posts

Spoiler
[Server Fatal] System.NullReferenceException: Object reference not set to an instance of an object.
   at Vintagestory.API.Common.Entities.Entity.GetBehavior[T]()
   at XSkills.BlockEntityTroughPatch.Prefix(BlockEntityTrough __instance, Single& __result)
   at Vintagestory.GameContent.BlockEntityTrough.ConsumeOnePortion_Patch1(BlockEntityTrough this)
   at Vintagestory.GameContent.AiTaskSeekFoodAndEat.ContinueExecute_Patch1(AiTaskSeekFoodAndEat this, Single dt)
   at Vintagestory.GameContent.AiTaskManager.OnGameTick(Single dt)
   at Vintagestory.GameContent.EntityBehaviorTaskAI.OnGameTick(Single deltaTime)
   at Vintagestory.API.Common.Entities.Entity.OnGameTick(Single dt)
   at Vintagestory.API.Common.EntityAgent.OnGameTick(Single dt)
   at Vintagestory.Server.ServerSystemEntitySimulation.TickEntities(Single dt)
   at Vintagestory.Server.ServerSystemEntitySimulation.OnServerTick(Single dt)

@Xandu

Link to comment
Share on other sites

Running a server on Ubuntu and the config files generate in a strange way. instead of being in /modconfig/xleveling, they generate in /modconfig/VintageStoryData/modconfig/xleveling

an empty xleveling folder does generate in /modconfid/xleveling

and they will not take to changes. keep resetting on server start. change permissions, upload them in several ways. edit them with the server panel. they always reset. none of the other configs reset, and uploaded in the same way.

Edit: if i place the edited files into the empty xleveling folder, those changes will load. but if i remove the /modconfig/VintageStoryData/modconfig/xleveling folder, the mod cannot load any configs and throws tons of errors

Edited by RogueRaidenTV
Link to comment
Share on other sites

6 hours ago, Pamela Wild said:

Are you supposed to be able to add any mushroom to a stew?  Because I can't in my game.

For me most mushrooms work. I think i found one mushroom that didn't work but I think this should also be the case for the base game.

Link to comment
Share on other sites

I was editing a the values of class exp gain for temporal adaptation, and the others too. But now the temporal one is no longer added in game and I don't know how I broke it. It looks fine so I don't know what I managed to alter that it is getting completely ignored. I've even tried referencing the other skills and I don't see any discrepancy...

 

Update:Temporal stability was off, I'm stupid.

Edited by Dara Phairphire
I'm stupid.
Link to comment
Share on other sites

Clayforming crashes the game  in 1.16.4 after I've placed the clay but before I can shape it. 😐 Works in 1.16.3 tho.

Spoiler

System.MissingMethodException: Method not found: 'Void Vintagestory.GameContent.BlockEntityClayForm.CheckIfFinished(Vintagestory.API.Common.IPlayer)'.
   at XSkills.BlockEntityClayFormPatch.Prefix(BlockEntityClayForm __instance, IPlayer byPlayer, Vec3i voxelPos, BlockFacing facing, Boolean mouseBreakMode, ClayFormRenderer ___workitemRenderer, ItemStack& ___workItemStack, Cuboidf[]& ___selectionBoxes)
   at Vintagestory.GameContent.BlockEntityClayForm.OnUseOver_Patch1(BlockEntityClayForm this, IPlayer byPlayer, Vec3i voxelPos, BlockFacing facing, Boolean mouseBreakMode)
   at Vintagestory.GameContent.ItemClay.OnHeldInteractStop_Patch1(ItemClay this, Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleHandInteraction(Single dt)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnGameTick(Single dt)
   at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world)
   at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt)
   at Vintagestory.Client.NoObf.ClientMain.MainGameLoop(Single deltaTime)

 

Link to comment
Share on other sites

Running on 64 bit Windows with 64 GB RAM 
Game Version: v1.16.4 (Stable)
Loaded Mods: ancienttools@1.3.6, animalcages@2.0.6, tonwexp@1.0.9, backpackpackplus@1.0.3, bettercrates@1.4.1, betterdrifters@2.1.3, buildingplus@1.1.2, cavecontent@1.0.0, collabclasses@3.0.2, cralutweaks@1.0.0, dragonflies@1.1.5, extrachests@1.5.2, fancydoors@1.1.0, fancysky@1.0.4, moreroads@1.4.3, necessaries@1.1.1, primitivesurvival@2.8.0, qptech@1.7.5, RangedWeapons@0.4.5, rope-bridges@1.1.0, locustmod@2.3.5, tradeomat@1.6.0, viesblocks@2.0.2, viescraftmachines@1.8.0, visibleore@1.0.1, game@1.16.4, zeekea@1.6.0, alchemy@1.5.9, carrycapacity@0.6.4, extraoverlays@1.1.0, fancyplanters@1.0.2, farmlife@1.2.2, fixbadrecipes@1.0.2, fixhandbookclutter@1.0.2, flintchisel@1.0.2, helvehammerext@1.2.0, hudclock@2.7.0, lichen@1.6.1, medievalexpansion@3.7.1, moreanimals@1.0.2, morepiles@1.2.0, qmorepiles@1.0.1, petai@1.3.5, pei@1.2.1, peifm@1.0.1, stonequarry@1.6.3, tpnet@1.5.1, usefulstuff@2.3.2, vanvar@1.1.2, creative@1.16.4, survival@1.16.4, wildfarming@1.2.7, woodbarrels@1.0.1, woodchests@1.0.2, workbenchexpansion@1.4.1, xlib@0.6.8, bricklayers@0.8.2, cats@1.3.3, feverstonehorses@1.2.5, wildcraft@1.1.5, xskills@0.6.8
2022-02-26 21:50:35: Critical error occurred
System.MissingMethodException: Method not found: 'Void Vintagestory.GameContent.BlockEntityClayForm.CheckIfFinished(Vintagestory.API.Common.IPlayer)'.
   at XSkills.BlockEntityClayFormPatch.Prefix(BlockEntityClayForm __instance, IPlayer byPlayer, Vec3i voxelPos, BlockFacing facing, Boolean mouseBreakMode, ClayFormRenderer ___workitemRenderer, ItemStack& ___workItemStack, Cuboidf[]& ___selectionBoxes)
   at Vintagestory.GameContent.BlockEntityClayForm.OnUseOver_Patch1(BlockEntityClayForm this, IPlayer byPlayer, Vec3i voxelPos, BlockFacing facing, Boolean mouseBreakMode)
   at Vintagestory.GameContent.ItemClay.OnHeldInteractStop_Patch1(ItemClay this, Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleHandInteraction(Single dt)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnGameTick(Single dt)
   at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world)
   at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt)
   at Vintagestory.Client.NoObf.ClientMain.MainGameLoop(Single deltaTime)
   at _4Bi1AGVssrIO0El8b8ygdS9FIfm._o5h005s1ovnxSPPqKWgI4tZUoCh(Single )
   at _lAuHsYOBOAjBMdATFXwLUtH7N00._JvY4M2412YZu1OS3Ull8wgZBu1j(Single )
   at _lAuHsYOBOAjBMdATFXwLUtH7N00._KmBeEx15nyyLrVqNDW6geSArpNr(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 479
   at OpenTK.GameWindow.DispatchRenderFrame() in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 454
   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 _TRhArnJABwZoV9Vt7Ld2l65Xzgg._mhlr8s7wtMvxaJGpVy2Ag90jUBK(_3HJA5NvAIx31LXjscc3HGjXaR6q , String[] )
   at _q0zAVOrWbMX04rMA9G3HIFVuGjA._mhlr8s7wtMvxaJGpVy2Ag90jUBK(ThreadStart )
-------------------------------

Event Log entries containing Vintagestory.exe, the latest 3
==================================
{ TimeGenerated = 2022-02-19 15:28:19, Site = , Source = Windows Error Reporting, Message = Fault bucket 2079567824324360538, type 5
Event Name: RADAR_PRE_LEAK_64
Response: Not available
Cab Id: 0

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

Attached files:
\\?\C:\Users\FEROXI~1\AppData\Local\Temp\RDR1C2.tmp\empty.txt
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1D3.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1D4.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1EB.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER20B.tmp.txt

These files may be available here:


Analysis symbol: 
Rechecking for solution: 0
Report Id: db80e3ca-0c94-414c-8396-c85c4686d101
Report Status: 268435456
Hashed bucket: 364c16d908586adb0cdc1beb0f2f795a
Cab Guid: 0 }

Link to comment
Share on other sites

Just now, Feroxious said:

Running on 64 bit Windows with 64 GB RAM 
Game Version: v1.16.4 (Stable)
Loaded Mods: ancienttools@1.3.6, animalcages@2.0.6, tonwexp@1.0.9, backpackpackplus@1.0.3, bettercrates@1.4.1, betterdrifters@2.1.3, buildingplus@1.1.2, cavecontent@1.0.0, collabclasses@3.0.2, cralutweaks@1.0.0, dragonflies@1.1.5, extrachests@1.5.2, fancydoors@1.1.0, fancysky@1.0.4, moreroads@1.4.3, necessaries@1.1.1, primitivesurvival@2.8.0, qptech@1.7.5, RangedWeapons@0.4.5, rope-bridges@1.1.0, locustmod@2.3.5, tradeomat@1.6.0, viesblocks@2.0.2, viescraftmachines@1.8.0, visibleore@1.0.1, game@1.16.4, zeekea@1.6.0, alchemy@1.5.9, carrycapacity@0.6.4, extraoverlays@1.1.0, fancyplanters@1.0.2, farmlife@1.2.2, fixbadrecipes@1.0.2, fixhandbookclutter@1.0.2, flintchisel@1.0.2, helvehammerext@1.2.0, hudclock@2.7.0, lichen@1.6.1, medievalexpansion@3.7.1, moreanimals@1.0.2, morepiles@1.2.0, qmorepiles@1.0.1, petai@1.3.5, pei@1.2.1, peifm@1.0.1, stonequarry@1.6.3, tpnet@1.5.1, usefulstuff@2.3.2, vanvar@1.1.2, creative@1.16.4, survival@1.16.4, wildfarming@1.2.7, woodbarrels@1.0.1, woodchests@1.0.2, workbenchexpansion@1.4.1, xlib@0.6.8, bricklayers@0.8.2, cats@1.3.3, feverstonehorses@1.2.5, wildcraft@1.1.5, xskills@0.6.8
2022-02-26 21:50:35: Critical error occurred
System.MissingMethodException: Method not found: 'Void Vintagestory.GameContent.BlockEntityClayForm.CheckIfFinished(Vintagestory.API.Common.IPlayer)'.
   at XSkills.BlockEntityClayFormPatch.Prefix(BlockEntityClayForm __instance, IPlayer byPlayer, Vec3i voxelPos, BlockFacing facing, Boolean mouseBreakMode, ClayFormRenderer ___workitemRenderer, ItemStack& ___workItemStack, Cuboidf[]& ___selectionBoxes)
   at Vintagestory.GameContent.BlockEntityClayForm.OnUseOver_Patch1(BlockEntityClayForm this, IPlayer byPlayer, Vec3i voxelPos, BlockFacing facing, Boolean mouseBreakMode)
   at Vintagestory.GameContent.ItemClay.OnHeldInteractStop_Patch1(ItemClay this, Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.HandleHandInteraction(Single dt)
   at Vintagestory.Client.NoObf.SystemMouseInWorldInteractions.OnGameTick(Single dt)
   at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world)
   at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt)
   at Vintagestory.Client.NoObf.ClientMain.MainGameLoop(Single deltaTime)
   at _4Bi1AGVssrIO0El8b8ygdS9FIfm._o5h005s1ovnxSPPqKWgI4tZUoCh(Single )
   at _lAuHsYOBOAjBMdATFXwLUtH7N00._JvY4M2412YZu1OS3Ull8wgZBu1j(Single )
   at _lAuHsYOBOAjBMdATFXwLUtH7N00._KmBeEx15nyyLrVqNDW6geSArpNr(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 479
   at OpenTK.GameWindow.DispatchRenderFrame() in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 454
   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 _TRhArnJABwZoV9Vt7Ld2l65Xzgg._mhlr8s7wtMvxaJGpVy2Ag90jUBK(_3HJA5NvAIx31LXjscc3HGjXaR6q , String[] )
   at _q0zAVOrWbMX04rMA9G3HIFVuGjA._mhlr8s7wtMvxaJGpVy2Ag90jUBK(ThreadStart )
-------------------------------

Event Log entries containing Vintagestory.exe, the latest 3
==================================
{ TimeGenerated = 2022-02-19 15:28:19, Site = , Source = Windows Error Reporting, Message = Fault bucket 2079567824324360538, type 5
Event Name: RADAR_PRE_LEAK_64
Response: Not available
Cab Id: 0

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

Attached files:
\\?\C:\Users\FEROXI~1\AppData\Local\Temp\RDR1C2.tmp\empty.txt
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1D3.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1D4.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER1EB.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER20B.tmp.txt

These files may be available here:


Analysis symbol: 
Rechecking for solution: 0
Report Id: db80e3ca-0c94-414c-8396-c85c4686d101
Report Status: 268435456
Hashed bucket: 364c16d908586adb0cdc1beb0f2f795a
Cab Guid: 0 }

clay forming problem here

Link to comment
Share on other sites

@Xandu

Version 1.16.4 changes the behavior of 

BlockEntityClayForm.CheckIfFinished

which now accepts an additional argument called `layer` so the call to it in the

BlockEntityClayForm.CheckIfFinished.OnUseOver

 fails.

Just digging around the code in general I noticed that there is a lot of game code that just copied over to those Harmony patches just to patch a few lines. This is very error-prone and brittle. Any slight change can break things. Using Harmony Transpilers to make very specific changes or maybe looking for a better method to patch would be way more reliable. Won't give you a 100% guarantee ofc but it would be better.

Another thing that would help in cases like this would be conditional patching. Harmony provides a "Prepare" method for its patches. This can be used with a config file to turn on and off certain patches. As it is right now I can turn off the "Pottery" skill but it won't cancel the pathing and so even with no "Pottery" skill available it still crashes.

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

28 minutes ago, squ1b3r said:

@Xandu

Version 1.16.4 changes the behavior of 

BlockEntityClayForm.CheckIfFinished

which now accepts an additional argument called `layer` so the call to it in the

BlockEntityClayForm.CheckIfFinished.OnUseOver

 fails.

Just digging around the code in general I noticed that there is a lot of game code that just copied over to those Harmony patches just to patch a few lines. This is very error-prone and brittle. Any slight change can break things. Using Harmony Transpilers to make very specific changes or maybe looking for a better method to patch would be way more reliable. Won't give you a 100% guarantee ofc but it would be better.

Another thing that would help in cases like this would be conditional patching. Harmony provides a "Prepare" method for its patches. This can be used with a config file to turn on and off certain patches. As it is right now I can turn off the "Pottery" skill but it won't cancel the pathing and so even with no "Pottery" skill available it still crashes.

So, I will need to be sticking with 1.16.3 until this is corrected if I want to use XSkills, correct??

Link to comment
Share on other sites

Hey guys, 

I had to do a lot of private stuff in the past weeks so i couldn't really update the mod in this time. I had planned to spend the current days to fix bugs and update the mod. But the current political situation changed my priorities drastically, so that the update has no priority for me at all at the moment. I am sorry for your inconvenience but at the moment i cannot say when i am able to update the mod to the current version of the game.

Edited by Xandu
  • Like 8
  • Thanks 1
Link to comment
Share on other sites

15 minutes ago, Xandu said:

Hey guys, 

I had to do a lot of private stuff in the past weeks so i couldn't really update the mod in this time. I had planned to spend the current days to fix bugs and update the mod. But the current political situation changed my priorities drastically, so that the update has no priority for me at all at the moment. I am sorry for your inconvenience but at the moment i cannot say when i am able to update the mod to the current version of the game.

Take care of yourself, and stay safe.

Link to comment
Share on other sites

On 2/27/2022 at 5:02 AM, Xandu said:

Hey guys, 

I had to do a lot of private stuff in the past weeks so i couldn't really update the mod in this time. I had planned to spend the current days to fix bugs and update the mod. But the current political situation changed my priorities drastically, so that the update has no priority for me at all at the moment. I am sorry for your inconvenience but at the moment i cannot say when i am able to update the mod to the current version of the game.

Stay safe.

Link to comment
Share on other sites

Try to playing on 1.6.3. and xskills dont work. Activate both mods(skills and lib), try rebinding keybord - nothing. What problem can be? May be someone mod override skills data? 

 

P.s. promblem solved themself -.- 

Install version 0.6.3. and skill menu arrived -> install 0.6.8 after and skill menu also arrived

Edited by Waylone
Link to comment
Share on other sites

Hey folks. I'm playing on a multiplayer server with some friends and we generated a new world for 1.16.  Is it possible to save the XLeveling.json from the old 1.15.10 map and, when generating a new map world for 1.16, carry that level data over for your players? Would I just stop the server copy/paste the data into the newly generated file and restart the server?

Edited by Peter Sanderson
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.