How to make a "Summit" Stopwatch

A Note to TL3s: Unlike my Hollow Knight guides, I made this super-simplified so a beginner can understand it. That is why I added gimkit-beginners. If you disagree please politely ask me to take it off. It gets on my nerves when TL3s just take tags off without even explaining.


How to make a “Summit” Stopwatch

Intro: I have become obsessed with Ascent of Mt. Snowy. Especially speedrunning it.[1]So I was having this dream about speedrunning it and in that dream, there was a stopwatch that tracked how fast you made it to each summit. Then I woke up and decided to make a guide on it AND incorporate it into the Forum-Based Summit

Warning

You will need 2 spaces available for Game Overlays for this system.
You will need at least __% memory

Part 1: Starting the Stopwatch

This part will focus on creating the system that will start the stopwatch.

Devices
  • 1x Game Overlay
  • 1x Pop-Up
  • 1x Teleporter
  • 2x Trigger
  • 1x Property
Step 1: The Start Button

First we need to create a Game Overlay. Set the Overlay Type to Button and Overlay Position to Top Right. The Overlay Text should be Start Stopwatch and broadcast on startStopwatch. This should deactivate when receiving on startStopwatch_confirmed. Finally set both scopes to player. Like so:


image
image
In the end it should look like this:
image


This button will be shown to the players, allowing them to click it and it will broadcast on a channel.

Step 2: The Warning Pop-Up

Create a pop-up with a Header saying Enable Stopwatch? and the Content of By enabling this all you will be reset to the beginning and a stopwatch will start, showing how fast you have completed each summit. You can view your times by pausing the stopwatch. Open the pop-up when receiving on startStopwatch. Now for the CTAs[2]. Now have the first CTA say Enable and broadcast on startStopwatch_confirmed. The second CTA should say Disable and broadcast on closePopUp. Have Closable by Player set to No and it should close when receiving on closePopUp. Like this:
image
image



It should look something like this:

Finally, add a trigger with Trigger by Player Collision and Visible In-Game to No. Have it trigger when receiving on startStopwatch_confirmed and broadcast on closePopUp.


image


This Pop-Up will appear after they click the button, and it will confirm that they want to activate the stopwatch. If they click “Enable” it will broadcast on a channel, then go back through a trigger that will close the pop-up. If they click “Disable” it will close the Pop-Up.

Step 3: Sending Back to Start

Put a teleporter right on top of the starting spawn pad like this:


Now, set Visible In-Game to No and Teleport Here when Receiving on startStopwatch_confirmed.


When the player starts the stopwatch, it will teleport them back to start as it warned them in the Pop-Up.

Step 4: Setting "Time Wasted"

“Time Wasted” will a property that stores the amount of time has passed since the start of the game.
Have a trigger trigger when receiving on startStopwatch_confirmed. REMEMBER TO SET Visible In-Game and Trigger by Player Collision TO No.


image
Now add this blockcode:
When triggered…
image
Create this property:


When the player starts the stopwatch, it will set the property “Time Wasted” to seconds into game. The time they have “wasted” before starting the stopwatch.

Part 2: Stopwatching?

This system will be used to run the actual stopwatch itself.

Devices
  • 2x Triggers
  • 1x Property
Step 1: The Trigger Loop

Create a trigger and set Visible In-Game and Trigger by Player Collision to No. Add a delay of 1. Like so:


image
Now add this blockcode:
When triggered…
image
I get it is a little blurry, just zoom in.
Now copy and paste the trigger and wire them in a loop with the wires like this:

Finally go into the first trigger and have it trigger when receiving on startStopwatch_confirmed

In the end it should look like this:
image


This explanation is going to be long so brace yourself.
When the player starts the stopwatch it will start the triggerloop. Every second, the trigger loop will run the blockcode:
First it defines the “True Seconds” variable which is ‘Seconds into Game - “Time Wasted”’. Second, it defines the Minutes the stopwatch has been running. This is ‘Rounded Down “True Seconds” / 60’. Say they have been playing for 215 seconds. 215/60 rounded down = 3. Third, it defines the seconds variable. (Which is set to text for reasons later). The Seconds is ‘“True Seconds” - [“Minutes” x 60]’. Now it checks if the “Seconds” is < 10. This is because when we need to add “:0” so that way it says 1:09 instead of 1:9. When it begins to define the Seconds variable, it runs some extra code because of THE CURSED FLOATING POINT ERROR. (I feel your pain ClicClic). Finally it sets the “Stopwatch” property to the “Stopwatch” variable.
Phew. I’m done.

Step 2: Property

