So basically it goes like this:
defines.dm //all global variables and #defines
+datums //folder
-defines.dm //in this file, simply define all the datum paths, variables and proc \
names, nothing else
//create a sub folder of the name of your datum, some examples:
+missions
//here define each procedure as a new .dm file
-new().dm
-process().dm
+defines //ive seperated the code into two main categories. defines and procedures
//under the defines, you simply NAME procedure names and variables and paths
//under procs you actually write the procedure for that type
-areas.dm
-atoms.dm
-turfs.dm
//for types that have a lot of sub-types, like mob and obj for example, make a folder
+mobs
//define each sub-type of mob as a new .dm
-mob.dm
-npc.dm
//if you wanted to go more in-depth:
-headmaster.dm
-first_mission_guy.dm
+obj
-items.dm //a definition file of the item path and its variables and procedure NAMES
+equipment
//now if you have a lot of equipment you can name each .dm file as a piece of equipment
-armored_vest.dm
//or if you want everything in one .dm because your only defining them anyways,
-equipment.dm
//and simply define each type with their own variables
//and do the same with these
+gadget
+weapon
+procs //this is where your actually going to put the procedures
//for each type, make a folder
//now for each folder, enter the procedure as its own .dm file
+area
+mob
-login().dm
-die().dm
-process().dm
//you can go more in-depth by adding sub-folders for each sub-type of mob
+npc
+player
//etc..
//same idea throughout
+obj
+turf
//now here is where all the procedures that don't belong to anything go
//for example a name parser
+procs
name_parse().dm
//or a round starter
start_round().dm
And thats pretty much it. I just wanted to share this with you guys, it may help some of you. It did me!
(Underscores on files of particular importance.)