Mission Filestructure
From The DarkMod Wiki
Choosing a PK4 filename
It's important to come up with a unique filename for your PK4 file, as the filename is used by the in-game mission manager to distinguish the packages: it's best to choose a PK4 name that has not been used by other released missions. Furthermore, don't use foreign characters for the filename, stick with the alphanumeric characters A-Z, a-z and 0-9. Please do not include version information in the filename, future updates should have the same filename to properly update via the in-game installer.
../darkmod/fms/levelname.pk4 //path
./credits.txt //please insert to continue ./darkmod.txt //title info ./list.txt //this directory listing ./readme.txt //readme ./startingmap.txt //this level ./dds/ ./dds/textures ./dds/textures/darkmod ./dds/textures/darkmod/custom_texture.dds //i'm not sure the difference ./dds/textures/darkmod/decals/ //between these paths ./dds/textures/darkmod/decals/custom decal.dds //as it seems like it should ./dds/textures/darkmod/decals//building_facades //work wherever you ./dds/textures/darkmod/decals//building_facades/levelname_eg.window.dds //put the dds files in here (tidiness' sake)? /levelname/customtexturemaps.dds
/def/custom_AI_head_and_skin.def //these are def files that /def/custom_AI_head_and_skin2.def //i have ripped from /def/custom_AI_inc_props.def //various missions /def/custom_npc_model_inherit_custom_ai.def //that might prove useful /def/tdm_ai_custom_ai.def //in the future /def/tdm_lod_custom_level_of_detail_for_model.def //for specific functions. /env //contains skybox *unknown format /envskybox.* (lwo?) /fonts/fontimage_<size>.dat //<size> is pica/pts. *unsure where refered in .xd?
/guis/custom_readable_slab.gui //guis for readables /guis/mainmenu_briefing.gui //briefing screen. Can find extended version by Sotha via fidcal's (http://www.fidcal.com /DarkModContributions/guis/briefings/briefing_button.zip ) /guis/mainmenu_custom_defs.gui //shop / [item] persistence over campaign / advanced briefing & debrief, eg, start points / replacement/music[voiceover] / video (wiki documentation). /guis/assets /guis/assets/briefingX.tga //briefing background /guis/assets/generic_loading_bar1.tga //level load bar /guis/assets/levelname_loading.tga //loading background /guis/assets/next_arrow.tga //briefing arrows (as referred by briefing.gui) /guis/assets/previous_arrow.tga /guis/assets/stop_cross.tga /guis/assets/game_maps/map_of_levelname.tga //in-game level map /guis/assets/game_maps/map_of_levelname_icon.tga //icon for level map /guis/hud /guis/hudcustom_hud.tga //hud changes (no hud.gui?) /guis/hud/inventory_icons /guis/hud/custom_inv_item.tga //extra inventory icons /splash/levelname_loading.tga //what it says - think the image dimensions either 640x480 or 512x512, origin is top left corner /map /map/map_of_levelname.gui //points from game to tga (unsure if can tga can be compressed to dds for smaller d/l)
/lights/custom_light_colour.tga //light shaders /lights/custom_light_nocolour.tga /maps/levelname.aas_rat //dmap output (richard gere and lemmiwinks). /maps/levelname.aas32 //required to play game /maps/levelname.cm /maps/levelname.map /maps/levelname.proc /maps/levelname.script /materials /materials/custom_ai.mtr //material files for several /materials/custom_light.mtr //purposes, definition to include /materials/custom_map.mtr //new textures, light, game map, /materials/custom_obj_lod.mtr //models, fixes, behaviour, etc... /materials/frobhighlight_textures_example.mtr /materials/ghost_collision_draw_fix.mtr /materials/levelname (new textures.surfaces).mtr /materials/levelname_light_textures.mtr /materials/levelname_textures (modified textures).mtr /materials/levelname_video.mtr /materials/stolen_AI_base_WS1ghost.mtr // I nicked this one as example of custom.mtr /materials/models /materials/models/darkmod /materials/models/darkmod/decorative //3DSMax / Blender / DR exported .ase files here /materials/models/darkmod/category //all ase requires definition through material (.mtr) and parent to (.skin). /materials/models/darkmod/category/custom_model.ase /materials/models/darkmod/loot/custom loot model.ase /materials/models/darkmod/misc/system/skybox_model.lwo //lightwave model/mesh - references texture where? (unclear pointer) - 2D or 3D as with source vtf but to lwo instead? https://developer.valvesoftware.com/wiki/Skybox_(2D) / https://developer.valvesoftware.com/wiki/Making_3D_Skyboxes /weapons/custom_weapon(nonplayer).lwo /levelname/custom_model.ase /md5 //md5 mesh depot /md5/chars/body/npc/custom_npc_body.md5mesh /heads/npc/custom_npc_head.md5mesh /particles/ /particles/customparticle.prt //particle info - can be created /particles/tdm_alter_existing_particle.prt //using in-game console /script /script/custom_ai.script //script files here /script/levelname.script /script/tdm_ai_event.script /script/tdm_custom_scripts.script /skins //skins link textures to .ase models - appears similar in function to: http://www.misfitcode.com /misfitmodel3d/olh_quakemd3.html#textures which would allow .png substitute [stegosploit] /skins/custom_ai.skin /skins/custom_loot.skin /skins/custom_obj_model.skin /skins/tdm_replace_model_texture.skin /skins/texture for model.skin /skins/zombie_replacement.skin /sound //sound shader replacement pointers /sound/doorsounds.sndshd /sound/effects.sndshd /sound/footsteps.sndshd /sound/music.sndshd /sound/voices.sndshd /sound/effects/ //the sound files themselves /sound/effects/custom.effect.ogg /sound/effects/footsteps /sound/effects/footstepscustomstep.surface.ogg /sound/effects/music /sound/effects/musiclevelmusic.ogg /sound/effects/voices /sound/effects/voices/charvoice.ogg /sound/effects/voices/conversation.ogg /strings/fm //each translation requires new /strings/fm/de.lang //repack. Game items must be named /strings/fm/eng.lang //#str or look-up-replaced using... /strings/fm/es.lang //i forgot the name... /strings/fm/pyc.lang //ebatc /textures /textures/darkmod/ //new textures go here. /textures/darkmod/custom texture.jpg //normals and other maps must /textures/darkmod/custom texture.tga //be packaged as .dds - unclear on optimal dimension or resolutions (512x512 appears fine for tiling surface). /textures/decals/ /textures/decals/blood //alpha channel. 24 or 32bit only - appears black / loses alpha transparency if not. /textures/decals/blood/custom_blood.jpg // jpegs do not contain alpha channels, but appears to retain EXIF - possible intrusion risk via stegosploit [untested]. /textures/decals/blood/custom_blood.tga // even if game does not allow for intrusion, JS or other access of file may run, RAT, embedded. /textures/decals/dirt/dirt/custom_dirt.jpg // malicious level design: https://conference.hitb.org/hitbsecconf2015ams/wp-content/uploads/2015/02/D1T1-Saumil-Shah-Stegosploit-Hacking-with-Pictures.pdf /textures/decals/dirt/custom_dirt.tga // considering older engine, perhaps worth test for guard in VM. /levelname/customtexture.jpg /levelname/customtexture.tga /video/levelname_briefing.roq //format for in-game video (encoder: ftp://ftp.idsoftware.com/idstuff/quake3/tools/roq.zip / decoder: https://github.com/i...client/cl_cin.c) /video/levelname_credits.roq /xdata /xdata/briefing.xd //text only briefing - use gui for moving image, timed sequence, etc... /xdata/levelname.xd //readables data