Compatibility

Texture changes

Scripting Changes

MAPINFO

map MAP {
    disableshadowmap
}
map MAP {
    scalefactor3d = 1.0
}

MAPINFO/GameInfo Field

GameInfo {
    notickerpausing = true
}

GAMEINFO Changes

TICRATE = 35

IWADINFO Changes

IWad {
    TicRate = 35
    Game = "Standalone"
}

Changes in ""Standalone"" games

Standalone games load minimal data, which means you only need to provide game_content/vgreasex for people to be able to run your iwad/ipk3. A couple of other features are disabled in them as well, meaning to be used for non-doom games, such as:

ANIMDEF Changes

undulo flat FWATER1
undulo flat FWATER2
undulo flat FWATER3
undulo flat FWATER4

MODELDEF Changes

Extended Model Object (.obj) Specification Format

//BGRA format
//vcolor (blue) (green) (red) (alpha), range 0-255
v -2000 0 0
vcolor 0 0 255 255
v -2000 500 0
vcolor 0 255 0 255
v -2000 0 -500
vcolor 255 0 0 255

//fvcolorindex should go AFTER a f block, takes a index to a vcolor.
f 1 2 3
fvcolorindex 1 2 3

GLSL changes

#ifdef SHADER_PASS_SSR
    texel = vec4(mix(SSR(pixelpos.xyz, vEyeNormal), baseColor, 0.5), baseColor.a);
#else
    texel = baseColor;
#endif
//glowdist
if(uGlowTopColor.a > 0 || uGlowBottomColor.a > 0) {
    float topatpoint = (uGlowTopPlane.w + uGlowTopPlane.x * pixelpos.x + uGlowTopPlane.y * pixelpos.z) * uGlowTopPlane.z;
    float bottomatpoint = (uGlowBottomPlane.w + uGlowBottomPlane.x * pixelpos.x + uGlowBottomPlane.y * pixelpos.z) * uGlowBottomPlane.z;
    glowdist.x = topatpoint - pixelpos.y; //note - has to be declared
    glowdist.y = pixelpos.y - bottomatpoint;
    glowdist.z = clamp(glowdist.x / (topatpoint - bottomatpoint), 0.0, 1.0);
}

//gradientdist
if(uObjectColor2.a != 0) {
    float topatpoint = (uGradientTopPlane.w + uGradientTopPlane.x * pixelpos.x + uGradientTopPlane.y * pixelpos.z) * uGradientTopPlane.z;
    float bottomatpoint = (uGradientBottomPlane.w + uGradientBottomPlane.x * pixelpos.x + uGradientBottomPlane.y * pixelpos.z) * uGradientBottomPlane.z;
    gradientdist.x = topatpoint - pixelpos.y; //note - has to be declared
    gradientdist.y = pixelpos.y - bottomatpoint;
    gradientdist.z = clamp(gradientdist.x / (topatpoint - bottomatpoint), 0.0, 1.0);
}

GLDEFS changes

HardwareShader texture FLAT1 {
    VertexShader "shaders/waves.vp"
}

shaders/waves.vp

//Generate some big waves on the vertexes.
vec4 GetVertexWorldPosition() {
    return vec4(aPosition.xyz + aNormal * (50.0 + sin((timer * 4.0) + aPosition.x + aPosition.z) * 50.0), aPosition.w);
}

VXScript/Decorate Changes

Structs/Classes

General (Object)

EventHandler/StaticEventHandler

    override string PlayerChatted(PlayerEvent e, string message) {
        //You can modify the message here or run commands, etc.
        //Do remember to return the message. Blank messages will not be sent in chat (mute).
        return message;
    }

Screen

    //wrong
    screen.Clear(int left, int top, int right, int bottom, Color color, THEPALETTECOLORINQUESTION);

    //make this look like this
    screen.Clear(int left, int top, int right, int bottom, screen.PaletteColor(THEPALETTECOLORINQUESTION));

BaseStatusBar

override void DrawSplitScreen(int splitscreenindex, int vtop, int vleft, int vwidth, int vheight, double TicFrac) {
    //Do splitscreen HUD drawing here.
    //Offset your stuff accordingly using vtop (player y offset), vleft (player x offset), vwidth (player screen width), vheight (player screen height).
}

Sector

    native float reflect[2];

Line

Vertex

    level.vertexes[0].p.x = anything;

Player

LevelLocals (Level)

    native readonly int position;
    native readonly float MusicPitch;

Actor

default {
    HitboxDimensions 32, 32, 64; //Same as typing "Radius 32; Height 64;"
}

If you're implementing custom blood in your mod, to make it look the best, you should use alpha mask (non-colored) sprites with the "Shaded" RenderStyle, so that BloodColor can properly colorize them and the following properties:

default {
    StencilColor "FF 00 00"; // For a default "red" color
    RenderStyle "Shaded"; // Shaded works best if the texture is white since it makes a grayscale alpha component.
}