Players observing earlier in the round should have larva priority

Observing after players who observed before you currently gives you priority over them in the larva queue. If I observe at roundstart intending to play xeno, I should have a higher priority than those who join later in the round. Its pretty bizarre being placed first in the queue at round start and then getting shuffled all the way to the back as other players observe later even though they haven’t been waiting as long.


I agree,

At one time in a round I was 7th in the queue, then I was 8th, then I was 6th and then I was 9th. Then back to 7.

Do gotta say, that people observing the longest should get larva priority.

I thought this was how it was supposed to work already.

You should already have priority over people who haven’t been observing as long as you. If it’s not working like that then I’m pretty sure there’s some kind of bug.
Moving backwards in the queue can happen because someone who has been observing longer than you enters the queue such as by enabling xeno spawn when they had it disabled earlier, or by dying as lesser drone/hugger and getting put back in the queue, or by rejoining after they disconnected, that kind of thing.

You are mistaken. That is not how it works. Everyone is assigned a time of death set to world.time when they join the server. You are only behind those who connected faster than you as far as a round start observer. You won’t be a potential larva candidate though unless your special preferences allow you to be a xeno.

The original implemention prioritized those who haven’t been in the round at all (meaning a late join observer would be prioritized over a xeno who was in the round but died 20 minutes ago) but that’s no longer the case and hasn’t been the case for a while.

When you join the server the first time for that round, you are assigned a time of death (persists if you disconnect - only reset for next round). When you die (exceptions are in an admin z-level like tdome, facehugger, or lesser drone) you are assigned a time of death. Again it’s saved the same way where it’ll persist until the end of round regardless of if you disconnect and come back.

The number listed as your queue number is just last checked that’s the index you were at. If someone with a time of death lower than yours rejoins or changes their preference to be a xeno so now they’re a candidate, well they are ahead of you when they weren’t previously.

The numbers in queue aren’t strict. It’s just in that moment that’s the ordering of who could have been a larva.

So joining the server assigns you a time of death, not observing the round with your preferences enabled?

Joining the server for the first time that round, or dying as a mob that’s not in the thunderdome and isn’t a facehugger or lesser drone are when time of death is recorded. Observing the round from lobby doesn’t touch it (you only have the time of death when you joined). And your special preference to be a xeno is what allows you to be a candidate.

Every time the core ticks or a larva pops, every ghost that can be a larva candidate is sorted by time of death, and then is offered/given to the person with the oldest time of death.

Then all the messages of your last queue update are updated with where you were in that last sorting.