How to differentiate levels in an endless runner game?

Hello everyone,

I am new to Unreal Engine 4 and I apologize if this question has been posted before.
I recently created a foundation for my endless runner game by following some YouTube tutorials.
I stored all my functions for spawning the tiles in the ThirdPersonGameMode Blueprint. The code is working as intended, it spawns endless tiles with obstacles and after a certain time, it deletes them.

But now I have reached a stage in the development where I want to add multiple levels for my game.

Given the fact that all my obstacles and tile spawning are stored in the ThirdPersonGameMode, how could I differentiate between the levels?

For example, I want level 1 to be easy, so I can modify the spawn obstacle rate to a lower value and instead make the coin drops more.

For level 2 I want to lower the coin drops and spawn more obstacles, maybe add level specific obstacles or level specific tiles.

Can I do that using the ThirdPersonGameMode blueprint? Because if I modify something for level 2, it automatically modifies for Level 1 so that in the end, Level 2 = Level 1.

I also tried to move all my code from ThirdPersonGameMode blueprint to a level blueprint class but I got stuck at a point where my tiles could not spawn because I could not call the level blueprint in the tile blueprint.

Does anyone know how to make levels differently from one another?

Thank you