Skip to content

Feature defaults

Most of what follows is a switch in hyperspace.xml, shipped inside Hyperspace.ftl. The values quoted are what Mod Files/data/hyperspace.xml sets, so a plain install behaves this way until a mod says otherwise. The More Info button is the only thing that overrides the file, and the last tables cover what the file does not decide at all.

This page covers every switch the parser reads and the shipped file defines. Content blocks that describe ships, crew, events, augments, drones, rewards, sectors, stores and the like are out of scope. Read hyperspace.xml for those.

It is possible to manually modify hyperspace.xml by unpacking Hyperspace.ftl (it’s just a ZIP) and editing the file.

Rows are written tag.attribute, so advancedCrewTooltips.ally is the ally attribute of <advancedCrewTooltips>. Values are the literal ones in the file.

AttributeWhat it setsDefault
seeds.enabledStarts a run on a chosen seed, so two players can race the same maptrue
seeds.allowUnlocksWhether unlocks count during a seeded runfalse
seeds.allowAchievementsWhether achievements count during a seeded runfalse
seeds.allowMetaVarsWhether metavariable changes stick during a seeded runfalse
hullNumbers.enabledPrints exact hull point counts for your ship, the enemy and the flagshiptrue
hullBars.typeHull bar style: 0 vanilla, 1 stacking bars, 2 bars capped at maxHull and shrinking proportionally0
hullBars.maxHullHull points the bar draws before it caps22
hullBars.maxHullBossSame, for ships with a boss box22
alternateCrewMovement.enabledSends crew to the exact tile you clicked. Crew already standing there step aside if the room has spacefalse
rightClickDoorOpening.enabledRight-clicking a door opens it. Set it off and doors are left-click only. It interacts with the row above: tile movement only runs when no door is selectedtrue
droneSelectHotkeys.enabledCrew number hotkeys also select controllable crew dronesfalse
droneSaveStations.enabledControllable crew drones save and return to stations with the rest of the crewfalse
disableLazyImageLoading.enabledGoes back to preloading every image at launch. Left off, images load when they are needed, which cuts loading time to almost nothing and uses about a quarter of the RAMfalse

More Info is a button in the ship status UI during a run. Press it at any time to switch these attributes between the two states below.

The button is on when the game starts, every time, and nothing remembers your last choice. If you prefer it off, you press it again each session.

AttributeWhat it setsXMLMore Info offMore Info on
advancedCrewTooltips.allyLists powers when hovering crew you ownfalsefalsetrue
advancedCrewTooltips.enemyLists powers when hovering enemy crewfalsefalsetrue
advancedCrewTooltips.roundingDecimal places on crew health222 *
redesignedWeaponTooltips.enabledLists hull, system and crew damage separatelyfalsefalsetrue
redesignedDroneTooltips.enabledAdds weapon stats to space drone tooltipsfalsefalsetrue
redesignedAugmentTooltips.enabledAdds the scrap cost to augment tooltipsfalsefalsetrue
showNumericalWeaponCooldown.enabledPrints the remaining cooldown as a number above each weapon boxfalsefalsetrue
showReactor.enabledShows maximum reactor power in the hangarfalsefalsetrue
showAllConnections.enabledDraws every beacon connection on the sector mapfalsefalsetrue **
alternateOxygenRendering.enabledAlternate colour scheme for oxygen levels, with an optional <gradient> child. Not a tooltip, and the one thing the button switches off rather than onfalsefalsefalse

The button does not turn these features on and off. It picks where their values come from:

  • On: ignore the XML and apply the button’s own values. That is true for everything above except alternateOxygenRendering, which it sets to false.
  • Off: use the XML values.

Since it starts on, a fresh session ignores your XML for these attributes. That gives one rule:

In the XMLButton onButton off
trueonon
falseonoff

true always applies. false applies only with the button off, so <redesignedWeaponTooltips enabled="false"/> looks like it does nothing: every run starts with the button on, and the reworked tooltips appear anyway. Press More Info off and it takes effect.

A mod can switch these on permanently. It cannot switch them off. alternateOxygenRendering runs the other way, since the button forces it false: a mod can switch that one off permanently but not on.

* advancedCrewTooltips.rounding is a number rather than a switch. The button raises it to 2 only when the XML says 0 or 1, and leaves any other value alone:

In the XMLButton onButton off
020
121
222
333

The shipped value is 2, which is why all three columns match in the table above.

** Unless splitAllNodeView is on: then this toggle moves to its own button on the sector map and More Info has no effect on it.

The value in hyperspace.xml is what runs, whichever way More Info is set.

