• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

GuiGui Database Manager

This bundle is marked as pending. It has not been reviewed by a staff member yet.
Are you a GUI enjoyer? Do you want more functionality without having to use so much custom script?
Introducing: GuiGui Database Manager!

What is it?
GuiGui Database Manager is not a trigger/code editor/converter. It is a tool for adding to/removing from/updating the functions, variable types, categories, etc. etc. that are available locally in the World Editor. GuiGui modifies 3 different files: triggerdata.txt, triggerstrings.txt, and worldeditstrings.txt. These files are then read by the World Editor to populate everything usable in GUI in the trigger editor.

Why should I use this instead of notepad?
Since the files used by the editor are txt files, you could just use notepad to edit them instead. However, I aim to make it much less of a headache with GuiGui by providing a GUI to work with, eliminating the hassle of going back and forth from entry to section header to make sure you're not formatting things incorrectly.
GuiGui also has the added functionality of *modulization*. This means you can make entries functions for things like custom libraries with GuiGui, export them as a module, and then share the module with others so that they can import the module into their trigger library, allowing them to use your library functions in GUI (they would still need to have your library present in a map to do this, of course).


How do I use it?
Firstly, you'll need to install .Net Desktop Runtime 6.0.23 if you don't already have it, and you'll need to enable local files (more info here: https://www.hiveworkshop.com/threads/local-files.330849/) if you haven't already. Also, this program is only compatible with Reforged. I have not accounted for the legacy formats for the triggerdata/triggerstrings/worldeditstrings files, and do not plan to do so at any point in the near future. When you launch GuiGui, you have the option of starting a database from scratch by yourself, but this isn't recommended unless you're just creating a module. If you're not just creating a module, you can load your own triggerdata/triggerstrings/worldeditstrings files, or load either Blizzard's files (taken from patch 1.36), or my own modified files (rev10). After doing this, you can modify any of the data available. Do note that invalid modifications/entries can cause the editor to load incorrectly or crash, and there's not much sanity checking available in GuiGui at this time. That being said, you probably have to actively try to make something that'll cause the editor to crash. When you're done editing things, save your .txt files and place them in your install directory under _retail_\UI (you will need to create this folder if it doesn't exist). It's important to know that if you cancel while saving the .txt files, no matter which one you cancel at, none of the will save any data and you will instead be left with empty files. There are 3 custom blps provided by me that you can use for category icons as well, and they will automatically be saved in the same folder as the output txt files if they are being referenced by any categories. These blps should go in _retail_\replaceabletextures\worldeditui (again, create the folders if they don't already exist). After putting all files in their appropriate places, you can fire up the World Editor and all of your changes should take effect.
I have attached a sample module for the Ascii Library found here: https://www.hiveworkshop.com/threads/lua-vjass-ascii.190746/

Note: As far as I know, only functions written in JASS are usable in GUI. I've tried testing some lua functions, both custom and not custom, in GUI, and have had no success.

I do plan to keep working on GuiGui and expand its functionality. Currently, it doesn't save comments and doesn't allow you to load your own images for use as category icons, but both of those things should be remedied before too long. I have had a few people help me with testing (thanks @Wrda and @WaterKnight ), but our testing hasn't been super intensive, and I may have missed some bugs. That being said, if you do happen to run into any issues, please let me know and I'll do my best to fix them. I'd also love to hear any other constructive feedback anyone may have. Thanks, and enjoy!


v1.3.2
-The search bars now support partial matches (previously you had to know the name of a specific entry to search for it)

v1.3.1
-Added a new dialog that pops up when an improperly formatted line is encountered when loading files that allows users to select the proper format for the line (previously the program would just throw an error/crash)
-Increased the size of the moon emoji for dark mode

v1.3.0
-Added functionality to import types/events/actions/functions directly from a .j file (imported types/functions still require some user definition as not every field's value is immediately discernible from a JASS declaration alone)
-Added functionality for adding a debug logging system to your maps (not really related to the main purpose of guigui but I developed it for personal use and wanted to put it somewhere so 🤷‍♂️)
-Replaced my ugly banana moon with the moon emoji 🌙
-Fixed the A-Z sort button on Types for dark mode

v1.2.2
-Fixed more (all?) bugs with the file loading code and updated the sample module with correctly loaded data

v1.2.1
-Added a button to sort categories alphabetically by category name and types alphabetically by type name
-Added buttons to clear all of x data type
-Fixed some discrepancies with categories that caused incorrect display suppression values and duplicate entries (affects the sample module which has been updated as well)

v1.2.0
-Optimized the code for loading files (400+ lines shorter now), changed some data types because of this (though none of these changes should have any user-facing effects)

v1.1.2
-Fixed a bug with module importing that caused entries from modules to skip duplicate checks and be added to the main database anyway if they're duplicates

v1.1.1
-Fixed a bug that caused function calls to not save or load Return Type properly
-Fixed a bug that caused users to be unable to add arguments to an entry without first selecting an entry
-Fixed a bug that could cause issues with newly added arguments' min/max values

v1.1.0
-Added an option to load only default categories and types so that you don't have to load an entire trigger database in order to start creating modules (the default categories and types feature all additions made in my own extended GUI files)
-Added measures to prevent exact duplicate entries from being added when importing modules (will add more mistake preventing measures in the future)

v1.0.2
-Fixed the 1.0.1 bug but for function calls because I forgot to do that earlier 🥸

v1.0.1
-Fixed a bug that caused some strings to be loaded incorrectly

-Windows Defender will tell you that GuiGui is every kind of trojan, presumably because I’m not spending the money to buy a certificate to sign the app with. Running a scan with VirusTotal or something like that will come back clean though, as I do not know how to write a trojan.
-The main boxes for categories and types don't have purple lines on the right in dark mode when no scrollbar is present
-Jass version of the debug logging system might not work perfectly, haven’t fully tested/ironed it out
Contents

GuiGui Database Manager v1.3.2 (Binary)

sample module (Binary)

Level 6
Joined
Jul 25, 2019
Messages
94
This is incredibly skibidi based. As one of the few members of the GUI sigmarace, believing that GUI is the best and vJass is vAss, i absolutely love this Trigger expander. It makes working with indepth GUI functions a lot easier and smoother, and even for unexperienced map developers, this can help them create very complex triggers in GUI that they would otherwise probably not be able to do or would need a lot of help from the forum to create. Overall, this is a very good adition to the GUIverse
 
Top