[[ Place Anything with Rotate, Flip, Stacking, and Drag Build. ]] Grid Building Plugin provides a building system for placing objects in your game scenes through snapping to tilemap grids during gameplay. You select BuildingRules that should apply to building objects in your game and can even set individual rules for each placeable object such as resources that must be spent in order to instance the object in your scenes. Now the build system supports rotating, flipping, stackable objects, and press and hold multi-object placement for your 2D Godot Top Down and Platformer games. You can try the plugin demos at chris-tutorials.itch.io/grid-building-godot === Tutorials Playlist === youtube.com/playlist === Project updates === chris-tutorials.itch.io/grid-building-godot/devlog youtu.be/j05kIn26XoM === What this plugin does === - Creates a visual way of letting players choose where to place Godot scene objects into the game world with a visual preview and grid targeting tools. The targeting system snaps to the TileMap grid which means objects being placed will snap onto those grid positions. - You can rotate, flip, stack, and drag multi-build your placeable objects in building mode. - Lets you define the rules for when and how an object can be placed into the game world. Before an object can be placed, it must meet each building rule's requirements. You can also define your own rules by inheriting from the BuildingRule or TileCheckRule classes. - Provides optional base inventory (ItemContainer) class that can be used with the include SpendMaterialsRule for subtracting material resources from a user's inventory. A generic spending rule is also included if you want to write your own inventory class. - A full working demo you can use as reference or base for your own game scenes. Feel free to reuse any UI components used in the demo. === What game types does this plugin work with?=== - Top Down 2D Godot Games where levels are built with TileMaps. - Metroidvania / Sidescrolling Games made with TileMaps - Isometric 2D Tilemap Games (New to 3.2.0) - Works with all collision shape 2Ds and collision polygon 2Ds for generating placement collision shapes against the grid. You can read more about the details of using this plugin in the project readme file or watch my video tutorials (highly recommended) === How to Use === 1. Save and backup your project before upgrading. Disable the plugin in Project -> Project Settings -> Plugins if enabled. Remove any old grid_builder plugin folder & contents if it exists. Download and add the .zip contents to your project in the directory addons/grid_building. 2. Turn on the plugin in Project Settings -> Plugins tab. 3. Add a GridTargetingSystem node to your main gameplay scene, either in the editor scene hierarchy or by instantiating the object 4. Add a BuildingSystem node to your main gameplay scene, either in the editor scene hierarchy or by instantiating the object 5. Add the grid_positioner.tscn scene to your node 2d game world parent. This should be the parent node where your game tilemap is a child of. 6. Assign external dependencies to each system under the External Dependencies property group. You can do this either in the inspector or as your level nodes for targeting objects like the build system placer. 7. To trigger build mode, you call set_buildable_preview on the BuildingSystem. You need to define a placeable resource file which holds the settings for placing a scene object into the game. 8. To make the system place the object into the game world, press the action(s) defined in the BuildingSystem for object placement. You set these up in the Godot project settings and then add the string names of those actions in the BuildingSystem inspector. By default ui_accept is used which you could test by pressing enter in a new project. 9. To limit where and when a placeable scene can be instantiated, you must use set a BuildingRule. Add rules you want to include for all placeables to the BuildingSystem and placeable object specific rules to each placeable resource file. You can read more below about build rules and what the default rules do. 10. For your RuleCheckIndicator, you can start with the provided templates. Right click them to create an inherited scene and save it your own project. You only need one indicator template set in the building system now. You can set the default textures in the template scene, but override failing textures for each rule as well. (If you want a yellow tile to show as a special case for invalid tile checks for instance)