Tweenz-LateLanding icon

LateLanding

Join a lobby any time, even while the ship is landed on a moon. Late joiners land with the crew and players already in the round are left untouched.

By Tweenz
Last updated 10 hours ago
Total downloads 118
Total rating 0 
Categories Tweaks & Quality Of Life Mods Performance AI Generated
Dependency string Tweenz-LateLanding-1.0.1
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

Late Landing

Friends can join your lobby at any time, even while the ship is landed on a moon, and play straight away.

What it does

  • Join any time. The lobby stays open in orbit between days and while the ship is landed (one joiner at a time, while there's a free slot). The invite button keeps working.
  • Land late, play now. Someone who joins while the ship is down appears in the ship. After a short wait (their loading screen, then about 10 seconds while their game catches up) they're let out onto the same moon as everyone else: the same facility, scrap, doors, power, traps, monsters, time, weather, and who's dead.
  • Nobody else is disturbed. In vanilla a player joining resets everyone's clock, weather and ship monitor, and miscounts who's alive. With Late Landing, players already in the round notice nothing except a pop-up: "name joined and landed with the crew".
  • Never a different moon. If a late joiner's facility can't be made to match the host's, they don't play on a different one: they wait safely in the ship and join the crew when it takes off.
  • Quota, credits, unlocks and the save work exactly as in vanilla.

Who needs it

Everyone in the lobby, host and every player. The host decides who may join and sends the round to the late joiner, and every player's game needs the fix that keeps their round untouched when someone joins.

Config

BepInEx/config/aj.LateLanding.cfg (only the host's setting counts):

Setting Default What it does
Join while landed true Let players join while the ship is down on a moon. Off: joining is still allowed in orbit between days, like before the first landing.

Other mods

  • Don't use it with another late-join mod (LateCompany and the like): two mods deciding who may join will clash. Late Landing writes a warning in the log naming any mod that changes the same thing.
  • Modded interiors, moons, monsters and items work without Late Landing knowing about them: the one-time set-up messages other mods send while the moon is set up or as their things spawn are kept by the host and played back for the late joiner. Tested in a 60-mod pack with LethalLevelLoader interiors and several creature mods.
  • Modded monsters get the basics caught up (position, facing, health, death, what they're doing). Mod authors who keep anything else a late joiner should know can add two methods to their EnemyAI class; Late Landing finds them by name, so no reference is needed:
    • byte[] LateLandingDescribe() runs on the host and returns whatever you need to send.
    • void LateLandingCatchUp(byte[] data) runs on the late joiner with that data.

Known limits

  • One late joiner at a time; the next one can join as soon as the first is in.
  • Not caught up yet: repaired steam valves, an item dropship already on its way, and the Company Cruiser. A few monster details are cosmetic only and can look slightly different to the late joiner for a moment (for example a stunned Giant Sapsucker's pose or an Old Bird's torso aim).
  • Tested in LAN games (vanilla and a big modpack, factory and manor interiors). Steam lobbies use the same code but haven't had as much testing yet.

Credits

Design and testing by the author. AI tools were used in making this mod: the code and the icon were AI-assisted.