Feature request: Toolset
Shadooow
Member Posts: 402
Here is a list of features that I find toolset missing.
1) proper TAB usage in script params window in conversation: when cursor is inside the Name script param cell and TAB is pressed it should jump to the Value script param cell instead of the + button. Same with SHIFT+TAB which now jumps from Value cell to the EDIT (script) button. If more of the script params are set then the TAB should jump onto next row, SHIFT-TAB previous row.
2) Automatically storing the inputted value into script param fields. Right now, the value is not stored if the user changes tab while having editting cursor active in the script param cell. Other text fields in toolset are doing it already so I would even classify that as a bug.
3) Allow copying journal entries over different toolset instances. Ie. when copying the journal entry, store it in clipboard as a text in some format that can be later pasted into journal. Currently, it seems that after closing journal window the copied entries are erased. Copying journal entries over 2 different modules needs to be done manually via GFF editor.
4) Add text fields into module events for the two new module events - OnNUI and OnGui.
5) Allow sorting in creature's Special Abilities and Feats tabs. It would be great if user could clicks on Available or Uses and the toolset would show feats/special abilities that npc knows at the top. Alternatively - and that might be much simpler to code, add a "Known" value into the filter list which will then only show feats that are available and special abilities that has at least 1 use.
6) Unhardcode the Feats filter list, lets us specify new new types of feats. We can already assign feat custom value in feat.2da, however toolset will show empty string in the feat list and filter won't show up the new value either.
7) Allow us to set lower values for body decay than 5 seconds. That is, if this is toolset limitation only.
8) Mass blueprint selection mode. A new button that would show up right side of the Show Plot checkbox called "Mass Editing Mode" or something like that. Clicking on that button would enter a mode where multiple blueprints could be selected by left clicking (and deselected with subsequent left clicking). Clicking the button again while any blueprint is selected would show up a a new window that would offer to change some value of all blueprints to specified value. Some of the most often mass-edits. Category (all blueprints), Plot (all), Variables (all), Race (creatures), Script Events, Baseitem (items), Stolen (items), Charges (items), Additional Cost (items)... But just Category, plot and script events would already help tremedously. Clicking the Mass Editing Mode when no blueprint is selected and the mode is enabled would disable the mode, performing any mass edit would deselect all selected blueprints and disabled the mode too.
9) A save option when right clicking the area tab. Currently we have to close it to get the save option and then re-open it.
10) Allow to show loadscreens in DDS format (or the other new EE-only formats) - currently toolset will only show loadscreens in TGA format.
11) Get rid of the "s" loadscreens (which are toolset only as I understand it) and simply open the large loadscreen and scale it down to the required size. //Well this might get inefficient I guess, but it is very annoying to make these for custom content creators and personally I avoid this by using the miniloadscreen from forest just to force it to show in toolset.
12) Allow us to manually input the portrait resref. Right now the text field is not editable and we have to select in manually, which is extremely slow with custom content adding thousands of portraits.
13) Enlarge the Variables table if possible. If not, simpler option would be to remember the size that user changed this table to and next time Variables table is invoked open it in this size.
14) Make the three columns size to be equal of 45% 10% 45% the table size. And automatically update this when user changes the window size (which is possible).
15) "Variable Sets". Just like Script Sets in Scripts event, but with variables. Two new buttons that allows to store all variables onto disk in text format and import it back. Importing will rewrite current variables if they exists under same name to make it simpler.
16) Increase the hardcoded limit for abilities in Creature properties to at least 200. I know for certain it works as I am setting this via GFF editor, but it gets tiresome because anytime I edit the creature in toolset the custom value gets reset to toolset hardcoded maximum of 100. Value 200 would allow greater customization without being able to get over 255 which might cause issues.
17) Script editor: Automatically open an include file if the user double-clicks on an #include line in some script and that include is not opened yet. Perhaps require the double-click is performed on a filename rather than whole line. Alternatively show a new option "Open Script" if the user selects the filename in the #include option via double click and then right clicks (which shows up context menu).
18) Allow use CTRL+mouse wheel on a sound object to alter its heard distance.
19) Show Inventory option in context menu when right clicking merchant object.
20) ReplaceObjectTexture directly in toolset without scripting. This one is tricky, I think the best option would be a new option in context menu (on object types supporting this) which would then show up a table much like Variables but two columns - Texture and Override. Ideally it would also already pre-filled the values in the Texture column to contain all textures the object uses.
21) Gray out the options in Initial State of placeable in context menu if the placeable is set to static (so that user realizes it is static unlike now when it is possible to do on static placeable but nothing happens and then user wonders why it isn't working).
Scripting related feature request:
1) We really need GUIEVENT constants for Opening and Closing all GUI panels like character sheet (mainly), inventory etc. I know that the Open event is possible to trigger for them using a trick, but not Close - this is mandatory to calculate GUI position (left, right) and to delete any additional text printed with PostString when player opens such GUI.
2) We really need a GUIEVENT_CHARACTERSHEET_TAB_CLICKED with values 1 general 2 skills 3 feats. This + above would allow us to reuse the empty space that is in skills/feat tab before some skill/feat is click upon for our needs (like displaying additional info).
3) GUI event for unequip/drop item from inventory would be cool - would allow BG2 style cursed item without the usual issues related to copy/destroy and full inventory.
4) In character sheet, clicking onto the armor icon (left side of the AC: value) is a good candidate for another GUI event - could be used to showup popup NUI with a full AC calculation.
1) proper TAB usage in script params window in conversation: when cursor is inside the Name script param cell and TAB is pressed it should jump to the Value script param cell instead of the + button. Same with SHIFT+TAB which now jumps from Value cell to the EDIT (script) button. If more of the script params are set then the TAB should jump onto next row, SHIFT-TAB previous row.
2) Automatically storing the inputted value into script param fields. Right now, the value is not stored if the user changes tab while having editting cursor active in the script param cell. Other text fields in toolset are doing it already so I would even classify that as a bug.
3) Allow copying journal entries over different toolset instances. Ie. when copying the journal entry, store it in clipboard as a text in some format that can be later pasted into journal. Currently, it seems that after closing journal window the copied entries are erased. Copying journal entries over 2 different modules needs to be done manually via GFF editor.
4) Add text fields into module events for the two new module events - OnNUI and OnGui.
5) Allow sorting in creature's Special Abilities and Feats tabs. It would be great if user could clicks on Available or Uses and the toolset would show feats/special abilities that npc knows at the top. Alternatively - and that might be much simpler to code, add a "Known" value into the filter list which will then only show feats that are available and special abilities that has at least 1 use.
6) Unhardcode the Feats filter list, lets us specify new new types of feats. We can already assign feat custom value in feat.2da, however toolset will show empty string in the feat list and filter won't show up the new value either.
7) Allow us to set lower values for body decay than 5 seconds. That is, if this is toolset limitation only.
8) Mass blueprint selection mode. A new button that would show up right side of the Show Plot checkbox called "Mass Editing Mode" or something like that. Clicking on that button would enter a mode where multiple blueprints could be selected by left clicking (and deselected with subsequent left clicking). Clicking the button again while any blueprint is selected would show up a a new window that would offer to change some value of all blueprints to specified value. Some of the most often mass-edits. Category (all blueprints), Plot (all), Variables (all), Race (creatures), Script Events, Baseitem (items), Stolen (items), Charges (items), Additional Cost (items)... But just Category, plot and script events would already help tremedously. Clicking the Mass Editing Mode when no blueprint is selected and the mode is enabled would disable the mode, performing any mass edit would deselect all selected blueprints and disabled the mode too.
9) A save option when right clicking the area tab. Currently we have to close it to get the save option and then re-open it.
10) Allow to show loadscreens in DDS format (or the other new EE-only formats) - currently toolset will only show loadscreens in TGA format.
11) Get rid of the "s" loadscreens (which are toolset only as I understand it) and simply open the large loadscreen and scale it down to the required size. //Well this might get inefficient I guess, but it is very annoying to make these for custom content creators and personally I avoid this by using the miniloadscreen from forest just to force it to show in toolset.
12) Allow us to manually input the portrait resref. Right now the text field is not editable and we have to select in manually, which is extremely slow with custom content adding thousands of portraits.
13) Enlarge the Variables table if possible. If not, simpler option would be to remember the size that user changed this table to and next time Variables table is invoked open it in this size.
14) Make the three columns size to be equal of 45% 10% 45% the table size. And automatically update this when user changes the window size (which is possible).
15) "Variable Sets". Just like Script Sets in Scripts event, but with variables. Two new buttons that allows to store all variables onto disk in text format and import it back. Importing will rewrite current variables if they exists under same name to make it simpler.
16) Increase the hardcoded limit for abilities in Creature properties to at least 200. I know for certain it works as I am setting this via GFF editor, but it gets tiresome because anytime I edit the creature in toolset the custom value gets reset to toolset hardcoded maximum of 100. Value 200 would allow greater customization without being able to get over 255 which might cause issues.
17) Script editor: Automatically open an include file if the user double-clicks on an #include line in some script and that include is not opened yet. Perhaps require the double-click is performed on a filename rather than whole line. Alternatively show a new option "Open Script" if the user selects the filename in the #include option via double click and then right clicks (which shows up context menu).
18) Allow use CTRL+mouse wheel on a sound object to alter its heard distance.
19) Show Inventory option in context menu when right clicking merchant object.
20) ReplaceObjectTexture directly in toolset without scripting. This one is tricky, I think the best option would be a new option in context menu (on object types supporting this) which would then show up a table much like Variables but two columns - Texture and Override. Ideally it would also already pre-filled the values in the Texture column to contain all textures the object uses.
21) Gray out the options in Initial State of placeable in context menu if the placeable is set to static (so that user realizes it is static unlike now when it is possible to do on static placeable but nothing happens and then user wonders why it isn't working).
Scripting related feature request:
1) We really need GUIEVENT constants for Opening and Closing all GUI panels like character sheet (mainly), inventory etc. I know that the Open event is possible to trigger for them using a trick, but not Close - this is mandatory to calculate GUI position (left, right) and to delete any additional text printed with PostString when player opens such GUI.
2) We really need a GUIEVENT_CHARACTERSHEET_TAB_CLICKED with values 1 general 2 skills 3 feats. This + above would allow us to reuse the empty space that is in skills/feat tab before some skill/feat is click upon for our needs (like displaying additional info).
3) GUI event for unequip/drop item from inventory would be cool - would allow BG2 style cursed item without the usual issues related to copy/destroy and full inventory.
4) In character sheet, clicking onto the armor icon (left side of the AC: value) is a good candidate for another GUI event - could be used to showup popup NUI with a full AC calculation.
0
Comments
I would like to add: Allow us to set caster level of special abilities manually (1-40 at least) within the creature properties (currently capped at lvl 15)
Of course, saving area is not saving module. Without saving module changes to anything won't manifest.
Saving area itself is useful because toolset is stil crashy. When the toolset crashes or your computer loses power, the temp0 folder is not deleted and thus next time you open the toolset you get asked whether you want to restore that backup or not. But, if those areas weren't saved, then you lose all the progress in them anyway even in this case.
The way the function is coded makes is very limited. I guess it can be useful to non-hak servers (but when nwsync exists, why would anyone stick to no-hak design anymore?).
I had a two things in my mind for this but neither is doable because this limitation.
Please consider adding either oPlayer parameter, so we can set different TLK override to different players. Or add a new function SetTlkOverrideStrRef that would take tlk reference as a second parameter instead of raw text.
Because even BeamDog has not fixed all the issues with this game. Using haks that other people make adds a greater chance of introducing bugs and breaking down the road when BeamDog does fix those issues. Those are my main reasons.
Since I work on my module more as a hobby, adding something like CEP, to me, seems like a whole new system I would need to learn. That would probably push it out of hobby time restraints.
https://github.com/dunahan/Toolset_V2
There is a downloadable 7z file with a different name (so it will not overwrite anything), so you can extract it to your bin folder.