← Feed
@Fizz@lemmy.nz
How can I get variables from a gd script? - Solved
2026-05-02 11:18 UTC
Edit: ah i was reading an old doc because the reddit comment I saw was 6 years old. The property is get_property_list()
I have a script that is a global it contains a bunch of dictionaries that describe items. I need a way to get a list of the different types.
Searching for solutions I found docs.godotengine.org/en/3.2/…/class_script.html#c…
but I cant seem to get it working. Godot says “Function “get_script_property_list()” not found in base self”
Example of the what im trying to get a list of
var tile_dict_grass = {
"name": "grass",
"source": 1,
"atlas": Vector2i(1,0),
"move_speed": 0.80,
"path_cost": 2,
"fertility": 1,
"cleanliness": 1.5,
"flammability": 0.60,
"build_categories": "all",
"solid": false
}
var tile_dict_rich_soil = {
"name": "rich soil",
"source": 1,
"atlas": Vector2i(1,0),
"move_speed": 0.80,
"path_cost": 2,
"fertility": 1.4,
"cleanliness": -1.0,
"flammability": 0.0,
"build_categories": "all",
"solid": false
}
How im trying to get it.
func get_tile_dict():
var property_list = self.get_script_property_list()
var tile_list = []
for attr in dir(self):
if attr.startswith('tile_dict'):
value = getattr(self, attr)
tile_list.append(value)
return tile_list
Replies (4)
-
Im a new to all this so still learning whats available to solve the problems. From what I understand that would make each tile an object and I could call its properties like tile.move_speed but thats the same as a dictionary. I dont get what the difference is or what advantages a class would provide.
Open ##2267281
-
I would like you to know that I have taken your advice and implemented a class. It took a long time and I really didnt understand what the benefits were but now im feeling the power. The one class can hold all the functions that my thing needs and I can easily create a new class that extends the old one and adds a few tweaks its so good.
I had 8 map layers and each one needed getters and setters, signals and checks and all the basic helper functions so it felt good to move that all to a class and tidy things up.
Open ##2267283
-
I agree with Sevon and if you want to learn more about the benefits, look up “type safety”.
Open ##2267285
-
You should probably use a class instead of a dictionary for tile attributes.
Going through the property list is pretty weird too.
Open ##2583731