GithubHelp home page GithubHelp logo

kobewi / metroidvania-system Goto Github PK

View Code? Open in Web Editor NEW
1.0K 1.0K 49.0 12.34 MB

General-purpose framework for creating metroidvania games in Godot.

Home Page: https://godotengine.org/asset-library/asset/2301

License: MIT License

GDScript 100.00%
godot metroidvania

metroidvania-system's Introduction

My Godot assets (also available in the official AssetLib)

Also my cool Godot 3.x to 4.0 project converter, written in Ruby: Another Godot 4 Converter


You can support me on Ko-fi if you like what I do

Buy Me a Coffee at ko-fi.com

Some GitHub stats idk

KoBeWi's GitHub stats

Language stats are lying, they don't count my contributions.

metroidvania-system's People

Contributors

ekiwookie avatar kobewi avatar mattkalt avatar nathanhoad avatar poohcom1 avatar rbaltrusch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

metroidvania-system's Issues

Game Debugger closes immediately

Scenario 1

  • create a new project
  • import through the asset library
  • start the debugger
  • window opens, and closes immediately

Scenario 2

  • clone repository
  • import as project from disk
  • start the debugger
  • window opens, and closes immediately

Both scenarios produce no errors nor any feedback in the console.

Clicking previewed scene doesn't highlight or change scenes

Hello! I'm working on implementing this addon and I can't seem to get the functionality of clicking the scene previews to load the adjacent scene. It doesn't highlight or have any of the expected interactions provided on the main page, any ideas what is going on?

scenes not loading properly on exported project

Hello! Thanks for sharing this add-on, it is great! I was just curious if you've run into any issues in the past when exporting your project?

When I test things in Godot everything seems to work just fine, however when I tried exporting a windows build the game script seems to be failing to properly load scenes. I am using the game script from your sample project with some very minor tweaks. This is the first time I've made a game in Godot so apologies if I'm missing something obvious.

Here is a video showing what I mean (sorry it won't let me upload more than 10 MB) https://www.dropbox.com/scl/fi/ks8br1xs419k5mro25316/metsys_scene_loading_issue.mp4?rlkey=vwniia72m2sevlzq37ek08bci&dl=0

Happy to provide more info if it seems like it might be related to metsys or open a bug in Godot github if it seems like a more general issue.

MetSys.get_current_coords() not working as expected

image

I have a cell with a scene assigned at ( 0 , 0 , 0) using MetSys.get_current_coords() in the room prints:
image

all my other rooms are made with the map builder and dont have this issue, I have tried validating and reloading the map data.

Can't install at all?

Hiya! Excited to try the addon! :)

So far I have tried cloning the repo directly from here, installing via AssetLib into a blank project, installing and restarting, etc. I get a variation of the same errors each time.

Pasted Graphic

Or...

Pasted Graphic 1

I am using Godot v4.2.2.stable.official [15073afe3] on OSX.

Scenes not found when importing a MapData.txt

Hi!
First of all, thank you for creating this great tool. Almost everything works as expected. and it is very helpful for the game project I am working on with 2 other people.

The problem:
My friends and I are using Git for the project, and whenever the map designer adds new rooms and scenes to the map, their MapData.txt is updated. After they push their file to the repository, I update mine to their version and I am able to see the updated map layout in the map editor. I can inspect the assigned scenes by hovering the rooms using the Map Viewer, but I cannot access the scenes by clicking their rooms. If I try to run the game, the rooms are also not assigned.

I get this error:
Resource file not found: res://scenes/maps/Foliage_Veil_Corridor.tscn (expected type: )

image

Reassigning them manually fixes the issue, but this will become a problem later when the map gets bigger. If a new person joined the team, for example, they would need to reassign all of the scenes one by one and this could get tedious... ^^'.

Is there a work around for this?
Thanks in advance and have a great day.

MetSys not loading on export with MapData.txt intact

When I export my project, it acts similar to #31 , however the MapData.txt file is being exported, as it exists in the PCK and my GDScript can access it. If it helps, I am using a mix of GDScript and C# in my project, and am on Godot 4.2.1.

Feature request: rearranging rooms in Room Layout mode

I find that editing cells can be cumbersome, and I find myself losing a lot of time re-creating portions of the map as my levels grow. It would be very helpful if the layout editor allowed to drag-and-drop rooms around the map preserving their linked scene, symbols and other elements. But even just the ability to rearrange merged cells as a group would be wonderful.

