Switching species upon extinction shows extinct species as non-extinct on Clade Diagram (0.8.2.1)

When I was playing with the switching species upon extinction feature, I noticed something odd on the Clade Diagram. Despite the species I was previously playing as have gone extinct, and I switched species eight times, the Clade Diagram shows that those species I switched to and played as are still alive. You can tell from the fact that the Clade Diagram still shows cyan lines that keep on going for those species as the timeline keeps going, rather than those species having red lines that end with a node and red name text for extinct species. Since the previous species I played as are extinct, those species should have red lines that end with nodes and red name text.

I loaded my save in both OpenGL Mode and Vulkan-capable Mode to make sure that the bug was not something that only existed in one launcher (visual?) mode. I took subsequent pictures in both OpenGL Mode and Vulkan-capable mode in case there were differences (I accidentally zoomed in too much for the OpenGL Mode picture), and pasted the game logs for each launcher mode in case they are useful.

OpenGL Mode log

Godot Engine v4.4.1.stable.mono.official.49a5bc7b6 - https://godotengine.org
OpenGL API 3.3.0 NVIDIA 576.52 - Compatibility - Using Device: NVIDIA - NVIDIA GeForce 840M

WARNING: 2D MSAA is not yet supported for GLES3.
at: render_target_set_msaa (drivers/gles3/storage/texture_storage.cpp:2692)
This is Thrive version: 0.8.2.1 (see below for more build info)
Thrive is starting at: Thursday, June 5, 2025 8:11:49 PM (log file name may say something else but this is the correct time)
TODO: reimplement unhandled exception handler: Options for dealing with unhandled C# exceptions present in Godot 3 are missing in Godot 4 · Issue #73515 · godotengine/godot · GitHub
Startup C# locale is: en-US Godot locale is: en_US
user:// directory is: C:/Users/~/AppData/Roaming/Thrive
Game logs are written to: C:/Users/
~/AppData/Roaming/Thrive\logs latest log is ‘log.txt’
Checked that required CPU features are present
Loaded native Thrive library version 19
Doing delayed apply for some settings
Set audio output device to: Default
Set C# locale to: en-US Godot locale is: en
Starting load of Thrive GDExtension
Thrive GDExtension initialized successfully
Thrive extension load succeeded, version: 6
No SteamClient class found, not initializing Steam
SimulationParameters are good
Disk caching is disabled
This version of Thrive was built at Wednesday, 14 May 2025 12:44:07 from commit 998d80f181c6869aad47fda4f65b390709d544fb on branch master
Beginning Thrive news feed fetch
TaskExecutor started with parallel job count: 2
Error in feed fetching or processing: System.AggregateException: One or more errors occurred. (No such host is known. (thrivefeeds.b-cdn.net:80))
—> System.Net.Http.HttpRequestException: No such host is known. (thrivefeeds.b-cdn.net:80)
—> System.Net.Sockets.SocketException (11001): No such host is known.
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
— End of inner exception stack trace —
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.InjectNewHttp11ConnectionAsync(QueueItem queueItem)
at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
— End of inner exception stack trace —
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait(TimeSpan timeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait(TimeSpan timeout)
at ThriveNewsFeed.FetchFeed() in /home/hhyyrylainen/Projects/Thrive/src/general/ThriveNewsFeed.cs:line 48
Fetching Thrive news feed failed due to: One or more errors occurred. (No such host is known. (thrivefeeds.b-cdn.net:80))
We were opened through the Thrive Launcher
Thrive Launcher started us, launcher hidden: False
Skipping clearing an UI input action: ui_text_backspace_all_to_left
Jukebox now playing from: Menu
Disk cache is disabled, will delete it if it exists
Deleting entire on-disk cache
Jukebox: starting track: res://assets/sounds/main-menu-theme-1.ogg position: 0
Startup successful, removing startup info file
The following is not an error, but is printed as an error to ensure launcher always sees it without buffering:
------------ Thrive Startup Succeeded ------------
Detected launch ID from parameters: 06a141ab-d1dd-425a-abd6-8e4a67efd979
Starting load of save: Repeated Self-Destruct Switching Patch Gllitch ZeroPointEightPointTbelgiumointOne.thrivesave
Falling back to cube shadows for light quality due to used renderer
World generation settings: [LAWK: False, Difficulty: custom: MP multiplier: 0.2, AI mutation multiplier: 3, Compound density: 2, Player death population penalty: 1, Glucose decay: 0.95, Osmoregulation multiplier: 0.2, auto-evo strength: 1, AI dying strength: 1, Free glucose cloud: True, Switch on Extinction: True, Limit Growth Rate: True, Fog Of War Mode: Ignored, Organelle Unlocks Enabled: False, Life origin: Pond, Seed: 1099841185580908287, Size: Medium, Day/night cycle enabled: True, Day length: 180, Include multicellular: True, Easter eggs: True]
Jukebox now playing from: MicrobeStage
Applying patch (Juralatic Ice Shelf) settings
Number of clouds in this patch = 9
Registering new spawner: Name: Ammonia density: 1.1999999
Registering new spawner: Name: Glucose density: 0.64551896
Registering new spawner: Name: Phosphates density: 1.1999999
Hydrogensulfide spawn density is 0. It won’t spawn
Oxygen spawn density is 0. It won’t spawn
Carbondioxide spawn density is 0. It won’t spawn
Nitrogen spawn density is 0. It won’t spawn
Sunlight spawn density is 0. It won’t spawn
Temperature spawn density is 0. It won’t spawn
Number of chunks in this patch = 8
Registering new spawner: Name: FLOATING_HAZARD density: 0.049999997
Registering new spawner: Name: ICESHARD density: 0.59999996
Registering new spawner: Name: ICE_CHUNK_SMALL density: 0.90000004
Registering new spawner: Name: ICE_CHUNK_BIG density: 0.5
Registering new spawner: Name: SNOWFLAKE density: 0.02
Registering new spawner: Name: SMALL_IRON_CHUNK density: 0.4905502
Registering new spawner: Name: BIG_IRON_CHUNK density: 0.10511791
Registering new spawner: Name: GOOGLY_EYE_CELL density: 0.002
Number of species in this patch = 4
Registering new spawner: Name: 222 density: 0.20881855
Registering new spawner: Name: 227 density: 0.18648015
Registering new spawner: Name: 110 density: 0.17299187
Prasiula myubguar population <= 0. Skipping Cell Spawn in patch.
load finished, success: True message: Load finished elapsed: 00:00:35.0438761
We are not playing a newer Thrive version than last played, not updating latest
Starting preload of 46 stage resources
Jukebox: starting track: res://assets/sounds/microbe-theme-10.ogg position: 0
Jukebox: starting track: res://assets/sounds/soundeffects/microbe-ambience-3.ogg position: 0
Stage load finished, will enter properly now
Jukebox: starting track: res://assets/sounds/microbe-theme-10.ogg position: 0
Jukebox: starting track: res://assets/sounds/microbe-theme-5.ogg position: 0
Jukebox: starting track: res://assets/sounds/soundeffects/ice-groans-ambience.ogg position: 0
Force clearing remaining pause locks: HUDWithPausing

Vulkan Capable GPU Mode log

Godot Engine v4.4.1.stable.mono.official.49a5bc7b6 - https://godotengine.org
Vulkan 1.4.303 - Forward+ - Using Device #0: NVIDIA - NVIDIA GeForce 840M

This is Thrive version: 0.8.2.1 (see below for more build info)
Thrive is starting at: Thursday, June 5, 2025 8:28:32 PM (log file name may say something else but this is the correct time)
TODO: reimplement unhandled exception handler: Options for dealing with unhandled C# exceptions present in Godot 3 are missing in Godot 4 · Issue #73515 · godotengine/godot · GitHub
Startup C# locale is: en-US Godot locale is: en_US
user:// directory is: C:/Users/~/AppData/Roaming/Thrive
Game logs are written to: C:/Users/
~/AppData/Roaming/Thrive\logs latest log is ‘log.txt’
Checked that required CPU features are present
Loaded native Thrive library version 19
Doing delayed apply for some settings
Set audio output device to: Default
Set C# locale to: en-US Godot locale is: en
Starting load of Thrive GDExtension
Thrive GDExtension initialized successfully
Thrive extension load succeeded, version: 6
No SteamClient class found, not initializing Steam
SimulationParameters are good
Disk caching is disabled
This version of Thrive was built at Wednesday, 14 May 2025 12:44:07 from commit 998d80f181c6869aad47fda4f65b390709d544fb on branch master
Beginning Thrive news feed fetch
TaskExecutor started with parallel job count: 2
Error in feed fetching or processing: System.AggregateException: One or more errors occurred. (No such host is known. (thrivefeeds.b-cdn.net:80))
—> System.Net.Http.HttpRequestException: No such host is known. (thrivefeeds.b-cdn.net:80)
—> System.Net.Sockets.SocketException (11001): No such host is known.
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
at System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
— End of inner exception stack trace —
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.InjectNewHttp11ConnectionAsync(QueueItem queueItem)
at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
— End of inner exception stack trace —
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait(TimeSpan timeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait(TimeSpan timeout)
at ThriveNewsFeed.FetchFeed() in /home/hhyyrylainen/Projects/Thrive/src/general/ThriveNewsFeed.cs:line 48
Fetching Thrive news feed failed due to: One or more errors occurred. (No such host is known. (thrivefeeds.b-cdn.net:80))
We were opened through the Thrive Launcher
Thrive Launcher started us, launcher hidden: False
Skipping clearing an UI input action: ui_text_backspace_all_to_left
Jukebox now playing from: Menu
Disk cache is disabled, will delete it if it exists
Deleting entire on-disk cache
Jukebox: starting track: res://assets/sounds/main-menu-theme-1.ogg position: 0
Startup successful, removing startup info file
The following is not an error, but is printed as an error to ensure launcher always sees it without buffering:
------------ Thrive Startup Succeeded ------------
Detected launch ID from parameters: 7c9d545f-37de-4c79-91db-c579d74d4c98
Starting load of save: Repeated Self-Destruct Switching Patch Gllitch ZeroPointEightPointTbelgiumointOne.thrivesave
World generation settings: [LAWK: False, Difficulty: custom: MP multiplier: 0.2, AI mutation multiplier: 3, Compound density: 2, Player death population penalty: 1, Glucose decay: 0.95, Osmoregulation multiplier: 0.2, auto-evo strength: 1, AI dying strength: 1, Free glucose cloud: True, Switch on Extinction: True, Limit Growth Rate: True, Fog Of War Mode: Ignored, Organelle Unlocks Enabled: False, Life origin: Pond, Seed: 1099841185580908287, Size: Medium, Day/night cycle enabled: True, Day length: 180, Include multicellular: True, Easter eggs: True]
Jukebox now playing from: MicrobeStage
Applying patch (Juralatic Ice Shelf) settings
Number of clouds in this patch = 9
Registering new spawner: Name: Ammonia density: 1.1999999
Registering new spawner: Name: Glucose density: 0.64551896
Registering new spawner: Name: Phosphates density: 1.1999999
Hydrogensulfide spawn density is 0. It won’t spawn
Oxygen spawn density is 0. It won’t spawn
Carbondioxide spawn density is 0. It won’t spawn
Nitrogen spawn density is 0. It won’t spawn
Sunlight spawn density is 0. It won’t spawn
Temperature spawn density is 0. It won’t spawn
Number of chunks in this patch = 8
Registering new spawner: Name: FLOATING_HAZARD density: 0.049999997
Registering new spawner: Name: ICESHARD density: 0.59999996
Registering new spawner: Name: ICE_CHUNK_SMALL density: 0.90000004
Registering new spawner: Name: ICE_CHUNK_BIG density: 0.5
Registering new spawner: Name: SNOWFLAKE density: 0.02
Registering new spawner: Name: SMALL_IRON_CHUNK density: 0.4905502
Registering new spawner: Name: BIG_IRON_CHUNK density: 0.10511791
Registering new spawner: Name: GOOGLY_EYE_CELL density: 0.002
Number of species in this patch = 4
Registering new spawner: Name: 222 density: 0.20881855
Registering new spawner: Name: 227 density: 0.18648015
Registering new spawner: Name: 110 density: 0.17299187
Prasiula myubguar population <= 0. Skipping Cell Spawn in patch.
load finished, success: True message: Load finished elapsed: 00:00:29.7012541
We are not playing a newer Thrive version than last played, not updating latest
Starting preload of 46 stage resources
Jukebox: starting track: res://assets/sounds/microbe-theme-7.ogg position: 0
Jukebox: starting track: res://assets/sounds/soundeffects/microbe-ambience.ogg position: 0
Stage load finished, will enter properly now
Force clearing remaining pause locks: HUDWithPausing

3 Likes

Were they possibly extinct only in those patches? Are you sure they did not spread and survive somewhere else?

2 Likes

Patch extinction and worldwide extinction are different enough in game that I doubt the game would mistake the former for the later (since iirc the switching only happens with full extinctions).

2 Likes

aah31415 is correct that switching species only happens when a species is extinct in all patches. When I switched to a new species, I first made sure to survive the turn with that species. During the next turn, I would check if another species had split off from the one I am playing with, as the game does not allow switching to the next common species if no species had split off from you current playable species. Then, I self-destruct repeatedly until I go extinct to switch to the next species. Repeat the process all over again.

2 Likes

Did you actually encounter the pseudo-extincts or were they only in the editor and tree of life view?

2 Likes

I never encountered the organisms I played as after making them extinct. They are only found in the Clade Diagram thereafter.

2 Likes

I’d think the issue then lies with how the cladogram handles extincts from which the player switched to a new species…

2 Likes

I hope this isn’t a difficult bug to fix for the Thrive Devs.

1 Like

Considering species switching is a feature made mostly for the easy difficulty, which alongside hard difficulty is used much less than normal difficulty per the polls made sometime ago, I would not be surprised if the bug lived for a rather long time…

1 Like

I’m back from my vacation now so I’ve re-read this report. And I think the problem is probably that there is no final “extinct” entry inserted into the evolutionary history. So it’s probable that this could be fixed by having the species change code insert a “dead” final history entry for a species that the player switched away from.

I’ve opened an issue:

This is probably very hard to fix, the person who made the evolutionary tree is no longer active and only very minor changes to the tree have been made since then. Or maybe I’m right in my analysis despite not knowing in-depth how the evolutionary tree is generated, in which case this is relatively simple to solve, but until someone tries to fix this we won’t know how hard it is.

We have a really massive backlog of issues so I don’t think this kind of minor bug has any chance of being solved for many, many years. Especially as the species swap feature has been in the game for quite a while and this is the first time anyone has noticed this and reported it. Thanks for the detailed report in any case.

3 Likes