Isif
Vintarian-
Posts
14 -
Joined
-
Last visited
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
Isif's Achievements
Berry Picker (2/9)
12
Reputation
-
The new "outdated" tag on mods.
Isif replied to Wondiws98's topic in [Legacy] Mods & Mod Development
You can add compatible game versions when you edit a mod version. You don’t need to recreate the release. In case it’s unclear, you can edit a version by pressing its version number in the Files tab. -
I'm personally using EndeavourOS. I like that it's Arch-based and so has rolling release packages and has a nice install process which can be customized with an install script. I don't think game managers are necessary (though I do have Steam and Lutris installed), especially for GOG games, for which I find the xdg desktop files sufficient. I am currently using Lutris exclusively for running programs with WINE but I may drop it... not sure yet.
-
The new "outdated" tag on mods.
Isif replied to Wondiws98's topic in [Legacy] Mods & Mod Development
I see. I still agree with the behavior of tagging mods which aren't tagged for the most recent version (including minor updates) as the lack of a version tag implies the author did not test it (which is true), but I thinking softening the tone of the tag is a reasonable change. I agree with the way you tag your mods and if you don't test every mod on every version then I don't think you should feel obligated to (after all, there is no compensation for authoring and maintaining mods). -
The new "outdated" tag on mods.
Isif replied to Wondiws98's topic in [Legacy] Mods & Mod Development
I wanted to add an opposing opinion: I think it's a good idea to make sure that mods do in fact work on new versions; since the game and applied mods work together as a unit, they could potentially affect each other when components are partially upgraded. If their behavior is unchanged, then they can be tagged with the new version in the page without updating the mod itself. To me, this tag just means the author themselves hasn't confirmed its behavior on the latest version—the user can look into the comments to see if other users have confirmed if the mod is broken or not, and if there is no information, they may decide to test the mod apart from their important data (if they decide to be vigilant about such things). Especially with intensive mods that use Harmony patching, minor versions updates could break a mod, as minor changes can have greater changes to the structure of the IL code, or just affect state in a way that a mod doesn't account for (in the latter case, no patching error will help find such an issue). As long as the mod is untested, it's dubious whether the mod works as intended or not. -
I first got the game on 1.20.6 so I don't know how the quality of updates was before then, but I do agree with you. These issues seem prevalent enough that they would be caught before reaching stable.
-
Thanks for the response! This editor seems very accepting of styles and elements. I was notified by the comment with the @ but not the other one, if you were curious. Thanks a lot!
-
I noticed that this comment in the Vintage Story Mod DB embeds another inside of it. How is this possible? Also, does this give a notification like mentioning a name with '@' does?
-
I'd like to express my support for this. Also, are talk pages generally checked by wiki users?
-
How should I approach modifying AI tasks?
Isif replied to Isif's topic in [Legacy] Mods & Mod Development
I decided to use Harmony and store additional data in a class and associate instances of the AiTaskFleeEntity with instances of the class using a ConditionalWeakTable, like this: using System.Runtime.CompilerServices; using Vintagestory.GameContent; public class ExtendedAiTaskFleeEntity { private static readonly ConditionalWeakTable<AiTaskFleeEntity, ExtendedAiTaskFleeEntity> ExtendedAiTasks = new(); public readonly AiTaskFleeEntity AiTask; // additional fields... public ExtendedAiTaskFleeEntity(AiTaskFleeEntity aiTask) { AiTask = aiTask; } public static ExtendedAiTaskFleeEntity FromOriginal(AiTaskFleeEntity aiTask) { return ExtendedAiTasks.GetValue(aiTask, key => new ExtendedAiTaskFleeEntity(key)); } } I am then able to use this data in Harmony patches of different methods of AiTaskFleeEntity. -
What kind of patches are you trying to make? Have you seen Modding:Monkey patching?
-
I'm trying to modify the 'fleeentity' AI task to change how the move speed works. At first I considered patching AiTaskFleeEntity with Harmony. Is this a good solution? If I wanted to associate additional data with the AiTaskFleeEntity instance beyond its existing fields, how should I do that? Secondly I considered extending AiTaskFleeEntity and registering the new AI task. This works fine, but I'd like to affect entities which already use the existing fleeentity. There are too many entities in survival than I'm comfortable with to patch with JSON patching, and it would also cause a discrepancy in behavior with entities originating from player mods. I considered Asset Patching in Code but this looks complicated to do in code. I think I would have to remove the AiTaskFleeEntity and add my descendant AI task from the AiTaskManager from the EntityBehaviorTaskAI in each entity type, but I'm not sure how I would LoadConfig without the aiconfig JsonObject.