Quake-style Intermissions
Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. This forum is archived - please use this set of forums to ask new questions.
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. This forum is archived - please use this set of forums to ask new questions.
Quake-style Intermissions
Rather than displaying a static image, Quake's intermissions switch to a camera view of some memorable part of the level while kills/secrets are tallied up. Is this possible to make in ZDoom? I think KDiZD did a custom kill/secret tally during an intermap, but I'm not sure that could be applied here.
- ChronoSeth
- Posts: 1631
- Joined: Mon Jul 05, 2010 2:04 pm
- Location: British Columbia
Re: Quake-style Intermissions
I think this would be easy to implement in a new map. Replace the exit trigger with a script which sends the player's view to a camera in the map, then use [wiki]GetLevelInfo[/wiki] within [wiki=HudMessage]HudMessages[/wiki] to display the kill, secret, and item counts. The script can then wait for the player to hit use, at which point it ends the map.
MapInfo can remove the normal intermission screen.
MapInfo can remove the normal intermission screen.
Re: Quake-style Intermissions
How would I handle multiple players, though? Is there a teleport function that won't telefrag, so I can just move everybody to the same random box?
Re: Quake-style Intermissions
This is something someone can put together a template/SDK of, at the back of my mind, I already have a rough idea on how to put a kit together and it's not hard at all to do (speaking from my ACS experience).
Now of course, who is that person who wants to do it, and more importantly, want to put their time into making it, is another story...
EDIT: some notes so that I don't look like I'm talking out of my ass
- pre-placed custom intermission camera actor (can have subtle swirling animation to simulate Quake), doesn't even need to be tagged by the mapper, its spawn routine can assign it a unique TID at map load
- time limit is easy to implement, frag limit might be a little complicated but technically still do-able (keep a list of each players' frags in an array, DEATH scripts to add to those arrays, killer will be the victim's target)busted, [wiki]PlayerFrags[/wiki]
- technically you don't even need to warp players to an empty box - you can set them all as invisible (RenderStyle_None) when level end is triggered, PROP_TOTALLYFROZEN to freeze all input except the +use key to advance to the next level and NOTARGET so that monsters don't continue attacking them
- the most complicated thing here would be keeping track of player kills, items and secrets. I don't think there's any built-in way to retrieve these numbers (I could be wrong, too lazy to check wiki) so probably some custom tracking solution needs to be implemented. Not really hard to do, just messy
Now of course, who is that person who wants to do it, and more importantly, want to put their time into making it, is another story...
EDIT: some notes so that I don't look like I'm talking out of my ass
- pre-placed custom intermission camera actor (can have subtle swirling animation to simulate Quake), doesn't even need to be tagged by the mapper, its spawn routine can assign it a unique TID at map load
- time limit is easy to implement, frag limit might be a little complicated but technically still do-able (keep a list of each players' frags in an array, DEATH scripts to add to those arrays, killer will be the victim's target)busted, [wiki]PlayerFrags[/wiki]
- technically you don't even need to warp players to an empty box - you can set them all as invisible (RenderStyle_None) when level end is triggered, PROP_TOTALLYFROZEN to freeze all input except the +use key to advance to the next level and NOTARGET so that monsters don't continue attacking them
- the most complicated thing here would be keeping track of player kills, items and secrets. I don't think there's any built-in way to retrieve these numbers (I could be wrong, too lazy to check wiki) so probably some custom tracking solution needs to be implemented. Not really hard to do, just messy
Last edited by Nash on Mon May 23, 2016 3:53 pm, edited 1 time in total.
Re: Quake-style Intermissions
I've been looking for something to do while I wait for sprite-sets and various other things. I could do it.
I like that solution! I'm not sure NOTARGET would work for that, though.Nash wrote:technically you don't even need to warp players to an empty box - you can set them all as invisible (RenderStyle_None) when level end is triggered, PROP_TOTALLYFROZEN to freeze all input except the +use key to advance to the next level and NOTARGET so that monsters don't continue attacking them
GetLevelInfo has found/total secrets and killed/total monsters. Deathmatch stats, though, would be tricky.Nash wrote:the most complicated thing here would be keeping track of player kills, items and secrets. I don't think there's any built-in way to retrieve these numbers (I could be wrong, too lazy to check wiki) so probably some custom tracking solution needs to be implemented. Not really hard to do, just messy
Re: Quake-style Intermissions
You could probably A_RadiusGive the entire level an item filtered for only monsters to A_ClearTarget them all in 1 shot.Ghastly_dragon wrote:I like that solution! I'm not sure NOTARGET would work for that, though.
Oh, very cool. To keep track of each players' frags, a looping ENTER script that constantly check its respective player's frag with PlayerFrags can be used.GetLevelInfo has found/total secrets and killed/total monsters. Deathmatch stats, though, would be tricky.
Re: Quake-style Intermissions
Did some work on this so far. Still some issues to work through. I poked someone about getting the source for KDiZD's intermission scripts to see how they did it, since I hate doing HudMessage offsets from scratch.
- HUD still visible during the camera change.
- Can still hear the player's use-sound after the camera change.
- Player appears during the screen-melt because I'm setting RenderStyle back to normal before exit. Could potentially clear that in an Unloading script rather than before exiting?
- HUD still visible during the camera change.
- Can still hear the player's use-sound after the camera change.
- Player appears during the screen-melt because I'm setting RenderStyle back to normal before exit. Could potentially clear that in an Unloading script rather than before exiting?
Re: Quake-style Intermissions
Adventures of Square does it in a way that to me is the ideal way to do it. Not tooting my own horn here - it was MTrop who set everything the way it is. 


- First, there's a fade of white and a sound effect played as the intermission begins. Music stops.
- Camera is switched - for all players.
- At least 3 cameras should be placed, and one randomly picked.
- Players are frozen, and made invulnerable. To me this is pretty crucial - what if a monster is already attacking them? Or the intermission occurs just as they're leaping off a chasm into lava?
- Music changes.
- Level tallies appear one by one, can be advanced by the player who exited pressing use (GetPlayerInput).
- Tallies increase and stop with satisfying sound effects.
- Pressing use advances the player to the next level after all the tallies have appeared.
- The "Press use to continue" text is animated with a color glow. This should catch the player's attention to it, in case they assume they have to wait for the intermission to end.

Re: Quake-style Intermissions
Definitely. I really like how Quake's intermission camera panned back and forth slightly, just so you know things are still going.Jimmy wrote:On a personal note, I seriously recommend making sure the viewpoint during the intermission is not in any way static. By that I mean - when placing the camera, make sure animated flats, or decorations, are visible, and better yet, pick a monster-filled room in case some are still lingering. Perhaps even have secret powerups in shot. The Quake-style intermission is a great way to show players what they might have missed in the level they think they just beat.
Re: Quake-style Intermissions
You need SetHudSize() if you want to scale the message.
- Siberian Tiger
- Posts: 476
- Joined: Fri Jun 12, 2009 11:23 pm
- Preferred Pronouns: He/Him
- Operating System Version (Optional): KUbuntu 22.04.1 LTS
- Graphics Processor: nVidia (Modern GZDoom)
- Location: United States
- Contact:
Re: Quake-style Intermissions
I don't think its even possible without ZDoom adding some sort of support natively. I say this because when the FragLimit, TimeLimit, WinLimit, DuelLimit, etc etc. is hit, you need to interrupt the entire transition process. Not only this, but now that Zandronum has a 'stats' database, you'll then need to upload the information that would normally be in the intermission screen - to the SQL database yourself (if even possible). A Quake Style intermission is indeed possible for Coop, despite TimeLimit is possible todo in SkullTag (I think), but deathmatch - without ZDoom - is impossible.Ghastly_dragon wrote:Deathmatch stats, though, would be tricky.
Re: Quake-style Intermissions
Ah; right - completely forgot that ZDoom is hardcoded to end the map when the *Limit is hit and there's nothing you can do to intercept those. WellThen.jpg
Re: Quake-style Intermissions
A'ight, in that case I'm not even going to worry about DM-mode support, besides skipping the intermission script if it's a deathmatch mode.