DoujinStars
Casper Gaming
Casper Gaming

patreon


[CGMZ] Dungeon Tools

! See bottom of post for updates !

Hi all,

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. 

[CGMZ] Dungeon Tools

Comments

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.

Casper Gaming

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"

VallinVl

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.

Casper Gaming

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?

David Bignell


More Creators