New user registration is now open again!
Also, new development on BulletForge is now under way. Join the Discord server for progress updates and to request features!
Author: Ferase
Category: Player
Danmakufu Version: ph3
Tags: imperishable night, ran, pack, team, in, yukari, yuyuko, alice, youmu, solo, player, remilia, marisa, reimu, sakuya
Last updated at: April 13 2021, 01:56 AM
File Size: 13.3 MB
Downloads: 81

This is a pack of each of the playable teams and their respective solos (a total of 12 players altogether) from Touhou 08: Imperishable Night, recreated in ph3 and ph3sx. The goal was to recreate the players to a level close to accurate, so while there are a lot of things I tried to get right, even down to analyzing IN's code, there will be many inaccuracies and none of these will be spot-on by any means.

(I apologize about the screenshots uploaded here, they somehow get drastically downscaled by the site whenever I upload them.)

This pack has two versions of all teams and solos: one that works for vanilla ph3, and one optimized for ph3sx and its unique functions.

(Changelog was moved to the bottom since no further changes should be made to these scripts unless it is absolutely necessary.)


This Pack Includes:

- All 4 teams and all 8 solo players from Imperishable Night
- All 8 bombs and all 8 Last Spells
- ph3 and ph3sx optimized versions of all teams and solo players
- Shot patterns (damage, delay, speed, etc), hitbox, itembox, PoC coordinates, and player speed for each character imported straight from IN's code
- Fully functional power system for all characters
- Reimu's homing shots
- Yukari & Ran Duo
- Marisa & Alice's Malice Cannon
- Remilia's servant familiars
- Youmu's phantom familiar
- Yuyuko's two familiars
- A plethora of settings for each team (see each team's settings.dnh file)
- On-the-fly settings switches using number keys (must be enabled in settings.dnh files)
- IN's PoC system
- And Ran Yakumo Solo as a bonus player script!

Included Official Players:

- Players:
---- Illusionary Border Team (Reimu & Yukari)
---- Reimu Solo
---- Yukari Solo
- Details:
---- Reimu Hakurei (Human Side)
------- Shot: "Mind Amulet"
------- Spellcard: Spirit Sign "Fantasy Orb"
------- Last Spell: Divine Spirit "Fantasy Seal -Blink-"
---- Yukari Yakumo (Youkai Side)
------- Shot: "Apparition Needle"
------- Familiar: "Summoning Shikigami, type-Yakumo"
------- Spellcard: Border Sign "Quadruple Barrier"
------- Last Spell: Boundary "Quadruple Barrier of the Imperishable Night"

- Players:
---- Aria of Forbidden Magic Team (Marisa & Alice)
---- Marisa Solo
---- Alice Solo
- Details:
---- Marisa Kirisame (Human Side)
------- Shot: "Stardust Missile"
------- Spellcard: Love Sign "Master Spark"
------- Last Spell: Magicannon "Final Spark"
---- Alice Margatroid (Youkai Side)
------- Shot: "Shanghai Doll"
------- Spellcard: Magic Sign "Artful Sacrifice"
------- Last Spell: Magipulation "Return Inanimateness"

- Players:
---- Visionary Scarlet Devil Team (Sakuya & Remilia)
---- Sakuya Solo
---- Remilia Solo
- Details:
---- Sakyua Izayoi (Human Side)
------- Shot: "Mysterious Jack"
------- Spellcard: Illusion Sign "Killer Doll"
------- Last Spell: Buriallusion "Phantomic Killer in Night Mist"
---- Remilia Scarlet (Youkai Side)
------- Shot: "Night Dance"
------- Familiar: "Servant Flier"
------- Spellcard: Scarlet Sign \"Red the Nightless Castle\"
------- Last Spell: Scarlet Magic "Scarlet Devil"

- Players:
---- Netherworld Dwellers Teama
---- Youmu Solo
---- Yuyuko Solo
- Details:
---- Youmu Konpaku (Half-Human Side)
------- Shot: "Bizarreness of Six Realms"
------- Familiar: "Ghostly Half"
------- Spellcard: Human Sign "Slash of the Present World"
------- Last Spell: Human Oni "Slash of the Eternal Future"
---- Yuyuko Saigyouji (Youkai Side)
------- Shot: "Invitation from Nether Side"
------- Familiar: "Deadly Butterfly"
------- Spellcard: Death Sign "Ghastly Dream"
------- Last Spell: Deadly Butterfly "Eternal Sleep in Dreamland"

Included Bonus Player:

- Player:
---- Ran Yakumo Solo
- Details:
---- Shot: "Shikigami Needle"
---- Spellcard: Shikigami Sign "Dakini's Keepsake"
---- Last Spell: Shikigami "Kokkuri-san's Bargain"

All solos function pretty much equally to how they do in their teams, however like IN, there are two exceptions:

- Remilia's solo version can move her servant familiars while unfocused
- Youmu's solo player can freeze the direction of her phantom's shot when focusing

Notable Information:

- All shot data (fire rate, delay, speed, damage, etc.), player speeds, and general mechanics come directly from IN's code, making them nearly perfectly accurate to the game (NOTE: In all settings.dnh files, there are multipliers for all characters' shots, however I should note that the default multiplier values are set to 0.25, meaning damage output will be a quarter of the maximum according to IN's code. This was done because testing these players in a slew of scripts revealed that IN's raw damage output numbers are a lot higher than what is normally found in Danmakufu)
- Power system that evolves shots accurately to IN, including card dropping on death
- Configurable settings (see settings.dnh) for each team, allowing for tuning of damage and other player-specific and unspecific values
- Improved and reworked many parts of Netherworld Dwellers Team since their previous single release, now with a much more faithful and considerably accurate phantom for Youmu!
- Integration with Danmakufu's functions, such as SetPlayerInvincibilityFrame, so that certain effects, such as blinking red while invincible, will play regardless if where these functions are called

