Interactive SMACX tech tree

Bubblewrap

Chieftain
Joined
Sep 27, 2006
Messages
32

Actually made this a couple of months ago when I was revisiting SMAC after many years, and couldn't make heads or tails of the in-game tech "tree" or the tech tree posters. It's been on my mind again recently, and thought I'd share it here now too.
  • Click on techs to highlight its requirements and dependencies for a clearer overview of what is needed for a tech.
  • Click on most of the items in a block to get a popup with more details.
  • Some details or help texts have internal links which are also clickable.
  • Toggle the checkboxes at the top to only show certain types, might be useful to get a quick overview of which techs unlock new weapons for example.
Hope it's useful to someone. :)

January 27, 2026 Update: These are the main additions:
  • Support for multiple data sets: Via the top-left panel you can select a different data set. Click on "Change" to expand the panel and select a different data set. To start with the following data sets are available:
    • Alpha Centauri (SMAC)
    • Alien Crossfire (SMACX)
    • SMACX + Datalinks 1.3 (this version is selected by default now)
    • SMACX + Thinker 5.3
  • Support for mods: The tool to convert the game data to a JSON file is available from the site. You can find the download link to the most recent version in the data switching panel. This JSON file can be loaded into the tech browser either locally or via an URL (for mod creators that want to host and update their JSON file regularly).
  • Compact mode: A toggle has been added to switch to compact mode. In compact mode nodes will only show the tech name. The node contents will only be shown in the tooltips.
  • Progress tracking: Techs can be toggled to indicate that you have already researched them, and the UI will show you which techs are now available to be researched. Note that this does not take into account any additional restrictions the game enforces.
 
Last edited:
Ah, unfortunately it isn't that simple, and not possible at the moment.

I created a separate tool to parse some of the game files (alphax.txt, helpx.txt, etc), and combine all relevant data in a single JSON file. This JSON file is then loaded by the app to visualize it.

This parsing tool doesn't work quite as straightforward and portable as I had hoped...there are a couple hacks in there to make it work for the official game files. I'm not confident it would work on a modded SMAC/X.

Even if it did, what i have isn't really usable right now by others, i'd need to think about how to make it usable/adaptable for "the masses"...if there is sufficient interest for it.
 
That is fine. I have downloaded your page and can modify it now. Just checking with you if you are fine with it.
I do not think you should adopt it for custom tech tree, as there are not that many of customizators out there. I can do a copy for mine and that should be it.
 
Really nice, only thing is ideally I'd love it if you could compress it a bit vertically as I have to scroll up and down to see the whole thing. Scrolling horizontally makes sense as you go forward in tech but up and down isn't ideal... maybe collapse things until clicked a bit more so it vertically fits on a normal screen.
 
Really nice, only thing is ideally I'd love it if you could compress it a bit vertically as I have to scroll up and down to see the whole thing. Scrolling horizontally makes sense as you go forward in tech but up and down isn't ideal... maybe collapse things until clicked a bit more so it vertically fits on a normal screen.
Which resolution do you use? 1920x1080 or something higher?

What you could try is zooming out with the browser. I intentionally made the tech names bigger so that when zoomed out they'd still be readable, while getting more of the tree in view.

I also intentionally don't want to hide the unlockable items (weapons, facilities, etc.) behind a collapsed nodes.

Vertical spacing between the nodes could be decreased, but i feel it's already as tight as I'd want it right now.
 
Which resolution do you use? 1920x1080 or something higher?

What you could try is zooming out with the browser. I intentionally made the tech names bigger so that when zoomed out they'd still be readable, while getting more of the tree in view.

I also intentionally don't want to hide the unlockable items (weapons, facilities, etc.) behind a collapsed nodes.

Vertical spacing between the nodes could be decreased, but i feel it's already as tight as I'd want it right now.
1680x1050 but it's not even close, there's a lot of vertical scrolling.

I do zoom out but the text gets a little small to read. I think it could do with a compact mode; lots could be done to cram things in more. For instance less vertical space between boxes, remove the quotes below the tech headings, put all unlocked units on the same line comma-separated (this could all be expanded upon click). That would make much more efficient use of vertical space.

I know I'm wishlisting here but it'd also be nice if it could allow you to select a tech to indicate that you have researched it in your current game, and store that in the browser, with a reset button. That way you can have the chart open and remind yourself what you have actually researched in your current game.
 
The layout is dense enough, I would say. I do use zooming out in browser if needed. However, this is a tradeoff between seeing everything at once and see clearly. There are too many things to display.
 
1680x1050 but it's not even close, there's a lot of vertical scrolling.

I do zoom out but the text gets a little small to read. I think it could do with a compact mode; lots could be done to cram things in more. For instance less vertical space between boxes, remove the quotes below the tech headings, put all unlocked units on the same line comma-separated (this could all be expanded upon click). That would make much more efficient use of vertical space.

