Decided to Delete This

So we have a bunch of timers. To not fill your entire screen with guides, here is a screenshot:

Intro

So why am I making a guide on this when there are SIX guides on this? And how does this use AUO? For the first question, all the other guides have one flaw: these timers cannot time with a precision under a tenth of a second. The second question will be answered at the end of the guide.

The Guide

First, place a property called “Num ms” that is a global number property. Next, place a counter that receives on “Add Real ms”. This should be global scoped. Now make a player-scoped property called “Dummy”. This serves to convert the scope to player. This should broadcast on “Add Real ms” when its changed. Make a counter that is player-scoped. It should increment “Dummy” when receiving on “Add ms” Make a relay broadcast on “Add ms” to all players. It should receive on “A Add ms”. Make a repeater that stops on a channel. First, make it start on “Add ms”. Next, make it end on “Add ms” as well. When it repeats, it should broadcast on “A Add ms”. Finally, place a lifecycle that triggers the relay.

And that’s it! Or is it? This setup induces mass lag. And why did we even use a repeater?! Here is the answer: Use the max concurrent tasks per player. This limits the lag by limiting the amount of channel pulses that are sent out. For large amounts of players, use a smaller number. For smaller numbers of players, use a larger number.

Here is the picture:

image

The clock just seemed right for this guide.

Calibration

This timer is not perfect, and it probably does not time perfect milliseconds. So, what does? Triggers do, repeaters do, and basically anything with a delay. Assuming that the AUO timer is precise (always gives the same time interval), we can compare it with a trigger and say that 10 increases marks one millisecond or something like that.

So where do we start? First place a trigger with a delay of .1s down. This should be triggered by the lifecycle. Make a property called “Benchmark”. In the blocks, it should set “Benchmark” to “Num ms”. So now we know how many increases are in a tenth of a second. But how many are in a millisecond? For that, still in the blocks, we just set “Benchmark” to itself divided by 100. Now, whenever we want the number of milliseconds that have passed, we just need to take “Num ms” divided by “Benchmark”.

Concept

How does this work? Well, this operates on the principle of AUO: no 2 conflicting channel pulses can ever run at the same time. This makes it so that the 2 channels run at slightly different times. This guide works by measuring that lag in AUO, or timing AUO. This is both the strength and weakness of this system.

Difficulty
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
0 voters
3 Likes

Nice guide!!!

2 Likes

Great guide!

3 Likes

Thanks!

2 Likes

Fascinating!

2 Likes

burmp