Results 1 to 1 of 1
  1. #1
    Player
    Aurelle_Deresnels's Avatar
    Join Date
    Oct 2021
    Posts
    120
    Character
    Aurelle Deresnels
    World
    Jenova
    Main Class
    Goldsmith Lv 100

    SCH Pet Stalls Actions and Behaves Inconsistently After Patch 6.40

    My apologies for reporting this bug so late after its introduction to the game. Though I became aware of the issue almost immediately after the launch of patch 6.40, the nature of inconsistent behavior makes it difficult to conduct testing and provide reproduction steps, particularly in combat. Recently, a friend graciously helped me do some testing and encouraged me to record video clips for documentation. While I was not able to record video for all of the problem behaviors while respecting player privacy - notably missing is one that does consistently occur in Anabaseios Savage - I hope that this footage helps explain and locate the underlying issue.

    While there are multiple problem behaviors, I believe that they are all caused by a single underlying issue within patch 6.40's changes to pet behavior. Accordingly, I have presented reproduction steps for each problem behavior individually to the best of my ability, while placing them in this single report as a single issue.

    (To avoid confusion from the various /petglamour options, I will dispense with the question of appearance and simply refer to the SCH pet as Lily, as per the job quests. I have seen the same behaviors from both faerie and Carbuncle appearances, so I highly doubt that /petglamour enters into it.)

    Date & Time: Current as of July 27, 2023; starting at patch 6.40
    Frequency: Varies by behavior; some are rare while others are highly consistent
    World name: Jenova
    Character name: Aurelle Deresnels
    Retainer name: N/A
    NPC name: N/A
    Monster name: Any or none
    Class/Level: SCH 4 or higher, recommended level 80 or higher to include Seraph in testing
    Party or solo: Both solo and party content
    In-game time: Any
    Area and coordinates: Any
    Housing: N/A (but can occur in housing areas)

    Because many of these reproductions involve keeping Lily moving to more clearly observe the problems, it is important to practice rapidly issuing Place and Heel movement commands to produce her continuous movement, while also being able to issue action commands such as Whispering Dawn. (Do not use Aetherpact / Fey Union for this purpose, as its "channeled" nature can complicate testing. Summon Seraph is a pet swap, not an action, and does not use the pet action queue.) Areas with large distances to travel make this easier, as a single movement command can produce a longer period of movement, but the final selection will depend on the tester's comfort and the other conditions required for each problem behavior. Skilled testers can perform reproductions even in small areas, as I showed using the "core arena" of Paglth'an's second boss fight.

    To aid in observation, I recommend setting a chat log tab to display only battle actions performed by oneself, including Lily via the "Pets/Companions" subject filter.

    --------

    The patch 6.40 notes state: "(2.x) Pets that are moving will now stop immediately to execute actions when commanded."

    Therefore I must note as the first problem behavior that this is not true; it is still possible for Lily's execution of a commanded action to be delayed - or "stalled" - significantly from the command by her movement.

    Steps:
    1. Select a location to perform tests in. This behavior can be reproduced both in and out of combat, but it is more difficult to reproduce when party members are missing HP (due to another problem behavior, that Embrace sometimes stops Lily mid-movement) and when in combat with multiple enemies. Thus, the ideal conditions for reproduction while in combat with a "live" monster are to fight a single enemy with the assistance of a tank or healer who can keep all party members at full HP. (Said assistant need not be in one's party.)
    2. Travel to the selected location, and enter combat or remain out of combat as desired.
    3. Ensure that Lily is continuously moving via movement commands.
    4. While Lily is moving, issue an action command.
    5. Keep up Lily's movement for several more seconds, and observe that the action command is often not carried out until she completes the commanded movements and finally stops.

    Because one is more likely to get this behavior when dealing with fewer enemies, SCH behaves differently in dungeon "trash pulls" compared to bosses, whether those bosses are also in dungeons or in trials and raids. This is incredibly confusing for players learning the job!

    (Inconsistent behavior is worse than any consistent behavior, because at least consistent behavior can be learned when all the necessary data is given.)

    As a corollary of this problem behavior, it remains possible for Lily's movement to delay a commanded action to the point of "ghosting" - losing the action entirely - due to a pet swap to or from Seraph, even if the command is given with plenty of time for its execution.

    --------

    Second, it is possible to "ghost" a pet action without any pet swapping at all, purely by keeping Lily moving for long enough.

    Steps:

    1 - 4. As with the first problem behavior above.
    5. Keep up Lily's movement for at least 30 more seconds, ideally the entire cooldown of the action command used for testing.
    6. Allow Lily to stop moving, and observe that she often does not execute the commanded action at all, neither during nor after her movement.

    Ghosting was a common subject of complaint regarding pet swaps, and introducing it without a pet swap is highly concerning!

    --------

    Third, Embrace can stop Lily's movement, but doesn't always do so. Sometimes but not always, if she has a further action in her queue from a player command, she will remain stopped to execute it.

    Steps:
    1. Select a location to perform tests in. Lily will not cast Embrace unless a party member is missing HP, so it is easiest to test this behavior in combat with enemies that frequently deal damage. (Technically combat is not strictly necessary - party members could keep switching gear to change their maximum HP - but why bother?)
    2. Travel to the selected location, and enter combat or remain out of combat as desired.
    3. Give frequent movement commands so that Lily always has an active movement command.
    4. Observe that sometimes she stops to cast Embrace, especially if she has just been given a new movement command, and sometimes she proceeds with the movement command despite having her Global Cooldown available to cast Embrace and a valid target for the healing.

    This is particularly troublesome for dungeon play, as it means that while the tank is gathering monsters for a trash pull, Lily can fall behind the party significantly. In such cases, when the tank stops moving - and generally takes much more damage due to no longer Sprinting ahead of auto-attacks - Lily is out of position to provide staple heals that the SCH and the party may be relying on. (Video example - pay close attention to the minimap.)

    Whispering Dawn is especially affected, since its nature as healing over time makes it far less useful if delayed outside the high-damage period. We cannot reasonably expect a casual or beginning SCH player to take their eyes off the tank and check their minimap in order to find out when Lily is close enough to use the heals centered on her, then react to her position; yet without reliable behavior they must either do so or always delay such heals significantly. With the previous behavior, such players did not need to track Lily's position, as she would both move reliably and hold essential heals until she was in position to deliver them effectively - thus allowing players to give the commands as soon as they stopped moving, and trust that Lily would deliver the heals as soon as would be effective.

    --------

    Fourth, even aside from being delayed by Embrace casts, Lily sometimes falls behind when coming out of "mount-like" scripted travel sequences such as those in The Aetherfont and Paglth'an.

    Steps:
    1. Select a location to perform tests in. There are limited options, but I would recommend The Aetherfont since that is where I have personally observed this.
    2. When completing each scripted travel sequence, keep moving, as if running the instance normally with a group of players who know the fights.
    3. Observe Lily's position carefully and hope you can see her fall behind. You may have to try different conditions, such as different areas of the dungeon, having her enter the travel sequence on Place vs. Heel, ...

    As these sequences are often directly followed by trash pulls, this problem behavior can combine with the one above to create very large delays. It is quite frustrating to run all the way to the "wall" with the tank in The Aetherfont and see Lily still near the "landing point" behind where the enemies started!

    --------

    Fifth, it is possible to give Lily multiple action commands, only to have her carry out a later command before an earlier one. It sounds crazy, but I caught it on video.

    This is a rare one, due to the specific timing required, but it still demonstrates a fundamental error in the underlying pet code. If you have trouble reproducing it, it may be helpful to resummon Lily periodically, as I have only managed to confirm the behavior within a few minutes of doing so.

    Steps:
    1. Select a location to perform tests in. For the closest match to the video example, use the second boss of Paglth'an, but I suspect that it is possible in any scenario at level 40 or higher, where SCH has multiple action commands to use. It does not even require being in combat at all - while writing this bug report I went outside my Free Company house and was able to repeat it without entering combat, albeit with difficulty.
    2. As described for the first problem behavior, stall an action in Lily's queue. Once the action is stalled, try to proceed quickly, so as to avoid ghosting the action entirely as described for the second problem behavior.
    3. Stop giving movement commands so that Lily can come to a stop.
    4. Just before Lily stops moving, give a second distinct action command. (Do not use both charges of Consolation, as they are not distinguishable by observation.) You are looking for a very specific time for her to receive the command, which may be dependent on the latency within the client as well as between the client and the server. I suspect that she pulls from her action queue just before she stops, and the necessary timing is right before that. If you are too early, the second action command will be queued up while she moves. If you are too late, she will pull the first action out of the queue before you give the second command. And even if you get the timing right, there might be other influences such as those demonstrated with the final problem behavior!
    5. Observe Lily carry out the action commands, paying attention to order and timing.

    This is wildly counterintuitive. The whole point of the "Unable to execute new action until current action has ended." error / warning is to indicate that the commands enter a queue and are to be processed in the order given!

    --------

    Finally, even when Lily is floating perfectly still and not using Embrace, her timing on executing action commands is highly counterintuitive. When in combat with a single enemy, I have narrowed it down to be dependent on when combat is initiated, of all things.

    Steps:
    1. Prepare video recording software to record gameplay footage, as well as synchronized playback software to play back multiple experimental runs. Observation of this problem behavior requires attention to fine nuances of timing, which are difficult to perceive without video aid or extensive tester training.
    2. Select a location to perform tests in. For this reproduction, it is not necessary to move Lily so the arena size is irrelevant. However, it is necessary that one be in combat with a single monster that has not entered combat before, that all party members be at full HP for several seconds before the action command is given, and that the single monster have a castbar attack at a fixed time relative to and shortly after it enters combat. It is ideal to use an instance that does not contain other enemies. While this may sound like a large list of conditions, these conditions are all naturally obtained in many trials and raids via prepull shielding, particularly in high-end content where prepull shields are a matter of course. I observe this problem behavior every week unaided in Anabaseios: The Ninth Circle (Savage) (P9S), and it allows testing to be done very quickly, so I will use that fight as a concrete example.
    3. Enter the instance. For P9S you will require 8 player characters, but no fight knowledge is required and only one tank and the SCH need to do anything at all.
    4. Repeat steps 5-10 several times on the same hardware and Data Center, each one recorded.
    5. Summon Lily and Place her in some convenient location, such as the middle of the arena. It is essential that she remain still so that movement does not interfere with the experiment.
    6. Perform a standard prepull shield sequence: Recitation, Adloquium on the tank who will initiate combat, Deployment Tactics. This sequence and targeting ensures that the tank who will initiate combat has both the Galvanize and Catalyze shields, which keeps them at full HP through the initial auto-attacks and thus prevents unintended Embrace casts.
    7. Have the tank assistant initiate combat with Kokytos.
    8. Pay close attention to Kokytos' first cast of Gluttony's Augur, which will take the shield off the party. In every run, issue the same action command to Lily for this cast, with no action commands before that point. (Conveniently, both Fey Blessing and Whispering Dawn are party-wide heals.) However, vary the timing relative to the end of the castbar between runs. Test a variety of times ranging from slightly before to slightly after the end of the castbar. Any runs in which the action command is given after Gluttony's Augur deals damage are suspect, as Embrace casts will interfere with the experiment. Any runs in which the action command is given significantly before the end of the castbar are also suspect, as they will likely have the action be executed on a different "server tick".
    9. Observe when Lily executes the action command.
    10. Conclude the fight by any means desired - running into the death wall will do fine.
    11. Synchronize the recordings to all play the start of combat simultaneously, or alternatively the end of the Gluttony's Augur castbar simultaneously.
    12. Play back all the recordings at once.
    13. Observe that despite the variation in when Lily is given the action command between runs, she executes the command at the same interval after the castbar completes in each run.

    The expected behavior here is that since Lily is doing nothing else, she will receive the action command and immediately carry it out, taking a fixed amount of time to do so. This fixed amount of time, combined with stable latency between the client and server as well as stable internal client latency, should cause the client to display Lily's execution of the action command at a fixed delay from when the action command is given by the client. That is, if the recordings are synchronized on the "You use [command]" chat log message, Lily's use of her actions should also be synchronized.

    This unexpected behavior, while consistent, raises many questions. Any consistent behavior can eventually be learned by players given all the necessary data, but is it truly reasonable to ask players to track when combat was initiated in order to predict when their own job actions will take effect? Particularly for casual players, who do not generally repeat fights enough to learn the enemy attack patterns and time Lily's behavior against them, and in the overworld where players do not know if a monster has previously been engaged in combat? For that matter, what "server tick" or other timing influences Lily's behavior out of combat, if she behaves this way in combat? Is this influence causing part or all of the inconsistency in other problem behaviors, perhaps by multiple monsters with their individual timings all affecting Lily's behavior?

    Even casual players must know when their heals will land. Asking them to track the time since combat was initiated with each enemy to do so is absurd in an instance, impossible without third-party tools in the overworld, and extremely counterintuitive everywhere.

    --------

    This combination of inconsistent and counterintuitive behaviors impedes player learning, and is actively uncomfortable to players who learned the previous behavior - though I used the Selene appearance while testing for my familiarity with it, most of the time I now leave Lily glamoured as Ruby Carbuncle, because it is less jarring to see this behavior from a form I did not use prior to patch 6.4. And this at a time when the healer role is already lacking players, and players who desire a pet management job only have SCH to play! I urge you to revert to the known good patch 6.0-6.3 behavior until and unless a satisfying solution is thoroughly tested. (Endwalker SMN is the complete opposite of a satisfying solution.)

    If you want to consult me on the matter, you know where to find me. Yes, I did some of the writing for this during the NA Fanfest. Pets are Serious Business.


    Connection Specs
    - Type of internet connection/provider: Cable, Rogers
    - Modem maker/model number: Hitron, CODA-4582U


    ■ PC Specs

    To obtain the system information, open the FFXIV launcher and select Config → System Information → Display.

    -=-=-=-=- System Information -=-=-=-=-

    SYSTEM_OS Windows 10 Pro 64-bit (6.2, Build 9200) (19041.vb_release.191206-1406)
    SYSTEM_CPU Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz (16 CPUs), ~2.9GHz
    SYSTEM_CORE_NUM SYSTEM_CORE_LOGIC 16 SYSTEM_CORE_PHYSICS 8
    SYSTEM_BIOS 2.0.13
    SYSTEM_LANGUAGE English (Regional Setting: English)
    SYSTEM_MEMORY 16118.418MB
    SYSTEM_VIRTUAL_MEMORY 134217727.875MB
    SYSTEM_PAGE_FILE 28918.418MB
    SYSTEM_STORAGE C:\ SYSTEM_HARDDISK_DRIVE SYSTEM_TOTALDISC_SPACE 933.260GB SYSTEM_FREEDISC_SPACE 735.239GB
    SYSTEM_STORAGE D:\ SYSTEM_HARDDISK_DRIVE SYSTEM_TOTALDISC_SPACE 1862.891GB SYSTEM_FREEDISC_SPACE 1649.797GB
    SYSTEM_DIRECTX_VERSION DirectX 12
    SYSTEM_GRAPHICS Intel(R) UHD Graphics 630
    SYSTEM_GRAPHICS_DEVICE \\.\DISPLAY5
    SYSTEM_GRAPHICS_CHIP Intel(R) UHD Graphics Family
    SYSTEM_GRAPHICS_MAKER Intel Corporation
    SYSTEM_GRAPHICS_VRAM 128.000 MB
    SYSTEM_GRAPHICS_SHARED_VRAM 8059.209 MB
    SYSTEM_GRAPHICS_DAC Internal
    SYSTEM_GRAPHICS_DISPLAY_MODE 1920 x 1080 (32 bit) (59Hz)
    SYSTEM_GRAPHICS_DRIVER C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_e0880bf48916d210\igdumdim64.dll,C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_e0880bf48916d210\igd10iumd64.dll,C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_e0880bf48916d210\igd10iumd64.dll,C:\Windows\System32\DriverStore\FileRepository\iigd_dch.inf_amd64_e0880bf48916d210\igd12umd64.dll
    SYSTEM_GRAPHICS_DRIVER_VERSION 27.20.0100.9664
    SYSTEM_GRAPHICS_DRIVER_DATE 5/31/2021 20:00:00
    SYSTEM_GRAPHICS_DRIVER_LANGUAGE English
    3.0
    SYSTEM_GRAPHICS_PIXEL_SHADER 3.0
    SYSTEM_GRAPHICS_VERTEX_TEXTURE SYSTEM_SUPPORT
    SYSTEM_GRAPHICS NVIDIA GeForce RTX 2060 SUPER
    SYSTEM_GRAPHICS_DEVICE Unknown
    SYSTEM_GRAPHICS_CHIP NVIDIA GeForce RTX 2060 SUPER
    SYSTEM_GRAPHICS_MAKER NVIDIA
    SYSTEM_GRAPHICS_VRAM 16078 MB
    SYSTEM_GRAPHICS_SHARED_VRAM SYSTEM_UNKNOWN
    SYSTEM_GRAPHICS_DAC Integrated RAMDAC
    SYSTEM_GRAPHICS_DISPLAY_MODE Unknown
    SYSTEM_GRAPHICS_DRIVER C:\Windows\System32\DriverStore\FileRepository\nvdd.inf_amd64_ad96858edfdf0915\nvldumdx.dll,C:\Windows\System32\DriverStore\FileRepository\nvdd.inf_amd64_ad96858edfdf0915\nvldumdx.dll,C:\Windows\System32\DriverStore\FileRepository\nvdd.inf_amd64_ad96858edfdf0915\nvldumdx.dll,C:\Windows\System32\DriverStore\FileRepository\nvdd.inf_amd64_ad96858edfdf0915\nvldumdx.dll
    SYSTEM_GRAPHICS_DRIVER_VERSION 31.00.0015.2824
    SYSTEM_GRAPHICS_DRIVER_DATE 1/14/2023 20:00:00
    SYSTEM_GRAPHICS_DRIVER_LANGUAGE English

    SYSTEM_GRAPHICS_PIXEL_SHADER
    SYSTEM_GRAPHICS_VERTEX_TEXTURE
    SYSTEM_SOUND DELL S2421HN (Intel(R) Display Audio)
    SYSTEM_SOUND_DEVICE_ID {A4A2E799-000B-4336-887C-E41C96714A30}
    SYSTEM_SOUND_DEVICE_NAME IntcDAud.sys
    SYSTEM_SOUND_DRIVER_VERSION 10.27.0.10
    SYSTEM_SOUND_DRIVER_LANGUAGE English
    SYSTEM_SOUND_DRIVER_DATE 4/15/2021 20:00:00
    SYSTEM_SOUND Speakers (Logitech G933 Gaming Headset)
    SYSTEM_SOUND_DEVICE_ID {23A0215A-8865-405B-9DD3-19A5F1744933}
    SYSTEM_SOUND_DEVICE_NAME USBAUDIO.sys
    SYSTEM_SOUND_DRIVER_VERSION 8.98.201.0
    SYSTEM_SOUND_DRIVER_LANGUAGE English
    SYSTEM_SOUND_DRIVER_DATE 3/7/2018 20:00:00
    SYSTEM_INPUT {6F1D2B60-D5A0-11CF-BFC7444553540000}
    SYSTEM_INPUT_NAME Mouse
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 3 SYSTEM_GAMEPAD_BUTTON 8 SYSTEM_GAMEPAD_FOV 0
    SYSTEM_INPUT {6F1D2B61-D5A0-11CF-BFC7444553540000}
    SYSTEM_INPUT_NAME Keyboard
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 0 SYSTEM_GAMEPAD_BUTTON 128 SYSTEM_GAMEPAD_FOV 0
    SYSTEM_INPUT {90124AA0-9C1B-11EB-8001444553540000}
    SYSTEM_INPUT_NAME USB Receiver
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 0 SYSTEM_GAMEPAD_BUTTON 767 SYSTEM_GAMEPAD_FOV 0
    SYSTEM_INPUT {901271B0-9C1B-11EB-8002444553540000}
    SYSTEM_INPUT_NAME USB Receiver
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 0 SYSTEM_GAMEPAD_BUTTON 3 SYSTEM_GAMEPAD_FOV 0
    SYSTEM_INPUT {901271B0-9C1B-11EB-8004444553540000}
    SYSTEM_INPUT_NAME USB Receiver
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 0 SYSTEM_GAMEPAD_BUTTON 0 SYSTEM_GAMEPAD_FOV 0
    SYSTEM_INPUT {901298C0-9C1B-11EB-8005444553540000}
    SYSTEM_INPUT_NAME USB Receiver
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 0 SYSTEM_GAMEPAD_BUTTON 0 SYSTEM_GAMEPAD_FOV 0
    SYSTEM_INPUT {9012BFD0-9C1B-11EB-8006444553540000}
    SYSTEM_INPUT_NAME USB Receiver
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 0 SYSTEM_GAMEPAD_BUTTON 0 SYSTEM_GAMEPAD_FOV 0
    SYSTEM_INPUT {9012BFD0-9C1B-11EB-8007444553540000}
    SYSTEM_INPUT_NAME USB Receiver
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 0 SYSTEM_GAMEPAD_BUTTON 0 SYSTEM_GAMEPAD_FOV 0
    SYSTEM_INPUT {9012BFD0-9C1B-11EB-8008444553540000}
    SYSTEM_INPUT_NAME Multi-media
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 0 SYSTEM_GAMEPAD_BUTTON 7 SYSTEM_GAMEPAD_FOV 0
    SYSTEM_INPUT {90130DF0-9C1B-11EB-800B444553540000}
    SYSTEM_INPUT_NAME Logitech G933 Gaming Wireless Headset
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 0 SYSTEM_GAMEPAD_BUTTON 2 SYSTEM_GAMEPAD_FOV 0
    SYSTEM_INPUT {90133500-9C1B-11EB-800C444553540000}
    SYSTEM_INPUT_NAME Logitech G933 Gaming Wireless Headset
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 0 SYSTEM_GAMEPAD_BUTTON 0 SYSTEM_GAMEPAD_FOV 0
    SYSTEM_INPUT {90133500-9C1B-11EB-800D444553540000}
    SYSTEM_INPUT_NAME Logitech G933 Gaming Wireless Headset
    SYSTEM_INPUT_REMARKS SYSTEM_GAMEPAD_AXIS 0 SYSTEM_GAMEPAD_BUTTON 0 SYSTEM_GAMEPAD_FOV 0

    -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    (0)
    Last edited by Aurelle_Deresnels; 07-30-2023 at 09:58 AM. Reason: character limit too short