My hockey game has a very competitive player base. Me and my development team would like to preserve our competitive community by making the game as fair as possible, and making the game as skill-based as possible, rather than leaving it up to random chance. One problem we are having currently is that character bundles (packages, for our veteran ROBLOXians) are beginning to cause many inconsistencies in a player’s game experience. This is a tough issue to solve, because we would like to make the game experience fair for everyone who plays our game, but also provide as much customization as we can, which is why we would be reluctant to stop players from using bundles all together. Here are some examples of the ways bundles are inconsistent.
Problem One: Physical Properties
I noticed this recently after I started using different bundles in my game.
As you can see, skating is just not the same with these two packages. The 1.0 bundle is clearly much harder to skate with as compared to the Skelly bundle because of how different the friction is. So, a player with the Skelly bundle, for example could be a better player than a typical player with a normal bundle simply because they won’t slide as much on the ice.
Problem Two: Limb Length
This problem can lead to some pretty weird (and funny) scenarios in my game. The varying length of the character’s limbs brings issues to the way the character holds the hockey stick and how tall they are.
It’s pretty clear to see that the Magma Fiend bundle makes the character extremely short, and also puts the player’s stick inside the ground. It could be possible for a player with Magma Fiend to entirely dodge body checks and pokechecks, allowing them to easily slip by defenders.
Conclusion
So, with all these advantages bundles are giving, it has basically turned my game into a pay-to-win game, which is not the environment we wanted to establish for this game. This is why I am asking you, members of DevForum, to help me find a way to counteract these inconsistencies to make my game fair and fun to play.
You can use GetExtentsSize to get the height, also HipHeight represent how far the character is off the ground. (not sure if packages change HipHeight)
You could change how far up the hockey stick is to make it not clip in the floor.
For making friction be the same you could add invisible parts which add mass to the character if they’re too light. GetMass should be used to get the mass of each part. (get sum of all parts mass to get the character’s mass)
You can add an in-game Avatar Editor to solve that.
You might want to consider because it’s a Sport & Team game, different outfits can cause confusion, take Arsenal for example they provide skins to add variety to the game but Team colors are consistent and the characters doesn’t provide any advantages.
But if you don’t want that then what you can do is make sure that the stick is on the ice using math and CFrame
After all the stick should be there for visuals but doesn’t represent the real hit-box
To fix friction/density issues you could make the entire character massless except for the HumanoidRootPart, and then set the density of the HumanoidRootPart such that it makes up for the lost mass. HumanoidRootPart has the same size etc on all avatars, and is always the same distance from the ground.
Make sure in your game settings you set the innerbox for collision and manually set things like height and width. See what that does, I am unsure why there are physics differences between the packages as that’s a serious issue for some games that the developer may not be aware of.