This page is subject to change heavily in the future when Ashita v4 gains its full UI launcher.
Once you have downloaded and extracted/installed Ashita, you are ready to begin configurations.
Ashita includes its own built-in ConfigurationManager
object which makes use of .ini
files. To help keep things organized, all configuration files that make use of this system are stored in a central location, the /config/
folder. In addition to this manager, Ashita includes a settings
library for addons to make use of which also stores per-character configurations within this folder.
The /config/
folder also contains sub-folders for more specific usages.
These are the main sub-folders you should expect to see:
/config/addons/
/config/ashita/
/config/boot/
/config/sandbox/
Addons and plugins can make their own folders for their various configuration settings.
/config/addons/
This folder contains addons’ per-character settings files made using the included settings
addon library.
/config/ashita/
This folder contains Ashita specific configuration settings files. These are the main settings required in order for Ashita to function properly.
ashita.datmap.ini
- Contains the various DAT file information that Ashita will parse internally via the ResourceManager
.ashita.offsets.ini
- Contains the various memory offsets used with the pointer information internally.ashita.pointers.ini
- Contains the various memory pointer information used to hook game functions and locate game objects.This folder can also include custom overrides for the various files that are already present in this folder. These override files are used to allow users to have Ashita target a different client version. Ashita will attempt to always keep the included ashita.xxx.ini
configuration files up to date, but will not overwrite/update any custom.xxx.ini
replacement files.
custom.datmap.ini
- Can contain any overrides or new information to alter how the original datmap configurations are handled.custom.offsets.ini
- Can contain any overrides or new information to alter how the original offset configurations are handled.custom.pointers.ini
- Can contain any overrides or new information to alter how the original pointer configurations are handled.You should NEVER alter the ashita.xxx.ini
settings files! These will be overwritten when running the launcher by the latest available files. Instead, make use of the custom.xxx.ini
files if you need to alter how Ashita functions.
/config/boot/
This folder contains the boot configurations/profiles used to launch the game. Players can create a single file and share it between all characters they wish to play, or you can create individual profiles for each character. These files hold the various configurations for Ashita settings as well as the game registry configuration overrides.
You can find more information about profile configurations below.
It is HIGHLY recommended that you DO NOT edit or use the included boot configuration files. Instead, you should make a copy of the one you wish to use, rename it, and edit that instead. This will avoid accidentally having your configurations overwritten!
/config/sandbox/
New to Ashita v4 is the Sandbox
plugin. This plugin can completely emulate/virtualize the game installation allowing you to run FFXI without having to install it. (You must have a working copy of the game before making use of Sandbox!) This allows you to make FFXI portable and run it [nearly] anywhere.
This folder contains the required configuration files for Sandbox
to function.
In order to launch the game and load Ashita, a boot configuration must be provided. These configuration files are stored within the /config/boot/
folder and hold the various configuration settings needed to prepare Ashita for usage, as well as handle the game registry settings.
Ashita v4 holds boot configurations within the .ini
format. If you would like to learn more about this file format, you can find information here: https://en.wikipedia.org/wiki/INI_file
Following the normal format of .ini
files, the boot configurations are broken into sections.
Below is information about each section and the settings available to that section.
[ashita.launcher]
Contains configuration settings used with the Ashita launcher.
autoclose
- (boolean)name
- (string)[ashita.boot]
Contains configuration settings used with the boot loader and initial startup of the game.
file
- (string)command
- (string)/game eAZcFcB
to show the quick-play icon inside of PlayOnline to log into FFXI faster. If playing on a private server, this should be the commands required by the server you are playing on in order to properly connect. (Usually the --server \<ip\>
command is enough.)gamemodule
- (string)FFXiMain.dll
. This should only be changed if the private server you are playing on has renamed FFXiMain.dll
to something else.script
- (string)args
- (string)[ashita.language]
Contains configuration settings used to determine which language data is used for defaults.
playonline
- (number)0 = Default
, 1 = Japanese
, 2 = English
, 3 = European
ashita
- (number)0 = Default
, 1 = Japanese
, 2 = English
, 3 = European
[ashita.logging]
Contains configuration settings used for Ashita’s debugging/logging features.
level
- (number)0 = None
, 1 = Critical
, 2 = Error
, 3 = Warn
, 4 = Info
, 5 = Debug
crashdumps
- (number)[ashita.taskpool]
Contains configuration settings used with Ashita’s internal task queue system.
threadcount
- (number)[ashita.resources]
Contains configuration settings used with Ashita’s custom resource data override configuration files.
offsets.use_overrides
- (boolean)custom.offsets.ini
configuration file.pointers.use_overrides
- (boolean)custom.pointers.ini
configuration file.resources.use_overrides
- (boolean)custom.datmap.ini
configuration file.[ashita.window.startpos]
Contains configuration settings used to set the startup position of the game window.
x
- (number)y
- (number)[ashita.input]
Contains configuration settings used with the various input devices to interact with the game.
gamepad.allowbackground
- (boolean)gamepad.disableenumeration
- (boolean)keyboard.blockinput
- (boolean)keyboard.blockbindsduringinput
- (boolean)keyboard.silentbinds
- (boolean)keyboard.windowskeyenabled
- (boolean)mouse.blockinput
- (boolean)mouse.unhook
- (boolean)[ashita.misc]
Contains configuration settings used for various Ashita related settings.
addons.silent
- (boolean)aliases.silent
- (boolean)plugins.silent
- (boolean)[ashita.polplugins]
Contains the list of plugins Ashita will launch immediately as it injects. (IPolPlugin instances.)
This does not work with normal plugins! This will only work for ‘PlayOnline Plugins’.
This section expects each entry to be the name of the plugin and a boolean value (0 or 1) if it should be enabled.
1[ashita.polplugins]
2sandbox = 1
3pivot = 0
In this example, Sandbox
would be loaded, but Pivot
would not.
[ashita.polplugins.args]
Contains the plugin-specific arguments to pass to a ‘PlayOnline Plugin’ when its loaded.
This section expects each entry to be the name of the plugin and a string value of arguments to be passed to the plugin when its loaded. In most cases, plugins will not require arguments to load and do not need an entry here. Consult the desired plugins documentation to see if any arguments are required.
As an example:
1[ashita.polplugins.args]
2sandbox = args1 args2 args3 args4
This would pass the string args1 args2 args3 args4
to Sandbox
when its loaded.
[ffxi.direct3d8]
Contains configuration settings used to override Direct3D8 device creation parameters.
Note: This is for advanced users only! Edit with caution!
presentparams.backbufferformat
- (number)presentparams.backbuffercount
- (number)presentparams.multisampletype
- (number)presentparams.swapeffect
- (number)presentparams.enableautodepthstencil
- (number)presentparams.autodepthstencilformat
- (number)presentparams.flags
- (number)presentparams.fullscreen_refreshrateinhz
- (number)presentparams.fullscreen_presentationinterval
- (number)behaviorflags.fpu_preserve
- (number)When set to -1, any of the above values in this section will use the current value already being used by the game.
[ffxi.registry]
Contains configuration settings used to override Final Fantasy XI’s registry settings. These settings take priority over what is actually within the system registry for the game. A value of -1 means that Ashita will default to what value is already in the real registry for the given setting.
0000
- (number)0 = Off
, 1 = On, Lowest Quality
… 6 = On, Best Quality
0001
- (number)0002
- (number)0003
- (number)0004
- (number)0005
- (number)0006
- (number)0007
- (number)0 = Disabled
, 1 = Enabled
0008
- (number)0009
- (number)0010
- (number)0011
- (number)0 = Off
, 1 = Normal
, 2 = Smooth
0012
- (number)0013
- (number)0014
- (number)0015
- (number)0016
- (number)0017
- (number)0 = Off
, 1 = On
0018
- (number)0 = High
, 1 = Low
, 2 = Uncompressed
0019
- (number)0 = Compressed
, 1 = Uncompressed
0020
- (number)0021
- (number)0 = Off
, 1 = On
0022
- (number)0 = Off
, 1 = On
0023
- (number)0 = Off
, 1 = On
0024
- (number)0025
- (number)0026
- (number)0027
- (number)0028
- (number)0029
- (number)12 = Lowest
… 20 = Highest
0030
- (number)0 = Disabled
, 1 = Enabled
0031
- (number)0032
- (number)0033
- (number)0034
- (number)0 = Fullscreen
, 1 = Windowed
, 2 = Fullscreen Windowed (Undocumented)
, 3 = Borderless Windowed
Borderless Windowed
is actually Fullscreen Windowed
, and Fullscreen Windowed
is actually Borderless Windowed
.0035
- (number)0 = Off
, 1 = On
0036
- (number)0 = Compressed
, 1 = Uncompressed
, 2 = High Quality
0037
- (number)0038
- (number)0039
- (number)0 = v1
, 1 = v2
0040
- (number)0 = Off
, 1 = On
0041
- (number)0 = Disabled
, 1 = Enabled
0042
- (string)Screenshots
plugin from Ashita does not use this path.0043
- (number)0 = Off
, 1 = On
Screenshots
plugin from Ashita does not use this option.0044
- (number)0 = Off
, 1 = On
0045
- (number)padmode000
- (number)padsin000
- (number)padmode000
The padmode000
value is a comma-separated list of booleans, such as: 1,1,1,1,1,0
. There are 6 options in total in the following order:
Option | Description |
---|---|
Enable Gamepad | Enables or disables the gamepad functionality. |
Enable Force Feedback | Enables or disables the gamepad force feedback (rumble) features. |
Enable Sliders | Enables or disables the gamepad slider controls. |
Enable Hat Switches | Enables or disables the gamepad hat switch controls. |
Enable When Inactive | Enables or disables the gamepad working if the game window is not focused. |
Enable XInput | Enables or disables if the gamepad should be detected as XInput or not. |
padsin000
The padsin000
value is a comma-separated list of numbers. There are 27 options in total. Each ‘slot’ in this list represents an in-action and the value given for that slot is the button id mapped to it. (Note: The button ids are different depending if XInput mode is enabled or not in the padmode000
value!)
The 27 slots are in the following order:
Index | Action Description |
---|---|
0 | Toggle auto-run. |
1 | Toggle CTRL macro bar display. |
2 | Toggle first/third person view. |
3 | Toggle ALT macro bar display. |
4 | Toggle /heal, lock target. |
5 | Cancel. |
6 | Main menu. |
7 | Select, Confirm selection. |
8 | Select active window. |
9 | Toggle menu/window visibility. |
10 | Menu navigation with movement thumbstick while held. |
11 | Move camera with movement thumbstick while held. |
12 | Toggle logout window. |
13 | Player movement. (up) |
14 | Player movement. (down) |
15 | Player movement. (left) |
16 | Player movement. (right) |
17 | Camera movement. (up) |
18 | Camera movement. (down) |
19 | Camera movement. (left) |
20 | Camera movement. (right) |
21 | Menu movement. (up) (Also handles targeting.) |
22 | Menu movement. (down) (Also handles targeting.) |
23 | Menu movement. (left) (Also handles targeting.) |
24 | Menu movement. (right) (Also handles targeting.) |
25 | Take screenshot. (Menu/windows must be hidden.) |
26 | Toggle use of movement, menu and camera controls. |
The FFXiPadConfig
tool does not handle DirectInput controllers fully the same way the actual game client does. The configuration tool only supports upto 32 buttons (ie. DIJOYSTATE
) meanwhile the actual game client will support up to 128 buttons. (ie. DIJOYSTATE2
) It is possible to map to these extra buttons by editing the padsin000
value manually.