Best way to make a level system?

Hello developers!
I am creating a game but we ran into a problem! We want to create a level system but we have no idea what the best way is to make one as in how many wins/XP a player needs to level up (Custom won’t work since we want endless levels)

Our game
Our game is a kind of spleef game with more gamemodes! you play a round and the last one standing wins. And that is pretty much it.

Please let us know if you have any idea what the best way is to create a leveling system!

4 Likes

You just create one? Assign the player a level, develop some kind of arbitrary formula to calculate how many points (wins, experience, whatever you like) a player needs to level up and then every time that point is incremented, check if it’s within the level up threshold before incrementing the level.

What are you looking for here? Best way to make a level system is to make one. Are you looking for choices in how levelling up should be done, or something else? I didn’t really understand the whole way through other than “we’re stuck, we can’t make a level up system, how do we?”.

There’s a couple of resources you can use as well that have level up systems, or you can try making your own first and asking for help if you’ve tried and debugged first via #help-and-feedback:scripting-support.

4 Likes

He means that like how does a level system work? So like, does the exp need whenever you multiply it, does something else multiply? How does it work? Since our system is like that every round a player won or a player contributed a round, they get a certain amount of exp, but we’re not entirely sure how something like that, what is the best way to do that, since if we do it with wins, eventually you need 10000+ wins for lvl 100.

I would say follow this tutorial:

It’s very comprehensive and tells you the basics of what you need to know about leveling systems.

5 Likes

I know how to script a level system, but thanks! I think this will help with how a level system works.

I would just make the level requirement increase really slowly.
If you get 100 XP per win, and level 1 has max XP of 100, maybe level 100 would only be like 500-1000XP.

For example i want my Max XP to be Level*yourvaluethere
Just check once round ends if the XP is >= than the Max XP. If XP >= MAXXP then just raise the level value and set the xp back to 0.

Alright. I know that, but so like I mean what is a wise chose to increment? Every round a player gets some exp and etc, but how much exp would the player begin with and how much should it multiply, I am very bad with that.

The player will begin with just 0 xp i guess? And make xp add up by the stuff player does. (like staying as long as possible)

Level systems work off of calculations based on the current level and another kind of formula of your choice. Anything can work in this case so long as you are equally able to balance out with the amount of EXP you can gain. This can be seen in existing level-based system resources on the toolbox.

For example, your level up formula may be (Level + 1) * 1000 (which I believe is actually the formula Phantom Forces uses to determine the EXP requirements for the next level). You can be really simple with this, or involve a lot of math, but you’ll want to be able to test the progression rate by playing around with numbers and going through your game every now and again. Make sure you have a way to wipe progress.

If you’re working on a minigames game with wins required to rank up, yes eventually you’ll require a lot of wins to rank up but then you’ll want to look to using a formula that makes the multiplication (or exponentiation) much lesser. The idea behind how to determine levels doesn’t change, rather how you execute it will. It’s all about testing and seeing what works.

Depending on how critical levels are to your game, you could also just not have your requirements for the next level change. Take Zombie Rush for example: every level requires the same amount of kills (experience) to level up. Maybe you’ll want 25 wins to equal a rank. You could also have a formula such that every milestone, the rank requirements change.

1 Like

The way I created levels for my game was by adding “Levels” and “XP” to a datastore for each player, and having a script so whenever the XP value was 100 it would give +1 level and -100 xp. Then you could do a if Level.value >= (Number here) if you wanted it so it only worked with that much XP.

(Sorry if this made no sense I’m bad at English.)

1 Like

If you are still looking, Part 2 of my guide covers a lot of functions you can use to create the “endless” leveling you talked about. As well as talking a bit about the differences between the functions and why or why not to choose specific types of functions. Even though both halves contribute to the generalized “scripting” of the system the second heavily focuses on different level functions, and I even included graphs! If you have any questions I’d be more than happy to help out or answer what I can.

(Sorry accidentally replied here instead of the main topic.)

1 Like

Thanks, but I didn’t look how to script it, only what are the right values.

(Also for anyone else, we don’t need any help anymore, thanks to everyone that responded!)