Nifflas' Support Forum

Being Creative => Nifflas' Sources => Topic started by: Purple Pineapple on May 20, 2017, 09:43:00

Title: Knytt Stories: Speedrunner Edition [KS mod]
Post by: Purple Pineapple on May 20, 2017, 09:43:00
I recently started getting serious about speedrunning in Knytt Stories, and was dismayed at how long it takes to reset. I also wanted to add the option to have Knytt Stories automatically do timing and speedrun splits. The result is a new Knytt Stories mod dedicated to speedrunning. It's not particularly aesthetically pleasing at the moment, but it's functional.

Spoiler: List of features (click to show/hide)
Spoiler: Download (click to show/hide)
Spoiler: Known bugs (click to show/hide)
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: LPChip on May 20, 2017, 11:44:26
Oh, this is interesting!

Does it work with every map, or does the map need to be altered in order to support SpeedRunning?

I can see how my map "Learning to jump" can be a great resource for this mod.
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: Purple Pineapple on May 20, 2017, 23:12:44
Theoretically it should work with every map. The timer takes all the information it needs straight from the split files. If you wanted to make it work for Learning to Jump, the setup would be pretty simple:

- Create a file "LPChip - Learning to Jump.txt" in the Splits folder
- Fill it with the following code:
Code: [Select]
[Split1]
Type=WinTile
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: LPChip on May 20, 2017, 23:18:30
Are there more options? Could I for example modify the map to add a start timer?

The map starts with a tutorial section on the left and the actual map on the right. It would be nice if the timer starts at the start of the actual map rather than at the player start.
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: Purple Pineapple on May 21, 2017, 00:01:37
Not currently, but that functionality shouldn't be hard to add. I wouldn't make it so you would have to modify the map, though. I'd probably just put an option in the splits file to start on a screen transition.
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: LPChip on May 21, 2017, 11:11:01
Oh, that would work, except if someone goes to the left area instead of the right, they'd start the game too. I don't mind changing the map to make it work by adding a trigger though, unless of course you add that the timer starts when the player enters a specific screen. That would be better. :)
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: Purple Pineapple on May 23, 2017, 06:39:44
Added beta 1.0.1 to the downloads.

Changelog:

- Added a hotkey editing GUI to the level select screen.
- Added support to start the timer on an event. For instance:
Code: (LPChip - Learning to Jump.txt) [Select]
[Start]
Type=ExitScreen
Screen=x1000y1000
[Split1]
Type=WinTile
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: LPChip on May 23, 2017, 08:53:50
Can you make it so that it becomes EnterScreen? So I can use x1001y1000? If the player exits the screen to the left into the training area, it would start the timer too.
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: Purple Pineapple on May 23, 2017, 12:14:50
It currently works with all the same options that the splits do: EnterScreen, ExitScreen, Item, and ShiftUse. So yes, using EnterScreen and x1001y1000 would work fine. Also, unless I'm very much mistaken, there isn't any screen to the left on that particular map.
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: LPChip on May 23, 2017, 12:33:25
On Learning to Jump, at the start, on the left is a training area with 4 jumps so you can practice jumping and prepare for the run. On the right of the start area is the actual course.

Also, can I somehow encode this into my map, so people don't have to make/edit a split file?
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: Purple Pineapple on May 26, 2017, 04:51:20
Added beta 1.0.2 to the downloads.

Changelog:

- Added support for individual level split files (stored in Worlds/[world folder]/Splits.txt).
--- IL split files will automatically bundle with the level when compiling with the default level editor.
--- Split files from the Splits folder will override any individual level split files.
- Fixed a bug whereby the timer would continue to run even if waiting for the speedrun to start.
- Fixed a bug whereby the timer would appear upon loading a save file.
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: Purple Pineapple on June 05, 2017, 12:28:48
Added beta 0.1.3 to the downloads.

Changelog:

- Added an attempts counter to the split file
- Added a counter in the splits file that tracks how many runs have reached each split
- Added a menu option to hide/show splits
--- Only togglable while playing a level, but it will remember your settings
- Fixed multiple bugs relating to loading splits after a cutscene
- Added support for gold splits
- Fixed a bug relating to concurrent modification of the splits file
- (I also fixed the beta numbering system)
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: Purple Pineapple on July 03, 2017, 11:07:10
Added beta 0.2.0 to the downloads.
I'm calling this the "innocuous update," because the goal was to make it run as closely to official KS as possible when not using splits.

Changelog:

- Refactored all the code to remove a lot of obnoxious things
--- Splits will no longer remove focus from the window
--- Splits will no longer refuse to move when the window is moved
--- Splits will no longer have an obnoxious pink border
--- Splits will no longer require a separate source in streaming software
--- Cutscenes and victory screens no longer display an extra frame
--- Potentially fixed several crashes
--- Cleaned up the excessive amount of temporary files created
- Fixed F2 not functioning correctly in fullscreen
- Revamped the split display upon the end of a run
- Added the menu click to the hotkey buttons
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: GrayFace on August 06, 2017, 16:45:32
I tried playing Tutorial (selected it through levels menu) and haven't seen anything related to timer. Note that I've enabled Splits->Show from the get go (in the main menu) assuming it should enable timers.

Spoiler: List of features (click to show/hide)
In KS Ex the Right key is used to jump to level selection screen.

Wouldn't it be better to combine everything into one "restart current level in current save slot" button?
Title: Re: Knytt Stories: Speedrunner Edition [KS mod]
Post by: Purple Pineapple on August 11, 2017, 22:02:58
Added beta 0.2.2 to the downloads.

Changelog:

Beta 0.2.2

- Added Right Arrow to the keys which advance to the level select screen
- Use Ctrl+Alt+R to restart current level in the current save slot
- Added a menu option to automatically create splits for a level
- Fixed F2 not functioning correctly in fullscreen
- Revamped the split display upon the end of a run
- Added the menu click sound to the hotkey buttons

Beta 0.2.1

- Fixed a minor bug. F2 should now function correctly in windowed mode and fullscreen.



I tried playing Tutorial (selected it through levels menu) and haven't seen anything related to timer. Note that I've enabled Splits->Show from the get go (in the main menu) assuming it should enable timers.
You have to create a splits file in order to tell the level to use a timer. Alternately, in the latest version I've added a menu option to create a default splits file for a level (you will still have to restart the level for a timer to appear).

In KS Ex the Right key is used to jump to level selection screen.
The reason I chose to use ~ is because it's relatively close to F2 and the number keys, which makes the reset combo easier for me. I added right arrow in the latest update as another key which works. Thanks for the insight.

Wouldn't it be better to combine everything into one "restart current level in current save slot" button?
It probably would be, haha. I added that option to the latest version (Ctrl+Alt+R).