Nitrox icon indicating copy to clipboard operation
Nitrox copied to clipboard

Fully sync exosuits and drilling

Open SpaceMonkeyy86 opened this issue 9 months ago β€’ 17 comments

  • [x] Sync claw arms
  • [x] Sync picking up items with claw arms
  • [x] Sync drill arms
  • [x] Sync drill arm position when drilling (automatically moves down to deposit)
  • [x] Sync grappling arms
  • [x] Sync grappling hook from grappling arms
  • [x] Sync propulsion arms
  • [x] Sync torpedo arms
  • [x] Sync exosuit power cells
  • [x] Sync drillable deposits visually disappearing in parts when drilled
  • [x] Sync resources spawning from drillable deposits
  • [x] Sync "pinata" resources automatically going into vehicle storage
  • [x] Sync respawning ion cube deposit in primary containment facility antechamber
  • [x] Persist destroyed status of deposits when saving

Fixes #2278, fixes #2303, fixes #2386, fixes #2577

SpaceMonkeyy86 avatar Mar 09 '25 21:03 SpaceMonkeyy86

GJ on the PR @SpaceMonkeyy86

I found 4 bugs that u might have missed

  1. The second power cell in the exosuit isn’t synced at all.

  2. If you swap an arm from one slot to another, it first vanishes for everyone, then reappearsβ€”but only for the second player.

  3. If you repeatedly equip and unequip an arm, it can sometimes duplicate (this might be just lag but i can do it consistently).

  4. The other player can still hear some sounds from the exosuit when the other player is far away (like 0,5km away). When u let go of the spacebar, they can hear for split second the jetpack/engine "revving off". Occasionally they can also hear a loud stomp from the exosuit.

Everything else works great :D. Keep up the good work

leonidasjan avatar Mar 16 '25 12:03 leonidasjan

@leonidasjan These should be fixed now. For the sound effects, that is not really relevant for this PR since the sound is synced, but it was probably designed to play regardless of world position, since you are normally right on top of it. We will get around to reworking those sounds sometime, though.

SpaceMonkeyy86 avatar Mar 22 '25 18:03 SpaceMonkeyy86

Good work on the bug fixes @SpaceMonkeyy86 πŸ˜„

The bugs i listed are gone (except for the sound issues but i understand that its for the future).

The only thing ive noticed is that there are still some bugs while grabbing another player with the hook. If you want u can fix those issues but IMO grabbing other players should be disabled cause its a little weird.

from the bug testing perspective the pr is almost ready to merge

leonidasjan avatar Mar 23 '25 10:03 leonidasjan

@leonidasjan Thanks, it should be impossible for other players to be hit with the grappling hook now.

SpaceMonkeyy86 avatar Mar 24 '25 00:03 SpaceMonkeyy86

LGTM πŸ‘

leonidasjan avatar Mar 27 '25 17:03 leonidasjan

Looks good from what I've seen IG, thank's for the PR

We noticed few things we noticed yesterday during test sessions :

  • Seems to have some issue with global sound while an exosuit is walking
  • Exosuit spawns with only one battery filled in
  • We noticed some duplication/desync issue upon relog with deposits, might need some more deep testing on that part

dartasen avatar Apr 11 '25 11:04 dartasen

Merging #2137 created a lot of merge conflicts with this PR since both of them completely rewrote a lot of the same subsystems code. I will need to do some more work to get everything back to a working state, then we need re-reviews and more in-game testing.

SpaceMonkeyy86 avatar Apr 26 '25 17:04 SpaceMonkeyy86

Never mind, that was suspiciously easy. We definitely need some in-game tests because I have a hard time believing everything is still working after that.

SpaceMonkeyy86 avatar Apr 26 '25 18:04 SpaceMonkeyy86

Test results(May 6 2025):

  • Disabling pvp does not disable gas damage from torpedoes fired by other players(minor, for 1.9 or future)
  • Beam of propulsion arm is not synced(minor, leave for future)
  • Exosuit entering into moonpool anim does not sync, packet sends but is not effected on other client for some reason, once other player gets in the exosuit it warps to the pos though(major, must fix)
  • Similar issue with undocking
  • Ion cube pillar spinning and lowering in antechamber is not synced(minor, for 1.9 or future)
  • Position of drill arms relative to ore that is being mined is way off(not sure if fixable, probably 1.9)

OhmV-IR avatar May 06 '25 21:05 OhmV-IR

Results from in-game testing:

  • "Couldn't find entity for ___" errors in server when swapping arms (sync still works)
  • SFX of drill whirring is audible everywhere for other players
  • Torpedos deal damage to other players even when PvP is off
  • VFX of beam connecting propulsion arm to object is not synced
  • When entering a moonpool, the exosuit usually stays outside for other players until the player enters it (then it immediately docks)
  • Leaving a moonpool is usually not synced
  • VFX of drill colliding with deposit is not synced
  • Drill arm does not physically touch the deposit when drilling (vanilla bug, probably intended, maybe fix?)

All are very minor / wontfix except the moonpool issues

SpaceMonkeyy86 avatar May 06 '25 21:05 SpaceMonkeyy86

The docking and undocking issues were found to be unrelated to this PR, and the other fixes are not necessary for 1.8, so this PR should be considered all good regarding in-game tests.

SpaceMonkeyy86 avatar May 07 '25 19:05 SpaceMonkeyy86

Now that 1.8 is on a branch, we can now give it a deeper look. If you mind rebasing πŸ˜„

dartasen avatar Oct 08 '25 19:10 dartasen

Test Results

244 tests  +1   243 βœ… +1   7s ⏱️ -1s   1 suites Β±0     1 πŸ’€ Β±0    1 files   Β±0     0 ❌ Β±0 

Results for commit 660c37be. ± Comparison against base commit 2bf26678.

This pull request removes 1 and adds 2 tests. Note that renamed tests count towards both.
Nitrox.Test.Patcher.Patches.PatchesTranspilerTest ‑ AllPatchesTranspilerSanity (NitroxPatcher.Patches.Dynamic.Equipment_RemoveItem_Patch,7)
Nitrox.Test.Patcher.Patches.PatchesTranspilerTest ‑ AllPatchesTranspilerSanity (NitroxPatcher.Patches.Dynamic.Drillable_ManagedUpdate_Patch,3)
Nitrox.Test.Patcher.Patches.PatchesTranspilerTest ‑ AllPatchesTranspilerSanity (NitroxPatcher.Patches.Dynamic.Drillable_SpawnLootAsync_Patch,2)

github-actions[bot] avatar Nov 01 '25 23:11 github-actions[bot]