Tool:Delagginoger: Difference between revisions

From Auranogi
No edit summary
(Adds configuration documentation.)
Line 1: Line 1:
== What ==
= What =


Delagginoger is a mod developed by Garmik to help compensate against latency issues in Auranogi.
Delagginoger is a mod developed by Garmik to help compensate against latency issues in Auranogi.
Line 5: Line 5:
The goal of this mod is to make the game play as it was intended to be played in terms of latency, up to what is possible, it will not make you any faster if your latency is already low.
The goal of this mod is to make the game play as it was intended to be played in terms of latency, up to what is possible, it will not make you any faster if your latency is already low.


== How it works ==
= How it works =


Delagginoger works by optimizing how the client sends certain packets to the server, as an example, when summoning a pet the client sends one packet, waits for response, sends another, waits for response, and only then the pet becomes available, by sending both packets immediately one after another we can cut down in half the latency to have the pet ready.
Delagginoger works by optimizing how the client sends certain packets to the server, as an example, when summoning a pet the client sends one packet, waits for response, sends another, waits for response, and only then the pet becomes available, by sending both packets immediately one after another we can cut down in half the latency to have the pet ready.
Line 11: Line 11:
The mod works in tandem with the `lagcomp` [[User Commands|user command]] to ease latency problems both on server and client.
The mod works in tandem with the `lagcomp` [[User Commands|user command]] to ease latency problems both on server and client.


== Features ==
= Features =