I know I'm wishlisting here but it'd also be nice if it could allow you to select a tech to indicate that you have researched it in your current game, and store that in the browser, with a reset button. That way you can have the chart open and remind yourself what you have actually researched in your current game.
Ah that explains it. I designed and tweaked it for FHD at minimum (in combination with browser zooming), but of course it was to be expected that a SMAC player is the likely type of user to be at a lower res. :lol:

I do like the idea of an optional compact mode, there's a use for that i think, also at higher resolutions.
Also like the idea of having a mode to track your in-game progress.

Thanks for the feedback, know that it is appreciated.
 
Ah that explains it. I designed and tweaked it for FHD at minimum (in combination with browser zooming), but of course it was to be expected that a SMAC player is the likely type of user to be at a lower res. :lol:

I do like the idea of an optional compact mode, there's a use for that i think, also at higher resolutions.
Also like the idea of having a mode to track your in-game progress.

Thanks for the feedback, know that it is appreciated.
Any chance you could send me the "what you have now" code? You've obviously done a lot of work on this and I'd like to use it as a base for having a go at doing one myself where I would compress it more vertically, have more stuff appear on mouseover, and probably have a system where you could track what you'd researched so far.
 
I have no intention of sharing the source in its current form. There are still some things i want to do before even considering that.
 
I have no intention of sharing the source in its current form. There are still some things i want to do before even considering that.
Did you hard-code things like associating Eudaimonic with the Eudaimonia tech, though? I can see how you can parse some stuff automatically from alphax.txt but there seems to be nothing actually linking those two.

Also, how did you generally figure out the way to parse the info? Are there wikis or did you just figure it out manually?
 
I got all the info i needed from the following files:
  • alphax.txt
  • helpx.txt
  • blurbsx.txt
  • techshorts.txt
  • techlongs.txt
This also includes the link between Eudaimonic and Eudaimonia (around line 871 in alphax.txt in my copy).
Don't know if there is a wiki, but i figured it out on my own...wasn't too difficult using directory wide searches for known texts and phrases. (want to know how a blurb is linked to a tech, search for the blurb text, and it'll have the tech named before it.)

Only thing I somewhat cheated on is hardcoding the tech flag descriptions (ie "Increases NUTRIENT production in fungus"). Those are present in alphax.txt, but I didn't bother parsing them, I just copied them instead.
 
I got all the info i needed from the following files:
  • alphax.txt
  • helpx.txt
  • blurbsx.txt
  • techshorts.txt
  • techlongs.txt
This also includes the link between Eudaimonic and Eudaimonia (around line 871 in alphax.txt in my copy).
Don't know if there is a wiki, but i figured it out on my own...wasn't too difficult using directory wide searches for known texts and phrases. (want to know how a blurb is linked to a tech, search for the blurb text, and it'll have the tech named before it.)

Only thing I somewhat cheated on is hardcoding the tech flag descriptions (ie "Increases NUTRIENT production in fungus"). Those are present in alphax.txt, but I didn't bother parsing them, I just copied them instead.
Ah, I see now. The reason my grep wasn't picking it up in alphax.txt is that its title is misspelt in helpx.txt! It's "#;Eudiamonic" (ia instead of ai). Since it's misspelt, you can't have linked the help text popup using the string can you? Did you manually link up each help text popup or was this one of the hacks you had to do?
 
Ah, I see now. The reason my grep wasn't picking it up in alphax.txt is that its title is misspelt in helpx.txt! It's "#;Eudiamonic" (ia instead of ai). Since it's misspelt, you can't have linked the help text popup using the string can you? Did you manually link up each help text popup or was this one of the hacks you had to do?
I think i ran into something like that, and realized i shouldn't use the strings, but the id below it:
#;Eudiamonic
#HELPSOC32
Perhaps the most pleasant to contemplate living in, this far future
society takes its name from an ancient Greek word for fulfillment

32 here refers to the 3rd (last digit '2', 0-based counting) item of the 4th (first digit 3, 0-based counting) category in the SOCIO's in alphax.txt.
Ids of other object types are more straightforward array indices.
 
January 27, 2026 Update: New version is now online, these are the main additions:
  • Support for multiple data sets: Via the top-left panel you can select a different data set. Click on "Change" to expand the panel and select a different data set. To start with the following data sets are available:
    • Alpha Centauri (SMAC)
    • Alien Crossfire (SMACX)
    • SMACX + Datalinks 1.3 (this version is selected by default now)
    • SMACX + Thinker 5.3
  • Support for mods: The tool to convert the game data to a JSON file is available from the site. You can find the download link to the most recent version in the data switching panel. This JSON file can be loaded into the tech browser either locally or via an URL (for mod creators that want to host and update their JSON file regularly).
  • Compact mode: A toggle has been added to switch to compact mode. In compact mode nodes will only show the tech name. The node contents will only be shown in the tooltips.
  • Progress tracking: Techs can be toggled to indicate that you have already researched them, and the UI will show you which techs are now available to be researched. Note that this does not take into account any additional restrictions the game enforces.
 
Back
Top Bottom