Changelog v3


Released: 01/20/2018
  • ADDAddons: Added key event for keyboard input processing.
  • ADDAddons: Added mouse event for mouse input processing.
  • CHGAshita: Changed the order in which mouse events were handled internally so that addons and plugins see the mouse events before the internal handlers such as the font manager.
+ Expand Information

v3.1.0.2 (4)

Released: 11/09/2017
  • FIXFixed issue with filterscan not working properly non-US clients.
  • FIXFixed issue with WatchDog not working properly for some European clients.

v3.1.0.2 (3)

Released: 11/07/2017
  • ADDWindowerInput now also accepts '/releasekeys' to release all currently pressed keys. ('/release keys' will also still work for older code using it.)

v3.1.0.2 (2)

Released: 10/16/2017
  • FIXFixed missing 'Neck' enum entry from EquipmentSlots enum. (Thanks mutiny!)


Released: 06/22/2017
  • FIXFixed crash issue with Steam overlay.


Released: 05/25/2017
  • FIXFixed a minor issue with the new bind change that prevented Shorthand functions from working.


Released: 05/22/2017
  • CHGChanged keybinds to allow multiple commands in a single line separated via semi-colons.

v3.0.0.15 (2)

Released: 05/02/2017
  • CHGUpdated the private server boot loader to v1.0.0.4


Released: 04/12/2017
  • ADDAdded new menu pointer internally to Ashita for internal usage purposes.
  • FIXRefixed IsInputOpen again. This time it is using the menu system to ensure the status is valid. (Also now returns true for other methods of input.)
  • ADDAdded new command: /bindblock


Released: 04/12/2017
  • FIXFixed issue with keybinds not allowing users to type into chat when a single key is bound.
  • FIXFixed issue with Lua timer library. (Thanks matix!)
  • CHGUpdated project copyrights / dates.


Released: 02/02/2017
  • FIXFixed issue with /paste command not working with Shift-JIS characters.
  • FIXDats: Fixed issue that would cause some DAT files to not load properly.


Released: 01/23/2017
  • CHGPart 2 of the packet system changes is now live. (See v3.0.0.8 for more info.)


Released: 01/23/2017
  • FIXFixed issue that would cause some system messages to not appear in the chat log.
  • FIXFixed crash caused by recent update to updater.


Released: 01/21/2017
  • CHGAdjusted registry setting paths for Japanese client to use older JP client path first.
  • CHG(Launcher) Adjusted auto-load configurations to happen after checks for updates.


Released: 01/16/2017
  • CHGReverted some of the chat changes from yesterday. (Plugins that write to the chat log will no longer trigger IncomingText event. Was causing deadlocks.)
  • FIX(DashCam) Fixed some issues that were preventing DashCam from working properly.


Released: 01/15/2017
  • CHGUpdated copyright across all source files.
  • CHGAdjusted how the packet handler handles modified packets internally. (Thanks Lolwutt!)
+ Expand Information


Released: 01/15/2017
  • FIX(Minimap) Fixed issue with Minimap plugin failing to locate non-US install paths.
  • FIX(Launcher) Fixed launcher hard-crashing if a plugin was being updated that was in-use.
  • FIX(Launcher) Fixed issue where message box popups would fall behind the launcher window.

v3.0.0.6 - v3.0.0.7

Released: 01/14/2017
  • ADD(New Plugin) DashCam - Allows users to record in-game video.
  • FIXFixed issue where plugins would receive Direct3D calls even if they failed to initialize for Direct3D.
  • FIXFixed an inconsistency with plugin chat messages not being sent to the incoming text handler properly.
  • FIXFixed structure packing issue causing player information to be unaligned. (Mainly affected things that monitored status icons and buffs.)
  • FIXFixed issue with timestamp double-stamping npc chat lines.

v3.0.0.4 - v3.0.0.5

Released: 01/12/2017
  • CHGAdjusted how modified packet buffer is handled for Incoming and Outgoing packet events to plugins and addons.
  • FIXMinimap - Fixed issue where entities on different floors were being drawn on the map always. (The map will now only draw entities on the same floor as the player.)
  • FIXMinimap - Fixed issue where the minimap frame would randomly blink different colors.
  • ADD(New Addon) checker - Overrides the /check output displayed when checking an enemy with colorful text and includes the targets level.
  • CHGAdjusted Ashita to not log anything until after the boot file has been parsed.
  • FIXFixed issue where Ashita would not properly function if fullscreen was enabled.
  • FIXFixed a crash when Ashita was exiting from FFXI back to pol while in fullscreen mode.