Create this property:


This property stores the Stopwatch.

Part 3: Viewing Summit Times

This section will create the button that will pause and show the “Summit Times”.

Section 1: "Summit" Times

You only have to make one of these.

Devices
  • 1x Game Overlay
  • 1x Pop-Up
  • 1x Property
  • 1x Counter
  • 2x Triggers
Step 1: The View Button

Create a Game Overlay that is a Button Overlay Type that Overlay Position is Bottom Right. Make the Overlay Text say View Times and broadcasts on viewTimes. Set Visible On Game Start to No and have it Show when receiving on startStopwatch_confirmed. Finally set both Scopes to player.
Now add a trigger that has Trigger by Player Collision and Visible In-Game set to No. Have it broadcast on updatePopUp. Now wire the Game Overlay to the Trigger:


This button will only show up they start the stopwatch. Then when they click it, it will broadcast on a channel.

Step 2: Summit Times

Create a Pop-Up with a Header of Stopwatch: 0:00 and a Content of Summit 1 - 0:00 | Summit 2 - 0:00 | Summit 3 - 0:00 | Summit 4 - 0:00 | Summit 5 - 0:00 | Summit 6 - 0:00 | Summit 7 - 0:00 | Summit 8 - 0:00 | Summit 9 - 0:00 | Summit 10 - 0:00. (You don’t need to 10, just do as many summit as you have). Have this open when receiving on pauseStopwatch. Have Closable by Player set to No and have it close when receiving on restartStopwatch. Last the CTA. It should say Unpause Stopwatch and broadcast on restartStopwatch. Finally add this blockcode:
When receiving on channel update PopUp:
image


This popup will open/close when receiving on specific channels. The blockcode sets the times based on properties.

Step 3: Time Setter

First create a Trigger that has Trigger by Player Collision and Visible In-Game set to No. Have this trigger when receiving on summitReach.


image
Then do this blockcode
When triggered…
image
Now add a counter. Set Starting Value to 1 and have it increase when receiving on increaseSummit#. Set Visible In-Game to No and Count Scope to player. Set Update Property Yes have it update property Summit.
Finally create this property:


When this trigger triggers, it will set the property “Summit[Summit Property Value] Time” to the value of Stopwatch. Then it will broadcast on a channel that will increase “Summit” by 1.

Section 2: Summit Zones

You will have to make one of these for each Summit

Devices
  • 1x Zone
  • 1x Trigger
  • 1x Wire Repeater
The Only Step

Create a Zone and fit it to where when they reach the new summit, they must go through it. Now wire it to the trigger like this:


The trigger should broadcast on summitReach and set Visible In-Game and Trigger by Player Collision to No.

image
Now wire the zone to the wire repeater:

Set the wire repeater to have a 0.5 delay and then wire it to the trigger:

image


When a player enters the zone, it will broadcast through a trigger and then deactivate it.

Part 4: Stopping the Stopwatch

This will stop the stopwatch when you are ready.

Devices
  • 1x Zone
THE STEP

Have the Zone broadcast on stopStopwatch when the player enters.
Now go into your trigger loop and have both deactivate when receiving on stopStopwatch.

Part 5: Designing the Stopwatch

Make a Game Overlay that has a position of Top Right and the text says: Stopwatch 0:00. Set visible on game start to No and have it show when receiving on startStopwatch_confirmed. Now add this block:
When receiving on updateOverlay
image

Outro:Thats all! I hope you enjoyed! I will add more pictures and clear some things up later. This is my last guide before the summer and will probably bump it when I get back : ) I’m going to miss yall so much! See you in August!

Also...

Freg. Because why not.
image


  1. My fastest is 3:38/Bad Ending 5:27/Good Ending ↩︎

  2. Call to Action ↩︎

19 Likes

Awesome guide! I would :heart: if I could!

3 Likes

I love the guide for this stopwatch :hearts:

1 Like

YaYaYaYaYaYaY!!!
Another Awesome '83 GUIDE!!!

2 Likes

Oh that would be amazing to see! Can’t wait to see that in game!

I wish I had gimkit dreams… or at least that I would remember them.

Great guide, I think the idea is very creative and useful!

suggestion, make another overlay that shows the time of every summit and the total time

2 Likes

Great Guide @recalledMemories Hope you finish your hollow knight map soon

1 Like

Its going.

6 Likes

BUMP

I would say this was 2/10, maybe 3/10 difficulty. It has a lot of microcosms.

Bump.

1 Like

[bu : mp]

BUMP great guide but it’s complicated. @chrysostom same!!!

1 Like