[https://youtu.be/N1gU4ISN8r0 See this video for a few examples.]
[https://youtu.be/N1gU4ISN8r0 See this video for a few examples.]
Line 23: Line 23:
* Switching weapon sets (normal and extra) behave as if having very low latency.
* Switching weapon sets (normal and extra) behave as if having very low latency.


== Warning ==
= Warning =


This tool is still considered experimental, meddling with how the client sends packets could be prone to unexpected issues.
This tool is still considered experimental, meddling with how the client sends packets could be prone to unexpected issues.
Line 29: Line 29:
It is possible for this tool to cause more "locks" than normal, depending on your latency and jitter (the difference between your max and min latency), how useful it is for you is going to be dependent on your experience, if the benefits outweigh the issues you personally experience with and without it.
It is possible for this tool to cause more "locks" than normal, depending on your latency and jitter (the difference between your max and min latency), how useful it is for you is going to be dependent on your experience, if the benefits outweigh the issues you personally experience with and without it.


== Keep up with updates and known issues ==
= Keep up with updates and known issues =


[https://discord.gg/vghqcjVuXc Join Delagginoger discord for updates.]
[https://discord.gg/vghqcjVuXc Join Delagginoger discord for updates.]


== Instructions ==
= Instructions =


* Download from https://auranogi.wiki/downloads/delagginoger.zip
* Download from https://auranogi.wiki/downloads/delagginoger.zip
Line 42: Line 42:
* Some Anti-virus might detect this as a virus, since it uses executable injection to work.
* Some Anti-virus might detect this as a virus, since it uses executable injection to work.


== Q&A ==
= Configuration Documentation =


=== Is it allowed? ===
Documentation is divided by setting section, the name of setting on the tray icon menu, and includes the corresponding name found in the `delagginoger.ini` file.
 
== Skill ==
 
The skill section contains configuration around general skill handling and some other specific skills.
 
=== Skills delagging ===
 
'''.ini name:''' ''skills'' under ''[Skills]'' section.
 
'''Default:''' ''True''
 
This is the configuration that handles most of the skill delagging, like skill completion and canceling.
 
It generally allows for faster skill usage after one is completed or canceled.
 
=== SkillPrepare Handler ===
 
'''.ini name:''' ''prepare'' under ''[Skills]'' section.
 
'''Default:''' ''True''
 
This handles the delagging of the `SkillPrepare` packet, it will allow for skill load times to be closer to a lagless experience.
 
=== SkillReady Delay ===
 
'''.ini name:''' ''readyDelay'' under ''[Skills]'' section.
 
'''Default:''' ''False''
 
When enabled it will make the ''SkillReady'' packet handling delay an extra amount based on your latency, making errors like "Skill wasn't prepared yet." less likely to occur.
 
This essentially makes the delagging "worse", but if you get errors like the above often, then it will be better. Server's ''lagcomp'' should make up for any extra delay as well.
 
=== Healing ===
 
'''.ini name:''' ''healing'' under ''[Skills]'' section.
 
'''Default:''' ''True''
 
Allows the use of Healing as if having very low latency.
 
== Archery ==
 
The Archery section contains some configuration specific to archery skills and systems.
 
=== No aim delay ===
 
'''.ini name:''' ''noAimDelay'' under ''[Archery]'' section.
 
'''Default:''' ''True''
 
When true, the ''aimDelay'' configuration will take effect, read documentation for that config below for more details.
 
=== Aim Delay ===
 
(Configuration not present in tray icon menu, must set in .ini)
 
'''.ini name:''' ''aimDelay'' under ''[Archery]'' section.
 
'''Default:''' ''25''
 
When used, the configured delay will be used as the delay of the client requesting to start aim and it visually starting to aim.
 
Normally the client will send a ''StartAim'' packet, and only start aiming once the server responds, this creates a delay, slowing down the potential attack speed (or overall "being ready to shoot" time) of archery skills.
 
By reducing the delay, an archer can shoot faster, closer to a lagless experience, '''however''' since the server hasn't received the request yet, the % aim chance seen in the client will be lower than the actual % the server will calculate.
 
The recommended starting value is half your latency, however experiment lower values to test how it feels to find your preferred value.
 
=== No action wait ===
 
'''.ini name:''' ''noCAPWait'' under ''[Archery]'' section.
 
'''Default:''' ''True''
 
Allows archery skills to not wait for the ''Combat Action Packet'' (''CAP'') before they are considered "finished".
 
Several combat skills, including archery, will send the the ''SkillUse'' packet upon use (e.g you click to shoot the target), once that packet is received by the server it will handle the skill (damage, enemy death, etc) and respond with ''SkillUse'' and ''CombatAction'' packets, the latter contains all the information for the client to update HP, knockbacks, death, etc. However, the only packet that matters for the skill to be considered "finished", and therefore allow you to start using another skill, is the ''SkillUse'' packet.
 
This setting will make ''SkillUse'' near immediate, and therefore the time it takes for the server to receive and process the ''CAP'' won't matter anymore.
 
While this gives you a lagless experience in terms of you being able to move, or trigger other skills earlier as a lagless player would, it does means that you might experience "strange" behavior, as the client plays the "shoot" animation only when the ''CAP'' is received, and may require some time for you to adjust if you've been playing mabi long enough.
 
== Pets ==
 
=== Summon Handler ===
 
'''.ini name:''' ''summon'' under ''[Pet]'' section.
 
'''Default:''' ''True''
 
Normally the client will send several packets in chain, waiting for a response of each one before the next one is sent, when summoning pets. The handler will manage this packets in a more efficient manner for a summon time speedup.
 
== Equipment ==
 
=== Switch set handling ===
 
'''.ini name:''' ''switchSet'' under ''[Equipment]'' section.
 
'''Default:''' ''True''
 
Delags the switching of auxiliary/primary weapon sets.
 
=== Switch Extra Slot handling ===
 
'''.ini name:''' ''switchExtra'' under ''[Equipment]'' section.
 
'''Default:''' ''True''
 
Delags the switching between extra equipment slots.
 
== Misc ==
 
=== Item Pickup ===
 
'''.ini name:''' ''itemPickup'' under ''[Misc]'' section.
 
'''Default:''' ''True''
 
Does some trickery to give virtual low latency item pickup.
 
When enabled, picking up an item will immediately remove the item from view, and respond with a successful item pickup response. This allows the client to immediately pick up another item from the ground.
 
However if the server later responds with a pickup failure, the item will be re-added to the ground, and the failure message displayed.
 
This means you might see some abnormal behavior when trying to pickup items that you are not allowed to (e.g inventory full, or it doesn't belong to you), for the amount of your latency the item will disappear from the ground as if you successfully picked it up, but reappear shortly after.
 
=== Item use ===
 
'''.ini name:''' ''itemUse'' under ''[Misc]'' section.
 
'''Default:''' ''True''
 
Allows the client to not have to wait for the ''ItemUse'' packet response before being allowed to use another item. This allows for faster potion or food drinking for example.
 
= Q&A =
 
== Is it allowed? ==


Yes, in the words of our Admin Thunderbro: "Hmmmm, okay".
Yes, in the words of our Admin Thunderbro: "Hmmmm, okay".
Line 50: Line 188:
The mod does not try to cheat anything, every feature and addition is tested against a localhost (0ms latency) server to compare that nothing that shouldn't be possible is happening.
The mod does not try to cheat anything, every feature and addition is tested against a localhost (0ms latency) server to compare that nothing that shouldn't be possible is happening.


=== Should I use this? ===
== Should I use this? ==
If you have low latency (live in North America) you are probably not going to see many, if any, benefits and might even encounter issues, but feel free to test.
If you have low latency (live in North America) you are probably not going to see many, if any, benefits and might even encounter issues, but feel free to test, enable/disable different configs after reading the documentation above to make any adjustments.
 
=== I'm using it but I'm not sure if it's having any effect? ===
 
If you look at your tray icons (next to the your time in Windows), there's one for Delagginoger, if you right click that, you can go to "Config > Toggle Debugging", while Debugging is on, try to summon a pet that is on cooldown, and activate & cancel skills, if in-game you see debug messages from Delagginoger, then it means the mod is doing things, if you notice no effect then perhaps your latency is already too low.


=== Can it be used alongside other mods? ===
== Can it be used alongside other mods? ==


It can be used with Abyss (and Abyss can chain-load Kanan).
It can be used with Abyss (and Abyss can chain-load Kanan).


Running delagginoger.exe will open up the client normally, so Abyss should just work as normal without anything extra needed.
Running delagginoger.exe will open up the client normally, so Abyss should just work as normal without anything extra needed.

Revision as of 11:54, 18 July 2024

What

Delagginoger is a mod developed by Garmik to help compensate against latency issues in Auranogi.

The goal of this mod is to make the game play as it was intended to be played in terms of latency, up to what is possible, it will not make you any faster if your latency is already low.

How it works

Delagginoger works by optimizing how the client sends certain packets to the server, as an example, when summoning a pet the client sends one packet, waits for response, sends another, waits for response, and only then the pet becomes available, by sending both packets immediately one after another we can cut down in half the latency to have the pet ready.

The mod works in tandem with the `lagcomp` user command to ease latency problems both on server and client.

Features

See this video for a few examples.

  • Faster skill canceling and completion. This means that you'll be able to combo from skill to skill easier, or spam attacks easier (e.g elf magnum/ranged attack), as well as switch from one skill to another (e.g need to cancel current skill and start loading another).
  • Faster pet summoning and desummoning.
  • Arrow Revolver faster re-aim.
  • Faster response to picking up items.
  • Faster Healing casts.
  • Final Hit attack speed much less dependent on latency.
  • Switching weapon sets (normal and extra) behave as if having very low latency.

Warning

This tool is still considered experimental, meddling with how the client sends packets could be prone to unexpected issues.

It is possible for this tool to cause more "locks" than normal, depending on your latency and jitter (the difference between your max and min latency), how useful it is for you is going to be dependent on your experience, if the benefits outweigh the issues you personally experience with and without it.

Keep up with updates and known issues

Join Delagginoger discord for updates.

Instructions

  • Download from https://auranogi.wiki/downloads/delagginoger.zip
  • Unzip into your Auranogi directory, i.e `delagginoger.exe` should be in the same directory as `Client.exe`
  • Launch the game with `delagginoger.exe`
  • Note that currently this will skip the Auranogi launcher, so make sure to run that manually after server updates to make sure you are not missing client-side updates.
  • Some Anti-virus might detect this as a virus, since it uses executable injection to work.

Configuration Documentation

Documentation is divided by setting section, the name of setting on the tray icon menu, and includes the corresponding name found in the `delagginoger.ini` file.

Skill

The skill section contains configuration around general skill handling and some other specific skills.

Skills delagging

.ini name: skills under [Skills] section.

Default: True

This is the configuration that handles most of the skill delagging, like skill completion and canceling.

It generally allows for faster skill usage after one is completed or canceled.

SkillPrepare Handler

.ini name: prepare under [Skills] section.

Default: True

This handles the delagging of the `SkillPrepare` packet, it will allow for skill load times to be closer to a lagless experience.

SkillReady Delay

.ini name: readyDelay under [Skills] section.

Default: False

When enabled it will make the SkillReady packet handling delay an extra amount based on your latency, making errors like "Skill wasn't prepared yet." less likely to occur.

This essentially makes the delagging "worse", but if you get errors like the above often, then it will be better. Server's lagcomp should make up for any extra delay as well.

Healing

.ini name: healing under [Skills] section.

Default: True

Allows the use of Healing as if having very low latency.

Archery

The Archery section contains some configuration specific to archery skills and systems.

No aim delay

.ini name: noAimDelay under [Archery] section.

Default: True

When true, the aimDelay configuration will take effect, read documentation for that config below for more details.

Aim Delay

(Configuration not present in tray icon menu, must set in .ini)

.ini name: aimDelay under [Archery] section.

Default: 25

When used, the configured delay will be used as the delay of the client requesting to start aim and it visually starting to aim.

Normally the client will send a StartAim packet, and only start aiming once the server responds, this creates a delay, slowing down the potential attack speed (or overall "being ready to shoot" time) of archery skills.

By reducing the delay, an archer can shoot faster, closer to a lagless experience, however since the server hasn't received the request yet, the % aim chance seen in the client will be lower than the actual % the server will calculate.

The recommended starting value is half your latency, however experiment lower values to test how it feels to find your preferred value.

No action wait

.ini name: noCAPWait under [Archery] section.

Default: True

Allows archery skills to not wait for the Combat Action Packet (CAP) before they are considered "finished".

Several combat skills, including archery, will send the the SkillUse packet upon use (e.g you click to shoot the target), once that packet is received by the server it will handle the skill (damage, enemy death, etc) and respond with SkillUse and CombatAction packets, the latter contains all the information for the client to update HP, knockbacks, death, etc. However, the only packet that matters for the skill to be considered "finished", and therefore allow you to start using another skill, is the SkillUse packet.

This setting will make SkillUse near immediate, and therefore the time it takes for the server to receive and process the CAP won't matter anymore.

While this gives you a lagless experience in terms of you being able to move, or trigger other skills earlier as a lagless player would, it does means that you might experience "strange" behavior, as the client plays the "shoot" animation only when the CAP is received, and may require some time for you to adjust if you've been playing mabi long enough.

Pets

Summon Handler

.ini name: summon under [Pet] section.

Default: True

Normally the client will send several packets in chain, waiting for a response of each one before the next one is sent, when summoning pets. The handler will manage this packets in a more efficient manner for a summon time speedup.

Equipment

Switch set handling

.ini name: switchSet under [Equipment] section.

Default: True

Delags the switching of auxiliary/primary weapon sets.

Switch Extra Slot handling

.ini name: switchExtra under [Equipment] section.

Default: True

Delags the switching between extra equipment slots.

Misc

Item Pickup

.ini name: itemPickup under [Misc] section.

Default: True

Does some trickery to give virtual low latency item pickup.

When enabled, picking up an item will immediately remove the item from view, and respond with a successful item pickup response. This allows the client to immediately pick up another item from the ground.

However if the server later responds with a pickup failure, the item will be re-added to the ground, and the failure message displayed.

This means you might see some abnormal behavior when trying to pickup items that you are not allowed to (e.g inventory full, or it doesn't belong to you), for the amount of your latency the item will disappear from the ground as if you successfully picked it up, but reappear shortly after.

Item use

.ini name: itemUse under [Misc] section.

Default: True

Allows the client to not have to wait for the ItemUse packet response before being allowed to use another item. This allows for faster potion or food drinking for example.

Q&A

Is it allowed?

Yes, in the words of our Admin Thunderbro: "Hmmmm, okay".

The mod does not try to cheat anything, every feature and addition is tested against a localhost (0ms latency) server to compare that nothing that shouldn't be possible is happening.

Should I use this?

If you have low latency (live in North America) you are probably not going to see many, if any, benefits and might even encounter issues, but feel free to test, enable/disable different configs after reading the documentation above to make any adjustments.

Can it be used alongside other mods?

It can be used with Abyss (and Abyss can chain-load Kanan).

Running delagginoger.exe will open up the client normally, so Abyss should just work as normal without anything extra needed.