Stage One Proposal For Custom Mob Waves

This proposal just lists how you could add and modify mobs to your map based on Blanc’s suggestion.
Original Post by Blanc :


Map Submission

For the map submission, you will need to list the mobs, the amount of certain mobs, and any modifications that have to do with mobs in the class breakdown.

The mobs will also need to be checked by the zombies manager who is handling the map.

Mobs & Waves

Precursors And Notes

  • Firstly and most obviously, the map will have to be completed (and by that I mean in the zombies dimension).
  • Secondly, you’ll have to select the arena normally for the commands.
  • Thirdly, no mobs at all will just make the map have normal mob spawning.

Collections

Collections are collections of mobs that spawn. The default collection is the normal collection that is used in zombies right now. You will be able to use the default collections, use other map’s collections, or make your own collections. This applies to events collections too. Every map will need the default collection, one christmas collection, and one halloween collection. You can also make extra collections if you want events like valentine’s or easter. You will have to specify the exact date the event collections you make will use.

Waves

Waves work in numbered ways, which means that they are numbered and the wave numbered 1 spawns first, 2 spawns second, 3 spawns third, and so on. A single mob put into a wave (for example a big pincushion zombie) will duplicate itself for the mob spawns. Multiple mobs of a single type will duplicate themselves for every mob spawn (for example with four spawns in a map and a mob type having the amount of two, eight of the mob type will spawn.) Multiple mobs of multiple types will be duplicated for every mob spawn as so. The highest number of waves will be defined by the player.

Command List

To shorten the cmds (I know how annoying it can be), there will be three types of arguments based on the Gun Game Stage One.

  • Arguments in [] are needed.
  • Arguments in () are optional.
  • Arguments in {} are repeatable.

Collections

  • If a collection does not exist it will give error “Collection does not exist”.

Using Other Collections :
Replaces the current collection with a collection of another map or the default collection.
/zcoll use [map name/default] (event)
Example :

/zcoll use Cryptic Castle hahaaprilfoolslol