AttributeWhat it setsDefault
advancedCrewTooltips.enabledHovering a crew member shows name and species, exact health as x/y (z%), the clone bay death timer and remaining stun timetrue
insertNewlineForMultipleCrewTooltips.enabledPuts a blank line between crew descriptions when several crew are fighting on one tilefalse
extraShipInfo.missileCountMissile count for the selected ship in the hangarfalse
extraShipInfo.droneCountDrone count for the selected ship in the hangarfalse
extraShipInfo.crewLimitCrew limit for the selected ship in the hangarfalse
showDummyEquipmentSlots.enabledDraws faded weapon and drone slots under SYSTEM NOT INSTALLED, so you can count them before buying the systemfalse
showDummyEquipmentSlots.opacityHow faint those slots are drawn0.2
showScrapCollectorScrap.enabledShows scrap rewards with the scrap recovery arm bonus already appliedfalse

extraShipInfo has no enabled of its own, so its three readouts are switched one by one.

advancedCrewTooltips.enabled is the one XML false the button cannot override. Set it off and ally, enemy and rounding are not even parsed, and the tooltip is skipped before the button’s values are ever consulted. The power list itself is not part of it: that comes from ally and enemy, so with the button off a plain install shows no powers on any crew.

AttributeWhat it fixesDefault
hackingDroneFix.enabledDestroys the hacking drone if hacking is depowered while the drone is still in flight, closing the power-depower trick that slipped it past defence drones. A drone that has already attached is unaffectedtrue
repairDroneRecoveryFix.enabledRemoves an active repair drone on jump, so you cannot take the repair and keep the parts with the recovery armtrue
crystalShardFix.enabledCounts crystal shards as player projectiles, so friendly defence drones stop shooting them downtrue
defenseDroneFix.enabledBases defence drone firing range on the ship layout and shield ellipse, which removes the blind spot. Range is unlimited against enemy combat dronestrue
hackingIonFix.enabledApplies the normal 20 second lock when hacking is ionised, closing the 5 second self-ionisation trickfalse
droneIonDodgeFix.enabledLets enemy ion projectiles stun and destroy unpowered dronesfalse
controllableIonDroneFix.enabledPuts a player-controlled ion drone’s ion blast on a timer, so it does not fire the moment you order the drone to move. Only bites once a mod has made boarding drones controllablefalse
controllableIonDroneFix.ionDelaySeconds on the ion blast timer6
controllableIonDroneFix.ionDelayInitialSeconds on the timer when the drone launches6
playerHpColorFix.enabledColours the player HP bar by thirds of max hullfalse
enemyPreigniterFix.enabledLets enemy ships use the weapon pre-igniter augmentfalse
artilleryGibMountFix.enabledStops artillery with linked gibs vanishing when a ship explodesfalse
warningLightPositionFix.enabledMoves fire and breach warning lights off doors and walls, into the roomfalse
hideHullDuringExplosion.enabledStops the hull image drawing over the gibs during a ship explosionfalse
cloakRenderFix.enabledFixes cloaked player ship rendering when nobody is aboardfalse
multiShipFix.enabledAllows more than one ship to be loaded per beaconfalse
teleporterHackFix.enabledMakes teleporter hacks land regardless of how enemy crew are spread across their ship, and with a cloak activefalse
energyBypassTeleportRecall.enabledStops enemy ships ignoring their own energy shield bypass when they evacuate crew by teleporterfalse
AttributeWhat it setsDefault
preIgniteChargers.enabledCharger weapons gain all their charges when pre-ignited instead of onetrue
resistsMindControlStat.enabledMakes resistsMindControl a crew stat separate from isTelepathictrue
oxygenWithoutSystem.enabledLets oxygen work on a ship with no oxygen systemfalse
shieldWithoutSystem.enabledLets supershields work with no shield system in the blueprintfalse
dualMedical.enabledMedbay and clonebay stop being mutually exclusive, so a ship can carry bothfalse
targetableArtillery.enabledManual artillery control for every ship. Leave it off and give a ship the ARTILLERY_ORDER augment to enable it one ship at a timefalse
targetableArtillery.xOffsetHorizontal offset of the artillery button0
targetableArtillery.yOffsetVertical offset of the artillery button0
targetableArtillery.fixedYPosPins the button’s vertical position instead of stacking it under the power boxes and system iconsfalse
scaleSlugGel.enabledSlug repair gel speed scales with the augment value. The vanilla SLUG_GEL value is 0.25false
multipleOverCapacity.enabledThe over-capacity box holds several items and you choose which to keepfalse
infinite.enabledThe game’s built-in infinite modefalse
forceDlc.enabledStops Advanced Edition being toggled offfalse
disableDefaultTutorial.enabledStops the vanilla tutorial progressing, so a Lua tutorial can replace itfalse
AttributeWhat it setsDefault
altCreditSystem.enabledUses the XML credits rather than the hardcoded vanilla ones, and fixes the empty crew section on auto shipstrue
dismissSound.enabledPlays a sound when crew are dismissedtrue
dismissSound.soundWhich sound that isairLoss
console.enabledThe in-game command consoletrue
console.invertCapsSwaps the case of everything you type into the console, so lower case keys enter upper case commandstrue
titleScreen.enabledCustom title screen background, logo and splash imagestrue
titleScreen.logo_xHorizontal position of the FTL logo862
titleScreen.logo_yVertical position of the FTL logo7
customChoiceColors.enabledReplaces the vanilla event choice text colours, each colour set as an r/g/b/a child tagtrue
customTextStyle.enabledInline [style[color:RRGGBB]] markup inside text stringsfalse
customTabs.enabledExtra tabbed windows driven by Lua, with their own background and optional undo buttonfalse
splitAllNodeView.enabledGives the all-connections view its own button on the sector map, instead of following More Infofalse
showShipAchievements.enabledShows ship achievements in the hangar for custom ships instead of custom victoriestrue
showShipAchievements.toggleLets the player switch between ship achievements and victoriesfalse
showShipAchievements.hideIfMissingHides the section for ships that have no achievementsfalse
showShipAchievements.idText id for the section headinghangar_achievements_title_default
altLockedMiniships.enabledLocked miniships prefer the image with the _base suffixfalse
renameShipInRun.enabledLets you rename your ship during a runfalse
renameShipInRun.allowButtontrue puts renaming behind a button in the upgrade menu, false puts it on the ship name itselffalse
allowRenameInputSpecialCharacters.enabledAllows special characters in ship and crew name inputfalse
systemNoPurchaseThreshold.enabledReplaces system upgrade costs at or above threshold with a placeholder. Visual only, the purchase still goes through if you have the scrapfalse
systemNoPurchaseThreshold.thresholdThe cost at which the replacement kicks in9999
systemNoPurchaseThreshold.replaceThe string shown in place of the cost--
purchaseLimitNumber.fontSizeFont size of the store purchase limit number. The tag has no enabled: leaving it out keeps the old position, which overlaps the current shopping cart image0
purchaseLimitNumber.xHorizontal position of that number-16
purchaseLimitNumber.yVertical position of that number106
ships.hideFirstShipPageHides the first page of the ship select screenfalse
victories.noFlagshipSuppresses the automatic flagship victory type that custom victory achievements otherwise generatetrue

