Resource icon

GUI Modding tools [Beta] 1.6.0

izica

Chieftain
Joined
Feb 25, 2025
Messages
42
Civilization 7 modding tools with GUI
After releasing the TypeScript modding tools framework, I realized that not everyone is familiar with TypeScript, so I decided to create a more visual tool, like modding tools with a GUI.

At this point, I’ve been able to recreate my Scythia civ, but only with the GUI.

You can find an example of the civilization in the folder at {app}/resources/examples/scythia, after launch, simply select the {app}/resources/examples/scythia folder (it contains data.json).

Download

You can ask me questions or send feature requests on discord channel, at Civ 7 Modding Helpline discord

Features
  • GUI
  • Dragable nodes
  • Multiselect nodes
  • Specific relations between nodes
  • Checking compile DB errors (no game launch required)
  • File imports(icons)
  • Localizations
  • Import data from the game database
    • currently at the alpha stage, at this point, you can only import traditions.
WIP
  • Unique quarters
  • Great people
  • Imports
    • Units
    • Constructibles
    • Specific modifiers
PS: I'm not a software developer, so there might be crashes or issues when launching the app.

Nodes preview
preview-1.png

preview-2.png

preview-3.png


Relations
relations-1.png
relations-2.png
relations-3.png


Property Lists
select-1.png
select-2.png


Multiselect
multiselect.png

Localizations

localizations.png


Compiling error
compiling.png


Import (alpha preview)


import.png
 
[Update Beta 1.1.0]

New

  • Option to compile the mod directly into the game's Mods folder
  • Delete nodes with a middle-click
  • Open the node menu with a right-click on node
  • Unique quarters nodes (requires two attached constructibles per quarter)
  • Access to databases from different ages during import (Antiquity, Exploration, Modern)
  • new Imports
    • unique quarters
    • constructibles
    • units
WIP
  • Great people nodes
  • Importing civics
  • Importing great people

    1743252609097.png
    1743252632049.png
 
izica updated Content Modding tools with GUI with a new update entry:

1.2.0

New features
- Shift + left mouse drag now allows you to select nodes and export them as a string to the clipboard
- Nodes can now be imported from an exported string
- New shortcut: Ctrl+N — restores a ModNode if it was accidentally deleted (only one ModNode is allowed)
- Quick search (top left corner)

New imports
- Civilization
- Great person
- Unit
- UnitAbility
- Progression tree node(civic)

New nodes
- Civilization -> StartBiasAdjacentToCoastNode
- Civilization ->...

Read the rest of this update entry...
 
izica updated Content Modding tools with GUI with a new update entry:

Beta 1.3.0

Bug fixes
- Generation of VisArtCivilizationUnitCultureNode is now working properly
- Sometimes, the node position was saved in a broken state

New features
- History (data checkpoints): Each time you press Ctrl+S, a checkpoint is saved, allowing you to revert to it whenever needed

New nodes
- Civilization -> CivilizationLoadingInfo (localization texts + images)

New imports
- Modifier

Read the rest of this update entry...
 
I didn't really get it until I downloaded it. Excellent job. I only played with it in a cursory manner so there's a lot don't know about.

The first I have to say is that's a whole lot of white. A dark mode would be nice. I don't really want to stare at that much white for long. It couldn't find my mods directory. I assume that's because it is in %AppDataLocal% rather than %AppData% which is set to roaming. If you're just checking relative to %AppData% then you need to add in checking in %AppDataLocal% if you don't find it in %AppData%. I see it creates a directory in %AppData% with a bunch of files in there. Particularly I don't know if that's files modified through using the application or if there's configuration files a user might have cause to edit directly. There's no installer so I'm not sure where I should put this. Particularly whether it's 64-bit program going in "Program Files" or 32-bit going in "Program Files (x86)". That isn't to say you need an installers, that's just nice to have, but that you need installation instructions absent an installer automating installation. If there's any configuration the user may need to adjust then that needs explained as well. The zip file contains a directory that contains the directory the application is in. That top level directory would be a good place of installation and configuration instructions.

