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
bundle
here nearby to install dependencies (may need install bundler bygem install bundler
before) -
find
master.dat
among your Fallout files -
extract all files from
master.dat
somewhere (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/*.int
into.ssl
files using some other tools (I used Windows andint2ssl
) -
put resulting
.ssl
anddialogs/*.MSG
files (fromtext/english/dialog
) into theinput/
directory here nearby -
run
rake -T
to see the menu of possible commands (I tested stuff from this step forward on linux) -
(this command moves files inside input directory) run
rake segregate
to 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?