Home Creators Posts Import Register Favorites Logout

Downloads

Content

This plugin adds a reset, arrow, bomb, hookshot, interact, boomerang, and lantern tool to your game. Make your dungeons much more strategic.

! SEE BOTTOM OF POST FOR UPDATES !

Hi all, introducing [CGMZ] Dungeon Tools!

Today we have a plugin I have been working on for quite some time now, the Dungeon Tools plugin! This adds the reset, arrow, bomb, boomerang, and hookshot (coming soon) tools to your game. These function as you may expect: reset will reset the map to how it was when entered, arrow will shoot an arrow that can activate events it touches, boomerang will throw a boomerang that can pick up events it touches, and the bomb tool sets a bomb down that can explode nearby events.

There is some eventing necessary to get these tools to interact with the correct events, so I have also included a demo project which shows how I approach making dungeons. You don't have to do it how I do with self-switches, I just prefer that to avoid using global switches whenever possible.

You can get image resources for the tools from the attached demo as well.

Let me know if you think something could be done better/more user friendly/have any other tools you'd like to see.

Update Sept 30, 2021: The hookshot is now implemented, though I do plan to add a visual for a chain part of the hookshot. The functionality of the hookshot should all be there though. You can shoot it at something (across a gap) and if it connects it will pull the player towards the grapple point. The demo has been updated for this as well.

Update Oct 14, 2021: Compatibility for VS plugins

Update August 30, 2022: Added a new tool type, the Interactive Tool. This is a simple tool (such as pickaxe/axe/etc) that when selected will interact with an event the player is facing. While this could be easily evented, it was brought up that some might want the player to need to have the axe tool selected before using an axe to cut down the tree, for example. Also, You no longer need to use the version of CGMZ_Core attached here as it has since been made public so the most updated version of CGMZ_Core from my website will work. The demo has not been updated to include this, but let me know if it is confusing how to use the new tool to you and I can update the demo.

Update Oct 27, 2022: Added some options to help control access to the tools and the select scene. Now you can disable the select scene if tools are disabled. You can also individually disable/enable a tool, which will make it unselectable (but still show) on the select scene if discovered.

Update April 7, 2023: This plugin now supports game pads with both a button for opening the tool select scene as well as using the currently selected tool. Also added an animation that can play for the Interact tool, and you can choose to only show the animation when it successfully interacts with something. Added better control over the Dungeon Tool scene and calling it when disabled/enabled. Finally, this update fixes an issue with interacting with erased events.

Alpha R2 update: This plugin now supports Touch UI! You can have a Touch UI button for using tools, bringing up the tool select menu, or cycling tools. Speaking of cycling tools... you can now assign a button to cycle tools for both keyboard and gamepads. This will move to the next tool in the select menu, and can be used outside of the select tool menu. I have uploaded a ButtonSet image that includes images for dungeon tools. Using these is optional as you can also make your own button images.

Lastly, this update also adds custom boomerang pickup text, by typing a custom message at the end of your CGMZDT PICKUP comment (see documentation). These custom boomerang messages support text codes. If no custom message is detected, it will default back to the boomerang message set up via the plugin parameters. This will let you type custom messages for important pickups.

This update changes the gamepad button parameters from the number type to a select type with the gamepad buttons as options. This should make it easier to configure your game pad controls.

This update also fixed a bug that could cause the player, followers, or events to start appearing above star passability tiles.

This update adds some window customization options for the tool select scene. You can now change the padding, back opacity, windowskin, and window tone for the windows shown in the tool select scene.

This update also fixes a bug with the hookshot tool. It would previously fail to connect when it should have in some cases where 4 direction passage settings were used. It should now always be able to connect to events where it makes sense to do so.

Finally, this update standardized sound effect parameters similar to other [CGMZ] plugins. Unfortunately, this means when updating you will need to reset your sound effects for things like using the tool and the bomb explosion. 

This is quite a significant update, with a new tool type: the lantern tool. A lantern tool is a proximity based tool that can activate or deactivate event self switches by the distance the event is from the player. When the player walks within the range of the tool, the self switch will turn ON, and when the player moves out of range, the self switch will turn OFF. You can use this for many different unique mechanics, one of which could be invisible paths over impassable pits. You can also optionally show a [CGMZ] Light Effect on the player while this tool is equipped. See gif below for example:

 