I imagine this could work by holding alt or shift while in Room Layout mode. Ideally dropping a room would only be allowed if all the new cells are empty, to avoid losing any data.

Thanks for creating this awesome plugin!

Cannot enable the plugin with parse error

I am using godot v4.2.1 stable offical version(under win10 system), according to the quick start you provided, I tried to install the plug-in.

  1. Clone the repo.
  2. Drag Metroidvania-System\addons\MetroidvaniaSystem into my project, and the error message is:
  res://addons/MetroidvaniaSystem/Database/BorderPaintEditor.gd:0 - Parse Error: Could not resolve class "res://addons/MetroidvaniaSystem/Database/CellPaintEditor.gd".
  res://addons/MetroidvaniaSystem/Database/BorderPaintEditor.gd:15 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Database/BorderPaintEditor.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Database/CellPaintEditor.gd:0 - Parse Error: Could not resolve class "res://addons/MetroidvaniaSystem/Database/SubEditor.gd".
  res://addons/MetroidvaniaSystem/Database/CellPaintEditor.gd:54 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/CellPaintEditor.gd:67 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/CellPaintEditor.gd:67 - Parse Error: Cannot infer the type of "cell_data" variable because the value doesn't have a set type.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Database/CellPaintEditor.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:0 - Parse Error: Could not resolve class "res://addons/MetroidvaniaSystem/Scripts/MapView.gd".
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:20 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:57 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:62 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:62 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:72 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:72 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:74 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:77 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:81 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:81 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:87 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:87 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:89 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:93 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/MapViewer.gd:93 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Database/MapViewer.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:46 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:46 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:50 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:50 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:53 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:53 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:55 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:56 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:64 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:64 - Parse Error: Cannot infer the type of "cell_data" variable because the value doesn't have a set type.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:71 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:72 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:72 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:72 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:73 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:74 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:74 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:74 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:75 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:76 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:76 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:77 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:78 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:78 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:98 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:98 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:99 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:101 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:101 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:101 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:102 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:104 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:104 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:105 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:107 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:107 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:107 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:108 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:113 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:149 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:150 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:157 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:158 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:159 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:160 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:169 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:170 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:178 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:179 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:186 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:187 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:194 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:195 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:202 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:203 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:210 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:210 - Parse Error: Cannot infer the type of "new_scene" variable because the value doesn't have a set type.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:227 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:227 - Parse Error: Cannot infer the type of "cell_data" variable because the value doesn't have a set type.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:234 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:235 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:236 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:240 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:242 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:243 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Database/SubEditor.gd:245 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Database/SubEditor.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/EditorExtension/MetSysEditorExtension.gd:80 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/EditorExtension/MetSysEditorExtension.gd:82 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/EditorExtension/MetSysEditorExtension.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Scripts/CollectibleFoundItem.gd:13 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/CollectibleFoundItem.gd:15 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/CollectibleFoundItem.gd:15 - Parse Error: Cannot infer the type of "room" variable because the value doesn't have a set type.
  res://addons/MetroidvaniaSystem/Scripts/CollectibleFoundItem.gd:22 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Scripts/CollectibleFoundItem.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Scripts/MapBuilder.gd:13 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapBuilder.gd:19 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Scripts/MapBuilder.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:48 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:54 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:55 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:58 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:58 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:58 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:95 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:152 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:154 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:155 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:160 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:160 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:163 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MapView.gd:168 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Scripts/MapView.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Scripts/MetroidvaniaSystem.gd:178 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MetroidvaniaSystem.gd:273 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/MetroidvaniaSystem.gd:300 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Scripts/MetroidvaniaSystem.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Scripts/PlayerLocationInstance.gd:7 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/PlayerLocationInstance.gd:17 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/PlayerLocationInstance.gd:17 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/PlayerLocationInstance.gd:18 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/PlayerLocationInstance.gd:18 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/PlayerLocationInstance.gd:18 - Parse Error: Cannot infer the type of "player_position" variable because the value doesn't have a set type.
  res://addons/MetroidvaniaSystem/Scripts/PlayerLocationInstance.gd:20 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/PlayerLocationInstance.gd:20 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/PlayerLocationInstance.gd:20 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Scripts/PlayerLocationInstance.gd:20 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Scripts/PlayerLocationInstance.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Template/Nodes/Minimap.gd:33 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Nodes/Minimap.gd:35 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Nodes/Minimap.gd:49 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Nodes/Minimap.gd:56 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Nodes/Minimap.gd:58 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Nodes/Minimap.gd:59 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Nodes/Minimap.gd:61 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Template/Nodes/Minimap.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/PassageAutomapper.gd:9 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/PassageAutomapper.gd:27 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/PassageAutomapper.gd:27 - Parse Error: Cannot infer the type of "cell_data" variable because the value doesn't have a set type.
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/PassageAutomapper.gd:29 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/PassageAutomapper.gd:29 - Parse Error: Cannot infer the type of "override" variable because the value doesn't have a set type.
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/PassageAutomapper.gd:34 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/PassageAutomapper.gd:36 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/PassageAutomapper.gd:36 - Parse Error: Cannot infer the type of "override" variable because the value doesn't have a set type.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Template/Scripts/Modules/PassageAutomapper.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/RoomTransitions.gd:11 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/RoomTransitions.gd:14 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/RoomTransitions.gd:18 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/RoomTransitions.gd:18 - Parse Error: Cannot infer the type of "prev_room_instance" variable because the value doesn't have a set type.
  res://addons/MetroidvaniaSystem/Template/Scripts/Modules/RoomTransitions.gd:25 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Template/Scripts/Modules/RoomTransitions.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Template/Scripts/MetSysGame.gd:28 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/MetSysGame.gd:33 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/MetSysGame.gd:43 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/MetSysGame.gd:43 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/MetSysModule.gd:-1 - Compile Error: 
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Template/Scripts/MetSysModule.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/Template/Scripts/SaveManager.gd:87 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/SaveManager.gd:108 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/SaveManager.gd:112 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/SaveManager.gd:123 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/Template/Scripts/SaveManager.gd:126 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/Template/Scripts/SaveManager.gd" with error "Parse error". (User)
  res://addons/MetroidvaniaSystem/MetSysPlugin.gd:106 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/MetSysPlugin.gd:107 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/MetSysPlugin.gd:108 - Parse Error: Identifier "MetSys" not declared in the current scope.
  res://addons/MetroidvaniaSystem/MetSysPlugin.gd:111 - Parse Error: Identifier "MetSys" not declared in the current scope.
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://addons/MetroidvaniaSystem/MetSysPlugin.gd" with error "Parse error". (User)