Known Issues:

- All Characters:
---- When pressing the left and right move buttons together, the player sprite should smoothly revert back to its idle animation, however they all fail to do this correctly. I hope to fix this soon!
------- A small update on this: I did figure out why this animation wasn't working with each player, but with how each player script has different animation frames/speeds/etc., there may need to be unique solutions for each character. Because of this, I probably won't end up fixing this unless it is something people really want
---- Although shot data was possible to get directly from IN's code, bombs and Last Spells were hardcoded, so pretty much all of the bombs and Last Spells have estimated damage values and estimated hitbox duration/placement/size. If anyone has any good ways of getting this data, I would really appreciate it if you reached out and let me know how I can find out these values. My Discord name is written below, so if you have any ideas on this, I would love to hear them!
- Remilia (General)
---- For some reason, the spawn effect will simply not trigger on her sprite. I will hopefully figure this one out soon!
- Remilia Solo:
---- While I haven't been able to get it to happen again, there was an instance where her rightmost familiar had lost its trail effect
- Probably some others I'm forgetting or haven't run into yet...

Things to be Added/Changed:

- Nothing new at the moment, though if things are suggested, I will list them here and state what the feature is, if I will work on it, and if so, when.

Finally, I will note the same thing here that I did in my original release of Netherworld Dwellers Team: This player pack does use ZUN's graphics and sounds. I chose to release this with them intact both because of my desire to be accurate and because working with the actual sprites makes it much easier to create and compare these player scripts to their originals. If you are just using these players to play other people's scripts, then that's probably fine, but if you're planning on including one inside a script you made and/or intend to release, I would recommend you replace the graphics and sounds of the players you are going to use. ZUN is very strict on how his resources should be used and by whom, so I only offer the aforementioned as a recommendation.

I am totally open to feedback and want to make as many improvements to these scripts as I can, so don't hesitate to reach out if you have any concerns! You can reach me on Discord, where my username is Ferase#4246.

Thank you, and enjoy!



