linedefflags { twosided = "Doublesided"; dontpegtop = "Upper unpegged"; dontpegbottom = "Lower unpegged"; blocking = "Impassable"; blockeverything = "Block everything"; blockplayers = "Block players"; blockmonsters = "Block monsters"; blocklandmonsters = "Block land monsters"; blockfloaters = "Block floating monsters"; blocksound = "Block sound"; blockprojectiles = "Block projectiles"; blockhitscan = "Block hitscans"; blockuse = "Block use actions"; blocksight = "Block monster line of sight"; jumpover = "Jump-over railing"; clipmidtex = "Clip middle texture"; wrapmidtex = "Wrap middle texture"; midtex3dimpassible = "Projectile shoot-through middle texture"; midtex3d = "Walkable middle texture"; mapped = "Initially shown on map"; secret = "Shown as 1-sided on map"; dontdraw = "Not shown on map"; transparent = "Transparent (25% opacity)"; translucent = "Translucent (obsolete)"; monsteractivate = "Monster activates"; } linedefactivations { repeatspecial { name = "Repeatable action"; istrigger = false; } playeruse = "When player presses use"; playercross = "When player walks over"; playerpush = "When player bumps"; monsteruse = "When monster presses use"; monstercross = "When monster walks over"; monsterpush = "When monsters bumps"; anycross = "Any crossing non-missile activates"; missilecross = "When projectile crosses"; impact = "On player hitscan/projectile impact"; checkswitchrange { name = "Switch height check"; istrigger = false; } passuse { name = "Pass use on"; istrigger = false; } firstsideonly { name = "Front side only"; istrigger = false; } playeruseback { name = "Player can use from back side"; istrigger = false; } } // Linedef flags UDMF translation table // This is needed for copy/paste and prefabs to work properly // When the UDMF field name is prefixed with ! it is inverted linedefflagstranslation { include("Doom_misc.cfg", "linedefflagstranslation"); include("Hexen_misc.cfg", "linedefflagstranslation"); 6144 = "playeruse,passuse"; //mxd 7168 = "impact,missilecross"; //mxd 16384 = "blockplayers"; } sidedefflags { clipmidtex = "Clip middle texture"; wrapmidtex = "Wrap middle texture"; smoothlighting = "Smooth lighting"; nofakecontrast = "Even lighting"; } thingflags { skill1 = "Skill 1"; skill2 = "Skill 2"; skill3 = "Skill 3"; skill4 = "Skill 4"; skill5 = "Skill 5"; single = "Singleplayer"; coop = "Cooperative"; dm = "Deathmatch"; friend = "Friendly (MBF logic)"; ambush = "Ambush players"; dormant = "Dormant"; translucent = "Translucent (25%)"; invisible = "Invisible"; countsecret = "Count as secret"; } // How to compare thing flags (for the stuck things error checker) thingflagscompare { skills { skill1; skill2; skill3; skill4; skill5; } gamemodes { single { requiredgroups = "skills"; } coop { requiredgroups = "skills"; } dm { ignoredgroups = "skills"; } } } //mxd. Thing flags UDMF translation table // This is needed for copy/paste and prefabs to work properly // When the UDMF field name is prefixed with ! it is inverted thingflagstranslation { include("Doom_misc.cfg", "thingflagstranslation"); include("Hexen_misc.cfg", "thingflagstranslation"); 256 = "single"; 512 = "coop"; 1024 = "dm"; 2048 = "translucent"; 4096 = "invisible"; 8192 = "friend"; } // Default flags for first new thing defaultthingflags { skill1; skill2; skill3; skill4; skill5; single; coop; dm; } // Default thing filters // (these are not required, just useful for new users) thingsfilters { filter0 { name = "Keys only"; category = "keys"; type = -1; } filter1 { name = "Deathmatch"; category = ""; type = -1; fields { dm = true; } } filter2 { name = "Cooperative"; category = ""; type = -1; fields { coop = true; } } filter3 { name = "Skill 1"; category = ""; type = -1; fields { skill1 = true; } } filter4 { name = "Skill 2"; category = ""; type = -1; fields { skill2 = true; } } filter5 { name = "Skill 3"; category = ""; type = -1; fields { skill3 = true; } } filter6 { name = "Skill 4"; category = ""; type = -1; fields { skill4 = true; } } filter7 { name = "Skill 5"; category = ""; type = -1; fields { skill5 = true; } } } // Things flags masks include("Hexen_misc.cfg", "thingflagsmasks"); /* ADDITIONAL UNIVERSAL DOOM MAP FORMAT FIELD DEFINITIONS Only add fields here that Doom Builder does not edit with its own user-interface! The "default" field must match the UDMF specifications! Field data types: 0 = integer * 1 = float 2 = string 3 = bool 4 = linedef action (integer) * 5 = sector effect (integer) * 6 = texture (string) 7 = flat (string) 8 = angle in degrees (integer) 9 = angle in radians (float) 10 = XXRRGGBB color (integer) 11 = enum option (integer) * 12 = enum bits (integer) * 13 = sector tag (integer) * 14 = thing tag (integer) * 15 = linedef tag (integer) * 16 = enum option (string) 17 = angle in degrees (float) 22 = byte angle (integer) */ universalfields { linedef { comment { type = 2; default = ""; } health { type = 0; default = 0; managed = false; } healthgroup { type = 0; default = 0; managed = false; } // Should be moved to flags eventually damagespecial { type = 3; default = false; managed = false; } // Should be moved to flags eventually deathspecial { type = 3; default = false; managed = false; } automapstyle { type = 11; default = 0; enum { 0 = "Default"; 1 = "One-sided wall"; 2 = "Two-sided wall"; 3 = "Floor levels of front and back sectors are different"; 4 = "Ceiling levels of front and back sectors are different"; 5 = "3D floor border"; 6 = "Wall with special non-door action"; 7 = "Secret door"; 8 = "Wall not seen yet"; 9 = "Locked door"; 10 = "Intra-level teleporter"; 11 = "Inter-level or game-ending teleporter"; 12 = "Unexplored secret wall"; 13 = "Portal line"; } managed = false; } arg0str { type = 2; default = ""; } alpha { type = 1; default = 1.0; } locknumber { type = 0; default = 0; } } sidedef { comment { type = 2; default = ""; } scalex_mid { type = 1; default = 1.0; } lightabsolute { type = 3; default = false; } offsetx_top { type = 1; default = 0.0; } scalex_bottom { type = 1; default = 1.0; } offsety_bottom { type = 1; default = 0.0; } offsetx_bottom { type = 1; default = 0.0; } scaley_bottom { type = 1; default = 1.0; } light { type = 0; default = 0; } offsetx_mid { type = 1; default = 0.0; } offsety_top { type = 1; default = 0.0; } scaley_top { type = 1; default = 1.0; } scaley_mid { type = 1; default = 1.0; } offsety_mid { type = 1; default = 0.0; } scalex_top { type = 1; default = 1.0; } light_top { type = 0; default = 0; } lightabsolute_top { type = 3; default = false; } light_mid { type = 0; default = 0; } lightabsolute_mid { type = 3; default = false; } light_bottom { type = 0; default = 0; } lightabsolute_bottom { type = 3; default = false; } xscroll { type = 1; default = 0.0; managed = false; } yscroll { type = 1; default = 0.0; managed = false; } xscrolltop { type = 1; default = 0.0; managed = false; } yscrolltop { type = 1; default = 0.0; managed = false; } xscrollmid { type = 1; default = 0.0; managed = false; } yscrollmid { type = 1; default = 0.0; managed = false; } xscrollbottom { type = 1; default = 0.0; managed = false; } yscrollbottom { type = 1; default = 0.0; managed = false; } } thing { comment { type = 2; default = ""; } gravity { type = 1; default = 0.0; } alpha { type = 1; default = 1.0; } health { type = 1; default = 1.0; } arg0str { type = 2; default = ""; } } sector { comment { type = 2; default = ""; } ypanningfloor { type = 1; default = 0.0; } xpanningfloor { type = 1; default = 0.0; } lightfloorabsolute { type = 3; default = false; } lightfloor { type = 0; default = 0; } damageinterval { type = 0; default = 32; } rotationceiling { type = 1; default = 0.0; } damageamount { type = 0; default = 0; } rotationfloor { type = 1; default = 0.0; } yscalefloor { type = 1; default = 1.0; } leakiness { type = 0; default = 0; } ypanningceiling { type = 1; default = 0.0; } lightceiling { type = 0; default = 0; } yscaleceiling { type = 1; default = 1.0; } gravity { type = 1; default = 1.0; } xpanningceiling { type = 1; default = 0.0; } xscaleceiling { type = 1; default = 1.0; } xscalefloor { type = 1; default = 1.0; } lightceilingabsolute { type = 3; default = false; } xscrollfloor { type = 1; default = 0.0; managed = false; } yscrollfloor { type = 1; default = 0.0; managed = false; } scrollfloormode { type = 12; default = 0; enum { 1 = "Affects textures"; 2 = "Affects static objects"; 4 = "Affects players"; 8 = "Affects monsters"; } managed = false; } xscrollceiling { type = 1; default = 0.0; managed = false; } yscrollceiling { type = 1; default = 0.0; managed = false; } scrollceilingmode { type = 12; default = 0; enum { 1 = "Affects textures"; 2 = "Affects static objects"; 4 = "Affects players"; 8 = "Affects monsters"; } managed = false; } xthrust { type = 1; default = 0.0; managed = false; } ythrust { type = 1; default = 0.0; managed = false; } thrustgroup { type = 12; default = 0; enum { 1 = "Affects static objects"; 2 = "Affects players"; 4 = "Affects monsters"; 8 = "Affects projectiles"; 16 = "Affects WINDTHRUST actors"; } managed = false; } thrustlocation { type = 12; default = 0; enum { 1 = "Affects grounded actors"; 2 = "Affects airborne actors"; 4 = "Affects ceiling actors"; } managed = false; } colormap { type = 2; default = ""; managed = false; } skyfloor { type = 2; default = ""; managed = false; } skyceiling { type = 2; default = ""; managed = false; } frictionfactor { type = 1; default = 0.90625; managed = false; } movefactor { type = 1; default = 0.03125; managed = false; } } } // DEFAULT SECTOR BRIGHTNESS LEVELS sectorbrightness { 256; 248; 240; 232; 224; 216; 208; 200; 192; 184; 176; 168; 160; 152; 144; 136; 128; 120; 112; 104; 96; 88; 80; 72; 64; 56; 48; 40; 32; 24; 16; 8; 0; } // ENUMERATIONS // Each engine has its own additional thing types // These are enumerated lists for linedef types and UDMF fields. enums { // Basic game enums include("Doom_misc.cfg", "enums"); // Standard ZDoom enums include("ZDoom_misc.cfg", "enums"); // Additional ZDoom enums for that game include("ZDoom_misc.cfg", "enums_doom"); sector_flags = null; sector_flags { 1 = "Silent"; 16 = "Boom Friction"; 32 = "Boom Push / Pull"; 256 = "End god mode"; 512 = "End level"; 1024 = "Hazard"; 2048 = "No attack"; } } maplumpnames { ~MAP { required = true; blindcopy = true; nodebuild = false; } TEXTMAP { required = true; nodebuild = true; allowempty = true; } ZNODES { required = false; nodebuild = true; allowempty = false; } BLOCKMAP { required = false; nodebuild = true; allowempty = true; } REJECT { required = false; nodebuild = true; allowempty = true; } ENDMAP { required = true; nodebuild = false; allowempty = true; } }