New Development: ModHelper and Utilities

Kick back and discuss whatever takes your fancy.
Post Reply
Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

[SearchForModFile] Updated

Post by Mystical Panda » Sat Feb 17, 2018 12:28 am

[SearchForModFile] Updated the existing code base to the newest version, added some new features, and moved it over to the testing group.


There's a few mod 'ModHelper' functions I want to break out into stand alone apps- hopefully they'll be completed (at least movable to the testing group) in the next few days.



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

[SCRIPTUtility - NEW] Opened

Post by Mystical Panda » Sat Feb 17, 2018 1:51 pm

[SCRIPTUtility - NEW] Opened up a new project similar to the xxxUtility series. This will handle the scripts found both inside and outside of plugin files; initially, like NIFUtility, this will house just the very 'basic' of features until other code libraries can be developed over time to handle the data structures directly.


[ModHelper - Update] Moving the mod manager more towards a 'modding interface' rather than just a usual 'mod manager'; tieing in all the external utilities (hoping to 'future proof' as I go). The original plan for this application wasn't a mod manager per se, but more of a front-end to aid with game modding, allowing easy access and representation of game data and available tools.



James_T_Quirk
Posts: 47
Joined: Fri Feb 02, 2018 11:40 am

Ummm, Hi, I know I am new to

Post by James_T_Quirk » Sun Feb 18, 2018 9:42 am

Ummm, Hi, I know I am new to all this, but was wondering after I didn't see it here, is there a way of seeing "relationships" between objects in FO worlds, and those who have them/use them &or Locations ...


 


Like (as a example only) https://neo4j.com/sandbox-v2/


They use Data to draw relational charts, I was wondering if something similar exists here, not as charts so much, but how data is linked in game, so you see, who owns what, where it is/can be. Also for quests to see how stages link maybe, or am I asking too much ..


 



User avatar
jlf65
Posts: 1005
Joined: Wed Aug 10, 2016 9:10 pm

You have two choices: GECK

Post by jlf65 » Sun Feb 18, 2018 2:36 pm

You have two choices when doing anything with Fallout mods: GECK (with Powerup), or xEdit. You should install both and get used to using both, but I find it easier to use xEdit as much as possible, only using GECK for compiling scripts and sometimes placing objects.



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

James_T_Quirk wrote:

Post by Mystical Panda » Sun Feb 18, 2018 4:59 pm

[quote=James_T_Quirk]


 


Ummm, Hi, I know I am new to all this, but was wondering after I didn't see it here, is there a way of seeing "relationships" between objects in FO worlds, and those who have them/use them &or Locations ...


 


Like (as a example only) https://neo4j.com/sandbox-v2/


They use Data to draw relational charts, I was wondering if something similar exists here, not as charts so much, but how data is linked in game, so you see, who owns what, where it is/can be. Also for quests to see how stages link maybe, or am I asking too much ..


 


[/quote]


If I understand what your asking is...


How and why do NPCs interact in certain ways with certain objects? In some cases "idles" are set to look for specific "data" points in the cell. In terms of simulated AI, all the data is just that data. Indifferent one from another. It's impossible to tell what is what without a massive code base to try and "understand and learn" about it's environment. Still, it would need to know color, shapes, why it looks that way, how it's used, it's purpose, limitations ... lots of things. We really take for granted how complex our own biology really is and how much it can actually do.


