Small update, but I think good for the game:
I added a badge system to the game. There are currently 5 badges for players to unlock:
- Welcome – Join the game for the first time (also gives you 250 Cash!).
-Â Winner -Â Win your first game.
-Â Menace - Slap 100 players.
-Â Skill Issue -Â Ragdoll 100 times.
- Can’t Touch This - Successfully block an incoming slap.
I made a modular system to streamline future addition for badges, IF ANY because they’ll cost me money now to add them (I used up my 5 free).Â
Between the last devlog and this, I built majority of features + frameworks.
List of things completed in this devlog
Shop System(Hyperlink between abilities and one-time-use purchases)
Created a modular system to manage prices and purchases (Datastore saves abilities such as Double Jump & Block).
UI animations:
Zoom in with background blur when opening the shop.
Inverse animation on close.
Complete Combat System
Players can push each other, and they can also purchase the ability to block.
Done using DOT product + magnitude detection.
Rewards 50 cash.
Blocking simply fires a remote communicating to the server that a player is blocking. On attack verification, if the player is in the CURRENT_PROTECTED array, it prevents damage + ragdoll, and instead plays a thud sound effect.
Datastore
Managing money, wins, and how many slaps a player has.
This is important for many things, eg purchasing, gaining / losing money.
UI Elements(Currency, Winning, Kill Feed)
Currency
When a player gains money, it has a shake effect + a green floating Δ+ which promptly disappears with a sound effect.
Losing money does the same thing, but in red with Δ-.
Winning
See image attatched :D
Kill Feed
Created a kill feed with randomly generated text.
Using RichText, I also made the attacker and victim have different colours.
This works through a RemoteEvent being fired to all players. Example messages:
{{attacker}} just <font color='rgb(122, 200, 255)'>REKT</font> {{victim}}
{{victim}} bit the <font color='rgb(122, 200, 255)'>DUST</font>
Abilities & One-Time Purchases
Abilities work through datastore management.
Purchased abilities are saved, and on CharacterAdded, their LocalScript gets inserted into the player’s character.
One-time purchases simply fire a RemoteEvent (with sanity checks to verify the purchase) which then completes the action.
Current abilities
Double Jump
Block
Current one-time purchases
Kill All
Ragdoll All
Low Gravity
Animations
Spent time making animations for:
Push
Block
Double Jump (flip animation)
Tower Generation
There is a folder in ReplicatedStorage containing every possible stage.
Using Lua’s % 2 operator, I check remainder for stage alignment (logic below).
isRotated = index % 2 == 0
rotate(stage, isRotated and 180 or 0)
Then, I simply calculate the current tower height and place the new stage directly on top.
Shuffling stages is also straightforward, I use math.random on table index.
Winning
The server fires a RemoteEvent telling every client that somebody has won, rewards the winner, reshuffles the tower, and respawns every player.
The tower also automatically reshuffles every 600 seconds (10 minutes) if nobody wins.
Stage Elements
Added the following stage elements using Roblox’s CollectionService tag system
I also made ~ 10 stages (with own quirks, eg not being able to jump). Spent a lot of time on sound design aswell.
Between the last devlog and this, I built majority of features + frameworks.
List of things completed in this devlog
Shop System(Hyperlink between abilities and one-time-use purchases)
Created a modular system to manage prices and purchases (Datastore saves abilities such as Double Jump & Block).
UI animations:
Zoom in with background blur when opening the shop.
Inverse animation on close.
Complete Combat System
Players can push each other, and they can also purchase the ability to block.
Done using DOT product + magnitude detection.
Rewards 50 cash.
Blocking simply fires a remote communicating to the server that a player is blocking. On attack verification, if the player is in the CURRENT_PROTECTED array, it prevents damage + ragdoll, and instead plays a thud sound effect.
Datastore
Managing money, wins, and how many slaps a player has.
This is important for many things, eg purchasing, gaining / losing money.
UI Elements(Currency, Winning, Kill Feed)
Currency
When a player gains money, it has a shake effect + a green floating Δ+ which promptly disappears with a sound effect.
Losing money does the same thing, but in red with Δ-.
Winning
See image attatched :D
Kill Feed
Created a kill feed with randomly generated text.
Using RichText, I also made the attacker and victim have different colours.
This works through a RemoteEvent being fired to all players. Example messages:
{{attacker}} just <font color='rgb(122, 200, 255)'>REKT</font> {{victim}}
{{victim}} bit the <font color='rgb(122, 200, 255)'>DUST</font>
Abilities & One-Time Purchases
Abilities work through datastore management.
Purchased abilities are saved, and on CharacterAdded, their LocalScript gets inserted into the player’s character.
One-time purchases simply fire a RemoteEvent (with sanity checks to verify the purchase) which then completes the action.
Current abilities
Double Jump
Block
Current one-time purchases
Kill All
Ragdoll All
Low Gravity
Animations
Spent time making animations for:
Push
Block
Double Jump (flip animation)
Tower Generation
There is a folder in ReplicatedStorage containing every possible stage.
Using Lua’s % 2 operator, I check remainder for stage alignment (logic below).
isRotated = index % 2 == 0
rotate(stage, isRotated and 180 or 0)
Then, I simply calculate the current tower height and place the new stage directly on top.
Shuffling stages is also straightforward, I use math.random on table index.
Winning
The server fires a RemoteEvent telling every client that somebody has won, rewards the winner, reshuffles the tower, and respawns every player.
The tower also automatically reshuffles every 600 seconds (10 minutes) if nobody wins.
Stage Elements
Added the following stage elements using Roblox’s CollectionService tag system
I also made ~ 10 stages (with own quirks, eg not being able to jump). Spent a lot of time on sound design aswell.