Released: 01/11/2017
  • FIXFixed issue with Ashita's internal resource parsing not working properly depending on certain language configurations.
  • FIXFind (Addon) - Fixed issue that would cause Find to crash after searching for items while the player had storage slips.


Released: 01/10/2017
  • FIXFixed broken player pointer.


Released: (Beta)
  • ADDAdded functions to trim colors and translation tags from a string for Addons.


Released: (Beta)
  • ADDCrafty - Added the ability to delete learned recipes.
  • ADDNew addon - logs - Creates log files of the players chat.


Released: (Beta)
  • FIXFixed issue with scripts double printing .txt extension.
  • ADDGuildwork plugin is now ported and working for Ashita v3.
  • ADDAddons: Added function to make use of C++11's regex_search.
  • ADDStfu plugin has been converted to an addon and is now working for Ashita v3.


Released: (Beta)
  • CHGReverted the render order of font objects as layered plugins were now rendering incorrectly.
  • ADDDeeps plugin has been ported to Ashita v3 (Thanks Lolwutt!)
  • ADDGreed plugin has been ported to Ashita v3 (Thanks Lolwutt!)
  • ADDNo-ckback plugin has been ported to Ashita v3 (Thanks Lolwutt!)


Released: (Beta)
  • FIXFixed issues with controllers not working always.


Released: (Beta)
  • FIXFixed issue with configuration paths if the path includes .xml in the file name already.


Released: (Beta)
  • CHGAdjusted font rendering code to use a larger vertex buffer to try and prevent font bug.


Released: (Beta)
  • CHGReverted the memory changes and adjusted internal vector usage of FindPattern. (Too many issues with the newer scanner to keep it live.)


Released: (Beta)
  • CHGAdjusted font rendering to try and fix the invisible font bug.
  • FIXFixed crash issues with keyboard/mouse callbacks.
  • CHGAdjusted mouse callbacks to include the message id.


Released: (Beta)
  • REMRemoved some minor unneeded code in the internal pointer manager.


Released: (Beta)
  • CHGUpdated FindPattern to use Boyre-Moore pattern for faster scanning.
  • FIXCorrected size checks in new FindPattern.


Released: (Beta)
  • FIXFixed and adjusted overkill font recreations.
  • FIXFixed issue with party member name returns.
  • CHGAdjusted memory scanner to take data by reference.


Released: (Beta)
  • ADDPorted Ashita v2 plugin AutoJoin to an addon. Should work 100% the same, only difference is the config file is now done in JSON instead of XML.
  • ADDAdded new addon - instantah - get auction results instantly without waiting.
  • ADDPorted and added AshitaCast to the plugin list. (Thanks Lolwutt!)
  • ADDPorted and added Bellhop to the plugin list. (Thanks Lolwutt!)
  • ADDPorted and added DressMe to the plugin list. (Thanks Lolwutt!)
  • ADDPorted and added Duration to the plugin list. (Thanks Lolwutt!)
  • ADDPorted and added GearLock to the plugin list. (Thanks Lolwutt!)
  • ADDPorted and added LootWhore to the plugin list. (Thanks Lolwutt!)
  • ADDPorted and added Shorthand to the plugin list. (Thanks Lolwutt!)
  • ADDPorted and added StatusTimers to the plugin list. (Thanks Lolwutt!)


Released: (Beta)
  • FIXFixed a deadlock issue with the Direct3D device causing some plugins to lock up Ashita on certain events related to Direct3D.
  • FIXFixed some issues with right-justified text rendering not working properly.
  • CHGAdjusted TParty text alignment to be a bit cleaner.
  • ADDAdded new command: /bind silent
  • ADDAdded new command: /plugin silent
  • ADDAdded new command: /addon silent
  • ADDAdded new addon, filters. Allows players to easily manage chat filter sets. (Not recommended for use on retail, mainly made for private servers.)
  • FIXFixed some bugs with ItemWatch addon.
  • ADDAdded some new features to ItemWatch addon.
  • ADDAdded some new commands to SingleRace addon.
  • CHGUpdated the default positions of TParty.


