Mission Filestructure

From The DarkMod Wiki
Revision as of 10:13, 3 May 2017 by Freyk (talk | contribs) (Created page with "=== 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...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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