What breaks a demo


(Chruker) #1

Hi

So I wanted to playback some demos, with the new speedometer display I made. However the demos had been recorded on etmain/shrubet servers. Right after playback started the game game crashed.

Ofcause I tried to play it in etmain which worked. Other mods (aimod and bobot) could also play them. I then tried my bugfix mod which turned out to be able to play them too.

Now the problem had to be in my developer mod I was working on. So after a lot of testing I discovered that the problem was caused by an entity type I had added. I guess that is why q_shared.h should never be changed :bash:

Has anybody else had similar experiences with things that breaks demos?


(Rain) #2

Adding new entity types causes the event numbers to be displaced (because temporary events, like bullet impacts, are sent as a temp entity with an entity type of ET_EVENTS + eventnum. This will break playback of older demos, but it won’t break playback of a demo recorded on a server with the new entity type.

Lots of other things are possible (e.g. adding a new event before the end of the event list, playing a demo with new events with a cgame that doesn’t know about them, changing the format of some server commands, etc.), but the events are the touchiest thing.