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.
Jhin
Adds Jhin, a high damage-low attackspeed survivor. Based on the champion of the same name in League of Legends
| Last updated | 2 weeks ago |
| Total downloads | 393221 |
| Total rating | 21 |
| Categories | Mods Player Characters Seekers of the Storm Update Alloyed Collective |
| Dependency string | SeroRonin-Jhin-1.5.0 |
| Dependants | 84 other packages depend on this package |
This mod requires the following mods to function
bbepis-BepInExPack
Unified BepInEx all-in-one modding pack - plugin framework, detour library
Preferred version: 5.4.2121KingEnderBrine-LobbySkinsFix
Fixes issues with switching to modded skin and back to vanilla in lobby
Preferred version: 1.2.4README
This mod was created under Riot Games' "Legal Jibber Jabber" policy using assets owned by Riot Games. Riot Games does not endorse or sponsor this project.
Jhin



Jhin is a meticulous criminal psychopath who believes murder is art. Once an Ionian prisoner, but freed by shadowy elements within Ionia's ruling council, the serial killer now works as their cabal's assassin. Using his gun gun as his paintbrush, Jhin creates works of artistic brutality, horrifying victims and onlookers. He gains a cruel pleasure from putting on his gruesome theater, making him the ideal choice to send the most powerful of messages: terror.
Jhin as a survivor is meant to deliver a low APM, high damage experience. He has high damage scaling, but lacks sufficient means to deal with large groups of enemies.
I am by no means a RoR2 Guru, so things are likely to be either under or overpowered. If you have any concerns or feedback, please feel free to reach out via a discord channel I made specifically for things like this: https://discord.gg/RSs2kA7yRu
If you like my mods, please consider supporting me!
Video Showcase
Since markdown doesn't support embedding youtube videos, the showcase can be found on youtube directly from this link, or by clicking the icon below
Features
- Unique scaling and ammo system iconic to Jhin's playstyle in League of Legends
- Animations from League, with custom animations to bridge the difference in game styles
- SFX and VFX based on which skin you use (see the table below for what is implemented)[^skinFX]
- Item Display support up to Alloyed Collective[^itemDisplay]
- Highly configurable, change most values of the mod to your liking!
Potential Future Features
Features I would like to add, should I have the motivation to continue working on this
- More Custom VFX
- Optional VO for ambient or key events, like Jhin's counting or whistling when idle
- A Utility overhaul to combine Deadly Flourish with the unimplemented Captive Audience[^utilityOverhaul]
Stats[^armorFootnote]
| Health | Regen | Armor | Damage | Attack Speed | |
|---|---|---|---|---|---|
| Base | 110 | 1.5 | 0 | 12 | 0.625 |
| Growth | 33 | 0.2 | 0 | 2.4 | 0.019 |
Skills
Please note that skill values and effects may change over the course of this mod's lifespan, and the images displayed here may not reflect those changes.

Passive
Jhin has a unique interaction with Attack Speed. Unlike other survivors, he gains attack speed with levels, but he CANNOT gain any from other sources. Instead, bonus attack speed increases his base damage, as well as granting Jhin additional movespeed when he lands a critical hit.
Primary

Whisper has a unique ammo and reload system, utilizing shots represented by the tally marks and a reload timer represented by the ring. Jhin reloads after the 4th shot, or after 10 seconds without firing. Casting any skill will reset the automatic reload timer and interrupt a reload when you have bullets left.

Secondary
Dancing Grenade functions similarly to Huntress' Glaive, but it prioritizes new enemies over enemies it has already hit.
Utility
Deadly Flourish is a simple beam attack that stuns every enemy it hits. Additionally, any marked enemies are rooted. Hits trigger Jhin's movespeed passive as if he had landed a crit, with double the duration.

Special
**

