FTB Skies 2: Aero Companion

Small mod that provides some helper tools to FTB Skies 2 Aero

File Details

FTB Skies 2: Aero Companion Neoforge 21.1.36

  • R
  • Jul 16, 2026
  • 437.84 KB
  • 18.4K
  • 1.21.1
  • NeoForge

File Name

ftb-skies-2-aero-companion-21.1.36.jar

Supported Versions

  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:ftb-skies-2-aero-companion-1611134:8444105"

Learn more about Curse Maven

Fixed

  • Functional Storage drawers on an assembled airship once again accept items instead of opening their configuration GUI. FS's Drawer.useItemOn discards the BlockHitResult it was handed and re-derives the clicked slot via getHit, which re-raytraces from the player (RayTraceUtils.rayTraceSimple(level, player, 32, 0)); that misses on a sub-level and returns -1, and onSlotActivated(..., -1) opens the config screen. DrawerSlotSubLevelMixin already recomputed the slot from the real hit, but gated it on Sable.HELPER.getContaining(player), which resolves through SubLevelContainer.getPlot(chunkX, chunkZ) and therefore only answers "is the player physically inside a sub-level's plot region" — not "is the player standing on a ship". The guard now also accepts getTrackingOrVehicleSubLevel(player), covering players standing on a deck or riding a seat/console.
  • Create Redstone Links (and the Aeroworks console/steering wheel that transmits over them) no longer silently fail to register on airship sub-levels, which left a steering wheel turning with the ship unresponsive until a reload. Create keys its link networks by Level instance in RedstoneLinkNetworkHandler.connections, populated from the LevelEvent.Load hook; for any level not yet in that map, networksIn logged "Tried to Access unprepared network space" and returned a throwaway HashMap, so every addToNetwork on it was discarded. Sable sub-levels are created during assembly and their block entities begin ticking immediately, so a console whose first tick beat the sub-level's Load event registered into that discarded map — and because ConsoleBlockEntity.initialize() is first-tick-only and latches networkRegistered = true regardless of outcome, it never retried. RedstoneLinkSubLevelNetworkMixin makes networksIn lazily create and store the map for an unprepared level instead of discarding it, and makes onLoadWorld skip levels that already have live networks rather than clobbering them. Both sides (the console transmitter and Create's LinkBehaviour receivers) share the same first-tick-only registration, so fixing the handler heals both.

Support

If you have any issues with this mod, please report them on our Issue Tracker