Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
NeedleSwapper
A small mod that allows you to downgrade (change) which Needle upgrade Hornet uses — check the README!
| Date uploaded | 2 months ago |
| Version | 0.3.2 |
| Download link | itsschwer-NeedleSwapper-0.3.2.zip |
| Downloads | 413 |
| Dependency string | itsschwer-NeedleSwapper-0.3.2 |
This mod requires the following mods to function
BepInEx-BepInExPack_Silksong
BepInEx modloader. Preconfigured and ready to use.
Preferred version: 5.4.2303README
needle swapper
A small mod that allows you to change which Needle upgrade Hornet uses.
why?
i want to be able to downgrade my needle so bosses don't die so quickly!
(e.g. cleaning up optional bosses, Godhome)
how?
- with the Needle selected in the Inventory menu:
- use the Sprint input (default:
c; use the Attack input on controller) to "downgrade" the needle - use the Jump input (default:
z; equivalent on controller) to "upgrade" the needle
- use the Sprint input (default:
- ranges from the following (from downgraded to upgraded):
- unmodded needle (i.e. what you have without the mod) ← default setting
- needle
- sharpened needle
- shining needle
- hivesteel needle
- pale steel needle
- "downgrading" all the way uses your default needle upgrade
- by default, you cannot "upgrade" past your current max upgrade level
- e.g. if you've upgraded to Shining Needle via the Pinmaster (i.e. vanilla), you'll be capped at Shining Needle until you obtain Hivesteel Needle via the Pinmaster
- it (should!) be safe to upgrade your needle as if this was not installed
- e.g. if you have Hivesteel Needle but are using Sharpened Needle via the mod, Pinmaster will still unlock the Pale Steel Needle when you give him Pale Oil
- it (should!) be safe to upgrade your needle as if this was not installed
- the mod's internal tracker can still increase to the last possible upgrade, so you may need to hit the "downgrade" input multiple times to see a change
- e.g. if you're capped at Shining Needle but have spammed "upgrade", you may need to "downgrade" multiple times before Shining Needle becomes Sharpened Needle
- this is because the
targetNeedleUpgradeLevelis shared across save files
- you can remove this limit by setting the config option
allowTargetAboveUpgradedLeveltotrueNote: config options are only read on game launch, so you may need to relaunch the game to apply changes. Alternatively, you may use the keyboard shortcut
home+end(intended for debugging) to reload the config while the game is running.
- e.g. if you've upgraded to Shining Needle via the Pinmaster (i.e. vanilla), you'll be capped at Shining Needle until you obtain Hivesteel Needle via the Pinmaster
- only modifies the inventory appearance and damage calculations
- i.e. doesn't (shouldn't) affect completion percentage / game progression; non-permanent
- note: damage calculation is complicated in Silksong because needle damage is multiplied by enemy-specific modifiers dependent on which needle upgrade you have
- this mod should be safe to install and uninstall without affecting your save file at all
- however, you should always make a backup of your save files, just in case
- testing was conducted, but i am only one person
issues? questions? fixes?
- open an issue on the GitHub repository!
- bug reports
- suggestions (e.g. README readability)
- changing BepInEx config options (
BepInEx.cfg)Logging.Console→LogLevelsandLogging.Disk→LogLevelsto includeAllallows you to see debug-level logs omitted by the defaultBepInExPack_Silksongconfig- this may be helpful for investigating issues (and attaching
LogOutput.log)
- this may be helpful for investigating issues (and attaching
known issues
- the "Transform" button prompt for "downgrading" the needle does not update properly if switching between gamepad and keyboard
- workaround: return to main menu and load the save using the desired input scheme
- loading a save with only mouse input will also result in gamepad prompts (as the game has not detected a keyboard)!
- help needed! — open an issue on the GitHub repository if you have any info!
- workaround: return to main menu and load the save using the desired input scheme
- the following error message will be logged when the Inventory menu is initialised:
[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object Stack trace: InventoryItemButtonPromptBase`1[TData].OnEnable () (at <9d3c4ed299074c2e91377d5f75e5a0ec>:0) UnityEngine.GameObject:AddComponent() PaleOilSoap.UX:InventoryItemNail_Start(InventoryItemNail) InventoryItemNail:DMD<InventoryItemNail::Start>(InventoryItemNail)- this is safe to ignore but there doesn't seem to be an elegant solution to avoid emitting this error
todo
- only allow at bench
- can copy
global::InventoryItemToolManager.CanChangeEquips- but how implement sit at bench prompt?
- is this even desirable/necessary?
- can copy
CHANGELOG
0.4.0
- Add config option
capTargetToObtainedUpgradeLevel- default: true; changes default behaviour by capping the internal tracker to the current save's max upgrade level to avoid requiring multiple "downgrades" to see a change in applied Needle level
- Avoid NullReferenceException in InventoryItemButtonPromptBase.OnEnable()
- Extending the component allows for sidestepping OnEnable before component is fully initialised
0.3.3
- Try fix missing audio when installed with certain other mods
- Try improve asset loading robustness
- Tested with
cometcake575-Architect(and dependencies)
I'm not really sure if this is a proper solution. Let me know if there is a better way of handling game assets!
- Update button prompts to match control scheme without needing to quit to menu
0.3.2
- Fix incompatibility with
silksong_modding-SilksongPrepatcher
0.3.1
- More verbose debug logging
- Update README
- document additional notes related to debugging and known issues
0.3.0
- Add button prompts for "upgrading"/"downgrading"
0.2.0
- Fix audio feedback
- Update README
- minor wording adjustments
- document controller inputs
0.1.0
- Initial release