User Tools

Site Tools



textcommandhelper

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
textcommandhelper [2023/08/23 16:27] – mistahmikeytextcommandhelper [2026/11/14 13:28] (current) – Update release summary, shared controls, support and full-window screenshots mistahmikey
Line 1: Line 1:
-======= Text Command Helper (TCH) =======+====== Text Command Helper (TCH) ======
 {{:mistahmikey:textcommandhelper:text_command_helper.png?400|}} {{:mistahmikey:textcommandhelper:text_command_helper.png?400|}}
  
-===== What it does ===== +===== Release Summary =====
  
-TCH allows you to create aliases for long FFXIV text commands that you can subsequently indirectly execute from within FFXIV macros or via the chat window by referencing the aliases.  The FFXIV text command arguments associated with an alias can be up to 1022 characters in length - a substantial increase in what is typically allowed within the game for both the chat window and macro lines.  TCH allows you to pack more FFXIV text commands into your macros or more easily execute long chat FFXIV text command sequences from the chat window.+**Text Command Helper 2.0.0** 
 + 
 +  * Runs saved aliases of long game text commands with command sequences, fine-grained waits, colors, and supported UTF-8 tokens. 
 +  * With TeleportCommand installed, a sequence can wait for travel to finish. Rejected, failed, cancelled, or timed-out waited trips stop the remaining sequence. 
 +  * Requires MML 6.0.0 and uses shared profile, display-language, and logging controls. 
 + 
 +===== What it does ===== 
 + 
 +TCH allows you to create aliases for long FFXIV text commands that you can subsequently indirectly execute from within FFXIV macros or via the chat window by referencing the aliases.  The FFXIV text command arguments associated with an alias can be up to 1022 bytes after parsing in length - a substantial increase in what is typically allowed within the game for both the chat window and macro lines.  TCH allows you to pack more FFXIV text commands into your macros or more easily execute long chat FFXIV text command sequences from the chat window.
  
 TCH provides this capability by leveraging the FFXIV 'echo' text command to submit aliases for execution. Using the TCH "exec" command (/e /exec), multiple aliases can be executed with a single exec command.  Additional features provided are: TCH provides this capability by leveraging the FFXIV 'echo' text command to submit aliases for execution. Using the TCH "exec" command (/e /exec), multiple aliases can be executed with a single exec command.  Additional features provided are:
Line 11: Line 19:
    * The ability to add color to arbitrary sections of an FFXIV text command    * The ability to add color to arbitrary sections of an FFXIV text command
    * The ability to embed hexadecimal character strings that encode FFXIV UTF8 characters or FFXIV message tokens (for fancy characters like the die from the /random FFXIV text command)    * The ability to embed hexadecimal character strings that encode FFXIV UTF8 characters or FFXIV message tokens (for fancy characters like the die from the /random FFXIV text command)
-   * The ability to paste FFXIV text commands into TCH from the clipboard that contain FFXIV UTF8 characters. +   * The ability to paste FFXIV text commands into TCH from the clipboard that contain FFXIV UTF8 characters.
  
  
Line 18: Line 26:
 ===== Requirements ===== ===== Requirements =====
  
-You must also download MistahMikeysLib from the store. It's free, of course.+Install the free MistahMikeysLib addon from the store. Text Command Helper 2.0.0 requires MistahMikeysLib 6.0.0; update both together. TeleportCommand 2.0.0 is optional and is required only for the teleport examples below. Taximan is needed only when those examples use its saved favorites.
  
-TCH supports the following languages:  EN, FR, JP, KR, and CN.+TCH supports the following languages:  EN, FR, JP, KR, CN, and TC.
  
 You must ensure FFXIV, Minion, and TCH are always updated to their latest versions. You must ensure FFXIV, Minion, and TCH are always updated to their latest versions.
  
  
-======= Usage Description =======+====== Usage Description ======
  
-You must use the FFXIV echo command to submit TCH's /exec command.  TCH will then execute the FFXIV text commands associated with their aliases.  You can initiate the /exec command via either including it on a macro line or typing it the the chat window, like so:+You must use the FFXIV echo command to submit TCH's /exec command.  TCH will then execute the FFXIV text commands associated with their aliases.  You can initiate the /exec command via either including it on a macro line or typing it in the chat window, like so:
  
 /e /exec <arg1>,<arg2>,...,<argn> /e /exec <arg1>,<arg2>,...,<argn>
