Wanted to add onto this a bit after spending considerably more time with the ZM SDK!
New settings for items
ZM Game Controller
- AddPoints / SubtractPoints
There currently isn’t any way to manually reward players with points for doing anything; IO outputs that give points to a specific player or all players would be really helpful.
Subtracting points could be used as a consequence for failing a sub-objective.
- Upgrade/Survivor Select Camera
The ZM Game Controller allows for setting up a custom intro camera, but not a custom camera for the Survivor Select sequence between rounds.
ZM Keycard
- New Keycard Types
The keycards’ visuals can be kind of unfitting in a lot of situations. It’d be great to have an additional set of Keycard Types that look like regular keys to use instead of (or alongside) the current ones.
Zombie Spawner
- ‘SpawnWithItem’ output
A variation of the existing ‘Spawn’ IO output that spawns a zombie with a guaranteed on-death item drop of your choosing. You could use this to reward players with a rare weapon for killing a horde of powerful zombie types, or just spawn a pile of skeletons that all drop bonus points or something.
If it’s possible, the option to spawn a zombie with a keycard could be pretty interesting.
Sub-objectives
- ‘Required for Escape’ toggle
A setting that could be toggled on individual sub-objectives.
When the round timer ticks down to 0, if any required sub-objectives are still active, the game enters a ‘Complete Remaining Objectives’ phase where required ones stay active and any optional ones reset.
After clearing the remaining sub-objectives, the game moves on to the ‘Kill Remaining Zombies’ phase to finish the round.
Damage/Heal Volume
- Team Filters
Currently the Damage/Heal Volume damages and heals anyone of any team. For ZM (and other games also!) it’d be great if this item had team filters, so you could have a volume that only damages zombies, only heals players, etc.
Hit Target Volume
- Team Filters
It’d be really interesting if there was a way to set up Hit Target Volumes that zombies can target and attack. This could be used to set up breakable barricades, escort/tower defense missions, etc.
Non-existent items that would be good if they were real
Pickup Spawner
A hidden module that you could use to spawn a random/specified weapon, bonus points, or a keycard at its location.
Spawning specific weapons in particular would especially be useful as a way to reward players for doing sub-objectives. It could also open up some interesting possibilities for map progression if damage type settings are ever added to Hit Target Volumes.
HUD Marker
It’d be nice to have the sub-objectives’ HUD marker as a standalone item that you can place down and turn on/off for all or specific players with IO. This could be used for marking points of interest or possibly creating custom objectives that don’t use the ‘stand in circle for X seconds’ format.
This would also just be a useful item to have outside of Zombie Massacre.
Edit(s)
ZM Escape Area
- Activation Delay
Escape areas currently take 6 seconds to activate after clearing all zombies since that’s how long it takes for the helicopter to land, but this usually leads to a few seconds of awkward nothingness waiting for the escape area to appear in custom maps. It’d be great if this delay could be customized or optionally removed.
ZM Game Manager
- KillAllZombies
There seems to be some functionality like this already for when you fail a round and all of the zombies immediately die. There’s one particular event I made for my map where something like this would be pretty useful.
Boss Spawner
- OnCutsceneStart
- OnCutsceneEnd
- OnBossKilled
Game World Events
- ZM OnDayConcluded (or better conditions for OnRoundEnd)
As far as I know, there isn’t really a perfect, easy way to just fire events when a day is completely over (all players escaped and/or lost all their lives).
- OnRoundEnd fires around the same time as OnReadyToEscape which feels a little strange since the day isn’t really over yet by that point.
- Firing the ‘round end’ events both OnAllEscaped and OnFailed could work, but OnAllEscaped doesn’t always work since it won’t fire if anyone was left behind.
-
- Firing the events OnReadyToEscape with a 20 second delay would probably be a fine workaround but it does cause potential issues if someone quickly escapes and rushes through the survivor select screen.
-
- This would be an acceptable compromise if the escape area and helicopter landing had an ‘OnLeft’ event that fired when the round ends regardless if everyone reached the escape in time.