Thanks to @DXCTYPE for helping to try and retype it!
I usually get my guide ideas from a game I was playing and it has happened, yet again (Brawl Stars)!
An elimination bonus, as I like to call it, is a boost of damage or speed you get from knocking out an opposing player. For example, if you knock out your friend in a 2v2 game, you get x2 damage for the rest of that round.
Uses: This can be used for the following |
-
A Battle Royale Game
-
A Brawl Stars Game
-
Iâm brain dead and canât think of anything elseâŠ
Devices (and 1 wire)
x1 Lifecycle (Player Knocks Out)
x1 Trigger (Invisible In-Game, Canât be triggered by player collision)
x1 Property (Name: âBonusâ, Default Value: 0, Type: Number, Scope: Player )
*{x} Damage Boosts (x = your choice. Iâm using 4.) (Boost Time: Forever)
(optional) x1 Lifecycle (Player knocked out) and x1 Damage Boost Device (1x damage, duration: forever)
*|Optional| {x} Speed Modifiers (x = your choice) (This can be used instead, or with, damage boosts)
There is only 1 wire so Iâll put it here as well:
Lifecycle [Event occurs â Trigger Trigger] Trigger
Trigger Blocks âNâ Damage Boost Settings
Donât worry! These blocks, which go in the trigger if you didnât figure out already, are super simple and easy! Thanks to @Cellofive for helping with the concatenation!
Blocks:
There isnât much more! Just got to configure the channels for the damage boost devices and youâre done!
Increment each damage boost by one of the pre-made ticks. For example, Iâm using 1.25x, 1.5x, 1.75x, 2x boosts. As seen above, the variable âoâ increments once per knockout that the player gets and the message is broadcasted on channel of whatever number the variable âoâ is, so for each damage boost device increment the receiving channel by 1. For the first damage boost device you set the receiving channel to â1â and for the second one you set the receiving channel to â2â etc.
Optional Lifecycle and Damage Boost:
If you didnât notice when I was listing devices, I put an optional lifecycle and damage boost. Hereâs what itâs for: Wire the lifecycle to the damage boost [event occurs â activate damage boost]. Yes. thatâs it. This will help for games with respawning so that players donât keep their damage boost from their âpreviousâ life.
Alternate System (Devices ONLY)
Note: For the attachments to the system, it will only work for the original setup not this alternate one.
Not ready for properties and block code? Donât worry, thereâs still a device-only system available for you! Itâs less memory efficient just so you know. On with it!
Devices:
x1 Knockout Manager(target: player, item to grant: your choice, Iâm using lotto tickets; amount: 1, grant strategy: into inventory OR drop on knocked out player, drop chance: no).
Into inventory will grant the item directly into a playerâs inventory and drop on player will make the item drop on the eliminated player. The latter is like power cubes in Brawl Stars. Iâll be using the 2nd option. 1 more thing: Make sure that the item you chose is NOT going to be used in anything else for your game.
*{x} Damage Boosts(incrementing by 1 tick per device, duration: forever)
*{x} Checkers(Check: item amount, # of checks: 1)(1st checker: item = 1, 2nd checker: item = 2, 3rd checker: item = 3, |do this repeatedly for all of your checkers until;|, second to last check: item = y, last check: item > y)
|Optional| Inventory Item Manager(managed item: your chosen item, alerts: no)
This is so that the player doesnât get alerted that they received the item. Make sure to turn drop resources in the map settings to off.
x = your choice, Iâm using x = 4 | y = item amount that is being checked for the second to last checker
Ex. second to last check: lottery ticket = 5. very last check: lottery ticket > 5. In this case y = 5.
Second to last checker |-----------| Last Checker
Wires and 1 channel (Thereâs quite a few thatâs for sure):
For the channel, broadcast on channel âkoedâ when target is knocked out, in the knockout manager.
The first checker will receive on this channel and will start a check. Now for the wires. Get a wire from checker 1 to checker 2 [check fails â run check]. Do the same but from checker 2 to checker 3 and continuously do this for the rest of your checker as well until there are no more checkers to wire in. Now wire checker 1 to the first damage boost [check passed â activate damage boost]. Then wire checker 2 to the second damage boost [check passed â activate damage boost]. Repeat the step of wiring the checker to its corresponding damage boost device and do it for all of them with the same wires as above.
Side Note: If you choose this alternate method and want it to be like Brawl Stars where power cubes are dropped based on how many the knocked out player had then I will have to figure this out and maybe update this guide later. Hopefully this works for you currently!
Now youâre done! (with the basics lol). If you want more complicated systems and attachments look onwards! Otherwise, your journey through this guide ends here.
ExtrasđŸ:
â
Are you ready for more?! Yeah thatâs what I thought!
Here you will find some other add-ons to the main system. I wasnât satisfied by the above either.
Bonus Damage Overlay
This will show how much extra damage the player does based on their elimination bonus.
Thanks to @chyrsostom for helping me with a small issue!
Extra Devices:
x1 Overlay (type: text, overlay default text: âKO Bonus: 0% DMGâ, content scope: player)
Yep thatâs all you need but itâs not that easy! (actually it kinda isâŠ)
Let me emphasize 2 things: USE THE DEFAULT TEXT otherwise the overlay will show nothing originally. You donât have to use percentages. Iâm just using it because I like them better (impact from SSBU) but you can use multipliers like the damage boosts do.
First go into your âbonusâ property, or whatever you named it, and make it broadcast on channel, âupdtxtâ, when property value changes.
Now create a block for the overlay that receives on channel âupdtxtâ.
Overlay Blocks:
Caption: I used external inputs so if it looks funky to you, now you know.
Multiplier text:
If you wanted to use multipliers for the text instead of percentages look here!
The algorithm is a teeny bit more complicated, my dum brain took 1 minute to actually have to figure it out.
Edited Blocks:
Make sure to change your default overlay text to âKO Bonus: x1.0 DMGâ or whatever fits for you!
Based on Total Players
This will change the system so that the player can get up to as many bonuses as there are other players. This way there isnât a specific amount of bonuses you can get.
Devices:
x1 Property (Name: âtplayersâ, type: number, scope: global)
{x} Damage Boost Devices (x = total amount of damage boost ticks there is)(tick is incremented by 1 per)
Optional:
x1 Trigger (max trigger: 1; scope: player, Trigger By player Collison: yes)
x1 Counter (scope: global, Update property: Yes; âtplayersâ)
To track the amount of players in the game you can do 2 things, depending on your game:
- If your game has to have a certain number of players then set the default value of âtplayersâ property to that number.
- This is where the optional devices come in! Place the trigger on the main spawn pad. You may need multiple triggers if there are multiple main spawn pads. Now wire the trigger to your counter [trigger triggered â increment counter].
Now that thatâs done we just have to update the trigger block code (from the main system)!
Blocks:
This will make it so that if variable âoâ goes over the total number of OTHER players then it will be set to 1 which means that the player was caught cheating.
Finally, for the extra damage boosts youâve gotten, start doing the channel incrementing again. You already have some damage boosts so start where you left off. Thatâs it!
-
0/10
-
1/10
-
2/10
-
3/10
-
4/10
-
5/10
-
6/10
-
7/10
-
8/10
-
9/10
-
10/10
-
11/10
- Yes
- No