[RMMV-MZ] Custom Timer System
A downloadable RPG Maker MV Plugin
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)
Download
Click download now to get access to the following files:
Development log
- Public Release v1.10Feb 01, 2020
Comments
Log in with itch.io to leave a comment.
Dude this is so freaking cool! I cant wait to try it out!
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?
He is not alive anymore, a year ago , so you need to explain more or try the webforum with the issue and screenshot so the community can try to help you.
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
as he is not among us, visustella is obfuscated so it's hard to patch it.
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.
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.