Curtain Call is a primary skill override, like that of Railgunner's scope. For 10 seconds, it replaces Whisper with 4 shots that deal massive AOE damage. It automatically reloads Whisper as well, so you don't have to worry about reloading after firing all 4 shots. Additionally, it will refund a percentage of the cooldown for each shot remaining when Curtain Call ends.
**The wording on the execute is wrong, and has since been fixed (up to 300% bonus damage based on missing health, or 3% per 1%)
Skins
Each skin may have its own unique SFX and VFX. Creating these assets for each is a painfully tedious process, and as such, only some skins will have support. The others are currently WiP, though VFX is a more long term project on its own.
| Skin | Available | Unique SFX | Unique VFX |
|---|---|---|---|
| High Noon | ![]() |
![]() |
![]() |
| Blood Moon | ![]() |
![]() |
![]() |
| SKT T1 | ![]() |
![]() |
![]() |
| Project | ![]() |
![]() |
![]() |
| Dark Cosmic | [^legendary] |
![]() |
![]() |
| Shan Hai Scrolls | ![]() |
![]() |
![]() |
| DWG | ![]() |
![]() |
![]() |
| Empyrean | ![]() |
![]() |
![]() |
| Soul Fighter | ![]() |
![]() |
![]() |
| Mythmaker | [^legendary] |
![]() |
![]() |
| Arcana | ![]() |
![]() |
![]() |
| Dark Cosmic and Mythmaker are not possible with the default skin setup. If I get curious, I may look into a custom setup to allow unique animations on skins but at the moment that is too much effort. |
Mod Compatibility
Suggest and report compatibility issues under Github Issues, or through my Discord: https://discord.gg/RSs2kA7yRu
| Mod | Compatibility | Notes |
|---|---|---|
| Risk of Options | ![]() |
|
| CustomEmoteAPI | ![]() |
Known Issues
Bugs can be reported under Github Issues, or through my Discord: https://discord.gg/RSs2kA7yRu
- [Multiplayer] Last I checked, the mod had some major issues with multiplayer involving CROSSPLAY. I am unsure if this is currently the case though, I do not have the means to properly test it.
- [Multiplayer] To non-local players (anybody viewiwng another player on Jhin), the fourth shot will occassionally fail, producing visual desync. This never happens to the local Jhin, and only results in a visual issue that eventually fixes itself. I'm not sure what causes this exactly yet, though I believe it might be a race condition or a floating point error
- [Multiplayer] SFX/VFX Override applies to ALL Jhins. This is not intended but requires networking the dynamic SFX/VFX system or at the very least separating the local player from everyone else, so it is not currently a priority
To Do
This section has been moved to the github under 'ToDO.txt', please check there instead
Special Credits and Thanks
- Riot Games: Jhin
- Character assets including Models, Textures, SFX, and a majority of Animations
- TimeSweeper: HenryTutorial
- Code base from which this mod was built off of
- Lemonlust: Sett Survivor
- Referenced this mod a lot to help me learn RoR2 modding
- EnforcerGang: Rocket Survivor
- Referenced code for custom missile prefab spawning
- Violet Chaolan: Shader Help
- Helped with some shader plugins that allowed me to experiment with VFX
See the github page for footnotes that don't properly render here on Thunderstore
[^skinFX]: There is also the option to override which set of SFX or VFX to use in the config. These do not require a restart.
[^itemDisplay]: Some items with minimal or lackluster visuals, such as Leeching Seed, are simply hidden. I simply could not find extra space to place certain items without non-sensically placing them around the cloak.
[^utilityOverhaul]: See 'ToDO.txt' on github for details
[^legendary]: As far as I know, skins in RoR2 do not support custom animation overrides, so unfortunately Legendary skins are not possible without a duplicate survivor. It may be possible with some custom code, but at the moment there is nothing in the works.

![[Risk of Rain 2] Jhin Survivor Mod Showcase](https://user-images.githubusercontent.com/8404018/229385495-7235eea9-9b34-43fc-8eec-0aa9c6d2256b.png)

