Minecraft: Spawn Random Mob
Picks one configured mob row and spawns it near the linked player.
Use this effect when you want Firebot to pick one mob from a list instead of always spawning the same mob.
When to use it
- Random mob redemptions.
- Random viewer-named mobs.
- Random sub tier mobs.
- Random gifted sub mobs.
- Random cheer or donation mobs.
- Weighted mob lists using repeated rows.
How it works
Each row is one possible mob spawn.
When the effect runs, one row is picked.
The picked row controls:
- Mob ID
- Amount
- Offset X / Y / Z
- Entity Data
There is no weight field. If you want one mob to be more common, add it more than once.
Fields
- + Add Mob: Adds another possible mob row.
- Entity ID: Full entity ID for that row, such as
minecraft:zombieormodid:custom_mob. - Amount: How many mobs to spawn if that row is picked.
- Offset X / Y / Z: Spawn position relative to the player for that row.
- Entity Data: Optional entity data for names, tags, equipment, loot tables, persistence, and modded values.
Useful name variables
| Event type | Mob name variable |
|---|---|
| Normal sub | $userDisplayName |
| Cheer / bits | $userDisplayName |
| Donation | $donationFrom |
| Single gifted sub gifter | $giftGiverUsername |
| Single gifted sub receiver | $giftReceiverUsername |
| Community gifted sub gifter | $giftGiverUsername |
| Community gifted sub receivers | $presetListArg[MobName] inside a receiver mob preset |
Basic examples
Simple random list
Row 1:
Entity ID: minecraft:zombie
Amount: 1
Offset X: 0
Offset Y: 0
Offset Z: 0
Entity Data:
Row 2:
Entity ID: minecraft:skeleton
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data:
Row 3:
Entity ID: minecraft:creeper
Amount: 1
Offset X: -2
Offset Y: 0
Offset Z: 0
Entity Data:
Weighted random list
This makes zombies more likely because zombie appears twice.
Row 1: minecraft:zombie
Row 2: minecraft:zombie
Row 3: minecraft:skeleton
Row 4: minecraft:creeper
Random viewer mobs
Use $userDisplayName when the event has a normal viewer.
Row 1:
Entity ID: minecraft:zombie
Amount: 1
Offset X: 0
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$userDisplayName","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:skeleton
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],HandItems:[{},{}],ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],CustomName:'{"text":"$userDisplayName","color":"gray"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 3:
Entity ID: minecraft:creeper
Amount: 1
Offset X: -2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$userDisplayName","color":"red"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Normal sub tier random mobs
Use the Twitch > Sub event.
Add a Sub Tier filter if you want a different random mob list per tier.
| Tier | Filter value |
|---|---|
| Prime | Prime |
| Tier 1 | 1000 |
| Tier 2 | 2000 |
| Tier 3 | 3000 |
Tier 1 sub random mobs
Event: Twitch > Sub
Filter: Sub Tier is Tier 1
Row 1:
Entity ID: minecraft:zombie
Amount: 1
Offset X: 0
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],HandItems:[{},{}],ArmorItems:[{},{},{},{id:"minecraft:iron_helmet",count:1}],CustomName:'{"text":"$userDisplayName","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:spider
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$userDisplayName","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Tier 2 sub random mobs
Event: Twitch > Sub
Filter: Sub Tier is Tier 2
Row 1:
Entity ID: minecraft:skeleton
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],HandItems:[{},{}],ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],CustomName:'{"text":"$userDisplayName","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:witch
Amount: 1
Offset X: -2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$userDisplayName","color":"light_purple"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Tier 3 sub random mobs
Event: Twitch > Sub
Filter: Sub Tier is Tier 3
Row 1:
Entity ID: minecraft:piglin_brute
Amount: 1
Offset X: 3
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],IsImmuneToZombification:1b,HandItems:[{id:"minecraft:golden_axe",count:1},{}],ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],CustomName:'{"text":"$userDisplayName","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:ravager
Amount: 1
Offset X: -3
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$userDisplayName","color":"red"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Single gifted sub random mobs
Use the Twitch > Sub Gifted event.
Use $giftGiverUsername for the gifter.
Use $giftReceiverUsername for the receiver.
Random mob named after the gifter
Event: Twitch > Sub Gifted
Filter: Sub Tier is Tier 1
Row 1:
Entity ID: minecraft:zombie
Amount: 1
Offset X: 0
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$giftGiverUsername","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:skeleton
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$giftGiverUsername","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Random mob named after the receiver
Event: Twitch > Sub Gifted
Filter: Sub Tier is Tier 1
Row 1:
Entity ID: minecraft:zombie
Amount: 1
Offset X: 0
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$giftReceiverUsername","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:skeleton
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$giftReceiverUsername","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Community gifted random mobs
Use the Twitch > Community Subs Gifted event.
There are two common setups:
- Spawn random mobs named after the gifter.
- Spawn one random mob per receiver.
Random mob named after the gifter
This does not need a loop.
Event: Twitch > Community Subs Gifted
Filter: Sub Tier is Tier 1
Row 1:
Entity ID: minecraft:zombie
Amount: 1
Offset X: 0
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$giftGiverUsername","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:skeleton
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$giftGiverUsername","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
To spawn one gifter-named random mob per gifted sub, use $giftCount as the amount on each row.
Amount: $giftCount
Spawn one random mob per community gifted receiver
This setup uses preset effect lists.
You need two preset effect lists:
- One preset that spawns one random receiver-named mob.
- One preset that loops the receiver list and runs the first preset once per receiver.
Preset Effect List 1: Spawn Random Gifted Receiver Mob
In Firebot, open Preset Effect Lists and click New Preset Effect List.
Set the name to:
Spawn Random Gifted Receiver Mob
Add one argument:
MobName
Add a Minecraft: Spawn Random Mob effect inside this preset list.
Row 1:
Entity ID: minecraft:zombie
Amount: 1
Offset X: 0
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$presetListArg[MobName]","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:skeleton
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],HandItems:[{},{}],ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],CustomName:'{"text":"$presetListArg[MobName]","color":"gray"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 3:
Entity ID: minecraft:creeper
Amount: 1
Offset X: -2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$presetListArg[MobName]","color":"red"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Save the preset effect list.
This preset only spawns one random mob. The name comes from the MobName argument.
Preset Effect List 2: Spawn All Random Gifted Receiver Mobs
Create another preset effect list.
Set the name to:
Spawn All Random Gifted Receiver Mobs
Add one argument:
ViewerList
Add a Loop Effects effect.
Loop Mode: Iterate Array
Array To Iterate: $presetListArg[ViewerList]
Inside Effects To Loop, add a Run Effect List effect.
List Type: Preset Effect List
Preset Effect List: Spawn Random Gifted Receiver Mob
Preset List Args:
MobName: $objectWalkPath[$loopItem, username]
Save the preset effect list.
This preset loops every receiver in ViewerList. For each receiver, $loopItem is the current receiver object.
This pulls the receiver username:
$objectWalkPath[$loopItem, username]
Community gifted event setup
Now create the actual Twitch > Community Subs Gifted event.
Add a Run Effect List effect.
List Type: Preset Effect List
Preset Effect List: Spawn All Random Gifted Receiver Mobs
Preset List Args:
ViewerList: $convertToJSON[$rawGiftReceivers]
That converts Firebot's receiver array into JSON, passes it into the loop preset, and spawns one random mob for each receiver.
Tiered community gifted receiver random mobs
For tiered receiver mobs, make one random receiver mob preset per tier.
Example preset names:
Spawn Tier 1 Random Gifted Receiver Mob
Spawn Tier 2 Random Gifted Receiver Mob
Spawn Tier 3 Random Gifted Receiver Mob
Each preset should have the same argument:
MobName
Then change the random mob rows inside each preset.
Tier 1 receiver random mob preset
Row 1:
Entity ID: minecraft:zombie
Amount: 1
Offset X: 0
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],HandItems:[{},{}],ArmorItems:[{},{},{},{id:"minecraft:iron_helmet",count:1}],CustomName:'{"text":"$presetListArg[MobName]","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:spider
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$presetListArg[MobName]","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Tier 2 receiver random mob preset
Row 1:
Entity ID: minecraft:skeleton
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],HandItems:[{},{}],ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],CustomName:'{"text":"$presetListArg[MobName]","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:witch
Amount: 1
Offset X: -2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$presetListArg[MobName]","color":"light_purple"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Tier 3 receiver random mob preset
Row 1:
Entity ID: minecraft:piglin_brute
Amount: 1
Offset X: 3
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],IsImmuneToZombification:1b,HandItems:[{id:"minecraft:golden_axe",count:1},{}],ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],CustomName:'{"text":"$presetListArg[MobName]","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:ravager
Amount: 1
Offset X: -3
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$presetListArg[MobName]","color":"red"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Then make one Twitch > Community Subs Gifted event per tier.
Each event uses the matching Sub Tier filter:
Filter: Sub Tier is Tier 1
or:
Filter: Sub Tier is Tier 2
or:
Filter: Sub Tier is Tier 3
Each tier event should run the matching loop preset for that tier.
Cheer / bits random mobs
Use the Twitch > Cheer event.
Use the Cheer Bits Amount filter for tiers.
Make the ranges not overlap, or one cheer can trigger more than one event.
100 to 499 bits
Event: Twitch > Cheer
Filter: Cheer Bits Amount is greater than or equal to 100
Filter: Cheer Bits Amount is less than 500
Row 1:
Entity ID: minecraft:zombie
Amount: 1
Offset X: 0
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$userDisplayName","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:spider
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$userDisplayName","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
500 to 999 bits
Event: Twitch > Cheer
Filter: Cheer Bits Amount is greater than or equal to 500
Filter: Cheer Bits Amount is less than 1000
Row 1:
Entity ID: minecraft:skeleton
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],HandItems:[{},{}],ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],CustomName:'{"text":"$userDisplayName","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:witch
Amount: 1
Offset X: -2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$userDisplayName","color":"light_purple"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
1000+ bits
Event: Twitch > Cheer
Filter: Cheer Bits Amount is greater than or equal to 1000
Row 1:
Entity ID: minecraft:piglin_brute
Amount: 1
Offset X: 3
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],IsImmuneToZombification:1b,HandItems:[{id:"minecraft:golden_axe",count:1},{}],ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],CustomName:'{"text":"$userDisplayName","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:ravager
Amount: 1
Offset X: -3
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$userDisplayName","color":"red"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Donation random mobs
Use the donation event from the integration you use, such as StreamElements > Donation, Streamlabs > Donation, TipeeeStream > Donation, or Extra Life > Donation.
Use the Donation Amount filter for tiers.
Use $donationFrom for the mob name.
Small donation
Event: Donation
Filter: Donation Amount is greater than or equal to 5
Filter: Donation Amount is less than 10
Row 1:
Entity ID: minecraft:zombie
Amount: 1
Offset X: 0
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$donationFrom","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:spider
Amount: 1
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$donationFrom","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Medium donation
Event: Donation
Filter: Donation Amount is greater than or equal to 10
Filter: Donation Amount is less than 25
Row 1:
Entity ID: minecraft:skeleton
Amount: 2
Offset X: 2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],HandItems:[{},{}],ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],CustomName:'{"text":"$donationFrom","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:witch
Amount: 1
Offset X: -2
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$donationFrom","color":"light_purple"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Large donation
Event: Donation
Filter: Donation Amount is greater than or equal to 25
Row 1:
Entity ID: minecraft:piglin_brute
Amount: 1
Offset X: 3
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],IsImmuneToZombification:1b,HandItems:[{id:"minecraft:golden_axe",count:1},{}],ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],CustomName:'{"text":"$donationFrom","color":"gold"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Row 2:
Entity ID: minecraft:ravager
Amount: 1
Offset X: -3
Offset Y: 0
Offset Z: 0
Entity Data: {Tags:["Viewer Spawn"],CustomName:'{"text":"$donationFrom","color":"red"}',CustomNameVisible:1b,PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Minecraft 1.21.1 entity data example
This example works in a random mob row.
{Tags:["Viewer Spawn"],HandItems:[{},{}],ArmorItems:[{},{},{},{id:"minecraft:diamond_helmet",count:1}],CustomName:'{"text":"$presetListArg[MobName]","color":"gold"}',PersistenceRequired:1b,DeathLootTable:"minecraft:empty"}
Use $presetListArg[MobName] when the mob name is passed into a preset effect list.
Use $userDisplayName, $giftGiverUsername, $giftReceiverUsername, or $donationFrom when the event gives you the name directly.