A downloadable RPG Maker MV Plugin

Download NowName your own price


Title: CT_Bolt's Custom Timer System
Current Version: MV(v1.10) / MZ(1.00) 
Description: An extremely customize-able timer system for RPG Maker MV & MZ



List coming soon, very many to list.



Install your plugin and use the following Script Calls:


startTimer(settings) // settings is an object that can contain many various options. see below.

changeTimer(eventId, settings, mode) // if mode is used and set to 2 this will change an "extra" timer.

pauseTimer(eventId, toggle, mode) // set toggle to true to toggle paused

unpauseTimer(eventId, mode) // unpause the timer, if mode set to 2 this will change an "extra" timer.

stopTimer(eventId, mode) // if mode set to 2 this will change an "extra" timer.

Examples:

A)

startTimer({timerId: 1, eventId: 0, seconds: 60, commonEventId: 1, switchId: 1, switchMode: 2, selfSwitchId: 'A', selfSwitchMode: 2, selfSwitchMapId: 1, selfSwitchEventId: 1, script: $gameVariables.setValue($gameVariables.value(1)+1), intervalScript: script: $gameVariables.setValue($gameVariables.value(1)+1), intervalCommonEventId: 2, interval: 10, font: 'verdana', fontSize: 12, fontItalic: false, textColor: 'rgba(0, 255, 0, 255)', textOutlineColor: 'rgba(0, 255, 0, 255)', textOutlineWidth: 4, textVisible: false, useGauge: true, gaugeColorA: 'rgba(0, 0, 255, 255)', gaugeColorB: 'rgba(255, 0, 0, 255)', gaugeX: 0, gaugeY: 0, gaugeWidth: 28, gaugeHeight: 14, gaugeOutlineColor: 'rgba(0, 0, 0, 0)', gaugeTextOnTop: true, gaugeTopImage: 'gauge_top', gaugeBottomImage: 'gauge_top', x: 0, y: 0, width: 96, height: 48, screenLocked: false, expires: true, textPrefix: "Time: [", textSuffix: "]", visible: true, speed: 60, maxSeconds: 60, direction: -1, textMode: 1, textCodeOffset: 64, textArray: ['A', 'B', 'C', 'D'], topImage: 'timer_top', bottomImage: 'timer_bottom'});

This starts a timer using "player" timer and uses timerId #1 setting as a base, then adds a bunch of other manual(override) settings.

B)

startTimer({timerId: 2, eventId: 1, mode: 2});

This starts a timer using the first "extra" timer and uses timerId #2 setting from the plugin parameters set in the plugin manager.

Note the use of mode 2 which tells this to use an "extra" timer.

C)

changeTimer(18, {timerId: 5, seconds: 60})

This will change the timer of EventID #18 to the preset timerId #5 setting from the plugin parameters set in the plugin manager.

This also overrides the amount of seconds to 60

changeTimer(2, {timerId: 3}, 2)

This will change the second "extra" timer to the preset timerId #3 setting from the plugin parameters set in the plugin manager.

Note the use of mode 2 which tells this to use an "extra" timer.

timerId: Number // Preset Timer ID, these are set using Plugin Parameters
eventId: Number// Event ID, the Event ID of an event on the current map
seconds: Number  // Number of Seconds
commonEventId: Number // Common Event ID that is executed when the timer expires
switchId: Number // Switch ID that is toggled when the timer expires
switchMode: Number // Switch Mode, 0 = Off, 1 = On, 2 = Toggle
selfSwitchId: String // Self Switch ID that is toggled when the timer expires
selfSwitchMode: Number // Self Switch Mode, 0 = Off, 1 = On, 2 = Toggle
selfSwitchMapId: Number // Self Switch Map ID
selfSwitchEventId: Number // Self Switch Event ID
script: String // Script that is executed when the timer expires
intervalScript: String // Script that is executed at the set interval
intervalCommonEventId: String // Common Event ID that is executed at the set interval
interval: Number // Interval amount
font: String
fontSize: Number
fontItalic: Boolean
textColor: String
textOutlineColor: String
textOutlineWidth: Number
textVisible: Boolean
useGauge: Boolean
gaugeColorA: String
gaugeColorB: String
gaugeX: Number
gaugeY: Number
gaugeWidth: Number
gaugeHeight: Number
gaugeOutlineColor: String
gaugeTextOnTop: Boolean
gaugeTopImage: String
gaugeBottomImage: String
x: Number
y: Number
width: Number
height: Number
screenLocked: Boolean
expires: Boolean
textPrefix: String
textSuffix: String
visible: Boolean
visibleInBattle: Boolean
workingInBattle: Boolean
allowFollowInBattle: Boolean
speed: Number
maxSeconds: Number
direction: Number
textMode: Number  // 1 = 00:00, 2 = Text Code Offset, 3 = Random Text Array, 4 = Seconds Only, 5 = Text Array, 6 = Real Time, 7 = 00/60, 8 = Script
textCodeOffset: Number
textArray: Array
textScript: String
topImage: String
bottomImage: String 