Line 39: Line 47:
 | wait         | milliseconds to wait  | Used to specify the time you wish TCH to pause before executing the next argument.                                                                                                                                                                                                                                                                                          | | wait         | milliseconds to wait  | Used to specify the time you wish TCH to pause before executing the next argument.                                                                                                                                                                                                                                                                                          |
  
-Any errors in exec command execution will result in a red message being displayed in the chat window.  For the FFXIV text commands you specify for an alias, TCH only checks for basic errors, such as a proper length and that it at least starts with something in the form of an FFXIV text command, i.e., /<text>. TCH does NOT check that <text> is a valid FFXIV text command, nor can TCH know if the FFXIV text command you executed was successful - you'll have to detect and debug such errors yourself.  TCH executes each argument serially, pausing whenever you specify a 'wait' argument before executing the next argument.  This effectively allows you to specify mini-macros using a single exec command.+Any errors in exec command execution will result in a red message being displayed in the chat window.  For the FFXIV text commands you specify for an alias, TCH only checks for basic errors, such as a proper length and that it at least starts with something in the form of an FFXIV text command, i.e., /<text>. For ordinary FFXIV commands, TCH does not verify that the command exists or that its action succeeded. TeleportCommand is a supported integration: TCH detects a missing or disabled TC and can wait for a specific trip's completion, as described below.  TCH executes each argument serially, pausing whenever you specify a 'wait' argument before executing the next argument.  This effectively allows you to specify mini-macros using a single exec command.
  
 Also supported is the ability to use color tags to color any part of the FFXIV text command you desire.  The color tags have the format: Also supported is the ability to use color tags to color any part of the FFXIV text command you desire.  The color tags have the format:
Line 60: Line 68:
  
  
-======= UI =======+===== Waiting for TeleportCommand ===== 
 +For completion-aware sequences, use MML 6.0.0, TeleportCommand 2.0.0, and Text Command Helper 2.0.0 together. Enable TC and TCH. Taximan is needed only for examples using its saved favorites. 
 + 
 +In TCH, create an alias named ''visit_zircon'' whose command is: 
 + 
 +<code text> 
 +/e /teleport favorite=Zircon,favoritecat=Default,wait=true,timeout=120000 
 +</code> 
 + 
 +Create another alias named ''arrived'' whose command is: 
 + 
 +<code text> 
 +/e <lime Arrived at Zircon!> 
 +</code> 
 + 
 +Then run: 
 + 
 +<code text> 
 +/e /exec visit_zircon,arrived 
 +</code> 
 + 
 +TCH waits for that exact trip to arrive successfully before running ''arrived''. A busy rejection, invalid destination, travel failure, cancellation, or timeout stops the remaining sequence. Resetting TCH cancels its unfinished waited trip. TCH does not infer arrival from the command's text or from another addon's trip finishing. 
 + 
 +To add a fixed 1.25-second pause after successful arrival, run: 
 + 
 +<code text> 
 +/e /exec visit_zircon,wait=1250,arrived 
 +</code> 
 + 
 +''wait=true'' on ''/teleport'' means wait for arrival. ''wait=1250'' in ''/exec'' means a fixed delay in milliseconds. These are separate features. 
 + 
 +The same arrival-wait options work without a favorite. For example, use either of these as the command of a TCH travel alias: 
 + 
 +<code text> 
 +/e /teleport flag,wait=true,timeout=120000 
 +/e /teleport housingarea=Mist,wardno=1,plotno=31,wait=true,timeout=120000 
 +</code> 
 + 
 +Follow that alias with a separate success-message alias in ''/exec''. Set a map flag before using the flag example. 
 + 
 +If TeleportCommand is missing or disabled, the updated TCH reports the problem and stops the sequence even when ''wait'' is omitted or false. With TC available, commands without ''wait=true'' continue immediately; later travel failure does not retroactively stop those commands. An ordinary FFXIV macro does not gain a blocking wait by adding ''wait=true''; the arrival wait is provided by TCH's sequence runner. 
 + 
 +===== Reset, Reload, and Saved Aliases ===== 
 +Reset clears the pending command sequence and cancels any unfinished teleport that TCH is waiting for. Previously sent chat messages and completed commands are not undone. A normal Lua reload or unload also cancels owned travel through MML; the next load does not resume an old trip or command sequence. 
 + 
 +Aliases are saved separately from named profiles, as character- and game-language-specific data. Reset and reload do not delete the saved aliases. Profile loading restores settings according to your profile options; it does not restore a command queue. 
 + 
 +====== UI ====== 
 + 
 +The descriptions reflect the current release. Some screenshots show earlier layouts or English labels; the text describes the current controls.
  
 You start TCH via the FFXIVMinion menu drop down. It's under the "MistahMikey" menu item.  Clicking "TextCommandHelper" should pop up its UI window.  The UI consists of different input areas called tabs that are selected by clicking the tab name that appears on the first line of the UI.  Each tab is described below. You start TCH via the FFXIVMinion menu drop down. It's under the "MistahMikey" menu item.  Clicking "TextCommandHelper" should pop up its UI window.  The UI consists of different input areas called tabs that are selected by clicking the tab name that appears on the first line of the UI.  Each tab is described below.