That brings me to the general need for documentation. This is a bit more involved than notepad and involves an interface most are likely unfamiliar with. Some instruction on using the program would be good. Markdown (.md) is a good format. You can read it with or without a viewer. Originally, I thought the writer was just including notes on what they would do if they used a real editor. HTML is another choice. Generally not real readable without a viewer but everyone has a viewer. You can also use Markdown as a way to launch into HTML. You should answer the basic question of how do I get started. Just as an example when I start the app it tells me it can't find the mods directory, something about a JSON file or select a directory. I don't know why I'm doing that. I think surely I don't do development in the live mods directory. I might want to play the game before I get it to an executable state.

Overall, I don't get the project model. Just to me I want a project directory where all the files containing information I enter into your program resides. Not configuration for your app, but information specific to this mod I'm working on. That is, basically, my source if I use this app to generate my mod. I want to generate into a clean directory appropriate for moving into the mods directory. That let's me check it to be sure I generated what I intended, i.e. did I use the app properly. You seem to be geared towards a DLC type mod rather than a UI mod. That's fine, but I might want to use it to just generate a modinfo file. Once I think it might actually work I want to test it so move it into the mods directory. Basically development, quality assurance and live. Some documentation explaining how you envision that process would be nice. I can well understand dreading the whole documentation things which is why so many programs go undocumented. I just don't think you can do this level of complexity without it.

I really like the whole entity relationship diagram thing. I think that's quite innovative. I give you kudos for that. Particularly since all gameplay is done through the databases and those databases get quite complex. That said I can't help but feel you need some standard interface elements. Specifically a menu bar, tool bar and status bar. I can understand from an ascetic perspective not wanting those. This seems primed for a multi-document interface. These diagrams could get quite complex. Your screenshots shows how hard it is to capture everything in one document. A civilization might have custom builds and units. You might want to split those units out to separate documents. The common MDI is tabs that let you select documents. The tabs actually just control which window is visible. That window is sub to a panel and fills the panel. Some apps let you break a tab free and move it around as a window constrained by the panel, but not forced to fill the panel. Some are not constrained by the app window. Those seem generally be creative apps. They need all those menues and tool bars, but not right now and the user wants immersed in what they are doing. Often they have detachable palates so the user has access to the commands they need for editing. That would seem a good interface here. That isn't an arguement that you need to support multiple documents now, but that you can detach the diagram from the app window so you get that clean view when the user is immersed in the fine details. I'm not sure what you're using for development but it's generally a simple change You just make it a child of the desktop rather than your app. Otherwise it's indistinguishable to your program.

You do have a status bar. It just displays the x, y coordinates presumably because you can move the boxes around. It would be nice to have some additional information. Like maybe when an item is selected how many relationships does it have or how many items are there in the diagram. One thing in particular that would be nice is messages. Trying to figure out how to do things and I get messages that disappear never to be seen again. Something I can click on the status bar to pop up messages would be really nice so I can read them. Really nice would be a count of how many new messages since I opened it last. Like a basic SMS app. You might as well put the time in there as well since you can never have too many clocks. And the save status. It is there, you might as well use it.

Overall, excellent job. If nothing else I look forward to using to explore how things fit together. I am curious what you used to generate those diagrams, I got some data that would make for a much easier way to view.
 
I didn't really get it until I downloaded it. Excellent job. I only played with it in a cursory manner so there's a lot don't know about.