Released: (Beta)
  • ADDMore addons have been ported over and added to the beta launcher. (synplicity)
  • FIXFixed configurations not saving.
  • FIXFixed null pointer crash within font objects.
  • ADDPorted and added WatchExp plugin.


Released: (Beta)
  • ADDMore addons have been ported over and added to the beta launcher. (repeater, pbar, OnEvent, macrofix, itemwatch, ibar)
  • FIXFixed issue with GetPetMP return due to incorrect internal casting.
  • ADDImplemented /paste into the core hook.
  • ADDAdded ashita.misc.show_console/hide_console to Addons.
  • ADDConverted plugin 'HideConsole' to an addon and added it to the loader.


Released: (Beta)
  • FIXFixed typo in /addon list command.
  • ADDPorted over and added WindowerInput.dll plugin to the beta release.
  • ADDPorted over and added Screenshot.dll plugin to the beta release.
  • ADDPorted over and added WatchDog.dll plugin to the beta release.
  • ADDAdded base addons. (Distance, FPS, Timestamp, TParty)
  • ADDAdded base addons libraries.
  • CHGUpdated Addons plugin to include LuaSocket.
  • ADDAdded LuaSocket .lua files to the addons libs.


Released: (Beta)

+ Expand Information
  • Core Changes
  • CHGAshita v3 has been fully rewritten to ensure better code consistency and quality.
  • CHGBase hook has been fully rewritten in Visual Studio 2015 (Update 3), making use of newer C/C++ features. (C++11,14,17)
  • CHGMoved various parts of the source code into sub-folders to cleanup the solution.
  • CHGUpdated documentation within the project source code to use JSDoc format for readability and parsing potential of auto-generating docs.
  • REMRemoved AnTweakBar from the Ashita Project. This UI is no longer needed with the addition of ImGui.
  • CHGIImGuiManager has been renamed to IGuiManager, taking over the old GuiManagers name/place in the project.
  • CHGUpdated Detours library to latest version.
  • CHGUpdated TinyXML2 library to latest version.
  • CHGAshita's logging is now handled within a new manager named LogManager. This is accessible to plugins now via the ILogManager interface.
  • CHGKeyboardWrapper is now named Keyboard and is moved into the DirectInput Wrapper folder.
  • CHGMouseWrapper is now named Mouse and is moved into the DirectInput Wrapper folder.
  • CHGRenamed DatFileEncryption to XiDatFileEncryption.
  • CHGRenamed DatFileStructures to XiDatFileStructures.
  • ADDAdded more logging and colored chat output to Ashita to help with debugging.
  • ADDAdded more events for plugins to respond to.
  • CHGChanged some existing events to allow for modified data and overriding easier.
  • REMRemoved some unneeded hooks / code that are no longer used for anti-windowing purposes.
  • CHGAddons are now stored in the base directory of Ashita inside of their own 'addons' folder instead of within the 'scripts' folder.
  • Adk Changes
  • CHGffxi/entity.h - Overhauled the full file, cleaning up types and names.
  • CHGffxi/enums.h - Overhauled the full file, cleaning up types and names.
  • ADDffxi/enums.h - Added some new macro definitions for things.
  • ADDffxi/enums.h - Added some new enumerations for various things.
  • CHGffxi/inventory.h - Overhauled the full file, cleaning up types and names.
  • CHGffxi/party.h - Overhauled the full file, cleaning up types and names.
  • CHGffxi/player.h - Overhauled the full file, cleaning up types and names.
  • ADDffxi/player.h - Added a lot more information to the player.h structure, replacing a lot of unknown data.
  • CHGffxi/target.h - Overhauled the full file, cleaning up types and names.
  • CHGRenamed AS_Data.h to AS_BinaryData.h and cleanuped the file overall.
  • REMRemoved AS_Rect.h and AS_WindowProps.h files.
  • REMRemoved AS_String.h file.
  • CHGOverall cleanup of the ADK files.
  • ADDAdded new AS_Objects.h file which holds various Ashita specific structures.
  • CHGAS_Memory.h is now using my personal scanner code instead of an old method.
  • CHGOverhauled AS_Registry.h to cleanup the code as well as fix some minor issues.
  • CHGAshita.h - Massive overhaul of the entire file, cleaning things up.
  • ADDAshita.h - Added some ReSharper comments to remove some unimportant warnings.
  • CHGAshita.h - Ashita interface version is bumped up to 3.0
  • REMAshita.h - Removed old AnTweakbar code as it is no longer used.
  • ADDAshita.h - Added a simple structure for reading the current Ashita version from the GetVersion export.
  • ADDAshita.h - Added the install parameters structure to the ADK for those that may want to create their own injector.
  • ADDAshita.h - Added new enumerations for various things.
  • CHGAshita.h - Cleaned up the names and types of all the structures and interfaces.
  • CHGAshita.h - Adjusted the naming of some members of the IAbility, ISpell and IItem structures.
  • ADDAshita.h - IItem now contains a member BaseItemId for items that are upgraded. This is the base item id for the upgrade process. (Not all upgraded items use this.)
  • CHGAshita.h - Renamed instances of 'Monipulator' to 'Monstrosity' to be more clear of its purposes.
  • CHGAshita.h - Updated the various interfaces to match the new exports and such.
  • CHGAshita.h - Various functions within each interface has been renamed to conform with the changes inside of Ashita.
  • REMAshita.h - Removed IGuiManager entirely as AnTweakBar is gone.
  • CHGAshita.h - ImGui has replaced IGuiManager instead, however it can be found in the imgui.h file in the ADK folder.
  • ADDAshita.h - Added log file exposure via the new ILogManager interface.
  • ADDAshita.h - IAshitaCore now contains a handful more properties.
  • CHGAshita.h - PluginData has been renamed to plugininfo_t instead.
  • CHGAshita.h - IPlugin has been renamed to IPluginBase. (Plugins should now inherit from 'IPlugin' instead.)
  • CHGAshita.h - GetInterfaceVersionFunc export is now renamed to getinterfaceversion_f.
  • CHGAshita.h - CreatePluginDataFunc export is now renamed to createplugininfo_f.
  • CHGAshita.h - CreatePluginFunc export is now renamed to createplugin_f.
  • REMAshita.h - CreatePluginFunc (now createplugin_f) no longer takes a parameter.
  • AshitaCore
  • CHGOverall major code cleanup and reorganization.
  • ADDAdded new property exports for various window information. (FFXi, PlayOnline, PlayOnline Mask)
  • ADDAdded new property exports for various features. (Mouse hooking, etc.)
  • ADDAdded new property exports for various Direct3D related things. (Fill Mode, Ambient Lighting, etc.)
  • ChatManager
  • CHGOverall major code cleanup and reorganization.
  • CHGRunTextScript has been renamed to RunScript.
  • CHGRenamed internal command handler to be less confusing to similar named functions.
  • CHGCleaned up the custom function hooks.
  • CHGAdded some more safety checks to AddToChatlog hook to ensure invalid pointer crashes should not happen.
  • CHGIncreased the buffer used for AddToChatlog to allow for longer strings in the event of adding big chunks of data.
  • CHGAutoTranslate hook is now named 'ParseAutoTranslate' to be more consistent with the rest of the code that uses it.
  • CHGParseCommand hook now validates both steps of its pointer to prevent null pointer crashes.
  • CHGChatManager::Initialization - call ensures previous data / pointers are freed to prevent memory leaks.
  • CHGChatManager::Update - call will now be more verbose with Debug/Error logging to help diagnose issues.
  • CHGChatManager::ParseCommand - now validates both steps of its pointer to prevent null pointer crashes.
  • CHGChatManager::AddChatMessage - now enforces reparsing of auto-translation text similar to how the client works.
  • CHGChatManager::ParseAutoTranslate - major cleanup to the processing code of the translate tags. Should be much faster now.
  • CHGChatManager::RunScript - cleaned up code to be more efficient. Fixed a bug with checking for self-calling scripts.
  • CHGChatManager::SetInputText - removed some unneeded checks that were overkill.
  • FIXChatManager::SetInputText - clamps the incoming data length to 120 to match the games max size.
  • FIXChatManager::Write - fixed a minor bug with mixing unicode and ascii encodings.
  • CHGChatManager::InternalCommandHandler - major overhaul of all internal handled commands.
  • FIXChatManager::AddToChatlog - Detour callback will now properly process the 'backlog' queue by passing it to addons/plugins before adding it to the log.
  • CHGHandleNewChatLine has been renamed to HandleIncomingText.
  • ADDHandleOutgoingText has been added as a plugin callback for when outgoing text from the client was not handled as a command.
  • REMRemoved some unneeded functions.
  • ADDAdded a lot of colored printing messages to the various commands help information.
  • REMRemoved the command /unload all as it did not make sense with /unloadall being a command as well.
  • CHGHandleIncomingText now supports modified data and blocking information for plugins to easier handle the event and customize things.
  • CHGHandleOutgoingText now supports modified data and blocking information for plugins to easier handle the event and customize things.
  • CommandTaskPool
  • CHGSimplified task type names that can be queued into the pool. (GameCommand -> Command, ExecuteScript -> Script).
  • CHGAdjusted the task information structure slightly. Renamed members.
  • CHGRenamed thread information structure members to remove unneeded prefixes in names.
  • CHGReordered the parameters of the QueueTask function. The task type is now first.
  • FIXFixed a potential null pointer crash in the thread callback handler.
  • CHGAdjusted some thread-safety lockings.
  • ADDAdded check for quit message raising in the thread pool monitoring handler to ensure threads exit and cleanup properly.
  • ConfigurationManager
  • CHGRenamed LoadConfiguration to Load.
  • CHGRenamed RemoveConfiguration to Remove.
  • CHGRenamed SaveConfiguration to Save.
  • REMRemoved the default LoadConfiguration function and merged it into the over-loaded one. (Now just a single Load call.)
  • REMRemoved the GetConfigString, GetConfigBool, GetConfigFloat, GetConfigDouble functions.
  • REMRemoved old templated value getters.
  • CHGMerged GetConfigString functions into a single instance of the function named GetString.
  • CHGRenamd SetConfigValue to SetValue.
  • ADDAdded new templated value getters that handle a wider range of value types. (int8_t -> int64_t, uint8_t -> uint64_t, bool, float, double)
  • ADDConfigurationManager::Load - will now automatically handle the file extension (.xml) as needed.
  • ADDConfigurationManager::Load - will now automatically assume configuration files are within the Ashita\config\ folder.
  • ADDConfigurationManager::Save - now takes a second parameter being the file to save to. (Again the config is assume to be within the config folder automatically.)
  • FIXGetValue templated functions should properly handle values without percision lost or signed/unsigned casting issues.
  • CHGChanged the get/set value exposure to plugins to be named a bit cleaner. Exposed more data types as well.
  • FontManager
  • CHGRenamed CreateFontObject to Create.
  • CHGRenamed GetFontObject to Get.
  • CHGRenamed DeleteFontObject to Delete.
  • ADDAdded several bits of thread-safety locking to the managers functions to prevent threading issues with the fonts map.
  • CHGUpdated looping handlers to use C++11 ranged-based loops.
  • ADDFont objects will now move based on the location of the mouse and not based on the center of the text object.
  • ADDClicking a font object while FFXi is not in focus should now pull the game into focus properly.
  • FIXFixed a few instances where input handling was not returning true to block input that was captured.
  • FIXFont objects now render in reverse order.
  • FontObject
  • CHGRenamed some internal variables to be more understandable at first-glance.
  • CHGRenamed FontName to FontFamily to be more consistent with other coding interfaces.
  • CHGRenamed and exposed BorderSize, it is now considered Padding.
  • REMRemoved width and height properties as these were no longer used.
  • CHGRenamed m_NeedsUpdate to m_IsDirty and exposed Get/Set functions for it.
  • ADDAdded Get/Set functions for creation flags.
  • ADDAdded Get/Set functions for draw flags.
  • REMRemoved SetFont function.
  • ADDAdded SetFontFamily and SetFontHeight functions.
  • REMRemoved SetPosition function.
  • ADDAdded SetPositionX and SetPositionY functions.
  • CHGRenamed SetLockPosition to SetLocked to be more understandable.
  • ADDAdded SetWindowWidth and SetWindowHeight functions. (You should not need these but they are there if you do.)
  • CHGChanged mouse position related function parameters to use int32_t instead of floats. (ie. HitTest function)
  • CHGFont objects will now default to not being visible when first created. You will need to use SetVisibility to true to make your objects show.
  • CHGFont objects will now default to being movable when created. (Locked flag is false.)
  • REMDevice pointer is no longer passed to the creation of an object, instead is only passed during Initialization call.
  • CHGPadding is now default to 0 instead of 0.1f.
  • CHGReordered the initialization of font objects so that the high-risk of failure functions happen first.
  • CHGTweaked some calculations with rendering font objects to be more accurate.
  • CHGOptimized the code for updating the background primitive object of font objects.
  • GuiManager
  • REMRemoved the old AnTweakBar Gui manager and replaced it with the newer ImGui manager. (ImGuiManager was removed and renamed to GuiManager.)
  • LogManager
  • ADDAdded exposure to the log file. Users can now access the ILogManager interface.
  • CHGCleaned up the logging output to be more condense and cleaner.
  • CHGOverhauled the logging done by Ashita to be more informative when needed.
  • PacketManager
  • CHGMinor code cleanup, overall this manager has remained the same from Ashita v2.
  • PluginManager
  • CHGOptimized various parts of the code.
  • CHGAdded some more detailed output for various things.
  • CHGHandleIncomingPacket now supports modified data and blocking information for plugins to easier handle the event and customize things.
  • CHGHandleOutgoingPacket now supports modified data and blocking information for plugins to easier handle the event and customize things.
  • ADDAdded new plugin events for various Direct3D related things. (Primitive drawing, render state setting.)
  • PointerManager
  • CHGPointerManager has been updated to use my newer personal memory scanning function which is async and much faster.
  • CHGPointerManager has been updated to use my newer memory scanning functions format of signatures removing the need of separate signatures and masks.
  • CHGUpdated internal pointer table to reflect these changes.
  • PrimitiveObject
  • CHGRenamed some internal variables to be more understandable at first-glance.
  • ADDAdded customizable borders to the primitive objects similar to WPF/HTML style borders.
  • ADDAdded GetBorderVisibility, GetBorderColor, GetBorderFlags, and GetBorderSizes functions.
  • ADDAdded SetBorderVisibility, SetBorderColor, SetBorderFlags, and SetBorderSizes functions.
  • CHGChanged SetTextureFromResource's first paramter to the file name instead of handle. Allowing for easier usage of the function.
  • CHGChanged the default color from 0xFF000000 to 0x80000000.
  • ADDAdded defaults for borders. (Defaults are not visible, red color, no flags set, and 0 size.)
  • REMDevice pointer is no longer passed to the creation of an object, instead is only passed during Initialization call.
  • CHGCleaned up the sprite rendering code when drawing a textured primitive.
  • CHGCleaned up the sprite rendering code when drawing normal primitive.
  • ADDAdded code to render borders around the primitive. (Similar to how HTML borders work.)
  • FIXFixed a minor potential rendering issue due to render states.
  • ADDPrimitiveObject::SetTextureFromFile - added some additional error checks.
  • ADDPrimitiveObject::SetTextureFromResource - now looks up the file module handle automatically due to first argument change.
  • ResourceManager
  • CHGFull rewrite of the parser and its headers.
  • CHGOptimized some parts of the parser that were a bit underwhelming. (Faster parser times now.)
  • ADDAdded parsing for: augments, jobpoints, merits, mountsname, mountsdesc, titles
  • ADDAdded parsing for some missing Japanese files.
  • ADDAdded more detailed logging for when things go wrong.
  • ADDAdded more chat output to let the user know if things are messing up.
Looking for Ashita v2's changelog? Click Here

Core Developers

  • atom0s
  • RZN

Core Contributions

  • Lolwutt

Addon / Plugin Developers

  • atom0s, h1pp0, Hypnotoad
  • Lolwutt, MalRD, matix
  • RZN, Vicrelant, Apogee
  • bluekirby0, Julian, Nospheratu
  • Praenuntiae, Venrell, Xenonsmurf

Third Party Thanks

  • Microsoft Detours
  • TinyXML2, Nlohmann JSON
  • Lua / Luabind
  • ImGui
  • Patrick Wyatt (List Implementation)
  • Galasoft.MvvmLight, Xceed WPF Toolkit
  • Newtonsoft.Json

Don't see your name? Contact atom0s on IRC or Discord to have it added!