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:zombie or modid: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 typeMob 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.

TierFilter value
PrimePrime
Tier 11000
Tier 22000
Tier 33000

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:

  1. One preset that spawns one random receiver-named mob.
  2. 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.

Related pages