Tool:Delagginoger: Difference between revisions
No edit summary |
No edit summary |
||
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= 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 = | |||
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 = | |||
[https://youtu.be/N1gU4ISN8r0 See this video for a few examples.] | [https://youtu.be/N1gU4ISN8r0 See this video for a few examples.] | ||
Line 19: | Line 19: | ||
* Arrow Revolver faster re-aim. | * Arrow Revolver faster re-aim. | ||
* Faster response to picking up items. | * 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 = | ||
[https://discord.gg/vghqcjVuXc Join Delagginoger discord for updates.] | |||
= Instructions = | |||
* Download from https://auranogi.wiki/downloads/delagginoger.zip | * Download from https://auranogi.wiki/downloads/delagginoger.zip | ||
Line 46: | 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. | ||
== | = 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. | |||
''delagginoger.ini'' file will be created after the first execution of Delagginoger. | |||
== 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 setting requires a complete restart after changing it. ''' | |||
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 setting requires you to relog after changing it. ''' | |||
This handles the delagging of the `SkillPrepare` packet, it will allow for skill load times to be closer to a lagless experience. | |||
=== Healing === | |||
'''.ini name:''' ''healing'' under ''[Skills]'' section. | |||
'''Default:''' ''True'' | |||
Allows the use of Healing as if having very low latency. | |||
=== Magic === | |||
'''.ini name:''' ''magic'' under ''[Skills]'' section. | |||
'''Default:''' ''True'' | |||
Handling of Icebolt, Firebolt, Lightning Bolt, Fireball, Ice Spear, and Thunder. | |||
== Archery == | |||
The Archery section contains some configuration specific to archery skills and systems. | |||
=== No aim delay === | |||
'''.ini name:''' ''noAimDelay'' under ''[Archery]'' section. | |||
'''Default:''' ''True'' | |||
''' This setting requires a complete restart after changing it. ''' | |||
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, unless `Instant attack anim` below is enabled, and may require some time for you to adjust if you've been playing mabi long enough. | |||
=== Instant attack anim === | |||
'''.ini name:''' ''fakeCap'' under ''[Archery]'' section. | |||
'''Default:''' ''True'' | |||
Triggers the attack animation of most ranged skills nearly instantly. | |||
It does this by creating a dummy CAP and sending it to client immediately, and then modifying the actual CAP received from the server so it doesn't cause another animation. | |||
This causes the responsiveness of ranged skills feel faster, while the actual results (damage, knockbacks, etc) still remain delayed by latency, it can feel awkward at first, experiment and turn off if you dislike it. | |||
=== No resyncs === | |||
'''.ini name:''' ''noResync'' under ''[Archery]'' section. | |||
'''Default:''' ''False'' | |||
Latency can make the position of your character desync by a small amount while aiming, and Delagginoger tries to combat that. | |||
By default when you start aiming, delaggi will sync your position based on received server packets, this will look like small "teleports" or jittery movement of your character when you start aiming. | |||
Enable to remove this resync behavior if you feel the jittery movement annoying and rather deal with the potential desyncs. | |||
== 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. | |||
=== Is it allowed? | === 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. | |||
== Util == | |||
In the icon right-click menu you'll find a couple of utils: | |||
=== Show debug logs === | |||
Will output to chat some information that can be useful to debug, if you are encountering any bug try to while having debug logs enabled for the bug report. | |||
=== Reload from ini === | |||
Reads the .ini file for any external modifications and applies the settings. (any setting that requires a restart as mentioned above will still require a restart) | |||
== Workaround == | |||
Settings under the Workaround section are intended to be used as workarounds to issues, in an ideal scenario these should remain false. | |||
If you run into any issues with them disabled, read the documentation below to try workarounds, but report the issue you are encountering while these are disabled. | |||
=== SkillReady Delay === | |||
'''.ini name:''' ''readyDelay'' under ''[Workaround]'' section. | |||
'''Default:''' ''False'' | |||
''' Should be avoided if prepareDelay is enabled''' | |||
''' Can cause issues with Urgent Shot (and potentially other instant or fast to load skills like Spider Shot or Elf Ranged Attack) when used together with ''noCAPWait'' ''' | |||
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. | |||
Can be error prone if preparing a new skill fast or when the previous one was close to being ready. | |||
=== SkillPrepare Delay === | |||
'''.ini name:''' ''prepareDelay'' under ''[Workaround]'' section. | |||
'''Default:''' ''False'' | |||
''' Should be avoided if readyDelay is enabled''' | |||
''' Requires ''latency'' conf to be set to a number above 0 ''' | |||
An alternative workaround to ''readyDelay'', it delays the prepare packet instead, it should be less error prone than the other, though time to load skills might be less accurate. | |||
Same as ''readyDelay'' generally can help as a workaround if you encounter too many "Skill wasn't prepared yet." errors. | |||
=== Manual Latency conf === | |||
'''.ini name:''' ''latency'' under ''[Workaround]'' section. | |||
'''Default:''' ''0'' | |||
''' Only relevant if ''prepareDelay'' is enabled. ''' | |||
''prepareDelay'' needs manual input of your latency to work properly, you should set this to a value close to your latency, as low as you can go before encountering "Skill wasn't prepared yet." errors or similar. | |||
(You can use "Util > Reload from ini" in the tray icon menu to reload this setting while in-game) | |||
= 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 54: | Line 278: | ||
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? == | |||
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. | ||
== 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. |
Latest revision as of 13:16, 17 November 2024
What[edit]
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[edit]
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[edit]
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[edit]
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[edit]
Join Delagginoger discord for updates.
Instructions[edit]
- 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[edit]
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.
delagginoger.ini file will be created after the first execution of Delagginoger.
Skill[edit]
The skill section contains configuration around general skill handling and some other specific skills.
Skills delagging[edit]
.ini name: skills under [Skills] section.
Default: True
This setting requires a complete restart after changing it.
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[edit]
.ini name: prepare under [Skills] section.
Default: True
This setting requires you to relog after changing it.
This handles the delagging of the `SkillPrepare` packet, it will allow for skill load times to be closer to a lagless experience.
Healing[edit]
.ini name: healing under [Skills] section.
Default: True
Allows the use of Healing as if having very low latency.
Magic[edit]
.ini name: magic under [Skills] section.
Default: True
Handling of Icebolt, Firebolt, Lightning Bolt, Fireball, Ice Spear, and Thunder.
Archery[edit]
The Archery section contains some configuration specific to archery skills and systems.
No aim delay[edit]
.ini name: noAimDelay under [Archery] section.
Default: True
This setting requires a complete restart after changing it.
When true, the aimDelay configuration will take effect, read documentation for that config below for more details.
Aim Delay[edit]
(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[edit]
.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, unless `Instant attack anim` below is enabled, and may require some time for you to adjust if you've been playing mabi long enough.
Instant attack anim[edit]
.ini name: fakeCap under [Archery] section.
Default: True
Triggers the attack animation of most ranged skills nearly instantly. It does this by creating a dummy CAP and sending it to client immediately, and then modifying the actual CAP received from the server so it doesn't cause another animation.
This causes the responsiveness of ranged skills feel faster, while the actual results (damage, knockbacks, etc) still remain delayed by latency, it can feel awkward at first, experiment and turn off if you dislike it.
No resyncs[edit]
.ini name: noResync under [Archery] section.
Default: False
Latency can make the position of your character desync by a small amount while aiming, and Delagginoger tries to combat that.
By default when you start aiming, delaggi will sync your position based on received server packets, this will look like small "teleports" or jittery movement of your character when you start aiming.
Enable to remove this resync behavior if you feel the jittery movement annoying and rather deal with the potential desyncs.
Pets[edit]
Summon Handler[edit]
.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[edit]
Switch set handling[edit]
.ini name: switchSet under [Equipment] section.
Default: True
Delags the switching of auxiliary/primary weapon sets.
Switch Extra Slot handling[edit]
.ini name: switchExtra under [Equipment] section.
Default: True
Delags the switching between extra equipment slots.
Misc[edit]
Item Pickup[edit]
.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[edit]
.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.
Util[edit]
In the icon right-click menu you'll find a couple of utils:
Show debug logs[edit]
Will output to chat some information that can be useful to debug, if you are encountering any bug try to while having debug logs enabled for the bug report.
Reload from ini[edit]
Reads the .ini file for any external modifications and applies the settings. (any setting that requires a restart as mentioned above will still require a restart)
Workaround[edit]
Settings under the Workaround section are intended to be used as workarounds to issues, in an ideal scenario these should remain false.
If you run into any issues with them disabled, read the documentation below to try workarounds, but report the issue you are encountering while these are disabled.
SkillReady Delay[edit]
.ini name: readyDelay under [Workaround] section.
Default: False
Should be avoided if prepareDelay is enabled
Can cause issues with Urgent Shot (and potentially other instant or fast to load skills like Spider Shot or Elf Ranged Attack) when used together with noCAPWait
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.
Can be error prone if preparing a new skill fast or when the previous one was close to being ready.
SkillPrepare Delay[edit]
.ini name: prepareDelay under [Workaround] section.
Default: False
Should be avoided if readyDelay is enabled
Requires latency conf to be set to a number above 0
An alternative workaround to readyDelay, it delays the prepare packet instead, it should be less error prone than the other, though time to load skills might be less accurate.
Same as readyDelay generally can help as a workaround if you encounter too many "Skill wasn't prepared yet." errors.
Manual Latency conf[edit]
.ini name: latency under [Workaround] section.
Default: 0
Only relevant if prepareDelay is enabled.
prepareDelay needs manual input of your latency to work properly, you should set this to a value close to your latency, as low as you can go before encountering "Skill wasn't prepared yet." errors or similar.
(You can use "Util > Reload from ini" in the tray icon menu to reload this setting while in-game)
Q&A[edit]
Is it allowed?[edit]
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?[edit]
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?[edit]
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.