SteelRook Posted February 19, 2016 Share Posted February 19, 2016 There have been a lot of good suggestions so far, some items on the road map for improvements:Allow overriding gameplay templates by name. Poking at the templates after they are built is more friendly if you just want to tweak one specific aspects of them and let other mods do the same, but a name based wholesale replacement is much cleaner and works more easily with the difficulty system.Improvements to the class replacement system, allowing static methods to be overridden and adding specific support for overriding selected natively constructed classes such as game state classes.Additional optional arguments for finding templates, including difficulty.New methods on the X2DownloadableContentInfo class for mods to use."Seeding" game play code with additional event manager events that mods can hook.Distributing our Visual Studio plugins in vsix form so that they can be used with Visual Studio professional or community/express editions ( which would support the use of nFringe )Cooker documentation, plugin.A better unreal script language service ( that provides intellisense ) is also planned. This was on the wish list for the initial offering of the mod tools, but didn't make it. There are some good ones already out there that could be bent with just a little bit of effort to work with our tool set, one of which I saw someone had gotten working ( sort of? ) on here. This is amazingly good stuff! Just about everything mentioned here helps me with one problem I'm having or another. Better template overriding, better class overriding, more events to "listen" to - this is all very, very positive and should go a long way towards making modding easier. Thank you kindly. Link to comment Share on other sites More sharing options...
hairlessorphan Posted February 19, 2016 Share Posted February 19, 2016 There have been a lot of good suggestions so far, some items on the road map for improvements:"Seeding" game play code with additional event manager events that mods can hook. This all over the place, please. Especially with template managers. If the classes that are basically singleton metadata classes could expose "loaded" and "lookup data requested" events, it'd give us best practices for writing mods that won't conflict with each other. Link to comment Share on other sites More sharing options...
DarkAnsem Posted February 19, 2016 Share Posted February 19, 2016 (edited) If I might share my 2 cents, I'd like to express the importance of avoiding hardcoded limits.The resistance system, for example: I've looked in a number of INI files, but I cannot find any way to expand from fire or frag grenades.Melancholia, on official 2K forums, pointed out: I've found that X2StatusEffects.uc and XComGameState_Unit.uc refuse to be overridden. I spent hours trying to modify the bleedout formula before realising that my code was simply being ignored entirely.I've overridden other script classes without issue, but it seems some of the key ones are effectively hardcoded, which is very depressing.I wonder if there will be a workaround at some point. Lastly. I've also found pretty much impossible to add new instances related to voicesets, which could be useful when adding new skills. But many thanks for looking at the forums :smile: EDIT: in short, please avoid making Bethesda's mistake with their hardcoded Actor Values for Skyrim, if possible. Their editor is super user-friendly, but try to add something really revolutionary, like a new Skill+Perk tree, a new elemental damage, or a new magic archetype (such as the one that would enable to transform into a dragon)? A concrete wall. SKSE helped, but not too much. Edited February 19, 2016 by Dark_Ansem Link to comment Share on other sites More sharing options...
Amineri Posted February 19, 2016 Share Posted February 19, 2016 I'm glad Ryan has posted up some info, since he can give you much more definitive answers about what is coming, compared to me. And I am still around and checking the Mod Talk forum, although I I'm letting that first "mega thread" die now that there is a proper sub-forum to organize multiple topics within. Link to comment Share on other sites More sharing options...
Deleted32045420User Posted February 19, 2016 Share Posted February 19, 2016 Also Maybe Something that'll let multiple mods to override the same UI Class unless they clash, i mean i want to add some options for my mod when starting new games but it'd make bronzeman mod incompatible Link to comment Share on other sites More sharing options...
Hyperplexed Posted February 19, 2016 Share Posted February 19, 2016 Just wanted to let folks know that I'll be actively supporting the mod efforts here - and can help with modding-related questions. Additionally, I can collect feedback and incorporate it into future SDK updates. There are already a number of improvements we could make that I've identified from threads here, such as updating the script VM to route static functions from replacement classes. I do want to point out a little thing... (I already mentioned it at the 2K forums, and waiting for some "official" reply), and I'm sorry if people think this is just a bit too specific to point out, but its a really important issue for me... Head Mesh modding... This was something I intended to do even before the game was released, I love to customize my soldiers and give them unique characters, and sometimes accessories is just not enough. You have done an incredile job at improving Soldier customization... the memorial... the biography... the freaking attitudes! Those little details just make the characters so much more... real! Initially, when I started messing with the Editor, I was expecting that these would be achieved with Morph Targets, which is pretty much how its done in most, if not all games. I realized then that its achieved via both Animations and Morph Targets. The animation part, is fine, we can, with some efforts do it. However, modding morph targets is impossible as it is. This is because the editor, when exporting models to FBX or OBJ is breaking the vertex order, and when that happens, it completely eliminates the chance of building new ones. This would be fine, I could just "reconstruct" the head mesh from scratch, and on each head Archetype, I would call that specific mesh. Unfortunately, the head mesh is not being called by the head archetypes, but rather from the Pawn ones. Its not that its impossible to do it, but will severely limit the ability to add "head packs" to the game. Lets say I do 3 male head shapes. And another modder does 2 more... There is no way I can think of for the player to have both mod packs running simultaneously (at least not without some code work) However, I'm not asking for this to be changed (well, if its possible, so much the better I guess) but rather, you could make available the Head, Teeth and Eyes meshes, already triangulated for graphic artists to work with. That way we will be able to instead of changing the base head part meshes, just implement new AnimSets and MorphTargets? Although I'm still unsure about the MorphTargets, since they are being referenced from the pawn archetype aswell (the head variation AnimSet however, is being called from the head archetypes). The only workaround for this I can think of (besides having meshes that will allow us to import morh targets) would be if someone did a resource kit/framework mod, in which all the key assets/archetypes would be changed, with the required meshes also included, so that anyone could build over that one mod/package, but, its not a very elegant solution. I really want to start doing some new heads, but I can't until I know if there's something that can be done about this, again, because of the vertex order issue. If I would start doing a new head mesh, and in the future vertex order is no longer an issue, then I will need to rebuild the meshes again, transfer shapes, weights, which is a proccess that is not 100% accurate. Thanks for your time, for developing great games and for the willingness to support the modding community Link to comment Share on other sites More sharing options...
davidlallen Posted February 19, 2016 Share Posted February 19, 2016 This thread can be a great resource, but I have a suggestion, which I have tried to follow myself. If there is an issue, create a separate thread for it; and in this current thread, put a link to the separate thread. That way, discussion can continue on the separate thread instead of all getting jammed into this thread. Amineri's thread has a ton of information but it's hard to retrieve, because of this jamming. @ Hyperplexed, please edit and put a link to your 2k thread. Link to comment Share on other sites More sharing options...
SteelRook Posted February 20, 2016 Share Posted February 20, 2016 Speaking of supporting modding, I found what looks like a copy/paste bug in the weapon definitions class. In X2Item_DefaultWeapons.uc where all of the game's weapons are default, the "magnetic" sword is tagged as being "conventional." The CreateTemplate_Sword_Magnetic() function, the one which defined 'Sword_MG', defines its tech level as: Template.WeaponTech = 'conventional'; This makes it impossible to create conditional effects based on the individual swords' tech level because two of them have the same tech level listed. I suspect this slipped by because the game doesn't have abilities which scale up by sword level, so the issue probably never came up. Link to comment Share on other sites More sharing options...
Kvalyr Posted February 20, 2016 Share Posted February 20, 2016 (edited) There have been a lot of good suggestions so far, some items on the road map for improvements:Allow overriding gameplay templates by name. Poking at the templates after they are built is more friendly if you just want to tweak one specific aspects of them and let other mods do the same, but a name based wholesale replacement is much cleaner and works more easily with the difficulty system.Improvements to the class replacement system, allowing static methods to be overridden and adding specific support for overriding selected natively constructed classes such as game state classes.Additional optional arguments for finding templates, including difficulty.New methods on the X2DownloadableContentInfo class for mods to use."Seeding" game play code with additional event manager events that mods can hook.Distributing our Visual Studio plugins in vsix form so that they can be used with Visual Studio professional or community/express editions ( which would support the use of nFringe )Cooker documentation, plugin.A better unreal script language service ( that provides intellisense ) is also planned. This was on the wish list for the initial offering of the mod tools, but didn't make it. There are some good ones already out there that could be bent with just a little bit of effort to work with our tool set, one of which I saw someone had gotten working ( sort of? ) on here. This is pretty much my wishlist right now. Delighted to see this kind of support from you guys - Thanks so much! Class Replacement System Logging:One thing I would love is if we could get some verbose logging from the class replacement system. Right now it's a total black box to modders and we don't really know whether our overrides are working or not except through intensive trial and error (and starting the game up and sitting through loading screens etc. multiple times). This is especially problematic when considering conflicts between multiple mods vying for the same classes to override and so on. Pre-/Post-Hooking (or Wrapping) of Functions instead of full class replacementsWould it be possible to expand the functionality of the class replacement system to add a means of pre- and post-hooking functions on instantiated objects (or static methods) as an alternative to full-blown class replacements? This would also serve us well in places where Events aren't a good fit.Example: hooking the return of XcomGameState_Unit:IsPsiOperative() -- Currently that method is hardcoded to return true if the unit's class template name == 'PsiOperative', and because it's buried in a gamestate class, mods can't really change that - So mods can't properly add additional psi classes.There are better approaches to fixing this that would be preferable (such as checking if the unit's class template name is in an array of psi classes, ini-configurable) - but for the sake of example, it would also be awesome if we could modify the return value of that method by ANDing it with the return of a post-hook function. ModBuddy QoL issues:+ As a minor Quality of Life thing - Could we also get the game to remember the size and screen position of the debugging console between sessions? Moving the log output over to my 2nd monitor and resizing it to be legible every time I start the game in debug mode gets really irksome when something's not working right! It's a minor thing, but it would be really pleasant. + ModBuddy is very unstable when it comes to project file management. The SDK just errors out and throws exceptions 9 times out of 10 when trying to rename or delete files, or even adding existing files. This leads to ModBuddy getting into a weird state where the SDK UI is out of sync with the actual contents of the solution, and it even starts to display increasing numbers of duplicate files (pointing to the same file) if the solution isn't just reloaded fully. At this point I've developed a habit of manually editing the XML of the project file when I want to delete or rename a file! Edited February 20, 2016 by Kvalyr Link to comment Share on other sites More sharing options...
Zyxpsilon Posted February 20, 2016 Share Posted February 20, 2016 ModBuddy QoL issues:...+ ModBuddy is very unstable when it comes to project file management. The SDK just errors out and throws exceptions 9 times out of 10 when trying to rename or delete files, or even adding existing files. This leads to ModBuddy getting into a weird state where the SDK UI is out of sync with the actual contents of the solution, and it even starts to display increasing numbers of duplicate files (pointing to the same file) if the solution isn't just reloaded fully. At this point I've developed a habit of manually editing the XML of the project file when I want to delete or rename a file! Which to me IS the main issue (aside from not having true access ((OFFLine)) to more sturdy documentation or key details about specific developping principles) that prevents solid planning towards effective results. I gave it all a few try-outs for inspection and to gather the essentials here & there.. and yet, whatever my silly simplistic code(s) were attempting came upon a major obstacle; generic instability of Mod-Buddy IDE while a number of UE3 features collapsed altogether at times. It may all be caused by *MY* own very bad handling of such coding tools though. I honestly thought the SDK would be much simpler to use (having done my fair share of other tasks for Civ5, etc) barring the fact that in its current state -- hard to predict how or what troubles would suddenly stop me on my track to the (most, hopefully) optimal builds & solutions. Right now -- i'm seriously considering delaying any more concept phase work until they can confirm the kinks & jinks of the initial release unstable code has been ironed out. I'll need soooooooooooooooooo much art assets -- it'd be a shame to put that many hours into resources (custom gfx/swf/ScaleForm/HUD and 100's of Texture2d stuff) only to realize the final (coding) hurdle is either too complex for my silly (as in -- lacking some minimal or mid--range skills) brain or the SDK would just not cooperate in any rational fashions whatsoever. Two weeks at best for a nearly final decision, AFAIC. Link to comment Share on other sites More sharing options...
Recommended Posts