User Tools

Site Tools



taximan

This is an old revision of the document!


Taximan (TM)

What it does

Taximan (TM) automates travel to destinations throughout Eorzea using normal in-game travel and Minion navigation. Choose a destination, start the trip, and let Taximan handle the route.

With Taximan, you can:

  • Save favorite locations, organize them into categories, and return to them later.
  • Visit available worlds and travel to housing wards and plot placards.
  • Travel to map flags, entered map or world coordinates, and points selected by right double-clicking the Area Map.
  • Find a nearby loaded entity by its runtime ID or exact name and travel to its position.
  • Browse rod, spear, and ocean-fishing entries, inspect location-specific catching conditions, and travel to fishing spots or the ocean-voyage departure NPC.
  • Search destination lists for NPCs, enemies, world objects, and gathering items.
  • Travel to supported special destinations, including Diadem, Cosmic Exploration, and Occult Crescent.
  • Configure mounts, movement actions, arrival behavior, and travel delays.
  • Abort an active trip.

Travel depends on your character's unlocks, game travel restrictions, supported routes, and available navigation meshes. Some destinations are approximate and may require a short manual adjustment after arrival.

Requirements

Install the free MistahMikeysLib addon from the store and keep it updated with Taximan. Taximan 2.0.0 requires MistahMikeysLib API version 6.

TM supports the following languages: EN, FR, JP, KR, CN, and TC.

You must ensure FFXIV, Minion, and TM are always updated to their latest versions.

To enable TM to travel to placards, you must have completed all the following unlock quests, which adds the “Residential District Aethernet” option to each major city's Aetheryte:

  1. Where the Heart Is (Mist)- Lower La Noscea, Ahctkoen – X32,Y20
  2. Where the Heart Is (Lavender Beds) – Central Shroud, Margeria – X21,Y22
  3. Where the Heart Is (The Goblet) – Western Thanalan, Imme – X25,Y24
  4. I Dream of Shirogane (Shirogane) - Kugane, Tsurubami – X12,Y10
  5. Ascending to Empyreum (Empyreum) - Foundation, Gondelimbaud – X10,Y12

They are trivial to complete.

IMPORTANT

TM can move your character to almost limitless places, but it cannot go to every possible location in the game. First and foremost, it is limited by the Minion Mesh system - if the location you wish to travel to is on a mesh, then TM has a good chance of getting to it. If it's not on the mesh, then TM cannot move to it - however, you can use the Minion mesh editing tool (the Navigation menu item on the Minion main menu) to fix such mesh deficiencies, and you can submit those fixes through me to have them incorporated into the Minion baseline. Second, TM is able to get to any location that can be directly accessed after traveling to an aetheryte, aethernet, or city gate. Locations that are behind secondary gates (like when you must talk to an NPC, open a door, or travel through a zone line) are likely not accessible - but - I have provided access to a handful of useful ones. Secondary gate access includes locations in: all the housing areas, the Island Sanctuary, any GC barracks or city inn, the door to The Rising Suns - including the door to Unukalhai, and Diadem. If you need access to locations behind secondary gates not currently available, make a request in the TM discord new-feature-requests channel: https://discord.gg/pgrywXjaUp.

UI

You start TM via the FFXIVMinion menu drop down. It's under the “MistahMikey” menu item. Clicking “Taximan” 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. The tabs are Main, Favorites, Placards, Fishes, ENpcs, BNpcs, EObjs, Gathering Items, Movement, Profile, and Debug. Each tab is described below.

The descriptions below reflect Taximan 2.0.0. Some screenshots show an earlier version; updated screenshots will be added separately.

GENERAL UI USAGE NOTE

When entering a value into a field control, when you begin to enter the text, the text will appear dimmed as a visual cue you are in the process of modifying the current value of the field. The field value is not entered until you hit either the RETURN key or the TAB key, at which time the value might be checked, resulting in a popup if an error is detected. After dismissing an error popup, you should be returned to the field control to correct the error. If you navigate away from a field control by focusing other controls (say, by clicking in a different field control) before entering the value, the current value will be redisplayed and the value you were in the process of entering will be lost.

On all the tabs that enable you to travel to locations, those locations are displayed in a table, which are initially sorted in ascending order by search criteria. To travel to a particular location, you select it with the mouse and RIGHT DOUBLE CLICK on it. The tables are scrollable vertically and, where needed, horizontally so you can bring all rows and columns into view. On Fishes, a LEFT click opens the catch-details window; a RIGHT double-click requests travel.

For world travel, the preferred city portal selected on Main is used where supported. Automatic lets TM choose a World Visit aetheryte. A destination must be available under the game's current travel rules, and your character must be able to reach a usable portal. If no portal is reachable, move to a city's main aetheryte and try again.

