1. What gametype should be used there? Note that this is after using a custom gametype.2. How do "cutscenes" work - aka I see in some endings the camera teleports from one place to another and in some way it touches the ending.3. Is it possible to dodge these ending maps in coop? Aka instead of going to the ending map coop players go back to level 1 instead. Maplist-related?

3. Dual exit teleporters in the previous map with opposing bNet+bSinglelayer filters with each sending players to the appropriate map.

I've seen simple cutscenes use interpolating path cameras (like the Unreal flyby). More complex ones seem to always use UMS, which I think will work in a custom game type as long as it's a child of singlrplayer. Even then I'm not really sure if it has a gametype dependency.

I'm not sure if the teleport thing is good because from what I know, using filtering options on a navigation actor can fuck saves. Not sure if it happens for difficulty filters only but I don't want to risk.

I really have no idea how UMS works :< Once again, zero help material about another Unreal specific thing.

You need some sort of trigger for the cutscene so they don't readily lend themselves to normal player versus player gametypes. It's certainly possible though. If you want to do this you could look at my code for the PostalBabes and see how I hooked into bGameEnded (you could use HandleEndGame, etc too). That mod spawns Postal Babe dancers around the match winner but you could tell it to run a cutscene instead. It will be a little trickier with deathmatch type games though, you'll need to pause the game ending code while your cutscene runs.

Also, remember some things don't replicate correctly so be sure to test it online to ensure any effects, etc you use will work. An example of this is adding smoke into a skybox. I built a smoking volcano into a skybox and had to make custom stuff to get it to properly work online.

Alucard was a really, really good mapper for monsterhunt and coop and he used cutscenes in several maps, both during and after play. If you look at his maps you'll see how he did it. The triggers can be complicated but the effects are worth it if you do it right. Just remember that a lot of players do not like them no matter what so keep them short and to the point.

UBerserker wrote:1. What gametype should be used there? Note that this is after using a custom gametype.

There is no reason to introduce a specific custom game type, unless you really need to override GameInfo functions.

In case of maps that are intended to be playable in Coop game, dependencies on a custom game type may become a headache for server admins who would like to use their favourite advanced Coop game type with rich functionality (such as enhanced kick-banning/penalty system, multiple admin groups with different subsets of available admin commands, support of voting rules for ending, optional saving inventory of died/left players, anti-flood protection, etc). Switching to other game type with UnrealShare.CoopGame-like minimalistic functionality (offered by authors of a map pack) isn't exactly what an experienced admin would want. Hacking/refactoring scripts of a map pack in order to adapt the implementation for a favourable game type can be a solution, but it requires knowledge of scripting and time.

I'm not sure if the teleport thing is good

Applying filters to Engine.Teleporter isn't good, indeed. You can make your own teleporter-like class with other base class (e.g. Engine.Triggers) and with the same implementation as Engine.Teleporter. Alternatively, it's possible to use a pair of initially disabled Engine.Teleporter actors with different tags and apply filtering to actors that would generate the corresponding events for them.

Masterkent wrote:You can make your own teleporter-like class with other base class (e.g. Engine.Triggers) and with the same implementation as Engine.Teleporter.

Deriving from a non-NavigationPoint class has a disadvantage though: some third-party mods can look up for Engine.Teleporter-based actors in order to handle exit teleporters. So, it may be better to derive a custom teleporter class from Engine.Teleporter and tweak the implementation of filtering: