Pokemon/Monster Catcher how do i store a bunch of variables

I’ve been developing a game like Earthbound for 2 months and I realized how cool it would be to let you “catch” the enemies

originally I was going to have a total of 8 team members so I didn’t care about the “variables”

but with this new idea, it’s probably gonna be a problem “I also had a bunch of exams so I couldn’t code for a month” that didn’t help me at all :frowning:

I was wondering if there was a way I could easily store a bunch of enemy’s data

what I’m storing rn is

-Name (nicknames)
-Speed (its a time based movement rpg"
-Total exp
-Total Hp
-Current HP
-totalmoves its like a reward ig???

some main characters have more because of special moves that would change them to a diff form etc

anyways is there any I can store a bunch of variables where the game won’t be slowed down from them

I have seen a few Monster Catcher games on gdev so if anyone could help me with this issue id be extremely grateful

if there’s different solutions it would also help a bunch

OR DRAW THEM OUT “literally on paper”

I am very bad with reading explanations and way better if I’m shown

if you’d like to do a wordy solution it would still help me greatly



These are my ideas I’m not exactly sure abt them tho
Both would take lots of time and I really don’t want to do one just for the system to break
the group one is hard to explain but it would check its typing then look at there stats

Store your data in a structure and export the structure as JSON.

Hi @PMKNjuice,

A structure is the way to go. You can use a global structure variable to support multiple scenes.

I attached a screenshot to show you how the variables can be structured, just make sure the “enemy1” ; “enemy2” etc. are the same as the name of the enemy objects so it can be easier if you want to reference an enemy dynamically by it’s object name “ObjectName()”.

Eg. to get the speed value:

Dynamic way: using a group for the enemy objects (let’s say it’s called Enemies), you can use this expression:

  • GlobalVariable(enemy_data[Enemies.ObjectName()].speed)

Not dynamic: to get the value for enemy1:

  • GlobalVariable(enemy_data.enemy1.speed)