In the TM control descriptions, if the control label has a asterisk appended, it means that value is saved in your profile (see the Profile Tab.)

When a table has sortable columns, the column headers provide buttons that allow you to sort the list according to values in that column: “^” sorts in the ascending direction (lowest to highest values), while “v” sorts in the descending direction (highest to lowest values).

When a table supports searching column data for a particular entry, the following controls will appear before the table:

Find Text Field Enter a search command that will be matched against one or more predetermined columns. When a hit occurs, the row containing the hit will be scrolled to the first displayed row. If there are multiple hits, use the “Find Next” Button control to go to the next one. When no more hits are available, you will receive a popup informing you the search will continue from the beginning of the table. You can use the “Clear” Button control to terminate the search.
LUA pattern Enabled Check Box When checked, the search command is treated as a LUA pattern (Please see https://www.lua.org/pil/20.2.html for the details) that any column matching it will hit. When not checked, the search command is treated as a text string that any column containing it will hit.

NAVIGATING BY CLICKING ON THE AREA MAP

When TM is enabled, if you open the Area Map (usually by pressing the “M” key), you can navigate to the vicinity of points on the currently open map by RIGHT double-clicking on spot to which you wish to navigate. Whenever the Area Map is opened, the FFXIV mapid corresponding to that map is displayed (see the Main Tab.) A couple of notes regarding the use of this feature:

  • Select the detailed destination map rather than an overview. In housing areas, select the main division or subdivision that contains your destination; TM uses that division when interpreting your click.
  • You must ensure you RIGHT double-click within the Area Map. If you click outside the Area Map, unexpected results may ensue. This can be mitigated by optionally requiring the SHIFT key to be held down when you right-double click
  • Because the Area Map does not provide any elevation information, TM attempts to approximate a elevation coordinate to get you to your selected destination. TM estimates ground height using the navigation mesh. If the actual destination is within a structure, after landing you probably will have to move manually to enter that structure to get to where you really wanted to go.
  • The Area Map coordinate you select cannot be precisely translated to a real world position. It will generally be close, but it may be a few yalms off, requiring you to do a little manual moving to complete the journey.
  • You aren't limited to only navigating on the Area Map corresponding to your current location. You can select other maps using the Area Map controls, and when you click on them, TM will take you there PROVIDED there is a aetheryte or custom intermediary available to get you to that map. All maps having aetherytes should be accessible.

Main Tab

This tab generally controls the overall operation of TM. The controls on this tab are:

Enabled* When checked, enables you to travel to chosen locations.
Block Trades* When checked, and TM is enabled, will cancel any trade request made by another player.
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.
Discord Icon Takes you to the TM Discord channel if you need support. Support is based in the US Eastern Time zone.
Current World Displays the name of the current world you are in.
Current Area Mapid Only appears when an Area Map is open. Displays the FFXIV mapid of the currently open Area Map.
Dismount on Arrival* When checked (the default), causes your character to dismount when the destination is reached.
Shift+Right Double Click on Area Map* When checked, you must hold down the Shift key while right double-clicking for TM to move your character.
Use Aetheryte Ticket* When checked, IF you have aetheryte tickets in your inventory, they will be used for teleporting; otherwise (not checked or no available aetheryte tickets) gil will be used.
Mount Delays Enabled* When checked, allows you to apply delay values for 1) when you start moving after mounting and 2) when you attempt to mount after teleporting. This is to facilitate using party follow addons to provide time for the party to properly mount.
Mount Departure Delay (seconds)* This only appears when Mount Delays Enabled is checked. Your character will delay the number of specified seconds after mounting before attempting to move.
Teleport Arrival Mount Delay (seconds)* This only appears when Mount Delays Enabled is checked. Your character will delay the number of specified seconds after a teleport completes before attempting to mount.
Go Home This appears only when you are not in your home world. When clicked, if you are visiting another world, you will be returned to your home world.
<World Selection ComboBox>* For operations on this tab that support it, this is used to select the destination world.
<Preferred City World Portal ComboBox>* For operations on this tab that support it, this is used to select the city whose aetheryte will be used as the portal to the selected destination world. If Automatic is selected, TM will first select a city aetheryte you are within 50 yalms of, otherwise the selection will be random. If a specific city is selected, that city's aetheryte will always be used as the portal.
Go To World When clicked, you will travel to the world currently selected in the <World Selection ComboBox>.
Go to Map Flag This is only displayed when you have placed a flag on a map. When clicked, you will travel to the map flag location. If you have checked “Use Selected World”, you will first travel to the map flag in world currently selected in the <World Selection ComboBox>.
Use Selected World* This is only displayed when you have placed a flag on a map. When checked, clicking “Go to Map Flag” will first travel to the world currently selected in the <World Selection ComboBox> before traveling to the map flag location.
Abort Travel This is only displayed when you initiate an action that causes your character to travel and only while it is actually traveling. When clicked, the current trip is aborted at your character's current location. If a teleport action is being cast, it will be cancelled (transitions to different worlds cannot be cancelled.)
Clear Map Flag This appears only when a map flag is set. When clicked, clears any currently set map flag.
Map Flag Setting Notification* A FFXIV text command to execute when you set a map flag at a treasure map location. Typically, this would be some kind of party chat command that uses <flag> to send the flag location to party members.
Set Map Flag at Treasure Map This appears only when a Treasure Map is open. When clicked, sets a map flag on the map corresponding to the treasure spot of the selected treasure map.
Go To Treasure Map This appears only when a Treasure Map is open. When clicked, you will travel to the dig spot for the open Treasure Map control.
Go To World Pos Opens the World Position window described below. Enter a territory Mapid or search by area, then enter World X, World Y (height), and World Z. Click Go to request travel.
Go To Map Pos Opens the Map Position window described below. Enter a territory Mapid or search by area, then enter Map X and Map Y. TM estimates ground height after reaching the destination map.
Go To Entity Opens a window to find a currently loaded entity by Entity ID or exact Entity Name and travel to its position. See below.