Place the Note-Tags/Comments in Events to Setup Timers that automatically run everytime the map is loaded.

Use ,, (two commas) to seperate the timer Properties (or seperate with new line)

*FYI* Page Comments Take Priority Over Notebox

The format is similar to the script calls above, and is not case sensitive. Also javascript can be used.

Examples:

A)

Timer ID: 5,, TextColor: 'rgba(255,255,0,255)',, Seconds: 25,, FontSize: 22,, CommonEventId: 23

This will start a timer when the page is activated using TimerId #5 and then manually(override) a few other settings.

B)

Stop Timer
This will stop the timer

v0.70 Alpha Release (2018)
v1.00 Beta Release  (2019)
v1.10 Initial Release (02/01/2020) v1.11 Added support for Galv's Fishing Scene (03/11/2022)


StatusReleased
CategoryTool
Release date Feb 01, 2020
Rating
Rated 5.0 out of 5 stars
(2 total ratings)
AuthorCT_Bolt
GenreRole Playing
Made withRPG Maker
TagsCharacters, custom, maker, map, plugin, rmmv, RPG Maker, script, timer

Download

Download NowName your own price

Click download now to get access to the following files:

CTB_Timers.js 105 kB
CTB_TimersMZ.js 109 kB

Development log

Comments

Log in with itch.io to leave a comment.

I tried using it on MV,However, "$gameMultiPlayer is not defined" appears on line 1290.How should I solve this problem? Or can the author provide a project template?

I tried using it on MZ, yes I have the MZ plugin, for some reason nothing seems to happen? I'm using a lot of VisuStella plugins

(4 edits)

I get an error when trying to use this in RPG Maker MZ (yes, I used the CTB_TimersMZ.jps file): https://pastebin.com/V7QtaFB1 (I have listed the plugins used at the bottom.)

Cannot read property 'speed' of undefined

I just want a timer that shows in the middle and doesn't have the 0:0 portion, just like a 5 4 3 2 1 timer. But apparently the vanilla timer can't do that, so I'm trying to find a plugin that does. No, I'm NOT willing to give you my project, as it's a personal project that I don't want anyone to see yet.

I tested it and throws an error (conflict with other plugin) (MV), 
when checked the plugin, String.prototype cause this error.
Same thing I had with Khas on fixing the conflict.

this seems to fix it with other plugins, if you add new properties
to an String or Array.

Object.defineProperty(String.prototype, 'paddingLeft', {
    value: function(paddingValue) {
        return String(paddingValue + this).slice(-paddingValue.length);
    }
});

I didn't test it fully and multiple events yet to see it's effect.
but it also say you require a license (if not purchase it)?
or could it be used in non-commercial only and not commercial?
as that part kinda confuse me atm. I dont know if I could use it,
but its more a clarification for now.

(+1)

Thanks for the feedback :)

Any chance you could send me an exact screenshot of the error from the devtools console log screen?

not at this points, as it target a normal array that exist or string.
thing is, and what I readed, that you need to try avoid adding arrays or strings
directly to those functions, but define them as an addon to be safer.

once I play around again, I give you the error, but defining is better than
patching each individual plugin conflict :)

I'm not as good as you are and never will, but I try to learn and avoid
issues with them, so it's a good thing to do the same to avoid conflicts ^^

Just need to hang to it with the loads of parameter and possibilites.

anyway, once I continue to test (revert it back to the old string you used),
I give you the log, cannot tell when I continue to test, as I got a nice timer
plugin, but this can come in handy if they play nice,

I though x-y-offset was possible, so it can have some usefull part I can
think off.