These have no value to quote, because hyperspace.xml does not decide them.

FeatureWhat it doesControlled by
Boarding drone controlSelect and order boarding drones the way you order crewThe crew race a mod defines. There is no global switch: the mod sets <controllable>true</controllable> on the BOARDER or BOARDER_ION race
Event tooltipsHovering an event choice shows the info box for what that choice rewardsNothing. It is hardcoded on. <eventTooltips enabled="false"/> parses but is never read, so setting it has no effect
Redesigned crew tooltipsNothing visibleNothing. <redesignedCrewTooltips enabled="..."/> parses, but the only code that would read it is commented out. The tag is not in the shipped file either
Crew colours after a transformHow a crew member’s colours carry over when a mod turns them into another raceHyperspace itself. It always uses the built-in KEEP_INDICES, which keeps their colour slots so they take the new race’s colours. The transformColorMode tag is not usable, its current implementation is broken
Discord rich presenceShows the ship you are flying and your progressThe build. Compiled into Windows builds and compiled out on Linux and macOS, so the discord flag exists on Windows only

A few things to know if you want unpack Hyperspace.ftl and edit hyperspace.xml directly:

Deleting an attribute crashes the game on load. Most tags read their attributes without first checking they are there, so set enabled="false" rather than removing enabled= altogether. extraShipInfo needs all three of missileCount, droneCount and crewLimit. A few attributes are checked before they are read and can be left out, ionDelay among them.

ionDelay overwrites ionDelayInitial. Setting ionDelay assigns its value to both timers, and only an explicit ionDelayInitial after it takes effect. Writing ionDelay="10" alone gives an initial delay of 10, not 6. Both attributes are read only when controllableIonDroneFix.enabled is already true.

advancedCrewTooltips.enabled="false" discards its own attributes. ally, enemy and rounding are parsed inside the enabled check, so switching the tag off throws all three away rather than just disabling the base tooltip.

Leaving seeds.allowMetaVars out turns metavariables on, not off. The built-in default is true while the shipped file sets false, so a mod that replaces hyperspace.xml without the attribute gets the opposite of stock behaviour. Separately, a metavariable marked force="true" applies during a seeded run whatever the setting says.

dronesCanTeleport does not exist. Both the parser block and the code that would read it are commented out. It appears in searches of the source but has no effect.