Ready to Rumble: A Plugin for Controller Vibration

Status
Not open for further replies.

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
Ready to Rumble version 1.5


Created by BreakerZero with consultation from OS87 and Waterguy. Credit is required for any released games.

IMPORTANT ANNOUNCEMENT REGARDING THE NEXT RPG MAKER
In case you haven't yet heard the news, Kadokawa announced in June 2020 that the next RPG Maker edition will finally be released in the near future. While this is an exiting update for the community, it also means that some unfulfilled promises will have to be abandoned in preparation for this milestone event. And sadly this means I have to cancel all further work on this plugin, so unfortunately the long-delayed 2.0 update will not be happening because of this. (Not to mention that I'm so busy with my own game project that I don't even have the time for it.) I will instead ask for Kadokawa to take over responsibility for this feature in the new edition if it has not already been considered in the hopes that a proper, more feature-complete iteration on this functionality can be provided in a more official capacity.

The current plugin will continue to be available for active and licensed MV users, but no further development will occur from now on as we look forward to the next edition of RPG Maker. I have also rolled back the version to 1.5 so that paid licensing will not be required from now on (which was already instituted even before this announcement, but I'm reiterating on it anyway just because).

About the plugin
A lot of games these days offer a rumble mode that activates in response to certain game events (an explosion set off during a major plot twist, getting knocked out during a fight, or simply taking a hard fall to the ground) and this plugin has been designed to bring that experience to RPG Maker MV.

Release history:
v1.0: Initial RTM
v1.1: Unanticipated bugfix
v1.2: Added control switch assignment to change rumble mode status
v1.3: Small change to accommodate the possibility of a crash when a gamepad is disconnected. Also set the maximum supported values to eliminate possibility of the effect not working if set too high or too low.
v1.4: Replaces control switch with option menu function, and directs the effect to the most recenty-used gamepad. A very special thanks to YoraeRasante for this update.
v1.5: Added verification to detect the availability of a supported gamepad. As of this update, the functions will not be available if gamepad detection fails.

Getting Started
Because the launcher that ships with MV does not have the required functions that allow the plugin to work, the installer version will patch a compatible version of NWJS over the MV defaults as a precaution. Second, the default launcher package will be replaced with a 64-bit runtime stack deprecating any environment versions prior to Windows 7. (Don't worry about the prospect of problems, though - as long as your install and project are 1.6.x or newer the official NWJS redistributable and the MV launcher are completely interchangeable. But then again, you should at least back up the default launcher files before installing.) You can also download the plugin separately, if that's all you need.

Using the plugin
To activate the rumble feature in a given event or scene, use the following script call:

Code:
Rumble(strong,weak,time)
Strong is the maximum velocity of the effect's magnitude.
Weak is the exact opposite: the weak end of the effect.
Time is defined in milliseconds, so 1000::1 and 5000 is 5 seconds. (Get it?)
Note that neither weak nor strong can go over 1.0, and that magnitude values of 0.1 are completely ignored (and for obvious reasons). Also, the values for weak and strong can be reversed and still work properly.

For example:
Code:
Rumble(1,1,1000)
Rumble(0.4,0.2,500)
Rumble(0.3,0.6,5000)
Q&A

Why am I being asked to to patch the launcher?

Primarily because the one included with MV doesn't have the necessary updates that are required for the plugin to work properly. However, it's still a NW.JS executable so you can easily patch in a more recent version which provides the required feature support.

Why limit licensing to Windows platforms?

Unfortunately since OpenGL is not automatically installed on macOS anymore it would be difficult to gauge compatibility. Furthermore, the Apple support requirements in the October 2019 amendments to the official developer agreements mandate all apps to be distributed in x64 packages (meaning that legacy x86 code will not run at all on macOS Catalina, or any later versions for that matter). As with the default NW.JS launcher, this is a Kadokawa matter that is not going to happen anytime soon.


Download Now
Get it on itch.io
 
Last edited:

Wavelength

Edge of Eternity
Global Mod
Joined
Jul 22, 2014
Messages
5,402
Reaction score
4,792
First Language
English
Primarily Uses
RMVXA
Looks like a really cool feature!

Do you want designers who use this to credit both yourself and OS87 in their credits?
 

JohnOminae

Villager
Member
Joined
Mar 13, 2012
Messages
28
Reaction score
20
First Language
English
Primarily Uses
Other
THANK YOU BreakerZero! I was literally trying to get this commissioned for the longest time.
Seriously, thank you very much!
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
v1.0.1 out, please update if you're having issues. I encountered a few undetected irregularities that require a bugfix release.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,633
Reaction score
417
First Language
Portuguese
Primarily Uses
RMMV
Can I make a suggestion?
Adding the option for the player to turn it on or off in the options menu.
Because some people may not want it activated at some times.
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
Can I make a suggestion?
Adding the option for the player to turn it on or off in the options menu.
Because some people may not want it activated at some times.
Already on the roadmap. Thing is that this is literally my first submission of this kind, so anything that involved is something I'll have to properly analyze first.

EDIT: I now have a baseline set for the switch function. It's a bit bare for now and you'll have to do some extra work to make a persistent status out of it (file system entries combined with a simple yes/no are the easiest option, and I'm adding a parameter to read the state off a control switch) but I have started to build this out in version 1.0.2 which is set for release later today. EDIT 2: it's up!

EDIT 3: Obviously a global switch plugin may also work for this if you set the same switch for both purposes. Forgot to mention that earlier in case the file system method is not viable or functional.
 
Last edited:

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
1.0.3 is out. I was recently alerted to the possibility of a crash if a gamepad is disconnected during or prior to gameplay which I have addressed in addition to refinements that should hopefully prevent the use of values outside accepted range (such that any excess defaults to supported values instead of being ignored completely).
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,633
Reaction score
417
First Language
Portuguese
Primarily Uses
RMMV
Hey BreakerZero, I don't understand, why is 0.1 the minimum? I mean, I understand it having to be higher than 0, but why 0.05 isn't acceptable for example?
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
Hey BreakerZero, I don't understand, why is 0.1 the minimum? I mean, I understand it having to be higher than 0, but why 0.05 isn't acceptable for example?
Actually, the minimum is 0.2 as 0.1 doesn't do anything. I'm also enforcing a maximum time limit of 5000 milliseconds for the same reason.
 

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,633
Reaction score
417
First Language
Portuguese
Primarily Uses
RMMV
@BreakerZero I hope you don't mind, I made an edit of your code... Your actual code is almost intact, though.

I mainly did two things: one, I aded the option of rumble in the Options menu, so I removed your switch.
It just makes more sense, and as you said you just didn't add it because you didn't know how...

And two, I added a check to see which gamepad was the last one used, save its index, and that is the one that will rumble.
I had to do it because... in your original code the gamepad to rumble is gamepad index 0. I use Switch Joycons as a gamepad through vjoy and a driver by fosse. That means my controller, the actual one with rumble working, is usually, but not always, index 3.
With my change the gamepad will be detected and saved every time a button is pressed or an analog stick moved, its index will be saved, and it is that index that will be used for the rumble.

Hope you don't mind. I added a few comments in case you want to see how I did it, but to be honest the options thing I learned from a couple Yanfly plugins anyway :p

[Removed]

[EDIT] Oh by the way, I removed the bZero.PlayTime object. I have no idea why it is there in your code, since it is never used...
 
Last edited:

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
@Waterguy that was for development purposes which I ended up not having to use. As for the contribution, I will patch over to a new release later this morning.

EDIT: It's up! The option access change has been patched to official release bringing the version to 1.0.4. If you were using the control switch method from before it has been removed to allow for the updated control mechanism so update your projects accordingly.

EDIT 2: Change of plans. Temporary rollback initiated due to an unanticipated technical issue with the update.

EDIT 3: Reuploaded with a change to access detection so that it doesn't trigger when entering the options menu pending further analysis. In the event that detection is resolved this will be restored in a future version.
 
Last edited:

YoraeRasante

Veteran
Veteran
Joined
Jun 6, 2014
Messages
1,633
Reaction score
417
First Language
Portuguese
Primarily Uses
RMMV
Sorry, I forgot to add a function on the plugin. It didn't give an error to me because I already had it in another one.
Sorry for the mistake, hopefully it'll work fine now

The link I posted earlier should already point to a fixed version. You removed the problem function calls from yours so it's no problem anyway, but just to explain to people it was a function that is in the GamepadConfig plugin that is for free in the rpg makers dlc folder. It is just there to only shows the option if there is a gamepad connected.
 
Last edited:

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
Didn't have a chance to mention earlier, but 1.0.5 is up. This release includes the auto-detection mechanism and the latest contributions to the plugin structure.
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
Small update. I've added the plugin as an attachment in the event that issues should ever arise from the mirror download.

EDIT: Due to rampant theft in the community I am joining other plugin creators in moving to a paid distribution model. Therefore, this provision has been redacted and no longer applies.
 
Last edited:

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
Minor description update to account for x64 distribution mandates that are now required for compliance with Apple software developer agreements beginning with macOS Catalina. Please note that functional testing may be required to verify WebGL fallback due to the absence of OpenGL on newer macOS systems.
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
Major change in the status of the plugin. Like other creators I am moving the plugin to a distribution structure that will require a paid download and so I have temporarily removed the download links. The reason of course is the same as for other plugin creators: there has been a lot of theft going on, and the research between me and @Waterguy that helped to make this possible is not worth the trouble of keeping the plugin open to all. This may initially come off as a jerk reaction, however as I have just finished reading Yanfly's transition statement/retirement note I am doing this in solidarity. Therefore as I plan for release 2.0 (which will replace the current script call mechanic with a full plugin command implementation) I must unfortunately request that everyone immediately stop circulation of this plugin on penalty of suit. I take this very seriously and regret going to such extreme measures, however owing to the fact that the community as a whole is moving in this direction in light of the incidence I have no other choice in this matter.

Again, this may come off as rush judgment to some of you, but I have literally just decided after reading the information from Yanfly and Olivia (among others) who have already taken the unfortunate decision to move their plugin development capacity to a for-pay model and I have decided that with all the work that went into this frequently-requested plugin that I will be making the transition as well.

EDIT: Decision finalized. Payment will be required for all versions of the plugin.

EDIT 2: The new download links are up. You can pay on either itch or Gumroad to update your license and download the required version of the plugin. This is not a negotiable matter - you must purchase a license for version 1.6 in order to legally use the plugin from now on (and that's not including existing downloads of 1.5 and earlier which beyond an immediate revocation of further recirculation rights are not subject to the new acquisition mandate). Again, this is not something that I do without reason but due to the work that went into this plugin I cannot reasonably support existing downloads without risking the possibility of exposing my work to any further intrusion upon the community.
 
Last edited:

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
Small update on the status of the transition. Even if the plugin download says that a license upgrade is required, I have decided after further consultation that I will not be enforcing this. You will continue to be able to use existing downloads from before the license change and will not have to pay twice.
 

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
Forgot to update the announcement of the change in licensing to reflect that I have restored legal support for 1.5 and earlier on a restricted provisional condition. This has now been addressed to avoid confusion on the matter.
 
Last edited:

BreakerZero

Veteran
Veteran
Joined
Jul 8, 2018
Messages
871
Reaction score
355
First Language
English (USA)
Primarily Uses
RMMV
Planning for a 1.7 before I investigate the command structure that I plan to use in the big 2.0 update. It will most likely not have any major changes, but I will advance the number anyway to account for the fact that I will simplify the process of installation by replacing the current plugin download with a package that also downloads and updates the NWJS runtime package. EDIT: It's up!
 
Last edited:
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

I have been listening to the new music tracks for MZ included in the sample game projects ... for way too long. Quite catchy!
Small rant: While using SRD Hud maker for a battle hud, I typed in the wrong script call and got an error, but then forgot to delete the piece that caused the error before closed the Hud maker and hit F5 to restart the game. Now everytime I engage in a battle my game crashes...
:kaolivid:
Would Jump into Javascript be best off continuing to break down the MV core files, or would people prefer a quick detour to cover everything that's changed in the core from MV to MZ?

Forum statistics

Threads
100,531
Messages
976,923
Members
132,081
Latest member
Kaezyelnatz
Top