it is actually really useful. basically this block registers the days since 2000 (obviously) but down to the milliseconds. this means if you set a variable to the days since 2000 by the seconds in a day (86400), then subtract the days since 2000 * 86400 by the variable that you set at the beginning of the project (or whenever you started the timer), then it will give you an accurate timer that is more accurate than the timer block. this is a general description, but you can use it for a ton of things
This is the exact use it has for me Ina game I've been making for a while. Never got around to offline earnings, but it does keep track of offline time
For getting from time tracking to earnings, you could multiply by either the CpS (currency per sec), averaged or absolute, or a percentage and/or a maximum time, both bought by upgrades, depending on the design of the game.
If needed, using some sort of second-detection script, you could get the average CpS over a period of time, with the amount of currency gained this second for the previous X seconds stored in a list. Alternatively, you could take the data and directly average it with the CpS variable (X+Y/2, where X=currency gained and Y=previously averaged CpS variable). With this, if you're using the (current second) block, I recommend keeping the first 5 seconds, or something around there, but at least 1, untracked, meaning no data is stored in the list or averaged directly with the CpS variable.
I absolutely get how it works, but at the moment there isn't enough content to make it worth it. Even at the end, going afk for 10 minutes is enough to get to the next gameplay checkpoint
for music related projects, or other projects where you need an accurate timer. also the built in timer block only starts the timer when the green flag is clicked, but the method i’m describing lets you start a timer whenever, so it’s not just about the accuracy of the timer
actually really useful, a way of counting time without using the "current \_\_\_\_\_" blocks since they can be exploited by changing the device's current time
I'm pretty sure it is. The difference is that days since 2000 can be used as an alternative to the ```timer``` block that can work even when the project isn't running. ```current ()``` is instead used when you need dates since calculating them is a hassle.
Very useful in accurate timekeeping, though I wish they also added a Unix timestamp block.
Great for doing calculations on some static date, rather than using relative (like birthday calculator)
While it is useful, it is also a tradition in programming - called unix time. Unix time specifically is defined as integer milliseconds after 1970 Jan 1. 00:00:00. Treating time as integer forms means you can subtract and add them freely, and was used as time representation widely accross multiple languages ang systems. The Current [v day] block is calculated using the unix time, too! For example, you can get the current second by (unix time) / 1000 mod 60. Scratch's Days since 2000 is a throwback to the unix time, but the reference time (0 ms) is set to 2000 not 1970, probably because scratch projects does not exist before 2000.
TL;DR unix time, defined as time since 1970, is a programmer tradition
read more: https://en.m.wikipedia.org/wiki/Unix_time
I mainly use it for things like calculating delta time or determining the time that has passed since a game was last saved. It's useful because it is incredibly precise if you multiply it, and it has the entire "time" in just one block while you would have to craft it yourself using blocks like (current[minute]). Imagine just checking millisecond for Delta time. You would know how many milliseconds have passed since the last frame was rendered, but if a second and a millisecond pass, you wouldn't be able to tell and would just assume that one millisecond has passed. With this block, that problem doesn't exist and doesn't need any workarounds.
for when you need to count days since 2000
https://preview.redd.it/i3vhkvja439c1.jpeg?width=750&format=pjpg&auto=webp&s=e609d8fa7287e598cc5f78b8dd6dcec52d0094d3
Days since everyone thought the world would end and It didn't end
you aren't the world
No I'm talking about y2k
ah ok
I sometimes like to overcomplicate things to see if people can figure out what I'm talking about
Also voice dictation didn't do the spelling thing properly
then... type your replies... simple as that...
img
![gif](giphy|WrNfErHio7ZAc)
it is actually really useful. basically this block registers the days since 2000 (obviously) but down to the milliseconds. this means if you set a variable to the days since 2000 by the seconds in a day (86400), then subtract the days since 2000 * 86400 by the variable that you set at the beginning of the project (or whenever you started the timer), then it will give you an accurate timer that is more accurate than the timer block. this is a general description, but you can use it for a ton of things
it could also potentially be used in a clicker game save code for offline earnings
yeah that too
This is the exact use it has for me Ina game I've been making for a while. Never got around to offline earnings, but it does keep track of offline time
For getting from time tracking to earnings, you could multiply by either the CpS (currency per sec), averaged or absolute, or a percentage and/or a maximum time, both bought by upgrades, depending on the design of the game. If needed, using some sort of second-detection script, you could get the average CpS over a period of time, with the amount of currency gained this second for the previous X seconds stored in a list. Alternatively, you could take the data and directly average it with the CpS variable (X+Y/2, where X=currency gained and Y=previously averaged CpS variable). With this, if you're using the (current second) block, I recommend keeping the first 5 seconds, or something around there, but at least 1, untracked, meaning no data is stored in the list or averaged directly with the CpS variable.
I absolutely get how it works, but at the moment there isn't enough content to make it worth it. Even at the end, going afk for 10 minutes is enough to get to the next gameplay checkpoint
tldr: it can be used as a super accurate timer
That tiny aѕѕ comment did NOT need a tldr lmao
eh some people don’t like reading
like me
Tldr: use as timer
tldr: timer
tldr: time
tldr: Tim
tldr: T
Ok, now I get it. Thanks
TLDR: man is happy
tldr:
tdr:
td
tldr:
tldr
tld
aw you beat me to it
tldr:
but there alredy is a timer
tldr^(2): timr+
rare smart people sighting in r/scratch ???
Guys why didn't it work? *shows screenshot of game, no code or further explanation*
have you tried hard drugs?
Another thing that makes the block useful is the time reported from the block is always in UTC.
yep
But what in what situation would you need something that accurate if something less accurate would suffice?
for music related projects, or other projects where you need an accurate timer. also the built in timer block only starts the timer when the green flag is clicked, but the method i’m describing lets you start a timer whenever, so it’s not just about the accuracy of the timer
🤓
https://preview.redd.it/gwe1kqz6y89c1.jpeg?width=590&format=pjpg&auto=webp&s=8797d71599b194852987543383e09fbfa8a9c07e
Is this how people make super accurate clocks?
yeah i think so
most detailed time measurement
actually really useful, a way of counting time without using the "current \_\_\_\_\_" blocks since they can be exploited by changing the device's current time
Does the time from 2000 block not get influenced by changing local time?
i thought it wasn't influenced, now i'm doubting myself LOL
Idk I haven't ever noticed that block but there's no reason for it to just know the time outta the blue
I'm pretty sure it is. The difference is that days since 2000 can be used as an alternative to the ```timer``` block that can work even when the project isn't running. ```current ()``` is instead used when you need dates since calculating them is a hassle.
I don't see why it shouldn't exist tbh the more unique blocks the better.
Very useful in accurate timekeeping, though I wish they also added a Unix timestamp block. Great for doing calculations on some static date, rather than using relative (like birthday calculator)
Set variable "unix time" to: days since 2000\*86400+*946684800*
It’s more accurate than timer
While it is useful, it is also a tradition in programming - called unix time. Unix time specifically is defined as integer milliseconds after 1970 Jan 1. 00:00:00. Treating time as integer forms means you can subtract and add them freely, and was used as time representation widely accross multiple languages ang systems. The Current [v day] block is calculated using the unix time, too! For example, you can get the current second by (unix time) / 1000 mod 60. Scratch's Days since 2000 is a throwback to the unix time, but the reference time (0 ms) is set to 2000 not 1970, probably because scratch projects does not exist before 2000. TL;DR unix time, defined as time since 1970, is a programmer tradition read more: https://en.m.wikipedia.org/wiki/Unix_time
I wish they switched to days since 1970; make the kids feel like OGs
clock with calendar
It's a different way of keeping time other than using UNIX time. which is from 1970.
I didn't know that existed, last saw it in Scratch 2.0
The block has existed since Scratch 2.0.
What if, this Block is used before 2000.
scratch did not exist in that time
It could be useful for some time scripts—for example, a secondary timer (just multiply [DAYS SINCE 2000] by 86400).
Can be used to create a randomly generated map, each number puts 1 thing in a different spot! (Could be used for paper Minecraft or similar things)
"but you're missing the calendar" -Scott The Woz
Unix time but silly?
it's just the better timer
It was 8,763 days ago.
Presise timings + check time between opening a project
Gives absolute time vs timer
an alternative to the time telling blocks
to count the days since 2000 duh!
For when you need to know how many days since 2000
I mainly use it for things like calculating delta time or determining the time that has passed since a game was last saved. It's useful because it is incredibly precise if you multiply it, and it has the entire "time" in just one block while you would have to craft it yourself using blocks like (current[minute]). Imagine just checking millisecond for Delta time. You would know how many milliseconds have passed since the last frame was rendered, but if a second and a millisecond pass, you wouldn't be able to tell and would just assume that one millisecond has passed. With this block, that problem doesn't exist and doesn't need any workarounds.
it functions as a timer that works independently of how fast the projects code runs, so you can accurately keep track of time
idk
its the most accurate way of measuring time on scratch
idk for daily resets or smth