Line 70: Line 127:
 In the TCH control descriptions, if the control label has a asterisk appended, it means that value is saved in your profile (see the Profile Tab.) In the TCH control descriptions, if the control label has a asterisk appended, it means that value is saved in your profile (see the Profile Tab.)
 ===== Main Tab ===== ===== Main Tab =====
-{{:mistahmikey:textcommandhelper:main_tab.png?400|}}+{{:mistahmikey:textcommandhelper:main_tab.png?1000|}} 
 + 
 +The alias list shows configured examples; your saved aliases may differ.
  
 This tab generally controls the overall operation of TCH. The top level controls on this tab are: This tab generally controls the overall operation of TCH. The top level controls on this tab are:
  
-| Enabled* | When checked, enables you to travel to specified locations by issue a macro command.| +| Enabled* | When checked, enables TCH to process /e /exec commands and run saved aliases.| 
-| Reset | Resets all settings to their default initial values. You can use this to abort certain operations you've started if you can catch it in time. If you have a current profile set, and Load Current Profile After Reset (Profile Tab) is enabled, then your saved profile values will be loaded.  The Reset button will disappear while the reset is in progress, and will reappear when it completes. | +| Reset | Clears pending commands, cancels TCH's unfinished waited teleport, and resets settings. Saved aliases are retained. If Load Current Profile After Reset is enabled, the current profile is loaded afterward. The button is hidden while reset is in progress. | 
-| Discord Icon | Takes you to the TCH Discord channel if you need support.  Be advised I am in the Eastern Time zone (UTCH-05:00). |+| Discord Icon | Takes you to the TCH Discord channel if you need support.  Be advised I am in the Eastern Time zone (UTC-05:00). |
  
 Below those controls appears a table where you can persistently define aliases and their associated FFXIV text commands.  There are four columns in the table, but only the first three, Selection, Alias and Description, which should be self explanatory as to their purpose, are displayed; the fourth, FFXIV Text Command, cannot be completely displayed when the length becomes too long.  You can see the entire FFXIV text command by right double-clicking on the desired table line, resulting in a popup that shows all the text. Below those controls appears a table where you can persistently define aliases and their associated FFXIV text commands.  There are four columns in the table, but only the first three, Selection, Alias and Description, which should be self explanatory as to their purpose, are displayed; the fourth, FFXIV Text Command, cannot be completely displayed when the length becomes too long.  You can see the entire FFXIV text command by right double-clicking on the desired table line, resulting in a popup that shows all the text.
Line 90: Line 149:
 {{:mistahmikey:textcommandhelper:enter_alias_info_popup.png?400|}} {{:mistahmikey:textcommandhelper:enter_alias_info_popup.png?400|}}
  
-This control is self-explanatory for the most part; if you enter something wrong, TCH will provide an error popup. +This control is self-explanatory for the most part; if you enter something wrong, TCH will provide an error popup.
  
