Mighty Mouse Plugin for RPG Maker MV
A downloadable Plugin
This script adds additional mouse related functionality to MV including drag & drop. It's free but donations are encouraged if you would like to see future updates. Please do not re-post this script or attempt to pass it off as your own. It's free so just link to it so people know where to get it. Check the videos down below for ideas of what can be done with it. Read the extended terms below.
Warning: In order to get this plugin to function properly a fair amount of code had to be rewritten and even re-imagined. This may have resulted in a few old features breaking. The only one I can confirm at present is mouse-click player movement. Default click-based move routing isn't built to work with my new image based collision detection system. To address this would require rewriting it which I simply can't justify doing right now.
This script was created solely to introduce missing features such as hover detection, mouse related event triggering, and drag & drop. I feel it delivers well enough on that premise. It's a free script so it's given as is. I make no promises of cross compatibility with other scripts. Any future updates and/or upgrades that I don't deem as necessary depend entirely on the amount of donations and/or positive feedback received. If people aren't downloading this script it will likely not be updated.
Terms of Use:
1. Both free & commercial use allowed. Must credit me (Kingpin RBD) in-game.
2. Do not re-post this plugin/script or attempt to pass it off as your own.
3. You can freely edit the free version of this plugin/script and share said version as long as full credit for any & all of the original code is clearly made to me (Kingpin RBD) as the original content creator.
4. You may edit the exclusive version of this plugin/script for private use only.
5. You can include the free version script in your own related plugins as an included requirement, but it must not have been altered directly (include your edits in a separate plugin). You must also clearly credit me (Kingpin RBD) as the original content's (required plugin's) creator.
Note: If you charge for said plugin, you must also provide an official link to the free version of this plugin. See below:
https://kingpin-rbd.itch.io/rmmv-script-mighty-mouse
https://www.patreon.com/posts/31874153
6. You may not include the exclusive version in your own plugins as a requirement or otherwise.
I reserve the right to alter these terms as I see fit.
Final Word:
If you enjoy it & decide to use it be sure to spread the word. Donations are also welcome as well, of course. I also would enjoy copies of anything worthwhile you manage to create with it if you feel inclined. If it's good I might post a video of some gameplay on this page and/or my Patreon, so if that kind of free advertising interests you contact me. I hope you guys enjoy the plugin & appreciate the effort that went into it.
*Update - I've recently joined Patreon (Support Me). With that comes new options. I created a patron-exclusive version of this plugin. A version of the script will remain available for free on this page & will continue to receive core updates. Currently, the free version is: v1.3, which features major bug fixes and QoL changes. As such previous versions are obsolete & no longer available. You will want the update.
*Update July 2022 - The free version will no longer be receiving updates or support. Mighty Mouse v1.3 is officially the final free release & will continue to be available for free. Any future updates & fixes will apply only to the exclusive version so please support me by upgrading to that version & continue making bug reports & requests. The exclusive version(v1.7.1 onward) now features the ability to swap the default drag & drop mouse button through a plugin option known as "Mirrored Mode".
The exclusive version features "Reactive Cursor" which simply stated makes the cursor image change based on the state & position of the mouse. The cursor images are customizable. That version also features a number of helper functions detailed in the instruction file which should make things much easier for fellow coders. The lastest exclusive version of MightyMouse will be available to my patrons at the $1 teir at the link below:
Mighty Mouse Latest Patreon Version
Update: The latest patron-exclusive version can also be downloaded from here now for $2 so you can get it even if you aren't on Patreon now. It's still $1 for patrons & MightyGames is $3 vs the $5 to get it here including the $10 (MGE) version. Patrons also get to make suggestions & requests for future updates & it's by far the easiest path to communicate with me directly.
About the Screenshots:
The game you see in my screenshots is my a part of my MightyGames project. It's called Solo Pro. It originally included solitare versions of board games that can be fairly easily incorporated as mini-games in your own game projects (versions 1.25 & below). Note: The most recent updates will always include the latest exclusive version of MightyMouse, so there is no need to spend money on this page if you want that project as well. Since first posted, the project has become more of its own entity as it now features an AI & is receiving major updates & additions regularly.
It's main purpose remains as a proof of concept & to demo the potential of the MightyMouse system though it tweaks it substantially to make things work smoothly. Note: Versions 1.5 & are fully coded to maximize productivity & efficiency. They use events only as placeholders for start positions.
So far it includes only checkers & chess but it's very possible that I will expand it when time permits. If you've ever played yourself at chess or checkers you should find some fun in it though again its main purpose is as a demo. I may eventually add AI functionality to it but I'm currently working on other projects. The AI has already been added (versions 1.5 & up), also new games are already being added starting with versions 2.5 & up.
The entire MightyGames project folder, including any & all game projects & resources released under that banner, is available to patrons at my $3 tier as well $5 on here at the link above. Feel free to make any edits you need to or try to expand upon it for use in your own games. Just don't try to re-release it on its own or as your own. Installing it is simply a matter of enabling the MightyMouse & SoloPro scripts then copying over the maps & resource files. Create a transfer to the game select map to start & edit one of the 'System' events to tell it what to do & where to go on exit such as your game room map. Edit: Adding MightyGames to your own project is quite a bit different in versions 1.5 & up. View the included instructions file for details or message me on Patreon for help.
Important Update: After the core change to being fully scripted, it's become impossible to add MightyGames to your own project. I hijack the default startup procedure to add the games list to the title screen so I will need to create a unique method to call my title screen after saving any ongoing game data & then have it load the last saved state on exit to get that feature sorted, which is entirely doable honestly so it may well happen. Please just be patient on that.
Note: The MightyGames project uses the latest patron-exclusive version of MightyMouse, so if you purchase it through Itch for $5 you get also get access to that version of MightyMouse as well as a proper demo without having to become a patron. I know some people may simply prefer not to make a monthly commitment even at just a dollar so that's your way to the exclusive version. Spend $5 here or pledge $3 there, it's up to you. Updates for the project will always make it to Patreon first even if you buy it here.
Important Update: Version 1.15 is currently the final free version. People download this plugin pretty regularly which is much appreciated, but not enough people are donating or purchasing the paid exclusive version or the $5 MightyGames project (which again includes it for free btw). As such I'm currently investing my time & energy into improving those & giving patrons reasons to stick around. To be real, even with only 2 or 3 patrons at a time, I've netted far more income overall through Patreon so patrons get my priority versus freebie users.
Since there haven't been any reported bugs for version 1.15 & given it's nearly identical list of features, I see no point updating it again any time soon. If there are bugs, please report them to me so that smaller updates may roll out accordingly. Thank you for your continued support. Oh & I hope this plugin works with RPG Maker MZ as well. As this makes me next to no income already, I won't be upgrading until a sale or something gets it down to the $20-40 range, or someone gifts it to me.
Quick Feature Breakdown (Still a lot really but helpful)
All of these features can be disabled/enabled through plugin options.
Hover Detection - Self Explanatory. I include two functions which can be used to reference the hover status of the mouse & objects: TouchInput.overTarget(), yourObject.checkHover(). Obviously, 'yourObject' is the identifier for whatever you're checking such as $gamePlayer.
Event Triggering - By default, events
can now be activated on mouseover, mouseleave, and right-click. I
utilize right-click triggering to leave left-click available for the next
feature. You can also disable the options individually. You must use the event tags: <hoverStart> &< leaveStart> respectively in order to specify
events & event pages as mouse hover or leave activated. They can be placed in the 'Note' section or comments within pages.
Drag & Drop - Ok, so this is where the work really went in. It emulates browser drag & drop pretty accurately & should serve quite well to accomplish what you need. Note: It utilizes tile based movement so object will drop and snap appropriately. This allows for things such as proper collision detection. It handles all foreseeable issues like that for you.
By default, it converts all events, vehicles, & the player into into draggable objects & all maps into droppable maps. You can disable the all objects draggable option & use event tags to assign specific events as draggable. You can also disable droppable maps & opt to manually create individual custom sized & placed drop areas (dropzones) instead. Lastly, you can also turn drag & drop off entirely.
I include a function: $gameMap.createDropzone(), for creating custom sized & positioned drop areas on your maps. It automatically adds the new drop area to the active map & returns a pointer to it that you can assign to a variable. It's main benefit is the fact that objects will automatically try to snap to the center of drop areas so you can make a drop area that covers a particular section of the map & have it automatically move to the center. Inversely, you could create an array of close proximity 1x1 tile dropzones say inside of a sandbox in a park map then be able to drag children into any drop area within the sandbox. Check the help section for a proper example of how to use this feature.
The default settings should serve most purposes but I tried to include as much flexibility as possible. This feature was created with board games, puzzles, & tactical battle systems in mind so I included a good amount of additional features you'll find detailed in the script help (*cough* ...drop area specific animations & customizable sprites so they can be assigned unique images ).
By default, drop areas are not stackable but all can be made stackable by a plugin option. Stack priority has lower priority than default priority (above, below, same as characters). Objects in the same category will stack. Higher default priority objects will always be above & lower default priority objects under. Script calls can be utilized to make specific drop areas(dropzones) stackable. Just change the zone's .stackable parameter to true. That's something you're more or less only gonna think about with custom dropzones. Hope this info helps.
Image-Based Collision Detection* - This feature isn't optional. It takes the size of an object's character sprite into consideration when determining passibility. Basically, you can assign big character images to the player, events, and vehicles with automatically adjusted and corrected passibility. You will no longer pass through parts of the image that extend beyond the default location & dimensions(48x48px) of events & other objects. Keep in mind that in order for it make all parts of a sprite image as impassable the image size must be a factor of 48 for height & width. Edit, scale, & crop images to get the exact passibility you want. Events with no image are passable by default. Use a transparent 48x48 square image as a placeholder image or place the event on an impassable tile if that's a problem.
*Update: v1.1 fixes various bugs & makes this semi-optional. Disabling the Collision Detection plugin option will make the the game use the standard collision detection method for objects (Game_Character). That basically means that all objects will only occupy one map tile regardless of it's image-size (Big Characters too). This is useful for drag & drop games that utilize big sprites in close proximity such as my chess mini-game.
Centered Characters - This feature is closely related to my collision detection system but is optional and also accessible to individual events through event tag. It's mainly a cosmetic thing but I feel you will enjoy having the option when you see it in action. It makes the collision detection choose between smart detection and basic detection. It's disabled by default but can still be utilized through the event tag <center>. I works nice for certain types of images such as tall gates & certain Big Character sprites($-prefix).
Note: The drag & drop feature should work with touch input but it is untested and only included as an option so don't expect much as far as fixes and updates to it until/unless I'm able to purchase a touch compatible device and a copy of MV for it.
Status | Released |
Category | Assets |
Rating | Rated 5.0 out of 5 stars (2 total ratings) |
Author | Kingpin RBD |
Made with | RPG Maker |
Tags | drag-and-drop, mighty-mouse, plugin, rmmv, RPG Maker, RPG Maker MV, rpgmv |
Code license | MIT License |
Asset license | Creative Commons Attribution v4.0 International |
Links | Patreon, Patreon |
Download
Click download now to get access to the following files:
Development log
- Final Free VersionJul 30, 2022
- Updated Free v1.3.1 & Exclusive v1.7.1Jul 02, 2022
- MightyMouse + HoverDisplay DemoJun 06, 2021
- Updated Free v1.3 & Exclusive v1.7Apr 02, 2021
- Updated Free v1.29 & Exclusive v1.69Mar 27, 2021
- Updated Free v1.27Mar 27, 2021
- Updated Free v1.25 & Exclusive v1.67Mar 25, 2021
- Updated Free v1.23 & Exclusive v1.65Feb 28, 2021