You are viewing a potentially older version of this package. View all versions.
diegorv-NineSolsQoL-1.1.2 icon

NineSolsQoL

Quality of life tweaks, each optional in the F1 menu: respawn near death, no death penalty, easier perfect parry, parry from behind, dash invulnerability, fast heal, loot magnet, Jin multipliers, boss HP numbers, teleport from any Root Node.

Date uploaded 2 days ago
Version 1.1.2
Download link diegorv-NineSolsQoL-1.1.2.zip
Downloads 34
Dependency string diegorv-NineSolsQoL-1.1.2

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

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

Preferred version: 5.4.2305
ninesolsmodding-BepinExConfigurationManager-18.3.1 icon
ninesolsmodding-BepinExConfigurationManager

Plugin configuration manager for BepInEx

Preferred version: 18.3.1

README

Nine Sols QoL

Quality of life tweaks for Nine Sols: respawn near death, no death penalty, an easier perfect parry, loot magnet and more. Each one can be turned off in the config menu (F1), where they are grouped as below.

An experimental, personal mod. I made it entirely myself, with AI and with as much care as I could, to play the game the way I like: these are the tweaks I wanted. If you want more options, I suggest the original mods listed under Credits, at the end: they do more than this one.

Installing it also installs the BepInEx ConfigurationManager (the F1 menu). It no longer needs NineSolsAPI, which 1.0.0 installed with it: NineSolsAPI turns Steam achievements off by default (an option in its own config), so uninstall it if no other mod of yours needs it.

Abilities

Early air dash

Off by default. The game gives Yi an air dash later on (once per air time, recharged when you land, slide on a wall, grab a ledge or rope, parry and so on). With Early air dash on, you can use it before you get that upgrade. Nothing is unlocked in your save, and once you get the upgrade the game's own rules apply again.

Fast heal

Healing with the pipe is as fast as with the Quick Dose jade, without equipping it: the animation plays 1.67 times faster, so a heal takes 60% of the time. With the jade equipped nothing changes.

Combat

Perfect parry window

A perfect parry is easier to land: by default you can press parry up to 12 frames (200 ms) before a hit instead of 8 (133 ms). Perfect parry frames sets the window, from 1 to 30 frames. The game's penalty for mashing parry still works the same way, scaled to your window.

Parry from behind

Parry attacks that come from behind you. Attacks that cannot be parried at all stay that way, and you still have to press parry.

Dash invulnerability

A dash already makes Yi invulnerable, but the game ends it 0.05 s after the dash, so an attack that is still active when the dash ends can hit right away. Yi now stays invulnerable for Invulnerability after dash seconds after a dash (0.1 by default), and a dash that starts during that time keeps its own invulnerability. Attacks can't be parried during that time either, and solid traps still hurt, as in the game.

Death

Respawn near death

Respawn near where you died instead of at the last Root Node.

  • Ordinary deaths: you get back up on the last safe ground before the death, in the same room.
  • Boss deaths: the room reloads so the boss fight resets, and you start right outside the arena.

The death penalty is the game's (your Jin and XP go into the death bag, which you pick up by interacting with it), unless No death penalty is on.

No death penalty

You keep your Jin and XP when you die. The death bag still appears as usual (or is carried by the enemy that killed you), but empty: you can still pick it up, for the skills that react to that.

HUD

Boss HP numbers

The boss's HP as a number while the game shows the boss bar, and its internal injury too if you turn on Boss internal HP. Each number has its position, font size and colour in the config (positions are in pixels of a 1920x1080 screen and scale with other resolutions). The numbers hide with the game's HUD: menus, the map, dialogues and cutscenes.

Loot and Jin

Loot magnet

Jin, health, qi, ammo and arrows dropped anywhere in the room fly to you on their own, Delay seconds (0.5 by default) after they appear. The death bag and key items still have to be picked up by hand.

Jin multipliers

Multipliers for the Jin you earn, all 1 (unchanged) by default:

  • Monster drops: coins dropped by enemies, chests and breakable objects.
  • Transmute Unto Wealth: the 10 Jin from each enemy killed by a talisman explosion.
  • Selling: the Jin you receive when you sell an item, such as the money bags at the Pavilion. The shop shows the multiplied amount. Prices you pay are unchanged.

The death bag is never multiplied.

Note: picking up coins can take your Jin above 99,999, but the game cuts it back to 99,999 the next time you buy or sell something, and the excess is lost. Spend it before you get there. At 99,999 a sale still takes the item (also with "sell all") and its Jin is lost, as in the game.