Could not find base class "CustomRunner"

Godot 4.2.1.

I have this issues in different projects with this plugin (and in some not).
When I start Godot I got these error messages:

  res://CustomRunnerIntegration/Config.gd:1 - Parse Error: Could not find base class "CustomRunner".
  modules/gdscript/gdscript.cpp:2788 - Failed to load script "res://CustomRunnerIntegration/Config.gd" with error "Parse error". (User)

Is there a known fix for this?

on running the sample with Godot 4.2 beta 1

assertion failed
game.gd / line 233
assert(room_name in map_data.assigned_scenes)


If I run the project with Godot 4.1.2 it get in the deadly loop

  • starting project
  • closing the editor
  • restarting
  • repeat...

Transistions sometimes stutter

Some transitions are smooth between rooms, but some are "stuttering".
In this example, the first one will always "stutter", the second one will always be smooth.

2023-12-09.11-08-29.mp4

Have not figured out why that happens, yet

empty start room

Om starting the sample game with Godot 4.2 beta 4
I get an epty start room with HUD (mini-map + 0/6 collectibles)
the hero is not seen.

When working with a team, rooms are reset.

For some reason, someone from the team, for example, adds a new room and sends a commit, and others switch to this commit, then the entire map is reset, that is, in the map editor itself, everything seems to work, but when launching the project, the scenes are reset. and when you try to edit the scene in the presence of RoomInstance, RoomInstance is not shown in the editor itself, that is, there is RoomInstance in the node tree, but it is not in the scene editor

How to respawn player at last SavePoint instead of room entrance?

This is what I have so far under the kill() in player.

func kill():
	print("You Died")
	var save_manager := Game.SaveManager.new()
	save_manager.load_from_text(Game.SAVE_PATH)
	Game.get_singleton().load_room(save_manager.get_value("current_room"))
	var start := Game.get_singleton().map.get_node_or_null(^"SavePoint")
	position = start.position

currently start.position just returns null, but I am able to load the previous room that had a save point. However, I'm wondering if there is a better way to go about this?

Any docs page planned?

I feel that this add-on has a lot of potential, but it lacks a good and more non-linear docs than just the README.

