The Timestopper
The Timestopper has the ability to Stop Time at will
| Date uploaded | a week ago |
| Version | 1.6.0 |
| Download link | GalvinVoltag-The_Timestopper-1.6.0.zip |
| Downloads | 7881 |
| Dependency string | GalvinVoltag-The_Timestopper-1.6.0 |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100EternalsTeam-PluginConfigurator
Used to configure plugins easily in Ultrakill
Preferred version: 1.10.2README
THE TIMESTOPPER V 1.6.0
A mod to bring your jojo fantasies into ULTRAKILL!
NOW COMPATIBLE WITH FRAUD!
With the best performance it can ever be
You can do shit like this:
or like this:
(Yes, the grayscale effect is also included, and customizable)
Disclaimer!
This mod may have minor bugs and balancing issues here and there, since it was originally only made for funzies. However, any worries for it might corrupt your save files are unnecessary, you can mess around to your heart's content! \^ v ^/
Abilities:
- You can punch and grapple enemies in stopped time, they will fly away when you start it
- You can still throw and punch coins in stopped time, they will remain in air, crazy tricks are possible!
- You can still parry in stopped time
- You can add your own sound effects and select any of which you wish
- "No Weapon Cooldown" cheat works with Timestopper too
- Gold Arm is upgradable through terminals fr fr
- Customizable animation speed, timestop speed, healability, shader effects, and more...
urial is dead
To do:
- HandPaint compatability
- Custom layer to obtain the gold arm from, not an altar that cums it out
- Make certain bosses able to move in stopped time
- Add sound to arm pickup animation too
- Add more easter eggs
- Special Mode
Downsides / Current Bugs:
- -Stuck infinitely after act ending cutscenes (?)
- -No special mode yet
�How to work with controllers�
Unfortunately, ULTRAKILL's controller inputs are smoothed, which means they stop when time stops too. But there is a solution, altough it be somewhat tideous.
- Right click ULTRAKILL in your steam library and select
Properties - From there go to the
Controllertab, and enableOverride for ULTRAKILL. - Click
Controller Configurator(clickable text in the same tab) - Select your controller and set right joystic as mouse movement, and bind any key you want to the keyboard key that uses the Timestopper.
�What to do if the mod doesn't work / if you find a bug�
Go to the mod's github page here, and create an issue. I'd appreciate if you'd copy-paste the full log (text from the terminal that opens with the game) inside triple quotes (``` like this ```), it helps me diagnose the problem more efficiently and correctly. Also you might wanna follow the issue, I might just build a fix release so that you don't need to wait until the next update.
Guide for dummies
to first get the gold arm, find this frickin' door in 7-1, and carry the blue skull to it:
The timestop ability will start with 3 seconds by default, you can upgrade your arm through this button
and then this menu over here:
Each upgrade increases the time by around one second, changes by the upgrade count though. There can be a maximum of 10 upgrades.
CHANGELOG
CHANGELOG:
1.6.0-rc2 | FRAUD + HUGE OPTIMIZATION
Fix
- Fixed Coins thrown in stopped time can now be punched
- Fixed Timestopper Progress no longer reads and writes from the disk multiple times per frame ( Huge FPS boost )
- Fixed objecs not having correct velocities when going through a portal in timestop
- Fixed AudioMuffleZone not working in stopped time, and sometimes being persistent
- Fixed Player's audio being pitched down in timestop too
- Fixed Do Shader Effects setting not working
- Fixed Completely and utterly broken Geryon boss fight out of bounds when time is stopped once
- FakeFallZone now gets its own FixedUpdateCaller automatically
- Optimization RigidbodyStopper no longer executes for sleeping rigidbodies
- Optimization RigidbodyStopper now sleeps non-moving gib and gore properly
- Optimization Grayscaler no longer runs when shaders are off
- HUGE optimization!
- Many many Update() calls have been changed with manual static array loop calls
- All FixedUpdate() calls have been centralized and modularized
- Inverted certain HashSets to Lists where iteration performance matters
- Got rid of many many expensive per-frame operations
- Introduced new cached values
- Changed Grayscale shader plane is now almost exactly at near plane distance, hopefully fixing mst of portal visuals when up close
- Changed AudioPitcher class is now more stable and robust
- Changed Got rid of local instance lists from multiple classes
- Changed Enemies now use vision type filters to not be able to see the Player in stopped time
- Added New static class called CustomTime for a better custom Time.timeScale implementation in the future
1.6.0-rc1 | Fraud Re-Release
Fix
- fixed Harmony Patch for CameraController
- fixed Portals not working in timestop
- fixed Camera y axis locking at 0 after timestop
- changed Timestopper mod folder now looks for "The Timestopper.dll" instead of folder name
1.5.4 | folder structure fix
Fix
- fixed folder structure being messed up after downloading from r2modman
1.5.0 | REMASTER + tons of bugfixes + QoL
Summary
- Various performance improvements
- New shaders!
- Better HUD integration
- Full audio customization
- DualWield powerup now works as intended!
- JackHammer now works in timestop as intended!
- TimeArmPickup prefab in the assetbundle
- Enemies now take time to relocate the Player after timestop
- Fixed weird enemy behavior due to use of BlindCheat in stopped time
- Fixed weird backface issue in Timestopper's fingers
- Fixed disappearing text completely
- Fixed V2 softlock when V2 was defeated during timestop
- Fixed Speedometer and other player speed getter related problems
- Fixed Inverted crosshair not working with grayscale shaders
Technical Wrapup
- Added Timestopper Pickup prefab into the assetbundle
- Fixed text disappearance by not using Graphics.Blit()
- Instead, a very thick cube right in front of the Main Camera is spawned with a transparent grayscale shader
- A depth camera renders a depth texture for the shader to use, inside a global variable called _MyCustomDepth
- This shader should be more bug free, since there is no more rendering the HUD twice to maintain color
- BlindCheat is no longer used to prevent visual bugs during timestop, instead a Player dummy is replaced in the PlayerTracker instance
- This also fixes V2-1st softlock if she was defeated during timestop
- Added the WaitForPlayerSeconds() yieldInstruction
- Patched JackHammer to change all WaitForSeconds() to WaitForPlayerSeconds()
- Performance inprovements
- Gibs are no longer simulated when they are completely halt
- Hud no longer renders twice for the grayscale effect
- Epensive function calls per frame have been reduced
- HUD elements operate on custom scripts directly attached to them
- Active game object tracking instead of per frame search operations
- The arm is now called Time Arm instead of Gold Arm to avoid confusion upon the release of official Golden Arm
- More efficient asset bundle and TimeArm prefab
- Functionality is now inside the arm instance itself rather than looking up variables tied to the Player
- Certain functions were carried to their own classes that make more sense
- got rid of FindRootGameobject()
- added TimeHUD class for Time Juice Bar HUD element
1.0.5 | config change
Very Small
- Grayscale amount can now be set to any number
1.0.4 | text disappear fix + new message + music
Small
- The arm now displays a messsage of which button to use it when you pick it up
- Menu texts no longer disappear because of the mod in some custom maps
- Music detection is now more accurate and should work in all levels
- Fixed a bug where the pickup animation wouldn't play
1.0.3 | bugfix + sandbox arm
Small
- Bugfixes related to configgy menus
- The Sandbox Arm now works in stopped time
1.0.2 | another bugfix and hud improvement
Small
- HUD for time juice should now act as intended when any changes occur in the HUD
- More null preventers were added to the save system for timestopper.state
1.0.1 | very small bugfix
Very small
- Fixed a bug where The Timestopper would disappear when died
- Removed the Under Construction text from the Gold Door in 7 - 1
- Updated the arm description, so the mechanics are more clear
- Updated the graphics in the README.md file
1.0.0 FULL RELEASE
>Grayscale Shaders are not supported in Linux Machines yet!
FULL RELEASE!
- Performance improvements
- Now partially Linux compatible!
- New Timestopper model!
- Parrying now fills time juiced
- Timestopper now moves out of the way when punching.
- Added the Timestopper arm textmode image to the main menu!
- Rockets are now rideable in stopped time!
- Landmines do not explode in stopped time (except when you slam onto them)
- Timestopper now bobs while walking
- Removed Configgy dependency
- Restructured configs
- Fixed the Time Stop style effect being spammable
- Fixed the Whiplash in Stopped Time
- Fixed Audio effects not applying to CyberGrind music
technical changes
- mod GUID has been changed to "dev.galvin.timestopper"
- Timestopper now uses ULTRAKILL/Master shader
- Better code structure
- Started using Unity Addressables for the asset bundle
- StopTime() and StartTime() functions no longer require Player, NewMovement or Playerstopper components
- Playerstopper component now has a static Instance
- Finally figured out how MonoSingletons work
I have a donation link, and would appreaciate some help ^v^
0.9.9
The Integration Update!
- Added new Style "TIME STOP" which is worth 200 points, subject to change
- JackHammer now works although a bit janky
- Added Alt and Alt White HUD elements for the Time Juice
- Time Juice now resets properly when died or reset to checkpoint
- Time Juice bar now doesn't overlap with the Speedometer
- The Speedometer now updates as intended in stopped time
- Fixed a little bug with Compatability with CyberGrindMusicExplorer
technical changes
- Patched TimeSince to use unscaledDeltaTime when Timestopper.unscaleTimeSince is true. Used in FixeUpdateCaller when calling FixedUpdate manually.
- Time Juice resets now use StatsManager.checkpointRestart
- Speedometer and other HUD elements which overlapped with Time Juice bar are now moved instead of set to position
- More integration with already there Ultrakill classes and structs
0.9.8
The Freezeframe Comeback!
- The freezeframe effect now allows rockets to move through stopped time.
- The Timestopper can no longer be upgraded indefinitely, 10 is max by default (customizable in the configgy menu)
- Added the option to downgrade the arm to the maximum upgrade count
- Added a message to indicate the appearance of a new door in 7-1
- Fixed inconsistent movement in timestop
- Fixed parrying catapulting Player
- Fixed physics speeding up during the timestop sequence
technical changes
- Reworked FixedUpdateCaller system
- Timestop Jump Fix has been reworked, but still doesn't act identically to non-timestop
- Reworked Timestopper.playerTimeScale, Timestopper.playerDeltaTime and Timestopper.playerFixedDeltaTime
- Timestopper.playerDeltaTime and Timestopper.playerFixedDeltaTime are now read only properties instead of fiels
0.9.7
Global Fix
- Fixed a bug where movement was FPS dependent
0.9.6
Little Update
- Fixed a bug where the time juice would still drain in the pause menu
- Fixed a typo in configgy settings, "Interaction Slowdown Multiplier"
- Recalibrated default configgy settings
- Hopefully fixed some Null Reference Exceptions
- Added temporary fixes to configgy menu for a bug where Player slowed down
0.9.5
Emergency QuickFix
- Fixed a bug where the mod didn't work at all
0.9.4
Ultra Bugfix
- Movement in timestop got reworked
- A bug fixed where timestart would catapult Player
- Every gun except the jackhammer works (hopefully) properly now
- Added animation speed multiplier to settings
- Complete (90%) code rework
- Improved performance (probably)
-
Jackhammer still doesn't work!
technical changes
- Codebase cleaned, now it is easier to use, for possible use as timestop library
- Timestop is now Action based instead of hard setting timeScale every frame
- Many hardcoded main game modifications are automated, so they won't break with further updates (hopefully)
- Main game patches now change Time.deltaTime with Timestopper.playerDeltaTime instead of Time.unscaledDeltaTime
notes:
Even though you can use this mod as a library to stop and start time, I recommend you to communicate with me before doing so, for convenience sake. I may release a separate library for timestop related functions. Right now, if you include and reference Timestopper in your mod base, you should be able to use Timestopper.StopTime() and Timestopper.StartTime() easily. I don't think I will ever change the function names, but new ones may be added or current ones might be removed.
0.9.2
Cybergrind Fix
- A bug fixed where Timestopper didn't work in cybergrind
- Added compatibility with Cybergrind Music Explorer mod, the HUD doesn't overlap
- Cleaned the code a little bit
- Properly added github repository
- Learned how to properly use SceneManager.SceneLoaded
0.9.1
Quick bugfix
- readme updated
- manifest updated
- fixed dependency strings