Travel

Teleport from any node

The game lets you teleport only from the Pavilion's Root Node, so a trip between two Root Nodes goes through the Pavilion. Now every Root Node that shows the Pavilion button also shows Teleport, with the same list of Root Nodes. The node you leave becomes the Last Node, as when you go to the Pavilion. Where the game hides the Pavilion button (for example during the Prison), Teleport stays hidden too, so the story's locks still apply. It needs the game's teleport, which the story unlocks later on, or Early teleport.

Early teleport

Off by default. Use the game's teleport before the story unlocks it: at the Pavilion's Root Node, and with Teleport from any node at every Root Node that shows the Pavilion button. You can only go to Root Nodes you have activated. Nothing is unlocked in your save, and once the game gives you the teleport its own rules apply.

Compatibility

Made for the current Steam version of the game. The 2024 speedrun patch is not supported.

Each feature turns itself off, with a warning in the log, when the mod it replaces is installed, so the two never patch the game twice:

Feature Turns off with
Perfect parry window Supidowagon's or nozwock's PerfectParry
Parry from behind Supidowagon's AnyDirectionParry
No death penalty nozwock's NoDeathPenalty
Boss HP numbers MicheliniDev's HPNumbers
Loot magnet nozwock's FarawayPickup
Jin multipliers Ixrec's JinMultiplier
Teleport from any node nozwock's TeleportFromAnyNode, Ixrec's TeleportFromAnywhere

Credits

Every feature is written from the game's own code; the ideas come from these mods, which are worth a look: PerfectParry and AnyDirectionParry by Supidowagon, JinMultiplier and TeleportFromAnywhere by Ixrec, FarawayPickup, NoDeathPenalty and TeleportFromAnyNode by nozwock, and HPNumbers by MicheliniDev.

Source code, issues and the full credits: GitHub.

CHANGELOG

Changelog

1.1.2 (2026-10-18)

  • Boss respawns use the boss area first: a story cutscene is not the fight's entrance

1.1.1 (2026-10-18)

  • Name the Pavilion's money bags as the selling example, now seen in game
  • Read GameCore only through GameAccess.CoreInLevel

1.1.0 (2026-10-18)

  • Say that a sale at the 99,999 Jin cap still takes the item, and document the audit
  • Drop the NineSolsAPI dependency, which turned Steam achievements off
  • Fix a dash's own DodgeEnd being skipped after a long exit frame
  • Quick revive: take Yi off a lift or platform before moving him
  • Fix LootMagnet losing Jin that flies to Yi as he dies with NoDeathPenalty on
  • Remove DashInvulnerability's hit diagnostics
  • Teleport conditions: test that Yi sits at a Root Node first
  • FastHeal: keep the game's jade check and add to its result
  • Share the find-one-spot logic of the transpilers
  • Catch errors in RespawnNearDeath's scene load postfix
  • Isolate each feature's startup, patching and unloading
  • Keep the log quiet with DebugLogging off
  • Use the current feature names in two comments
  • Say in the READMEs that this is an experimental, personal mod

1.0.0 (2026-10-18)

  • Replace the template's icon with our own
  • Build CI against the newest game version only
  • Prepare the 1.0.0 release and release it from tags
  • Apply the Teleport review findings
  • Add TeleportFromAnyNode and EarlyTeleport
  • Add a one-off F9 dump of the Root Node menu and pause menu wiring
  • Declare NineSolsAPI and ConfigurationManager as package dependencies
  • Rename the features and group the F1 menu by category
  • Apply the DashInvulnerability review findings
  • Add DashInvulnerability: invulnerable a little longer after a dash
  • Apply the HealSpeed review findings
  • Apply the AirDash review findings
  • Apply the HPNumbers review findings
  • Add HealSpeed: heal at the Quick Dose jade's speed without the jade
  • Add AirDash: the game's own air dash before its upgrade, off by default
  • Add HPNumbers: the boss's HP as a number while its bar shows
  • Apply the NoDeathPenalty review findings
  • Add NoDeathPenalty: keep Jin and XP on death, the death bag stays empty
  • Add Pickup: loose drops fly to the player from anywhere in the room
  • Remove old prompt
  • Document the 99,999 Jin cap and mark JinMultipliers as done
  • Add JinMultipliers: multipliers for the Jin the player earns
  • Add AnyDirectionParry: parry attacks from behind
  • Add ParryWindow: configurable perfect-parry window
  • Add config menu helpers and per-feature patching
  • Start NineSolsQoL from the ExampleMod template, with the Respawn feature