-Because the product Minion provides developers to create a UI, IMGui, is a very old version, there isn't currently an easy way to enter the potentially long text strings you might want to associate with an alias via the Command text field.  I developed a kludge to at least provide for such entry, but the input text field can only be displayed on a single line in the UI. To somewhat mitigate this inconvenience, I also provide a view directly below that the Command text field that shows you a wrapped version of your complete command, and also displays the current lengths of both the FFXIV text command "verb" and it's arguments.  After some testing, I determined that the total length of all arguments can be no more than 1022 characters, and that includes any characters needed to encode color tags into FFXIV color frames, or any FFXIV special characters you encode or paste in.  The verb length does not appear to have any impact on the arguments length limitation.+Because the product Minion provides developers to create a UI, IMGui, is a very old version, there isn't currently an easy way to enter the potentially long text strings you might want to associate with an alias via the Command text field.  I developed a kludge to at least provide for such entry, but the input text field can only be displayed on a single line in the UI. To somewhat mitigate this inconvenience, I also provide a view directly below that the Command text field that shows you a wrapped version of your complete command, and also displays the current lengths of both the FFXIV text command "verb" and it's arguments.  After some testing, I determined that the total length of all arguments can be no more than 1022 bytes after parsing, and that includes any characters needed to encode color tags into FFXIV color frames, or any FFXIV special characters you encode or paste in.  The verb length does not appear to have any impact on the arguments length limitation.
  
 Another quirk of the Command text field is that it is not possible to use Ctrl-V to paste certain FFXIV UTF8 characters into it because IMGui filters them out.  As another kludge workaround, I allow you to do this by using the Paste button that appears below the Command text field.  When you click the Paste button, the contents of the clipboard are appended to the current Command text field contents, and in this case, no characters from the clipboard are filtered out. This obviously isn't very user friendly, but it's the only way to get those special UTF8 characters into the Command text field. Another quirk of the Command text field is that it is not possible to use Ctrl-V to paste certain FFXIV UTF8 characters into it because IMGui filters them out.  As another kludge workaround, I allow you to do this by using the Paste button that appears below the Command text field.  When you click the Paste button, the contents of the clipboard are appended to the current Command text field contents, and in this case, no characters from the clipboard are filtered out. This obviously isn't very user friendly, but it's the only way to get those special UTF8 characters into the Command text field.
  
-I realize this method to enter a FFXIV text command is sub-optimal at best, but hopefully is better than nothing.  Be aware that as you edit the command, it will be dimmed to indicate you have changed it from the original, so be sure to hit the enter key before you try to exit the control.  +I realize this method to enter a FFXIV text command is sub-optimal at best, but hopefully is better than nothing.  Be aware that as you edit the command, it will be dimmed to indicate you have changed it from the original, so be sure to hit the enter key before you try to exit the control.
  
  
Line 113: Line 172:
  
 ===== Profile Tab ===== ===== Profile Tab =====
-{{:mistahmikey:taximan:profile_tab.png?400|}}+{{:mistahmikey:textcommandhelper:profile_tab.png?400|}}
  
-The Profile Tab allows you to persistently store most of TCH's settings. The profile settings are stored in files unique to the character and game language used to create the profile. You can create as many profiles as you like. The controls on this tab are:+The Display Language choice on Debug is saved with this addon's profile. Save the profile after changing it; loading that profile restores the choice. Profiles and the current-profile selection are separated by game region, not by the display language.
  
-| Load Current Profile After Reset* | When checked, if you hit Reset on the Main Tab, or when TCH is loaded when you start Minion, after all settings are initialized to their default values, the saved settings in your current profile are loaded. | +The Profile Tab allows you to persistently store most of TCH's settings. The profile settings are stored in files unique to the character and game region used to create the profile. You can create as many profiles as you like. The controls on this tab are: 
-| Current Profile Name* | The settings file you selected to be the current profile being used by TCH. |+ 
 +| Load Current Profile After Reset | When checked, if you hit Reset on the Main Tab, or when TCH is loaded when you start Minion, after all settings are initialized to their default values, the saved settings in your current profile are loaded. | 
 +| Current Profile Name | The settings file you selected to be the current profile being used by TCH. |
 | Load | Load all settings from the current profile. | | Load | Load all settings from the current profile. |
 | Save | Save all settings to the current profile. | | Save | Save all settings to the current profile. |
Line 124: Line 185:
 | Add | Create the new profile and save all current settings to it. | | Add | Create the new profile and save all current settings to it. |
  
-The table is a list of all the profiles you have created for the current character and game language.  Using the "Selection" column, you can select specific profiles for the operations Delete or Make Current.  Obviously, only one profile at a time can be made current, so you can only select one for that operation, but you can select as many as you like for the Delete operation.  You can select/deselect all profiles by using the checkbox in the operation row.  ** Be aware that profile values are only saved when you explicitly request them to be saved via the Save button. ** +The table is a list of all the profiles you have created for the current character and game region.  Using the "Selection" column, you can select specific profiles for the operations Delete or Make Current.  Obviously, only one profile at a time can be made current, so you can only select one for that operation, but you can select as many as you like for the Delete operation.  You can select/deselect all profiles by using the checkbox in the operation row.  ** Be aware that profile values are only saved when you explicitly request them to be saved via the Save button. **
  
 ===== Debug Tab ===== ===== Debug Tab =====
 +{{:mistahmikey:textcommandhelper:debug_tab.png?400|}}
  
-{{:mistahmikey:taximan:debug_tab.png?400|}}+This tab is primarily intended for use in conjunction with consultation with support.  It enables various test scenarios and debugging information that are used to help diagnose issues that might occur during operation.  The controls on this tab are:
  