This update also added tools that can require the player to have an item in their inventory to use, and tools that can consume items from the player's inventory upon use. Together, you can now make an arrow tool that requires arrows to be in the inventory to use, and consumes these arrow items when used.

This update also adds an integration with [CGMZ] Event Movement. You can now set up certain dungeon tools such as the arrow, boomerang, or hookshot to stun an event when it connects with the event. One use for this could be to add a tactical element to on-map enemies, where your player may opt to stun the enemies with their dungeon tools instead of fight.

This update comes with some quality of life updates. The Dungeon Tool Select scene now supports a maximum line count to show before scrolling, and it will only show lines as needed up to this maximum. This should make the scene look much cleaner than before. A plugin command was added to force the use of the currently equipped tool. The tool icon parameter now uses the plugin icon select ui.

This update adds an integration with [CGMZ] Scene Backgrounds for the tool select scene. This integration replaces the old static image background that used to be provided in this plugin. To add a scene background now, you will need to configure the background options in [CGMZ] Scene Backgrounds and then type the preset id into this plugin.

This update also added an integration with [CGMZ] Controls Window which works similarly. You will set up your controls window preset via that plugin, and then type the id of the preset into this plugin.

A somewhat difficult to find bug was fixed as well. The plugin should no longer crash in rare cases when shooting a tool directly at a wall for the very first time after loading a game. The crash would occur in the case that the loading time of the tool's bitmap was longer than the time the tool was active. The plugin now checks if the tool is still active after the bitmap finishes loading to prevent this issue. 

This version finally adds the rope sprite to the hookshot. It works by showing more of the rope sprite as the hook gets further away from the player, so your rope sprite should be at least as long as the max range of your hookshot. See below gif for how it can look.

This update also adds the option to rumble the gamepad when a tool is used as well as when the tool interacts with an event it can affect. This can help immerse your controller players more. This requires [CGMZ] Rumble.

An integration with [CGMZ] Window Backgrounds was added so you can show an image as your current tool and tool select window backgrounds. This can include animated scrolling parallax images.

The transparent windows parameter was removed. Instead, it has been replaced by new parameters for each window to allow you to select Window, Dim, or Transparent options. 

Note: This update also added some refreshed dungeon tool sprites, you can find them in the new attached zip file.

This version added the option to jump to the hookshot when it grapples something. This is a simple flag added to the hookshot tool, so you can have some hookshots that use the old gather method and others that use the new jump function if you want. The hookshot can now also go slightly past where it connects, to provide a more convincing connection visual.

This version also converted the tool access plugin command into a standard game switch. This should be easier to use and more familiar to use. You can also set the switch parameter to id 0 to always have access to tools.

This version fixes a bug with the boomerang where it could get stuck on an event on the way back, locking the player in place potentially forever. It is now able to pass through anything on its way back to the player.

This version adds an integration with [CGMZ] Window Settings. This plugin is where you will find all of the old window tone, windowskin, window padding, window background opacity, and window background style customization options that used to be present in each of my plugins as separate parameters.

This version fixes a bug with the hookshot tool going past the connection point when set to faster than normal speed values. The hookshot is now also drawn behind the player when not facing down. The followers will now gather at the same speed as the player when gathering after a hookshot.

This version adds a sound effect that can play when an arrow, boomerang, or hookshot collides with something. As a reminder, since dungeon tools are part of save data, to get this sound effect to appear in a saved game you will need to use the Modify Dungeon Tool plugin command to add it in for your saved games, or if your game is released you can also use [CGMZ] Patch to add it in for your players' save files.

A bug was also fixed with the lantern tool where it was not properly unequipping when another tool was equipped after using the lantern until a map transfer.

This version adds the option to queue a common event on tool use, so you can event effects that occur when the player uses a tool. This new setting is under the common properties all tools share.

This update also fixes a bug with the hookshot not properly resetting the player's move speed and other settings if it hooks onto something while at max range and it is not set to jump gather style.