The first I have to say is that's a whole lot of white. A dark mode would be nice. I don't really want to stare at that much white for long. It couldn't find my mods directory. I assume that's because it is in %AppDataLocal% rather than %AppData% which is set to roaming. If you're just checking relative to %AppData% then you need to add in checking in %AppDataLocal% if you don't find it in %AppData%. I see it creates a directory in %AppData% with a bunch of files in there. Particularly I don't know if that's files modified through using the application or if there's configuration files a user might have cause to edit directly. There's no installer so I'm not sure where I should put this. Particularly whether it's 64-bit program going in "Program Files" or 32-bit going in "Program Files (x86)". That isn't to say you need an installers, that's just nice to have, but that you need installation instructions absent an installer automating installation. If there's any configuration the user may need to adjust then that needs explained as well. The zip file contains a directory that contains the directory the application is in. That top level directory would be a good place of installation and configuration instructions.

That brings me to the general need for documentation. This is a bit more involved than notepad and involves an interface most are likely unfamiliar with. Some instruction on using the program would be good. Markdown (.md) is a good format. You can read it with or without a viewer. Originally, I thought the writer was just including notes on what they would do if they used a real editor. HTML is another choice. Generally not real readable without a viewer but everyone has a viewer. You can also use Markdown as a way to launch into HTML. You should answer the basic question of how do I get started. Just as an example when I start the app it tells me it can't find the mods directory, something about a JSON file or select a directory. I don't know why I'm doing that. I think surely I don't do development in the live mods directory. I might want to play the game before I get it to an executable state.

Overall, I don't get the project model. Just to me I want a project directory where all the files containing information I enter into your program resides. Not configuration for your app, but information specific to this mod I'm working on. That is, basically, my source if I use this app to generate my mod. I want to generate into a clean directory appropriate for moving into the mods directory. That let's me check it to be sure I generated what I intended, i.e. did I use the app properly. You seem to be geared towards a DLC type mod rather than a UI mod. That's fine, but I might want to use it to just generate a modinfo file. Once I think it might actually work I want to test it so move it into the mods directory. Basically development, quality assurance and live. Some documentation explaining how you envision that process would be nice. I can well understand dreading the whole documentation things which is why so many programs go undocumented. I just don't think you can do this level of complexity without it.

I really like the whole entity relationship diagram thing. I think that's quite innovative. I give you kudos for that. Particularly since all gameplay is done through the databases and those databases get quite complex. That said I can't help but feel you need some standard interface elements. Specifically a menu bar, tool bar and status bar. I can understand from an ascetic perspective not wanting those. This seems primed for a multi-document interface. These diagrams could get quite complex. Your screenshots shows how hard it is to capture everything in one document. A civilization might have custom builds and units. You might want to split those units out to separate documents. The common MDI is tabs that let you select documents. The tabs actually just control which window is visible. That window is sub to a panel and fills the panel. Some apps let you break a tab free and move it around as a window constrained by the panel, but not forced to fill the panel. Some are not constrained by the app window. Those seem generally be creative apps. They need all those menues and tool bars, but not right now and the user wants immersed in what they are doing. Often they have detachable palates so the user has access to the commands they need for editing. That would seem a good interface here. That isn't an arguement that you need to support multiple documents now, but that you can detach the diagram from the app window so you get that clean view when the user is immersed in the fine details. I'm not sure what you're using for development but it's generally a simple change You just make it a child of the desktop rather than your app. Otherwise it's indistinguishable to your program.

You do have a status bar. It just displays the x, y coordinates presumably because you can move the boxes around. It would be nice to have some additional information. Like maybe when an item is selected how many relationships does it have or how many items are there in the diagram. One thing in particular that would be nice is messages. Trying to figure out how to do things and I get messages that disappear never to be seen again. Something I can click on the status bar to pop up messages would be really nice so I can read them. Really nice would be a count of how many new messages since I opened it last. Like a basic SMS app. You might as well put the time in there as well since you can never have too many clocks. And the save status. It is there, you might as well use it.

Overall, excellent job. If nothing else I look forward to using to explore how things fit together. I am curious what you used to generate those diagrams, I got some data that would make for a much easier way to view.
There’s a small FAQ on the Discord channel that gets updated over time—I'll repost it here:

Which folder should I select?
You can select any folder; it can be empty or contain a data.json file. If there is no data.json file, a new one will be generated when you press Ctrl+S.

Should I use %AppData%/Local/Firaxis Games/Sid Meier's Civilization VII/Mods/{your mod} as my initial folder?
No, there's a checkbox in the GUI app that enables direct compilation into this folder. It’s best to keep the mod's initial folder in a different location.

What is data.json?
data.json stores all the data needed for mod compilation, including nodes, their contents, positions on the screen, and connections between them.

What is mod compilation?
The GUI app transforms the data.json into a mod (a folder with files) that the game can load.
Initially, the mod is compiled in the folder next to data.json.

How do I create a relation node?
Each node block has a menu in the top-right corner where you can create a relation node, or just right-click the node block

How can I learn how to properly connect and configure nodes?
There are several ways:
  • Study the XML/SQL mod structure.
  • Check the example civilization in /resources/examples
  • Use the import feature and analyze the relations
  • Ask for help in discord
I think something is missing or isn’t working properly. Where should I go for help?
Mention izica in discord and ask for help or report a bug

The GUI doesn’t support something that I need. What can I do?
  • You can leave a feature request in this channel
  • You can use the import of custom files, such as JS, SQL, and XML(ActionGroup -> Import file)


---

If you have any further questions, feel free to contact me on Discord.
 
That helped a great deal. One other suggest is some example mods. You say you redid your mod using this so maybe include that as a full tilt example. Maybe a few more simple examples. Like what I would call a gameplay balance mod that just tweaks numbers, doesn't add anything new. Maybe something showing importing resources like icons or sounds effects. Something that might hook and reel in a budding modder.
 
That helped a great deal. One other suggest is some example mods. You say you redid your mod using this so maybe include that as a full tilt example. Maybe a few more simple examples. Like what I would call a gameplay balance mod that just tweaks numbers, doesn't add anything new. Maybe something showing importing resources like icons or sounds effects. Something that might hook and reel in a budding modder.
Check {app}/resources/examples there is a full Scythia Civilization, open directory using Ctrl+O.
I'll add it into FAQ soon.
 
Last edited:
Sure enough, that showcases what it can do. Good timing for me too. I've been playing with the scripts and decided it was time to start digging into the table definitions. The definitions show how the tables are physically related. This shows how they're related in a practical application. I think I'm going to have some fun with this.

That workspace is huge. I hate to think the complexity it would take to fill that, but, alternatively, it provides ample space for the user to lay things out however they please. Perhaps that's actually effectively infinite since you can still scroll it at 1%. One thought is, basically, a mini map. One like the game would be good. The zoom locked to a ratio to the main window and a box showing what's visible in the main screen. That seems to work well for navigating a large area with lots of detail. Also maybe shapes and boxes. Strictly decoration as a navigation and memory aid. Like being to put a box around a cluster. Stick a solid shape by it to remind you what type of cluster it is. Maybe be able to set the color to indicate something like to do, in progress and completed or whatever makes sense to the user.
 
izica updated Content Modding tools with GUI with a new update entry:

1.5.0

  • File import reworked
  • Added UIScripts to file import
  • Updated databases to the latest patch
  • Updated node fields to the latest patch
  • Updated node connecting points
  • Added smart connecting algorithm
  • Added the ability to paint nodes in color
  • Fixed issues with great person generation
  • Fixed issues with importing and generating narrative stories
  • Updated constants/selects to the latest patch
  • Added the ability to duplicate selected nodes along with their entire...

Read the rest of this update entry...
 
Oo this is very cool, I love desigining civs but have never had the coding knowledge to make any - will definitely be giving this a try! I can't seem to access the discord though, has the link expired or smth?
Edit: Found a different link n managed to join!
 
Last edited:
Hi, I was just wondering if it's possible to use this to make a custom leader?

Edit: I'll check the Discord and if I can't find the answer I'll ask there instead :)
 
Back
Top Bottom