-This tab is primarily intended for use in conjunction with consultation with TCH support.  It enables various test scenarios and debugging information that are used to help diagnose issues that might occur during Squatter's operation.  The controls on this tab are:+Changing Display Language refreshes presentation without resetting active work. It does not change game text, interaction matching, command destination names, or region-based profile selection. Some screenshots show earlier controls or English labels.
  
-| Enable Log file* | When checked, TCH will create a unique log file for your session. This only needs to be checked if you are told to do so by Squatter support. | +| Display Language | Choose Automatic (Game Language), English, French, Japanese, Chinese (Simplified), Korean, or Chinese (Traditional). This affects this addon's interface. Missing UI translations use English. | 
-| Enable Timestamp* | When checked, TCH will include the current tick count in the debug messages. This provides information that facilitates debugging timing issues. | +| Enable Log File | When checked, a unique log file will be created for your session. This only needs to be checked if you are told to do so by support. | 
-| Debug Message Level Settings* | TCH's debug message system implements a simple filtering mechanism that can be used to allow or inhibit certain message classes, generally in increasing order of verbosity.  The default settings are fairly "quiet", but to debug issues you encounter you will be asked to enable more verbose settings to gather diagnostic information. |+| Enable Timestamp | When checked, the current tick count will be included in the debug messages. This provides information that facilitates debugging timing issues. | 
 +| Debug Message Level Settings | The debug message system implements a simple filtering mechanism that can be used to allow or inhibit certain message classes, generally in increasing order of verbosity. When checked, the corresponding message class is enabled. | 
 +| Enable Async Logging | When checked, log output for periodic writing is buffered. | 
 +| Log Flush Interval (ms) | Shown when async logging is enabled; sets the buffer flush interval in milliseconds. | 
 +| Cleanup Log Files | When clicked, runs the library's log-file cleanup; progress is shown while cleanup runs. |
  
-====== Support ======+Additional tracing and diagnostic panels may appear when authorized by the library. Use these with support guidance.
  
 +====== Support ======
 For support or requests, please contact me on discord: https://discord.gg/Awhk57EBuG.  I will respond as soon as I am able, generally within 24 hours at most. For support or requests, please contact me on discord: https://discord.gg/Awhk57EBuG.  I will respond as soon as I am able, generally within 24 hours at most.
  
Line 144: Line 210:
  
   - Enable the debug information category on the Debug Tab and do what you did to create the problem.  Then take a screen shot of your Minion Console Log when the problem occurs. Make sure the Log's window as big as possible to show the maximum amount of output.  If the output is larger than the window, then scroll the offscreen portions into view and send multiple screen shots.   - Enable the debug information category on the Debug Tab and do what you did to create the problem.  Then take a screen shot of your Minion Console Log when the problem occurs. Make sure the Log's window as big as possible to show the maximum amount of output.  If the output is larger than the window, then scroll the offscreen portions into view and send multiple screen shots.
-  - A screen shot of your Material Girl main tab+  - A screenshot of TCH's Main tab and the affected aliases and /exec command
  
 If you post this information to the specified channel (NOT RECOMMENDED), **please ensure it does not contain any information that identifies your account, character, or server.**  For complete anonymity, just DM it to mistahmikey#4073. If you post this information to the specified channel (NOT RECOMMENDED), **please ensure it does not contain any information that identifies your account, character, or server.**  For complete anonymity, just DM it to mistahmikey#4073.
 Additionally, **you should not use an account you use for in-game communications so you can't be doxed as a botter. ** Additionally, **you should not use an account you use for in-game communications so you can't be doxed as a botter. **
  
-If that initial information is insufficient for me to determine the cause, I will ask you to set other debug settings that will provide more information. TCH is a complex piece of software, and can be negatively affected by a number of factors over which I have no control, not the least of which is what other addons you run. I appreciate your patience in working with me to solve your issue when it is not slam-dunk easy. As long as you are willing to try the debugging measures I request, I will work with you until your problem is solved.+If that initial information is insufficient for me to determine the cause, I will ask you to set other debug settings that will provide more information. This is a complex piece of software that can be negatively affected by a number of factors over which I have no control, including the other addons you run. I appreciate your patience in working with me to solve your issue when it is not slam-dunk easy. As long as you are willing to try the debugging measures I request, I will work with you until your problem is solved. 
textcommandhelper.txt · Last modified: 2026/11/14 13:28 by mistahmikey