The easiest way is... by setting certain types of data points and giving that data x,y,z (an object let's say), we can now "path" to it. Once there, we can now "idle"- though conflict and other things could "kick" the npc out of "idle" and into another behaviour package. It's the same for "navmeshing"- where can I walk- an easier calculation than trying to navigate over and around everything (thus, things get stuck often).


In the GECK, you'd need to set or have already set one of those "data" points (like a path to point, or a sitting point, things like that). Then you'd need to attach idles and behaviour packages to an npc. If the npc is to do something, the object might have to be owned by the npc, but depends. Like, have the npc "path" (walk) to a chair (object), engage "sitting" idle for the npc. The packages are combinations of animations and other data used by the game engine to perform a "higher" level function.


Most everything Bethesda did was take very simple things and combine them into "packages" giving the illusion of very complex systems; npcs having a life. Todd Howard gave an interview where he also mentioned it. The trick was to switch between them making it look seemless. Data at lower levels need timers, wait for a specific animation sequence to complete (idle thinking pose) before moving to the next. By doing it this way, once you get to the higher level stuff, you just need to say if it's past 8pm execute the go-home-to-sleep package; path to owned home. enter. go to owned bed. sleep. That kinda thing.


Todd mentioned they can't work on the new anything without the tools. It's those tools that take the very low level stuff the animators and coders create and build them into usable packages that are not only controlled by conditionals in the engine, but also every other library (havok for example) that's compiled in, and can be easily referenced in scripts. It's a nice design- don't recompile the program, just recompile the script. The low level programmers (who put all the conditionals in the engine, etc.,.) move on to the next project, while those with less programming ability just use the higher level languages like scripting to build the game. 


It's that design that allowed the game to easily (in most cases) modded.



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

[SetConfigFileValue] Sets the

Post by Mystical Panda » Sun Feb 18, 2018 8:45 pm

[SetConfigFileValue] A new utility that adds or sets the specified keyword values in the specified config file. Allows setting the values from the clipboard, a 're-apply' file (a permanent file that can hold specific changes for a given config file), or from the command line. Supports changing existing keyword values, adding new keywords and values to an existing section, or added new sections, keywords and values.



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

I like to take an moment and

Post by Mystical Panda » Mon Feb 19, 2018 1:14 am

I like to take an moment and thank jlf65 for graciously helping with testing the various applications before linking them for community use. If anyone else is interested in giving them a 'test' whirl, just let me know.



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

[FindMissingMeshTextures],

Post by Mystical Panda » Mon Feb 19, 2018 5:04 am

[FindMissingMeshTextures], [FindMissingPluginAssets] Added some additional command line options and fixed a bug to allow specifying the game's "data" folder for checking a fully modded game. The 'catalog' used was the full vanilla asset list. Here's the results. It's getting late, so I'll check and cross-check the results tomorrow as I get time. 



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

[MergeGameAssets] Here's a

Post by Mystical Panda » Mon Feb 19, 2018 5:40 am

[MergeGameAssets] Here's a quick walk through combining, for example, texture packs from F03 and FNV for TTW. See if this is the proper procedure so I can document it for the program?  


First you'll need to download the fallout 3 packs you want.  


f03-textures-1.zip


f03-textures-2.zip


Then the similar Fallout NV packs you want.


fnv-textures-full.zip


Normally you would need to unzip and combine the mod archives into a single folder ("mymodfolder" in the example), keeping ONLY the "meshes" and "textures" AND those assets which are ONLY found in the vanilla BSAs (using "f03_full-catalog.txt" for Fallout 3, and "fnv_full-catalog.txt" for Fallout New Vegas); these are done automatically by MergeGameAssets. Here would be the steps to do it.


Step 1) MergeGameAssets -m="f03-textures-1.zip;f03_full-catalog.txt" -f="mymodfolder" -select="meshes,textures" -matchtocatalog


Step 2) MergeGameAssets -m="f03-textures-2.zip;f03_full-catalog.txt" -f="mymodfolder" -select="meshes,textures" -matchtocatalog


Step 3) MergeGameAssets -m="fnv-textures-full.zip;fnv_full-catalog.txt" -f="mymodfolder" -select="meshes,textures" -o=mynewmod -matchtocatalog


When those three steps are complete, the final archive ("mynewmod"- only specify this option on the last file since it'll trigger the program to build a new mod archive with the currently combined assets from the specified folder) will contain only 'vanilla' game assets for a TTW installation with the FNV assets being used over the Fallout 3 ones.  


The only thing I can see is, if there a possibility that F03 meshes should be overwritten by FNV? if both exist with the same file name? 



Mystical Panda
Posts: 750
Joined: Wed Mar 30, 2016 2:02 pm

[SetConfigFileValue] Added

Post by Mystical Panda » Mon Feb 19, 2018 7:35 am

[SetConfigFileValue] Added the "-showchanges" switch to display which keywords where added or changed, and when. When keyword values are changed or added, a comment is written to the item's text, with a date/time the item was modified. This might help to determine when a problem started to occur in regards to configuration file changes- check the date of the change and compare that to when a problem started.



Post Reply