If you guys do not have anyone working on the documentation, I would be pleased to be the first one to take that seat :)

Using function like goto_map() in sample project causes MetSys to change maps twice

I used your game script in the sample project as a base for when I started my game and I noticed some interesting behavior if you use goto_map() manually (such as in the portal block). Calling it will correctly load the new map, however since the user is responsible for setting the players position in the _process function, once the map loads it will trigger the metsys signal room_changed and end up calling goto_map() again.

I believe you can reproduce this in the sample project as well by putting a break point in the goto_map() method and entering the portal. I believe this is undesirable behavior because it isn't obvious it will happen and it results in multiple RoomInstance nodes ending up in the scene tree. In my project I reproduced this by calling goto_map() from a portal like block that teleports you to a distance room in the same z layer.

I was able to workaround this in my project by simply adding a teleport_to_map() function that is the same as goto_map() but just sets a variable so that it knows to do nothing on the next room_changed signal. It would be nice if MetSys provided a function for teleportation to avoid this situation though since I believe it is not obvious that this happens and could confuse users, particularly if they change state when they load their scenes as the logic will get triggered twice.

Happy to help contribute a change to metsys or the sample project if you agree this should be changed and have a desired approach in mind.

TODO: Pat yourself on the back!

Pat yourself on the back for doing a ton of great work that enhances the Godot community just by its very existence!

Go ahead and close this ticket right away.

Error when starting template game

I get this error:
Attempt to call function 'instantiate' in base 'null instance' on a null instance.

E 0:00:00:0841 MetSysGame.gd:40 @ load_room(): Resource file not found: res://SampleProject/Maps (expected type: )
<C++ Error> Condition "!file_check->file_exists(p_path)" is true. Returning: Ref()
<C++ Source> core/io/resource_loader.cpp:279 @ _load()
MetSysGame.gd:40 @ load_room()
Game.gd:52 @ _ready()

The map files are in my projects folder in \Metroidvania-System-master\SampleProject\Maps
image

Clicking the previews to navigate to connected scenes doesn't do anything

In the description it says: "Godot Editor integration > You can click the previews to navigate to connected scenes." I'm selecting the RoomInstance node but cant interact with the preview. In the description gif the preview border is yellow when hovered and can open the scene by clicking. This is not happening with me, tested in Godot 4.2 and 4.2.1

Stuck when adding MetSys.set_player_position(global_position)

For some reason i get stuck at line 92 when i add the MetSys.set_player_position(global_position)

func visit_cell(coords: Vector3i): save_data.explore_cell(coords)

with

Invalid call. Nonexistent function 'explore_cell' in base Nil

so i tought that i would check the sample project but i cant get that one to run ither.

I am using Godot 4.2 beta 4

Error in sample project.

"Attempt to call function 'instantiate' in base 'null instance' on a null instance." in this line:

map = load(path).instantiate()

On the sample project. I can't run it. I'm sorry, it looks promising. Noob to Godot. What I'm doing wrong?

Thanks for your work.

help with map builder

trying to use the map builder. Are there any additional things I need to do to get it working with the minimap?

image

image

image

image

I've got the map working without the map builder but have been struggling to get it implemented with it, any help would be greatly appreciated.

Map on reload of scene empty.

Hi,

I used the code from your Game.gd, as well as the Code from the Minimap as well as the MapWindow.
My issue is, I load the Game scene from my main menu with
get_tree().change_scene_to_file("res://Scenes/main.tscn")
and all is fine. Mini Map is shown, current room is visible. Everything works.
image

Then I quit to the main menu again and there I press new game or continue, loading the scene again with get_tree().change_scene_to_file("res://Scenes/main.tscn") and suddenly the map is completely empty.
image

If I instead quit the entire application and start it again, the map is shown.
image

Is there some component or something I need to do to refresh the map data when loading the scene again?
Like do I have to somehow restart MetSys or something?

I could upload my current project somewhere, if you wanna check out the coding.

Invalid after exporting the game

When I use plugins to make games, everything is fine. But when I tried to export my game for someone else to test for bugs, a lot of the plugin-based features didn't work in the exported game.

I thought I had changed something to cause the problem, so I used a brand new plug-in to export the sample project test, but the results were the same.

Metroidvania.System.2024-01-22.09-46-15.mp4

Persist assigned scene after map edit

As mentioned in the README, currently any modifications to rooms in the Map Editor will remove assigned scenes. I think having some basic scene persistence will be a good QOL improvement, especially for devs who edits their room often.