World Position window

Mapid Numeric territory identifier accepted by TM. The Area label shows the corresponding area when recognized. A positive Mapid takes precedence over the area search; clear it to use a search result.
Mapid / Area Enter a numeric identifier or part of an area name. Area searches ignore case. If there are multiple matches, select the intended area from the dropdown; each result includes its Mapid.
World X / World Y / World Z Enter world coordinates. World Y is elevation; these are different from the X/Y coordinates displayed on the in-game map.
Go Validate the destination and start travel. The Main tab's Use Selected World setting also applies to coordinate travel when enabled.

Map Position window

Mapid / Area Select the destination as described for World Position. A positive numeric Mapid takes precedence over an area-search selection.
Current Map Fill Mapid with your character's current territory, which may differ from the map you are browsing in the Area Map.
Map X / Map Y Enter the two coordinates shown on an in-game map. Ground height is estimated after arrival; you may need to adjust your final position in caves or buildings with multiple floors.
In Housing Area Subdivision? Check for coordinates on a housing subdivision map; leave unchecked for the main division. This affects coordinate conversion in housing areas.
Go Start travel to the converted position, using Use Selected World when enabled.

Go To Entity window

Entity ID Enter the runtime ID of an entity currently within scanning distance on your current map. A positive ID takes precedence over Entity Name. This is different from the static Key shown in the location tables.
Entity Name With Entity ID cleared or zero, enter the exact name, ignoring case. If multiple loaded entities match, the nearest is selected.
Name / Position Preview the matched entity and its current world position. If it cannot be found, the window displays an explanation.
Go Travel to the matched entity's position. This lookup searches locally loaded entities; it cannot locate an unloaded entity in another zone.

Favorites Tab

This tab allows you to save locations your character visits so you can return to them later. Different categories of favorites can be saved and displayed selectively via the Favorite Category dropdown control. The “Default” category is a fixed category that existing entries that existed prior to the addition of the Favorite Category feature are automatically assigned. In the locations table, you can change the destination world for the favorite location by using the drop down in its entry. The controls on this tab are:

Find As already explained, allows you to search for specific locations. The Favorite Description column is searched for the criteria you specify.
Save Allows you to save the current location your character is at into the favorites list. A popup will appear prompting you for a brief description and a category used to tag the location. In the “Favorite Description” field, type in a helpful hint and enter it. Then, in the “Favorite Category” field, enter the category you wish to assign to the favorite. The currently selected favorite category will automatically be the field value by default. You can select an existing category for the field value by using the dropdown control. You can also specify the field value by typing it in if you prefer. When you enter the category, it will be checked against existing categories by doing a case-insensitive search against existing categories, and if it matches an existing category, the field value will be set to the existing category. If the category entry does not match an existing category, a popup will appear giving you the option of adding it to the existing categories. Be aware, the case of your entered new category becomes the default case for the new category.
Delete Allows you to delete selected favorite locations.
Change Category Allows you to change the category assigned to selected favorites to a different category. A popup will appear prompting you for the different category. In the “Favorite Category” field, enter the category you wish to assign to the favorite. You can select an existing category for the field value by using the dropdown control. You can also specify the field value by typing it in if you prefer. When you enter the category, it will be checked against existing categories by doing a case-insensitive search against existing categories, and if it matches an existing category, the field value will be set to the existing category. If the category entry does not match an existing category, a popup will appear giving you the option of adding it to the existing categories. Be aware, the case of your entered new category becomes the default case for the new category.
Rename Category Allows you to change the value used for an existing category. Select the existing category to be renamed by using the “Rename” dropdown control. Then, in the “To” field, enter the new category. You can select another existing category for the field value by using the dropdown control. You can also specify the field value by typing it in if you prefer. When you enter the category, it will be checked against existing categories by doing a case-insensitive search against existing categories, and if it matches an existing category, the field value will remain the new category. If the category entry does not match an existing category, a popup will appear giving you the option of adding it to the existing categories. Be aware, the case of your entered new category becomes the default case for the new category. When you successfully enter a new category, all the category of all favorites matching the existing category will be changed to the new category. Note: you cannot rename the “Default” category.

