Fallout dialogs automatically parsed by simple scripts (no neural networks or manual adjustment).
Check generated for files for offline or other use (I don't own content itself but whatever is generated outside of it is WTFPL).
Overall the idea was to rewrite the content in some more textual and less scripting format and move away from fallout way of doing it. But the bigger project that would use that is not moving consistently.
Only obvious connections that do not depend on any random or other calculations are made. So some information is lost and fuller extraction is possible with more demanding tools like GPT for example. Technically popups with code could provide some hint about such lost information but it looks like they are more useful to see conditional logics behind the scenes.
I didn't check the data too much so feel free to create an issue in case of issues.
If you want to have this generated for specific version/translation then here are the steps:
NOTE: some rake commands should work in specific directories in generated/ if they are prefixed like this WHICH=en-f2-gog rake output but this is later addition and is not very tested.
-
have ruby installed
-
have graphviz installed
-
run
bundlehere nearby to install dependencies (may need install bundler bygem install bundlerbefore) -
find
master.datamong your Fallout files -
extract all files from
master.datsomewhere (I used Windows, DatExplorer for FO2 and undat for FO1, these should be downloadable from nma and/or teamx.ru, also some tools may error unless things are placed shalowly like c:/FO2) -
decompile
scripts/*.intinto.sslfiles using some other tools (I used Windows andint2ssl) -
put resulting
.sslanddialogs/*.MSGfiles (fromtext/english/dialog) into theinput/directory here nearby -
run
rake -Tto see the menu of possible commands (I tested stuff from this step forward on linux) -
(this command moves files inside input directory) run
rake segregateto see result like thisMoved 970 irrelevant files Moved 50 .ssl files with missing .msg file Moved 50 .msg files with missing .ssl file Moved 3 pairs of files because .ssl file is empty or unconforming Moved 1 pairs of files because .ssl file is empty Remaining are 400 pairs of files for visualization
-
run
rake messages_yml(in rare instances there is encoding problem inside the file, opening it with vim and saving back was enough to fix it for me) (during these parsing steps it may fail to parse some code and then fixing it by hand may be needed like adding "end" where procedures have "begin" but lack "end") -
run
rake codes_yml, it parses scripts (if it tells that error is at some line then the line 1 is assumed to be the line before the first "begin") -
run
rake nodes_yml, it collects from yml files info about connections between nodes and messages that is on the surface (it is not exhaustive) -
run
rake viz, this generates mainly svg diagrams (slowest command but it should not fail if graphviz is installed and is available) -
run
rake output, this generates the website to explore diagrams -
run
rake preview, to optionally explore what was generated locally at (http://localhost:3000)
-
I may try it on other mods as well at some point (Nevada, Sonora, ...).
-
Also sometimes there is warning saying "ids collision" when it comes to messages parsing and maybe it looses some information there
-
Possibly sorting svgs by size is the way to select most informative ones, also showing number of nodes and connections near the name could be of use
-
I used Fixed Editions for Russian F1,F2 and older generated English F1 is possibly GOG
-
I got same content for F2 GOG and Restoration Project, probably there is no error
-
added node names to code
-
to have html files as independent as svgs (remove jq,underscore dependencies)
-
do I need code popup being paused and scrollable?