Since there's a lot of ambiguity of how to maintain assigned scene when editing cells, I have an outline for how the assign scene can be determined after a map edit. The gist of it is to try to maintain assigned scene even when there is ambiguity based on a few factors, to make it as seamless as possible.

Cells Removed

  • If any room remains intact, keep the assigned scene.
  • If any room is split into multiple parts, have a consistent logic to determine how to keep the assigned scene (like always favor the assigned scene of the top-left-most cells).

Cells Moved

  • Always maintain cell assigned scene after the move.
  • If cells are moved on top of another room, prioritize the selected room prior to the move. (I forgot if the behavior here merges room or create border, will check and update later)

Cells Added

  • If any room is expanded, keep the assigned scene.
  • Prioritize assigned scene id of the room closest to the starting point of the draw action. For example, if you start drawing a line from Room A to Room B into a single large room, the logic will assume that the combined new room is Room A.

An alternative, simpler to implement system could also be to only maintain assigned scene when there is no ambiguity, and clear the scene otherwise. I haven't looked into the Map Editor code yet, so that could be a factor on how difficult this is to implement.

Let me know what you think.

Cannot enable plugin

I'm relatively new to Godot, so I don't know if this could be a problem on my part or not. I followed the instructions, but these errors came up in the output when I tried to enable the plugin. I went to the script it listed, and I saw the error
"Identifier "MetSys" not declared in the current scope." on lines 106-108 and 111.

I am using the most up to date version of Godot.

Errors:
res://addons/MetroidvaniaSystem/MetSysPlugin.gd:106 - Parse Error: Identifier "MetSys" not declared in the current scope.
res://addons/MetroidvaniaSystem/MetSysPlugin.gd:107 - Parse Error: Identifier "MetSys" not declared in the current scope.
res://addons/MetroidvaniaSystem/MetSysPlugin.gd:108 - Parse Error: Identifier "MetSys" not declared in the current scope.
res://addons/MetroidvaniaSystem/MetSysPlugin.gd:111 - Parse Error: Identifier "MetSys" not declared in the current scope.
modules/gdscript/gdscript.cpp:2726 - Failed to load script "res://addons/MetroidvaniaSystem/MetSysPlugin.gd" with error "Parse error". (User)
core/config/project_settings.cpp:341 - Property not found: editor_plugins/enabled

Godot help

Help 2

MultiMap system

Can I create different separate maps for my project, with my own separate scene sets?

Picked up collectibles remain visible for one frame when level is loaded

This is not very evident in the sample project included with MetSys as the level is not reloaded on death, but on my game I reload level on death and it makes it very obvious.

The problem is that when loading the level and registering the object, the stored callback does a queue_free() which doesn't take effect until the next frame, leaving the object visible.

This is my quick fix for my project (if object is CanvasItem, I set visible = false and call queue_free()):
image
but maybe can use a lambda instead.

Issue with room name not in assigned scenes (sample project)

Hey there!
I'm starting out with a fresh clone of this repo and trying to run the sample project.

Immediately upon running the program I'm getting an assertion error here https://github.com/KoBeWi/Metroidvania-System/blob/master/addons/MetroidvaniaSystem/Scripts/MapData.gd#L488

The error is that my room name :cv55nv1c2sbiq is not in assigned_scenes. The assigned_scenes dictionary is mostly human readable tscn filenames. there are a couple UIDs in that dict but none of them match the one that I have in the room_name variable.

Godot version 4.2. Windows 10.
I haven't made any changes other than cloning the repo and pressing run.

I have no idea of how to setup

When I put the addon in the folder, I don't know how to start to use it in a new project. Also I tested copying the example project and changing some things, but I got weird errors.

So, could you mind to make a guide to know how to start a new project with your asset? It would be a great help. Thank you.

SampleProject does not work out of the Box

Steps to reproduce.
Get a clean download
Open in Godot 4.2 beta4
Open the MetSys Tab
Switch to Map Viewer
Click on any room.
This error message is generated: Resource file not found: res://SampleProject/Maps/StartingPoint.tscn
(expected type: )

I managed to get it working after a while by fiddling around, I have no idea what did it. There is some dependency on a datafile or resource that needs to be initialized I suppose. When I then reversted the repo back to its clean download state to try and figure out what was going on, the bug appeared again. I will fiddle around with it some more to figure out exactly what step it is that makes it working.

Sample project renders cells seemingly in the wrong position.