Placards Tab

This tab allows you to travel to any placard in any housing area in Eorzea, even if they are in different worlds. You select where you want to go by using the drop-down controls and the text entry fields.

World Select the destination world
Housing Area Select the destination housing area
Ward No Enter destination ward number
Plot No Enter the destination plot number
Go Go to the selected placard

Fishes Tab

This tab lists fish and their location-specific catching conditions for rod fishing, spearfishing, and ocean fishing. A fish can appear in multiple rows because its locations, methods, or missions differ. Conditions in a row and its details belong to that particular location and method.

LEFT-click a row to open its catch-details window. RIGHT double-click a row to request travel. Travel does not start fishing or wait for the required catching conditions.

Method dropdown Choose All Methods, Rod, Spear, or Ocean. All Methods is the initial selection.
Include Historical Show historical location entries. Initially unchecked. Historical entries are reference information and cannot be used for travel.
Include Incomplete Show entries whose catching-condition data is incomplete. Initially checked. Uncheck to hide those entries. This refers to data coverage, not your character's fishing log completion.
Find Search Name, Spot, Bait / Mooch Chain, and Mission. Find Next, Clear, and Lua pattern searching work as described above.

Fish table

Name Fish name.
Level Fish level.
iLevel Fish item level.
Patch Patch recorded for the fish.
Method Rod, Spear, or Ocean.
Spot Fishing or spearfishing spot for this entry.
Availability Eorzean time window for rod/spear entries, or the relevant Day, Sunset, or Night phase for ocean entries. Unrestricted means no time restriction is recorded; Unknown means the data is unavailable.
Bait / Mooch Chain Bait followed by any mooch fish, separated by arrows. Spearfishing displays Not Applicable.
Mission Associated mission, where applicable.

Columns can be sorted; scroll horizontally to see columns that do not fit.

Catch-details window

The window title is the fish name. Its scrollable table shows the region, zone, place, map position, and applicable catching conditions. Resize or scroll the window to read long entries, then use Close to dismiss it.

Current Weather / Previous Weather Required weather and weather-transition conditions for this entry, where applicable. Multiple alternatives are separated by slashes.
Bite / Hookset Recorded bite strength and hookset.
Snagging Required / Folklore Required Applicable catching requirements when known.
Lure / Lure Requirements Recorded lure information when applicable.
Shadow Size / Swimming Speed Spearfishing information when available.
Minimum Gathering / Multi-Hook Catch Count Recorded gathering requirement or multi-hook catch count.
Mission / Intuition Duration (Seconds) / Intuition Catches Mission and intuition information, including required predator fish and quantities when known.
Points / Spectral Current Required Ocean-fishing information when available.
Location Status Whether the location is Current, Historical, or Unknown.
Travel The reason travel is unavailable, or the ocean-voyage departure NPC used for travel.
Sources Sources contributing the applicable condition fields, such as Teamcraft, Carbuncle Plushy, GatherBuddy, Ocean Fishing, or Garland Tools.
Disagreement Conflicting source values, including the preferred source/value and the other source/value.
Condition Coverage Complete, or a list of missing applicable condition fields. Complete describes data coverage and does not guarantee a catch.

Unknown means information is missing; Not Applicable means the field does not apply; Unrestricted means the recorded condition imposes no restriction. These states should not be treated as interchangeable. Catching information is assembled from game and community data and may be incomplete, disputed, or out of date.

Travel behavior

For rod and spear entries with known territory and coordinates, TM travels to the vicinity of the spot and estimates ground height. You may need to move manually to start fishing; for spearfishing you may need to dive and locate the nodes.