Note: In a future version, I will be moving this plugin towards not saving tools so you can change their properties in the plugin parameters and have the changes reflect in your saved games. Every time I update this plugin, I get support requests about new features not working in saved games, which currently you need to use the Modify Tool plugin command to fix your tools in saved games. Soon, only a tool id will be saved, and the rest of the data will be temp data. If you use Modify Tool to change tools throughout your game, that behavior and all Modify Tool plugin commands are deprecated and should instead use Discover / Remove Tool plugin commands. However, I wanted to get this bug fix for the hookshot out first.

This version is a major change to how this plugin handles tool data. Previously, all tool data was saved. This meant that you needed to use the Modify tool plugin command to change your tools. These have been removed, as tool data (other than which tools the player has access to and a few other things) is now not saved. This solves one major problem I have had tons of support requests for any time I updated this plugin previously: new parameters added to tools did not work with saved games.

The change to non-saved data for most tool parameters means you will now be able to update without worrying about your saved games no longer working with the update, and you will also be able to edit tool parameters and immediately see the results within your saved game playtests.

Tool data being saved used to allow for unique mechanics such as starting with a basic arrow, and later it upgrades to a fire arrow. This behavior is still possible, you will just need to make 2 tools and change access to them when the upgrade occurs. This was also more of a niche feature, so I think proceeding with this new way of managing data makes the most sense.

I also realized while going through the code that None is hard coded when the player has no tool equipped. This has been changed to a text parameter, especially important for games in other languages.

Files

Comments

Axysyn Interactive

How do I figure out what numbers correspond to which gamepad buttons?

David Bignell

Hi! Fantastic plugin once again! Is there any way I can force a tool to be used, so for example, instead of going into the tool menu I can just make the player drop a bomb or use an arrow via perhaps a script call?

Casper Gaming

Hi, you can use the plugin command to force equip a tool for the player, and then you could use the script call: const tool = $cgmz.getDungeonTool($cgmz._currentDungeonTool); $cgmzTemp.startUsingDungeonTool(tool); I can add a plugin command to cause the currently equipped tool to be used for the player in a future update. Thanks for the idea.

HoleItsAll (edited)

Comment edits

2026-09-16 19:00 Hello, very interesting plugin with great potential for creating an interesting game, thank you! I have a small remark, I think it is worth adding to the demo of the game when contacting the girl before entering the cave, information about "tool select key and tool key" ( D and Q) and option to change in plugin menu. I didn't understand what I was doing wrong at the first attempt to pass the demo and spent some time figuring out the "mechanics"
2024-04-15 19:16

Casper Gaming

Ah I see, thanks for the feedback. The demo is meant to be opened up in the editor, so I thought it would be something people would know after looking at the parameters. I can see how it might be confusing though, in a real game there would definitely be mechanics tutorials so I can add that in.

Lynn

Hey, there! This plugin is extremely cool, thank you so much for coding it! ⸜(。˃ ᵕ ˂ )⸝♡ I just have a quick question; when I equip a tool and press Q to use it, nothing happens? This is also the case in a blank project. Is there anything specific I need to do to activate the plugin's effects?

Jona

This hook shot was exactly what I was looking for. Thank you so much! このフックショットはまさに私が探していたものだった。 本当にありがとう!

Diblackthorn

When combined with your crafting gives CGMZ_Utils is not defined error. What am I doing wrong? TY

Doianu Games

This is super cool. I try to bring more ninja/stealth-elements in my game and was already thinking about something like a hook 👍👍👍

PassingbyPosts

hookshot works well from my testing will play with compatability over the weekend

Luis Roberto

It's a fantastic plugin ♥ Thank you so much, my friend!

Synchromystic Media

Awesome little features here. I'm curious as to how the graphics for the chain part of the hook shot would be implemented... And perhaps that tool could easily be remade into something else, such as a magnetic device that attracts the player towards the target.

Vuono87

any chance other tools could be added? like a knife/axe (cut shrubs or trees) or a pick/hammer (break rocks or other objects.) also is it possible to add a timer to the bomb instead of steps and a chain or rope to the hookshot.

Zachary Sevik

This is exactly what I’ve wanted to implement! Trying to go with a golden-Sun style of puzzles but being able to sshoot switches and hookshot across distances would make it more akin to zelda. On top of being able to freeze/burn in my game, now there’s actual tools to use too!! ❤️