I have obtained and installed the addon regularly from the AssetLib. After I adjusted the settings of the sample project, the project was compiled without errors. The game starts with the StartingPoint scene, the player can be moved normally up to the exits.
The minimap also shows the change of the cell, but at the level borders the adjacent room does not appear as expected or the room appears in the wrong position, so that it is not possible to move across and the player falls down.

GD 4.2.1. / MetSys 1.1
Win 11

Aufzeichnung.2023-12-29.195959.mp4
Aufzeichnung.2023-12-29.200111.mp4

image

Consider prefixing type names with MetSys prefix

I have been using MetSys but wanted to move to using a Resource for saving data.

I unfortunately created a SaveData.gd with class_name SaveData, which immediately caused Metsys to crash loop restarting Godot non-stop, due to the naming conflict with:
const SaveData = preload("res://addons/MetroidvaniaSystem/Scripts/SaveData.gd")
in MetroidvaniaSystem.gd.

It would be great if MetroidvaniaSystem used names like MetsysSaveData, MetsysSettings, etc, to prevent naming conflicts like this. Usually it's easy to figure those out, but the fact that it causes a reload loop makes it quite annoying.

Assertion failed.

I tried to create a new project with this plugin, but it is not working and I don't know what to do.
What I did:

  • Download the Plugin +SampleProject.
  • Activated Plugin
  • Changed the Map Path in the settings to correct one
  • Run the project

I got this error: Assertion failed.
File: MetroidvaniaSystem.gd
Line: 256

Is there a fix for it?

Tested on MacOs

MetSys restart failed on basically clean project

I just went to the asset store and downloaded the latest version into my barebone project, which consists of nothing but a Player with FSM and a tilemap.

I am using Godot 4.2.1 and I do not see how I can have naming conflicts.

image
image

Use resource UID instead of resource path for scene reference

Hi! I've only been using this addon for a few days, but I'm loving it so far.

One thing I would like to see implemented (or as an optional setting) would be storing scene references via resource UIDs rather than resource paths, so that renaming scenes wouldn't break references.

Usually this is pretty simple to refactor as you can replace resource paths with uid paths without issue, but I noticed that the path stored in MapData.txt has res:// trimmed off, so I'm not sure if there are other logic being done to the paths that could make this a bit more difficult to refactor.

Either way, let me know if this is something that would fit with the project, if so I'll be happy to work on a PR.

Assign scene window does not work with mouse

Godot 4.2.1

When you press 'Scene Assign' and click a room, a window appear.
In this window you cannot choose a scene with the mouse. You have to scroll threw the scenes with the arrow keys.
The only things that are clickable with the mouse are the three buttons 'create new scene', 'cancel' and 'Open'.

Bildschirmfoto 2024-01-29 um 17 04 07

Where is the settings_file and how do I modify it?

I just downloaded version 1.1 and I can't understand how to start it. The README says this

After adding the plugin and enabling it, a file called MetSysSettings.tres will appear in your project. It contains settings for the plugin. You can move it to any directory, but you should modify addons/metroidvania_system/settings_file to point to the new path. Next thing to do is edit the settings file and customize all the fields (see here for more info). The most important one is map_root_folder, which defines where will your map scenes go. This is also the location of your MapData.txt file, which stores the world layout.

The problem is that in MetSysSettings.tres there is nothing called addons/metroidvania_system/settings_file. It only has options for Theme, Map Root Fodler, In Game Cell Size, and Custom Element Script. There is nothing in the Godot Project Settings or the Godot Editor Settings referencing addons/metroidvania_system/settings_file. There is nothing in project directory either. The folder res://addons/MetroidvaniaSystem/ contains nothing that is named settings_file.

I don't know how to start using this plugin. I don't know what the settings_file is supposed to be or how to modify the path to it.

Rooms layout is sometimes off the grid

As you can see with the white room border line, the rooms' layout is not always the same. Which leads to problematic transitions (you can get stuck in a wall)

image vs
image

(the one line is about 8 pixels lower than the other)

Map data file does not exist

I followed the documentation to set the path for the MapRootFolder, and under this path, there is a corresponding MapData.txt file. However, after exporting the project and running the project from the console, I get the warning "Map data file does not exist". I used a translation software to translate this, so some parts may not be accurately expressed. Please excuse any inaccuracies.
0H_HR83WF7RNB1}RI0LOZUB
9GZ`AT2){J OM I}@EHBIA2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.