Fixed Teleportation bugs out when target PF was wiped [01030]

Discussion in 'Fixed (Read Only)' started by Vollinger, Jul 12, 2023.

  1. Vollinger

    Vollinger Lieutenant

    Joined:
    Jan 16, 2022
    Messages:
    39
    Likes Received:
    71
    Build: 1.10 b4233
    Mode: MP (SP?)
    Mode: survival (any?)

    SERVER NAME: -
    SEED-ID: -

    If applicable:
    MODIFIED PLAYFIELDS: -

    Reproducibility: Always
    Severity: Major

    Type: Teleportation, Wipes

    Summary: If you teleport to a known-to-you target on a different playfield that was wiped before, the teleport will fail catastrophically.

    Description: This has been around for *ages* on a lot of servers, but i finally found out that wipes cause the well know teleportation issues. Assuming you are on PF1 and there is a PF2 with a friendly, valid teleportation target of a POI that is known to you. You can teleport happily to it and back. When you now do a "wipe all PF2" (wait for the PF2 to unload, if you're on it) and you teleport from PF1 to the target destination in PF2 the client will go from the "Teleporting..."-screen to a "Loading..."-screen and endlessly stay there, rotating through all nice intro pictures. There is no way to quit the game any more, so you have to kill the client. Once you loaded up again and log in to where you were, there are two possible outcomes (so far in my tests): Sometimes you end up at the core of a random POI (mostly trapped, since only few POIs have free access to their core), if the core is underground, you end up underground too. Sometimes you end up at somewhere at the pole of the target planet at ~1000m altitude.
    Once you managed to be back at PF1, if you teleport to PF2 now, it works fine again.
    I reproduced this several times now on a live server and my local test server, a "wipe all" breaks this every time, i don't know if the other wipe types affect this too - according to tons of tickets like these in the past, i assume the "wipe deposit" causes this too.
    This is a major issue on servers, since when you do wipe your galaxy, most (if not all) player teleports will fail like this afterwards.

    Steps to Reproduce:
    1) Prerequisites: be in PF1 at a teleporter, have a valid and friendly teleport-target (from a POI) on PF2
    2) teleport to PF2 and back, just to make sure TP works.
    3) do a 'wipe all PF2' in the console
    4) wait till PF2 unloaded (wait 30 seconds)
    5) teleport to PF2
    6) you'll end up stuck in the loading screen - kill your game
    7) reconnect, log in and find yourself either stuck at the core of another POI or somewhere mid-air of a planet.

    Screenshots, Crash Logs, any other Relevant Information or Download links:
     
    #1
    Last edited: Jul 12, 2023
    Pear78, Ente, NotOats and 2 others like this.
  2. ravien_ff

    ravien_ff Rear Admiral

    Joined:
    Oct 22, 2017
    Messages:
    6,282
    Likes Received:
    11,939
    This also happens if the teleport target doesn't exist.
     
    #2
  3. Vollinger

    Vollinger Lieutenant

    Joined:
    Jan 16, 2022
    Messages:
    39
    Likes Received:
    71
    A few more information and observations regarding this bug:

    * discovered teleport locations seem to propagate for *all* players on a server? I had another player test this with me, once he discovered a friendly (Polaris) station with a teleporter in range, that target suddendly appeared in my teleport-targets too, even though i hadn't even been in that system (also not related via faction or anything). If this is intended, this looks a bit like a rather spoiler-ish thing - but it reduces the impact of this bug a bit, since people can "collaborate" on re-discovering wiped playfields.
    * it looks like only the first player to enter a freshly wiped playfield is affected, the second player can teleport to the previous teleport target without any problems. Sofollowing players are not affected by the wipe/TP-Bug.
    * on that endless-loading-screen it looks like the client is already in the playfield somehow, since i can hear the sounds from the chat. Also the playfield-server logs suggest that the player (me) is indeed at 0,0,0 of the playfield after the teleport, although i can't see it and have to kill my game.

    Here's the log of the playfieldserver on our server, where you can see the wipe command in the console, until the moment where i log off due to my client being in that endless-loading-screen-loop after trying to teleport to the wiped sector. Shortly after that the second player teleported there without any problems.

    Code:
    25-19:50:29.895 15_50 -LOG- [CON] Console command 'wipe 'IFSU II' all' from client CId=1, EId=29001, 76561198086927352//'Vollinger' executed
    25-19:50:31.396 15_50 -LOG- Thread 'DeleteImage11' ThreadId=3752 ManagedId=81
    25-19:50:31.404 15_50 -LOG- Loading playfield 'Elysium Sector'
    25-19:50:31.500 15_50 -LOG- Creating and spawning 19 structures took 0ms
    25-19:50:31.500 15_50 -LOG- Playfield 'Elysium Sector' with type 'space' and playfield seed 3568349 loaded (96 ms)
    25-19:50:36.558 15_50 -ERR- Entity of type 'SoldierHumanMaleAssaultRifle' has weapon 'AssaultRifle' which has range '170', which is bigger than the entity visibility distance '120'.This will will cause an invisible entity to be able to fire, please replace with weapon with smaller range.
    25-19:50:36.558 15_50 -ERR- Entity of type 'SoldierHumanMaleAssaultRifle' has weapon 'AssaultRifle' which has range '170', which is bigger than the entity visibility distance '120'.This will will cause an invisible entity to be able to fire, please replace with weapon with smaller range.
    25-19:50:36.572 15_50 -ERR- Entity of type 'SoldierHumanMale2AssaultRifle' has weapon 'PulseRifle' which has range '130', which is bigger than the entity visibility distance '120'.This will will cause an invisible entity to be able to fire, please replace with weapon with smaller range.
    25-19:50:38.396 15_50 -LOG- Thread 'DeleteImage12' ThreadId=4768 ManagedId=82
    25-19:50:38.396 15_50 -LOG- Loading playfield 'Akua Sector'
    25-19:50:38.503 15_50 -LOG- Creating and spawning 26 structures took 0ms
    25-19:50:38.503 15_50 -LOG- Playfield 'Akua Sector' with type 'space' and playfield seed 3568349 loaded (99 ms)
    25-19:50:38.595 15_50 -LOG- Disconnected player 76561198086927352/'Vollinger' - client 1
    25-19:50:38.595 15_50 -LOG- [CM] Player 76561198086927352/'Vollinger' logged off
    25-19:50:38.595 15_50 -LOG- [CM] Player CId=1, EId=29001, 76561198086927352//'Vollinger' disconnected
    25-19:50:38.648 15_50 -LOG- Connected player 76561198086927352/'Vollinger' as client 1 to playfield 'Akua Sector' on pos (0.00, 0.00, 0.00)
    25-19:50:42.445 15_50 -WRN- Sequence number mismatch: rec=2040, exp=1, cl=Vollinger, ch=0, p=WorldLoadAnswer, lp=Undefined
    25-19:50:42.697 15_50 -LOG- Player spawning: id=29001 name='Vollinger' pos=(0.00, 0.00, 0.00) ctrl=-1
    25-19:50:43.546 15_50 -ERR- Entity of type 'SoldierHumanMaleAssaultRifle' has weapon 'AssaultRifle' which has range '170', which is bigger than the entity visibility distance '120'.This will will cause an invisible entity to be able to fire, please replace with weapon with smaller range.
    25-19:50:43.546 15_50 -ERR- Entity of type 'SoldierHumanMaleAssaultRifle' has weapon 'AssaultRifle' which has range '170', which is bigger than the entity visibility distance '120'.This will will cause an invisible entity to be able to fire, please replace with weapon with smaller range.
    25-19:50:43.561 15_50 -ERR- Entity of type 'SoldierHumanMaleAssaultRifle' has weapon 'AssaultRifle' which has range '170', which is bigger than the entity visibility distance '120'.This will will cause an invisible entity to be able to fire, please replace with weapon with smaller range.
    25-19:50:59.947 15_50 -LOG- Saving playfield 'IFSU II'
    25-19:50:59.987 15_50 -LOG- Saving done (44 ms)
    25-19:50:59.987 15_50 -LOG- Unloading playfield 'IFSU II'
    25-19:51:00.016 15_51 -LOG- Unloading playfield done (29ms)
    25-19:51:00.016 15_51 -LOG- Cleanup playfield (empty)
    25-19:51:00.096 15_51 -LOG- Cleanup done (75 ms)
    25-19:51:03.802 15_51 -LOG- INFO: Uptime=00h31m mem=2253MB fps=18.9 playfield=Elysium Sector plys=1 mobs=28/162 structs=2 devices=1343 chunks=195 pf-index=0 ticks=1426240
    25-19:51:03.802 15_51 -LOG- INFO: Uptime=00h31m mem=2253MB fps=18.9 playfield=Akua Sector plys=1 mobs=15/162 structs=2 devices=1343 chunks=195 pf-index=1 ticks=1426240
    25-19:51:26.303 15_51 -LOG- [CON] Console command 'gm ic' from client CId=1, EId=29001, 76561198086927352//'Vollinger' executed
    25-19:51:31.003 15_51 -LOG- [CON] Console command 'playfields' from client CId=1, EId=29001, 76561198086927352//'Vollinger' executed
    25-19:51:44.659 15_51 -LOG- Thread 'DeleteImage13' ThreadId=6228 ManagedId=83
    25-19:51:44.659 15_51 -LOG- Loading playfield 'IFSU II'
    25-19:51:44.659 15_51 -LOG- Wiping full playfield folder C:\Servers\Empyrion\PlayfieldServer/../Saves/Games/AnvilS7/Playfields/IFSU II
    25-19:51:44.707 15_51 -LOG- RandomPlacer: StartBiome center: 0, 0, planet size class: 2
    25-19:51:44.759 15_51 -LOG- Create '', 30490 took 13ms, spawn took 0ms. Total: 13ms
    25-19:51:44.773 15_51 -LOG- Request for new id range sent to dedicated. Still free are 499
    25-19:51:44.776 15_51 -LOG- Creating and spawning 37 structures took 23ms
    25-19:51:44.776 15_51 -LOG- Playfield 'IFSU II' with type 'space' and playfield seed 3568349 loaded (119 ms)
    25-19:51:44.803 15_51 -LOG- New id range start=32001, count=1000
    25-19:51:44.853 15_51 -LOG- Disconnected player 76561198086927352/'Vollinger' - client 1
    25-19:51:44.853 15_51 -LOG- [CM] Player 76561198086927352/'Vollinger' logged off
    25-19:51:44.853 15_51 -LOG- [CM] Player CId=1, EId=29001, 76561198086927352//'Vollinger' disconnected
    25-19:51:44.903 15_51 -LOG- Connected player 76561198086927352/'Vollinger' as client 1 to playfield 'IFSU II' on pos (0.00, 0.00, 0.00)
    25-19:51:46.751 15_51 -WRN- Sequence number mismatch: rec=2065, exp=1, cl=Vollinger, ch=0, p=WorldLoadAnswer, lp=Undefined
    25-19:51:46.953 15_51 -LOG- Player spawning: id=29001 name='Vollinger' pos=(0.00, 0.00, 0.00) ctrl=-1
     
    #3
    ravien_ff and Pear78 like this.
  4. Pantera

    Pantera Administrator Staff Member

    • Developer
    • Moderator
    Joined:
    Aug 15, 2016
    Messages:
    3,238
    Likes Received:
    5,676
    A fix for this will be available in a future release.
     
    #4
    Vollinger and ravien_ff like this.
  5. Pantera

    Pantera Administrator Staff Member

    • Developer
    • Moderator
    Joined:
    Aug 15, 2016
    Messages:
    3,238
    Likes Received:
    5,676
    A fix for this is now available on our Experimental branch (available through steam).
     
    #5

Share This Page