Elektrine lite

← 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)

  • @Fizz@lemmy.nz 2026-05-02 12:33

    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

  • @Fizz@lemmy.nz 2026-05-05 07:14

    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

  • @Kronusdark@lemmy.world 2026-05-02 14:18

    I agree with Sevon and if you want to learn more about the benefits, look up “type safety”.

    Open ##2267285

  • @sevon@lemmy.kde.social 2026-05-02 12:12

    You should probably use a class instead of a dictionary for tile attributes. Going through the property list is pretty weird too.

    Open ##2583731