Time Control

Script allowing you to control time.

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

You will need to install an extension such as Tampermonkey to install this script.

Tendrás que instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Tendrás que instalar una extensión como Tampermonkey antes de poder instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Tendrás que instalar una extensión como Stylus antes de poder instalar este script.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

Para poder instalar esto tendrás que instalar primero una extensión de estilos de usuario.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

Autor
AGitUser0001
Instalaciones diarias
0
Instalaciones totales
64
Calificaciones
0 0 0
Versión
1.5.6.1
Creado
30/03/2024
Actualizado
14/10/2025
Tamaño
18.3 KB
Licencia
MIT
Funciona en
Todos los sitios

This script creates a global time object that allows you to control time in a webpage. This object is only available to access in Developer Tools contexts while time.hidden is true (default true). Developer Tools contexts are contexts where the call stack ends with an anonymous scope in Chrome or Firefox, or global code@ in Safari, as well as where a set of Developer Tools utilities exist as properties on the window object or its prototype chain. Currently, we check for $, $$, $x, clear, copy, inspect, keys, values. In top-level eval scopes while hidden and outside of Developer Tools contexts, we throw a ReferenceError when attempting to access time. We determine eval scopes using stack introspection. This behaviour is necessary to allow code that utilizes eval(str) to check for a global variable (str = 'time') to detect the variable normally. 'time' in window will still output true.

We wrap Date.now, Performance.prototype.now, AnimationTimeline.prototype.currentTime, and Event.prototype.timeStamp with a Proxy that adjusts what is returned when the state has been modified. We wrap setTimeout and setInterval with a Proxy that adjusts the timeout/interval parameter while the state is modified. requestAnimationFrame is wrapped with another Proxy that adjusts the DOMHighResTimeStamp by wrapping the input function if the state has been modified.

The time object contains:

  • toString(): string Returns the time as a string, should be equivalent to window.Date().

  • valueOf(): number Returns the time as a number, equivalent to time.now.

  • jump(newTime: number): void: Jumps time to newTime, a number.

  • shift(shiftTime: number): void: Shifts time by shiftTime, a number.

  • reset(resetTime: boolean = true, resetScale: boolean = true, resetDebug: boolean = true): void: Optionally syncs the scale and/or time with real time in the page.

  • get debug(): boolean:

  • set debug(value: boolean): void: A boolean that controls logging of calls.

  • get hidden(): boolean

  • set hidden(value: boolean): A boolean that controls whether the time object is available only in Developer Tools contexts or All contexts. Defaults to true.

  • get now(): number: The current time on the page. Should be equal to window.Date.now().

  • set now(value: number): void: Time jumps to value.

  • get pristine(): boolean: Whether time has been modified.

  • set pristine(value): void: If value is true, syncs

  • get real(): number: The actual time from DateConstructor.now().

  • get scale(): number: The current scale that time moves at.

  • set scale(value: number): void: When set, changes the scale of time.

  • storage

    • toString(): string Returns the time in storage as a string, should be equivalent to (new window.Date(time.storage.now)).toString().
    • valueOf(): number Returns the time in storage as a number, equivalent to time.storage.now.
    • get profile(): string | null: The current profile id, or null if unset.
    • set profile(value: string | null): void: Set the current profile to value, or unset profile if value is an empty string or null.
    • get profiles(): string[]: A list of profiles.
    • erase(profile?: string | null): Erase the profile profile, or the default profile if none is provided.
    • save(saveTime: boolean = true, saveScale: boolean = true, saveDebug: boolean = true): void:
    • load(loadTime: boolean = true, loadScale: boolean = true, loadDebug: boolean = true): void: Saves or loads the current time and/or scale in script storage.
    • reset(resetTime: boolean = true, resetScale: boolean = true, resetDebug: boolean = true): void: Resets the time and/or scale in script storage.
    • get now(): number: The current time in the script storage.
    • set now(value: number): void: Time is set to value in the storage.
    • get pristine(): boolean: Whether time has been modified in the storage.
    • set pristine(value): void: If value is true, syncs time to real time in storage.
    • get real(): number: The actual time grabbed from DateConstructor.now().
    • get scale(): number: The current scale that time moves at in the storage.
    • set scale(value: number): void: When set, changes the scale of time in storage.