Making A New Collection :
Creates a new collection that will use the map’s name. Will auto be selected to modify.
/zcoll new ([event] [start month] [start day] [end month] [end day]
The timezone will be in UTC and each month is the first three letters of it.
Example :

/zcoll new hahaaprilfoolslol apr 1 apr 2

Selecting Collections :
Selects the default collection or any event collections the map has defined.
/zcoll select (event)

Editing Collections :
Edits the selected collection.
/zcoll edit [type] [value] [value 2]
Types are :

  • Day Start (0)
  • Day End (1)
    Examples :
/zcoll edit 0 feb 1
zcoll edit 1 mar 1

Testing Collections
Forces your lobby and only your lobby to change the collection of the selected map to the specified collection.
`/zcoll test [collection]
Example :

/zcoll test hahaaprilfoolslol

Tests
I think I put too many bees

Deleting Collections
Deletes the selected collection.
/zcoll delete

Rounds And Waves

  • If waves do not exist it gives error “Wave does not exist”.

Selecting Rounds :
Selects the round which the commands will be run into.
/selectround [round number]
Example :

/selectround 7385

Adding Waves :
Sets waves in a round. Each wave = or < than the number will be waves.
/zwave [number of waves wanted in the round]
Example :

/zwave 7385

Clearing Mobs
Deletes all the mobs of the specified round. (They don’t need to be selected, just to save time
/clearround [round number
Deletes the contents of a wave in the round.
/clearwave [wave number]
Examples :

/clearround 7385
/clearwave 7385

Listing Content :
Lists all the mobs in a wave and the amount of the mobs.
/zwave list [wave number]
The output lists in this format:

Wave [number]
[Mob ID] - [Mob Name] ([Amount of Mobs]) | [Any Modifications]

Here is an example of what the output will look like :

Wave 7, Round 12
268 - Ichor Sticker (5) | Damage : 100 | HP : 300 | Secondary
80 - Light Mummy (7) | HP : 350 
657 - Queen Slime (1) | Score (Decreasing) 195000 
564 - Dark Mage (5) | Secondary
479 - Baby Mothron (2) | HP : 400 | Score (Constant) 12500
476 - Jungle Mimic (1) | Secondary
475 - Hallowed Mimic (1) | Secondary
474 - Crimson Mimic (1) | Secondary
473 - Corrupt Mimic (1) | Secondary

If there are no mobs it gives error “Wave is empty.”

Mobs

  • If mob does not exist, give error “Mob does not exist.”
  • If wave does not exist, give “Wave does not exist.”
  • Mobs also have mob entry IDs. When there are multiple of the same type of mob in a wave, the IDs will give you the ability to modify both individually. This is an optional part of the command just to help with multiples of fhe same mob and if left blank will select mob entry ID 1. The IDs for one new mob is defined by how many of the same mob are in the wave.

Adding Mobs :
Adds a mob/mobs to a wave.
/zmob add {[name of mob] {[wave number]} (amount)}
If the wave number = all, the mob gets added to every wave in the round. Can be modified and deleted as normal with wave number all.
Example :

/zmob add 210 all 9999999999999999999999999

Deleting Mobs :
Deletes a mob from a wave.
/zmob del [name of mob] {[wave number] (mob entry ID)}
Example :

/zmob del 210 all 2

Modifying Mobs :
Modifies a mob of a wave.
/zmob mod [name of mob] {[wave number] (mob entry ID) [modification type] [value]}
Mob stat modifications are :

  • Damage (0)
  • Health (1)

Example :

/zmob mod 211 1 0 99999999999999999999999999 1 1 999999999999999999999999999

Adding Score Values :
Adds the amount of score given to the player when they defeat it. No score value will just give points every hit like normal.
/zmob mod {[name of mob] [wave number] (mob entry ID) 2 [value] [constant or decreasing]}
Score values can be constant, which means the score it gives when killed stays constant like with a brain suckler in normal rounds, or decreasing over time like with a boss.
Example :

/zmob mod 211 1 2 1 constant

Changing Type To Secondary
Another type of mob, the secondary mob is a mob that when spawned, which mobspawn it spawns at is random. With multiple secondary mobs, this process runs for every secondary mob to spawn and spreads them out.
/zmob mod {[name of mob] [wave number] (mob entry ID) 3}
Automatically makes a mob secondary type. It will spawn the number of times it was supposed to spawn on each mobspawn.
Example :

/zmob mod 222 10 3

Replicating Mobs From Real Rounds

Hard Way

10 Possessed Armors For Every Wave (Round 10 Waves)

/selectround 10
/zmob add 140 all 10

Round 5 Boss (The Last Wave Of Round Five Which I’m Guessing Is 6)

/selectround 5
/zmob add 280 6 1
/zmob mod 280 6 1 1000
/zmob mod 280 6 2 15000 decreasing

Three Wandering Eyes (Round 6, Wave 1)

/selectround 6
/zmob add 133 1 1
/zmob mod 133 1 3 3
/zmob mod 133 1 2 1000 constant

Easy Way

/zcoll use default

What About Infinite Rounds?

The last round will be repeated forever.

KB Resistance, defense, immunity, movement speed and ai type aren’t configurable, it’s possible but it would require a hacky solution and would probably use way more resources (for example, ai type modification would send an npc update per frame of the game, which results in a lot of data being sent out per custom ai npc, this is possible, we had it before, a boss called Jellytron, but it’s not something we can seriously add to something like this). Shooting custom projectiles and inflicting debuffs is custom behaviour and not possible without an extra implementation.

You also have conflated wave and round. A wave is spawned when the mob count is below the threshold, that’s when a group of mobs spawn together. A round is the culmination of waves with specific enemy types.

Currently missing coverage for:

  • How it will interact with Events like Halloween and Christmas.
  • How the waves are designed and thus in what different ways map makers will be able to configure/change waves
  • How waves work in rounds past those that have been defined

For example your commands do not describe how you would replicate what exists. Think about it like this. Take what exists in zombies and imagine it in your idea of the system. How would you literally add each round via your implementation? (Not every mob, but pick out the individual things, for example bosses, basic mobs, things like wandering eyes). Right now, your solution would seem to spawn every mob equally.

7 Likes

I edited the post, is it good now?

5 Likes

This isn’t relevant to the topic of discussion, but never knew about this distinction:

I’m not sure if this already exists, but is there a guide which outlines every mob that spawns in the waves of each round?

5 Likes
  1. We know there are technically infinite rounds, how do you handle that?
  2. How do you handle wandering eyes for example. There’s not one spawning per mob spawn, depending on the round there are more/less of secondary mob spawns (depending on which secondary mob)
  3. It seems like it would be tedious to make the later round’s waves.
  4. What happens if you define wave 1 and 3. Does it skip 2 or does it ignore 3?
  5. How do you see which rounds are defined, which mobs exist in those rounds?
  6. You removed the custom projectile modification, but projectile speed is just custom projectiles
  7. What happens if you add a mob via command, then do it again?
6 Likes

As how it works in normal zombies, it keeps repeating the last round that’s been defined. So for example if I added one zombie for the entirety of round one and put no other rounds after it, it would keep spawning in one zombie every round.

You could have another type of mob which spawns randomly across mob spawns X/M times, X being the amount the creator wants it to spawn and M being the number of mob spawns. Would this work?

Can you define how?

It ignores every wave past 2, so yes it ignores 3.

/zwave list

I thought you meant that creators can’t add a different projectile for the zombie to shoot, but they can still modify the original projectile the zombie shoots if it has one.

They work as two different groups, and can still be modified individually. The problem is modifying a certain group. If you added two of the same weapons in the same class to the same tier in a chest and wanted to modify one, maybe the same solution to that situation could be applied to this situation.

6 Likes

Make sure to update the OP with any decisions, since that’s the proposal. People should only have to read the OP to know everything about the proposal other than anything undecided.

Pure random, no. Since then there’s no way to show how many mobs will spawn in the current round.

There are many waves at those rounds. You would be constantly adding new waves, and it would be easy to make a mistake and have to dig through the list of waves to find it.

Changing anything is custom behaviour, and like I said before, there’s no implementation of that already.

6 Likes

What if we had universal mobs, which spawn every wave? /zmob add [name of mob] all [amount]

What I mean is that you can set a mob to spawn X number of times, but which mobspawns they spawn is random. For example if you set a mob to this type and set it to spawn 5 times and you had 10 mobspawns, then five of the mobspawns would spawn the mob, and which ones would be completely random.

What exactly is the OP?

6 Likes

original post/original poster: This can refer to either the first post in a topic, or the person who created the topic. This is usually shortened to OP.

In this case I’m talking about the original post (the one you made to create the topic).

For now I’ll hold off and wait to see if anyone else has anything to add.

6 Likes

Ok, I will edit it now

6 Likes

I think you forgot to list the types along with the numbers

I think it’d be better to share a command with /zmob. Bosses are just mobs with special treatment

8 Likes

Oh.

True. Now that I realize it, it could just be a modification of the modification type of three of the modification command.

7 Likes

Proposal for possible output:

Wave [Number]
  [Mob ID] - [Mob Name] | (Modifications)

example (Round 5)

Wave 6
  280 - Sword Hell Armored Bones | HP: 1000 | Score(Decreasing): 15000
8 Likes

This will work. It might also help to put amounts if there are any mistakes having to do with amounts.

9 Likes

Oh right, I forgot amounts, that looks good :+1:

9 Likes

Can you explain this more.
For example, in the context of one we’ve had already: the way Halloween works is that we change the round manager to a Halloween themed one that spawns mobs related to Halloween with a few changes (entire rounds have their mobs changed, swapped out / new bosses, rewards related to killing certain bosses or getting to a certain round).

If we go back in time, if the proposed system existed before that event, how would that event be done given people have customised their mob spawns completely?

I would say ideally we would open up choice for the players to play on any map for the event, but for a truly event-themed experience it seems to me that we might just have to create a map and make that map the only map for the event?

8 Likes

I’m not sure if this already exists, but is there a guide which outlines every mob that spawns in the waves of each round?

Here is a guide that outlines what mobs spawn in each stage:

This is slightly outdated in terms of when expert/master mode is enabled i’m pretty sure, and it’d obviously would became useless for most maps unless i let zombie map editors access to the document as well and add their rounds in

8 Likes

If we go back in time, if the proposed system existed before that event, how would that event be done given people have customised their mob spawns completely?

Maybe we could let map creators make their own event rounds as well, and if not only a few select maps would be available for the event, such as the maps with the default rounds. But that could possibly be too complex for map creators.

I would say ideally we would open up choice for the players to play on any map for the event, but for a truly event-themed experience it seems to me that we might just have to create a map and make that map the only map for the event?

I like the idea of Event exclusive maps.

8 Likes

Could Work.

What I mean is that during the events, the round changes the customized enemies to their Christmas/Halloween counterparts. People can customize this even further if they want (except for a few mobs and bosses which actually give the Christmas reward).

9 Likes

To add to this, I think a set of collective rounds then become an enemy collection. There would be 3 default collections, one for non-event, one for Halloween, and one for Christmas. Maps creators can then build off the default or make their own. Map creators don’t necessarily have to follow the mobs in each default mob by mob. However, map creators would need to submit their own collection for review to get that map approved for the event

8 Likes