For ocean entries, TM travels to the voyage departure NPC rather than to the fishing area aboard a voyage. Boarding and fishing remain separate steps. Historical entries and entries without usable territory or coordinate information do not start travel; their details explain why. A listed destination still requires a usable route and navigation mesh.

Game Data Locations

These four tabs provide searchable destinations for NPCs, enemies, objects, and gathering items. ENpcs and EObjs use recorded game-data positions. BNpcs uses recorded enemy spawn locations; Gathering Items combines recorded node positions with additional gathering-area locations. These are destination lists, not live scans: a row does not guarantee that an NPC, enemy, object, or gathering node is currently present or available.

All four tables contain Key, a name column, Mapid, Region, Zone, Place, Position, and Radius. BNpcs and Gathering Items also contain Location Type. Position uses world X/Y/Z coordinates, where Y is height. Mapid identifies the destination territory; Key identifies the source entry and is not a live entity ID. Radius describes the destination's recorded radius or arrival tolerance. Use the column sort controls and horizontal scrolling as needed. RIGHT double-click a row to request travel.

ENpcs Tab

Find searches the ENpc name column. The table lists named character NPC locations with recorded positions. Availability can depend on quest progress or game state; TM travels to the location and does not interact with the NPC.

BNpcs Tab

Find searches the BNpc name column. The table lists recorded enemy spawn locations rather than only quest mobs. The Location Type column distinguishes Recorded Spawn from FATE Spawn, with a FATE identifier for the latter. A recorded spawn does not guarantee that the enemy or FATE is active.

These locations are approximate. TM resolves a nearby reachable ground position before completing travel; if no suitable position can be found, travel can fail. TM does not start combat or wait for a spawn.

EObjs Tab

Find searches the EObj name column. The table lists named event or world objects with recorded game-data positions, including objects used by quests. Their presence and usability may depend on quest or event state. TM travels to the location and does not activate the object.

Gathering Items Tab

Find searches the Gathering Item name column. The table includes ordinary gathering items as well as supported quest/event gathering items. The Location Type column distinguishes:

  • Node Position: a recorded gathering-point position from the game data.
  • Gathering Area: an approximate area containing gathering locations, rather than the position of a specific node. TM resolves nearby reachable ground before completing travel.

The same item can have multiple rows for different nodes or areas. Traveling to a row does not guarantee an active node and does not gather the item. Timed nodes, unlocks, and other gathering requirements still apply.

Movement Tab

The Movement Tab allows you to control what kind of movement speed will be used to move your character within the zones TM visits. There are two types of movement speed enhancements that are used: running speed actions and mounts. Running speed actions include Sprint and, where available for your job, Peloton. These are invoked as they are available when the distance you must move is fairly short as indicated by the Mount Cutoff Distance. When the distance is longer than the Mount Cutoff Distance, a selected or random mount will be used to travel that distance. The controls on this tab are:

Enable Speed Actions When checked, TM will attempt to use speed actions (Sprint or Peloton) whenever they are available and it is appropriate. The mount will take priority if the cutoff distance requirement is met.
Speed Action Cutoff Distance (yalms) The distance above which TM will use Speed Actions to move your character.
Enable Mount When checked, TM will attempt to use a mount whenever one is available and it is appropriate.
Mount Cutoff Distance (yalms) The distance above which TM will use a mount to move your character.
Mount Selection A list of mounts from which you can chose one to use whenever a mount is needed to travel to the destination. Be aware that this list, due to limitations in Minion, contains more mounts than you really own. If you pick one it turns out you cannot use (because you don't own it or you are in a zone where mounts aren't allowed), a popup will appear informing you of the situation.
Select Random Mount When checked, TM will randomly pick an available mount that you own to travel to the destination. This overrides your Mount Selection.

Profile Tab

The Profile Tab allows you to persistently store most of TM'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:

Load Current Profile After Reset When checked, if you hit Reset on the Main Tab, or when TM 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 TM.
Load Load all settings from the current profile.
Save Save all settings to the current profile.
Add New Profile The name of a new profile you wish to add (must be a valid file name).
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.

Debug Tab

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:

Enable Log file
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.

Additional tracing and diagnostic panels may appear when authorized by the library. Use these with support guidance.

Support

For bug support, please post a message on discord: https://discord.gg/anNZVWghGY. I will respond as soon as I am able, generally within 24 hours at most.

When you need support, please provide me, at a minimum, the following:

  1. 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.
  2. A screenshot of your Taximan Main tab and the tab or popup involved, including the exact destination row or entered coordinates

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.

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. TM 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.

taximan.1794177587.txt.gz · Last modified: 2026/11/08 22:39 by mistahmikey