- 3/31/21:
---- v1.00
------- Initial release
---- v1.05
------- Reworked invulnerability visual effects so that they respond to SetPlayerInvincibilityFrame instead of the script using its own sandboxed task
---- v1.05b
------- Fixed graze effect not working on all players
---- v1.1
------- Added a new bonus player script: Ran Yakumo Solo! She basically has the homing style of Reimu with the added restriction of only being able to target an enemy that's within a range in front or behind her. Her bomb and Last Spell were modeled off her attacks from Touhou 07, specifically her second spellcard in the Phantasm stage and her survival spellcard in the Extra stage respectively. Just something fun I wanted to add in, I hope you enjoy!
------- Optimized some of Ran's shot code in Illusionary Border Team and Yukari Solo
---- v1.1b
------- Forgot to turn off Ran's alwaysFullPower switch by default. Oops!
---- v1.1c (last update today I promise)
---- I liked to use what I call "ok texts" to observe variables, and the reason I call them that is because that's what I name text objects I use for testing. Turns out, I left a lot of them behind and even added one in the new invulnerability effect code that existed in the same form across all scripts! It's fixed now, so no more weird numbers at the top left of your screen
- 4/1/21:
---- v1.11
------- Fixed Youmu's phantom sometimes failing to return to the player while they are moving along the walls of the stage frame
------- Fixed a bug where dying as Visionary Scarlet Devil Team while focused would cause Remilia's sprite to squash until the player would unfocus and focus again. Still have no idea why the spawn animation doesn't play for Remilia, though...
---- v1.12
------- Reworked the screen shaking function to allow for smooth transition from not shaking to shaking and vice-versa. Master Spark shouldn't be nauseating anymore!
- 4/2/21:
---- v1.13
------- Added IN's PoC system (below max power level, the player must reach the PoC line and focus to collect all items on screen. When the player is at maximum power, they can collect at the PoC line regardless).
---------- With this, Marisa is also given immunity to this rule since her special skill from IN is collecting at the PoC line regardless of power level. A setting has been added in Aria of Forbidden Magic Team's settings dnh to enable/disable this behavior
---------- The proper sound now plays when the player collects items while above the PoC line
------- Organized all user-configurable variables in settings.dnh files for each team into categories (team-specific settings, movement speed, collision and collection, miscellaneous, shot damage, and bomb damage)
------- Added new settings to all teams
---------- Hitbox, grazebox, and itembox collision circle radii
---------- PoC line behavior and location
---------- Player shootdown state duration (when the player is waiting to respawn)
---------- Infinite invincibility override (aka ZUN Mode)
------------- With regards to the hitbox, grazebox, itembox, and PoC locationsettings, all default values are per-team and come straight from IN's code (with the exception of the grazebox, which needed to be estimated since the given valuesessentially made the grazebox nonexistent)
------- That's all for new stuff in this update, but I wanted to apologize for all the frequent updates if you're someone who may be using these and notice things changing a lot. I doubt there are many people keeping up to date with this, but I still wanted to apologize since even I find it annoying that I constantly keep changing things and never reach a solid stopping point. I promise there isn't much more I want to add/change; as of now, I just want to add the visual effects of the Human/Youkai gauge (with settings to enable/disable them) and maybe change a few bombs (especially Yuyuko's, which is frankly a bit more of a mess than it needs to be in terms of how I chose to approach it)
---- v1.13b
------- Made some minor optimizations to Yuyuko's bomb and Last Spell
------- Fixed a bug with Remilia Solo where if the player unfocused while down, they would cause her familiars to relocate to her death position
- 4/3/21:
---- v1.14
------- Fixed a bug where using Last Spells too quickly while shooting on some characters would cause Danmakufu to throw an unset variable error and terminate the scripts.
- 4/4/21:
---- v1.15
------- Added on-the-fly keyboard settings that can be enabled in every settings.dnh file. When enabled, the number keys at the top of your keyboard will control certain boolean variables in real time. For each team, you can set zunMode, alwaysFullPower, dropCard, and alwaysPoC with the 1-4 keys with a few of the other numbers being reserved for team-specific settings. You will know when a setting is flipped to on or off based on the sound that plays when you press the number key associated with your desired setting
---------- The intent of this feature is to give the player the ability to control the core non-numeric settings of the players so that they don't need to restart their scripts when they want to activate full power or any other setting.
---------- Some of the features than can be turned on and off on-the-fly using this were never meant to be on-the-fly, and their addition was only for the player's ease of access during gameplay. If you would like to use these settings as they were originally intended, please switch them on in the settings.dnh file itself
------------- Additionally, the on-the-fly nature of these settings has no effect when keyboardSettings is set to false, as most of this feature is handled in a single task that switches on and off each part of the configurable boolean variables. The only changes to the actual player scripts was the check for the keyboardSettings variable and additional checks for some of the values that may be changed by this feature that would otherwise be constant
------- Altered and optimized some tasks and functions so they would be more feasible to work with the keyboard settings feature and generally run better
------- Fixed a bug where the PoC item collection sound would play when focusing and collecting an item anywhere on the screen
------- Fixed another angle of Youmu's phantom that was behaving incorrectly
------- Fixed one final area where the error mentioned in the previous version could still occur.
---- v1.15b FINAL
------- This version doesn't really fix anything, though it just resets the keyboardSettings variable to false by default for Ran Solo (as I accidentally left it on before uploading it earlier)
------- This will also be the final update for the ph3 version of these players, as I decided that the way the player scripts were now was pretty much as good as it could be and adding extra features would only serve to bloat it. That being said, the Human/Youkai meter will not be added due to scripting limitations and the idea that it likely wouldn't be favored by too many people. I may upload some bug fixes if anyone runs into any and reach out to report them, though for now, I think everything is in a good place to begin the ph3sx conversion and optimization. When finished, I will upload the pack containing both the ph3 and ph3sx versions over top of this one, so there won't be a new project just for those. If you've been keeping up with these updates, thanks for sticking with me and my indecisive mind! Unless I get some epiphany or something, no further big updates will come until the ph3sx version gets added.
- 4/7/21:
---- v2.00 ph3sx Final Release
------- ph3sx
---------- Included alternate versions of all teams and characters that are optimized to work with ph3sx
------------- All uses of the interpolation functions have been replaced with ph3sx's functions and algorithms
------------- Added some extra settings in every settings.dnh which couldn't be added in vanilla ph3 (see each settings.dnh for details)
---------------- One of these settings enables/disables replacing bomb and Last Spell names with their Japanese names. Please ensure you have the Japanese language pack installed and/or that your Danmakufu can display Japanese characters before activating
------- ph3/ph3sx
---------- Reimu's normal bomb will now spin around her instead of moving randomly around her if a homing target is not found
---------- When Ran would home in on a target, she only went to 10 pixels below their origin point. This looked a little strange and didn't reflect her positioning in IN, so I increased the distance between her and the enemy she was targeting to be 30 pixels below the origin point
---------- Added Ran's appear animation when switching from Reimu to Yukari in Illusionary Border Team or spawning as Yukari Solo
---------- Decreased Ran's following speed on Illusionary Border Team and Yukari Solo to better match that of IN
---------- Fixed a typo on Marisa's Last Spell
---------- Reworked Youmu's phantom for the last and final time (I promise)
---------- Reworked grazebox calculation since it was found that the radius was going negative for all characters
---------- Went back through and made some improvements to the haphazardly-made notes for the configuration options in the config sections of each settings.dnh (if I missed anything, I'm sorry; a lot of these files were copied and pasted and only adjusted when I began programming each team, so sometimes I would be lazy and not read through what I was overwriting/copying over)
---------- Added bombs and Last Spells to the keyboard settings feature. Ever wanted to literally spam bombs by pressing a key? Now you can! (Obviously, this will not work without setting the keyboardSettings constant to true. Check each settings.dnh for details)
---------- As I stated previously, this release that included the ph3sx versions would likely be the last revision. This is still the case, and I will only make updates if there are necessary improvements to be made or if there are things people would want added to these scripts. Again, sorry for all the constant updating over the past two weeks, and thank you for sticking through it with me if you have been keeping up to date! I hope you enjoy the players!
- 4/9/21:
---- v2.00 ph3sx Final Release (Patch 1)
------- ph3/ph3sx
---------- Fixed an issue where Illusionary Border Team, Reimu Solo, and Yukari Solo would home onto enemies that were beyond the stage frame. I know I said I was done updating, but after testing these three on a script where the creator stored bosses outside of the screen boundaries between sections, both Reimu and Ran would try to home to them despite them not being onscreen or tangible. I don't know if this is common practice for stage makers, but I figured it made sense that since this was the case this time and was pretty annoying, I should probably fix it
---------- Ran will no longer be stuck spinning in place when SetForbidPlayerShot is set to true while she is homed in on a target
---------- Fixed an issue where the width of Alice's beam hitbox wouldn't properly reflect the width of the beam as it grew
---------- Fixed an issue where Netherworld Dwellers Team's effects would still appear if the player focused/unfocused after losing their last life
------- ph3sx
---------- Made an optimization to how the itembox was calculated
---------- Included an option for Sakuya's item slowdown attribute from IN
------------- This is turned off by default, but can be enabled in the "ph3sx settings"section of Visionary Scarlet Devil Team's settings.dnh. The reason this is disabled by default is because of how calculating and setting the speed is done with ph3sx, as while it offers a way to gather item IDs, the native ObjMove commands don't offer enough possibility to handle all situations properly. Please read the note beside this option in the settings.dnh file for more information
- 4/12/21:
---- v2.00 ph3sx Final Release (Patch 2)
------- Fixed an issue that would cause Reimu's homing shots to break if multiple enemies spawned far enough outside of the stage frame