Doom Wiki

Moving platforms limit

3,599pages on
this wiki
Add New Page
Talk1 Share

Doom contains a limit on the number of platforms which can be moving simultaneously. A platform is defined as a sector with a moving floor. The limit in Vanilla Doom is 30. If the platform limit is exceeded, the game quits with the message "P_AddActivePlat: No more plats!".

A simple way to deliberately trigger this error is to create a linedef to trigger a moving floor. If the linedef is given no tag (ie. a tag of 0), triggering it will attempt to cause every untagged sector in the level to start moving. On any reasonably sized level this will cause the limit to be exceeded.


The limit itself is found in p_spec.h:

#define MAXPLATS               30

The code responsible for the limit is found in p_plats.c. Specifically, there is an array with a static length array which depends on the limit:

plat_t*         activeplats[MAXPLATS];

The function P_AddActivePlat searches the array to find a new slot in order to store the information about the new platform. If none is found, the program exits with an error:

void P_AddActivePlat(plat_t* plat)
    int         i;

    for (i = 0;i < MAXPLATS;i++)
        if (activeplats[i] == NULL)
            activeplats[i] = plat;
    I_Error ("P_AddActivePlat: no more plats!");

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.